@synertech/ui 0.42.0 → 0.44.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/skills/use-synertech-ui/SKILL.md +139 -1
- package/dist/index.cjs +10 -9
- package/dist/index.d.cts +1096 -55
- package/dist/index.d.ts +1096 -55
- package/dist/index.js +10 -9
- package/dist/styles.css +55 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import*as Ri from'react';import Ri__default,{createContext,forwardRef,memo,useId,useState,useRef,useEffect,useCallback,useImperativeHandle,useMemo,useContext,cloneElement,isValidElement,useLayoutEffect}from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {createPortal}from'react-dom';import {createRoot}from'react-dom/client';import Vy from'dompurify';import By from'react-markdown';import Fy from'remark-gfm';function g(...e){return e.filter(Boolean).join(" ")}var ec=createContext(null),tc=createContext(null);function ci(){let e=useContext(ec);if(!e)throw new Error("Accordion sub-components must be used within <Accordion>");return e}function rc(){let e=useContext(tc);if(!e)throw new Error("AccordionTrigger/AccordionContent must be used within <AccordionItem>");return e}var nc={sm:{trigger:"px-3 py-2",content:"px-3 pb-2",text:"text-sm",icon:"w-3.5 h-3.5"},md:{trigger:"px-4 py-3",content:"px-4 pb-3",text:"text-base",icon:"w-4 h-4"},lg:{trigger:"px-5 py-4",content:"px-5 pb-4",text:"text-lg",icon:"w-5 h-5"}},cg=({className:e})=>jsx("svg",{className:e,viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z",clipRule:"evenodd"})}),dg={default:"border border-gray-200 dark:border-gray-700 rounded-lg divide-y divide-gray-200 dark:divide-gray-700",bordered:"border-2 border-gray-300 dark:border-gray-600 rounded-lg divide-y divide-gray-300 dark:divide-gray-600",separated:"space-y-2",ghost:""},ug={default:"",bordered:"",separated:"border border-gray-200 dark:border-gray-700 rounded-lg overflow-hidden",ghost:"border-b border-gray-200 dark:border-gray-700 last:border-b-0"};function mg({type:e="single",value:t,defaultValue:r,onValueChange:n,collapsible:o=false,variant:a="default",size:s="md",disabled:l=false,iconPosition:i="right",icon:c,hideIcon:d=false,className:u,children:b}){let[m,p]=useState(()=>r?Array.isArray(r)?r:[r]:[]),C=t!==void 0,v=C?Array.isArray(t)?t:[t]:m,k=useCallback(z=>{let h;e==="single"?v.includes(z)?h=o?[]:[z]:h=[z]:h=v.includes(z)?v.filter(R=>R!==z):[...v,z],C||p(h),n?.(e==="single"?h[0]??"":h);},[e,v,o,C,n]),y=useMemo(()=>({openItems:v,toggle:k,variant:a,size:s,disabled:l,iconPosition:i,icon:c??null,hideIcon:d}),[v,k,a,s,l,i,c,d]);return jsx(ec.Provider,{value:y,children:jsx("div",{className:g(dg[a],u),"data-testid":"accordion",children:b})})}function gg({value:e,disabled:t,className:r,children:n}){let o=ci(),a=o.openItems.includes(e),s=t??o.disabled,l=useId(),i=`accordion-trigger-${l}`,c=`accordion-content-${l}`,d=useMemo(()=>({value:e,isOpen:a,disabled:s,triggerId:i,contentId:c}),[e,a,s,i,c]);return jsx(tc.Provider,{value:d,children:jsx("div",{className:g(ug[o.variant],r),"data-state":a?"open":"closed","data-testid":"accordion-item",children:n})})}function pg({className:e,icon:t,children:r}){let n=ci(),o=rc(),a=nc[n.size],s=()=>{o.disabled||n.toggle(o.value);},l=d=>{(d.key==="Enter"||d.key===" ")&&(d.preventDefault(),s());},i=t??n.icon??jsx(cg,{className:a.icon}),c=!n.hideIcon&&jsx("span",{className:g("shrink-0 text-gray-500 dark:text-gray-400 transition-transform duration-200",o.isOpen&&"rotate-180"),"data-testid":"accordion-icon",children:i});return jsxs("button",{type:"button",id:o.triggerId,"aria-expanded":o.isOpen,"aria-controls":o.contentId,disabled:o.disabled,onClick:s,onKeyDown:l,className:g("flex items-center w-full text-left font-medium transition-colors cursor-pointer",a.trigger,a.text,"text-gray-900 dark:text-gray-100",!o.disabled&&"hover:bg-gray-50 dark:hover:bg-gray-800/50",o.disabled&&"opacity-50 cursor-not-allowed",e),"data-testid":"accordion-trigger",children:[n.iconPosition==="left"&&c,jsx("span",{className:"flex-1",children:r}),n.iconPosition==="right"&&c]})}function fg({className:e,children:t}){let r=ci(),n=rc(),o=nc[r.size],a=useRef(null),[s,l]=useState(n.isOpen?void 0:0),i=useRef(true);return useEffect(()=>{if(i.current){i.current=false,l(n.isOpen?void 0:0);return}if(n.isOpen){let c=a.current;if(c){l(c.scrollHeight);let d=setTimeout(()=>l(void 0),200);return ()=>clearTimeout(d)}}else {let c=a.current;c&&(l(c.scrollHeight),requestAnimationFrame(()=>l(0)));}},[n.isOpen]),jsx("div",{id:n.contentId,role:"region","aria-labelledby":n.triggerId,className:"overflow-hidden transition-[height] duration-200 ease-in-out",style:{height:s===void 0?"auto":s},"data-testid":"accordion-content","data-state":n.isOpen?"open":"closed",children:jsx("div",{ref:a,className:g(o.content,"text-gray-600 dark:text-gray-400",o.text==="text-lg"?"text-base":"text-sm",e),children:t})})}function vg(...e){return e.filter(Boolean).join(" ")}var kg="@synertech/ui/AdvanceDetachable",Cg=300,wg="width=800,height=600,menubar=no,toolbar=no,location=no,status=no,scrollbars=yes,resizable=yes",Ng=0;function Sg(){return `${Date.now()}-${++Ng}-${Math.random().toString(36).slice(2,8)}`}function oc(e){try{return JSON.stringify(e)}catch{return String(e)}}function ac(e){try{return JSON.parse(e)}catch{return e}}function Rg(e,t){e.querySelectorAll("style").forEach(r=>{let n=t.createElement("style");n.textContent=r.textContent,t.head.appendChild(n);}),e.querySelectorAll('link[rel="stylesheet"]').forEach(r=>{let n=r,o=t.createElement("link");o.rel="stylesheet",o.href=n.href,n.crossOrigin&&(o.crossOrigin=n.crossOrigin),t.head.appendChild(o);}),e.documentElement.className&&(t.documentElement.className=e.documentElement.className),e.body.className&&(t.body.className=e.body.className);}function Tg(e,t){let r=new MutationObserver(n=>{for(let o of n)for(let a of Array.from(o.addedNodes))if(a instanceof HTMLStyleElement){let s=t.createElement("style");s.textContent=a.textContent,t.head.appendChild(s);}else if(a instanceof HTMLLinkElement&&a.rel==="stylesheet"){let s=t.createElement("link");s.rel="stylesheet",s.href=a.href,t.head.appendChild(s);}});return r.observe(e.head,{childList:true}),r}function Pg(){return typeof BroadcastChannel<"u"}function Eg({mode:e,id:t,title:r="",children:n,value:o,defaultValue:a,onValueChange:s,isDetached:l,defaultDetached:i=false,onDetachedChange:c,features:d,target:u,autoFocus:b=true,className:m,detachedBodyClassName:p,disabled:C=false,readOnly:v=false,closeOnMainWindowUnload:k=true,name:y,serialize:z,deserialize:h},R){let f=l!==void 0,[N,L]=useState(i),E=f?l:N,I=o!==void 0,[w,W]=useState(a),M=I?o:w,[T,P]=useState(null),x=useRef(null),D=useRef(null),S=useRef(null),B=useRef(null),H=useRef(false),$=useRef(null),_=useRef(null),F=useRef(null),[A]=useState(()=>`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`),V=useRef({title:r,features:d,target:u,autoFocus:b,detachedBodyClassName:p,closeOnMainWindowUnload:k,disabled:C,readOnly:v,mode:e,id:t});V.current={title:r,features:d,target:u,autoFocus:b,detachedBodyClassName:p,closeOnMainWindowUnload:k,disabled:C,readOnly:v,mode:e,id:t};let Y=useRef(z??oc);Y.current=z??oc;let X=useRef(h??ac);X.current=h??ac;let G=useRef(s);G.current=s;let j=useRef(c);j.current=c;let O=useRef(E);O.current=E;let K=`${kg}/${t}`,se=useCallback(()=>{S.current&&(clearInterval(S.current),S.current=null),B.current&&(B.current.disconnect(),B.current=null),P(null);},[]),ae=useCallback(()=>{D.current&&(D.current.close(),D.current=null),$.current&&typeof window<"u"&&(window.removeEventListener("message",$.current),$.current=null);},[]),U=useCallback(Pe=>{if(!(!Pe||Pe.channel!==K)&&Pe.instanceId!==A&&!V.current.readOnly&&Pe.type==="value-sync"&&Pe.payload!==void 0){_.current=Pe.payload;let De=X.current(Pe.payload);I||W(De),G.current?.(De);}},[K,A,I]),J=useCallback(()=>{if(ae(),!(typeof window>"u"))if(Pg()){let Pe=new BroadcastChannel(K),De=it=>U(it.data);Pe.addEventListener("message",De),D.current=Pe;}else {let Pe=De=>{De.data?.channel===K&&U(De.data);};window.addEventListener("message",Pe),$.current=Pe;}},[K,ae,U]),te=useCallback(Pe=>{if(V.current.readOnly)return;let De=Y.current(Pe);if(De===F.current)return;if(De===_.current){_.current=null;return}F.current=De;let it={channel:K,instanceId:A,messageId:Sg(),origin:"main",timestamp:Date.now(),type:"value-sync",payload:De};D.current?D.current.postMessage(it):x.current&&!x.current.closed&&x.current.postMessage(it,"*");},[K,A]),ie=useCallback(()=>{if(typeof window>"u"||V.current.disabled||H.current||x.current&&!x.current.closed)return;H.current=true;let Pe=V.current,De=window.open("",Pe.target||"",Pe.features||wg);if(!De){H.current=false;return}x.current=De,De.document.title=Pe.title||document.title,Pe.detachedBodyClassName&&(De.document.body.className=Pe.detachedBodyClassName);let it=De.document.createElement("div");De.document.body.appendChild(it),P(it),Rg(document,De.document),B.current=Tg(document,De.document),S.current=setInterval(()=>{De.closed&&(se(),x.current=null,f||L(false),j.current?.(false));},Cg),Pe.autoFocus&&De.focus(),H.current=false;},[f,se]),Q=useCallback(()=>{x.current&&!x.current.closed&&x.current.close(),x.current=null,se();},[se]),ge=useRef(ie);ge.current=ie;let Re=useRef(Q);Re.current=Q;let Qe=useRef(te);Qe.current=te;let at=useCallback(()=>{V.current.disabled||(f||L(true),j.current?.(true));},[f]),et=useCallback(()=>{f||L(false),j.current?.(false);},[f]),me=useCallback(()=>{let Pe=!O.current;Pe&&V.current.disabled||(f||L(Pe),j.current?.(Pe));},[f]);useImperativeHandle(R,()=>({open:at,close:et,toggle:me,get isDetached(){return O.current},get window(){return x.current}}),[at,et,me]),useEffect(()=>(J(),()=>ae()),[J,ae]),useEffect(()=>{if(E)return ge.current(),()=>Re.current();Re.current();},[E]),useEffect(()=>{M!==void 0&&Qe.current(M);},[M]),useEffect(()=>{x.current&&!x.current.closed&&r&&(x.current.document.title=r);},[r]),useEffect(()=>{if(typeof window>"u")return;let Pe=()=>{V.current.closeOnMainWindowUnload&&x.current&&!x.current.closed&&x.current.close();};return window.addEventListener("beforeunload",Pe),()=>{window.removeEventListener("beforeunload",Pe),x.current&&!x.current.closed&&x.current.close(),x.current=null;}},[]);let ce=typeof n=="function"?n({open:at,close:et,toggle:me,detached:E,windowRef:x.current}):n,Oe=e==="clone"||!E,st=E&&T!==null;return jsxs(Fragment,{children:[y&&M!==void 0&&jsx("input",{type:"hidden",name:y,value:Y.current(M)}),Oe&&jsx("div",{className:vg(m),children:ce}),st&&createPortal(ce,T)]})}var ic=forwardRef(Eg);ic.displayName="AdvanceDetachable";function vr(e,t=11){return e.length*t*.6}function kr(e,t=11){let r=0;for(let n of e){let o=vr(n,t);o>r&&(r=o);}return r}function sa(e,t,r,n=12){if(e<=1||t<=0)return 1;let o=r+n,a=Math.max(1,Math.floor(t/o));return Math.max(1,Math.ceil(e/a))}var Mg=10,Ig={sm:"text-[10px]",md:"text-[11px]",lg:"text-xs"};function _e({orientation:e,ticks:t,length:r,showLine:n=true,tickSize:o=4,tickPadding:a=6,label:s,size:l="md",className:i,...c}){let d=e==="bottom";return jsxs("g",{className:g(Ig[l],i),"aria-hidden":"true",...c,children:[n&&jsx("line",{x1:0,y1:0,x2:d?r:0,y2:d?0:r,className:"stroke-gray-300 dark:stroke-gray-600",strokeWidth:1,shapeRendering:"crispEdges"}),t.map(u=>{let b=d?u.offset:0,m=d?0:u.offset;return jsxs("g",{transform:`translate(${b}, ${m})`,children:[o>0?jsx("line",{x1:0,y1:0,x2:d?0:-o,y2:d?o:0,className:"stroke-gray-300 dark:stroke-gray-600",strokeWidth:1}):null,jsx("text",{x:d?0:-(o+a),y:d?o+a:0,textAnchor:d?"middle":"end",dominantBaseline:d?"hanging":"middle",className:"fill-gray-500 dark:fill-gray-400 [font-variant-numeric:tabular-nums]",children:u.label})]},`${u.label}-${u.offset}`)}),s?jsx("text",{x:d?r/2:0,y:d?o+a+16:0,textAnchor:"middle",dominantBaseline:d?"hanging":"middle",transform:d?void 0:`translate(${-(o+a+kr(t.map(u=>u.label))+Mg)}, ${r/2}) rotate(-90)`,className:"fill-gray-600 dark:fill-gray-300 font-medium",children:s}):null]})}var dc={closeModal:"Close modal",closeDrawer:"Close drawer",closeSidebar:"Close sidebar",openSidebar:"Open sidebar",expandSidebar:"Expand sidebar",collapseSidebar:"Collapse sidebar",sidebar:"Sidebar",enterFullScreen:"Enter full screen",exitFullScreen:"Exit full screen",confirm:"Confirm",cancel:"Cancel",markdownEditorUnavailable:"Markdown editor unavailable. Pass markdownEditor from @synertech/ui/markdown-editor.",chartShowTable:"Show data table",chartHideTable:"Hide data table",chartNoData:"No data",chartLoading:"Loading chart",chartOther:"Other",chartValue:"Value",chartTarget:"Target",chartIncrease:"Increase",chartDecrease:"Decrease",chartRunningTotal:"Running total",chartConversion:"Conversion",chartDropOff:"Drop-off",chartChange:"Change",chartMedian:"Median",chartCount:"Count",chartOutliers:"Outliers",chartOpen:"Open",chartHigh:"High",chartLow:"Low",chartClose:"Close",chartRise:"Up",chartFall:"Down",chartStart:"Start",chartEnd:"End",chartProgress:"Progress",chartToday:"Today"},Wg={closeModal:"Fermer la fen\xEAtre",closeDrawer:"Fermer le panneau",closeSidebar:"Fermer le menu lat\xE9ral",openSidebar:"Ouvrir le menu lat\xE9ral",expandSidebar:"D\xE9plier le menu lat\xE9ral",collapseSidebar:"Replier le menu lat\xE9ral",sidebar:"Menu lat\xE9ral",enterFullScreen:"Passer en plein \xE9cran",exitFullScreen:"Quitter le plein \xE9cran",confirm:"Confirmer",cancel:"Annuler",markdownEditorUnavailable:"\xC9diteur Markdown indisponible. Passez markdownEditor depuis @synertech/ui/markdown-editor.",chartShowTable:"Afficher le tableau de donn\xE9es",chartHideTable:"Masquer le tableau de donn\xE9es",chartNoData:"Aucune donn\xE9e",chartLoading:"Chargement du graphique",chartOther:"Autres",chartValue:"Valeur",chartTarget:"Objectif",chartIncrease:"Hausse",chartDecrease:"Baisse",chartRunningTotal:"Cumul",chartConversion:"Conversion",chartDropOff:"D\xE9perdition",chartChange:"\xC9cart",chartMedian:"M\xE9diane",chartCount:"Effectif",chartOutliers:"Valeurs aberrantes",chartOpen:"Ouverture",chartHigh:"Haut",chartLow:"Bas",chartClose:"Cl\xF4ture",chartRise:"Hausse",chartFall:"Baisse",chartStart:"D\xE9but",chartEnd:"Fin",chartProgress:"Avancement",chartToday:"Aujourd'hui"},di=createContext(dc);function Hg({labels:e,children:t}){let r=useContext(di),n=useMemo(()=>({...r,...e}),[r,e]);return jsx(di.Provider,{value:n,children:t})}function Ge(){return useContext(di)}var Bg={default:"stroke-gray-500 dark:stroke-gray-400",primary:"stroke-blue-600 dark:stroke-blue-500",success:"stroke-green-600 dark:stroke-green-500",warning:"stroke-yellow-500 dark:stroke-yellow-400",error:"stroke-red-600 dark:stroke-red-500",info:"stroke-cyan-600 dark:stroke-cyan-500"},Fg={default:"text-gray-700 dark:text-gray-300",primary:"text-blue-600 dark:text-blue-400",success:"text-green-600 dark:text-green-400",warning:"text-yellow-600 dark:text-yellow-400",error:"text-red-600 dark:text-red-400",info:"text-cyan-600 dark:text-cyan-400"},Og={xs:24,sm:32,md:48,lg:64,xl:96},$g={xs:"text-[8px]",sm:"text-[10px]",md:"text-sm",lg:"text-base",xl:"text-xl"},_g={thin:2,normal:4,thick:8};function xo({value:e=0,indeterminate:t=false,size:r="md",thickness:n="normal",color:o="primary",progressColor:a,trackColor:s,showValue:l=false,children:i,valueFormat:c,animated:d=true,className:u,...b}){let m=Math.min(100,Math.max(0,e)),p=Og[r],C=_g[n],v=(p-C)/2,k=2*Math.PI*v,y=p/2,z=k-m/100*k,h=a||Bg[o],R=s||"stroke-gray-200 dark:stroke-gray-700",f=Fg[o],N=i??(l&&!t?jsx("span",{className:g("font-semibold",$g[r],f),children:c?c(m):`${Math.round(m)}%`}):null);return jsxs("div",{className:g("relative inline-flex items-center justify-center",u),role:"progressbar","aria-valuenow":t?void 0:m,"aria-valuemin":0,"aria-valuemax":100,...b,children:[jsxs("svg",{width:p,height:p,viewBox:`0 0 ${p} ${p}`,className:g(t&&"animate-spin"),style:{transform:"rotate(-90deg)"},children:[jsx("circle",{cx:y,cy:y,r:v,fill:"none",strokeWidth:C,className:R}),jsx("circle",{cx:y,cy:y,r:v,fill:"none",strokeWidth:C,strokeLinecap:"round",strokeDasharray:k,strokeDashoffset:t?k*.75:z,className:g(h,d&&!t&&"transition-[stroke-dashoffset] duration-300 ease-out")})]}),N&&jsx("div",{className:"absolute inset-0 flex items-center justify-center",style:{transform:"rotate(0deg)"},children:N})]})}xo.displayName="CircularProgress";var mc=640;function ui(e={}){let{width:t,fallbackWidth:r=mc}=e,n=useRef(null),[o,a]=useState(0);return useEffect(()=>{if(t!==void 0)return;let s=n.current;if(!s)return;let l=c=>{a(d=>Math.abs(d-c)<1?d:c);};if(l(s.getBoundingClientRect().width),typeof ResizeObserver>"u")return;let i=new ResizeObserver(c=>{for(let d of c)l(d.contentRect.width);});return i.observe(s),()=>i.disconnect()},[t]),t!==void 0?{ref:n,width:t,measured:true}:{ref:n,width:o>0?o:r,measured:o>0}}var qg={sm:"text-xs",md:"text-sm",lg:"text-base"};function ut({title:e,description:t,height:r=240,width:n,size:o="md",legend:a,legendPosition:s="bottom",actions:l,loading:i=false,empty:c=false,emptyState:d,table:u,tableView:b=false,showTableLabel:m,hideTableLabel:p,noDataLabel:C,loadingLabel:v,ariaLabel:k,children:y,className:z,...h}){let R=Ge(),[f,N]=useState(false),L=useId(),E=`${L}-table`,I=`${L}-title`,w=`${L}-description`,{ref:W,width:M,measured:T}=ui({width:n}),P=!!u&&b==="toggle",x=!!u&&(b===true||P&&f),B=jsx("div",{ref:W,className:"relative w-full",style:{height:r},"aria-busy":i||void 0,children:i&&c?jsx("div",{className:"flex h-full w-full items-center justify-center",children:jsx(xo,{indeterminate:true,size:"md","aria-label":v??R.chartLoading})}):c&&!i?jsx("div",{className:"flex h-full w-full items-center justify-center text-sm text-gray-500 dark:text-gray-400",children:d??C??R.chartNoData}):jsx("div",{className:g("h-full w-full transition-opacity duration-200",i&&"opacity-60"),children:typeof y=="function"?y({width:M,height:r,measured:T}):y})});return jsxs("figure",{className:g("flex w-full flex-col gap-3",z),"aria-label":k,"aria-labelledby":!k&&e?I:void 0,"aria-describedby":t?w:void 0,...h,children:[e||t||l?jsxs("figcaption",{className:"flex items-start justify-between gap-3",children:[jsxs("div",{className:"flex flex-col gap-0.5",children:[e?jsx("span",{id:I,className:g("font-semibold text-gray-900 dark:text-gray-100",qg[o]),children:e}):null,t?jsx("span",{id:w,className:"text-xs text-gray-500 dark:text-gray-400",children:t}):null]}),l]}):null,a&&s==="top"?a:null,a&&s==="right"?jsxs("div",{className:"flex items-start gap-4",children:[jsx("div",{className:"min-w-0 grow",children:B}),a]}):B,a&&s==="bottom"?a:null,P&&jsx("div",{className:"flex",children:jsx("button",{type:"button",onClick:()=>N(H=>!H),"aria-expanded":f,"aria-controls":x?E:void 0,className:"cursor-pointer rounded-sm text-xs font-medium text-gray-600 underline underline-offset-2 hover:text-gray-900 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 dark:text-gray-400 dark:hover:text-white",children:f?p??R.chartHideTable:m??R.chartShowTable})}),x&&jsx("div",{id:E,children:u})]})}var gc=[];function Ot({width:e,height:t,horizontal:r=gc,vertical:n=gc,className:o,...a}){return jsxs("g",{className:g("stroke-gray-200 dark:stroke-gray-700",o),strokeWidth:1,shapeRendering:"crispEdges","aria-hidden":"true",...a,children:[r.map(s=>jsx("line",{x1:0,y1:s,x2:e,y2:s},`h-${s}`)),n.map(s=>jsx("line",{x1:s,y1:0,x2:s,y2:t},`v-${s}`))]})}var Zg={line:"h-0.5 w-3 rounded-full",rect:"h-2.5 w-2.5 rounded-sm",dot:"h-2 w-2 rounded-full"},Qg={sm:"text-[11px]",md:"text-xs",lg:"text-sm"};function $t({items:e,position:t="bottom",marker:r="line",onToggle:n,size:o="md",className:a,...s}){return e.length===0?null:jsx("ul",{className:g("flex list-none flex-wrap gap-x-4 gap-y-1 p-0",t==="right"?"flex-col":"flex-row",t==="top"||t==="bottom"?"justify-center":"",Qg[o],a),...s,children:e.map(l=>{let i=jsx("span",{className:g("shrink-0",Zg[l.marker??r]),style:{backgroundColor:l.color},"aria-hidden":"true"}),c=jsx("span",{className:g(l.hidden&&"line-through"),children:l.label}),d=jsxs(Fragment,{children:[i,c]}),u=g("flex items-center gap-1.5 text-gray-600 dark:text-gray-300",l.hidden&&"text-gray-400 dark:text-gray-500");return jsx("li",{children:n?jsx("button",{type:"button",onClick:()=>n(l.key),"aria-pressed":!l.hidden,className:g(u,"cursor-pointer rounded-sm hover:text-gray-900 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 dark:hover:text-white"),children:d}):jsx("span",{className:u,children:d})},l.key)})})}function gn({children:e,className:t,...r}){return jsx("table",{className:g("w-full text-sm text-left rtl:text-right text-gray-500 dark:text-gray-400",t),...r,children:e})}function pn({children:e,className:t,...r}){return jsx("tbody",{className:g(t),...r,children:e})}function _t({children:e,onClick:t,hidden:r=false,className:n,...o}){return jsx("td",{className:g("px-6 py-4",n),onClick:t,hidden:r,...o,children:e})}function fn({children:e,className:t,...r}){return jsx("thead",{className:g("text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400",t),...r,children:jsx("tr",{children:e})})}function Nt({children:e,onClick:t,hidden:r=false,className:n,sortable:o=false,...a}){return jsx("th",{scope:"col",className:g("px-6 py-3",o&&"cursor-pointer hover:bg-gray-100 dark:hover:bg-gray-600",n),onClick:t,hidden:r,...a,children:e})}function bn({children:e,onClick:t,clickable:r=true,className:n,...o}){return jsx("tr",{className:g("bg-white border-b dark:bg-gray-800 dark:border-gray-700",r&&"hover:bg-gray-50 hover:cursor-pointer dark:hover:bg-gray-600",n),onClick:t,...o,children:e})}var sp=8,Ja=["var(--color-chart-1)","var(--color-chart-2)","var(--color-chart-3)","var(--color-chart-4)","var(--color-chart-5)","var(--color-chart-6)","var(--color-chart-7)","var(--color-chart-8)"],Tr="var(--color-chart-muted)",gi="var(--color-chart-up)",pi="var(--color-chart-down)",qn=3,bc=false;function Pr(e,t){return t||(e<0||e>=8?(bc||(bc=true,console.warn('[@synertech/ui] A chart was given more than 8 series. Extra series share the de-emphasis grey: fold the tail into an "Other" bucket, or split the chart, instead of relying on a ninth colour.')),Tr):Ja[e])}function Er(e,t,r){return r&&e.key!==r?Tr:Pr(t,e.color)}function Xt(e){return e.label??e.key}function Or(e,t){return e.map((r,n)=>({key:r.key,label:Xt(r),color:Er(r,n,t),hidden:r.hidden,...r.type==="line"?{marker:"line"}:{}}))}var mi=["var(--color-chart-seq-1)","var(--color-chart-seq-2)","var(--color-chart-seq-3)","var(--color-chart-seq-4)","var(--color-chart-seq-5)","var(--color-chart-seq-6)"],ia=["var(--color-chart-ord-1)","var(--color-chart-ord-2)","var(--color-chart-ord-3)","var(--color-chart-ord-4)","var(--color-chart-ord-5)"],Yn=["var(--color-chart-div-1)","var(--color-chart-div-2)","var(--color-chart-div-3)","var(--color-chart-div-4)","var(--color-chart-div-5)","var(--color-chart-div-6)","var(--color-chart-div-7)"],hc=3,yc=[false,false,false,false,true,true],fi=[false,false,true,true,true],xc=[true,false,false,false,false,false,true],es=7;function la(e){return Number.isFinite(e)?e<0?0:e>1?1:e:0}function ko(e,t){if(e.length===0)return Tr;if(e.length===1)return e[0];let r=la(t)*(e.length-1),n=Math.min(e.length-2,Math.floor(r)),o=r-n;if(o<=.005)return e[n];if(o>=.995)return e[n+1];let a=Math.round(o*1e3)/10;return `color-mix(in oklab, ${e[n+1]} ${a}%, ${e[n]})`}function ip(e,t){return t<=1?.5:Math.min(t-1,Math.floor(la(e)*t))/(t-1)}function vc(e,t,r,n,o){let a=l=>{let i=n(l);return r===null?i:ip(i,r)},s=(l=>Number.isFinite(l)?ko(t,a(l)):Tr);return Object.defineProperties(s,{domain:{value:[e[0],e[1]],enumerable:true},colors:{value:t,enumerable:true},steps:{value:r,enumerable:true},position:{value:l=>Number.isFinite(l)?a(l):0,enumerable:true},onDark:{value:l=>{if(!Number.isFinite(l)||o.length===0)return false;let i=Math.round(a(l)*(o.length-1));return o[i]??false},enumerable:true}}),s}function ca(e,t={}){let{steps:r,colors:n=mi,darkStops:o}=t,[a,s]=e,l=s-a;return vc(e,n,r??null,i=>l===0?0:(i-a)/l,o??(n===mi?yc:[]))}function Co(e,t={}){let{steps:r,colors:n=Yn,darkStops:o,center:a=0,symmetric:s=true}=t,[l,i]=e;if(s){let u=Math.max(Math.abs(i-a),Math.abs(a-l));l=a-u,i=a+u;}let c=n===Yn?hc:(n.length-1)/2,d=n.length-1;return vc([l,i],n,r??null,u=>{if(u>=a){let p=i-a,C=p<=0?0:la((u-a)/p);return (c+C*(d-c))/d}let b=a-l,m=b<=0?0:la((a-u)/b);return (c-m*c)/d},o??(n===Yn?xc:[]))}function lp(e,t=ia.length,r=ia){return t<=1?r[r.length-1]??Tr:ko(r,la(e/(t-1)))}function Ee(e,t){let r=e[t];if(r==null||r==="")return null;if(typeof r=="number")return Number.isFinite(r)?r:null;if(typeof r=="boolean")return r?1:0;if(typeof r=="string"){let n=Number(r);return Number.isFinite(n)?n:null}return null}function mt(e,t,r){let n=e[t];return n instanceof Date||typeof n=="number"||typeof n=="string"?n:n==null?r:String(n)}function ur(e,t){let r=[];for(let n of e)for(let o of t)r.push(Ee(n,o));return r}function da(e,t={}){if(!Number.isFinite(e))return "\u2014";let{locale:r,compact:n,currency:o,unit:a,minimumFractionDigits:s,maximumFractionDigits:l}=t,i=new Intl.NumberFormat(r,{notation:n?"compact":"standard",...o?{style:"currency",currency:o}:{},...s!==void 0?{minimumFractionDigits:s}:{},...l!==void 0?{maximumFractionDigits:l}:n?{maximumFractionDigits:1}:{}}).format(e);return a?`${i}${a}`:i}function cp(e,t){return da(e,{locale:t,compact:true})}function rt(e,t){return Number.isFinite(e)?Math.abs(e)<1e4?da(e,{locale:t}):cp(e,t):"\u2014"}function Gt(e,t={}){if(!Number.isFinite(e))return "\u2014";let{locale:r,maximumFractionDigits:n=1,alreadyScaled:o,signed:a}=t;return new Intl.NumberFormat(r,{style:"percent",maximumFractionDigits:n,...a?{signDisplay:"exceptZero"}:{}}).format(o?e/100:e)}function Ke(e,t){return e instanceof Date?new Intl.DateTimeFormat(t,{day:"2-digit",month:"short"}).format(e):typeof e=="number"?da(e,{locale:t}):e}function It({data:e,series:t,xKey:r,xLabel:n,formatX:o,formatValue:a,caption:s,emptyLabel:l,className:i,...c}){let d=t.filter(m=>!m.hidden);if(e.length===0||d.length===0)return jsx("div",{className:g("text-sm text-gray-500 dark:text-gray-400",i),...c,children:l});let u=(m,p)=>{let C=mt(m,r,p);return o?o(C,p):Ke(C)},b=m=>m===null?"\u2014":a?a(m):da(m);return jsx("div",{className:g("w-full overflow-x-auto",i),...c,children:jsxs(gn,{children:[s?jsx("caption",{className:"sr-only",children:s}):null,jsxs(fn,{children:[jsx(Nt,{children:n??r}),d.map(m=>jsx(Nt,{className:"text-right",children:Xt(m)},m.key))]}),jsx(pn,{children:e.map((m,p)=>jsxs(bn,{clickable:false,children:[jsx(_t,{className:"font-medium text-gray-900 dark:text-gray-100",children:u(m,p)}),d.map(C=>jsx(_t,{className:"text-right [font-variant-numeric:tabular-nums]",children:b(Ee(m,C.key))},C.key))]},p))})]})})}function gt({x:e,y:t,visible:r=true,containerWidth:n,offset:o=12,className:a,style:s,children:l,...i}){if(!r)return null;let c=n!==void 0&&e>n*.6;return jsx("div",{role:"tooltip",className:g("pointer-events-none absolute top-0 left-0 z-10 min-w-24 rounded-md border border-gray-200 bg-white px-2.5 py-2 text-xs shadow-lg dark:border-gray-700 dark:bg-gray-800",a),style:{transform:`translate(${c?e-o:e+o}px, ${t}px) translate(${c?"-100%":"0"}, -50%)`,...s},...i,children:l})}function Cr({title:e,points:t}){return jsxs("div",{className:"flex flex-col gap-1",children:[e!=null&&jsx("div",{className:"font-medium text-gray-900 dark:text-gray-100",children:e}),jsx("div",{className:"flex flex-col gap-0.5",children:t.map(r=>jsxs("div",{className:"flex items-center gap-2",children:[jsx("span",{className:"h-0.5 w-3 shrink-0 rounded-full",style:{backgroundColor:r.color},"aria-hidden":"true"}),jsx("span",{className:"grow text-gray-500 dark:text-gray-400",children:r.seriesLabel}),jsx("span",{className:"font-semibold text-gray-900 [font-variant-numeric:tabular-nums] dark:text-gray-100",children:r.formattedValue})]},r.seriesKey))})]})}function St(e){return e instanceof Date?e.toISOString():String(e)}function Jr(e){if(e instanceof Date)return e.getTime();if(typeof e=="number")return e;let t=Number(e);return Number.isFinite(t)?t:Number.NaN}function Dr(e,t){let[r,n]=e,[o,a]=t,s=n-r,l=s===0?0:(a-o)/s,i=(c=>Number.isFinite(c)?s===0?(o+a)/2:o+(c-r)*l:Number.NaN);return Object.defineProperties(i,{domain:{value:[r,n],enumerable:true},range:{value:[o,a],enumerable:true},invert:{value:c=>l===0?r:r+(c-o)/l,enumerable:true}}),i}function hn(e,t,r={}){let{paddingInner:n=.2,paddingOuter:o=n/2}=r,[a,s]=t,l=e.length,i=l===0?0:(s-a)/Math.max(1,l-n+o*2),c=i*(1-n),d=a+(s-a-i*(l-n))/2,u=new Map;e.forEach((p,C)=>{u.has(St(p))||u.set(St(p),C);});let b=p=>d+i*p,m=(p=>{let C=u.get(St(p));return C===void 0?Number.NaN:b(C)});return Object.defineProperties(m,{bandwidth:{value:c,enumerable:true},step:{value:i,enumerable:true},domain:{value:e,enumerable:true},range:{value:[a,s],enumerable:true},center:{value:p=>{let C=u.get(St(p));return C===void 0?Number.NaN:b(C)+c/2},enumerable:true},positions:{value:()=>e.map((p,C)=>b(C)),enumerable:true},indexOf:{value:p=>u.get(St(p))??-1,enumerable:true}}),m}function Wt(e,t){if(e.length===0)return -1;let r=0,n=Number.POSITIVE_INFINITY;for(let o=0;o<e.length;o+=1){let a=Math.abs(e[o]-t);a<n&&(n=a,r=o);}return r}function ua(e){let t=Number(e.toPrecision(12));return Object.is(t,-0)?0:t}function Cc(e){if(!Number.isFinite(e)||e<=0)return 1;let t=Math.floor(Math.log10(e)),r=Math.pow(10,t),n=e/r,o=n<=1?1:n<=2?2:n<=5?5:10;return ua(o*r)}function ts(e,t,r=5){if(!Number.isFinite(e)||!Number.isFinite(t))return [0,1];if(e===t){if(e===0)return [0,1];let o=Math.abs(e)*.5;[e,t]=[e-o,e+o];}let n=Cc((t-e)/Math.max(1,r));return [ua(Math.floor(e/n)*n),ua(Math.ceil(t/n)*n)]}function ma(e,t,r=5){if(!Number.isFinite(e)||!Number.isFinite(t))return [];if(r<=0)return [];if(e===t)return [ua(e)];e>t&&([e,t]=[t,e]);let n=Cc((t-e)/r),o=Math.ceil(e/n),a=Math.floor(t/n),s=[];for(let l=o;l<=a&&s.length<=1e3;l+=1)s.push(ua(l*n));return s}function Kt(e){let t=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY,n=false;for(let o of e)o==null||!Number.isFinite(o)||(n=true,o<t&&(t=o),o>r&&(r=o));return n?[t,r]:null}function No(e,t={}){let{domain:r,includeZero:n=true,ticks:o=5}=t;if(Array.isArray(r))return r;let a=Kt(e);if(!a)return [0,1];let[s,l]=a;return n&&(s=Math.min(s,0),l=Math.max(l,0)),ts(s,l,o)}var hi={top:10,right:16,bottom:28},wc=16,dp=14,up=32;function Qt({width:e,height:t,data:r,x:n,y:o,bounds:a,margin:s,orientation:l="vertical",placement:i="point",bandPaddingInner:c=.2,formatValue:d,formatX:u,extraTop:b=0,defaultIncludeZero:m=false}){let p=l==="vertical",C=r.map((V,Y)=>mt(V,n.key,Y)),v=No(a??[],{domain:o?.domain,includeZero:o?.includeZero??m,ticks:o?.ticks??5}),k=o?.hidden??false,y=n.hidden??false,z=k?[]:ma(v[0],v[1],o?.ticks??5),h=z.map(d),R=p&&(n.scale==="linear"||n.scale==="time"),f=C.map((V,Y)=>u(V,Y)),N=p?k:y,L=p?h:f,E=p?o?.width:n.height,I=p?y:k,w=p?n.height:void 0,W=p?n.label:o?.label,M=p?o?.label:n.label,T=p&&!y&&i!=="band"?f:[],P=V=>V?vr(V)/2+4:0,x={top:s?.top??hi.top+b,right:s?.right??Math.max(hi.right,P(T[T.length-1])),bottom:s?.bottom??(I?8:w??hi.bottom+(W?wc:0)),left:s?.left??(N?8:E??Math.max(Math.max(up,kr(L)+dp)+(M?wc:0),P(T[0])))},D=Math.max(0,e-x.left-x.right),S=Math.max(0,t-x.top-x.bottom),B=p?Dr(v,[S,0]):Dr(v,[0,D]),H=p?D:S,$,_=0,F;if(R){let V=C.map(Jr),Y=Kt(V)??[0,1],X=Dr(Y,[0,H]);$=V.map(G=>X(G)),F=y?[]:ma(Y[0],Y[1],n.ticks??5).map(G=>({value:G,offset:X(G),label:u(n.scale==="time"?new Date(G):G,0)}));}else if(i==="band"){let V=hn(r.map((Y,X)=>X),[0,H],{paddingInner:c});$=r.map((Y,X)=>V(X)),_=V.bandwidth,F=[];}else {let V=r.length>1?H/(r.length-1):0;$=r.map((Y,X)=>r.length>1?X*V:H/2),F=[];}let A=$.map(V=>V+_/2);if(!R&&!y){let V=p?kr(f):15,Y=sa(f.length,H,V);F=f.map((X,G)=>({value:C[G],offset:A[G],label:X})).filter((X,G)=>G%Y===0);}return {margin:x,innerWidth:D,innerHeight:S,orientation:l,valueScale:B,domain:v,valueTicks:z.map(V=>({value:V,offset:B(V),label:d(V)})),xValues:C,categoryPositions:$,bandwidth:_,categoryCenters:A,categoryTicks:F,categoryLength:H}}function Ct(e){return Math.round(e*100)/100}function Nc(e){return e.defined!==false&&Number.isFinite(e.x)&&Number.isFinite(e.y)}function Sc(e,t=false){if(t){let o=e.filter(Nc);return o.length>0?[o]:[]}let r=[],n=[];for(let o of e)Nc(o)?n.push(o):n.length>0&&(r.push(n),n=[]);return n.length>0&&r.push(n),r}function mp(e){let t=e.length,r=[],n=[];for(let a=0;a<t-1;a+=1){let s=e[a+1].x-e[a].x;r.push(s),n.push(s===0?0:(e[a+1].y-e[a].y)/s);}let o=new Array(t);o[0]=n[0],o[t-1]=n[t-2];for(let a=1;a<t-1;a+=1){let s=n[a-1],l=n[a];if(s*l<=0)o[a]=0;else {let i=2*r[a]+r[a-1],c=r[a]+2*r[a-1];o[a]=(i+c)/(i/s+c/l);}}return o}function xi(e,t){if(e.length<2)return "";if(t==="monotone"&&e.length>2){let n=mp(e),o="";for(let a=0;a<e.length-1;a+=1){let s=e[a],l=e[a+1],i=(l.x-s.x)/3;o+=` C${Ct(s.x+i)},${Ct(s.y+n[a]*i)} ${Ct(l.x-i)},${Ct(l.y-n[a+1]*i)} ${Ct(l.x)},${Ct(l.y)}`;}return o}let r="";for(let n=1;n<e.length;n+=1){let o=e[n-1],a=e[n];if(t==="step"){let s=Ct((o.x+a.x)/2);r+=` L${s},${Ct(o.y)} L${s},${Ct(a.y)}`;}else t==="stepAfter"&&(r+=` L${Ct(a.x)},${Ct(o.y)}`);r+=` L${Ct(a.x)},${Ct(a.y)}`;}return r}function $r(e,t="linear",r={}){return Sc(e,r.connectNulls).map(n=>{let[o]=n;return `M${Ct(o.x)},${Ct(o.y)}${xi(n,t)}`}).join(" ")}function ga(e,t,r="linear",n={}){let o=Sc(e,n.connectNulls);if(o.length===0)return "";let a=typeof t=="number"?null:new Map(t.map(s=>[Ct(s.x),s]));return o.map(s=>{let[l]=s,i=s[s.length-1],c=`M${Ct(l.x)},${Ct(l.y)}${xi(s,r)}`;if(a===null){let b=Ct(t);return `${c} L${Ct(i.x)},${b} L${Ct(l.x)},${b} Z`}let d=s.map(b=>a.get(Ct(b.x))).filter(b=>b!==void 0).reverse();if(d.length===0)return `${c} Z`;let[u]=d;return `${c} L${Ct(u.x)},${Ct(u.y)}${xi(d,r)} Z`}).join(" ")}function ir({x:e,y:t,width:r,height:n,radius:o=4,round:a="none"}){if(!(r>0)||!(n>0))return "";let s=Math.max(0,Math.min(o,r/2,n/2)),[l,i]=[Ve(e),Ve(t)],[c,d]=[Ve(e+r),Ve(t+n)];if(s===0||a==="none")return `M${l},${i} L${c},${i} L${c},${d} L${l},${d} Z`;switch(a){case "top":return `M${l},${d} L${l},${Ve(t+s)} Q${l},${i} ${Ve(e+s)},${i} L${Ve(e+r-s)},${i} Q${c},${i} ${c},${Ve(t+s)} L${c},${d} Z`;case "bottom":return `M${l},${i} L${c},${i} L${c},${Ve(t+n-s)} Q${c},${d} ${Ve(e+r-s)},${d} L${Ve(e+s)},${d} Q${l},${d} ${l},${Ve(t+n-s)} Z`;case "right":return `M${l},${i} L${Ve(e+r-s)},${i} Q${c},${i} ${c},${Ve(t+s)} L${c},${Ve(t+n-s)} Q${c},${d} ${Ve(e+r-s)},${d} L${l},${d} Z`;case "left":return `M${c},${i} L${Ve(e+s)},${i} Q${l},${i} ${l},${Ve(t+s)} L${l},${Ve(t+n-s)} Q${l},${d} ${Ve(e+s)},${d} L${c},${d} Z`;default:return `M${l},${i} L${c},${i} L${c},${d} L${l},${d} Z`}}function Ve(e){return Math.round(e*100)/100}function In(e,t,r,n){return {x:Ve(e+r*Math.sin(n)),y:Ve(t-r*Math.cos(n))}}function Rc({cx:e,cy:t,innerRadius:r,outerRadius:n,startAngle:o,endAngle:a}){let s=a-o;if(!(n>0)||!(s>0))return "";let l=s>=Math.PI*2-1e-9,i=Math.max(0,Math.min(r,n));if(l){let p=In(e,t,n,0),C=In(e,t,n,Math.PI),v=`M${p.x},${p.y} A${Ve(n)},${Ve(n)} 0 1 1 ${C.x},${C.y} A${Ve(n)},${Ve(n)} 0 1 1 ${p.x},${p.y} Z`;if(i===0)return v;let k=In(e,t,i,0),y=In(e,t,i,Math.PI);return `${v} M${k.x},${k.y} A${Ve(i)},${Ve(i)} 0 1 0 ${y.x},${y.y} A${Ve(i)},${Ve(i)} 0 1 0 ${k.x},${k.y} Z`}let c=s>Math.PI?1:0,d=In(e,t,n,o),u=In(e,t,n,a);if(i===0)return `M${Ve(e)},${Ve(t)} L${d.x},${d.y} A${Ve(n)},${Ve(n)} 0 ${c} 1 ${u.x},${u.y} Z`;let b=In(e,t,i,a),m=In(e,t,i,o);return `M${d.x},${d.y} A${Ve(n)},${Ve(n)} 0 ${c} 1 ${u.x},${u.y} L${b.x},${b.y} A${Ve(i)},${Ve(i)} 0 ${c} 0 ${m.x},${m.y} Z`}function rs(e,t,r="none"){return e.map((n,o)=>{let a=t.map(d=>Ee(n,d)),s=a.reduce((d,u)=>d+(u===null?0:Math.abs(u)),0),l=0,i=0,c=t.map((d,u)=>{let b=a[u];if(r==="none")return {key:d,value:b,start:0,end:b??0};if(b===null)return {key:d,value:null,start:l,end:l};let m=r==="percent"?s===0?0:b/s*100:b;if(m>=0){let C=l;return l+=m,{key:d,value:b,start:C,end:l}}let p=i;return i+=m,{key:d,value:b,start:i,end:p}});return {index:o,datum:n,total:s,segments:c}})}function ns(e){let t=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY,n=false;for(let o of e)for(let a of o.segments)a.value!==null&&(n=true,t=Math.min(t,a.start,a.end),r=Math.max(r,a.start,a.end));return n?[t,r]:null}function Tc(e,t,r={}){let{centerKey:n,percent:o=false}=r,a=n?t.indexOf(n):-1,s=a>=0?a:Math.max(0,Math.min(t.length,r.negativeCount??Math.floor(t.length/2)));return e.map((l,i)=>{let c=t.map(k=>Ee(l,k)),d=c.reduce((k,y)=>k+(y===null?0:Math.abs(y)),0),u=c.map(k=>k===null?null:o?d===0?0:k/d*100:k),b=t.map(k=>({key:k,value:null,start:0,end:0,base:false,outer:false})),m=0;a>=0&&(m=(u[a]??0)/2,b[a]={key:t[a],value:c[a],start:m===0?0:-m,end:m,base:true,outer:false});let p=m===0?0:-m,C=-1;for(let k=s-1;k>=0;k-=1){let y=u[k];if(y===null){b[k]={...b[k],value:null,start:p,end:p};continue}let z=p-Math.abs(y);b[k]={key:t[k],value:c[k],start:p,end:z,base:a<0&&C===-1,outer:false},p=z,C=k;}C>=0&&(b[C].outer=true),p=m;let v=-1;for(let k=a>=0?a+1:s;k<t.length;k+=1){let y=u[k];if(y===null){b[k]={...b[k],value:null,start:p,end:p};continue}let z=p+Math.abs(y);b[k]={key:t[k],value:c[k],start:p,end:z,base:a<0&&v===-1,outer:false},p=z,v=k;}return v>=0?b[v].outer=true:a>=0&&(b[a].outer=true),{index:i,datum:l,total:d,segments:b}})}var pp=.12,fp=.9,bp=10,hp=memo(function({bands:t,stacked:r}){return jsx("g",{children:t.map(n=>jsxs("g",{children:[jsx("path",{d:n.area,fill:n.color,fillOpacity:r?fp:pp,stroke:"none"}),n.gap?jsx("path",{d:n.gap,fill:"none",strokeWidth:2,className:"stroke-white dark:stroke-gray-800"}):null,jsx("path",{d:n.edge,fill:"none",stroke:n.color,strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"})]},n.key))})});function yp({width:e,height:t,data:r,resolvedSeries:n,x:o,y:a,grid:s,size:l,curve:i,stack:c,baseline:d,connectNulls:u,referenceLines:b,margin:m,tooltip:p,onPointClick:C,plotLabel:v,formatValue:k,formatRaw:y,formatX:z}){let[h,R]=useState(null),f=useMemo(()=>{let T=n.filter(A=>!A.hidden),P=T.map(A=>A.key),x=c!=="none",D=rs(r,P,c),S=x?ns(D):Kt([...ur(r,P),d]),B=Qt({width:e,height:t,data:r,x:o,y:a,bounds:S,margin:m,placement:"point",formatValue:k,formatX:z,defaultIncludeZero:true}),H=B.categoryCenters,$=B.valueScale,_=$(x?0:d),F=T.map((A,V)=>{let Y=r.map((j,O)=>{let K=D[O].segments[V];return {x:H[O],y:K.value===null?Number.NaN:$(K.end),defined:K.value!==null}}),X=r.map((j,O)=>{let K=D[O].segments[V];return {x:H[O],y:K.value===null?Number.NaN:$(x?K.start:d),defined:K.value!==null}}),G={connectNulls:u};return {key:A.key,color:A.color,area:x?ga(Y,X,i,G):ga(Y,_,i,G),edge:$r(Y,i,G),gap:x&&V>0?$r(X,i,G):""}});return {visible:T,rows:D,stacked:x,xValues:B.xValues,positions:H,xTicks:B.categoryTicks,yTicks:B.valueTicks,valueScale:$,innerWidth:B.innerWidth,innerHeight:B.innerHeight,margin:B.margin,bands:F}},[r,n,o,a,e,t,m,i,c,d,u,k,z]),N=useCallback(T=>f.visible.map((P,x)=>{let D=Ee(r[T],P.key),S=f.rows[T].segments[x],B=D===null?"\u2014":c==="percent"?`${y(D)} (${k(S.end-S.start)})`:k(D);return {seriesKey:P.key,seriesLabel:Xt(P),color:P.color,value:D,formattedValue:B,datum:r[T]}}),[r,f.visible,f.rows,c,k,y]),L=useCallback(T=>{if(p===false||r.length===0)return;let P=T.currentTarget.getBoundingClientRect(),x=T.clientX-P.left-f.margin.left,D=Wt(f.positions,x);R(D>=0?D:null);},[p,r.length,f.margin.left,f.positions]),E=useCallback(T=>{if(r.length===0)return;let P=r.length-1,x=h??0,D=T.key==="ArrowRight"?Math.min(P,x+1):T.key==="ArrowLeft"?Math.max(0,x-1):T.key==="Home"?0:T.key==="End"?P:T.key==="Escape"?null:void 0;D!==void 0&&(T.preventDefault(),R(D));},[r.length,h]),I=useCallback(()=>{if(!C||h===null)return;let[T]=N(h);T&&C({...T,index:h,x:f.xValues[h]});},[C,h,N,f.xValues]),w=h===null?null:N(h),W=h===null?[]:f.visible.map((T,P)=>{let x=f.rows[h].segments[P];return x.value===null?null:{key:T.key,color:T.color,y:f.valueScale(x.end)}}).filter(T=>T!==null),M=h===null||w===null?null:{x:f.xValues[h],xLabel:z(f.xValues[h],h),index:h,points:w};return jsxs(Fragment,{children:[jsxs("svg",{width:e,height:t,role:"img","aria-label":v??f.visible.map(T=>Xt(T)).join(", "),tabIndex:0,className:"touch-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500",onPointerMove:L,onPointerLeave:()=>R(null),onKeyDown:E,onBlur:()=>R(null),onClick:I,children:[jsxs("g",{transform:`translate(${f.margin.left}, ${f.margin.top})`,children:[jsx(Ot,{width:f.innerWidth,height:f.innerHeight,horizontal:s==="y"||s==="both"?f.yTicks.map(T=>T.offset):void 0,vertical:s==="x"||s==="both"?f.xTicks.map(T=>T.offset):void 0}),jsx(hp,{bands:f.bands,stacked:f.stacked}),b?.map(T=>{let P=f.valueScale(T.value),x=P<bp?P+12:P-4;return jsxs("g",{children:[jsx("line",{x1:0,y1:P,x2:f.innerWidth,y2:P,stroke:T.color??"var(--color-chart-muted)",strokeWidth:1,strokeDasharray:T.dashed===false?void 0:"4 4"}),T.label?jsx("text",{x:f.innerWidth,y:x,textAnchor:"end",className:"fill-gray-500 text-[10px] dark:fill-gray-400",children:T.label}):null]},`${T.value}-${T.label??""}`)}),h!==null?jsxs("g",{"aria-hidden":"true",children:[jsx("line",{x1:f.positions[h],y1:0,x2:f.positions[h],y2:f.innerHeight,className:"stroke-gray-400 dark:stroke-gray-500",strokeWidth:1}),W.map(T=>jsx("circle",{cx:f.positions[h],cy:T.y,r:4,fill:T.color,strokeWidth:2,className:"stroke-white dark:stroke-gray-800"},T.key))]}):null]}),jsx("g",{transform:`translate(${f.margin.left}, ${f.margin.top+f.innerHeight})`,children:o.hidden?null:jsx(_e,{orientation:"bottom",ticks:f.xTicks,length:f.innerWidth,label:o.label,size:l})}),jsx("g",{transform:`translate(${f.margin.left}, ${f.margin.top})`,children:a?.hidden?null:jsx(_e,{orientation:"left",ticks:f.yTicks,length:f.innerHeight,showLine:false,label:a?.label,size:l})})]}),M&&p!==false?jsx(gt,{x:f.margin.left+f.positions[M.index],y:f.margin.top+(W.length>0?Math.min(...W.map(T=>T.y)):f.innerHeight/2),containerWidth:e,children:typeof p=="function"?p(M):jsx(Cr,{title:M.xLabel,points:M.points})}):null]})}function xp({data:e,series:t,x:r,y:n,height:o=240,width:a,size:s="md",grid:l="y",legend:i,tooltip:c=true,tableView:d=false,emphasis:u,title:b,description:m,loading:p=false,emptyState:C,onPointClick:v,curve:k="monotone",stack:y="none",baseline:z=0,connectNulls:h=false,referenceLines:R,legendToggle:f=true,margin:N,locale:L,plotLabel:E,className:I,...w}){let[W,M]=useState(()=>new Set),T=useMemo(()=>t.map((A,V)=>({...A,hidden:A.hidden||W.has(A.key),color:Er(A,V,u)})),[t,W,u]),P=y==="percent",x=useMemo(()=>P?{domain:[0,100],...n}:n,[P,n]),D=useMemo(()=>n?.format??(P?A=>Gt(A,{locale:L,alreadyScaled:true,maximumFractionDigits:0}):A=>rt(A,L)),[n?.format,P,L]),S=useMemo(()=>A=>rt(A,L),[L]),B=useMemo(()=>r.format??(A=>r.scale==="time"?Ke(A instanceof Date?A:new Date(Jr(A)),L):Ke(A,L)),[r.format,r.scale,L]),H=useCallback(A=>{M(V=>{let Y=new Set(V);return Y.has(A)?Y.delete(A):Y.add(A),Y});},[]),$=i===void 0?t.length>=2:i!==false,_=typeof i=="string"?i:"bottom",F=T.filter(A=>!A.hidden).length;return jsx(ut,{title:b,description:m,height:o,width:a,size:s,loading:p,empty:e.length===0||F===0,emptyState:C,tableView:d,legendPosition:_,legend:$?jsx($t,{items:Or(T,u),position:_,marker:"rect",size:s,onToggle:f?H:void 0}):void 0,table:d?jsx(It,{data:e,series:T,xKey:r.key,xLabel:r.label??r.key,formatX:B,formatValue:S,caption:typeof b=="string"?b:void 0}):void 0,className:I,...w,children:({width:A})=>jsx(yp,{width:A,height:o,data:e,resolvedSeries:T,x:r,y:x,grid:l,size:s,curve:k,stack:y,baseline:z,connectNulls:h,referenceLines:R,margin:N,tooltip:c,onPointClick:v,plotLabel:E,formatValue:D,formatRaw:S,formatX:B})})}var kp={xs:"h-6 w-6 text-xs",sm:"h-8 w-8 text-sm",md:"h-10 w-10 text-base",lg:"h-12 w-12 text-lg",xl:"h-16 w-16 text-xl"},Cp={circle:"rounded-full",square:"rounded-none",rounded:"rounded-md"};function wp({src:e,alt:t="Avatar",fallback:r,size:n="md",variant:o="circle",border:a=false,className:s,...l}){return jsx("div",{className:g("inline-flex items-center justify-center overflow-hidden bg-gray-200 font-medium text-gray-600 dark:bg-gray-700 dark:text-gray-300",kp[n],Cp[o],a&&"ring-2 ring-white dark:ring-gray-900",s),...l,children:e?jsx("img",{src:e,alt:t,className:"h-full w-full object-cover"}):jsx("span",{children:r||t.charAt(0).toUpperCase()})})}var Np={default:{solid:"bg-gray-500 text-white",soft:"bg-gray-100 text-gray-700 dark:bg-gray-700 dark:text-gray-300",outlined:"border border-gray-300 text-gray-600 dark:border-gray-600 dark:text-gray-400",subtle:"bg-gray-50 text-gray-600 dark:bg-gray-800 dark:text-gray-400"},primary:{solid:"bg-blue-600 text-white",soft:"bg-blue-100 text-blue-700 dark:bg-blue-900/50 dark:text-blue-300",outlined:"border border-blue-500 text-blue-600 dark:border-blue-400 dark:text-blue-400",subtle:"bg-blue-50 text-blue-600 dark:bg-blue-900/30 dark:text-blue-400"},success:{solid:"bg-green-600 text-white",soft:"bg-green-100 text-green-700 dark:bg-green-900/50 dark:text-green-300",outlined:"border border-green-500 text-green-600 dark:border-green-400 dark:text-green-400",subtle:"bg-green-50 text-green-600 dark:bg-green-900/30 dark:text-green-400"},warning:{solid:"bg-yellow-500 text-white",soft:"bg-yellow-100 text-yellow-700 dark:bg-yellow-900/50 dark:text-yellow-300",outlined:"border border-yellow-400 text-yellow-600 dark:border-yellow-400 dark:text-yellow-400",subtle:"bg-yellow-50 text-yellow-600 dark:bg-yellow-900/30 dark:text-yellow-400"},error:{solid:"bg-red-600 text-white",soft:"bg-red-100 text-red-700 dark:bg-red-900/50 dark:text-red-300",outlined:"border border-red-500 text-red-600 dark:border-red-400 dark:text-red-400",subtle:"bg-red-50 text-red-600 dark:bg-red-900/30 dark:text-red-400"},info:{solid:"bg-cyan-600 text-white",soft:"bg-cyan-100 text-cyan-700 dark:bg-cyan-900/50 dark:text-cyan-300",outlined:"border border-cyan-500 text-cyan-600 dark:border-cyan-400 dark:text-cyan-400",subtle:"bg-cyan-50 text-cyan-600 dark:bg-cyan-900/30 dark:text-cyan-400"},purple:{solid:"bg-purple-600 text-white",soft:"bg-purple-100 text-purple-700 dark:bg-purple-900/50 dark:text-purple-300",outlined:"border border-purple-500 text-purple-600 dark:border-purple-400 dark:text-purple-400",subtle:"bg-purple-50 text-purple-600 dark:bg-purple-900/30 dark:text-purple-400"},indigo:{solid:"bg-indigo-600 text-white",soft:"bg-indigo-100 text-indigo-700 dark:bg-indigo-900/50 dark:text-indigo-300",outlined:"border border-indigo-500 text-indigo-600 dark:border-indigo-400 dark:text-indigo-400",subtle:"bg-indigo-50 text-indigo-600 dark:bg-indigo-900/30 dark:text-indigo-400"},teal:{solid:"bg-teal-600 text-white",soft:"bg-teal-100 text-teal-700 dark:bg-teal-900/50 dark:text-teal-300",outlined:"border border-teal-500 text-teal-600 dark:border-teal-400 dark:text-teal-400",subtle:"bg-teal-50 text-teal-600 dark:bg-teal-900/30 dark:text-teal-400"}},Sp={default:"bg-gray-500",primary:"bg-blue-500",success:"bg-green-500",warning:"bg-yellow-400",error:"bg-red-500",info:"bg-cyan-500",purple:"bg-purple-500",indigo:"bg-indigo-500",teal:"bg-teal-500"},Rp={sm:"text-[10px] px-1.5 py-0.5 gap-1",md:"text-xs px-2 py-0.5 gap-1",lg:"text-sm px-2.5 py-1 gap-1.5"},Tp={sm:"w-1.5 h-1.5",md:"w-1.5 h-1.5",lg:"w-2 h-2"},Pp={sm:"w-2.5 h-2.5",md:"w-3 h-3",lg:"w-3.5 h-3.5"};function Dc({children:e,color:t="default",size:r="md",variant:n="soft",dot:o=false,icon:a,pill:s=true,className:l,...i}){return jsxs("span",{className:g("inline-flex items-center font-medium",Rp[r],s?"rounded-full":"rounded",Np[t][n],l),...i,children:[o&&jsx("span",{className:g("shrink-0 rounded-full",Tp[r],Sp[t]),"aria-hidden":"true"}),a&&!o&&jsx("span",{className:g("shrink-0",Pp[r]),"aria-hidden":"true",children:a}),e]})}Dc.displayName="Badge";var Dp={sm:"text-[10px]",md:"text-[11px]",lg:"text-xs"};function fa({scale:e,label:t,format:r,ticks:n=3,size:o="md",thickness:a=10,locale:s,className:l,...i}){let[c,d]=e.domain,u=r??(y=>rt(y,s)),b=e.steps,m=b!==null&&b>0,p=Math.max(2,Math.round(n)),C=m?Array.from({length:b+1},(y,z)=>z/b):Array.from({length:p},(y,z)=>z/(p-1)),v=y=>c+y*(d-c),k=m?jsx("div",{className:"flex h-full w-full overflow-hidden rounded-sm",children:Array.from({length:b},(y,z)=>jsx("span",{className:"h-full grow",style:{backgroundColor:e(v((z+.5)/b))}},z))}):jsx("div",{className:"h-full w-full rounded-sm",style:{backgroundImage:`linear-gradient(to right, ${e.colors.join(", ")})`}});return jsxs("div",{className:g("flex w-full max-w-80 flex-col gap-1",Dp[o],l),...i,children:[t?jsx("span",{className:"text-gray-600 dark:text-gray-300",children:t}):null,jsx("div",{style:{height:a},"aria-hidden":"true",children:k}),jsx("div",{className:"relative h-4 w-full",children:C.map((y,z)=>jsx("span",{className:"absolute top-0 whitespace-nowrap text-gray-500 [font-variant-numeric:tabular-nums] dark:text-gray-400",style:{left:`${y*100}%`,transform:`translateX(${z===0?"0":z===C.length-1?"-100%":"-50%"})`},children:u(v(y))},y))})]})}function Lc(e){return e<=1?1:Math.min(60,Math.max(1,Math.ceil(Math.log2(e))+1))}function Mp(e){let t=Math.pow(10,Math.floor(Math.log10(e)));return [.5,1,2,5,10].map(r=>Number((r*t).toPrecision(12)))}function Mc(e,t=true){if(Array.isArray(t)){let m=[...t].filter(p=>Number.isFinite(p)).sort((p,C)=>p-C);return m.length>=2?m:[]}let r=e.filter(m=>Number.isFinite(m));if(r.length===0)return [];let n=Math.min(...r),o=Math.max(...r);if(n===o){let m=Math.abs(n)>0?Math.abs(n)*.5:.5;n-=m,o+=m;}let a=typeof t=="number"?t:Lc(r.length),s=Math.min(60,Math.max(1,Math.round(a))),l=(o-n)/s;if(!(l>0))return [];let i=0,c=0,d=Number.POSITIVE_INFINITY;for(let m of Mp(l)){let p=Math.floor(n/m)*m,C=Math.ceil(o/m)*m,v=Math.max(1,Math.round((C-p)/m));if(v>60)continue;let k=Math.abs(v-s);k<=d&&(d=k,i=m,c=v);}if(i===0)return [];let u=Math.floor(n/i)*i,b=[];for(let m=0;m<=c;m+=1)b.push(Number((u+m*i).toPrecision(12)));return b}function ki(e,t=true){let r=e.filter(a=>typeof a=="number"&&Number.isFinite(a)),n=Mc(r,t);if(n.length<2)return [];let o=[];for(let a=0;a<n.length-1;a+=1)o.push({from:n[a],to:n[a+1],count:0,last:a===n.length-2});for(let a of r){if(a<n[0]||a>n[n.length-1])continue;let s=0,l=o.length-1;for(;s<l;){let i=s+l+1>>1;a>=n[i]?s=i:l=i-1;}o[s].count+=1;}return o}var Ip=24,Zn=2,Ap=4,To=6,zp=10,Ci=false;function Wp(){Ci=false;}var Hp=memo(function({bars:t}){return jsx("g",{children:t.map((r,n)=>jsxs("g",{children:[jsx("path",{d:r.d,fill:r.color}),r.label?jsx("text",{x:r.label.x,y:r.label.y,textAnchor:r.label.anchor,dominantBaseline:"middle",className:"fill-gray-600 text-[10px] [font-variant-numeric:tabular-nums] dark:fill-gray-300",children:r.label.text}):null]},`${r.key}-${n}`))})}),Vp=memo(function({lines:t}){return jsx("g",{children:t.map(r=>jsxs("g",{children:[jsx("path",{d:r.d,fill:"none",stroke:r.color,strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",strokeDasharray:r.dashed?"5 4":void 0}),r.markers.map(n=>jsx("circle",{cx:n.x,cy:n.y,r:3,fill:r.color,strokeWidth:2,className:"stroke-white dark:stroke-gray-800"},`${n.x}-${n.y}`))]},r.key))})});function Bp({width:e,height:t,data:r,resolvedSeries:n,x:o,y:a,grid:s,size:l,orientation:i,stack:c,center:d,centerKey:u,valueColors:b,binned:m,curve:p,barSize:C,showValues:v,referenceLines:k,margin:y,tooltip:z,onPointClick:h,plotLabel:R,formatValue:f,formatRaw:N,formatX:L}){let[E,I]=useState(null),w=useMemo(()=>{let H=i==="vertical",$=n.filter(ce=>!ce.hidden),_=$.filter(ce=>ce.type!=="line"),F=$.filter(ce=>ce.type==="line"),A=_.map(ce=>ce.key),V=u!==null||c!=="none",Y=u!==null?Tc(r,A,{centerKey:u,percent:c==="percent"}):rs(r,A,c),X=V?ns(Y):Kt(ur(r,A)),G=Kt(ur(r,F.map(ce=>ce.key))),j=X===null?G:G===null?X:[Math.min(X[0],G[0]),Math.max(X[1],G[1])],O=Qt({width:e,height:t,data:r,x:o,y:a,bounds:j===null?null:[Math.min(j[0],d),Math.max(j[1],d)],margin:y,orientation:i,placement:"band",bandPaddingInner:m?0:void 0,formatValue:f,formatX:L,defaultIncludeZero:d===0}),{valueScale:K,bandwidth:se,categoryPositions:ae,innerWidth:U,innerHeight:J}=O,te=K(d),ie=Math.max(1,_.length),Q=V?se:se/ie,ge=Math.min(C??(m?Number.POSITIVE_INFINITY:Ip),Math.max(1,Q-(V&&!m?0:Zn))),Re=V?ge:ie*ge+(ie-1)*Zn,Qe=(se-Re)/2,at=[],et=ce=>V?ce.end>=ce.start:ce.end>=d;Y.forEach((ce,Oe)=>{let st=-1,Pe=-1;ce.segments.forEach((xt,lt)=>{xt.value!==null&&xt.outer!==false&&(et(xt)?st=lt:Pe=lt);});let De=0,it=0;ce.segments.forEach((xt,lt)=>{if(xt.value===null)return;let pr=_[lt],tt=et(xt),yr=K(V?xt.start:d),Wr=K(xt.end),Bt=Math.min(yr,Wr),ar=Math.abs(Wr-yr),Rr=xt.base??(tt?De===0:it===0),ye=H?!tt:tt;V&&!Rr&&ar>Zn&&(ar-=Zn,ye&&(Bt+=Zn)),tt?De+=1:it+=1;let xe=ae[Oe]+(V?Qe:Qe+lt*(ge+Zn)),ne=lt===(tt?st:Pe)?H?tt?"top":"bottom":tt?"right":"left":"none",he=H?{x:xe,y:Bt,width:ge,height:ar}:{x:Bt,y:xe,width:ar,height:ge},fe=null;if(v&&!V){let Te=N(xt.value),Ce=vr(Te,10);if(H){let we=tt?Bt:Bt+ar,Me=tt?we-To:we+To,Ae=ie>1?ge+Zn:se;Ce<=Ae&&(tt?Me>8:Me<J-4)&&(fe={x:xe+ge/2,y:Me,anchor:"middle",text:Te});}else {let we=tt?Bt+ar:Bt,Me=tt?U-we-To:we-To;Ce<=Me&&(fe={x:tt?we+To:we-To,y:xe+ge/2,anchor:tt?"start":"end",text:Te});}}at.push({key:pr.key,color:b&&xt.value!==null?b(xt.value):pr.color,d:ir({...he,radius:Ap,round:ne}),label:fe});});});let me=F.map(ce=>{let Oe=O.categoryCenters.map((st,Pe)=>{let De=Ee(r[Pe],ce.key),it=De===null?Number.NaN:K(De);return {x:H?st:it,y:H?it:st,defined:De!==null}});return {key:ce.key,color:ce.color,dashed:ce.dashed,d:$r(Oe,p),markers:Oe.filter(st=>st.defined!==false)}});return {vertical:H,visible:$,barSeries:_,rows:Y,stacked:V,xValues:O.xValues,categoryPositions:ae,categoryCenters:O.categoryCenters,bandwidth:se,categoryTicks:O.categoryTicks,valueTicks:O.valueTicks,valueScale:K,baseline:te,innerWidth:U,innerHeight:J,margin:O.margin,bars:at,lines:me}},[r,n,o,a,e,t,y,i,c,d,u,b,m,p,C,v,f,N,L]),W=useCallback(H=>w.visible.map($=>{let _=Ee(r[H],$.key),F=w.barSeries.indexOf($),A=F===-1?null:w.rows[H].segments[F],V=_===null?"\u2014":c==="percent"&&A!==null?`${N(_)} (${f(A.end-A.start)})`:f(_);return {seriesKey:$.key,seriesLabel:Xt($),color:$.color,value:_,formattedValue:V,datum:r[H]}}),[r,w.visible,w.barSeries,w.rows,c,f,N]),M=useCallback(H=>{if(z===false||r.length===0)return;let $=H.currentTarget.getBoundingClientRect(),_=w.vertical?H.clientX-$.left-w.margin.left:H.clientY-$.top-w.margin.top,F=Wt(w.categoryCenters,_);I(F>=0?F:null);},[z,r.length,w.vertical,w.margin,w.categoryCenters]),T=useCallback(H=>{if(r.length===0)return;let $=r.length-1,_=E??0,F=w.vertical?"ArrowRight":"ArrowDown",A=w.vertical?"ArrowLeft":"ArrowUp",V=H.key===F?Math.min($,_+1):H.key===A?Math.max(0,_-1):H.key==="Home"?0:H.key==="End"?$:H.key==="Escape"?null:void 0;V!==void 0&&(H.preventDefault(),I(V));},[r.length,E,w.vertical]),P=useCallback(()=>{if(!h||E===null)return;let[H]=W(E);H&&h({...H,index:E,x:w.xValues[E]});},[h,E,W,w.xValues]),x=E===null?null:W(E),D=E===null||x===null?null:{x:w.xValues[E],xLabel:L(w.xValues[E],E),index:E,points:x},S=H=>{let $=w.rows[H].segments.filter(_=>_.value!==null).map(_=>w.valueScale(_.end));for(let _ of w.lines){let F=Ee(r[H],_.key);F!==null&&$.push(w.valueScale(F));}return $},B=E===null?null:w.vertical?{x:w.margin.left+w.categoryCenters[E],y:w.margin.top+Math.min(...S(E),w.baseline)}:{x:w.margin.left+Math.max(...S(E),w.baseline),y:w.margin.top+w.categoryCenters[E]};return jsxs(Fragment,{children:[jsxs("svg",{width:e,height:t,role:"img","aria-label":R??w.visible.map(H=>Xt(H)).join(", "),tabIndex:0,className:"touch-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500",onPointerMove:M,onPointerLeave:()=>I(null),onKeyDown:T,onBlur:()=>I(null),onClick:P,children:[jsxs("g",{transform:`translate(${w.margin.left}, ${w.margin.top})`,children:[jsx(Ot,{width:w.innerWidth,height:w.innerHeight,horizontal:w.vertical&&(s==="y"||s==="both")?w.valueTicks.map(H=>H.offset):void 0,vertical:!w.vertical&&(s==="y"||s==="both")?w.valueTicks.map(H=>H.offset):void 0}),E!==null?jsx("rect",{x:w.vertical?w.categoryPositions[E]:0,y:w.vertical?0:w.categoryPositions[E],width:w.vertical?w.bandwidth:w.innerWidth,height:w.vertical?w.innerHeight:w.bandwidth,className:"fill-gray-400 dark:fill-gray-500",opacity:.12,"aria-hidden":"true"}):null,jsx(Hp,{bars:w.bars}),w.lines.length>0?jsx(Vp,{lines:w.lines}):null,jsx("line",{x1:w.vertical?0:w.baseline,y1:w.vertical?w.baseline:0,x2:w.vertical?w.innerWidth:w.baseline,y2:w.vertical?w.baseline:w.innerHeight,className:"stroke-gray-300 dark:stroke-gray-600",strokeWidth:1,shapeRendering:"crispEdges"}),k?.map(H=>{let $=w.valueScale(H.value),_=$<zp?$+12:$-4;return jsxs("g",{children:[jsx("line",{x1:w.vertical?0:$,y1:w.vertical?$:0,x2:w.vertical?w.innerWidth:$,y2:w.vertical?$:w.innerHeight,stroke:H.color??"var(--color-chart-muted)",strokeWidth:1,strokeDasharray:H.dashed===false?void 0:"4 4"}),H.label?jsx("text",{x:w.vertical?w.innerWidth:$+4,y:w.vertical?_:8,textAnchor:w.vertical?"end":"start",className:"fill-gray-500 text-[10px] dark:fill-gray-400",children:H.label}):null]},`${H.value}-${H.label??""}`)})]}),jsx("g",{transform:`translate(${w.margin.left}, ${w.margin.top+w.innerHeight})`,children:(w.vertical?o.hidden:a?.hidden)?null:jsx(_e,{orientation:"bottom",ticks:w.vertical?w.categoryTicks:w.valueTicks,length:w.innerWidth,label:w.vertical?o.label:a?.label,size:l})}),jsx("g",{transform:`translate(${w.margin.left}, ${w.margin.top})`,children:(w.vertical?a?.hidden:o.hidden)?null:jsx(_e,{orientation:"left",ticks:w.vertical?w.valueTicks:w.categoryTicks,length:w.innerHeight,showLine:false,label:w.vertical?a?.label:o.label,size:l})})]}),D&&B&&z!==false?jsx(gt,{x:B.x,y:B.y,containerWidth:e,children:typeof z=="function"?z(D):jsx(Cr,{title:D.xLabel,points:D.points})}):null]})}function Fp({data:e,series:t,x:r,y:n,height:o=260,width:a,size:s="md",grid:l="y",legend:i,tooltip:c=true,tableView:d=false,emphasis:u,title:b,description:m,loading:p=false,emptyState:C,onPointClick:v,orientation:k="vertical",stack:y="none",diverging:z,bins:h,curve:R="linear",barSize:f,sort:N="none",showValues:L=false,referenceLines:E,legendToggle:I=true,margin:w,locale:W,plotLabel:M,className:T,...P}){let[x,D]=useState(()=>new Set),S=h!==void 0&&h!==false,B=S||typeof z!="string"?null:z,H=!S&&typeof z=="number"?z:0,$=useMemo(()=>{let te=B===null?null:Co([0,Math.max(1,t.length-1)],{center:Math.max(0,t.findIndex(ie=>ie.key===B)),symmetric:false});return t.map((ie,Q)=>({...ie,hidden:ie.hidden||x.has(ie.key),color:te&&!ie.color&&!u?ie.key===B?Tr:te(Q):Er(ie,Q,u)}))},[t,x,u,B]),_=useMemo(()=>te=>rt(te,W),[W]),F=useMemo(()=>{if(!S)return null;t.length>1&&!Ci&&(Ci=true,console.warn("[@synertech/ui] BarChart was given `bins` and more than one series. A histogram counts a single field \u2014 the extra series are ignored. Facet the chart, or draw the distributions side by side."));let te=t[0]?.key??"count",ie=r.format?ge=>r.format(ge,0):ge=>_(ge),Q=ki(e.map(ge=>Ee(ge,r.key)),h);return {rows:Q.map(ge=>({[r.key]:ge.from,[te]:ge.count})),labels:Q.map(ge=>`${ie(ge.from)}\u2013${ie(ge.to)}`)}},[S,h,e,r.key,r.format,t,_]),A=useMemo(()=>{if(F)return F.rows;if(N==="none")return e;let te=$.filter(Q=>!Q.hidden).map(Q=>Q.key),ie=Q=>te.reduce((ge,Re)=>ge+(Ee(Q,Re)??0),0);return [...e].sort((Q,ge)=>N==="asc"?ie(Q)-ie(ge):ie(ge)-ie(Q))},[F,e,N,$]),V=!S&&y==="percent",Y=useMemo(()=>V?{domain:B===null?[0,100]:[-100,100],...n}:n,[V,B,n]),X=useMemo(()=>{let te=n?.format??(V?ie=>Gt(ie,{locale:W,alreadyScaled:true,maximumFractionDigits:0}):_);return B===null?te:ie=>te(Math.abs(ie))},[n?.format,V,W,_,B]),G=useMemo(()=>F?(te,ie)=>F.labels[ie]??"":r.format??(te=>Ke(te,W)),[F,r.format,W]),j=useMemo(()=>F?{...r,scale:"category"}:r,[F,r]),O=useCallback(te=>{D(ie=>{let Q=new Set(ie);return Q.has(te)?Q.delete(te):Q.add(te),Q});},[]),K=i===void 0?t.length>=2:i!==false,se=typeof i=="string"?i:"bottom",ae=$.filter(te=>!te.hidden),U=ae.length,J=useMemo(()=>{if(S||z===void 0||z===false||B!==null||U!==1)return null;let te=ur(A,ae.map(Q=>Q.key)),ie=No([...te,H],{domain:n?.domain,includeZero:n?.includeZero??H===0,ticks:n?.ticks??5});return Co(ie,{center:H})},[S,z,B,U,ae,A,H,n]);return jsx(ut,{title:b,description:m,height:o,width:a,size:s,loading:p,empty:A.length===0||U===0,emptyState:C,tableView:d,legendPosition:se,legend:J?jsx(fa,{scale:J,label:n?.label,format:X,size:s,locale:W}):K?jsx($t,{items:Or($,u),position:se,marker:"rect",size:s,onToggle:I?O:void 0}):void 0,table:d?jsx(It,{data:A,series:$,xKey:j.key,xLabel:r.label??r.key,formatX:G,formatValue:_,caption:typeof b=="string"?b:void 0}):void 0,className:T,...P,children:({width:te})=>jsx(Bp,{width:te,height:o,data:A,resolvedSeries:$,x:j,y:Y,grid:l,size:s,orientation:k,stack:S?"none":y,center:H,centerKey:B,valueColors:J,binned:S,curve:R,barSize:f,showValues:L,referenceLines:E,margin:w,tooltip:c,onPointClick:v,plotLabel:M,formatValue:X,formatRaw:_,formatX:G})})}function zc({className:e}){return jsx("svg",{className:e,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:jsx("path",{d:"M13 16H12V12H11M12 8H12.01M21 12C21 16.97 16.97 21 12 21C7.03 21 3 16.97 3 12C3 7.03 7.03 3 12 3C16.97 3 21 7.03 21 12Z",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}function $p({className:e}){return jsx("svg",{className:e,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:jsx("path",{d:"M9 12L11 14L15 10M21 12C21 16.97 16.97 21 12 21C7.03 21 3 16.97 3 12C3 7.03 7.03 3 12 3C16.97 3 21 7.03 21 12Z",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}function _p({className:e}){return jsx("svg",{className:e,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:jsx("path",{d:"M12 9V13M12 17H12.01M10.29 3.86L1.82 18C1.65 18.3 1.55 18.65 1.55 18.99C1.55 19.34 1.64 19.69 1.81 19.99C1.99 20.29 2.24 20.55 2.54 20.72C2.84 20.901 3.18 20.99 3.53 21H20.47C20.82 20.99 21.16 20.901 21.46 20.72C21.76 20.55 22.01 20.29 22.19 19.99C22.36 19.69 22.449 19.34 22.448 18.99C22.447 18.65 22.35 18.3 22.18 18L13.71 3.86C13.53 3.57 13.28 3.32 12.98 3.15C12.68 2.99 12.34 2.9 12 2.9C11.66 2.9 11.32 2.99 11.02 3.15C10.72 3.32 10.47 3.57 10.29 3.86Z",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}function Xp({className:e}){return jsx("svg",{className:e,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:jsx("path",{d:"M12 8V12M12 16H12.01M21 12C21 16.97 16.97 21 12 21C7.03 21 3 16.97 3 12C3 7.03 7.03 3 12 3C16.97 3 21 7.03 21 12Z",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}function Ni({className:e}){return jsx("svg",{className:e,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:jsx("path",{d:"M4 4L12 12M12 4L4 12",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}var Gp={info:zc,success:$p,warning:_p,error:Xp,default:zc},Kp={info:"bg-blue-50 text-blue-800 border-blue-200 dark:bg-blue-900/20 dark:text-blue-300 dark:border-blue-800",success:"bg-green-50 text-green-800 border-green-200 dark:bg-green-900/20 dark:text-green-300 dark:border-green-800",warning:"bg-yellow-50 text-yellow-800 border-yellow-200 dark:bg-yellow-900/20 dark:text-yellow-300 dark:border-yellow-800",error:"bg-red-50 text-red-800 border-red-200 dark:bg-red-900/20 dark:text-red-300 dark:border-red-800",default:"bg-gray-50 text-gray-800 border-gray-200 dark:bg-gray-800 dark:text-gray-300 dark:border-gray-700"},Up={info:"text-blue-600 dark:text-blue-400",success:"text-green-600 dark:text-green-400",warning:"text-yellow-600 dark:text-yellow-400",error:"text-red-600 dark:text-red-400",default:"text-gray-600 dark:text-gray-400"};function Yp({type:e="default",title:t,description:r,children:n,icon:o,action:a,closable:s=false,onClose:l,fullWidth:i=false,className:c,...d}){let[u,b]=useState(true);if(!u)return null;let m=()=>{b(false),l?.();},p=Gp[e],C=n??r;return jsxs("div",{role:"alert",className:g("flex items-start gap-3 border px-4 py-3",i?"w-full":"rounded-lg",Kp[e],c),...d,children:[jsx("div",{className:g("shrink-0 mt-0.5",Up[e]),children:o??jsx(p,{className:"w-5 h-5"})}),jsxs("div",{className:"flex-1 min-w-0",children:[t&&jsx("div",{className:"font-semibold text-sm",children:t}),C&&jsx("div",{className:g("text-sm",t?"mt-1 opacity-90":false),children:C}),a&&jsx("div",{className:"mt-3",children:a})]}),s&&jsx("button",{type:"button",onClick:m,className:g("shrink-0 rounded-md p-1 transition-colors","hover:bg-black/10 dark:hover:bg-white/10","focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-current"),"aria-label":"Close banner",children:jsx(Ni,{className:"w-4 h-4"})})]})}function qp({title:e,description:t,children:r,action:n,backgroundImage:o,closable:a=false,onClose:s,fullWidth:l=false,className:i,...c}){let[d,u]=useState(true);if(!d)return null;let b=()=>{u(false),s?.();},m=r??t;return jsxs("div",{className:g("relative overflow-hidden bg-gray-900 text-white",l?"w-full":"rounded-xl","py-12 px-6 sm:px-12",i),style:o?{backgroundImage:`url(${o})`,backgroundSize:"cover",backgroundPosition:"center"}:void 0,...c,children:[o&&jsx("div",{className:"absolute inset-0 bg-black/50","aria-hidden":"true"}),jsxs("div",{className:"relative z-10 max-w-3xl mx-auto text-center",children:[e&&jsx("h2",{className:"text-2xl sm:text-3xl lg:text-4xl font-bold tracking-tight",children:e}),m&&jsx("div",{className:g("text-base sm:text-lg opacity-90",e?"mt-4":false),children:m}),n&&jsx("div",{className:"mt-6",children:n})]}),a&&jsx("button",{type:"button",onClick:b,className:g("absolute top-4 right-4 z-10 rounded-md p-1.5 text-white/80 transition-colors","hover:text-white hover:bg-white/10","focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-white"),"aria-label":"Close banner",children:jsx(Ni,{className:"w-5 h-5"})})]})}function jp({title:e,description:t,children:r,icon:n,action:o,badge:a,closable:s=false,onClose:l,fullWidth:i=false,className:c,...d}){let[u,b]=useState(true);if(!u)return null;let m=()=>{b(false),l?.();},p=r??t;return jsxs("div",{className:g("relative flex items-center gap-4 bg-linear-to-r from-indigo-600 to-purple-600 text-white px-4 py-3",i?"w-full":"rounded-lg",c),...d,children:[n&&jsx("div",{className:"shrink-0",children:n}),a&&jsx("span",{className:"shrink-0 inline-flex items-center rounded-full bg-white/20 px-2.5 py-0.5 text-xs font-semibold uppercase tracking-wide",children:a}),jsxs("div",{className:"flex-1 min-w-0 flex flex-wrap items-center gap-x-4 gap-y-1",children:[e&&jsx("span",{className:"font-semibold text-sm",children:e}),p&&jsx("span",{className:"text-sm opacity-90",children:p})]}),o&&jsx("div",{className:"shrink-0",children:o}),s&&jsx("button",{type:"button",onClick:m,className:g("shrink-0 rounded-md p-1 text-white/80 transition-colors","hover:text-white hover:bg-white/10","focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-white"),"aria-label":"Close banner",children:jsx(Ni,{className:"w-4 h-4"})})]})}function Wc({variant:e="notification",...t}){switch(e){case "hero":return jsx(qp,{...t});case "promotion":return jsx(jp,{...t});default:return jsx(Yp,{...t})}}Wc.displayName="Banner";var Zp={sm:"text-xs",md:"text-sm",lg:"text-base"};function Qp({items:e,separator:t="/",size:r="md",maxItems:n,itemColor:o="text-gray-500 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-100",activeColor:a="text-gray-700 font-medium dark:text-gray-200",separatorColor:s="text-gray-400 dark:text-gray-500",className:l,...i}){let c=e,d=false;if(n&&e.length>n){d=true;let u=e[0],b=e.slice(-(n-1));c=[u,...b];}return jsx("nav",{"aria-label":"Breadcrumb",className:g("inline-flex items-center",Zp[r],l),...i,children:jsx("ol",{className:"inline-flex items-center space-x-1 md:space-x-2",children:c.map((u,b)=>{let m=b===c.length-1;return jsxs("li",{className:"inline-flex items-center",children:[d&&b===1&&jsxs(Fragment,{children:[jsx("span",{className:g("mx-1 select-none",s),children:"..."}),jsx("span",{className:g("mx-1 select-none",s),"aria-hidden":"true",children:t})]}),u.href||u.onClick?jsxs("a",{href:u.href,onClick:u.onClick,className:g("inline-flex items-center gap-1.5 transition-colors",m?a:o),"aria-current":m?"page":void 0,children:[u.icon&&jsx("span",{className:"inline-flex","aria-hidden":"true",children:u.icon}),jsx("span",{children:u.label})]}):jsxs("span",{className:g("inline-flex items-center gap-1.5",m?a:o),"aria-current":m?"page":void 0,children:[u.icon&&jsx("span",{className:"inline-flex","aria-hidden":"true",children:u.icon}),jsx("span",{children:u.label})]}),!m&&jsx("span",{className:g("mx-2 select-none",s),"aria-hidden":"true",children:t})]},u.href??u.label)})})})}var r0=22,n0=.42,Hc=3,Vc=8,o0=12,a0=["fill-gray-300 dark:fill-gray-500","fill-gray-200 dark:fill-gray-600","fill-gray-100 dark:fill-gray-700","fill-gray-50 dark:fill-gray-800"],s0=memo(function({rows:t,color:r}){return jsx("g",{children:t.map(n=>jsxs("g",{children:[n.bands.map(o=>jsx("path",{d:o.d,className:o.className,fill:o.fill},o.key)),n.measure?jsx("path",{d:n.measure,fill:r}):null,n.target?jsx("line",{x1:n.target.x,y1:n.target.y1,x2:n.target.x,y2:n.target.y2,strokeWidth:2,strokeLinecap:"round",className:"stroke-gray-900 dark:stroke-white"}):null,n.label?jsx("text",{x:n.label.x,y:n.label.y,dominantBaseline:"middle",className:"fill-gray-700 text-[11px] font-medium [font-variant-numeric:tabular-nums] dark:fill-gray-200",children:n.label.text}):null]},n.key))})});function i0({width:e,height:t,rows:r,x:n,size:o,sharedDomain:a,showValues:s,trackSize:l,rangeColors:i,color:c,tooltip:d,plotLabel:u,formatValue:b,onRowClick:m}){let[p,C]=useState(null),v=useMemo(()=>{let R=r.map(S=>S.label),f=s?r.map(S=>S.formattedValue):[],N={top:6,right:s?kr(f)+Vc*2:8,bottom:a?26+(n.label?16:0):6,left:n.hidden?8:n.height??kr(R)+o0},L=Math.max(0,e-N.left-N.right),E=Math.max(0,t-N.top-N.bottom),I=hn(r.map((S,B)=>B),[0,E],{paddingInner:.34}),w=Math.min(l??r0,I.bandwidth),W=Math.max(3,w*n0),M=i??a0,T=i!==void 0,P=r.map((S,B)=>{let H=Math.max(0,S.value??0,S.target??0,...S.ranges.length>0?S.ranges:[0]),$=a??(S.ranges.length>0?[0,H]:ts(0,H,4)),_=Dr($,[0,L]),F=I(B)+(I.bandwidth-w)/2,A=F+w/2,V=S.ranges.length>0?[...S.ranges].sort((j,O)=>j-O):[$[1]],Y=$[0],X=V.map((j,O)=>{let K=_(Y),se=_(Math.max(Y,j));Y=j;let ae=M[Math.min(O,M.length-1)];return {key:`${B}-${O}`,d:ir({x:K,y:F,width:Math.max(0,se-K),height:w,radius:0}),className:T?void 0:ae,fill:T?ae:void 0}}),G=S.value===null?null:ir({x:_($[0]),y:A-W/2,width:Math.max(0,_(S.value)-_($[0])),height:W,radius:2,round:"right"});return {key:`${B}`,bands:X,measure:G,target:S.target===null?null:{x:_(S.target),y1:F-Hc,y2:F+w+Hc},label:s?{x:L+Vc,y:A,text:S.formattedValue}:null,top:I(B),height:I.bandwidth}}),x=n.hidden?[]:r.map((S,B)=>({value:S.x,offset:I.center(B),label:S.label})),D=a?ma(a[0],a[1],5).map(S=>({value:S,offset:Dr(a,[0,L])(S),label:b(S)})):[];return {margin:N,innerWidth:L,innerHeight:E,band:I,rendered:P,categoryTicks:x,valueTicks:D,centers:r.map((S,B)=>I.center(B))}},[r,n,e,t,a,s,l,i,b]),k=useCallback(R=>{if(d===false||r.length===0)return;let f=R.currentTarget.getBoundingClientRect(),N=R.clientY-f.top-v.margin.top;C(Wt(v.centers,N));},[d,r.length,v.margin.top,v.centers]),y=useCallback(R=>{if(r.length===0)return;let f=r.length-1,N=p??0,L=R.key==="ArrowDown"?Math.min(f,N+1):R.key==="ArrowUp"?Math.max(0,N-1):R.key==="Home"?0:R.key==="End"?f:R.key==="Escape"?null:void 0;L!==void 0&&(R.preventDefault(),C(L));},[r.length,p]),z=useCallback(()=>{!m||p===null||m(r[p]);},[m,p,r]),h=p===null?null:r[p];return jsxs(Fragment,{children:[jsxs("svg",{width:e,height:t,role:"img","aria-label":u??r.map(R=>R.label).join(", "),tabIndex:0,className:"touch-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500",onPointerMove:k,onPointerLeave:()=>C(null),onKeyDown:y,onBlur:()=>C(null),onClick:z,children:[jsxs("g",{transform:`translate(${v.margin.left}, ${v.margin.top})`,children:[p!==null&&v.rendered[p]?jsx("rect",{x:-4,y:v.rendered[p].top,width:v.innerWidth+8,height:v.rendered[p].height,rx:4,className:"fill-gray-400 dark:fill-gray-500",opacity:.12,"aria-hidden":"true"}):null,jsx(s0,{rows:v.rendered,color:c})]}),jsx("g",{transform:`translate(${v.margin.left}, ${v.margin.top})`,children:n.hidden?null:jsx(_e,{orientation:"left",ticks:v.categoryTicks,length:v.innerHeight,showLine:false,tickSize:0,size:o})}),a?jsx("g",{transform:`translate(${v.margin.left}, ${v.margin.top+v.innerHeight})`,children:jsx(_e,{orientation:"bottom",ticks:v.valueTicks,length:v.innerWidth,label:n.label,size:o})}):null]}),h&&p!==null&&d!==false?jsx(gt,{x:v.margin.left+v.innerWidth/2,y:v.margin.top+v.centers[p],containerWidth:e,children:typeof d=="function"?d(h):jsxs("div",{className:"flex flex-col gap-1",children:[jsx("div",{className:"font-medium text-gray-900 dark:text-gray-100",children:h.label}),jsxs("div",{className:"flex items-center gap-2",children:[jsx("span",{className:"h-0.5 w-3 shrink-0 rounded-full",style:{backgroundColor:c},"aria-hidden":"true"}),jsx("span",{className:"font-semibold text-gray-900 [font-variant-numeric:tabular-nums] dark:text-gray-100",children:h.formattedValue}),h.attainment!==null?jsx("span",{className:"text-gray-500 [font-variant-numeric:tabular-nums] dark:text-gray-400",children:Gt(h.attainment)}):null]})]})}):null]})}function l0({data:e,x:t,value:r,target:n,ranges:o,domain:a,normalize:s="row",showValues:l=true,trackSize:i,rangeColors:c,color:d,height:u,width:b,size:m="md",tooltip:p=true,tableView:C=false,title:v,description:k,loading:y=false,emptyState:z,locale:h,plotLabel:R,valueLabel:f,targetLabel:N,format:L,onRowClick:E,className:I,...w}){let W=Ge(),M=useMemo(()=>L??(H=>rt(H,h)),[L,h]),T=useMemo(()=>t.format??(H=>Ke(H,h)),[t.format,h]),P=useMemo(()=>e.map((H,$)=>{let _=mt(H,t.key,$),F=Ee(H,r),A=n?Ee(H,n):null,V=o?H[o]:void 0,Y=Array.isArray(V)?V.map(X=>typeof X=="number"?X:Number(X)).filter(X=>Number.isFinite(X)):[];return {index:$,x:_,label:T(_,$),value:F,target:A,ranges:Y,formattedValue:F===null?"\u2014":M(F),formattedTarget:A===null?"\u2014":M(A),attainment:F===null||A===null||A===0?null:F/A,datum:H}}),[e,t.key,r,n,o,M,T]),x=useMemo(()=>{if(a)return a;if(s!=="shared")return null;let H=P.reduce(($,_)=>Math.max($,_.value??0,_.target??0,..._.ranges),0);return ts(0,H,5)},[a,s,P]),D=u??Math.max(72,P.length*34+(x?30:12)),S=useMemo(()=>[{key:r,label:f??W.chartValue},...n?[{key:n,label:N??W.chartTarget}]:[]],[r,n,f,N,W.chartValue,W.chartTarget]),B=d??Pr(0);return jsx(ut,{title:v,description:k,height:D,width:b,size:m,loading:y,empty:P.length===0,emptyState:z,tableView:C,table:C?jsx(It,{data:e,series:S,xKey:t.key,xLabel:t.label??t.key,formatX:T,formatValue:M,caption:typeof v=="string"?v:void 0}):void 0,className:I,...w,children:({width:H})=>jsx(i0,{width:H,height:D,rows:P,x:t,size:m,sharedDomain:x,showValues:l,trackSize:i,rangeColors:c,color:B,tooltip:p,plotLabel:R,formatValue:M,onRowClick:E})})}function d0({className:e}){return jsxs("svg",{className:g("animate-spin",e),xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","aria-hidden":"true",children:[jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]})}var u0={sm:"px-3 py-1.5 text-xs gap-1.5",md:"px-4 py-2 text-sm gap-2",lg:"px-5 py-2.5 text-base gap-2",xl:"px-6 py-3 text-lg gap-2.5"},m0={sm:"p-1.5",md:"p-2",lg:"p-2.5",xl:"p-3"},as={sm:"h-3.5 w-3.5",md:"h-4 w-4",lg:"h-5 w-5",xl:"h-6 w-6"},g0={none:"rounded-none",sm:"rounded-sm",md:"rounded-md",lg:"rounded-lg",full:"rounded-full"};function At({label:e,children:t,onClick:r,disabled:n=false,className:o,type:a="button",size:s="md",loading:l=false,leftIcon:i,rightIcon:c,icon:d,fullWidth:u=false,rounded:b="lg",bgColor:m="bg-blue-600 hover:bg-blue-700",textColor:p="text-white",focusColor:C="focus:ring-blue-300",selected:v=false,value:k,showFocusOnClick:y=false,...z}){let h=n||l,R=d!==void 0&&!t&&!e,f=g("inline-flex items-center justify-center font-medium transition-colors focus:outline-none disabled:opacity-50 disabled:cursor-not-allowed",y?"focus:ring-4":"focus-visible:ring-4"),N=g(v?"bg-blue-700 text-white ring-2 ring-blue-500":m,!v&&p,C&&y&&`focus:ring-4 ${C}`,C&&!y&&`focus-visible:ring-4 ${C}`);return jsx("button",{type:a,onClick:r,disabled:h,"data-value":k,className:g(f,R?m0[s]:u0[s],g0[b],N,u&&"w-full",o),...z,children:l?jsx(d0,{className:as[s]}):R?jsx("span",{className:as[s],children:d}):jsxs(Fragment,{children:[i&&jsx("span",{className:as[s],children:i}),t??e,c&&jsx("span",{className:as[s],children:c})]})})}function Mo({children:e,orientation:t="horizontal",size:r,fullWidth:n=false,selectedValue:o,onChange:a,className:s}){let i=Ri__default.Children.toArray(e).filter(d=>Ri__default.isValidElement(d)&&typeof d.type!="string"),c=(d,u)=>b=>{d!==void 0&&a&&a(d),u&&u(b);};return jsx("div",{className:g("inline-flex",t==="horizontal"?"flex-row":"flex-col",n&&"w-full",s),role:"group",children:i.map((d,u)=>{let b=u===0,m=u===i.length-1,p=!b&&!m,C=d.props.value,v=o!==void 0&&C===o,k=g(t==="horizontal"&&b&&"rounded-r-none",t==="horizontal"&&m&&"rounded-l-none",t==="horizontal"&&p&&"rounded-none",t==="horizontal"&&!b&&"-ml-px",t==="vertical"&&b&&"rounded-b-none",t==="vertical"&&m&&"rounded-t-none",t==="vertical"&&p&&"rounded-none",t==="vertical"&&!b&&"-mt-px",n&&"flex-1");return Ri__default.cloneElement(d,{...d.props,size:r??d.props.size,selected:v||d.props.selected,onClick:c(C,d.props.onClick),className:g(k,d.props.className)})})})}var h0=10080*60*1e3;function Yt(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate())}function eo(e){return new Date(e.getFullYear(),e.getMonth(),1)}function xn(e,t){return new Date(e.getFullYear(),e.getMonth(),e.getDate()+t)}function _r(e,t){return new Date(e.getFullYear(),e.getMonth()+t,1)}function Pi(e){return new Date(e.getFullYear(),e.getMonth()+1,0).getDate()}function tn(e,t){return !e||!t?false:e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()}function Ti(e,t){return e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()}function An(e,t){return e.getFullYear()*12+e.getMonth()-(t.getFullYear()*12+t.getMonth())}function is(e){let t=`${e.getMonth()+1}`.padStart(2,"0"),r=`${e.getDate()}`.padStart(2,"0");return `${e.getFullYear()}-${t}-${r}`}function y0(e){let t=Yt(e);t.setDate(t.getDate()-(t.getDay()+6)%7+3);let r=new Date(t.getFullYear(),0,4);return r.setDate(r.getDate()-(r.getDay()+6)%7+3),1+Math.round((t.getTime()-r.getTime())/h0)}function Oc(e,t,r){return t&&e<Yt(t)?Yt(t):r&&e>Yt(r)?Yt(r):e}function x0(e,t,r){let n=eo(e),o=(n.getDay()-t+7)%7,a=xn(n,-o),s=r?6:Math.ceil((o+Pi(e))/7);return Array.from({length:s},(l,i)=>Array.from({length:7},(c,d)=>xn(a,i*7+d)))}function v0({className:e}){return jsx("svg",{className:e,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"})})}function k0({className:e}){return jsx("svg",{className:e,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})})}var C0={sm:{day:"h-7 w-7 text-xs",head:"h-7 w-7 text-[10px]",caption:"text-xs",nav:"h-6 w-6",icon:"h-3 w-3",padding:"p-2",gap:"gap-3",footer:"text-xs",select:"text-xs py-0.5 pl-1 pr-5"},md:{day:"h-9 w-9 text-sm",head:"h-9 w-9 text-xs",caption:"text-sm",nav:"h-7 w-7",icon:"h-4 w-4",padding:"p-3",gap:"gap-4",footer:"text-sm",select:"text-sm py-1 pl-1.5 pr-6"},lg:{day:"h-11 w-11 text-base",head:"h-11 w-11 text-sm",caption:"text-base",nav:"h-9 w-9",icon:"h-5 w-5",padding:"p-4",gap:"gap-5",footer:"text-sm",select:"text-base py-1.5 pl-2 pr-7"}},w0={primary:"bg-blue-600 text-white hover:bg-blue-700 dark:bg-blue-500 dark:hover:bg-blue-600",success:"bg-green-600 text-white hover:bg-green-700 dark:bg-green-500 dark:hover:bg-green-600",warning:"bg-yellow-500 text-white hover:bg-yellow-600 dark:bg-yellow-400 dark:text-gray-900 dark:hover:bg-yellow-500",error:"bg-red-600 text-white hover:bg-red-700 dark:bg-red-500 dark:hover:bg-red-600",info:"bg-cyan-600 text-white hover:bg-cyan-700 dark:bg-cyan-500 dark:hover:bg-cyan-600",neutral:"bg-gray-700 text-white hover:bg-gray-800 dark:bg-gray-500 dark:hover:bg-gray-400"},N0={primary:"bg-blue-50 dark:bg-blue-900/30",success:"bg-green-50 dark:bg-green-900/30",warning:"bg-yellow-50 dark:bg-yellow-900/30",error:"bg-red-50 dark:bg-red-900/30",info:"bg-cyan-50 dark:bg-cyan-900/30",neutral:"bg-gray-100 dark:bg-gray-700/40"},S0={primary:"text-blue-900 dark:text-blue-100",success:"text-green-900 dark:text-green-100",warning:"text-yellow-900 dark:text-yellow-100",error:"text-red-900 dark:text-red-100",info:"text-cyan-900 dark:text-cyan-100",neutral:"text-gray-900 dark:text-gray-100"},R0={primary:"font-semibold text-blue-600 dark:text-blue-400",success:"font-semibold text-green-600 dark:text-green-400",warning:"font-semibold text-yellow-600 dark:text-yellow-400",error:"font-semibold text-red-600 dark:text-red-400",info:"font-semibold text-cyan-600 dark:text-cyan-400",neutral:"font-semibold text-gray-900 dark:text-gray-100"},Jn={primary:"focus-visible:ring-blue-500",success:"focus-visible:ring-green-500",warning:"focus-visible:ring-yellow-500",error:"focus-visible:ring-red-500",info:"focus-visible:ring-cyan-500",neutral:"focus-visible:ring-gray-500"};function ls(e,t){if(e==="multiple")return Array.isArray(t)?t.map(Yt):[];if(e==="range"){let r=t??null;return {from:r?.from?Yt(r.from):null,to:r?.to?Yt(r.to):null}}return t instanceof Date?Yt(t):null}function $c(e){return e?e instanceof Date?e:Array.isArray(e)?e[0]??null:e.from??e.to??null:null}function T0(e){let{mode:t="single",value:r,defaultValue:n,onChange:o,max:a,month:s,defaultMonth:l,onMonthChange:i,numberOfMonths:c=1,weekStartsOn:d=0,locale:u,size:b="md",color:m="primary",minDate:p,maxDate:C,disabledDates:v,disabled:k=false,showOutsideDays:y=true,showWeekNumbers:z=false,fixedWeeks:h=false,captionLayout:R="label",fromYear:f,toYear:N,todayButton:L=false,clearButton:E=false,footer:I,bordered:w=true,renderDay:W,labels:M,className:T,...P}=e,x=C0[b],D=Math.max(1,c),S=useMemo(()=>Yt(new Date),[]),B=r!==void 0,[H,$]=useState(()=>ls(t,n)),_=B?ls(t,r):H,F=s!==void 0,[A,V]=useState(()=>eo(l??$c(ls(t,n??r))??new Date)),Y=F?eo(s):A,X=useCallback(ye=>{let xe=eo(ye);F||V(xe),i?.(xe);},[F,i]),G=useRef(null),j=useRef(false),[O,K]=useState(()=>{let ye=$c(ls(t,n??r)),xe=eo(l??s??ye??new Date),re=ye&&Ti(ye,xe)?ye:Ti(Yt(new Date),xe)?Yt(new Date):xe;return Oc(re,p,C)}),se=_r(Y,D-1),U=An(O,Y)>=0&&An(O,se)<=0?O:Y;useEffect(()=>{if(!j.current)return;j.current=false,G.current?.querySelector(`[data-day="${is(O)}"]:not([data-outside])`)?.focus();},[O,Y]);let J=useCallback(ye=>{let xe=Oc(Yt(ye),p,C);j.current=true,K(xe);let re=_r(Y,D-1);An(xe,Y)<0?X(xe):An(xe,re)>0&&X(_r(xe,-(D-1)));},[Y,D,p,C,X]),te=useCallback(ye=>k||p&&ye<Yt(p)||C&&ye>Yt(C)?true:typeof v=="function"?v(ye):Array.isArray(v)?v.some(xe=>tn(xe,ye)):false,[k,p,C,v]),[ie,Q]=useState(null),ge=useCallback(ye=>{B||$(ye),o?.(ye);},[B,o]),Re=useCallback(ye=>{let xe=Yt(ye);if(te(xe))return;if(t==="multiple"){let ne=_??[];if(ne.some(fe=>tn(fe,xe))){ge(ne.filter(fe=>!tn(fe,xe)));return}if(a!==void 0&&ne.length>=a)return;ge([...ne,xe].sort((fe,Te)=>fe.getTime()-Te.getTime()));return}if(t==="range"){let ne=_??{from:null,to:null};if(!ne.from||ne.to){ge({from:xe,to:null});return}ge(xe<ne.from?{from:xe,to:ne.from}:{from:ne.from,to:xe});return}ge(tn(_,xe)?null:xe);},[t,_,a,ge,te]),Qe=useCallback(ye=>{Re(ye),K(Yt(ye)),An(ye,Y)<0?X(ye):An(ye,_r(Y,D-1))>0&&X(_r(ye,-(D-1)));},[Re,Y,D,X]),at=!k&&(!p||An(Y,eo(p))>0),et=!k&&(!C||An(_r(Y,D-1),eo(C))<0),me=useCallback(()=>{X(_r(Y,-1));},[Y,X]),ce=useCallback(()=>{X(_r(Y,1));},[Y,X]),Oe=useCallback(ye=>{if(k)return;let xe=O;switch(ye.key){case "ArrowLeft":ye.preventDefault(),J(xn(xe,-1));break;case "ArrowRight":ye.preventDefault(),J(xn(xe,1));break;case "ArrowUp":ye.preventDefault(),J(xn(xe,-7));break;case "ArrowDown":ye.preventDefault(),J(xn(xe,7));break;case "Home":ye.preventDefault(),J(xn(xe,-((xe.getDay()-d+7)%7)));break;case "End":ye.preventDefault(),J(xn(xe,6-(xe.getDay()-d+7)%7));break;case "PageUp":{ye.preventDefault();let re=ye.shiftKey?-12:-1,ne=_r(xe,re),he=Math.min(xe.getDate(),Pi(ne));J(new Date(ne.getFullYear(),ne.getMonth(),he));break}case "PageDown":{ye.preventDefault();let re=ye.shiftKey?12:1,ne=_r(xe,re),he=Math.min(xe.getDate(),Pi(ne));J(new Date(ne.getFullYear(),ne.getMonth(),he));break}}},[k,O,J,d]),st=useMemo(()=>{let ye=new Intl.DateTimeFormat(u,{weekday:"short"}),xe=new Intl.DateTimeFormat(u,{weekday:"long"}),re=new Date(2024,0,7);return Array.from({length:7},(ne,he)=>{let fe=xn(re,(d+he)%7);return {short:ye.format(fe),long:xe.format(fe)}})},[u,d]),Pe=useMemo(()=>{let ye=new Intl.DateTimeFormat(u,{month:"long"});return Array.from({length:12},(xe,re)=>ye.format(new Date(2024,re,1)))},[u]),De=useMemo(()=>new Intl.DateTimeFormat(u,{month:"long",year:"numeric"}),[u]),it=useMemo(()=>new Intl.DateTimeFormat(u,{dateStyle:"full"}),[u]),xt=useMemo(()=>{if(R!=="dropdown")return [];let ye=S.getFullYear(),xe=f??p?.getFullYear()??ye-100,re=N??C?.getFullYear()??ye+10;return re<xe?[xe]:Array.from({length:re-xe+1},(ne,he)=>xe+he)},[R,f,N,p,C,S]),lt=t==="range"?_:null,pr=lt&<.from&&!lt.to&&ie&&ie>lt.from?ie:null,tt=lt?.to??pr,yr=useCallback((ye,xe)=>{let re=!Ti(ye,xe),ne=te(ye),he=false,fe=false,Te=false,Ce=false;return t==="multiple"?he=(_??[]).some(we=>tn(we,ye)):t==="range"?(fe=tn(lt?.from,ye),Te=tn(tt,ye),he=fe||Te,Ce=!!(lt?.from&&tt&&ye>lt.from&&ye<tt)):he=tn(_,ye),{selected:he,today:tn(ye,S),outside:re,disabled:ne,rangeStart:fe,rangeEnd:Te,inRange:Ce}},[t,_,lt,tt,te,S]),Wr=ye=>{let xe=_r(Y,ye),re=x0(xe,d,h),ne=ye===0,he=ye===D-1;return jsxs("div",{className:"flex flex-col",children:[jsxs("div",{className:"mb-2 flex items-center justify-between",children:[jsx("button",{type:"button",onClick:me,disabled:!at,"aria-label":M?.previousMonth??"Previous month",className:g("inline-flex items-center justify-center rounded-md transition-colors","text-gray-600 hover:bg-gray-100 dark:text-gray-300 dark:hover:bg-gray-700","focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-1 dark:focus-visible:ring-offset-gray-900",Jn[m],x.nav,!at&&"cursor-not-allowed opacity-40 hover:bg-transparent dark:hover:bg-transparent",!ne&&"invisible"),children:jsx(v0,{className:x.icon})}),R==="dropdown"?jsxs("div",{className:"flex items-center gap-1",children:[jsx("select",{"aria-label":M?.monthSelect??"Month",value:xe.getMonth(),disabled:k,onChange:fe=>X(new Date(xe.getFullYear(),Number(fe.target.value)-ye,1)),className:g("rounded-md border border-gray-300 bg-white font-medium text-gray-900","dark:border-gray-600 dark:bg-gray-800 dark:text-gray-100","focus:outline-none focus-visible:ring-2",Jn[m],x.select,k&&"cursor-not-allowed opacity-50"),children:Pe.map((fe,Te)=>jsx("option",{value:Te,children:fe},fe))}),jsx("select",{"aria-label":M?.yearSelect??"Year",value:xe.getFullYear(),disabled:k,onChange:fe=>X(new Date(Number(fe.target.value),xe.getMonth()-ye,1)),className:g("rounded-md border border-gray-300 bg-white font-medium text-gray-900","dark:border-gray-600 dark:bg-gray-800 dark:text-gray-100","focus:outline-none focus-visible:ring-2",Jn[m],x.select,k&&"cursor-not-allowed opacity-50"),children:xt.map(fe=>jsx("option",{value:fe,children:fe},fe))})]}):jsx("div",{"aria-live":"polite",className:g("font-semibold text-gray-900 dark:text-gray-100",x.caption),children:De.format(xe)}),jsx("button",{type:"button",onClick:ce,disabled:!et,"aria-label":M?.nextMonth??"Next month",className:g("inline-flex items-center justify-center rounded-md transition-colors","text-gray-600 hover:bg-gray-100 dark:text-gray-300 dark:hover:bg-gray-700","focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-1 dark:focus-visible:ring-offset-gray-900",Jn[m],x.nav,!et&&"cursor-not-allowed opacity-40 hover:bg-transparent dark:hover:bg-transparent",!he&&"invisible"),children:jsx(k0,{className:x.icon})})]}),jsxs("table",{role:"grid","aria-label":De.format(xe),className:"border-collapse",children:[jsx("thead",{children:jsxs("tr",{children:[z&&jsxs("th",{scope:"col",className:g("font-normal text-gray-400 dark:text-gray-500",x.head),children:[jsx("span",{className:"sr-only",children:M?.weekNumber??"Week number"}),jsx("span",{"aria-hidden":"true",children:"#"})]}),st.map(fe=>jsx("th",{scope:"col",abbr:fe.long,className:g("font-medium uppercase text-gray-500 dark:text-gray-400",x.head),children:fe.short},fe.long))]})}),jsx("tbody",{children:re.map(fe=>jsxs("tr",{children:[z&&jsx("td",{className:g("text-center align-middle text-gray-400 dark:text-gray-500",x.head),children:y0(fe[0])}),fe.map(Te=>{let Ce=yr(Te,xe),we=is(Te);if(Ce.outside&&!y)return jsx("td",{className:"p-0"},we);let Me=tn(Te,U)&&!Ce.outside,Ae=Ce.inRange||Ce.rangeStart&&!!tt||Ce.rangeEnd&&!!lt?.from;return jsx("td",{role:"presentation",className:g("p-0",Ae&&N0[m],Ae&&Ce.rangeStart&&"rounded-l-full",Ae&&Ce.rangeEnd&&"rounded-r-full"),children:jsx("button",{type:"button","data-day":we,"data-selected":Ce.selected||void 0,"data-today":Ce.today||void 0,"data-outside":Ce.outside||void 0,role:"gridcell",tabIndex:Me?0:-1,disabled:k,"aria-selected":Ce.selected,"aria-disabled":Ce.disabled||void 0,"aria-current":Ce.today?"date":void 0,"aria-label":it.format(Te),onClick:()=>{Ce.disabled||Qe(Te);},onMouseEnter:()=>t==="range"&&Q(Yt(Te)),onMouseLeave:()=>t==="range"&&Q(null),onFocus:()=>K(Yt(Te)),className:g("inline-flex items-center justify-center rounded-full transition-colors","focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-1 dark:focus-visible:ring-offset-gray-900",Jn[m],x.day,Ce.selected?w0[m]:Ce.inRange?g(S0[m],"hover:bg-gray-200/60 dark:hover:bg-gray-600/60"):Ce.today?g(R0[m],"hover:bg-gray-100 dark:hover:bg-gray-700"):g("text-gray-900 dark:text-gray-100","hover:bg-gray-100 dark:hover:bg-gray-700"),Ce.outside&&!Ce.selected&&"text-gray-400 dark:text-gray-500",Ce.disabled&&"cursor-not-allowed opacity-40 hover:bg-transparent dark:hover:bg-transparent"),children:W?W(Te,Ce):Te.getDate()})},we)})]},is(fe[0])))})]})]},is(xe))},Bt=useCallback(()=>{X(S),K(S),te(S)||Re(S);},[S,X,te,Re]),ar=useCallback(()=>{ge(t==="multiple"?[]:t==="range"?{from:null,to:null}:null);},[t,ge]),Rr=!!I||L||E;return jsxs("div",{ref:G,onKeyDown:Oe,className:g("inline-block bg-white dark:bg-gray-900",w&&"rounded-lg border border-gray-200 shadow-sm dark:border-gray-700",x.padding,k&&"opacity-60",T),...P,children:[jsx("div",{className:g("flex flex-wrap",x.gap),children:Array.from({length:D},(ye,xe)=>Wr(xe))}),Rr&&jsxs("div",{className:g("mt-3 flex items-center justify-between gap-2 border-t border-gray-200 pt-3 dark:border-gray-700",x.footer),children:[jsx("div",{className:"text-gray-600 dark:text-gray-400",children:I}),(L||E)&&jsxs("div",{className:"flex items-center gap-2",children:[L&&jsx("button",{type:"button",onClick:Bt,disabled:k,className:g("rounded-md px-2 py-1 font-medium transition-colors","text-gray-700 hover:bg-gray-100 dark:text-gray-300 dark:hover:bg-gray-700","focus:outline-none focus-visible:ring-2",Jn[m],k&&"cursor-not-allowed opacity-50"),children:M?.today??"Today"}),E&&jsx("button",{type:"button",onClick:ar,disabled:k,className:g("rounded-md px-2 py-1 font-medium transition-colors","text-gray-700 hover:bg-gray-100 dark:text-gray-300 dark:hover:bg-gray-700","focus:outline-none focus-visible:ring-2",Jn[m],k&&"cursor-not-allowed opacity-50"),children:M?.clear??"Clear"})]})]})]})}function P0(e,t,r){let n=r||"bg-white dark:bg-gray-800",o=t||"border-gray-200 dark:border-gray-700";switch(e){case "outlined":return g("border-2 bg-transparent",o);case "elevated":return g("shadow-lg border-0",n);case "filled":return g(r||"bg-gray-100 dark:bg-gray-700","border-0");default:return g("border",o,n)}}function E0(e){switch(e){case "sm":return "max-w-sm";case "lg":return "max-w-2xl";default:return "max-w-md"}}function D0(e){switch(e){case "none":return "rounded-none";case "sm":return "rounded-sm";case "md":return "rounded-md";case "xl":return "rounded-xl";case "full":return "rounded-3xl";default:return "rounded-lg"}}function L0(e){switch(e){case "none":return "";case "sm":return "p-2";case "lg":return "p-6";default:return ""}}function _c({variant:e="default",size:t="md",rounded:r="lg",padding:n="none",bgColor:o,borderColor:a,shadowColor:s,hoverable:l=false,clickable:i=false,as:c="div",className:d,children:u,onClick:b,...m}){let p=c,C=l?"transition-all duration-200 hover:shadow-lg hover:-translate-y-0.5":"",v=i?"cursor-pointer active:scale-[0.98] transition-transform":"",k=s||"";return jsx(p,{className:g("overflow-hidden",P0(e,a,o),E0(t),D0(r),L0(n),C,v,k,d),onClick:i||b?b:void 0,...m,children:u})}_c.displayName="Card";function I0(e){switch(e){case "none":return "p-0";case "sm":return "px-3 py-2";case "lg":return "px-6 py-5";default:return "px-4 py-4"}}function Gc({actions:e,divider:t=false,padding:r="md",className:n,children:o,...a}){return jsxs("div",{className:g("flex items-center justify-between",I0(r),t&&"border-b border-gray-200 dark:border-gray-700",n),...a,children:[jsx("div",{className:"flex-1",children:o}),e&&jsx("div",{className:"flex items-center gap-2 ml-4",children:e})]})}Gc.displayName="CardHeader";function z0(e){switch(e){case "none":return "p-0";case "sm":return "px-3 py-2";case "lg":return "px-6 py-5";default:return "px-4 py-4"}}function Kc({padding:e="md",className:t,children:r,...n}){return jsx("div",{className:g(z0(e),t),...n,children:r})}Kc.displayName="CardBody";function H0(e){switch(e){case "none":return "p-0";case "sm":return "px-3 py-2";case "lg":return "px-6 py-5";default:return "px-4 py-4"}}function V0(e){switch(e){case "center":return "justify-center";case "right":return "justify-end";case "between":return "justify-between";default:return "justify-start"}}function Uc({divider:e=false,align:t="left",padding:r="md",className:n,children:o,...a}){return jsx("div",{className:g("flex items-center gap-2",H0(r),V0(t),e&&"border-t border-gray-200 dark:border-gray-700",n),...a,children:o})}Uc.displayName="CardFooter";function F0(e){switch(e){case "square":return "aspect-square";case "video":return "aspect-video";case "wide":return "aspect-[21/9]";default:return ""}}function O0(e){switch(e){case "contain":return "object-contain";case "fill":return "object-fill";case "none":return "object-none";default:return "object-cover"}}function Yc({position:e="top",aspectRatio:t="auto",objectFit:r="cover",src:n,alt:o,className:a,...s}){let l=e==="top"?"rounded-t-lg":"rounded-b-lg";return jsx("img",{src:n,alt:o,className:g("w-full",F0(t),O0(r),l,a),...s})}Yc.displayName="CardImage";function _0(e){switch(e){case "sm":return "text-base font-medium";case "lg":return "text-2xl font-bold";default:return "text-xl font-semibold"}}function qc({as:e="h3",size:t="md",className:r,children:n,...o}){return jsx(e,{className:g("text-gray-900 dark:text-white",_0(t),r),...o,children:n})}qc.displayName="CardTitle";function G0(e){switch(e){case "sm":return "text-xs";case "lg":return "text-base";default:return "text-sm"}}function jc({size:e="md",className:t,children:r,...n}){return jsx("p",{className:g("text-gray-500 dark:text-gray-400",G0(e),t),...n,children:r})}jc.displayName="CardDescription";function ha(e,t){if(e.length===0)return Number.NaN;if(e.length===1)return e[0];let r=(e.length-1)*Math.min(1,Math.max(0,t)),n=Math.floor(r),o=r-n;return o===0?e[n]:e[n]+(e[n+1]-e[n])*o}function U0(e,t){let r=e.filter(Number.isFinite).sort((n,o)=>n-o);return ha(r,t)}function Ei(e,t=1.5){let r=e.filter(b=>typeof b=="number"&&Number.isFinite(b)).sort((b,m)=>b-m);if(r.length===0)return null;let n=ha(r,.25),o=ha(r,.5),a=ha(r,.75),s=a-n,l=Math.max(0,t)*s,i=n-l,c=a+l,d=r.filter(b=>b>=i&&b<=c),u=r.filter(b=>b<i||b>c);return {count:r.length,min:r[0],max:r[r.length-1],q1:n,median:o,q3:a,iqr:s,lower:d.length>0?d[0]:n,upper:d.length>0?d[d.length-1]:a,outliers:u}}var j0=40,Z0=3,cs=4,Li="text-right [font-variant-numeric:tabular-nums]",Q0=memo(function({boxes:t,color:r}){return jsx("g",{children:t.map(n=>jsxs("g",{children:[jsx("g",{stroke:r,strokeWidth:1.5,strokeLinecap:"round",children:n.whiskers.map(o=>jsx("line",{x1:o.x1,y1:o.y1,x2:o.x2,y2:o.y2},o.key))}),n.body?jsx("path",{d:n.body,fill:r}):null,n.median?jsx("line",{x1:n.median.x1,y1:n.median.y1,x2:n.median.x2,y2:n.median.y2,strokeWidth:2,className:"stroke-white dark:stroke-gray-800"}):null,n.mean?jsx("path",{d:`M${n.mean.cx},${n.mean.cy-cs} L${n.mean.cx+cs},${n.mean.cy} L${n.mean.cx},${n.mean.cy+cs} L${n.mean.cx-cs},${n.mean.cy} Z`,strokeWidth:1.5,stroke:r,className:"fill-white dark:fill-gray-800"}):null,n.outliers.map(o=>jsx("circle",{cx:o.cx,cy:o.cy,r:Z0,fill:r,strokeWidth:1.5,className:"stroke-white dark:stroke-gray-800"},o.key))]},n.key))})});function J0({width:e,height:t,data:r,boxes:n,x:o,y:a,grid:s,size:l,orientation:i,boxSize:c,showOutliers:d,showMean:u,color:b,referenceLines:m,margin:p,tooltip:C,plotLabel:v,formatValue:k,formatX:y,onBoxClick:z}){let[h,R]=useState(null),f=Ge(),N=useMemo(()=>{let M=i==="vertical",T=n.flatMap(V=>V.stats===null?[]:[V.stats.min,V.stats.max,...u&&V.mean!==null?[V.mean]:[]]),P=Qt({width:e,height:t,data:r,x:o,y:a,bounds:T.length===0?null:[Math.min(...T),Math.max(...T)],margin:p,orientation:i,placement:"band",formatValue:k,formatX:y,defaultIncludeZero:false}),{valueScale:x,bandwidth:D,categoryPositions:S,innerWidth:B,innerHeight:H}=P,$=Math.min(c??j0,D),_=$*.5,F=(V,Y)=>M?{x:V,y:Y}:{x:Y,y:V},A=n.map((V,Y)=>{let X=S[Y]+(D-$)/2,G=X+$/2;if(V.stats===null)return {key:`${Y}`,body:"",median:null,whiskers:[],outliers:[],mean:null,top:S[Y],height:D};let{q1:j,q3:O,median:K,lower:se,upper:ae,outliers:U}=V.stats,J=x(j),te=x(O),ie=Math.min(J,te),Q=Math.abs(te-J),ge=ir({...M?{x:X,y:ie,width:$,height:Math.max(1,Q)}:{x:ie,y:X,width:Math.max(1,Q),height:$},radius:2,round:"none"}),Re=x(K),Qe=M?{x1:X,y1:Re,x2:X+$,y2:Re}:{x1:Re,y1:X,x2:Re,y2:X+$},at=[];for(let[et,me,ce]of [["lower",se,j],["upper",ae,O]]){let Oe=x(me),st=x(ce),Pe=F(G,Oe),De=F(G,st);at.push({key:`${et}-stem`,x1:De.x,y1:De.y,x2:Pe.x,y2:Pe.y});let it=F(G-_/2,Oe),xt=F(G+_/2,Oe);at.push({key:`${et}-cap`,x1:it.x,y1:it.y,x2:xt.x,y2:xt.y});}return {key:`${Y}`,body:ge,median:Qe,whiskers:at,outliers:d?U.map((et,me)=>{let ce=F(G,x(et));return {key:`${me}`,cx:ce.x,cy:ce.y}}):[],mean:u&&V.mean!==null?(()=>{let et=F(G,x(V.mean));return {cx:et.x,cy:et.y}})():null,top:S[Y],height:D}});return {vertical:M,rendered:A,categoryPositions:S,categoryCenters:P.categoryCenters,bandwidth:D,categoryTicks:P.categoryTicks,valueTicks:P.valueTicks,valueScale:x,innerWidth:B,innerHeight:H,margin:P.margin}},[n,r,o,a,e,t,p,i,c,d,u,k,y]),L=useCallback(M=>{if(C===false||n.length===0)return;let T=M.currentTarget.getBoundingClientRect(),P=N.vertical?M.clientX-T.left-N.margin.left:M.clientY-T.top-N.margin.top;R(Wt(N.categoryCenters,P));},[C,n.length,N.vertical,N.margin,N.categoryCenters]),E=useCallback(M=>{if(n.length===0)return;let T=n.length-1,P=h??0,x=N.vertical?"ArrowRight":"ArrowDown",D=N.vertical?"ArrowLeft":"ArrowUp",S=M.key===x?Math.min(T,P+1):M.key===D?Math.max(0,P-1):M.key==="Home"?0:M.key==="End"?T:M.key==="Escape"?null:void 0;S!==void 0&&(M.preventDefault(),R(S));},[n.length,h,N.vertical]),I=useCallback(()=>{!z||h===null||z(n[h]);},[z,h,n]),w=h===null?null:n[h],W=h===null||w===null||w.stats===null?null:N.vertical?{x:N.margin.left+N.categoryCenters[h],y:N.margin.top+N.valueScale(w.stats.q3)}:{x:N.margin.left+N.valueScale(w.stats.q3),y:N.margin.top+N.categoryCenters[h]};return jsxs(Fragment,{children:[jsxs("svg",{width:e,height:t,role:"img","aria-label":v??n.map(M=>M.label).join(", "),tabIndex:0,className:"touch-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500",onPointerMove:L,onPointerLeave:()=>R(null),onKeyDown:E,onBlur:()=>R(null),onClick:I,children:[jsxs("g",{transform:`translate(${N.margin.left}, ${N.margin.top})`,children:[jsx(Ot,{width:N.innerWidth,height:N.innerHeight,horizontal:N.vertical&&(s==="y"||s==="both")?N.valueTicks.map(M=>M.offset):void 0,vertical:!N.vertical&&(s==="y"||s==="both")?N.valueTicks.map(M=>M.offset):void 0}),h!==null?jsx("rect",{x:N.vertical?N.categoryPositions[h]:0,y:N.vertical?0:N.categoryPositions[h],width:N.vertical?N.bandwidth:N.innerWidth,height:N.vertical?N.innerHeight:N.bandwidth,className:"fill-gray-400 dark:fill-gray-500",opacity:.12,"aria-hidden":"true"}):null,m?.map(M=>{let T=N.valueScale(M.value);return jsxs("g",{children:[jsx("line",{x1:N.vertical?0:T,y1:N.vertical?T:0,x2:N.vertical?N.innerWidth:T,y2:N.vertical?T:N.innerHeight,stroke:M.color??"var(--color-chart-muted)",strokeWidth:1,strokeDasharray:M.dashed===false?void 0:"4 4"}),M.label?jsx("text",{x:N.vertical?N.innerWidth:T+4,y:N.vertical?T-4:8,textAnchor:N.vertical?"end":"start",className:"fill-gray-500 text-[10px] dark:fill-gray-400",children:M.label}):null]},`${M.value}-${M.label??""}`)}),jsx(Q0,{boxes:N.rendered,color:b})]}),jsx("g",{transform:`translate(${N.margin.left}, ${N.margin.top+N.innerHeight})`,children:(N.vertical?o.hidden:a?.hidden)?null:jsx(_e,{orientation:"bottom",ticks:N.vertical?N.categoryTicks:N.valueTicks,length:N.innerWidth,label:N.vertical?o.label:a?.label,size:l})}),jsx("g",{transform:`translate(${N.margin.left}, ${N.margin.top})`,children:(N.vertical?a?.hidden:o.hidden)?null:jsx(_e,{orientation:"left",ticks:N.vertical?N.valueTicks:N.categoryTicks,length:N.innerHeight,showLine:false,label:N.vertical?a?.label:o.label,size:l})})]}),w&&w.stats&&W&&C!==false?jsx(gt,{x:W.x,y:W.y,containerWidth:e,children:typeof C=="function"?C(w):jsxs("div",{className:"flex flex-col gap-1",children:[jsx("div",{className:"font-medium text-gray-900 dark:text-gray-100",children:w.label}),jsxs("dl",{className:"grid grid-cols-[auto_auto] gap-x-3 gap-y-0.5",children:[[["Max",w.stats.max],["Q3",w.stats.q3],[f.chartMedian,w.stats.median],["Q1",w.stats.q1],["Min",w.stats.min]].map(([M,T])=>jsxs("div",{className:"contents",children:[jsx("dt",{className:"text-gray-500 dark:text-gray-400",children:M}),jsx("dd",{className:"justify-self-end font-medium text-gray-900 [font-variant-numeric:tabular-nums] dark:text-gray-100",children:k(T)})]},M)),jsxs("div",{className:"contents",children:[jsx("dt",{className:"text-gray-500 dark:text-gray-400",children:f.chartCount}),jsx("dd",{className:"justify-self-end font-medium text-gray-900 [font-variant-numeric:tabular-nums] dark:text-gray-100",children:w.stats.count})]})]})]})}):null]})}function ef({data:e,x:t,y:r,values:n,quantiles:o,whisker:a=1.5,orientation:s="vertical",boxSize:l,showOutliers:i=true,showMean:c=false,color:d,referenceLines:u,height:b=280,width:m,size:p="md",grid:C="y",tooltip:v=true,tableView:k=false,title:y,description:z,loading:h=false,emptyState:R,margin:f,locale:N,plotLabel:L,format:E,onBoxClick:I,className:w,...W}){let M=Ge(),T=useMemo(()=>r?.format??E??(S=>rt(S,N)),[r?.format,E,N]),P=useMemo(()=>t.format??(S=>Ke(S,N)),[t.format,N]),x=useMemo(()=>e.map((S,B)=>{let H=mt(S,t.key,B),$=n?(()=>{let A=S[n];return Array.isArray(A)?A.map(V=>typeof V=="number"?V:Number(V)).filter(V=>Number.isFinite(V)):null})():null,_=null,F=null;if($!==null)_=Ei($,a),F=$.length===0?null:$.reduce((A,V)=>A+V,0)/$.length;else if(o){let A=Ee(S,o.q1),V=Ee(S,o.median),Y=Ee(S,o.q3);if(A!==null&&V!==null&&Y!==null){let X=o.min?Ee(S,o.min)??A:A,G=o.max?Ee(S,o.max)??Y:Y;_={count:0,min:X,max:G,q1:A,median:V,q3:Y,iqr:Y-A,lower:X,upper:G,outliers:[]};}}return {index:B,x:H,label:P(H,B),stats:_,mean:F,datum:S}}),[e,t.key,n,o,a,P]),D=x.filter(S=>S.stats!==null);return jsx(ut,{title:y,description:z,height:b,width:m,size:p,loading:h,empty:D.length===0,emptyState:R,tableView:k,table:k?jsx("div",{className:"w-full overflow-x-auto",children:jsxs(gn,{children:[typeof y=="string"?jsx("caption",{className:"sr-only",children:y}):null,jsxs(fn,{children:[jsx(Nt,{children:t.label??t.key}),n?jsx(Nt,{className:"text-right",children:M.chartCount}):null,jsx(Nt,{className:"text-right",children:"Min"}),jsx(Nt,{className:"text-right",children:"Q1"}),jsx(Nt,{className:"text-right",children:M.chartMedian}),jsx(Nt,{className:"text-right",children:"Q3"}),jsx(Nt,{className:"text-right",children:"Max"}),n&&i?jsx(Nt,{className:"text-right",children:M.chartOutliers}):null]}),jsx(pn,{children:x.map(S=>jsxs(bn,{clickable:false,children:[jsx(_t,{className:"font-medium text-gray-900 dark:text-gray-100",children:S.label}),n?jsx(_t,{className:Li,children:S.stats?.count??"\u2014"}):null,["min","q1","median","q3","max"].map(B=>jsx(_t,{className:Li,children:S.stats===null?"\u2014":T(S.stats[B])},B)),n&&i?jsx(_t,{className:Li,children:S.stats===null||S.stats.outliers.length===0?"\u2014":S.stats.outliers.map(T).join(", ")}):null]},S.index))})]})}):void 0,className:w,...W,children:({width:S})=>jsx(J0,{width:S,height:b,data:e,boxes:x,x:t,y:r,grid:C,size:p,orientation:s,boxSize:l,showOutliers:i,showMean:c,color:d??Pr(0),referenceLines:u,margin:f,tooltip:v,plotLabel:L,formatValue:T,formatX:P,onBoxClick:I})})}var of=16,af=1.5,sf=memo(function({candles:t}){return jsx("g",{children:t.map(r=>jsxs("g",{children:[r.wick?jsx("line",{x1:r.wick.x,y1:r.wick.y1,x2:r.wick.x,y2:r.wick.y2,stroke:r.color,strokeWidth:1.5}):null,r.body?jsx("path",{d:r.body,fill:r.hollow?"none":r.color,stroke:r.color,strokeWidth:r.hollow?1.5:0}):null]},r.key))})});function lf({width:e,height:t,data:r,candles:n,x:o,y:a,grid:s,size:l,candleSize:i,fillRising:c,palette:d,referenceLines:u,margin:b,tooltip:m,plotLabel:p,formatValue:C,formatX:v,onCandleClick:k}){let[y,z]=useState(null),h=Ge(),R=useMemo(()=>{let I=n.flatMap(B=>B.high===null||B.low===null?[]:[B.low,B.high]),w=Qt({width:e,height:t,data:r,x:o,y:a,bounds:I.length===0?null:[Math.min(...I),Math.max(...I)],margin:b,orientation:"vertical",placement:"band",formatValue:C,formatX:v,defaultIncludeZero:false}),{valueScale:W,bandwidth:M,categoryPositions:T,innerWidth:P,innerHeight:x}=w,D=Math.min(i??of,Math.max(1,M-2));return {rendered:n.map((B,H)=>{let $=T[H]+(M-D)/2,_=$+D/2,F=B.rising?d.up:d.down,A=B.high===null||B.low===null?null:{x:_,y1:W(B.high),y2:W(B.low)},V=null;if(B.open!==null&&B.close!==null){let Y=W(B.open),X=W(B.close);V=ir({x:$,y:Math.min(Y,X),width:D,height:Math.max(af,Math.abs(X-Y)),radius:0,round:"none"});}return {key:`${H}`,color:F,body:V,hollow:B.rising&&!c,wick:A,left:$,width:D}}),categoryPositions:T,categoryCenters:w.categoryCenters,bandwidth:M,categoryTicks:w.categoryTicks,valueTicks:w.valueTicks,valueScale:W,innerWidth:P,innerHeight:x,margin:w.margin}},[n,r,o,a,e,t,b,i,c,d,C,v]),f=useCallback(I=>{if(m===false||n.length===0)return;let w=I.currentTarget.getBoundingClientRect(),W=I.clientX-w.left-R.margin.left;z(Wt(R.categoryCenters,W));},[m,n.length,R.margin.left,R.categoryCenters]),N=useCallback(I=>{if(n.length===0)return;let w=n.length-1,W=y??0,M=I.key==="ArrowRight"?Math.min(w,W+1):I.key==="ArrowLeft"?Math.max(0,W-1):I.key==="Home"?0:I.key==="End"?w:I.key==="Escape"?null:void 0;M!==void 0&&(I.preventDefault(),z(M));},[n.length,y]),L=useCallback(()=>{!k||y===null||k(n[y]);},[k,y,n]),E=y===null?null:n[y];return jsxs(Fragment,{children:[jsxs("svg",{width:e,height:t,role:"img","aria-label":p??n.map(I=>I.label).join(", "),tabIndex:0,className:"touch-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500",onPointerMove:f,onPointerLeave:()=>z(null),onKeyDown:N,onBlur:()=>z(null),onClick:L,children:[jsxs("g",{transform:`translate(${R.margin.left}, ${R.margin.top})`,children:[jsx(Ot,{width:R.innerWidth,height:R.innerHeight,horizontal:s==="y"||s==="both"?R.valueTicks.map(I=>I.offset):void 0}),y!==null?jsx("rect",{x:R.categoryPositions[y],y:0,width:R.bandwidth,height:R.innerHeight,className:"fill-gray-400 dark:fill-gray-500",opacity:.12,"aria-hidden":"true"}):null,u?.map(I=>jsxs("g",{children:[jsx("line",{x1:0,y1:R.valueScale(I.value),x2:R.innerWidth,y2:R.valueScale(I.value),stroke:I.color??"var(--color-chart-muted)",strokeWidth:1,strokeDasharray:I.dashed===false?void 0:"4 4"}),I.label?jsx("text",{x:R.innerWidth,y:R.valueScale(I.value)-4,textAnchor:"end",className:"fill-gray-500 text-[10px] dark:fill-gray-400",children:I.label}):null]},`${I.value}-${I.label??""}`)),jsx(sf,{candles:R.rendered})]}),jsx("g",{transform:`translate(${R.margin.left}, ${R.margin.top+R.innerHeight})`,children:o.hidden?null:jsx(_e,{orientation:"bottom",ticks:R.categoryTicks,length:R.innerWidth,label:o.label,size:l})}),jsx("g",{transform:`translate(${R.margin.left}, ${R.margin.top})`,children:a?.hidden?null:jsx(_e,{orientation:"left",ticks:R.valueTicks,length:R.innerHeight,showLine:false,label:a?.label,size:l})})]}),E&&y!==null&&m!==false?jsx(gt,{x:R.margin.left+R.categoryCenters[y],y:R.margin.top+(E.high===null?R.innerHeight/2:R.valueScale(E.high)),containerWidth:e,children:typeof m=="function"?m(E):jsxs("div",{className:"flex flex-col gap-1",children:[jsx("div",{className:"font-medium text-gray-900 dark:text-gray-100",children:E.label}),jsx("dl",{className:"grid grid-cols-[auto_auto] gap-x-3 gap-y-0.5",children:[[h.chartOpen,E.open],[h.chartHigh,E.high],[h.chartLow,E.low],[h.chartClose,E.close]].map(([I,w])=>jsxs("div",{className:"contents",children:[jsx("dt",{className:"text-gray-500 dark:text-gray-400",children:I}),jsx("dd",{className:"justify-self-end font-medium text-gray-900 [font-variant-numeric:tabular-nums] dark:text-gray-100",children:w===null?"\u2014":C(w)})]},I))}),E.change===null?null:jsxs("div",{className:"flex items-center gap-2 border-t border-gray-200 pt-1 dark:border-gray-700",children:[jsx("span",{className:"text-gray-500 dark:text-gray-400",children:E.rising?h.chartRise:h.chartFall}),jsxs("span",{className:"[font-variant-numeric:tabular-nums] font-semibold text-gray-900 dark:text-gray-100",children:[E.change>0?"+":"",C(E.change)]})]})]})}):null]})}function cf({data:e,x:t,y:r,open:n,high:o,low:a,close:s,candleSize:l,fillRising:i=false,colors:c,referenceLines:d,height:u=300,width:b,size:m="md",grid:p="y",legend:C,tooltip:v=true,tableView:k=false,title:y,description:z,loading:h=false,emptyState:R,margin:f,locale:N,plotLabel:L,openLabel:E,highLabel:I,lowLabel:w,closeLabel:W,riseLabel:M,fallLabel:T,format:P,onCandleClick:x,className:D,...S}){let B=Ge(),H=useMemo(()=>r?.format??P??(X=>rt(X,N)),[r?.format,P,N]),$=useMemo(()=>t.format??(X=>Ke(X,N)),[t.format,N]),_=useMemo(()=>e.map((X,G)=>{let j=mt(X,t.key,G),O=Ee(X,n),K=Ee(X,s);return {index:G,x:j,label:$(j,G),open:O,high:Ee(X,o),low:Ee(X,a),close:K,change:O===null||K===null?null:K-O,rising:O===null||K===null?true:K>=O,datum:X}}),[e,t.key,n,o,a,s,$]),F=useMemo(()=>({up:c?.up??gi,down:c?.down??pi}),[c]),A=useMemo(()=>[{key:"up",label:M??B.chartRise,color:F.up,marker:"rect"},{key:"down",label:T??B.chartFall,color:F.down,marker:"rect"}],[F,M,T,B.chartRise,B.chartFall]),V=C===void 0?true:C!==false,Y=typeof C=="string"?C:"bottom";return jsx(ut,{title:y,description:z,height:u,width:b,size:m,loading:h,empty:_.length===0,emptyState:R,tableView:k,legendPosition:Y,legend:V?jsx($t,{items:A,position:Y,marker:"rect",size:m}):void 0,table:k?jsx(It,{data:e,series:[{key:n,label:E??B.chartOpen},{key:o,label:I??B.chartHigh},{key:a,label:w??B.chartLow},{key:s,label:W??B.chartClose}],xKey:t.key,xLabel:t.label??t.key,formatX:$,formatValue:H,caption:typeof y=="string"?y:void 0}):void 0,className:D,...S,children:({width:X})=>jsx(lf,{width:X,height:u,data:e,candles:_,x:t,y:r,grid:p,size:m,candleSize:l,fillRising:i,palette:F,referenceLines:d,margin:f,tooltip:v,plotLabel:L,formatValue:H,formatX:$,onCandleClick:x})})}var Zc=12,Ai=false,uf={sm:"text-[11px]",md:"text-xs",lg:"text-sm"},mf={sm:"text-xs",md:"text-sm",lg:"text-base"};function gf({data:e,by:t,values:r,domain:n,includeZero:o=false,ticks:a=5,order:s,sort:l="none",columns:i,minPanelWidth:c=220,formatLabel:d,showLabels:u=true,title:b,description:m,size:p="md",locale:C,emptyState:v,children:k,className:y,...z}){let h=d??(L=>Ke(L,C)),R=new Map;e.forEach((L,E)=>{let I=mt(L,t,E),w=St(I),W=R.get(w);W?W.rows.push(L):R.set(w,{value:I,rows:[L]});});let f=[...R.entries()];if(s)f=s.map(St).map(E=>f.find(([I])=>I===E)).filter(E=>E!==void 0);else if(l!=="none"){let L=E=>E.reduce((I,w)=>I+r.reduce((W,M)=>W+(Ee(w,M)??0),0),0);f=[...f].sort(([,E],[,I])=>l==="asc"?L(E.rows)-L(I.rows):L(I.rows)-L(E.rows));}let N=n??No(ur(e,r),{includeZero:o,ticks:a});return f.length>Zc&&!Ai&&(Ai=true,console.warn(`[@synertech/ui] ChartFacets was given ${f.length} panels. Past ${Zc} a facet grid stops being a comparison \u2014 filter the data down to the panels the reader is actually comparing.`)),f.length===0?jsx("div",{className:g("text-sm text-gray-500 dark:text-gray-400",y),...z,children:v}):jsxs("div",{className:g("flex w-full flex-col gap-3",y),...z,children:[b||m?jsxs("div",{className:"flex flex-col gap-0.5",children:[b?jsx("span",{className:g("font-semibold text-gray-900 dark:text-gray-100",mf[p]),children:b}):null,m?jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400",children:m}):null]}):null,jsx("div",{className:"grid gap-x-4 gap-y-3",style:{gridTemplateColumns:i?`repeat(${i}, minmax(0, 1fr))`:`repeat(auto-fit, minmax(${c}px, 1fr))`},children:f.map(([L,E],I)=>{let w=h(E.value,I);return jsxs("div",{role:"group","aria-label":w,className:"flex min-w-0 flex-col gap-1",children:[u?jsx("span",{className:g("font-medium text-gray-700 dark:text-gray-200",uf[p]),children:w}):null,k({key:L,label:w,data:E.rows,domain:N,index:I,count:f.length})]},L)})})]})}function pf(){Ai=false;}var zi=[{unit:"second",step:1,span:1e3},{unit:"second",step:5,span:5e3},{unit:"second",step:15,span:15e3},{unit:"second",step:30,span:3e4},{unit:"minute",step:1,span:6e4},{unit:"minute",step:5,span:3e5},{unit:"minute",step:15,span:9e5},{unit:"minute",step:30,span:18e5},{unit:"hour",step:1,span:36e5},{unit:"hour",step:3,span:108e5},{unit:"hour",step:6,span:216e5},{unit:"hour",step:12,span:432e5},{unit:"day",step:1,span:864e5},{unit:"day",step:2,span:1728e5},{unit:"week",step:1,span:6048e5},{unit:"week",step:2,span:12096e5},{unit:"month",step:1,span:2592e6},{unit:"month",step:3,span:78624e5},{unit:"month",step:6,span:157248e5},{unit:"year",step:1,span:31536e6},{unit:"year",step:2,span:63072e6},{unit:"year",step:5,span:1577664e5},{unit:"year",step:10,span:3155328e5}];function ff(e,t,r){let n=new Date(e.getTime());switch(t){case "year":return n.setMonth(0,1),n.setHours(0,0,0,0),n.setFullYear(Math.floor(n.getFullYear()/r)*r),n;case "month":return n.setDate(1),n.setHours(0,0,0,0),n.setMonth(Math.floor(n.getMonth()/r)*r),n;case "week":return n.setHours(0,0,0,0),n.setDate(n.getDate()-(n.getDay()+6)%7),n;case "day":return n.setHours(0,0,0,0),n;case "hour":return n.setMinutes(0,0,0),n.setHours(Math.floor(n.getHours()/r)*r),n;case "minute":return n.setSeconds(0,0),n.setMinutes(Math.floor(n.getMinutes()/r)*r),n;default:return n.setMilliseconds(0),n.setSeconds(Math.floor(n.getSeconds()/r)*r),n}}function Qc(e,t,r){let n=new Date(e.getTime());switch(t){case "year":return n.setFullYear(n.getFullYear()+r),n;case "month":return n.setMonth(n.getMonth()+r),n;case "week":return n.setDate(n.getDate()+r*7),n;case "day":return n.setDate(n.getDate()+r),n;case "hour":return n.setHours(n.getHours()+r),n;case "minute":return n.setMinutes(n.getMinutes()+r),n;default:return n.setSeconds(n.getSeconds()+r),n}}function Wi(e,t,r=6){if(!Number.isFinite(e)||!Number.isFinite(t))return {values:[],unit:"day",step:1};e>t&&([e,t]=[t,e]);let n=Math.max(1,r),o=(t-e)/n,a=zi.find(i=>i.span>=o)??zi[zi.length-1],s=[],l=ff(new Date(e),a.unit,a.step);for(;l.getTime()<e;)l=Qc(l,a.unit,a.step);for(;l.getTime()<=t&&s.length<=500;)s.push(l.getTime()),l=Qc(l,a.unit,a.step);return {values:s,unit:a.unit,step:a.step}}function us(e,t,r){let n=new Date(e);switch(t){case "year":return new Intl.DateTimeFormat(r,{year:"numeric"}).format(n);case "month":return new Intl.DateTimeFormat(r,{month:"short",year:"2-digit"}).format(n);case "week":case "day":return new Intl.DateTimeFormat(r,{day:"numeric",month:"short"}).format(n);case "hour":return new Intl.DateTimeFormat(r,{hour:"2-digit",minute:"2-digit"}).format(n);default:return new Intl.DateTimeFormat(r,{minute:"2-digit",second:"2-digit"}).format(n)}}function to(e){if(e instanceof Date){let t=e.getTime();return Number.isFinite(t)?t:null}if(typeof e=="number")return Number.isFinite(e)?e:null;if(typeof e=="string"&&e!==""){let t=Date.parse(e);if(Number.isFinite(t))return t;let r=Number(e);return Number.isFinite(r)?r:null}return null}var hf=5,yf=3,Jc=10,Hi=false;function xf(){Hi=false;}var vf=memo(function({rows:t,radius:r}){return jsx("g",{children:t.map(n=>jsxs("g",{children:[n.connector?jsx("line",{x1:n.connector.x1,y1:n.connector.y,x2:n.connector.x2,y2:n.connector.y,strokeWidth:yf,strokeLinecap:"round",className:"stroke-gray-300 dark:stroke-gray-600"}):null,n.dots.map(o=>jsx("circle",{cx:o.cx,cy:o.cy,r,fill:o.color,strokeWidth:2,className:"stroke-white dark:stroke-gray-800"},o.key)),n.label?jsx("text",{x:n.label.x,y:n.label.y,dominantBaseline:"middle",className:"fill-gray-600 text-[10px] [font-variant-numeric:tabular-nums] dark:fill-gray-300",children:n.label.text}):null]},n.key))})});function kf({width:e,height:t,data:r,rows:n,resolvedSeries:o,x:a,y:s,grid:l,size:i,showValues:c,dotSize:d,referenceLines:u,margin:b,tooltip:m,plotLabel:p,formatValue:C,formatX:v,onRowClick:k}){let[y,z]=useState(null),h=useMemo(()=>{let I=o.filter(S=>!S.hidden).map(S=>S.key),w=Qt({width:e,height:t,data:r,x:a,y:s,bounds:Kt(ur(r,I)),margin:b,orientation:"horizontal",placement:"band",formatValue:C,formatX:v,defaultIncludeZero:false}),{valueScale:W,bandwidth:M,categoryPositions:T,innerWidth:P,innerHeight:x}=w;return {rendered:n.map((S,B)=>{let H=T[B]+M/2,$=S.points.map((A,V)=>({key:A.seriesKey,value:A.value,cx:A.value===null?Number.NaN:W(A.value),cy:H,color:A.color,order:V})).filter(A=>A.value!==null),_=S.from===null||S.to===null||$.length<2?null:{x1:W(S.from),x2:W(S.to),y:H},F=null;if(c&&S.to!==null){let A=C(S.to),V=W(S.to);vr(A,10)<=P-V-Jc&&(F={x:V+Jc,y:H,text:A});}return {key:`${B}`,connector:_,dots:$.map(A=>({key:A.key,cx:A.cx,cy:A.cy,color:A.color})),label:F,top:T[B],height:M}}),categoryPositions:T,categoryCenters:w.categoryCenters,bandwidth:M,categoryTicks:w.categoryTicks,valueTicks:w.valueTicks,valueScale:W,innerWidth:P,innerHeight:x,margin:w.margin}},[r,n,o,a,s,e,t,b,c,C,v]),R=useCallback(E=>{if(m===false||n.length===0)return;let I=E.currentTarget.getBoundingClientRect(),w=E.clientY-I.top-h.margin.top;z(Wt(h.categoryCenters,w));},[m,n.length,h.margin.top,h.categoryCenters]),f=useCallback(E=>{if(n.length===0)return;let I=n.length-1,w=y??0,W=E.key==="ArrowDown"?Math.min(I,w+1):E.key==="ArrowUp"?Math.max(0,w-1):E.key==="Home"?0:E.key==="End"?I:E.key==="Escape"?null:void 0;W!==void 0&&(E.preventDefault(),z(W));},[n.length,y]),N=useCallback(()=>{!k||y===null||k(n[y]);},[k,y,n]),L=y===null?null:n[y];return jsxs(Fragment,{children:[jsxs("svg",{width:e,height:t,role:"img","aria-label":p??o.map(E=>Xt(E)).join(", "),tabIndex:0,className:"touch-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500",onPointerMove:R,onPointerLeave:()=>z(null),onKeyDown:f,onBlur:()=>z(null),onClick:N,children:[jsxs("g",{transform:`translate(${h.margin.left}, ${h.margin.top})`,children:[jsx(Ot,{width:h.innerWidth,height:h.innerHeight,vertical:l==="y"||l==="both"?h.valueTicks.map(E=>E.offset):void 0}),y!==null?jsx("rect",{x:0,y:h.categoryPositions[y],width:h.innerWidth,height:h.bandwidth,className:"fill-gray-400 dark:fill-gray-500",opacity:.12,"aria-hidden":"true"}):null,u?.map(E=>jsxs("g",{children:[jsx("line",{x1:h.valueScale(E.value),y1:0,x2:h.valueScale(E.value),y2:h.innerHeight,stroke:E.color??"var(--color-chart-muted)",strokeWidth:1,strokeDasharray:E.dashed===false?void 0:"4 4"}),E.label?jsx("text",{x:h.valueScale(E.value)+4,y:8,className:"fill-gray-500 text-[10px] dark:fill-gray-400",children:E.label}):null]},`${E.value}-${E.label??""}`)),jsx(vf,{rows:h.rendered,radius:d})]}),jsx("g",{transform:`translate(${h.margin.left}, ${h.margin.top+h.innerHeight})`,children:s?.hidden?null:jsx(_e,{orientation:"bottom",ticks:h.valueTicks,length:h.innerWidth,label:s?.label,size:i})}),jsx("g",{transform:`translate(${h.margin.left}, ${h.margin.top})`,children:a.hidden?null:jsx(_e,{orientation:"left",ticks:h.categoryTicks,length:h.innerHeight,showLine:false,tickSize:0,label:a.label,size:i})})]}),L&&y!==null&&m!==false?jsx(gt,{x:h.margin.left+(L.to===null?h.innerWidth/2:h.valueScale(L.to)),y:h.margin.top+h.categoryCenters[y],containerWidth:e,children:typeof m=="function"?m(L):jsx(Cr,{title:L.label,points:L.points})}):null]})}function Cf({data:e,x:t,y:r,series:n,sort:o="none",sortBy:a,showValues:s=false,dotSize:l=hf,referenceLines:i,height:c,width:d,size:u="md",grid:b="y",legend:m,legendToggle:p=true,tooltip:C=true,tableView:v=false,showChange:k=true,title:y,description:z,loading:h=false,emptyState:R,margin:f,locale:N,plotLabel:L,changeLabel:E,format:I,onRowClick:w,className:W,...M}){let T=Ge(),[P,x]=useState(()=>new Set);n.length>3&&!Hi&&(Hi=true,console.warn(`[@synertech/ui] A DumbbellChart was given ${n.length} series. Any two dots of a row can sit side by side, and only the first ${3} palette slots stay tellable apart under that test: facet the chart instead.`));let D=useMemo(()=>n.map((G,j)=>({...G,hidden:G.hidden||P.has(G.key),color:Er(G,j)})),[n,P]),S=useMemo(()=>r?.format??I??(G=>rt(G,N)),[r?.format,I,N]),B=useMemo(()=>t.format??(G=>Ke(G,N)),[t.format,N]),H=useMemo(()=>D.filter(G=>!G.hidden),[D]),$=useMemo(()=>e.map((G,j)=>{let O=mt(G,t.key,j),K=H.map(J=>{let te=Ee(G,J.key);return {seriesKey:J.key,seriesLabel:Xt(J),color:J.color,value:te,formattedValue:te===null?"\u2014":S(te),datum:G}}),se=K.map(J=>J.value).filter(J=>J!==null),ae=K[0]?.value??null,U=K[K.length-1]?.value??null;return {index:j,x:O,label:B(O,j),points:K,from:se.length>0?Math.min(...se):null,to:se.length>0?Math.max(...se):null,change:ae===null||U===null?null:U-ae,datum:G}}),[e,t.key,H,S,B]),_=useMemo(()=>{if(o==="none")return $;let G=a??H[H.length-1]?.key,j=K=>o==="gap"?Math.abs(K.change??0):K.points.find(se=>se.seriesKey===G)?.value??0,O=[...$].sort((K,se)=>j(K)-j(se));return o==="asc"?O:O.reverse()},[$,o,a,H]),F=useCallback(G=>{x(j=>{let O=new Set(j);return O.has(G)?O.delete(G):O.add(G),O});},[]),A=c??Math.max(96,_.length*30+44),V=useMemo(()=>_.map(G=>({...G.datum,__change:G.change})),[_]),Y=m===void 0?n.length>=2:m!==false,X=typeof m=="string"?m:"bottom";return jsx(ut,{title:y,description:z,height:A,width:d,size:u,loading:h,empty:_.length===0||H.length===0,emptyState:R,tableView:v,legendPosition:X,legend:Y?jsx($t,{items:Or(D),position:X,marker:"dot",size:u,onToggle:p?F:void 0}):void 0,table:v?jsx(It,{data:V,series:[...D,...k?[{key:"__change",label:E??T.chartChange}]:[]],xKey:t.key,xLabel:t.label??t.key,formatX:B,formatValue:S,caption:typeof y=="string"?y:void 0}):void 0,className:W,...M,children:({width:G})=>jsx(kf,{width:G,height:A,data:_.map(j=>j.datum),rows:_,resolvedSeries:D,x:t,y:r,grid:b,size:u,showValues:s,dotSize:l,referenceLines:i,margin:f,tooltip:C,plotLabel:L,formatValue:S,formatX:B,onRowClick:w})})}var Rf=8,Tf=12,Pf=44,Bi="text-right [font-variant-numeric:tabular-nums]",Ef=memo(function({stages:t}){return jsx("g",{children:t.map(r=>jsxs("g",{children:[jsx("path",{d:r.d,fill:r.color}),r.value?jsx("text",{x:r.value.x,y:r.value.y,textAnchor:r.value.anchor,dominantBaseline:"middle",className:r.value.inside?r.value.onDark?"fill-gray-50 text-[11px] font-semibold [font-variant-numeric:tabular-nums] dark:fill-gray-900":"fill-gray-900 text-[11px] font-semibold [font-variant-numeric:tabular-nums] dark:fill-gray-50":"fill-gray-700 text-[11px] font-semibold [font-variant-numeric:tabular-nums] dark:fill-gray-200",children:r.value.text}):null,r.conversion?jsx("text",{x:r.conversion.x,y:r.conversion.y,textAnchor:"middle",dominantBaseline:"middle",className:"fill-gray-500 text-[10px] [font-variant-numeric:tabular-nums] dark:fill-gray-400",children:r.conversion.text}):null]},r.key))})});function Df({width:e,height:t,stages:r,x:n,size:o,align:a,showConversion:s,showValues:l,stageSize:i,ramp:c,tooltip:d,plotLabel:u,locale:b,onStageClick:m}){let[p,C]=useState(null),v=Ge(),k=useMemo(()=>{let f=r.map(x=>x.label),N={top:6,right:12,bottom:6,left:n.hidden?8:n.height??kr(f)+Tf},L=Math.max(0,e-N.left-N.right),E=Math.max(0,t-N.top-N.bottom),I=hn(r.map((x,D)=>D),[0,E],{paddingInner:s?.45:.28}),w=Math.min(i??Pf,I.bandwidth),W=Math.max(0,...r.map(x=>x.value??0)),M=Dr([0,W],[0,L]),T=r.map((x,D)=>{let S=x.value===null?0:Math.max(0,M(x.value)),B=a==="center"?(L-S)/2:0,H=I(D)+(I.bandwidth-w)/2,$=H+w/2,_=null;if(l&&x.value!==null){let V=x.formattedValue;_=vr(V,11)+16<=S?{x:B+S/2,y:$,anchor:"middle",text:V,inside:true,onDark:c.onDark(D)}:{x:B+S+Rf,y:$,anchor:"start",text:V,inside:false,onDark:false};}let F=I(D-1)+(I.bandwidth-w)/2+w,A=s&&x.conversion!==null&&D>0?{x:L/2,y:(F+H)/2,text:Gt(x.conversion,{locale:b,maximumFractionDigits:0})}:null;return {key:`${D}`,d:ir({x:B,y:H,width:S,height:w,radius:4,round:a==="center"?"none":"right"}),color:c(D),value:_,conversion:A,top:I(D),height:I.bandwidth}}),P=n.hidden?[]:r.map((x,D)=>({value:x.x,offset:I.center(D),label:x.label}));return {margin:N,innerWidth:L,innerHeight:E,rendered:T,stageTicks:P,centers:r.map((x,D)=>I.center(D))}},[r,n,e,t,a,s,l,i,c,b]),y=useCallback(f=>{if(d===false||r.length===0)return;let N=f.currentTarget.getBoundingClientRect(),L=f.clientY-N.top-k.margin.top;C(Wt(k.centers,L));},[d,r.length,k.margin.top,k.centers]),z=useCallback(f=>{if(r.length===0)return;let N=r.length-1,L=p??0,E=f.key==="ArrowDown"?Math.min(N,L+1):f.key==="ArrowUp"?Math.max(0,L-1):f.key==="Home"?0:f.key==="End"?N:f.key==="Escape"?null:void 0;E!==void 0&&(f.preventDefault(),C(E));},[r.length,p]),h=useCallback(()=>{!m||p===null||m(r[p]);},[m,p,r]),R=p===null?null:r[p];return jsxs(Fragment,{children:[jsxs("svg",{width:e,height:t,role:"img","aria-label":u??r.map(f=>f.label).join(", "),tabIndex:0,className:"touch-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500",onPointerMove:y,onPointerLeave:()=>C(null),onKeyDown:z,onBlur:()=>C(null),onClick:h,children:[jsxs("g",{transform:`translate(${k.margin.left}, ${k.margin.top})`,children:[p!==null&&k.rendered[p]?jsx("rect",{x:-4,y:k.rendered[p].top,width:k.innerWidth+8,height:k.rendered[p].height,rx:4,className:"fill-gray-400 dark:fill-gray-500",opacity:.12,"aria-hidden":"true"}):null,jsx(Ef,{stages:k.rendered})]}),jsx("g",{transform:`translate(${k.margin.left}, ${k.margin.top})`,children:n.hidden?null:jsx(_e,{orientation:"left",ticks:k.stageTicks,length:k.innerHeight,showLine:false,tickSize:0,size:o})})]}),R&&p!==null&&d!==false?jsx(gt,{x:k.margin.left+k.innerWidth/2,y:k.margin.top+k.centers[p],containerWidth:e,children:typeof d=="function"?d(R):jsxs("div",{className:"flex flex-col gap-1",children:[jsx("div",{className:"font-medium text-gray-900 dark:text-gray-100",children:R.label}),jsxs("div",{className:"flex items-center gap-2",children:[jsx("span",{className:"h-2.5 w-2.5 shrink-0 rounded-sm",style:{backgroundColor:k.rendered[p]?.color},"aria-hidden":"true"}),jsx("span",{className:"font-semibold text-gray-900 [font-variant-numeric:tabular-nums] dark:text-gray-100",children:R.formattedValue})]}),R.conversion!==null?jsxs("div",{className:"flex items-center gap-2 text-gray-500 dark:text-gray-400",children:[jsx("span",{children:v.chartConversion}),jsx("span",{className:"[font-variant-numeric:tabular-nums]",children:Gt(R.conversion,{locale:b,maximumFractionDigits:1})})]}):null,R.overall!==null?jsxs("div",{className:"flex items-center gap-2 text-gray-500 dark:text-gray-400",children:[jsx("span",{children:r[0]?.label}),jsx("span",{className:"[font-variant-numeric:tabular-nums]",children:Gt(R.overall,{locale:b,maximumFractionDigits:1})})]}):null]})}):null]})}function Lf({data:e,x:t,value:r,align:n="center",showConversion:o=true,showValues:a=true,stageSize:s,colors:l,height:i,width:c,size:d="md",tooltip:u=true,tableView:b=false,title:m,description:p,loading:C=false,emptyState:v,locale:k,plotLabel:y,valueLabel:z,conversionLabel:h,dropOffLabel:R,format:f,onStageClick:N,className:L,...E}){let I=Ge(),w=useMemo(()=>f??(x=>rt(x,k)),[f,k]),W=useMemo(()=>t.format??(x=>Ke(x,k)),[t.format,k]),M=useMemo(()=>{let x=Ee(e[0]??{},r);return e.map((D,S)=>{let B=mt(D,t.key,S),H=Ee(D,r),$=S===0?null:Ee(e[S-1],r);return {index:S,x:B,label:W(B,S),value:H,overall:S===0||x===null||x===0||H===null?null:H/x,conversion:$===null||$===0||H===null?null:H/$,dropOff:$===null||H===null?null:$-H,formattedValue:H===null?"\u2014":w(H),datum:D}})},[e,t.key,r,w,W]),T=useMemo(()=>ca([0,Math.max(1,M.length-1)],{colors:l??ia,...l?{}:{darkStops:fi}}),[M.length,l]),P=i??Math.max(96,M.length*(o?56:44)+12);return jsx(ut,{title:m,description:p,height:P,width:c,size:d,loading:C,empty:M.length===0,emptyState:v,tableView:b,table:b?jsx("div",{className:"w-full overflow-x-auto",children:jsxs(gn,{children:[typeof m=="string"?jsx("caption",{className:"sr-only",children:m}):null,jsxs(fn,{children:[jsx(Nt,{children:t.label??t.key}),jsx(Nt,{className:"text-right",children:z??I.chartValue}),jsx(Nt,{className:"text-right",children:h??I.chartConversion}),jsx(Nt,{className:"text-right",children:R??I.chartDropOff})]}),jsx(pn,{children:M.map(x=>jsxs(bn,{clickable:false,children:[jsx(_t,{className:"font-medium text-gray-900 dark:text-gray-100",children:x.label}),jsx(_t,{className:Bi,children:x.formattedValue}),jsx(_t,{className:Bi,children:x.conversion===null?"\u2014":Gt(x.conversion,{locale:k,maximumFractionDigits:1})}),jsx(_t,{className:Bi,children:x.dropOff===null?"\u2014":w(x.dropOff)})]},x.index))})]})}):void 0,className:L,...E,children:({width:x})=>jsx(Df,{width:x,height:P,stages:M,x:t,size:d,align:n,showConversion:o,showValues:a,stageSize:s,ramp:T,tooltip:u,plotLabel:y,locale:k,onStageClick:N})})}var zf=18,td=.5,Wf=.3,gs=7,rd=10,nd=.02,Fi="text-right [font-variant-numeric:tabular-nums]",Hf=memo(function({tasks:t,arrows:r}){return jsxs("g",{children:[jsx("g",{className:"fill-gray-400 stroke-gray-400 dark:fill-gray-500 dark:stroke-gray-500",children:r.map(n=>jsxs("g",{children:[jsx("path",{d:n.d,fill:"none",strokeWidth:1}),jsx("path",{d:n.head,strokeWidth:0})]},n.key))}),t.map(n=>jsxs("g",{children:[n.track?jsx("path",{d:n.track,fill:n.color,fillOpacity:n.trackOpacity}):null,n.progress?jsx("path",{d:n.progress,fill:n.color}):null,n.milestone?jsx("path",{d:n.milestone,fill:n.color,strokeWidth:2,className:"stroke-white dark:stroke-gray-800"}):null]},n.key))]})});function Vf({width:e,height:t,data:r,tasks:n,x:o,domain:a,unit:s,timeTicks:l,today:i,grid:c,size:d,barSize:u,colorOf:b,margin:m,tooltip:p,plotLabel:C,todayLabel:v,locale:k,formatDate:y,formatX:z,onTaskClick:h}){let[R,f]=useState(null),N=Ge(),L=useMemo(()=>{let M=Qt({width:e,height:t,data:r,x:o,y:{domain:a},bounds:a,margin:m,orientation:"horizontal",placement:"band",formatValue:A=>us(A,s,k),formatX:z}),{valueScale:T,bandwidth:P,categoryPositions:x,innerWidth:D,innerHeight:S}=M,B=Math.min(u??zf,P),H=new Map(n.map((A,V)=>[A.id,V])),$=n.map((A,V)=>{let Y=x[V]+(P-B)/2,X=Y+B/2,G=b(A);if(A.start===null)return {key:`${V}`,color:G,track:null,trackOpacity:1,progress:null,milestone:null,top:x[V],height:P};let j=T(A.start);if(A.milestone)return {key:`${V}`,color:G,track:null,trackOpacity:1,progress:null,milestone:`M${j},${X-gs} L${j+gs},${X} L${j},${X+gs} L${j-gs},${X} Z`,top:x[V],height:P};let O=T(A.end??A.start),K=Math.max(2,O-j);return {key:`${V}`,color:G,track:ir({x:j,y:Y,width:K,height:B,radius:3}),trackOpacity:A.progress===null?1:Wf,progress:A.progress===null?null:ir({x:j,y:X-B*td/2,width:Math.max(0,K*Math.min(1,Math.max(0,A.progress))),height:B*td,radius:2,round:"right"}),milestone:null,top:x[V],height:P}}),_=[];n.forEach((A,V)=>{if(A.start!==null)for(let Y of A.dependsOn){let X=H.get(Y);if(X===void 0||X===V)continue;let G=n[X];if(G.start===null)continue;let j=T(G.end??G.start),O=x[X]+P/2,K=T(A.start),se=x[V]+P/2,ae=Math.max(j+rd,K-rd);_.push({key:`${Y}-${A.id}`,d:`M${j},${O} L${ae},${O} L${ae},${se} L${K-5},${se}`,head:`M${K},${se} L${K-5},${se-3.5} L${K-5},${se+3.5} Z`});}});let F=l.map(A=>({value:A,offset:T(A),label:us(A,s,k)}));return {rendered:$,arrows:_,categoryPositions:x,categoryCenters:M.categoryCenters,bandwidth:P,categoryTicks:M.categoryTicks,valueTicks:F,valueScale:T,innerWidth:D,innerHeight:S,margin:M.margin}},[n,r,o,a,s,l,e,t,m,u,b,k,z]),E=useCallback(M=>{if(p===false||n.length===0)return;let T=M.currentTarget.getBoundingClientRect(),P=M.clientY-T.top-L.margin.top;f(Wt(L.categoryCenters,P));},[p,n.length,L.margin.top,L.categoryCenters]),I=useCallback(M=>{if(n.length===0)return;let T=n.length-1,P=R??0,x=M.key==="ArrowDown"?Math.min(T,P+1):M.key==="ArrowUp"?Math.max(0,P-1):M.key==="Home"?0:M.key==="End"?T:M.key==="Escape"?null:void 0;x!==void 0&&(M.preventDefault(),f(x));},[n.length,R]),w=useCallback(()=>{!h||R===null||h(n[R]);},[h,R,n]),W=R===null?null:n[R];return jsxs(Fragment,{children:[jsxs("svg",{width:e,height:t,role:"img","aria-label":C??n.map(M=>M.label).join(", "),tabIndex:0,className:"touch-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500",onPointerMove:E,onPointerLeave:()=>f(null),onKeyDown:I,onBlur:()=>f(null),onClick:w,children:[jsxs("g",{transform:`translate(${L.margin.left}, ${L.margin.top})`,children:[jsx(Ot,{width:L.innerWidth,height:L.innerHeight,vertical:c?L.valueTicks.map(M=>M.offset):void 0}),R!==null?jsx("rect",{x:0,y:L.categoryPositions[R],width:L.innerWidth,height:L.bandwidth,className:"fill-gray-400 dark:fill-gray-500",opacity:.12,"aria-hidden":"true"}):null,jsx(Hf,{tasks:L.rendered,arrows:L.arrows}),i!==null?jsxs("g",{children:[jsx("line",{x1:L.valueScale(i),y1:0,x2:L.valueScale(i),y2:L.innerHeight,className:"stroke-gray-900 dark:stroke-white",strokeWidth:1,strokeDasharray:"4 4"}),jsx("text",{x:L.valueScale(i)+4,y:8,className:"fill-gray-500 text-[10px] dark:fill-gray-400",children:v})]}):null]}),jsx("g",{transform:`translate(${L.margin.left}, ${L.margin.top+L.innerHeight})`,children:jsx(_e,{orientation:"bottom",ticks:L.valueTicks,length:L.innerWidth,size:d})}),jsx("g",{transform:`translate(${L.margin.left}, ${L.margin.top})`,children:o.hidden?null:jsx(_e,{orientation:"left",ticks:L.categoryTicks,length:L.innerHeight,showLine:false,tickSize:0,label:o.label,size:d})})]}),W&&R!==null&&p!==false?jsx(gt,{x:L.margin.left+(W.start===null?L.innerWidth/2:L.valueScale(W.start)),y:L.margin.top+L.categoryCenters[R],containerWidth:e,children:typeof p=="function"?p(W):jsxs("div",{className:"flex flex-col gap-1",children:[jsx("div",{className:"font-medium text-gray-900 dark:text-gray-100",children:W.label}),jsxs("div",{className:"flex items-center gap-2 text-gray-500 dark:text-gray-400",children:[jsx("span",{children:N.chartStart}),jsx("span",{className:"[font-variant-numeric:tabular-nums] text-gray-900 dark:text-gray-100",children:W.start===null?"\u2014":y(W.start)})]}),W.milestone?null:jsxs("div",{className:"flex items-center gap-2 text-gray-500 dark:text-gray-400",children:[jsx("span",{children:N.chartEnd}),jsx("span",{className:"[font-variant-numeric:tabular-nums] text-gray-900 dark:text-gray-100",children:W.end===null?"\u2014":y(W.end)})]}),W.progress===null?null:jsxs("div",{className:"flex items-center gap-2 text-gray-500 dark:text-gray-400",children:[jsx("span",{children:N.chartProgress}),jsx("span",{className:"[font-variant-numeric:tabular-nums] text-gray-900 dark:text-gray-100",children:Gt(W.progress,{locale:k,maximumFractionDigits:0})})]})]})}):null]})}function Bf({data:e,x:t,start:r,end:n,id:o,progress:a,milestone:s,dependencies:l,group:i,domain:c,today:d,ticks:u=6,barSize:b,rowSize:m=30,color:p,height:C,width:v,size:k="md",grid:y=true,legend:z,tooltip:h=true,tableView:R=false,title:f,description:N,loading:L=false,emptyState:E,margin:I,locale:w,plotLabel:W,startLabel:M,endLabel:T,progressLabel:P,todayLabel:x,formatDate:D,onTaskClick:S,className:B,...H}){let $=Ge(),_=useMemo(()=>t.format??(U=>Ke(U,w)),[t.format,w]),F=useMemo(()=>e.map((U,J)=>{let te=mt(U,t.key,J),ie=to(U[r]),Q=n?to(U[n]):null,ge=s?!!U[s]:Q===null,Re=l?U[l]:void 0;return {index:J,id:String(o?U[o]??J:J),x:te,label:_(te,J),start:ie,end:ge?ie:Q??ie,progress:a?Ee(U,a):null,milestone:ge,dependsOn:Array.isArray(Re)?Re.map(Qe=>String(Qe)):[],group:i?U[i]??null:null,datum:U}}),[e,t.key,r,n,o,a,s,l,i,_]),A=useMemo(()=>{let U=[];for(let J of F)J.group!==null&&!U.includes(J.group)&&U.push(J.group);return U},[F]),V=useCallback(U=>U.group===null?p??Pr(0):Pr(A.indexOf(U.group)),[A,p]),Y=useMemo(()=>{if(c){let Q=to(c[0]),ge=to(c[1]);if(Q!==null&&ge!==null)return [Q,ge]}let U=F.flatMap(Q=>Q.start===null?[]:[Q.start,Q.end??Q.start]);if(U.length===0)return [0,1];let J=Math.min(...U),te=Math.max(...U),ie=te-J||864e5;return [J-ie*nd,te+ie*nd]},[c,F]),X=useMemo(()=>Wi(Y[0],Y[1],u),[Y,u]),G=useMemo(()=>D??(U=>new Intl.DateTimeFormat(w,{day:"numeric",month:"short",year:"numeric"}).format(new Date(U))),[D,w]),j=useMemo(()=>d===false?null:to(d??Date.now()),[d]),O=useMemo(()=>A.map((U,J)=>({key:U,label:U,color:Pr(J),marker:"rect"})),[A]),K=C??Math.max(120,F.length*m+48),se=z===void 0?A.length>=2:z!==false,ae=typeof z=="string"?z:"bottom";return jsx(ut,{title:f,description:N,height:K,width:v,size:k,loading:L,empty:F.length===0,emptyState:E,tableView:R,legendPosition:ae,legend:se&&O.length>0?jsx($t,{items:O,position:ae,marker:"rect",size:k}):void 0,table:R?jsx("div",{className:"w-full overflow-x-auto",children:jsxs(gn,{children:[typeof f=="string"?jsx("caption",{className:"sr-only",children:f}):null,jsxs(fn,{children:[jsx(Nt,{children:t.label??t.key}),jsx(Nt,{className:"text-right",children:M??$.chartStart}),jsx(Nt,{className:"text-right",children:T??$.chartEnd}),a?jsx(Nt,{className:"text-right",children:P??$.chartProgress}):null]}),jsx(pn,{children:F.map(U=>jsxs(bn,{clickable:false,children:[jsx(_t,{className:"font-medium text-gray-900 dark:text-gray-100",children:U.label}),jsx(_t,{className:Fi,children:U.start===null?"\u2014":G(U.start)}),jsx(_t,{className:Fi,children:U.milestone||U.end===null?"\u2014":G(U.end)}),a?jsx(_t,{className:Fi,children:U.progress===null?"\u2014":Gt(U.progress,{locale:w,maximumFractionDigits:0})}):null]},U.index))})]})}):void 0,className:B,...H,children:({width:U})=>jsx(Vf,{width:U,height:K,data:e,tasks:F,x:t,domain:Y,unit:X.unit,timeTicks:X.values,today:j,grid:y,size:k,barSize:b,colorOf:V,margin:I,tooltip:h,plotLabel:W,todayLabel:x??$.chartToday,locale:w,formatDate:G,formatX:_,onTaskClick:S})})}var _f=24,Xf=4,zo=6,Gf=ko(Yn,1),Kf=ko(Yn,0),Uf=memo(function({bars:t,connectors:r}){return jsxs("g",{children:[jsx("g",{className:"stroke-gray-300 dark:stroke-gray-600",strokeWidth:1,shapeRendering:"crispEdges","aria-hidden":"true",children:r.map(n=>jsx("line",{x1:n.x1,y1:n.y1,x2:n.x2,y2:n.y2},n.key))}),t.map(n=>jsxs("g",{children:[jsx("path",{d:n.d,fill:n.color}),n.label?jsx("text",{x:n.label.x,y:n.label.y,textAnchor:n.label.anchor,dominantBaseline:"middle",className:"fill-gray-600 text-[10px] [font-variant-numeric:tabular-nums] dark:fill-gray-300",children:n.label.text}):null]},n.key))]})});function Yf({width:e,height:t,steps:r,data:n,x:o,y:a,grid:s,size:l,orientation:i,connectors:c,showValues:d,barSize:u,palette:b,margin:m,tooltip:p,plotLabel:C,totalLabel:v,formatValue:k,formatX:y,onStepClick:z}){let[h,R]=useState(null),f=useMemo(()=>{let W=i==="vertical",M=r.flatMap(A=>[A.start,A.end]),T=Qt({width:e,height:t,data:n,x:o,y:a,bounds:M.length===0?null:[Math.min(...M),Math.max(...M)],margin:m,orientation:i,placement:"band",formatValue:k,formatX:y,defaultIncludeZero:true}),{valueScale:P,bandwidth:x,categoryPositions:D,innerWidth:S,innerHeight:B}=T,H=P(0),$=Math.min(u??_f,x),_=[],F=[];return r.forEach((A,V)=>{let Y=D[V]+(x-$)/2,X=P(A.start),G=P(A.end),j=Math.min(X,G),O=Math.abs(G-X),K=A.end>=A.start,se=W?K?"top":"bottom":K?"right":"left",ae=W?{x:Y,y:j,width:$,height:O}:{x:j,y:Y,width:O,height:$},U=null;if(d&&A.value!==null){let te=A.kind==="total"?A.formattedEnd:A.formattedValue,ie=vr(te,10),Q=P(K?Math.max(A.start,A.end):Math.min(A.start,A.end));if(W){let ge=K?Q-zo:Q+zo;ie<=x&&ge>8&&ge<B-4&&(U={x:Y+$/2,y:ge,anchor:"middle",text:te});}else {let ge=K?S-Q-zo:Q-zo;ie<=ge&&(U={x:K?Q+zo:Q-zo,y:Y+$/2,anchor:K?"start":"end",text:te});}}_.push({key:`${V}`,color:b[A.kind],d:ir({...ae,radius:Xf,round:se}),label:U});let J=r[V+1];if(c&&J){let te=P(A.end),ie=D[V+1]+(x-$)/2;F.push(W?{key:`${V}`,x1:Y+$,y1:te,x2:ie,y2:te}:{key:`${V}`,x1:te,y1:Y+$,x2:te,y2:ie});}}),{vertical:W,bars:_,rules:F,baseline:H,bandwidth:x,categoryPositions:D,categoryCenters:T.categoryCenters,categoryTicks:T.categoryTicks,valueTicks:T.valueTicks,valueScale:P,innerWidth:S,innerHeight:B,margin:T.margin}},[r,n,o,a,e,t,m,i,c,d,u,b,k,y]),N=useCallback(W=>{if(p===false||r.length===0)return;let M=W.currentTarget.getBoundingClientRect(),T=f.vertical?W.clientX-M.left-f.margin.left:W.clientY-M.top-f.margin.top;R(Wt(f.categoryCenters,T));},[p,r.length,f.vertical,f.margin,f.categoryCenters]),L=useCallback(W=>{if(r.length===0)return;let M=r.length-1,T=h??0,P=f.vertical?"ArrowRight":"ArrowDown",x=f.vertical?"ArrowLeft":"ArrowUp",D=W.key===P?Math.min(M,T+1):W.key===x?Math.max(0,T-1):W.key==="Home"?0:W.key==="End"?M:W.key==="Escape"?null:void 0;D!==void 0&&(W.preventDefault(),R(D));},[r.length,h,f.vertical]),E=useCallback(()=>{!z||h===null||z(r[h]);},[z,h,r]),I=h===null?null:r[h],w=h===null||I===void 0||I===null?null:f.vertical?{x:f.margin.left+f.categoryCenters[h],y:f.margin.top+Math.min(f.valueScale(I.start),f.valueScale(I.end))}:{x:f.margin.left+Math.max(f.valueScale(I.start),f.valueScale(I.end)),y:f.margin.top+f.categoryCenters[h]};return jsxs(Fragment,{children:[jsxs("svg",{width:e,height:t,role:"img","aria-label":C??r.map(W=>W.label).join(", "),tabIndex:0,className:"touch-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500",onPointerMove:N,onPointerLeave:()=>R(null),onKeyDown:L,onBlur:()=>R(null),onClick:E,children:[jsxs("g",{transform:`translate(${f.margin.left}, ${f.margin.top})`,children:[jsx(Ot,{width:f.innerWidth,height:f.innerHeight,horizontal:f.vertical&&(s==="y"||s==="both")?f.valueTicks.map(W=>W.offset):void 0,vertical:!f.vertical&&(s==="y"||s==="both")?f.valueTicks.map(W=>W.offset):void 0}),h!==null?jsx("rect",{x:f.vertical?f.categoryPositions[h]:0,y:f.vertical?0:f.categoryPositions[h],width:f.vertical?f.bandwidth:f.innerWidth,height:f.vertical?f.innerHeight:f.bandwidth,className:"fill-gray-400 dark:fill-gray-500",opacity:.12,"aria-hidden":"true"}):null,jsx(Uf,{bars:f.bars,connectors:f.rules}),jsx("line",{x1:f.vertical?0:f.baseline,y1:f.vertical?f.baseline:0,x2:f.vertical?f.innerWidth:f.baseline,y2:f.vertical?f.baseline:f.innerHeight,className:"stroke-gray-300 dark:stroke-gray-600",strokeWidth:1,shapeRendering:"crispEdges"})]}),jsx("g",{transform:`translate(${f.margin.left}, ${f.margin.top+f.innerHeight})`,children:(f.vertical?o.hidden:a?.hidden)?null:jsx(_e,{orientation:"bottom",ticks:f.vertical?f.categoryTicks:f.valueTicks,length:f.innerWidth,label:f.vertical?o.label:a?.label,size:l})}),jsx("g",{transform:`translate(${f.margin.left}, ${f.margin.top})`,children:(f.vertical?a?.hidden:o.hidden)?null:jsx(_e,{orientation:"left",ticks:f.vertical?f.valueTicks:f.categoryTicks,length:f.innerHeight,showLine:false,label:f.vertical?a?.label:o.label,size:l})})]}),I&&w&&p!==false?jsx(gt,{x:w.x,y:w.y,containerWidth:e,children:typeof p=="function"?p(I):jsxs("div",{className:"flex flex-col gap-1",children:[jsx("div",{className:"font-medium text-gray-900 dark:text-gray-100",children:I.label}),jsxs("div",{className:"flex items-center gap-2",children:[jsx("span",{className:"h-2.5 w-2.5 shrink-0 rounded-sm",style:{backgroundColor:b[I.kind]},"aria-hidden":"true"}),jsx("span",{className:"font-semibold text-gray-900 [font-variant-numeric:tabular-nums] dark:text-gray-100",children:I.kind==="total"?I.formattedEnd:I.formattedValue})]}),I.kind==="total"?null:jsxs("div",{className:"flex items-center gap-2 text-gray-500 dark:text-gray-400",children:[jsx("span",{children:v}),jsx("span",{className:"[font-variant-numeric:tabular-nums]",children:I.formattedEnd})]})]})}):null]})}function qf({data:e,x:t,y:r,value:n,total:o,start:a=0,orientation:s="vertical",connectors:l=true,showValues:i=true,barSize:c,colors:d,height:u=280,width:b,size:m="md",grid:p="y",legend:C,tooltip:v=true,tableView:k=false,title:y,description:z,loading:h=false,emptyState:R,margin:f,locale:N,plotLabel:L,valueLabel:E,totalLabel:I,increaseLabel:w,decreaseLabel:W,format:M,onStepClick:T,className:P,...x}){let D=Ge(),S=useMemo(()=>M??(X=>rt(X,N)),[M,N]),B=useMemo(()=>t.format??(X=>Ke(X,N)),[t.format,N]),H=useMemo(()=>{let X=a;return e.map((G,j)=>{let O=mt(G,t.key,j),K=Ee(G,n);if(o?!!G[o]:false){let J=K??X;return X=J,{index:j,x:O,label:B(O,j),value:J,start:0,end:J,kind:"total",formattedValue:S(J),formattedEnd:S(J),datum:G}}let ae=X,U=K===null?X:X+K;return X=U,{index:j,x:O,label:B(O,j),value:K,start:ae,end:U,kind:K!==null&&K<0?"decrease":"increase",formattedValue:K===null?"\u2014":`${K>0?"+":""}${S(K)}`,formattedEnd:S(U),datum:G}})},[e,t.key,n,o,a,S,B]),$=useMemo(()=>({increase:d?.increase??Gf,decrease:d?.decrease??Kf,total:d?.total??Tr}),[d]),_=I??D.chartRunningTotal,F=useMemo(()=>{let X=[{key:"increase",label:w??D.chartIncrease,color:$.increase,marker:"rect"},{key:"decrease",label:W??D.chartDecrease,color:$.decrease,marker:"rect"}];return H.some(G=>G.kind==="total")&&X.push({key:"total",label:_,color:$.total,marker:"rect"}),X},[$,H,w,W,_,D.chartIncrease,D.chartDecrease]),A=useMemo(()=>H.map(X=>({[t.key]:X.x,[n]:X.kind==="total"?null:X.value,__running:X.end})),[H,t.key,n]),V=C===void 0?true:C!==false,Y=typeof C=="string"?C:"bottom";return jsx(ut,{title:y,description:z,height:u,width:b,size:m,loading:h,empty:H.length===0,emptyState:R,tableView:k,legendPosition:Y,legend:V?jsx($t,{items:F,position:Y,marker:"rect",size:m}):void 0,table:k?jsx(It,{data:A,series:[{key:n,label:E??D.chartValue},{key:"__running",label:_}],xKey:t.key,xLabel:t.label??t.key,formatX:B,formatValue:S,caption:typeof y=="string"?y:void 0}):void 0,className:P,...x,children:({width:X})=>jsx(Yf,{width:X,height:u,steps:H,data:e,x:t,y:r,grid:p,size:m,orientation:s,connectors:l,showValues:i,barSize:c,palette:$,margin:f,tooltip:v,plotLabel:L,totalLabel:_,formatValue:S,formatX:B,onStepClick:T})})}var rb=e=>{switch(e){case "sm":return {checkbox:"w-4 h-4",label:"text-xs",description:"text-xs"};case "lg":return {checkbox:"w-6 h-6",label:"text-base",description:"text-sm"};default:return {checkbox:"w-5 h-5",label:"text-sm",description:"text-xs"}}},nb=e=>{switch(e){case "circle":return "rounded-full";case "rounded":return "rounded-md";default:return "rounded"}},ob=({className:e})=>jsx("svg",{className:e,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M13.5 4.5L6 12L2.5 8.5",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"})}),ab=({className:e})=>jsx("svg",{className:e,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M3 8H13",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round"})}),ka=forwardRef(({checked:e,defaultChecked:t=false,onChange:r,disabled:n=false,readOnly:o=false,required:a=false,name:s,value:l,id:i,label:c,description:d,error:u=false,size:b="md",labelPosition:m="right",checkedColor:p="bg-blue-600",uncheckedColor:C="bg-white dark:bg-gray-800",borderColor:v="border-gray-300 dark:border-gray-600",labelColor:k,errorColor:y="text-red-500",checkmarkColor:z="text-white",hoverColor:h,focusRingColor:R="ring-blue-500",indeterminate:f=false,icon:N,variant:L="default",shape:E="square",animation:I=true,showFocusRing:w=true,className:W,containerClassName:M,style:T,tabIndex:P,...x},D)=>{let S=useId(),B=i||S,H=`${B}-error`,$=`${B}-description`,[_,F]=useState(t),A=e!==void 0,V=A?e:_,Y=useRef(null);useEffect(()=>{Y.current&&(Y.current.indeterminate=f);},[f]);let X=ae=>{if(n||o)return;let U=ae.target.checked;A||F(U),r?.(U,ae);},G=rb(b),j=nb(E),O=()=>{let ae=g("relative flex items-center justify-center border-2 transition-all",G.checkbox,j,I&&"duration-200 ease-in-out");return n?g(ae,"opacity-50 cursor-not-allowed",V||f?p:C,v):L==="filled"?g(ae,V||f?p:"bg-gray-100 dark:bg-gray-700",V||f?"border-transparent":v,h&&!o&&`hover:${h}`,"cursor-pointer"):L==="outlined"?g(ae,C,V||f?`border-current ${p.replace("bg-","text-")}`:v,"border-2",h&&!o&&`hover:${h}`,"cursor-pointer"):g(ae,V||f?p:C,V||f?"border-transparent":v,h&&!o&&`hover:${h}`,"cursor-pointer")},K=u!==false,se=typeof u=="string"?u:void 0;return jsxs("div",{className:g("inline-flex flex-col",M),children:[jsxs("label",{htmlFor:B,className:g("inline-flex items-start gap-2",n?"cursor-not-allowed":"cursor-pointer",m==="left"&&"flex-row-reverse justify-end"),children:[jsx("input",{ref:ae=>{Y&&(Y.current=ae),typeof D=="function"?D(ae):D&&(D.current=ae);},type:"checkbox",id:B,name:s,value:l,checked:V,onChange:X,disabled:n,readOnly:o,required:a,tabIndex:o?-1:P,"aria-invalid":K,"aria-describedby":g(se&&H,d&&$),className:"sr-only peer",style:T,...x}),jsx("span",{className:g(O(),w&&`peer-focus-visible:ring-2 peer-focus-visible:ring-offset-2 peer-focus-visible:${R}`,I&&V&&"scale-100",K&&"border-red-500"),"aria-hidden":"true",children:(V||f)&&jsx("span",{className:g(z,I&&"animate-in zoom-in-50 duration-200"),children:f?N||jsx(ab,{className:"w-full h-full"}):N||jsx(ob,{className:"w-full h-full"})})}),c&&jsxs("span",{className:"flex flex-col gap-1",children:[jsxs("span",{className:g(G.label,n&&"opacity-50",k,K&&y),children:[c,a&&jsx("span",{className:"text-red-500 ml-1",children:"*"})]}),d&&jsx("span",{id:$,className:g(G.description,"text-gray-500 dark:text-gray-400",n&&"opacity-50"),children:d})]})]}),se&&jsx("p",{id:H,className:g("mt-1 text-xs",y),children:se})]})});ka.displayName="Checkbox";var od=createContext(null),ad=({label:e,description:t,value:r,defaultValue:n=[],onChange:o,orientation:a="vertical",spacing:s="md",disabled:l=false,size:i="md",error:c=false,required:d=false,children:u,className:b,labelClassName:m,...p})=>{let[C,v]=Ri.useState(n),k=r!==void 0,y=k?r:C,z=Ri.useCallback(L=>{let E=y.includes(L)?y.filter(I=>I!==L):[...y,L];k||v(E),o?.(E);},[y,k,o]),h=Ri.useMemo(()=>({value:y,onChange:z,disabled:l,size:i}),[y,z,l,i]),R={sm:a==="vertical"?"gap-2":"gap-3",md:a==="vertical"?"gap-3":"gap-4",lg:a==="vertical"?"gap-4":"gap-6"},f=c!==false,N=typeof c=="string"?c:void 0;return jsxs("div",{className:g("flex flex-col gap-2",b),...p,children:[(e||t)&&jsxs("div",{className:"flex flex-col gap-1",children:[e&&jsxs("label",{className:g("text-sm font-medium text-gray-900 dark:text-gray-100",l&&"opacity-50",f&&"text-red-500",m),children:[e,d&&jsx("span",{className:"text-red-500 ml-1",children:"*"})]}),t&&jsx("p",{className:g("text-xs text-gray-500 dark:text-gray-400",l&&"opacity-50"),children:t})]}),jsx(od.Provider,{value:h,children:jsx("div",{className:g("flex",a==="vertical"?"flex-col":"flex-row flex-wrap",R[s]),role:"group",children:u})}),N&&jsx("p",{className:"text-xs text-red-500",children:N})]})};ad.displayName="CheckboxGroup";var sd=({value:e,disabled:t,size:r,...n})=>{let o=useContext(od);if(!o)return console.warn("CheckboxGroupItem doit \xEAtre utilis\xE9 dans un CheckboxGroup"),jsx(ka,{...n,disabled:t,size:r});let{value:a,onChange:s,disabled:l,size:i}=o,c=a.includes(e);return jsx(ka,{...n,checked:c,onChange:()=>s(e),disabled:l||t,size:r||i})};sd.displayName="CheckboxGroupItem";var lr={compact:"px-3 py-1.5",default:"px-4 py-3",comfortable:"px-6 py-4"},hs={compact:"text-xs",default:"text-sm",comfortable:"text-base"},ub=()=>jsx("svg",{className:"w-3.5 h-3.5",viewBox:"0 0 16 16",fill:"currentColor",children:jsx("path",{d:"M8 3l4 5H4l4-5z"})}),mb=()=>jsx("svg",{className:"w-3.5 h-3.5",viewBox:"0 0 16 16",fill:"currentColor",children:jsx("path",{d:"M8 13l4-5H4l4 5z"})}),gb=()=>jsx("svg",{className:"w-3.5 h-3.5 opacity-30",viewBox:"0 0 16 16",fill:"currentColor",children:jsx("path",{d:"M8 3l3 4H5l3-4zM8 13l3-4H5l3 4z"})}),id=({className:e})=>jsx("svg",{className:g("w-4 h-4",e),viewBox:"0 0 20 20",fill:"currentColor",children:jsx("path",{fillRule:"evenodd",d:"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z",clipRule:"evenodd"})}),pb=()=>jsx("svg",{className:"w-4 h-4 text-gray-400",viewBox:"0 0 20 20",fill:"currentColor",children:jsx("path",{fillRule:"evenodd",d:"M9 3.5a5.5 5.5 0 100 11 5.5 5.5 0 000-11zM2 9a7 7 0 1112.452 4.391l3.328 3.329a.75.75 0 11-1.06 1.06l-3.329-3.328A7 7 0 012 9z",clipRule:"evenodd"})}),fb=()=>jsx("svg",{className:"w-4 h-4 text-gray-400",viewBox:"0 0 20 20",fill:"currentColor",children:jsx("path",{d:"M7 4a1.5 1.5 0 110-3 1.5 1.5 0 010 3zm6 0a1.5 1.5 0 110-3 1.5 1.5 0 010 3zM7 10.5a1.5 1.5 0 110-3 1.5 1.5 0 010 3zm6 0a1.5 1.5 0 110-3 1.5 1.5 0 010 3zM7 17a1.5 1.5 0 110-3 1.5 1.5 0 010 3zm6 0a1.5 1.5 0 110-3 1.5 1.5 0 010 3z"})}),bb=()=>jsx("svg",{className:"w-3.5 h-3.5",viewBox:"0 0 20 20",fill:"currentColor",children:jsx("path",{fillRule:"evenodd",d:"M2.628 1.601C5.028 1.206 7.49 1 10 1s4.973.206 7.372.601a.75.75 0 01.628.74v2.288a2.25 2.25 0 01-.659 1.59l-4.682 4.683a2.25 2.25 0 00-.659 1.59v3.037c0 .684-.31 1.33-.844 1.757l-1.937 1.55A.75.75 0 018 18.25v-5.757a2.25 2.25 0 00-.659-1.591L2.659 6.22A2.25 2.25 0 012 4.629V2.34a.75.75 0 01.628-.74z",clipRule:"evenodd"})}),hb=()=>jsxs("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor",children:[jsx("path",{d:"M10.75 2.75a.75.75 0 00-1.5 0v8.614L6.295 8.235a.75.75 0 10-1.09 1.03l4.25 4.5a.75.75 0 001.09 0l4.25-4.5a.75.75 0 00-1.09-1.03l-2.955 3.129V2.75z"}),jsx("path",{d:"M3.5 12.75a.75.75 0 00-1.5 0v2.5A2.75 2.75 0 004.75 18h10.5A2.75 2.75 0 0018 15.25v-2.5a.75.75 0 00-1.5 0v2.5c0 .69-.56 1.25-1.25 1.25H4.75c-.69 0-1.25-.56-1.25-1.25v-2.5z"})]}),yb=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor",children:jsx("path",{fillRule:"evenodd",d:"M2.5 3A1.5 1.5 0 001 4.5v11A1.5 1.5 0 002.5 17h15a1.5 1.5 0 001.5-1.5v-11A1.5 1.5 0 0017.5 3h-15zM2.5 4.5h6v11h-6v-11zm7.5 0h7.5v11H10v-11z",clipRule:"evenodd"})});function bs(e,t,r){return typeof r=="function"?r(e,t):String(typeof r=="string"?e[r]:t)}function nn(e,t){return e[t]}function xb(e,t){return e==null&&t==null?0:e==null?-1:t==null?1:typeof e=="number"&&typeof t=="number"?e-t:String(e).localeCompare(String(t))}function vb(e,t){let r=String(e??"").toLowerCase(),n=t.value.toLowerCase();switch(t.operator){case "contains":return r.includes(n);case "equals":return r===n;case "startsWith":return r.startsWith(n);case "endsWith":return r.endsWith(n);case "gt":return Number(e)>Number(t.value);case "gte":return Number(e)>=Number(t.value);case "lt":return Number(e)<Number(t.value);case "lte":return Number(e)<=Number(t.value);case "isEmpty":return r==="";case "isNotEmpty":return r!=="";default:return true}}function ld(e,t,r){let n=[];for(let o of e){let a=Number(nn(o,t));isNaN(a)||n.push(a);}if(n.length===0)return 0;switch(r){case "sum":return n.reduce((o,a)=>o+a,0);case "avg":return n.reduce((o,a)=>o+a,0)/n.length;case "count":return n.length;case "min":return Math.min(...n);case "max":return Math.max(...n)}}function kb({cols:e,density:t}){return jsx("tr",{className:"border-b border-gray-200 dark:border-gray-700",children:Array.from({length:e}).map((r,n)=>jsx("td",{className:lr[t],children:jsx("div",{className:"h-4 bg-gray-200 dark:bg-gray-700 rounded animate-pulse"})},n))})}function Cb({column:e,value:t,onApply:r,onClear:n}){let[o,a]=useState(false),[s,l]=useState(t?.operator??"contains"),[i,c]=useState(t?.value??""),d=useRef(null),u=e.filterType??"text",b=u==="number"?[{value:"equals",label:"Equals"},{value:"gt",label:"Greater than"},{value:"gte",label:"Greater or equal"},{value:"lt",label:"Less than"},{value:"lte",label:"Less or equal"}]:[{value:"contains",label:"Contains"},{value:"equals",label:"Equals"},{value:"startsWith",label:"Starts with"},{value:"endsWith",label:"Ends with"},{value:"isEmpty",label:"Is empty"},{value:"isNotEmpty",label:"Is not empty"}];return useEffect(()=>{let m=p=>{d.current&&!d.current.contains(p.target)&&a(false);};return o&&document.addEventListener("mousedown",m),()=>document.removeEventListener("mousedown",m)},[o]),jsxs("div",{className:"relative inline-block",ref:d,children:[jsx("button",{type:"button",onClick:m=>{m.stopPropagation(),a(!o);},className:g("p-0.5 rounded hover:bg-gray-200 dark:hover:bg-gray-600 cursor-pointer",t&&"text-blue-600 dark:text-blue-400"),"aria-label":`Filter ${String(e.header)}`,children:jsx(bb,{})}),o&&jsx("div",{className:"absolute z-50 top-full left-0 mt-1 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg shadow-lg p-3 min-w-[220px]",children:u==="select"&&e.filterOptions?jsxs("div",{className:"flex flex-col gap-1.5",children:[e.filterOptions.map(m=>jsxs("label",{className:"flex items-center gap-2 text-sm cursor-pointer",children:[jsx("input",{type:"radio",name:`filter-${e.key}`,value:m,checked:i===m,onChange:()=>c(m),className:"cursor-pointer"}),jsx("span",{className:"text-gray-700 dark:text-gray-300",children:m})]},m)),jsxs("div",{className:"flex gap-2 mt-2",children:[jsx("button",{type:"button",onClick:()=>{r({column:e.key,operator:"equals",value:i}),a(false);},className:"px-2 py-1 text-xs bg-blue-600 text-white rounded hover:bg-blue-700 cursor-pointer",children:"Apply"}),jsx("button",{type:"button",onClick:()=>{c(""),n(),a(false);},className:"px-2 py-1 text-xs text-gray-600 dark:text-gray-400 hover:text-gray-800 dark:hover:text-gray-200 cursor-pointer",children:"Clear"})]})]}):jsxs("div",{className:"flex flex-col gap-2",children:[jsx("select",{value:s,onChange:m=>l(m.target.value),className:"text-xs border border-gray-300 dark:border-gray-600 rounded px-2 py-1 bg-white dark:bg-gray-700 text-gray-700 dark:text-gray-200",children:b.map(m=>jsx("option",{value:m.value,children:m.label},m.value))}),s!=="isEmpty"&&s!=="isNotEmpty"&&jsx("input",{type:u==="number"?"number":u==="date"?"date":"text",value:i,onChange:m=>c(m.target.value),placeholder:"Filter value...",className:"text-xs border border-gray-300 dark:border-gray-600 rounded px-2 py-1 bg-white dark:bg-gray-700 text-gray-700 dark:text-gray-200",autoFocus:true,"aria-label":`Filter ${String(e.header)} value`}),jsxs("div",{className:"flex gap-2",children:[jsx("button",{type:"button",onClick:()=>{r({column:e.key,operator:s,value:i}),a(false);},className:"px-2 py-1 text-xs bg-blue-600 text-white rounded hover:bg-blue-700 cursor-pointer",children:"Apply"}),jsx("button",{type:"button",onClick:()=>{c(""),n(),a(false);},className:"px-2 py-1 text-xs text-gray-600 dark:text-gray-400 hover:text-gray-800 dark:hover:text-gray-200 cursor-pointer",children:"Clear"})]})]})})]})}function wb({value:e,onSave:t,density:r}){let[n,o]=useState(false),[a,s]=useState(String(e??"")),l=useRef(null);if(useEffect(()=>{n&&l.current&&(l.current.focus(),l.current.select());},[n]),!n)return jsx("div",{onDoubleClick:()=>{s(String(e??"")),o(true);},className:"cursor-text min-h-[1.5em]",title:"Double-click to edit",children:String(e??"")});let i=()=>{o(false),a!==String(e??"")&&t(a);};return jsx("input",{ref:l,type:"text",value:a,onChange:c=>s(c.target.value),onBlur:i,"aria-label":"Edit cell value",onKeyDown:c=>{c.key==="Enter"&&i(),c.key==="Escape"&&o(false);},className:g("w-full border border-blue-500 rounded px-1 py-0.5 bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100 outline-none",hs[r])})}function Nb(e,t){let{columns:r,data:n,rowKey:o,mode:a="client",sortable:s=false,multiSort:l=false,sort:i,defaultSort:c,onSort:d,pagination:u=false,page:b,onPageChange:m,onPageSizeChange:p,totalItems:C,selectable:v=false,selectionMode:k="multiple",selectedRows:y,onSelectionChange:z,searchable:h=false,searchPlaceholder:R="Search...",searchValue:f,onSearch:N,filters:L,onFilterChange:E,expandable:I=false,expandedContent:w,expandedRows:W,onExpandChange:M,editable:T=false,onCellEdit:P,reorderable:x=false,onReorder:D,columnReorderable:S=false,onColumnReorder:B,columnToggle:H=false,hiddenColumns:$,onColumnVisibilityChange:_,groupBy:F,renderGroupHeader:A,exportable:V=false,exportFormats:Y=["csv","json"],exportFilename:X="export",virtualized:G=false,rowHeight:j=40,virtualHeight:O=400,density:K="default",striped:se=false,bordered:ae=false,borderless:U=false,stickyHeader:J=false,maxHeight:te,loading:ie=false,loadingRows:Q=5,emptyState:ge,showFooter:Re=false,onRowClick:Qe,onRowDoubleClick:at,onRowContextMenu:et,className:me,rowClassName:ce,cellClassName:Oe,headerClassName:st}=e,[Pe,De]=useState(c??[]),[it,xt]=useState(1),[lt,pr]=useState(typeof u=="object"?u.pageSize??10:10),[tt,yr]=useState([]),[Wr,Bt]=useState(""),[ar,Rr]=useState([]),[ye,xe]=useState([]),[re,ne]=useState(()=>r.flatMap(q=>q.hidden?[q.key]:[])),[he,fe]=useState({}),[Te,Ce]=useState(()=>r.map(q=>q.key)),[we,Me]=useState(null),[Ae,bt]=useState(null),[ct,Ye]=useState(false),[er,vt]=useState(new Set),Hr=useRef(null),[mn,Kn]=useState(0),bo=useRef(null),Ur=i??Pe,Vr=b??it,Z=y??tt,oe=f??Wr,le=L??ar,de=W??ye,be=$??re,$e=u?typeof u=="object"?u:{pageSize:10,pageSizeOptions:[10,25,50,100]}:null,nt=$e?.pageSize??lt,qe=useMemo(()=>{let q=new Map(r.map(Se=>[Se.key,Se])),ee=Te.flatMap(Se=>{let He=q.get(Se);return He?[He]:[]}),pe=new Set(ee.map(Se=>Se.key));for(let Se of r)pe.has(Se.key)||(ee.push(Se),pe.add(Se.key));return ee.filter(Se=>!be.includes(Se.key))},[r,Te,be]),ze=useMemo(()=>{if(a==="server")return n;let q=[...n];if(oe){let ee=oe.toLowerCase();q=q.filter(pe=>qe.some(Se=>{let He=nn(pe,Se.key);return String(He??"").toLowerCase().includes(ee)}));}if(le.length>0&&(q=q.filter(ee=>le.every(pe=>vb(nn(ee,pe.column),pe)))),Ur.length>0){let ee=new Map(r.map(pe=>[pe.key,pe]));q.sort((pe,Se)=>{for(let He of Ur){if(!He.direction)continue;let Mt=ee.get(He.key),fr=Mt?.sortComparator?Mt.sortComparator(pe,Se):xb(nn(pe,He.key),nn(Se,He.key));if(fr!==0)return He.direction==="asc"?fr:-fr}return 0});}return q},[n,a,oe,le,Ur,qe,r]),tr=useMemo(()=>{if(!F)return null;let q=Array.isArray(F)?F:[F],ee=new Map;for(let pe of ze){let Se=q.map(Mt=>String(nn(pe,Mt)??"")).join(" / "),He=ee.get(Se)??[];He.push(pe),ee.set(Se,He);}return ee},[ze,F]),je=C??ze.length,Lt=Math.max(1,Math.ceil(je/nt)),Ft=useMemo(()=>{if(!$e||a==="server")return ze;let q=(Vr-1)*nt;return ze.slice(q,q+nt)},[ze,$e,Vr,nt,a]),kt=$e?Ft:ze,sr=useMemo(()=>{if(!G)return {start:0,end:kt.length};let q=Math.floor(mn/j),ee=Math.ceil(O/j),pe=5;return {start:Math.max(0,q-pe),end:Math.min(kt.length,q+ee+pe)}},[G,mn,j,O,kt.length]),Yr=useCallback(q=>{i||De(q),d?.(q);},[i,d]),qr=useCallback(q=>{let ee=Ur.find(Se=>Se.key===q),pe;if(!ee||!ee.direction?pe="asc":ee.direction==="asc"?pe="desc":pe=null,l){let Se=Ur.filter(He=>He.key!==q);pe&&Se.push({key:q,direction:pe}),Yr(Se);}else Yr(pe?[{key:q,direction:pe}]:[]);},[Ur,l,Yr]),xr=useCallback(q=>{let ee=Math.max(1,Math.min(q,Lt));b||xt(ee),m?.(ee);},[b,m,Lt]),ti=useCallback(q=>{pr(q),xr(1),p?.(q);},[xr,p]),Ya=useCallback(q=>{let ee;k==="single"?ee=Z.includes(q)?[]:[q]:ee=Z.includes(q)?Z.filter(pe=>pe!==q):[...Z,q],y||yr(ee),z?.(ee);},[k,Z,y,z]),ri=useCallback(()=>{let q=kt.map((ee,pe)=>bs(ee,pe,o));y||yr(q),z?.(q);},[kt,o,y,z]),ni=useCallback(()=>{y||yr([]),z?.([]);},[y,z]),oi=kt.length>0&&kt.every((q,ee)=>Z.includes(bs(q,ee,o))),Gm=!oi&&kt.some((q,ee)=>Z.includes(bs(q,ee,o))),Km=useCallback(q=>{let ee=de.includes(q)?de.filter(pe=>pe!==q):[...de,q];W||xe(ee),M?.(ee);},[de,W,M]),Um=useCallback(q=>{let ee=q.target.value;f||Bt(ee),N?.(ee),xr(1);},[f,N,xr]),Ym=useCallback(q=>{let ee=[...le.filter(pe=>pe.column!==q.column),q];L||Rr(ee),E?.(ee);},[le,L,E]),qm=useCallback(q=>{let ee=le.filter(pe=>pe.column!==q);L||Rr(ee),E?.(ee);},[le,L,E]),jm=useCallback(q=>{let ee=be.includes(q)?be.filter(pe=>pe!==q):[...be,q];$||ne(ee),_?.(ee);},[be,$,_]),Zm=useCallback((q,ee)=>{q.preventDefault(),q.stopPropagation();let pe=q.clientX,Se=he[ee]??q.currentTarget.parentElement?.getBoundingClientRect().width??100,He=r.find(br=>br.key===ee),Mt=He?.minWidth??50,fr=He?.maxWidth??1/0,dt=br=>{let Un=br.clientX-pe,Zr=Math.min(fr,Math.max(Mt,Se+Un));fe(yo=>({...yo,[ee]:Zr}));},jr=()=>{document.removeEventListener("mousemove",dt),document.removeEventListener("mouseup",jr);};document.addEventListener("mousemove",dt),document.addEventListener("mouseup",jr);},[he,r]),Qm=useCallback(q=>{x&&Me(q);},[x]),Jm=useCallback((q,ee)=>{!x||we===null||q.preventDefault();},[x,we]),eg=useCallback(q=>{!x||we===null||we===q||(D?.(we,q),Me(null));},[x,we,D]),tg=useCallback(q=>{S&&bt(q);},[S]),rg=useCallback(q=>{if(!S||!Ae||Ae===q)return;let ee=[...Te],pe=ee.indexOf(Ae),Se=ee.indexOf(q);pe===-1||Se===-1||(ee.splice(pe,1),ee.splice(Se,0,Ae),Ce(ee),B?.(Ae,q),bt(null));},[S,Ae,Te,B]),ai=useCallback(q=>{let ee=qe.filter(br=>br.type!=="actions"&&br.type!=="selection"&&br.type!=="expand"),pe=ze,Se,He,Mt;if(q==="csv"){let br=ee.map(Zr=>String(Zr.header)).join(","),Un=pe.map(Zr=>ee.map(yo=>{let li=String(nn(Zr,yo.key)??"");return li.includes(",")?`"${li}"`:li}).join(","));Se=[br,...Un].join(`
|
|
2
|
-
`),He="text/csv",Mt="csv";}else {let br=pe.map(Un=>{let Zr={};for(let yo of ee)Zr[yo.key]=nn(Un,yo.key);return Zr});Se=JSON.stringify(br,null,2),He="application/json",Mt="json";}let fr=new Blob([Se],{type:He}),dt=URL.createObjectURL(fr),jr=document.createElement("a");jr.href=dt,jr.download=`${X}.${Mt}`,jr.click(),URL.revokeObjectURL(dt);},[qe,ze,X]);useEffect(()=>{if(!ct)return;let q=ee=>{bo.current&&!bo.current.contains(ee.target)&&Ye(false);};return document.addEventListener("mousedown",q),()=>document.removeEventListener("mousedown",q)},[ct]),useImperativeHandle(t,()=>({getVisibleData:()=>kt,resetFilters:()=>{L||Rr([]),f||Bt(""),E?.([]),N?.("");},resetSort:()=>{i||De([]),d?.([]);},selectAll:ri,deselectAll:ni,exportData:ai,scrollToRow:q=>{Hr.current&&G&&(Hr.current.scrollTop=q*j);}}),[kt,L,f,i,E,N,d,ri,ni,ai,G,j]);let si=q=>{let ee={},pe=he[q.key]??q.width;return pe&&(ee.width=typeof pe=="number"?`${pe}px`:pe,ee.minWidth=typeof pe=="number"?`${pe}px`:pe),q.sticky&&(ee.position="sticky",ee[q.sticky]=0,ee.zIndex=10),ee},ho=qe.length+(v?1:0)+(I?1:0)+(x?1:0),ng=q=>{let ee=s&&q.sortable!==false&&q.type!=="actions",pe=Ur.find(He=>He.key===q.key),Se=q.filterable&&(q.filterType||q.filterOptions);return jsxs("th",{className:g(lr[K],hs[K],"font-semibold text-gray-700 dark:text-gray-300 whitespace-nowrap",q.align==="center"&&"text-center",q.align==="right"&&"text-right",ee&&"cursor-pointer select-none hover:bg-gray-100 dark:hover:bg-gray-700",ae&&"border border-gray-200 dark:border-gray-700",q.sticky&&"bg-gray-50 dark:bg-gray-800",q.headerClassName,st),style:si(q),onClick:ee?()=>qr(q.key):void 0,draggable:S,onDragStart:S?()=>tg(q.key):void 0,onDragOver:S?He=>He.preventDefault():void 0,onDrop:S?()=>rg(q.key):void 0,"aria-sort":pe?.direction==="asc"?"ascending":pe?.direction==="desc"?"descending":void 0,children:[jsxs("div",{className:"flex items-center gap-1",children:[q.renderHeader?q.renderHeader(q):q.header,ee&&jsx("span",{className:"inline-flex ml-1",children:pe?.direction==="asc"?jsx(ub,{}):pe?.direction==="desc"?jsx(mb,{}):jsx(gb,{})}),Se&&jsx(Cb,{column:q,value:le.find(He=>He.column===q.key),onApply:Ym,onClear:()=>qm(q.key)})]}),q.resizable!==false&&jsx("div",{className:"absolute top-0 right-0 w-1 h-full cursor-col-resize hover:bg-blue-500 opacity-0 hover:opacity-100",onMouseDown:He=>Zm(He,q.key)})]},q.key)},ii=(q,ee,pe)=>{let Se=bs(q,pe,o),He=Z.includes(Se),Mt=de.includes(Se),fr=typeof ce=="function"?ce(q,pe):ce;return jsxs(Ri__default.Fragment,{children:[jsxs("tr",{className:g("border-b border-gray-200 dark:border-gray-700 transition-colors",se&&pe%2===1&&"bg-gray-50/50 dark:bg-gray-800/50",He&&"bg-blue-50 dark:bg-blue-900/20",Qe&&"cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-700/50",we===ee&&"opacity-50",fr),onClick:Qe?()=>Qe(q,pe):void 0,onDoubleClick:at?()=>at(q,pe):void 0,onContextMenu:et?dt=>et(q,pe,dt):void 0,draggable:x,onDragStart:x?()=>Qm(ee):void 0,onDragOver:x?dt=>Jm(dt,ee):void 0,onDrop:x?()=>eg(ee):void 0,"data-row-key":Se,"aria-selected":v?He:void 0,children:[x&&jsx("td",{className:g(lr[K],"cursor-grab active:cursor-grabbing"),children:jsx(fb,{})}),v&&jsx("td",{className:g(lr[K],"w-10"),children:jsx("input",{type:"checkbox",checked:He,onChange:()=>Ya(Se),onClick:dt=>dt.stopPropagation(),className:"rounded border-gray-300 dark:border-gray-600 cursor-pointer","aria-label":`Select row ${Se}`})}),I&&jsx("td",{className:g(lr[K],"w-10"),children:jsx("button",{type:"button",onClick:dt=>{dt.stopPropagation(),Km(Se);},className:"p-0.5 rounded hover:bg-gray-200 dark:hover:bg-gray-600 cursor-pointer","aria-label":Mt?"Collapse row":"Expand row","aria-expanded":Mt,children:jsx(id,{className:g("transition-transform",Mt&&"rotate-180")})})}),qe.map(dt=>{let jr=nn(q,dt.key),br=dt.colSpan?.(q,pe);if(br===0)return null;let Un=T&&dt.editable!==false&&dt.type!=="actions";return jsx("td",{className:g(lr[K],hs[K],"text-gray-700 dark:text-gray-300",dt.align==="center"&&"text-center",dt.align==="right"&&"text-right",ae&&"border border-gray-200 dark:border-gray-700",dt.sticky&&(He?"bg-blue-50 dark:bg-blue-900/20":se&&pe%2===1?"bg-gray-50/50 dark:bg-gray-800/50":"bg-white dark:bg-gray-900"),dt.cellClassName,Oe),style:si(dt),colSpan:br,children:Un?jsx(wb,{value:jr,onSave:Zr=>P?.(Se,dt.key,Zr),density:K}):dt.render?dt.render(jr,q,pe):String(jr??"")},dt.key)})]}),I&&Mt&&w&&jsx("tr",{className:"bg-gray-50 dark:bg-gray-800/70",children:jsx("td",{colSpan:ho,className:g(lr[K]),children:w(q,pe)})})]},Se)},og=()=>{if(ie)return Array.from({length:Q}).map((q,ee)=>jsx(kb,{cols:ho,density:K},ee));if(kt.length===0)return jsx("tr",{children:jsx("td",{colSpan:ho,className:g("text-center text-gray-400 dark:text-gray-500",lr[K]),children:ge??"No data available"})});if(tr){let q=[],ee=0;for(let[pe,Se]of tr){let He=er.has(pe);if(q.push(jsx("tr",{className:"bg-gray-100 dark:bg-gray-800 font-medium",children:jsx("td",{colSpan:ho,className:g(lr[K],"cursor-pointer"),onClick:()=>{vt(Mt=>{let fr=new Set(Mt);return fr.has(pe)?fr.delete(pe):fr.add(pe),fr});},children:jsxs("div",{className:"flex items-center gap-2",children:[jsx(id,{className:g("transition-transform",He&&"-rotate-90")}),A?A(pe,nn(Se[0],Array.isArray(F)?F[0]:F),Se):`${pe} (${Se.length})`]})})},`group-${pe}`)),He)ee+=Se.length;else for(let Mt=0;Mt<Se.length;Mt++)q.push(ii(Se[Mt],ee,ee)),ee++;}return q}if(G){let q=[];for(let ee=sr.start;ee<sr.end;ee++)q.push(ii(kt[ee],ee,ee));return jsxs(Fragment,{children:[sr.start>0&&jsx("tr",{children:jsx("td",{colSpan:ho,style:{height:sr.start*j,padding:0}})}),q,sr.end<kt.length&&jsx("tr",{children:jsx("td",{colSpan:ho,style:{height:(kt.length-sr.end)*j,padding:0}})})]})}return kt.map((q,ee)=>ii(q,ee,ee))},ag=()=>!Re||!qe.some(ee=>ee.aggregate)?null:jsx("tfoot",{children:jsxs("tr",{className:"bg-gray-50 dark:bg-gray-800 font-semibold border-t-2 border-gray-300 dark:border-gray-600",children:[x&&jsx("td",{className:lr[K]}),v&&jsx("td",{className:lr[K]}),I&&jsx("td",{className:lr[K]}),qe.map(ee=>jsx("td",{className:g(lr[K],hs[K],"text-gray-700 dark:text-gray-300",ee.align==="center"&&"text-center",ee.align==="right"&&"text-right",ae&&"border border-gray-200 dark:border-gray-700"),style:si(ee),children:ee.aggregate?ee.renderAggregate?ee.renderAggregate(ld(ze,ee.key,ee.aggregate),ze):`${ee.aggregate==="count"?"":ee.aggregate==="avg"?"Avg: ":ee.aggregate==="sum"?"Total: ":ee.aggregate==="min"?"Min: ":"Max: "}${ld(ze,ee.key,ee.aggregate).toLocaleString()}`:""},ee.key))]})});return jsxs("div",{className:g("flex flex-col gap-3",me),children:[(h||V||H)&&jsxs("div",{className:"flex items-center justify-between gap-3 flex-wrap",children:[jsxs("div",{className:"flex items-center gap-3 flex-1",children:[h&&jsxs("div",{className:"relative flex-1 max-w-xs",children:[jsx("div",{className:"absolute inset-y-0 left-0 flex items-center pl-3 pointer-events-none",children:jsx(pb,{})}),jsx("input",{type:"text",value:oe,onChange:Um,placeholder:R,className:"w-full pl-9 pr-3 py-1.5 text-sm border border-gray-300 dark:border-gray-600 rounded-md bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500","aria-label":"Search table"})]}),Z.length>0&&jsxs("span",{className:"text-sm text-gray-500 dark:text-gray-400",children:[Z.length," selected"]})]}),jsxs("div",{className:"flex items-center gap-2",children:[H&&jsxs("div",{className:"relative",ref:bo,children:[jsx("button",{type:"button",onClick:()=>Ye(!ct),className:"p-1.5 rounded-md border border-gray-300 dark:border-gray-600 text-gray-600 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 cursor-pointer","aria-label":"Toggle columns",title:"Toggle columns",children:jsx(yb,{})}),ct&&jsx("div",{className:"absolute z-50 right-0 top-full mt-1 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg shadow-lg p-2 min-w-[180px]",children:r.filter(q=>q.type!=="selection"&&q.type!=="expand").map(q=>jsxs("label",{className:"flex items-center gap-2 px-2 py-1.5 text-sm rounded hover:bg-gray-100 dark:hover:bg-gray-700 cursor-pointer",children:[jsx("input",{type:"checkbox",checked:!be.includes(q.key),onChange:()=>jm(q.key),className:"rounded border-gray-300 dark:border-gray-600 cursor-pointer"}),jsx("span",{className:"text-gray-700 dark:text-gray-300",children:String(q.header)})]},q.key))})]}),V&&Y.map(q=>jsxs("button",{type:"button",onClick:()=>ai(q),className:"inline-flex items-center gap-1.5 px-2.5 py-1.5 text-xs font-medium rounded-md border border-gray-300 dark:border-gray-600 text-gray-600 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 cursor-pointer",title:`Export as ${q.toUpperCase()}`,children:[jsx(hb,{}),q.toUpperCase()]},q))]})]}),jsx("div",{ref:Hr,className:g("overflow-auto rounded-lg",!U&&"border border-gray-200 dark:border-gray-700",J&&"relative"),style:te?{maxHeight:typeof te=="number"?`${te}px`:te}:G?{maxHeight:O,overflow:"auto"}:void 0,onScroll:G?q=>Kn(q.target.scrollTop):void 0,children:jsxs("table",{className:"w-full text-left",children:[jsx("thead",{className:g("bg-gray-50 dark:bg-gray-800 text-xs uppercase",J&&"sticky top-0 z-20"),children:jsxs("tr",{children:[x&&jsx("th",{className:g(lr[K],"w-10 font-semibold text-gray-700 dark:text-gray-300")}),v&&jsx("th",{className:g(lr[K],"w-10"),children:k==="multiple"&&jsx("input",{type:"checkbox",checked:oi,ref:q=>{q&&(q.indeterminate=Gm);},onChange:oi?ni:ri,className:"rounded border-gray-300 dark:border-gray-600 cursor-pointer","aria-label":"Select all rows"})}),I&&jsx("th",{className:g(lr[K],"w-10 font-semibold text-gray-700 dark:text-gray-300")}),qe.map(ng)]})}),jsx("tbody",{children:og()}),ag()]})}),$e&&jsxs("div",{className:"flex items-center justify-between flex-wrap gap-3 text-sm text-gray-600 dark:text-gray-400",children:[jsxs("div",{className:"flex items-center gap-3",children:[$e.showTotalItems!==false&&jsxs("span",{children:[je," item",je!==1?"s":""]}),$e.showPageSizeSelector!==false&&$e.pageSizeOptions&&jsxs("div",{className:"flex items-center gap-1.5",children:[jsx("span",{children:"Rows per page:"}),jsx("select",{value:nt,onChange:q=>ti(Number(q.target.value)),className:"border border-gray-300 dark:border-gray-600 rounded px-1.5 py-0.5 bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200 text-sm",children:$e.pageSizeOptions.map(q=>jsx("option",{value:q,children:q},q))})]})]}),jsxs("div",{className:"flex items-center gap-1",children:[jsxs("span",{className:"mr-2",children:["Page ",Vr," of ",Lt]}),jsx("button",{type:"button",onClick:()=>xr(1),disabled:Vr<=1,className:"px-2 py-1 rounded border border-gray-300 dark:border-gray-600 disabled:opacity-50 disabled:cursor-not-allowed hover:bg-gray-100 dark:hover:bg-gray-700 cursor-pointer","aria-label":"First page",children:"\xAB\xAB"}),jsx("button",{type:"button",onClick:()=>xr(Vr-1),disabled:Vr<=1,className:"px-2 py-1 rounded border border-gray-300 dark:border-gray-600 disabled:opacity-50 disabled:cursor-not-allowed hover:bg-gray-100 dark:hover:bg-gray-700 cursor-pointer","aria-label":"Previous page",children:"\xAB"}),jsx("button",{type:"button",onClick:()=>xr(Vr+1),disabled:Vr>=Lt,className:"px-2 py-1 rounded border border-gray-300 dark:border-gray-600 disabled:opacity-50 disabled:cursor-not-allowed hover:bg-gray-100 dark:hover:bg-gray-700 cursor-pointer","aria-label":"Next page",children:"\xBB"}),jsx("button",{type:"button",onClick:()=>xr(Lt),disabled:Vr>=Lt,className:"px-2 py-1 rounded border border-gray-300 dark:border-gray-600 disabled:opacity-50 disabled:cursor-not-allowed hover:bg-gray-100 dark:hover:bg-gray-700 cursor-pointer","aria-label":"Last page",children:"\xBB\xBB"})]})]})]})}var Sb=forwardRef(Nb);function Tb({className:e}){return jsx("svg",{className:e,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:jsx("path",{d:"M4 4L12 12M12 4L4 12",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}var Pb={default:{solid:"bg-gray-500 text-white",outlined:"border-gray-300 text-gray-700 dark:border-gray-600 dark:text-gray-300 bg-transparent",soft:"bg-gray-100 text-gray-700 dark:bg-gray-700 dark:text-gray-300",dot:"bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-300"},primary:{solid:"bg-blue-600 text-white",outlined:"border-blue-600 text-blue-600 dark:border-blue-400 dark:text-blue-400 bg-transparent",soft:"bg-blue-100 text-blue-700 dark:bg-blue-900/50 dark:text-blue-300",dot:"bg-blue-50 text-blue-700 dark:bg-blue-900/30 dark:text-blue-300"},success:{solid:"bg-green-600 text-white",outlined:"border-green-600 text-green-600 dark:border-green-400 dark:text-green-400 bg-transparent",soft:"bg-green-100 text-green-700 dark:bg-green-900/50 dark:text-green-300",dot:"bg-green-50 text-green-700 dark:bg-green-900/30 dark:text-green-300"},warning:{solid:"bg-yellow-500 text-white",outlined:"border-yellow-500 text-yellow-600 dark:border-yellow-400 dark:text-yellow-400 bg-transparent",soft:"bg-yellow-100 text-yellow-700 dark:bg-yellow-900/50 dark:text-yellow-300",dot:"bg-yellow-50 text-yellow-700 dark:bg-yellow-900/30 dark:text-yellow-300"},error:{solid:"bg-red-600 text-white",outlined:"border-red-600 text-red-600 dark:border-red-400 dark:text-red-400 bg-transparent",soft:"bg-red-100 text-red-700 dark:bg-red-900/50 dark:text-red-300",dot:"bg-red-50 text-red-700 dark:bg-red-900/30 dark:text-red-300"},info:{solid:"bg-cyan-600 text-white",outlined:"border-cyan-600 text-cyan-600 dark:border-cyan-400 dark:text-cyan-400 bg-transparent",soft:"bg-cyan-100 text-cyan-700 dark:bg-cyan-900/50 dark:text-cyan-300",dot:"bg-cyan-50 text-cyan-700 dark:bg-cyan-900/30 dark:text-cyan-300"}},Eb={default:"bg-gray-500",primary:"bg-blue-600",success:"bg-green-600",warning:"bg-yellow-500",error:"bg-red-600",info:"bg-cyan-600"},Db={sm:"h-5 text-xs px-2 gap-1",md:"h-6 text-sm px-2.5 gap-1.5",lg:"h-8 text-sm px-3 gap-2"},Xi={sm:"w-3 h-3",md:"w-3.5 h-3.5",lg:"w-4 h-4"},Lb={sm:"w-4 h-4 -ml-1",md:"w-5 h-5 -ml-1.5",lg:"w-6 h-6 -ml-1.5"},Mb={sm:"w-1.5 h-1.5",md:"w-2 h-2",lg:"w-2.5 h-2.5"},Ib={none:"rounded-none",sm:"rounded-sm",md:"rounded-md",lg:"rounded-lg",full:"rounded-full"};function xs({label:e,children:t,variant:r="solid",size:n="md",color:o="default",bgColor:a,textColor:s,borderColor:l,rounded:i="full",icon:c,endIcon:d,avatar:u,onClose:b,closable:m=false,clickable:p=false,selected:C=false,disabled:v=false,as:k="span",className:y,onClick:z,...h}){let R=k,f=g("inline-flex items-center justify-center font-medium transition-all",Db[n],Ib[i],r==="outlined"&&"border"),N=g(a||s||l?g(a,s,l):Pb[o][r]),L=C?"ring-2 ring-offset-1 ring-blue-500":"",E=p&&!v?"cursor-pointer hover:opacity-80 active:scale-95":"",I=v?"opacity-50 cursor-not-allowed":"",w=T=>{T.stopPropagation(),b?.();},W=T=>{v||z?.(T);},M=t??e;return jsxs(R,{className:g(f,N,L,E,I,y),onClick:W,"aria-disabled":v,...h,children:[r==="dot"&&jsx("span",{className:g("rounded-full shrink-0",Mb[n],Eb[o]),"aria-hidden":"true"}),u&&jsx("span",{className:g("rounded-full overflow-hidden shrink-0",Lb[n]),children:u}),c&&!u&&jsx("span",{className:g("shrink-0",Xi[n]),children:c}),M&&jsx("span",{className:"truncate",children:M}),d&&!m&&jsx("span",{className:g("shrink-0",Xi[n]),children:d}),m&&jsx("button",{type:"button",onClick:w,disabled:v,className:g("shrink-0 rounded-full hover:bg-black/10 dark:hover:bg-white/10 p-0.5 -mr-1 transition-colors","focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-1 focus-visible:ring-current",v&&"pointer-events-none"),"aria-label":"Remove",children:jsx(Tb,{className:Xi[n]})})]})}xs.displayName="Chip";var Vb=500,Bb=800,Fb=600;function Ob(e,t,r){let n=[`width=${e}`,`height=${t}`,"menubar=no","toolbar=no","location=no","status=no","scrollbars=yes","resizable=yes"];if(r.left!==void 0)n.push(`left=${r.left}`);else if(r.center!==false&&typeof window<"u"){let o=window.screenLeft??window.screenX,a=window.screenTop??window.screenY,s=window.outerWidth??screen.availWidth,l=window.outerHeight??screen.availHeight;n.push(`left=${o+(s-e)/2}`),n.push(`top=${a+(l-t)/2}`);}if(r.top!==void 0){let o=n.filter(a=>!a.startsWith("top="));return o.push(`top=${r.top}`),o.join(",")}return n.join(",")}function $b(e,t){e.querySelectorAll("style").forEach(s=>{let l=t.createElement("style");l.textContent=s.textContent,t.head.appendChild(l);}),e.querySelectorAll('link[rel="stylesheet"]').forEach(s=>{let l=t.createElement("link");l.rel="stylesheet",l.href=s.href,s.crossOrigin&&(l.crossOrigin=s.crossOrigin),t.head.appendChild(l);});let o=e.documentElement.className;o&&(t.documentElement.className=o);let a=e.body.className;a&&(t.body.className=a);}function _b(e,t){let r=new MutationObserver(n=>{for(let o of n)for(let a of Array.from(o.addedNodes))if(a instanceof HTMLStyleElement){let s=t.createElement("style");s.textContent=a.textContent,t.head.appendChild(s);}else if(a instanceof HTMLLinkElement&&a.rel==="stylesheet"){let s=t.createElement("link");s.rel="stylesheet",s.href=a.href,t.head.appendChild(s);}});return r.observe(e.head,{childList:true}),r}var dd=forwardRef(function({children:t,detached:r,defaultDetached:n=false,onClose:o,onDetach:a,title:s="",width:l=Bb,height:i=Fb,left:c,top:d,center:u=true,copyStyles:b=true,closeOnParentUnmount:m=true,className:p,windowClassName:C,onPopupBlocked:v},k){let y=r!==void 0,[z,h]=useState(n),R=y?r:z,[f,N]=useState(null),L=useRef(null),E=useRef(null),I=useRef(null),w=useRef(false),W=useRef({width:l,height:i,left:c,top:d,center:u,shouldCopyStyles:b,title:s,windowClassName:C,closeOnParentUnmount:m});W.current={width:l,height:i,left:c,top:d,center:u,shouldCopyStyles:b,title:s,windowClassName:C,closeOnParentUnmount:m};let M=useCallback(()=>{E.current&&(clearInterval(E.current),E.current=null),I.current&&(I.current.disconnect(),I.current=null),N(null);},[]),T=useCallback(()=>{L.current&&!L.current.closed&&L.current.close(),L.current=null,M();},[M]),P=useCallback(()=>{if(typeof window>"u"||w.current||L.current&&!L.current.closed)return;w.current=true;let x=W.current,D=Ob(x.width,x.height,{center:x.center,left:x.left,top:x.top}),S=window.open("","",D);if(!S){w.current=false,v?.();return}L.current=S,S.document.title=x.title||document.title;let B=S.document.createElement("div");x.windowClassName&&(B.className=x.windowClassName),S.document.body.appendChild(B),N(B),x.shouldCopyStyles&&($b(document,S.document),I.current=_b(document,S.document)),E.current=setInterval(()=>{S.closed&&(M(),L.current=null,y||h(false),o?.());},Vb),w.current=false,a?.();},[y,o,a,v,M]);return useEffect(()=>{R?P():T();},[R,P,T]),useEffect(()=>{L.current&&!L.current.closed&&s&&(L.current.document.title=s);},[s]),useEffect(()=>()=>{W.current.closeOnParentUnmount&&L.current&&!L.current.closed&&L.current.close(),M(),L.current=null;},[M]),useImperativeHandle(k,()=>({detach:()=>{y||h(true);},attach:()=>{y||h(false);},get isDetached(){return y?!!r:z},get window(){return L.current}}),[y,r,z]),R&&f?createPortal(t,f):R?null:jsx("div",{className:g(p),children:t})});dd.displayName="Detachable";var Kb={phone:{sm:{w:180,h:320},md:{w:240,h:480},lg:{w:300,h:600}},android:{sm:{w:180,h:320},md:{w:240,h:480},lg:{w:300,h:600}},tablet:{sm:{w:320,h:420},md:{w:420,h:560},lg:{w:540,h:720}},laptop:{sm:{w:400,h:250},md:{w:560,h:350},lg:{w:720,h:450}},desktop:{sm:{w:400,h:300},md:{w:560,h:400},lg:{w:720,h:520}},watch:{sm:{w:80,h:96},md:{w:120,h:144},lg:{w:160,h:192}},browser:{sm:{w:400,h:280},md:{w:560,h:380},lg:{w:720,h:480}}},Ub=({className:e})=>jsxs("svg",{className:g("w-3 h-3",e),viewBox:"0 0 16 16",fill:"currentColor",children:[jsx("rect",{x:"1",y:"11",width:"2.5",height:"4",rx:"0.5"}),jsx("rect",{x:"5",y:"8",width:"2.5",height:"7",rx:"0.5"}),jsx("rect",{x:"9",y:"5",width:"2.5",height:"10",rx:"0.5"}),jsx("rect",{x:"13",y:"1",width:"2.5",height:"14",rx:"0.5"})]}),Yb=({className:e})=>jsxs("svg",{className:g("w-3 h-3",e),viewBox:"0 0 20 20",fill:"currentColor",children:[jsx("path",{d:"M10 14.5a1.5 1.5 0 100 3 1.5 1.5 0 000-3z"}),jsx("path",{fillRule:"evenodd",d:"M6.05 11.95a5.5 5.5 0 017.9 0 .75.75 0 001.08-1.04 7 7 0 00-10.06 0 .75.75 0 001.08 1.04z",clipRule:"evenodd"}),jsx("path",{fillRule:"evenodd",d:"M2.81 8.72a10 10 0 0114.38 0 .75.75 0 001.06-1.06 11.5 11.5 0 00-16.5 0 .75.75 0 001.06 1.06z",clipRule:"evenodd"})]}),qb=({className:e})=>jsxs("svg",{className:g("w-4 h-3",e),viewBox:"0 0 24 14",fill:"currentColor",children:[jsx("rect",{x:"0.5",y:"0.5",width:"20",height:"13",rx:"2",stroke:"currentColor",fill:"none",strokeWidth:"1"}),jsx("rect",{x:"22",y:"4",width:"2",height:"6",rx:"0.5"}),jsx("rect",{x:"2.5",y:"2.5",width:"14",height:"9",rx:"1"})]});function Na({time:e="9:41",theme:t,device:r}){let n=r==="watch",o=t==="dark"?"text-white":"text-gray-900";return n?jsx("div",{className:g("flex items-center justify-center py-0.5",o),style:{fontSize:"8px"},children:jsx("span",{className:"font-medium",children:e})}):jsxs("div",{className:g("flex items-center justify-between px-4 py-1",t==="dark"?"bg-black/20":"bg-white/20",o),style:{fontSize:"10px"},"data-testid":"status-bar",children:[jsx("span",{className:"font-semibold",children:e}),jsxs("div",{className:"flex items-center gap-1",children:[jsx(Ub,{className:o}),jsx(Yb,{className:o}),jsx(qb,{className:o})]})]})}function jb({theme:e}){let t=e==="dark";return jsxs("div",{className:g("flex items-center gap-2 px-3 py-2 border-b",t?"bg-gray-800 border-gray-700":"bg-gray-100 border-gray-200"),"data-testid":"browser-chrome",children:[jsxs("div",{className:"flex items-center gap-1.5",children:[jsx("div",{className:"w-2.5 h-2.5 rounded-full bg-red-400"}),jsx("div",{className:"w-2.5 h-2.5 rounded-full bg-yellow-400"}),jsx("div",{className:"w-2.5 h-2.5 rounded-full bg-green-400"})]}),jsx("div",{className:g("flex-1 rounded-md px-3 py-1 text-center",t?"bg-gray-700 text-gray-400":"bg-white text-gray-500 border border-gray-200"),style:{fontSize:"11px"},children:jsxs("span",{className:"flex items-center justify-center gap-1",children:[jsx("svg",{className:"w-2.5 h-2.5",viewBox:"0 0 16 16",fill:"currentColor",children:jsx("path",{fillRule:"evenodd",d:"M8 1a4 4 0 00-4 4v3.5H3a1 1 0 00-1 1V14a1 1 0 001 1h10a1 1 0 001-1V9.5a1 1 0 00-1-1h-1V5a4 4 0 00-4-4zm2.5 7.5V5a2.5 2.5 0 00-5 0v3.5h5z",clipRule:"evenodd"})}),"example.com"]})})]})}function Zb({children:e,theme:t,screenW:r,screenH:n,showStatusBar:o,statusBarTime:a,frameColor:s,landscape:l=false}){let i=t==="dark",c=s??(i?"#1a1a1a":"#e5e7eb");if(l){let u=Math.round(n*.35);return jsxs("div",{className:"relative inline-flex flex-row items-center rounded-[2.5rem] shadow-xl",style:{backgroundColor:c,padding:"8px 12px",height:n+16},"data-testid":"device-frame","data-device":"phone",children:[jsx("div",{className:g("rounded-full mr-2",i?"bg-gray-600":"bg-gray-400"),style:{width:4,height:Math.round(n*.35)},"data-testid":"home-indicator"}),jsxs("div",{className:"rounded-[2rem] overflow-hidden bg-black relative",style:{width:r,height:n},children:[o&&jsx(Na,{time:a,theme:t,device:"phone"}),e]}),jsx("div",{className:"absolute rounded-full bg-black z-10",style:{width:20,height:u,right:10,top:"50%",transform:"translateY(-50%)"},"data-testid":"phone-notch"})]})}let d=Math.round(r*.35);return jsxs("div",{className:"relative inline-flex flex-col items-center rounded-[2.5rem] shadow-xl",style:{backgroundColor:c,padding:"12px 8px",width:r+16},"data-testid":"device-frame","data-device":"phone",children:[jsx("div",{className:"absolute top-[10px] rounded-full bg-black z-10",style:{width:d,height:20,left:"50%",transform:"translateX(-50%)"},"data-testid":"phone-notch"}),jsxs("div",{className:"rounded-[2rem] overflow-hidden bg-black relative",style:{width:r,height:n},children:[o&&jsx(Na,{time:a,theme:t,device:"phone"}),e]}),jsx("div",{className:g("rounded-full mt-2",i?"bg-gray-600":"bg-gray-400"),style:{width:Math.round(r*.35),height:4},"data-testid":"home-indicator"})]})}function Qb({children:e,theme:t,screenW:r,screenH:n,showStatusBar:o,statusBarTime:a,frameColor:s}){return jsxs("div",{className:"relative inline-flex flex-col items-center rounded-[2rem] shadow-xl",style:{backgroundColor:s??(t==="dark"?"#1a1a1a":"#e5e7eb"),padding:"10px 6px",width:r+12},"data-testid":"device-frame","data-device":"android",children:[jsx("div",{className:"absolute top-[6px] rounded-full bg-gray-800 z-10 border border-gray-700",style:{width:8,height:8,left:"50%",transform:"translateX(-50%)"},"data-testid":"camera-dot"}),jsxs("div",{className:"rounded-[1.5rem] overflow-hidden bg-black relative",style:{width:r,height:n},children:[o&&jsx(Na,{time:a,theme:t,device:"android"}),e]})]})}function Jb({children:e,theme:t,screenW:r,screenH:n,showStatusBar:o,statusBarTime:a,frameColor:s}){return jsxs("div",{className:"relative inline-flex flex-col items-center rounded-[1.5rem] shadow-xl",style:{backgroundColor:s??(t==="dark"?"#1a1a1a":"#e5e7eb"),padding:"16px 12px",width:r+24},"data-testid":"device-frame","data-device":"tablet",children:[jsx("div",{className:"absolute top-[8px] rounded-full bg-gray-700 z-10",style:{width:6,height:6,left:"50%",transform:"translateX(-50%)"}}),jsxs("div",{className:"rounded-lg overflow-hidden bg-black relative",style:{width:r,height:n},children:[o&&jsx(Na,{time:a,theme:t,device:"tablet"}),e]})]})}function eh({children:e,theme:t,screenW:r,screenH:n,frameColor:o}){let a=t==="dark",s=o??(a?"#1a1a1a":"#d1d5db"),l=r+60;return jsxs("div",{className:"inline-flex flex-col items-center","data-testid":"device-frame","data-device":"laptop",children:[jsxs("div",{className:"rounded-t-xl shadow-xl relative",style:{backgroundColor:s,padding:"8px 8px 0",width:r+16},children:[jsx("div",{className:"absolute top-[3px] rounded-full bg-gray-700 z-10",style:{width:4,height:4,left:"50%",transform:"translateX(-50%)"}}),jsx("div",{className:"rounded-t-sm overflow-hidden bg-black",style:{width:r,height:n},children:e})]}),jsx("div",{className:g(a?"bg-gray-800":"bg-gray-400"),style:{width:r+16,height:3}}),jsx("div",{className:"rounded-b-xl shadow-lg",style:{backgroundColor:s,width:l,height:12,clipPath:"polygon(3% 0%, 97% 0%, 100% 100%, 0% 100%)"},"data-testid":"laptop-base"})]})}function th({children:e,theme:t,screenW:r,screenH:n,frameColor:o}){let a=t==="dark";return jsxs("div",{className:"inline-flex flex-col items-center","data-testid":"device-frame","data-device":"desktop",children:[jsx("div",{className:"rounded-lg shadow-xl",style:{backgroundColor:o??(a?"#1a1a1a":"#d1d5db"),padding:"8px 8px 20px",width:r+16},children:jsx("div",{className:"rounded-sm overflow-hidden bg-black",style:{width:r,height:n},children:e})}),jsx("div",{className:g(a?"bg-gray-800":"bg-gray-400"),style:{width:40,height:24},"data-testid":"monitor-stand"}),jsx("div",{className:g("rounded-t-sm",a?"bg-gray-800":"bg-gray-400"),style:{width:Math.round(r*.4),height:6,borderRadius:"2px 2px 4px 4px"}})]})}function rh({children:e,theme:t,screenW:r,screenH:n,showStatusBar:o,statusBarTime:a,frameColor:s}){let l=t==="dark",i=s??(l?"#1a1a1a":"#d1d5db"),c=Math.round(r*.7);return jsxs("div",{className:"inline-flex flex-col items-center","data-testid":"device-frame","data-device":"watch",children:[jsx("div",{className:g("rounded-t-lg",l?"bg-gray-800":"bg-gray-400"),style:{width:c,height:30},"data-testid":"watch-band"}),jsxs("div",{className:"relative rounded-[1.2rem] shadow-xl",style:{backgroundColor:i,padding:"8px 6px",width:r+12},children:[jsx("div",{className:g("absolute rounded-sm",l?"bg-gray-600":"bg-gray-400"),style:{width:4,height:16,right:-4,top:"30%"},"data-testid":"watch-crown"}),jsxs("div",{className:"rounded-xl overflow-hidden bg-black",style:{width:r,height:n},children:[o&&jsx(Na,{time:a,theme:t,device:"watch"}),e]})]}),jsx("div",{className:g("rounded-b-lg",l?"bg-gray-800":"bg-gray-400"),style:{width:c,height:30}})]})}function nh({children:e,theme:t,screenW:r,screenH:n,frameColor:o}){return jsxs("div",{className:"inline-flex flex-col rounded-lg shadow-xl overflow-hidden",style:{backgroundColor:o??(t==="dark"?"#1f2937":"#f3f4f6"),width:r},"data-testid":"device-frame","data-device":"browser",children:[jsx(jb,{theme:t}),jsx("div",{className:"overflow-hidden bg-white",style:{width:r,height:n},children:e})]})}function oh({device:e="phone",src:t,alt:r="Device screen content",children:n,orientation:o="portrait",theme:a="dark",size:s="md",showStatusBar:l=false,statusBarTime:i,animated:c=false,scrollSpeed:d=30,frameColor:u,className:b,contentClassName:m}){let p=useRef(null),C=useRef(null),v=Kb[e][s],k=o==="landscape"&&e!=="watch"&&e!=="browser",y=k?v.h:v.w,z=k?v.w:v.h;useEffect(()=>{if(!c||!p.current)return;let N=p.current,L=null,E=I=>{L===null&&(L=I);let w=(I-L)/1e3;L=I,N.scrollTop+=d*w,N.scrollTop>=N.scrollHeight-N.clientHeight&&(N.scrollTop=0),C.current=requestAnimationFrame(E);};return C.current=requestAnimationFrame(E),()=>{C.current!==null&&cancelAnimationFrame(C.current);}},[c,d]);let h=jsx("div",{ref:c?p:void 0,className:g("w-full h-full overflow-hidden",c&&"overflow-y-auto scrollbar-hide",m),style:c?{scrollBehavior:"auto"}:void 0,children:t?jsx("img",{src:t,alt:r,className:"w-full h-auto object-cover",draggable:false}):n}),R={showStatusBar:l,statusBarTime:i},f=()=>{switch(e){case "phone":return jsx(Zb,{theme:a,screenW:y,screenH:z,frameColor:u,landscape:k,...R,children:h});case "android":return jsx(Qb,{theme:a,screenW:y,screenH:z,frameColor:u,...R,children:h});case "tablet":return jsx(Jb,{theme:a,screenW:y,screenH:z,frameColor:u,...R,children:h});case "laptop":return jsx(eh,{theme:a,screenW:y,screenH:z,frameColor:u,children:h});case "desktop":return jsx(th,{theme:a,screenW:y,screenH:z,frameColor:u,children:h});case "watch":return jsx(rh,{theme:a,screenW:y,screenH:z,frameColor:u,...R,children:h});case "browser":return jsx(nh,{theme:a,screenW:y,screenH:z,frameColor:u,children:h})}};return jsx("div",{className:g("inline-flex",b),"data-testid":"device-mockup","data-orientation":o,"data-theme":a,"data-size":s,children:f()})}var vs={solid:"border-solid",dashed:"border-dashed",dotted:"border-dotted"},ah={left:{before:"flex-[0.1]",after:"flex-1"},center:{before:"flex-1",after:"flex-1"},right:{before:"flex-1",after:"flex-[0.1]"}};function md({orientation:e="horizontal",variant:t="solid",label:r,textAlign:n="center",thickness:o=1,color:a="border-gray-300 dark:border-gray-700",spacing:s,className:l,...i}){if(e==="vertical")return jsx("hr",{"aria-orientation":"vertical",className:g("h-full border-l-0 border-r",vs[t],a,s||"mx-2",l),style:{borderRightWidth:`${o}px`},...i});if(r){let c=ah[n];return jsxs("div",{role:"separator","aria-orientation":"horizontal",className:g("flex items-center text-sm text-gray-500 dark:text-gray-400",s||"my-4",l),...i,children:[jsx("div",{className:g("border-t",vs[t],a,c.before),style:{borderTopWidth:`${o}px`}}),jsx("span",{className:"px-3 whitespace-nowrap",children:r}),jsx("div",{className:g("border-t",vs[t],a,c.after),style:{borderTopWidth:`${o}px`}})]})}return jsx("hr",{"aria-orientation":"horizontal",className:g("border-t-0 border-b",vs[t],a,s||"my-4",l),style:{borderBottomWidth:`${o}px`},...i})}md.displayName="Divider";var ih=new Set(["SCRIPT","STYLE","LINK","META","NOSCRIPT","TEMPLATE","BASE","TITLE"]),gd="data-synertech-inert-ignore",Ra=new WeakMap,Ui=new WeakMap,Yi=new WeakMap;function lh(e){let t=Ra.get(e)??0;t===0&&(Ui.set(e,e.getAttribute("aria-hidden")),Yi.set(e,e.hasAttribute("inert")),e.setAttribute("aria-hidden","true"),e.setAttribute("inert","")),Ra.set(e,t+1);}function ch(e){let t=Ra.get(e)??0;if(t===0)return;if(t>1){Ra.set(e,t-1);return}Ra.delete(e);let r=Ui.get(e)??null;r===null?e.removeAttribute("aria-hidden"):e.setAttribute("aria-hidden",r),Ui.delete(e),Yi.get(e)||e.removeAttribute("inert"),Yi.delete(e);}var ks=new Map;function oo(e,t){return ks.set(e,t),()=>{ks.delete(e);}}function Cs(e){if(ks.size===0)return [];let t=[];for(let[r,n]of ks){let o=n();o&&e.some(a=>a.contains(o))&&t.push(r);}return t}function dh(e){return !(ih.has(e.tagName)||e.hasAttribute(gd))}function qi(e){let t=(Array.isArray(e)?e:[e]).filter(Boolean),r=t[0]?.ownerDocument?.body;if(!r||!t.every(i=>r.contains(i)))return ()=>{};let n=[...t,...Cs(t).filter(i=>r.contains(i))],o=[],a=new Set,s=i=>n.some(c=>i===c||i.contains(c));for(let i of t){let c=i;for(;c&&c!==r;){let d=c.parentElement;if(!d)break;for(let u of Array.from(d.children))a.has(u)||s(u)||dh(u)&&(a.add(u),lh(u),o.push(u));c=d;}}let l=false;return ()=>{if(!l){l=true;for(let i of o)ch(i);}}}var Hn=[];function pd(e){let t=Hn.indexOf(e);t!==-1&&Hn.splice(t,1),Hn.push(e);}function fd(e){let t=Hn.indexOf(e);t!==-1&&Hn.splice(t,1);}function bd(e){return Hn.length>0&&Hn[Hn.length-1]===e}var Ta=0,ji=null;function hd(e=document){let t=e.body;if(!t)return ()=>{};Ta===0&&(ji=t.style.overflow,t.style.overflow="hidden"),Ta+=1;let r=false;return ()=>{r||(r=true,Ta=Math.max(0,Ta-1),Ta===0&&(t.style.overflow=ji??"",ji=null));}}var yd=["a[href]","area[href]","button","input","select","textarea","details > summary:first-of-type","iframe","object","embed","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])',"[tabindex]"].join(",");function uh(e){let t=e.ownerDocument?.defaultView;if(!t)return null;try{return t.getComputedStyle(e)}catch{return null}}function xd(e){let t=e;for(;t;){if(t.hasAttribute("hidden")||t.hasAttribute("inert")||t.getAttribute("aria-hidden")==="true")return false;let r=uh(t);if(r&&(r.display==="none"||r.visibility==="hidden"||r.visibility==="collapse"))return false;t=t.parentElement;}return true}function vd(e){if(e.hasAttribute("disabled")||e.getAttribute("tabindex")==="-1")return false;let t=e.closest("fieldset[disabled]");if(t){let r=t.querySelector("legend");if(!r||!r.contains(e))return false}return xd(e)}function ws(e){return Array.from(e.querySelectorAll(yd)).filter(vd).sort((r,n)=>{let o=r.compareDocumentPosition(n);return o&Node.DOCUMENT_POSITION_FOLLOWING?-1:o&Node.DOCUMENT_POSITION_PRECEDING?1:0})}var mh={role:"dialog","aria-modal":true,tabIndex:-1};function gh(e,t){return t==="none"?null:t&&typeof t=="object"?t.current??e:t==="first"?ws(e)[0]??e:e}function ph(e){return e?e.map(t=>t&&"current"in t?t.current:t).filter(t=>!!t):[]}function Ho(e){if(e)try{e.focus();}catch{}}function ao(e){let{open:t}=e,r=useRef(null),n=useRef(e);return n.current=e,useEffect(()=>{if(!t)return;let o=r.current;if(!o)return;let a=o.ownerDocument,s=a.activeElement,{hideBackground:l,lockScroll:i,initialFocus:c,keepInteractive:d}=n.current;pd(o);let u=l===false?void 0:qi([o,...ph(d)]),b=i===false?void 0:hd(a);return Ho(gh(o,c)),()=>{u?.(),b?.(),fd(o);let{returnFocus:m}=n.current;if(m===false)return;let p=a.activeElement;if(!(!p||p===a.body||o.contains(p)))return;let v=m&&typeof m=="object"?m.current:s;v&&a.contains(v)&&Ho(v);}},[t]),useEffect(()=>{if(!t)return;let o=r.current;if(!o)return;let a=o.ownerDocument,s=a.defaultView??a,l=c=>c?o.contains(c)?true:Cs([o]).some(d=>d.contains(c)):false,i=c=>{if(c.defaultPrevented||!bd(o))return;let{closeOnEscape:d,trapFocus:u,onClose:b}=n.current;if(c.key==="Escape"){if(d===false)return;c.preventDefault(),b?.();return}if(c.key!=="Tab"||u===false)return;let m=a.activeElement;if(m&&!o.contains(m)&&l(m))return;let p=ws(o);if(p.length===0){c.preventDefault(),Ho(o);return}let C=p[0],v=p[p.length-1];if(!m||!o.contains(m)){c.preventDefault(),Ho(c.shiftKey?v:C);return}if(c.shiftKey&&(m===C||m===o)){c.preventDefault(),Ho(v);return}!c.shiftKey&&m===v&&(c.preventDefault(),Ho(C));};return s.addEventListener("keydown",i),()=>s.removeEventListener("keydown",i)},[t]),{dialogRef:r,dialogProps:mh}}var xh={left:{sm:"w-64",md:"w-80",lg:"w-96",xl:"w-[32rem]",full:"w-full",half:"w-1/2 h-full"},right:{sm:"w-64",md:"w-80",lg:"w-96",xl:"w-[32rem]",full:"w-full",half:"w-1/2 h-full"},top:{sm:"h-64",md:"h-80",lg:"h-96",xl:"h-[32rem]",full:"h-full",half:"w-1/2 h-full"},bottom:{sm:"h-64",md:"h-80",lg:"h-96",xl:"h-[32rem]",full:"h-full",half:"w-1/2 h-full"}},vh={left:"left-0 top-0 bottom-0",right:"right-0 top-0 bottom-0",top:"top-0 left-0 right-0",bottom:"bottom-0 left-0 right-0"},wd={left:{enter:"animate-in slide-in-from-left duration-300",exit:"animate-out slide-out-to-left duration-200"},right:{enter:"animate-in slide-in-from-right duration-300",exit:"animate-out slide-out-to-right duration-200"},top:{enter:"animate-in slide-in-from-top duration-300",exit:"animate-out slide-out-to-top duration-200"},bottom:{enter:"animate-in slide-in-from-bottom duration-300",exit:"animate-out slide-out-to-bottom duration-200"}},kh=jsx("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})});function Nd({open:e,onClose:t,children:r,position:n="right",size:o="md",customWidth:a,customHeight:s,showOverlay:l=true,closeOnOverlayClick:i=true,closeOnEscape:c=true,title:d,footer:u,className:b,overlayClassName:m,closeLabel:p,"aria-label":C,trapFocus:v=true,initialFocus:k,returnFocus:y,lockScroll:z=true}){let h=!!(a||s),R=useRef(null),f=Ge(),L=`${useId()}-drawer-title`,{dialogRef:E,dialogProps:I}=ao({open:e,onClose:t,closeOnEscape:c,trapFocus:v,initialFocus:k,returnFocus:y,lockScroll:z,keepInteractive:[R]}),w=useCallback(()=>{i&&t();},[i,t]);if(!e)return null;let W=jsxs(Fragment,{children:[l&&jsx("div",{ref:R,className:g("fixed inset-0 bg-black/50 z-40 transition-opacity",e?"animate-in fade-in duration-200":"animate-out fade-out duration-150",m),onClick:w,"aria-hidden":"true"}),jsxs("div",{ref:E,...I,"aria-labelledby":d?L:void 0,"aria-label":d?void 0:C,className:g("fixed z-50 bg-white dark:bg-gray-900","shadow-xl overflow-hidden","flex flex-col focus:outline-none",vh[n],!h&&xh[n][o],e?wd[n].enter:wd[n].exit,b),style:{...a?{width:a}:{},...s?{height:s}:{}},children:[d&&jsxs("div",{className:"flex items-center justify-between px-6 py-4 border-b border-gray-200 dark:border-gray-700",children:[jsx("h2",{id:L,className:"text-lg font-semibold text-gray-900 dark:text-white",children:d}),jsx("button",{type:"button",onClick:t,className:g("rounded-lg p-1.5 text-gray-400 hover:bg-gray-100 hover:text-gray-900","dark:hover:bg-gray-800 dark:hover:text-white","focus:outline-none focus:ring-2 focus:ring-gray-300 dark:focus:ring-gray-600"),"aria-label":p??f.closeDrawer,children:kh})]}),jsx("div",{className:"flex-1 overflow-y-auto px-6 py-4",children:r}),u&&jsx("div",{className:"px-6 py-4 border-t border-gray-200 dark:border-gray-700",children:u})]})]});return typeof document<"u"?createPortal(W,document.body):W}Nd.displayName="Drawer";var Sh={sm:{dropzone:"py-4 px-3",text:"text-xs",subtext:"text-[10px]",icon:"w-6 h-6",button:"px-2.5 py-1.5 text-xs",fileItem:"py-1 px-2 text-xs",gap:"gap-1"},md:{dropzone:"py-6 px-4",text:"text-sm",subtext:"text-xs",icon:"w-8 h-8",button:"px-3 py-2 text-sm",fileItem:"py-1.5 px-3 text-sm",gap:"gap-1.5"},lg:{dropzone:"py-8 px-6",text:"text-base",subtext:"text-sm",icon:"w-10 h-10",button:"px-4 py-2.5 text-base",fileItem:"py-2 px-4 text-base",gap:"gap-2"}},Pd=e=>{if(e===0)return "0 B";let t=["B","KB","MB","GB"],r=Math.floor(Math.log(e)/Math.log(1024));return `${(e/Math.pow(1024,r)).toFixed(r===0?0:1)} ${t[r]}`},Qi=e=>e.webkitRelativePath||e.name,Rh=jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:"w-full h-full",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 16.5v2.25A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75V16.5m-13.5-9L12 3m0 0l4.5 4.5M12 3v13.5"})}),Th=jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:"w-full h-full",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 9.776c.112-.017.227-.026.344-.026h15.812c.117 0 .232.009.344.026m-16.5 0a2.25 2.25 0 00-1.883 2.542l.857 6a2.25 2.25 0 002.227 1.932H19.05a2.25 2.25 0 002.227-1.932l.857-6a2.25 2.25 0 00-1.883-2.542m-16.5 0V6A2.25 2.25 0 016 3.75h3.879a1.5 1.5 0 011.06.44l2.122 2.12a1.5 1.5 0 001.06.44H18A2.25 2.25 0 0120.25 9v.776"})}),Ph=0;async function Eh(e){let t=[],r=async n=>{if(n.isFile){let o=await new Promise((a,s)=>n.file(a,s));t.push(o);}else if(n.isDirectory){let o=n.createReader(),a=()=>new Promise((l,i)=>o.readEntries(l,i)),s=await a();for(;s.length>0;){for(let l of s)await r(l);s=await a();}}};for(let n of e)await r(n);return t}function Dh({value:e,onChange:t,accept:r,multiple:n=false,maxSize:o=10*1024*1024,maxFiles:a,mode:s="file",variant:l="dropzone",size:i="md",disabled:c=false,readOnly:d=false,label:u,helperText:b,error:m,showFileList:p=true,placeholder:C,browseLabel:v,browseFolderLabel:k,icon:y,onReject:z,className:h}){let[R,f]=useState([]),[N,L]=useState(false),E=useRef(null),I=useRef(null),w=useId(),W=e!==void 0,M=W?e.map((U,J)=>({file:U,id:`ctrl-${J}`})):R,T=Sh[i];useEffect(()=>{s==="directory"&&E.current&&E.current.setAttribute("webkitdirectory",""),s==="both"&&I.current&&I.current.setAttribute("webkitdirectory","");},[s]);let P=useMemo(()=>Pd(o),[o]),x=useMemo(()=>r?r.split(",").map(U=>U.trim()).map(U=>U.startsWith(".")?U.toUpperCase():U.endsWith("/*")?U.replace("/*","").toUpperCase():U).join(", "):"All files",[r]),D=s==="directory"?"Drag & drop a folder here, or":s==="both"?"Drag & drop files or folders here, or":n?"Drag & drop files here, or":"Drag & drop a file here, or",S=s==="directory"?"Browse folder":"Browse",B="Browse folder",H=useCallback(U=>{if(U.size>o)return `File exceeds maximum size of ${P}`;if(r){let J=r.split(",").map(Q=>Q.trim()),te=`.${U.name.split(".").pop()?.toLowerCase()}`;if(!J.some(Q=>Q.startsWith(".")?te===Q.toLowerCase():Q.endsWith("/*")?U.type.startsWith(Q.replace("/*","/")):U.type===Q))return `File type not accepted. Expected: ${x}`}return null},[r,x,o,P]),$=useCallback(U=>{if(c||d)return;let J=Array.from(U),te=[];for(let ie of J){let Q=H(ie);Q?z?.(ie,Q):te.push(ie);}if(te.length!==0)if(W)if(n){let Q=[...e??[],...te],ge=a?Q.slice(0,a):Q;t?.(ge);}else t?.([te[0]]);else f(ie=>{let Q=te.map(ge=>({file:ge,id:`file-${++Ph}`}));if(n){let ge=[...ie,...Q],Re=a?ge.slice(0,a):ge,Qe=Re.map(at=>at.file);return t?.(Qe),Re}return t?.([te[0]]),[Q[0]]});},[c,d,W,n,a,e,t,z,H]),_=useCallback(U=>{if(!(c||d)){if(W){let J=(e??[]).filter((te,ie)=>ie!==U);t?.(J);}else f(J=>{let te=J.filter((ie,Q)=>Q!==U);return t?.(te.map(ie=>ie.file)),te});E.current&&(E.current.value="");}},[c,d,W,e,t]),F=useCallback(()=>{c||d||(W?t?.([]):(f([]),t?.([])),E.current&&(E.current.value=""));},[c,d,W,t]),A=useCallback(U=>{U.target.files&&U.target.files.length>0&&$(U.target.files);},[$]),V=useCallback(U=>{U.preventDefault(),U.stopPropagation(),!c&&!d&&L(true);},[c,d]),Y=useCallback(U=>{U.preventDefault(),U.stopPropagation(),L(false);},[]),X=useCallback(U=>{if(U.preventDefault(),U.stopPropagation(),L(false),c||d)return;let J=U.dataTransfer.items;if(J&&J.length>0&&(s==="directory"||s==="both")){let te=[];for(let Q=0;Q<J.length;Q++){let ge=J[Q].webkitGetAsEntry?.();ge&&te.push(ge);}if(te.some(Q=>Q.isDirectory)){Eh(te).then(Q=>{Q.length>0&&$(Q);});return}}U.dataTransfer.files&&U.dataTransfer.files.length>0&&$(U.dataTransfer.files);},[c,d,s,$]),G=useCallback(()=>{!c&&!d&&E.current?.click();},[c,d]),j=useCallback(()=>{!c&&!d&&I.current?.click();},[c,d]),O=M.length>0,K=y||(s==="directory"?Th:Rh),se=p&&O&&jsxs("div",{className:g("flex flex-col",T.gap),children:[M.map((U,J)=>jsxs("div",{className:g("flex items-center justify-between rounded-md border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800/50",T.fileItem),children:[jsxs("div",{className:"flex items-center gap-2 min-w-0 flex-1",children:[jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:"w-4 h-4 shrink-0 text-gray-400 dark:text-gray-500",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z"})}),jsx("span",{className:"truncate text-gray-700 dark:text-gray-300",children:Qi(U.file)}),jsxs("span",{className:"shrink-0 text-gray-400 dark:text-gray-500",children:["(",Pd(U.file.size),")"]})]}),!c&&!d&&jsx("button",{type:"button",onClick:()=>_(J),className:"shrink-0 ml-2 text-gray-400 hover:text-red-500 dark:text-gray-500 dark:hover:text-red-400 transition-colors cursor-pointer","aria-label":`Remove ${Qi(U.file)}`,children:jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:"w-4 h-4",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})})})]},U.id)),n&&M.length>1&&!c&&!d&&jsx("button",{type:"button",onClick:F,className:g("self-start text-gray-400 hover:text-red-500 dark:text-gray-500 dark:hover:text-red-400 transition-colors cursor-pointer",T.subtext),children:"Remove all"})]}),ae=g("rounded-md border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200 font-medium transition-colors","hover:bg-gray-50 dark:hover:bg-gray-700","disabled:opacity-50 disabled:cursor-not-allowed cursor-pointer","focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-1",T.button,m&&"border-red-300 dark:border-red-600");return jsxs("div",{className:g("flex flex-col",T.gap,h),children:[u&&jsx("label",{htmlFor:w,className:g("block font-medium text-gray-700 dark:text-gray-300",T.text),children:u}),jsx("input",{ref:E,id:w,type:"file",accept:s!=="directory"?r:void 0,multiple:n,onChange:A,className:"sr-only",disabled:c||d,"aria-describedby":m?`${w}-error`:b?`${w}-helper`:void 0,"aria-invalid":!!m}),s==="both"&&jsx("input",{ref:I,type:"file",onChange:A,className:"sr-only",disabled:c||d,tabIndex:-1,"aria-hidden":"true"}),l==="dropzone"?jsxs("div",{role:s==="both"?"group":"button",tabIndex:s==="both"?void 0:c||d?-1:0,onClick:s==="both"?void 0:G,onKeyDown:s==="both"?void 0:U=>{(U.key==="Enter"||U.key===" ")&&(U.preventDefault(),G());},onDragOver:V,onDragLeave:Y,onDrop:X,className:g("flex flex-col items-center justify-center rounded-lg border-2 border-dashed transition-colors",T.dropzone,N&&!c&&!d?"border-blue-500 bg-blue-50 dark:bg-blue-900/20":"border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800",!c&&!d&&"hover:border-blue-400 dark:hover:border-blue-500 hover:bg-gray-50 dark:hover:bg-gray-800/70",s!=="both"&&!c&&!d&&"cursor-pointer",c&&"opacity-50 cursor-not-allowed",d&&"cursor-default",m&&"border-red-300 dark:border-red-600"),"aria-label":s==="both"?"File and folder drop zone":C||D,children:[jsx("div",{className:g("text-gray-400 dark:text-gray-500 mb-2",T.icon,N&&"text-blue-500 dark:text-blue-400"),children:K}),jsxs("p",{className:g("text-gray-600 dark:text-gray-400",T.text),children:[C||D," ",!c&&!d&&s!=="both"&&jsx("span",{className:"text-blue-600 dark:text-blue-400 font-medium",children:v||S})]}),s==="both"&&!c&&!d&&jsxs("div",{className:g("flex items-center gap-3 mt-1",T.text),children:[jsx("button",{type:"button",onClick:G,className:"text-blue-600 dark:text-blue-400 font-medium hover:underline cursor-pointer focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-1 rounded",children:v||"Browse files"}),jsx("span",{className:"text-gray-300 dark:text-gray-600",children:"\xB7"}),jsx("button",{type:"button",onClick:j,className:"text-blue-600 dark:text-blue-400 font-medium hover:underline cursor-pointer focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-1 rounded",children:k||B})]}),jsxs("p",{className:g("text-gray-400 dark:text-gray-500 mt-1",T.subtext),children:[x," - Max ",P,n&&a&&` - Up to ${a} files`]})]}):jsxs("div",{className:"flex items-center gap-2",children:[s==="both"?jsxs(Fragment,{children:[jsx("button",{type:"button",onClick:G,disabled:c||d,className:ae,children:v||(O?"Change files":"Choose files")}),jsx("button",{type:"button",onClick:j,disabled:c||d,className:ae,children:k||"Choose folder"})]}):jsx("button",{type:"button",onClick:G,disabled:c||d,className:ae,children:v||(s==="directory"?O?"Change folder":"Choose folder":O?"Change file":"Choose file")}),!O&&jsx("span",{className:g("text-gray-400 dark:text-gray-500",T.text),children:s==="directory"?"No folder selected":s==="both"?"No file or folder selected":"No file selected"}),O&&!p&&jsx("span",{className:g("text-gray-600 dark:text-gray-400 truncate",T.text),children:M.length===1?Qi(M[0].file):`${M.length} files selected`})]}),se,m&&jsx("p",{id:`${w}-error`,className:g("text-red-600 dark:text-red-400",T.subtext),role:"alert",children:m}),b&&!m&&jsx("p",{id:`${w}-helper`,className:g("text-gray-400 dark:text-gray-500",T.subtext),children:b})]})}var Ld=createContext(null);function wr(){let e=useContext(Ld);if(!e)throw new Error("Dropdown compound components must be used within a Dropdown");return e}function Md({open:e,defaultOpen:t=false,onOpenChange:r,closeOnSelect:n=true,closeOnClickOutside:o=true,closeOnEscape:a=true,modal:s=false,children:l}){let[i,c]=useState(t),d=e!==void 0,u=d?e:i,b=useRef(null),m=useRef(null),p=useRef([]),[C,v]=useState(-1),k=useRef(0),y=useId(),z={triggerId:`dropdown-trigger-${y}`,contentId:`dropdown-content-${y}`},h=useCallback(L=>{d||c(L),r?.(L),L||v(-1);},[d,r]),R=useCallback((L,E)=>{p.current&&(p.current[L]=E);},[]),f=useCallback(()=>k.current++,[]),N={isOpen:u,setIsOpen:h,triggerRef:b,contentRef:m,closeOnSelect:n,closeOnClickOutside:o,closeOnEscape:a,modal:s,focusedIndex:C,setFocusedIndex:v,itemsRef:p,registerItem:R,getNextItemIndex:f,triggerId:z.triggerId,contentId:z.contentId};return jsx(Ld.Provider,{value:N,children:jsx("div",{className:"relative inline-block",children:l})})}Md.displayName="Dropdown";var Id=memo(({isOpen:e})=>jsx("span",{className:g("inline-block transition-transform",e&&"rotate-180"),children:jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})}));Id.displayName="ChevronIcon";function Ad({asChild:e=false,disabled:t=false,children:r,className:n}){let{isOpen:o,setIsOpen:a,triggerRef:s,triggerId:l,contentId:i}=wr(),u={ref:s,id:l,"aria-haspopup":"menu","aria-expanded":o,"aria-controls":o?i:void 0,disabled:t,onClick:()=>{t||a(!o);},onKeyDown:b=>{t||((b.key==="Enter"||b.key===" ")&&(b.preventDefault(),a(!o)),b.key==="ArrowDown"&&!o&&(b.preventDefault(),a(true)));}};return e&&isValidElement(r)?cloneElement(r,{...u,className:g(r.props.className,n)}):jsxs("button",{type:"button",...u,className:g("inline-flex items-center justify-center gap-2","rounded-md px-4 py-2","bg-white border border-gray-300","text-sm font-medium text-gray-700","hover:bg-gray-50","focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-500 focus-visible:ring-offset-2","disabled:opacity-50 disabled:cursor-not-allowed","transition-colors",n),children:[r,jsx(Id,{isOpen:o})]})}Ad.displayName="DropdownTrigger";function Vo(e){let t=useRef(e);return useLayoutEffect(()=>{t.current=e;}),t}function Bo(e,t,r=true){let n=Vo(t);useEffect(()=>{if(!r)return;let o=a=>{let s=a.target;!e.current||e.current.contains(s)||n.current();};return document.addEventListener("mousedown",o),document.addEventListener("touchstart",o,{passive:true}),()=>{document.removeEventListener("mousedown",o),document.removeEventListener("touchstart",o);}},[r,n,e]);}function Fo({triggerRef:e,contentRef:t,isOpen:r,side:n="bottom",align:o="start",sideOffset:a=4,alignOffset:s=0,avoidCollisions:l=true,collisionPadding:i=8}){let[c,d]=useState({top:0,left:0,actualSide:n,actualAlign:o,isReady:false}),u=useRef(false),b=useCallback(()=>{if(!e.current||!t.current)return;let m=e.current.getBoundingClientRect(),p=t.current.getBoundingClientRect();if(!(m.width>0&&m.height>0&&p.width>0&&p.height>0)){u.current=false;return}let v={width:window.innerWidth,height:window.innerHeight},k=n,y=o,z=f=>{switch(f){case "bottom":return {top:m.bottom+a,left:m.left};case "top":return {top:m.top-p.height-a,left:m.left};case "right":return {top:m.top,left:m.right+a};case "left":return {top:m.top,left:m.left-p.width-a}}},h=(f,N,L)=>{if(f==="top"||f==="bottom")switch(N){case "start":return {...L,left:m.left+s};case "center":return {...L,left:m.left+m.width/2-p.width/2+s};case "end":return {...L,left:m.right-p.width+s}}else switch(N){case "start":return {...L,top:m.top+s};case "center":return {...L,top:m.top+m.height/2-p.height/2+s};case "end":return {...L,top:m.bottom-p.height+s}}},R=z(k);if(R=h(k,y,R),l){let{top:f,left:N}=R,{height:L,width:E}=p,{height:I,width:w}=v,W=f+L>I-i,M=f<i,T=N+E>w-i,P=N<i;k==="bottom"&&W&&!M?(k="top",R=z(k),R=h(k,y,R)):k==="top"&&M&&!W&&(k="bottom",R=z(k),R=h(k,y,R)),k==="right"&&T&&!P?(k="left",R=z(k),R=h(k,y,R)):k==="left"&&P&&!T&&(k="right",R=z(k),R=h(k,y,R));let x=R.left+E>w-i,D=R.left<i,S=R.top+L>I-i,B=R.top<i;(k==="top"||k==="bottom")&&(x&&(R.left=w-E-i,y="end"),D&&(R.left=i,y="start")),(k==="left"||k==="right")&&(S&&(R.top=I-L-i,y="end"),B&&(R.top=i,y="start"));}u.current=true,d({top:R.top,left:R.left,actualSide:k,actualAlign:y,isReady:true});},[e,t,n,o,a,s,l,i]);return useLayoutEffect(()=>{let m=0;if(r){u.current=false;let C=()=>{b(),u.current||(m=requestAnimationFrame(C));};m=requestAnimationFrame(C);}let p=()=>b();return window.addEventListener("resize",p),window.addEventListener("scroll",p,{passive:true,capture:true}),()=>{m&&cancelAnimationFrame(m),window.removeEventListener("resize",p),window.removeEventListener("scroll",p,{capture:true});}},[b,r]),c}function Rs({isOpen:e,onClose:t,itemsCount:r,focusedIndex:n,setFocusedIndex:o,onSelect:a,loop:s=true}){let l=Vo(t),i=Vo(a),c=Vo(n),d=useCallback(u=>{if(!(!e||r===0))switch(u.key){case "ArrowDown":u.preventDefault(),o(s?b=>b<r-1?b+1:0:b=>Math.min(b+1,r-1));break;case "ArrowUp":u.preventDefault(),o(s?b=>b>0?b-1:r-1:b=>Math.max(b-1,0));break;case "Home":u.preventDefault(),o(0);break;case "End":u.preventDefault(),o(r-1);break;case "Enter":case " ":u.preventDefault(),i.current?.(c.current);break;case "Escape":u.preventDefault(),l.current();break;case "Tab":l.current();break}},[e,r,o,s,l,i,c]);return useEffect(()=>{if(e)return document.addEventListener("keydown",d),()=>document.removeEventListener("keydown",d)},[e,d]),{focusedIndex:n}}function Wd(e,t,r){useEffect(()=>{r&&e.current&&e.current[t]&&e.current[t]?.focus();},[t,r,e]);}var Zh={fade:"animate-in fade-in-0 duration-200",scale:"animate-in fade-in-0 zoom-in-95 duration-200",slide:"animate-in fade-in-0 slide-in-from-top-2 duration-200",none:""};function Vd({side:e="bottom",align:t="start",sideOffset:r=4,alignOffset:n=0,avoidCollisions:o=true,collisionPadding:a=8,minWidth:s,maxWidth:l,maxHeight:i=300,animation:c="scale",portal:d=true,children:u,className:b}){let{isOpen:m,setIsOpen:p,triggerRef:C,contentRef:v,closeOnClickOutside:k,closeOnEscape:y,modal:z,contentId:h,focusedIndex:R,setFocusedIndex:f,itemsRef:N}=wr(),[L,E]=useState(false),I=Fo({triggerRef:C,contentRef:v,isOpen:m,side:e,align:t,sideOffset:r,alignOffset:n,avoidCollisions:o,collisionPadding:a});Bo(v,()=>{k&&p(false);},m);let w=N.current?.filter(Boolean).length||0,W=useCallback(T=>{let P=N.current?.[T];P&&!P.hasAttribute("data-disabled")&&P.click();},[N]);Rs({isOpen:m,onClose:()=>{y&&(p(false),C.current?.focus());},itemsCount:w,focusedIndex:R,setFocusedIndex:f,onSelect:W}),useEffect(()=>{let T=v.current;if(T)return oo(T,()=>C.current)},[v,C]),useEffect(()=>{if(m&&N.current&&N.current.length>0){let T=setTimeout(()=>{f(0),N.current?.[0]?.focus();},10);return ()=>clearTimeout(T)}},[m,N,f]),useLayoutEffect(()=>{let T=0;if(!m){E(false);return}let P=()=>{let x=C.current?.getBoundingClientRect(),D=v.current?.getBoundingClientRect();if(I.isReady&&!!x&&!!D&&x.width>0&&x.height>0&&D.width>0&&D.height>0){E(true);return}T=requestAnimationFrame(P);};return E(false),T=requestAnimationFrame(P),()=>{T&&cancelAnimationFrame(T);}},[m,I.isReady,C,v]);let M=jsxs(Fragment,{children:[z&&m&&jsx("div",{className:"fixed inset-0 z-40 bg-black/20",onClick:()=>p(false)}),jsx("div",{ref:v,id:h,role:"menu","aria-orientation":"vertical","aria-hidden":!m,tabIndex:-1,style:{position:"fixed",top:I.top,left:I.left,minWidth:s??C.current?.offsetWidth,maxWidth:l,maxHeight:i,visibility:m&&L?"visible":"hidden",opacity:m&&L?1:0,pointerEvents:m&&L?"auto":"none"},className:g("z-50 overflow-auto rounded-lg","border border-gray-200 bg-white shadow-lg","dark:border-gray-700 dark:bg-gray-800",m&&L&&Zh[c],b),children:jsx("div",{className:"py-1",children:u})})]});return d&&typeof document<"u"?createPortal(M,document.body):M}Vd.displayName="DropdownContent";var ny={default:"text-gray-700 dark:text-gray-200 hover:bg-gray-100 dark:hover:bg-gray-700",danger:"text-red-600 dark:text-red-400 hover:bg-red-50 dark:hover:bg-red-900/20",success:"text-green-600 dark:text-green-400 hover:bg-green-50 dark:hover:bg-green-900/20"};function Fd({children:e,icon:t,iconPosition:r="left",description:n,shortcut:o,variant:a="default",closeOnSelect:s,onSelect:l,disabled:i=false,className:c,onClick:d,index:u,...b}){let{setIsOpen:m,closeOnSelect:p,focusedIndex:C,setFocusedIndex:v,registerItem:k,getNextItemIndex:y}=wr(),z=useRef(null),[h]=useState(()=>u??y());useEffect(()=>(k(h,z.current),()=>{k(h,null);}),[h,k]);let R=s??p,f=C===h;return jsxs("button",{ref:z,role:"menuitem",type:"button",tabIndex:f?0:-1,disabled:i,"data-disabled":i||void 0,"data-focused":f||void 0,onClick:E=>{i||(l?.(),d?.(E),R&&m(false));},onMouseEnter:()=>{i||v(h);},className:g("relative flex w-full items-center px-3 py-2 text-left text-sm","outline-none transition-colors","focus:bg-gray-100 dark:focus:bg-gray-700",ny[a],i&&"opacity-50 cursor-not-allowed hover:bg-transparent",f&&"bg-gray-100 dark:bg-gray-700",c),...b,children:[t&&r==="left"&&jsx("span",{className:"mr-2 shrink-0 w-5 h-5",children:t}),jsxs("span",{className:"flex-1 min-w-0",children:[jsx("span",{className:"block truncate",children:e}),n&&jsx("span",{className:"block text-xs text-gray-500 dark:text-gray-400 truncate",children:n})]}),t&&r==="right"&&jsx("span",{className:"ml-2 shrink-0 w-5 h-5",children:t}),o&&jsx("span",{className:"ml-auto pl-4 text-xs text-gray-400 dark:text-gray-500",children:o})]})}Fd.displayName="DropdownItem";function Od({className:e}){return jsx("hr",{className:g("my-1 h-px border-0 bg-gray-200 dark:bg-gray-700",e)})}Od.displayName="DropdownSeparator";function $d({children:e,className:t}){return jsx("div",{className:g("px-3 py-1.5 text-xs font-semibold text-gray-500 dark:text-gray-400",t),children:e})}$d.displayName="DropdownLabel";function Kd({checked:e,defaultChecked:t=false,onCheckedChange:r,children:n,icon:o,description:a,disabled:s=false,closeOnChange:l=false,className:i,index:c}){let{setIsOpen:d,focusedIndex:u,setFocusedIndex:b,registerItem:m,getNextItemIndex:p}=wr(),C=useRef(null),[v]=useState(()=>c??p()),[k,y]=useState(t),z=e!==void 0,h=z?e:k;useEffect(()=>(m(v,C.current),()=>{m(v,null);}),[v,m]);let R=u===v;return jsxs("button",{ref:C,role:"menuitemcheckbox",type:"button",tabIndex:R?0:-1,"aria-checked":h,disabled:s,"data-disabled":s||void 0,"data-focused":R||void 0,onClick:()=>{if(s)return;let L=!h;z||y(L),r?.(L),l&&d(false);},onMouseEnter:()=>{s||b(v);},className:g("relative flex w-full items-center px-3 py-2 text-left text-sm","outline-none transition-colors","text-gray-700 dark:text-gray-200","hover:bg-gray-100 dark:hover:bg-gray-700","focus:bg-gray-100 dark:focus:bg-gray-700",s&&"opacity-50 cursor-not-allowed hover:bg-transparent",R&&"bg-gray-100 dark:bg-gray-700",i),children:[jsx("span",{className:"mr-2 shrink-0 w-4 h-4",children:o||jsx("span",{className:g("flex items-center justify-center w-4 h-4 rounded border-2 transition-colors",h?"bg-blue-600 border-blue-600":"border-gray-300 dark:border-gray-600"),children:h&&jsx("svg",{className:"w-3 h-3 text-white",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M13.5 4.5L6 12L2.5 8.5",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"})})})}),jsxs("span",{className:"flex-1 min-w-0",children:[jsx("span",{className:"block truncate",children:n}),a&&jsx("span",{className:"block text-xs text-gray-500 dark:text-gray-400 truncate",children:a})]})]})}Kd.displayName="DropdownCheckboxItem";var qd=createContext(null);function my(){let e=useContext(qd);if(!e)throw new Error("DropdownRadioItem must be used within a DropdownRadioGroup");return e}function jd({value:e,defaultValue:t="",onValueChange:r,children:n,className:o}){let[a,s]=useState(t),l=e!==void 0,i=l?e:a,c=useCallback(u=>{l||s(u),r?.(u);},[l,r]),d=useMemo(()=>({value:i,onValueChange:c}),[i,c]);return jsx(qd.Provider,{value:d,children:jsx("div",{role:"group",className:o,children:n})})}jd.displayName="DropdownRadioGroup";function Zd({value:e,children:t,icon:r,description:n,disabled:o=false,closeOnChange:a=true,className:s,index:l}){let{value:i,onValueChange:c}=my(),{setIsOpen:d,focusedIndex:u,setFocusedIndex:b,registerItem:m,getNextItemIndex:p}=wr(),C=useRef(null),[v]=useState(()=>l??p()),k=i===e;useEffect(()=>(m(v,C.current),()=>{m(v,null);}),[v,m]);let y=u===v;return jsxs("button",{ref:C,role:"menuitemradio",type:"button",tabIndex:y?0:-1,"aria-checked":k,disabled:o,"data-disabled":o||void 0,"data-focused":y||void 0,onClick:()=>{o||(c(e),a&&d(false));},onMouseEnter:()=>{o||b(v);},className:g("relative flex w-full items-center px-3 py-2 text-left text-sm","outline-none transition-colors","text-gray-700 dark:text-gray-200","hover:bg-gray-100 dark:hover:bg-gray-700","focus:bg-gray-100 dark:focus:bg-gray-700",o&&"opacity-50 cursor-not-allowed hover:bg-transparent",y&&"bg-gray-100 dark:bg-gray-700",s),children:[jsx("span",{className:"mr-2 shrink-0 w-4 h-4",children:r||jsx("span",{className:g("flex items-center justify-center w-4 h-4 rounded-full border-2 transition-colors",k?"border-blue-600":"border-gray-300 dark:border-gray-600"),children:k&&jsx("span",{className:"w-2 h-2 rounded-full bg-blue-600"})})}),jsxs("span",{className:"flex-1 min-w-0",children:[jsx("span",{className:"block truncate",children:t}),n&&jsx("span",{className:"block text-xs text-gray-500 dark:text-gray-400 truncate",children:n})]}),k&&!r&&jsx("svg",{className:"ml-auto w-4 h-4 text-blue-600",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"})})]})}Zd.displayName="DropdownRadioItem";var tu=createContext(null);function ru(){let e=useContext(tu);if(!e)throw new Error("DropdownSubMenu components must be used within a DropdownSubMenu");return e}function nu({children:e}){let[t,r]=useState(false),n=useRef(null),o=useRef(null),a=useMemo(()=>({isOpen:t,setIsOpen:r,triggerRef:n,contentRef:o}),[t]);return jsx(tu.Provider,{value:a,children:jsx("div",{className:"relative",children:e})})}nu.displayName="DropdownSubMenu";var Jd=0;function ou({children:e,icon:t,disabled:r=false,className:n,index:o}){let{isOpen:a,setIsOpen:s,triggerRef:l}=ru(),{focusedIndex:i,setFocusedIndex:c,registerItem:d}=wr(),u=useRef(o??-1);useEffect(()=>(o===void 0&&(u.current=Jd++),d(u.current,l.current),()=>{d(u.current,null);}),[o,d,l]),useEffect(()=>()=>{Jd=0;},[]);let b=i===u.current;return jsxs("button",{ref:l,role:"menuitem",type:"button",tabIndex:b?0:-1,"aria-haspopup":"menu","aria-expanded":a,disabled:r,"data-disabled":r||void 0,"data-focused":b||void 0,onMouseEnter:()=>{r||(c(u.current),s(true));},onMouseLeave:()=>{setTimeout(()=>{s(false);},100);},onKeyDown:v=>{r||(v.key==="ArrowRight"||v.key==="Enter")&&(v.preventDefault(),s(true));},className:g("relative flex w-full items-center px-3 py-2 text-left text-sm","outline-none transition-colors","text-gray-700 dark:text-gray-200","hover:bg-gray-100 dark:hover:bg-gray-700","focus:bg-gray-100 dark:focus:bg-gray-700",r&&"opacity-50 cursor-not-allowed hover:bg-transparent",b&&"bg-gray-100 dark:bg-gray-700",n),children:[t&&jsx("span",{className:"mr-2 shrink-0 w-5 h-5",children:t}),jsx("span",{className:"flex-1",children:e}),jsx("svg",{className:"ml-auto w-4 h-4 text-gray-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})})]})}ou.displayName="DropdownSubMenuTrigger";function au({children:e,sideOffset:t=0,className:r}){let{isOpen:n,setIsOpen:o,triggerRef:a,contentRef:s}=ru(),[l,i]=useState(false),c=Fo({triggerRef:a,contentRef:s,isOpen:n,side:"right",align:"start",sideOffset:t,avoidCollisions:true});Bo(s,()=>o(false),n),useEffect(()=>{let p=s.current;if(p)return oo(p,()=>a.current)},[s,a]);let d=useCallback(()=>{o(true);},[o]),u=useCallback(()=>{o(false);},[o]),b=p=>{(p.key==="ArrowLeft"||p.key==="Escape")&&(p.preventDefault(),o(false),a.current?.focus());};useLayoutEffect(()=>{let p=0;if(!n){i(false);return}let C=()=>{let v=a.current?.getBoundingClientRect(),k=s.current?.getBoundingClientRect();if(c.isReady&&!!v&&!!k&&v.width>0&&v.height>0&&k.width>0&&k.height>0){i(true);return}p=requestAnimationFrame(C);};return i(false),p=requestAnimationFrame(C),()=>{p&&cancelAnimationFrame(p);}},[n,c.isReady,a,s]);let m=jsx("div",{ref:s,role:"menu","aria-orientation":"vertical","aria-hidden":!n,tabIndex:-1,onMouseEnter:d,onMouseLeave:u,onKeyDown:b,style:{position:"fixed",top:c.top,left:c.left,visibility:n&&l?"visible":"hidden",opacity:n&&l?1:0,pointerEvents:n&&l?"auto":"none"},className:g("z-50 min-w-40 overflow-hidden rounded-lg","border border-gray-200 bg-white shadow-lg","dark:border-gray-700 dark:bg-gray-800",n&&l&&"animate-in fade-in-0 zoom-in-95 duration-150",r),children:jsx("div",{className:"py-1",children:e})});return typeof document<"u"?createPortal(m,document.body):m}au.displayName="DropdownSubMenuContent";var xy=(e="md")=>({sm:"text-xs p-1.5",md:"text-sm p-2.5",lg:"text-base p-3.5"})[e],$o=({size:e="md",error:t,disabled:r,readOnly:n,icon:o,iconPosition:a})=>g("bg-gray-50 rounded-lg block w-full","border focus:outline-none focus:ring-0","dark:bg-gray-700 dark:placeholder-gray-400",xy(e),o&&a==="left"?"pl-9":"",o&&a==="right"?"pr-9":"",r?"opacity-50 cursor-not-allowed":"",n?"bg-gray-100 dark:bg-gray-600 cursor-default":"",t?"border-red-500 dark:border-red-500":"border-gray-300 dark:border-gray-600"),su=(e,t)=>g("text-sm font-medium",e?"min-w-[120px]":"block mb-2",!t&&"text-gray-900 dark:text-white"),iu=e=>g("mt-1 text-xs",e?"text-red-500 dark:text-red-400":"text-gray-500 dark:text-gray-400"),io=e=>g("absolute inset-y-0 flex items-center pointer-events-none",e==="left"?"left-2.5":"right-2.5");var _o=({label:e,hideLabel:t,labelColor:r,error:n,helperText:o,inline:a,children:s,htmlFor:l})=>jsxs("div",{className:a?"flex items-center gap-4":"flex flex-col",children:[e&&!t&&jsx("label",{htmlFor:l,className:su(a||false,r),style:r?{color:r}:void 0,children:e}),jsx("div",{className:a?"flex-1":"w-full",children:s}),o&&jsx("p",{className:g(iu(n),a&&"ml-34"),children:o})]});var an=forwardRef(({label:e,inline:t=false,size:r="md",labelColor:n,borderColor:o,textColor:a,disabled:s=false,readOnly:l=false,error:i=false,helperText:c,hideLabel:d=false,icon:u,iconPosition:b="left",multiline:m=false,rows:p=3,focused:C=false,className:v,...k},y)=>{let z=useRef(null),h=I=>{z.current=I,typeof y=="function"?y(I):y&&(y.current=I);};useEffect(()=>{C&&z.current?.focus();},[C]);let R=useId(),f=g($o({size:r,error:i,disabled:s,readOnly:l,icon:u,iconPosition:b}),m&&"resize-vertical",v),N={...o&&{borderColor:o},...a&&{color:a}},L=o||a?N:void 0;return jsx(_o,{label:e,hideLabel:d,labelColor:n,error:i,helperText:c,inline:t,htmlFor:R,children:jsxs("div",{className:"relative w-full",children:[u&&jsx("span",{className:io(b),children:u}),m?jsx("textarea",{ref:h,id:R,disabled:s,readOnly:l,rows:p,tabIndex:l||s?-1:void 0,className:f,style:L,...k}):jsx("input",{ref:h,id:R,disabled:s,readOnly:l,tabIndex:l||s?-1:void 0,className:f,style:L,...k})]})})});an.displayName="Input";var Dy=e=>jsxs("div",{className:"flex items-center gap-2 px-3 py-2 hover:bg-gray-100 dark:hover:bg-gray-700 cursor-pointer",children:[e.avatar&&jsx("img",{src:e.avatar,alt:e.label,className:"w-6 h-6 rounded-full"}),jsx("span",{className:"text-sm text-gray-900 dark:text-white",children:e.label})]}),al=forwardRef(({label:e,inline:t=false,size:r="md",labelColor:n,borderColor:o,textColor:a,disabled:s=false,readOnly:l=false,error:i=false,helperText:c,hideLabel:d=false,icon:u,iconPosition:b="left",mentionTrigger:m="@",suggestions:p=[],onMentionSearch:C,onMentionSelect:v,onMentionRemove:k,renderSuggestion:y,value:z,onChange:h,placeholder:R,loading:f=false,maxSuggestions:N=10,chipVariant:L="soft",chipColor:E="primary",chipSize:I="sm"},w)=>{let W=useId(),M=useRef(null),[T,P]=useState(false),[x,D]=useState(0),[S,B]=useState(""),H=g($o({size:r,error:i,disabled:s,readOnly:l,icon:u,iconPosition:b}),"min-h-[42px]","whitespace-pre-wrap","break-words"),$={...o&&{borderColor:o},...a&&{color:a}},_=o||a?$:void 0,F=useCallback(()=>{if(!M.current)return {text:"",mentions:[]};let O="",K=[],se=0,ae=U=>{if(U.nodeType===Node.TEXT_NODE)O+=U.textContent||"",se+=(U.textContent||"").length;else if(U.nodeType===Node.ELEMENT_NODE){let J=U;if(J.hasAttribute("data-mention-id")){let te=J.getAttribute("data-mention-id"),ie=J.getAttribute("data-mention-label")||"",Q=J.getAttribute("data-mention-avatar")||void 0,ge=`@${ie}`,Re=se;K.push({trigger:m,suggestion:{id:te||"",label:ie,avatar:Q},startIndex:Re,endIndex:Re+ge.length}),O+=ge,se+=ge.length;}else J.childNodes.forEach(ae);}};return M.current.childNodes.forEach(ae),{text:O,mentions:K}},[m]),A=useCallback((O,K)=>{let se=document.createElement("span");return se.contentEditable="false",se.setAttribute("data-mention-id",O.id),se.setAttribute("data-mention-label",O.label),O.avatar&&se.setAttribute("data-mention-avatar",O.avatar),se.className="inline-block align-middle mx-0.5",se.style.userSelect="none",createRoot(se).render(jsx(xs,{label:O.label,variant:L,color:E,size:I,closable:!s&&!l,onClose:K,disabled:s,avatar:O.avatar?jsx("img",{src:O.avatar,alt:O.label,className:"w-full h-full object-cover"}):void 0})),se},[L,E,I,s,l]),V=useCallback(O=>{if(!M.current)return;let K=M.current.querySelector(`[data-mention-id="${O}"]`);if(K){K.remove();let se=F();h?.(se);let ae=z?.mentions.find(U=>U.suggestion.id===O)?.suggestion;ae&&k?.(ae);}},[F,h,k,z?.mentions]),Y=useCallback(()=>{if(!M.current)return;let O=window.getSelection();if(!O||O.rangeCount===0)return;let K=O.getRangeAt(0),se="";K.startContainer.nodeType===Node.TEXT_NODE&&(se=K.startContainer.textContent?.substring(0,K.startOffset)||"");let ae=se.match(new RegExp(`${m}(\\w*)$`));if(ae){let J=ae[1];B(J),P(true),D(0),C?.(J);}else P(false),B("");let U=F();h?.(U);},[m,C,h,F]),X=useCallback(O=>{if(!M.current)return;let K=window.getSelection();if(!K||K.rangeCount===0)return;let se=K.getRangeAt(0);if(se.startContainer.nodeType===Node.TEXT_NODE){let U=se.startContainer,J=U.textContent||"",te=se.startOffset,Q=J.substring(0,te).lastIndexOf(m);if(Q!==-1){let ge=J.substring(0,Q),Re=J.substring(te),Qe=A(O,()=>{V(O.id);});if(ge?(U.textContent=ge,U.parentNode?.insertBefore(Qe,U.nextSibling)):(U.parentNode?.insertBefore(Qe,U),U.textContent="",U.textContent||U.remove()),Re){let me=document.createTextNode(Re);Qe.parentNode?.insertBefore(me,Qe.nextSibling);}let at=document.createTextNode(" ");Qe.parentNode?.insertBefore(at,Qe.nextSibling);let et=document.createRange();et.setStartAfter(at),et.collapse(true),K.removeAllRanges(),K.addRange(et);}}P(false),B("");let ae=F();h?.(ae),v?.(O),M.current.focus();},[m,A,V,F,h,v]),G=useCallback(O=>{let K=p.slice(0,N);if(T&&K.length>0)switch(O.key){case "ArrowDown":O.preventDefault(),D(se=>se<K.length-1?se+1:0);return;case "ArrowUp":O.preventDefault(),D(se=>se>0?se-1:K.length-1);return;case "Enter":case "Tab":O.preventDefault(),K[x]&&X(K[x]);return;case "Escape":O.preventDefault(),P(false);return}if(O.key==="Backspace"){let se=window.getSelection();if(!se||se.rangeCount===0)return;let ae=se.getRangeAt(0);if(ae.collapsed&&ae.startOffset===0){let U=ae.startContainer.previousSibling;if(U&&U.nodeType===Node.ELEMENT_NODE){let J=U;if(J.hasAttribute("data-mention-id")){O.preventDefault();let te=J.getAttribute("data-mention-id");te&&V(te);return}}}if(ae.collapsed&&ae.startContainer.nodeType===Node.TEXT_NODE){let U=ae.startContainer;if(ae.startOffset===0){let J=U.previousSibling;if(J&&J.nodeType===Node.ELEMENT_NODE){let te=J;if(te.hasAttribute("data-mention-id")){O.preventDefault();let ie=te.getAttribute("data-mention-id");ie&&V(ie);return}}}}}},[T,p,x,N,X,V]);return useEffect(()=>{M.current&&(!(M.current.textContent||M.current.querySelector("[data-mention-id]"))&&R?M.current.setAttribute("data-placeholder",R):M.current.removeAttribute("data-placeholder"));},[R,z]),useEffect(()=>{M.current&&z?.text===""&&z?.mentions.length===0&&M.current.innerHTML.trim()&&(M.current.innerHTML="");},[z?.text,z?.mentions.length]),jsx(_o,{label:e,hideLabel:d,labelColor:n,error:i,helperText:c,inline:t,htmlFor:W,children:jsxs("div",{className:"relative w-full",children:[u&&jsx("span",{className:io(b),children:u}),jsx("div",{ref:O=>{typeof w=="function"?w(O):w&&(w.current=O),M.current=O;},id:W,contentEditable:!s&&!l,suppressContentEditableWarning:true,onInput:Y,onKeyDown:G,className:g(H,"empty:before:content-[attr(data-placeholder)] empty:before:text-gray-400 empty:before:dark:text-gray-500"),style:_,role:"textbox","aria-label":e,"aria-multiline":"true",tabIndex:l||s?-1:0}),T&&p.length>0&&jsx("div",{className:"absolute z-10 mt-1 w-full max-h-60 overflow-auto rounded-lg border border-gray-300 bg-white dark:bg-gray-700 dark:border-gray-600 shadow-lg",children:f?jsx("div",{className:"px-3 py-2 text-sm text-gray-500 dark:text-gray-400",children:"Loading..."}):p.slice(0,N).map((O,K)=>jsx("div",{onClick:()=>X(O),className:g(K===x&&"bg-gray-100 dark:bg-gray-600"),children:y?y(O):Dy(O)},O.id))})]})})});al.displayName="MentionInput";var sl=forwardRef(({label:e,inline:t=false,size:r="md",labelColor:n,borderColor:o,textColor:a,disabled:s=false,readOnly:l=false,error:i=false,helperText:c,hideLabel:d=false,icon:u,iconPosition:b="left",className:m,value:p,onChange:C,format:v="number",currency:k="USD",locale:y="en-US",decimals:z,min:h,max:R,step:f=1,prefix:N,suffix:L,thousandSeparator:E=true,allowNegative:I=true,onBlur:w,onFocus:W,...M},T)=>{let P=useId(),[x,D]=useState(null),S=useMemo(()=>{let j=v==="currency"?{style:"currency",currency:k,minimumFractionDigits:z??2,maximumFractionDigits:z??2}:v==="percentage"?{minimumFractionDigits:z??0,maximumFractionDigits:z??2}:{minimumFractionDigits:z??0,maximumFractionDigits:z??(v==="decimal"?2:0),useGrouping:E};try{return new Intl.NumberFormat(y,j)}catch{return null}},[v,k,y,z,E]),B=j=>{if(j==null)return "";if(!S)return String(j);let O=S.format(j);return v==="percentage"?(O=N?`${N}${O}`:O,O=L||!O.includes("%")?`${O}%`:O,O):(N&&(O=`${N}${O}`),L&&(O=`${O}${L}`),O)},H=j=>{if(!j||j.trim()==="")return null;let O=j;if(N&&(O=O.replace(N,"")),L&&(O=O.replace(L,"")),O=O.replace(/[^\d.,-]/g,""),y.includes("fr")||y.includes("de")?O=O.replace(/\s/g,"").replace(",","."):O=O.replace(",",""),!O||O==="-"||O===".")return null;let K=parseFloat(O);return isNaN(K)?null:!I&&K<0?Math.abs(K):h!==void 0&&K<h?h:R!==void 0&&K>R?R:K},$=x??B(p??null),_=j=>{let O=y.includes("fr")||y.includes("de")?",":".";return new RegExp(`^-?[0-9${O===","?",":"\\."}]*$`).test(j)},F=j=>{let O=j.target.value;if(O===""||_(O)){D(O);let K=H(O);C&&C(K);}},A=j=>{let O=y.includes("fr")||y.includes("de")?",":".",K=["Backspace","Delete","Tab","Escape","Enter","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End"],se=/^[0-9]$/.test(j.key),ae=j.key===O,U=j.key==="-"&&I&&$.indexOf("-")===-1,J=j.ctrlKey||j.metaKey;!se&&!ae&&!U&&!K.includes(j.key)&&!J&&j.preventDefault();},V=j=>{let O=p!=null?String(p):"";D(O),W&&W(j);},Y=j=>{let O=H(x??"");C&&O!==p&&C(O),D(null),w&&w(j);},X=g($o({size:r,error:i,disabled:s,readOnly:l,icon:u,iconPosition:b}),o&&`border-[${o}]`,a&&`text-[${a}]`,m),G=jsxs("div",{className:"relative",children:[u&&b==="left"&&jsx("div",{className:io(b),children:u}),jsx("input",{ref:T,id:P,type:"text",inputMode:"decimal",className:X,style:{borderColor:o,color:a},disabled:s,readOnly:l,value:$,onChange:F,onKeyDown:A,onFocus:V,onBlur:Y,...M}),u&&b==="right"&&jsx("div",{className:io(b),children:u})]});return jsx(_o,{label:e,hideLabel:d,labelColor:n,error:i,helperText:c,inline:t,htmlFor:P,children:G})});sl.displayName="NumberInput";function Wy({logo:e,logoHref:t="/",onLogoClick:r,navItems:n=[],actions:o,rightContent:a,variant:s="default",size:l="md",backgroundColor:i,textColor:c,hoverColor:d,navItemTextColor:u,navItemHoverColor:b,navItemBgHover:m,navItemActiveColor:p,sticky:C=false,fixed:v=false,showSearch:k=false,onSearch:y,searchPlaceholder:z="Search...",className:h,containerClassName:R}){let[f,N]=useState(false),[L,E]=useState(null),[I,w]=useState(""),W=()=>{N(!f);},M=F=>{E(L===F?null:F);},T=F=>{F.preventDefault(),y&&y(I);},P=g(C&&"sticky top-0 z-50",v&&"fixed top-0 left-0 right-0 z-50"),x=g(s==="default"&&!i&&"bg-neutral text-white",s==="transparent"&&!i&&"bg-transparent",s==="bordered"&&!i&&"bg-white border-b border-gray-200 text-gray-900 dark:bg-gray-900 dark:border-gray-800 dark:text-gray-100",s==="shadow"&&!i&&"bg-white shadow-md text-gray-900 dark:bg-gray-900 dark:text-gray-100"),D=g(l==="sm"&&"py-2",l==="md"&&"py-4",l==="lg"&&"py-6"),S=i||"",B=c||"",H=d||"",$=g(P,x,D,S,B,h),_=(F,A,V=false)=>{let Y=F.children&&F.children.length>0,X=L===A,G=g("px-4 py-2 transition-colors flex items-center gap-2",V?"block w-full text-left":"inline-flex",F.active&&"font-semibold border-b-2",F.active&&(p||"border-current"),u||(s==="default"||s==="transparent"?"text-gray-300":"text-gray-600 dark:text-gray-300"),b||H||(s==="default"||s==="transparent"?"hover:text-white":"hover:text-blue-600 dark:hover:text-blue-400"),m||"");if(Y)return jsxs("div",{className:V?"w-full":"relative",children:[jsxs("button",{type:"button",onClick:()=>M(A),className:G,children:[F.icon&&jsx("span",{className:"w-5 h-5",children:F.icon}),jsx("span",{children:F.label}),F.badge&&jsx("span",{className:"bg-red-500 text-white text-xs px-2 py-0.5 rounded-full",children:F.badge}),jsx("svg",{className:g("w-4 h-4 transition-transform",X&&"rotate-180"),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]}),X&&jsx("div",{className:g("bg-white shadow-lg rounded-lg overflow-hidden dark:bg-gray-800 dark:shadow-black/40",V?"mt-2 mb-2":"absolute top-full left-0 mt-1 min-w-[200px]"),children:F.children?.map(O=>jsx("a",{href:O.href,onClick:O.onClick,target:O.external?"_blank":void 0,rel:O.external?"noopener noreferrer":void 0,className:"block px-4 py-2 text-gray-700 hover:bg-gray-100 transition-colors dark:text-gray-200 dark:hover:bg-gray-700",children:jsxs("div",{className:"flex items-center gap-2",children:[O.icon&&jsx("span",{className:"w-5 h-5",children:O.icon}),jsx("span",{children:O.label}),O.badge&&jsx("span",{className:"bg-red-500 text-white text-xs px-2 py-0.5 rounded-full ml-auto",children:O.badge}),O.external&&jsx("svg",{className:"w-4 h-4 ml-auto",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})})]})},O.href??O.label))})]},F.href??F.label);let j=jsxs(Fragment,{children:[F.icon&&jsx("span",{className:"w-5 h-5",children:F.icon}),jsx("span",{children:F.label}),F.badge&&jsx("span",{className:"bg-red-500 text-white text-xs px-2 py-0.5 rounded-full",children:F.badge}),F.external&&jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})})]});return F.onClick?jsx("button",{type:"button",onClick:F.onClick,className:G,children:j},F.href??F.label):jsx("a",{href:F.href,target:F.external?"_blank":void 0,rel:F.external?"noopener noreferrer":void 0,className:G,children:j},F.href??F.label)};return jsxs("header",{className:$,children:[jsxs("nav",{className:g("container mx-auto flex items-center justify-between px-4",R),children:[e&&jsx("div",{className:"flex items-center",children:t?jsx("a",{href:t,onClick:r,className:"flex items-center hover:opacity-80 transition-opacity",children:e}):jsx("div",{className:"flex items-center",children:e})}),k&&jsx("form",{onSubmit:T,className:"hidden md:flex flex-1 max-w-md mx-8",children:jsx("input",{type:"search","aria-label":z,value:I,onChange:F=>w(F.target.value),placeholder:z,className:"w-full px-4 py-2 rounded-lg border border-gray-300 focus:outline-none focus:ring-2 focus:ring-blue-500 text-gray-900 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-100 dark:placeholder-gray-500"})}),jsx("div",{className:"hidden md:flex items-center gap-2",children:n.map((F,A)=>_(F,A,false))}),(o||a)&&jsxs("div",{className:"hidden md:flex items-center gap-2 ml-4",children:[o,a]}),n.length>0&&jsx("div",{className:"md:hidden",children:jsx("button",{type:"button",className:g("inline-flex rounded-lg border-2 p-2 w-10 h-10 justify-center transition-colors focus:outline-none",s==="default"||s==="transparent"?"text-gray-300 hover:text-white":"text-gray-600 hover:text-gray-900 dark:text-gray-300 dark:hover:text-gray-100"),onClick:W,"aria-label":"Toggle menu","aria-expanded":f,children:jsx("svg",{className:"w-5 h-5","aria-hidden":"true",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 17 14",children:jsx("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M1 1h15M1 7h15M1 13h15"})})})})]}),f&&n.length>0&&jsx("div",{className:g("md:hidden border-t animate-in slide-in-from-top duration-300",s==="default"||s==="transparent"?"border-gray-700":"border-gray-200 dark:border-gray-800"),children:jsxs("div",{className:"flex flex-col py-2 px-4",children:[k&&jsx("form",{onSubmit:T,className:"mb-4",children:jsx("input",{type:"search","aria-label":z,value:I,onChange:F=>w(F.target.value),placeholder:z,className:"w-full px-4 py-2 rounded-lg border border-gray-300 focus:outline-none focus:ring-2 focus:ring-blue-500 text-gray-900 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-100 dark:placeholder-gray-500"})}),n.map((F,A)=>_(F,A,true)),(o||a)&&jsxs("div",{className:"flex flex-col gap-2 mt-4 pt-4 border-t border-gray-700",children:[o,a]})]})})]})}var Oy=jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[jsx("path",{d:"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"}),jsx("path",{d:"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"})]}),$y=jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[jsx("path",{d:"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z"}),jsx("polyline",{points:"17 21 17 13 7 13 7 21"}),jsx("polyline",{points:"7 3 7 8 15 8"})]}),_y=jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]}),Xy=jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[jsx("polyline",{points:"1 4 1 10 7 10"}),jsx("path",{d:"M3.51 15a9 9 0 1 0 2.13-9.36L1 10"})]}),Gy=jsxs("svg",{className:"animate-spin h-4 w-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10"}),jsx("path",{className:"opacity-75",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z",fill:"currentColor"})]}),Ky={xs:"w-4 h-4 text-[10px]",sm:"w-5 h-5 text-xs",md:"w-6 h-6 text-sm",lg:"w-7 h-7 text-base"},Uy={top:"bottom-full left-1/2 -translate-x-1/2 mb-2",bottom:"top-full left-1/2 -translate-x-1/2 mt-2",left:"right-full top-1/2 -translate-y-1/2 mr-2",right:"left-full top-1/2 -translate-y-1/2 ml-2"},Yy={sm:"w-56",md:"w-72",lg:"w-96",xl:"w-[32rem]"},qy=[Fy],jy={h1:({...e})=>jsx("h1",{className:"text-xl font-bold mb-2 text-gray-900 dark:text-gray-100",...e}),h2:({...e})=>jsx("h2",{className:"text-lg font-semibold mt-4 mb-2 text-gray-900 dark:text-gray-100",...e}),h3:({...e})=>jsx("h3",{className:"text-base font-semibold mt-3 mb-1 text-gray-900 dark:text-gray-100",...e}),p:({...e})=>jsx("p",{className:"my-1 text-gray-700 dark:text-gray-300",...e}),ul:({...e})=>jsx("ul",{className:"list-disc list-inside space-y-1 my-2 text-gray-700 dark:text-gray-300",...e}),ol:({...e})=>jsx("ol",{className:"list-decimal list-inside space-y-1 my-2 text-gray-700 dark:text-gray-300",...e}),code:({className:e,children:t,...r})=>!e?.includes("language-")?jsx("code",{className:"bg-gray-100 dark:bg-gray-800 px-1.5 py-0.5 rounded text-sm font-mono text-gray-900 dark:text-gray-100",...r,children:t}):jsx("code",{className:"block bg-gray-100 dark:bg-gray-800 rounded-lg p-3 my-2 overflow-x-auto text-sm font-mono text-gray-900 dark:text-gray-100",...r,children:t}),pre:({...e})=>jsx("pre",{className:"my-2",...e}),a:({...e})=>jsx("a",{className:"text-blue-600 dark:text-blue-400 hover:underline",...e}),strong:({...e})=>jsx("strong",{className:"font-semibold text-gray-900 dark:text-gray-100",...e}),em:({...e})=>jsx("em",{className:"italic",...e}),blockquote:({...e})=>jsx("blockquote",{className:"border-l-4 border-gray-300 dark:border-gray-600 pl-4 my-2 italic text-gray-600 dark:text-gray-400",...e})};function du({content:e,markdown:t=false,position:r="bottom",size:n="sm",className:o="",visible:a=true,editable:s=false,onSave:l,onReset:i,width:c="md",title:d,markdownEditor:u,markdownEditorUnavailableLabel:b}){let m=Ge(),[p,C]=useState(false),[v,k]=useState(false),[y,z]=useState(""),[h,R]=useState(false),[f,N]=useState(null),L=useRef(null),E=useRef(null),I=useRef(null),w=useRef(null);useEffect(()=>{if(!p)return;let D=B=>{L.current&&!L.current.contains(B.target)&&E.current&&!E.current.contains(B.target)&&(v||C(false));},S=B=>{B.key==="Escape"&&(v?(k(false),z("")):C(false));};return document.addEventListener("mousedown",D),document.addEventListener("keydown",S),()=>{document.removeEventListener("mousedown",D),document.removeEventListener("keydown",S);}},[p,v]),useEffect(()=>{v&&I.current&&I.current.focus();},[v]),useEffect(()=>()=>{w.current&&clearTimeout(w.current);},[]);let W=useCallback(()=>{z(typeof e=="string"?e:""),k(true),N(null);},[e]),M=useCallback(()=>{k(false),z(""),N(null);},[]),T=useCallback(async()=>{if(!l){N({type:"error",text:"Aucune fonction de sauvegarde fournie"});return}R(true);try{await l(y)?(N({type:"success",text:"Sauvegard\xE9 avec succ\xE8s !"}),k(!1),w.current&&clearTimeout(w.current),w.current=setTimeout(()=>N(null),2e3)):N({type:"error",text:"Erreur lors de la sauvegarde"});}catch{N({type:"error",text:"Erreur lors de la sauvegarde"});}finally{R(false);}},[y,l]),P=useCallback(async()=>{if(i&&confirm("\xCAtes-vous s\xFBr de vouloir r\xE9initialiser ce contenu ?")){R(true);try{await i()?(N({type:"success",text:"R\xE9initialis\xE9 avec succ\xE8s !"}),k(!1),w.current&&clearTimeout(w.current),w.current=setTimeout(()=>N(null),2e3)):N({type:"error",text:"Erreur lors de la r\xE9initialisation"});}catch{N({type:"error",text:"Erreur lors de la r\xE9initialisation"});}finally{R(false);}}},[i]),x=e;return a?jsxs("div",{className:"relative inline-flex items-center",children:[jsx("button",{type:"button",ref:L,onClick:()=>C(!p),className:`
|
|
3
|
-
${Ky[n]}
|
|
1
|
+
import*as Cl from'react';import Cl__default,{createContext,forwardRef,memo,useId,useState,useRef,useEffect,useCallback,useImperativeHandle,useMemo,useContext,useLayoutEffect,cloneElement,isValidElement}from'react';import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {createPortal}from'react-dom';import {createRoot}from'react-dom/client';import wv from'dompurify';import Nv from'react-markdown';import Sv from'remark-gfm';function p(...e){return e.filter(Boolean).join(" ")}var td=createContext(null),rd=createContext(null);function Ki(){let e=useContext(td);if(!e)throw new Error("Accordion sub-components must be used within <Accordion>");return e}function nd(){let e=useContext(rd);if(!e)throw new Error("AccordionTrigger/AccordionContent must be used within <AccordionItem>");return e}var od={sm:{trigger:"px-3 py-2",content:"px-3 pb-2",text:"text-sm",icon:"w-3.5 h-3.5"},md:{trigger:"px-4 py-3",content:"px-4 pb-3",text:"text-base",icon:"w-4 h-4"},lg:{trigger:"px-5 py-4",content:"px-5 pb-4",text:"text-lg",icon:"w-5 h-5"}},hg=({className:e})=>jsx("svg",{className:e,viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z",clipRule:"evenodd"})}),bg={default:"border border-gray-200 dark:border-gray-700 rounded-lg divide-y divide-gray-200 dark:divide-gray-700",bordered:"border-2 border-gray-300 dark:border-gray-600 rounded-lg divide-y divide-gray-300 dark:divide-gray-600",separated:"space-y-2",ghost:""},yg={default:"",bordered:"",separated:"border border-gray-200 dark:border-gray-700 rounded-lg overflow-hidden",ghost:"border-b border-gray-200 dark:border-gray-700 last:border-b-0"};function xg({type:e="single",value:t,defaultValue:r,onValueChange:n,collapsible:o=false,variant:a="default",size:s="md",disabled:l=false,iconPosition:i="right",icon:c,hideIcon:d=false,className:u,children:f}){let[m,g]=useState(()=>r?Array.isArray(r)?r:[r]:[]),y=t!==void 0,b=y?Array.isArray(t)?t:[t]:m,h=useCallback(L=>{let C;e==="single"?b.includes(L)?C=o?[]:[L]:C=[L]:C=b.includes(L)?b.filter(S=>S!==L):[...b,L],y||g(C),n?.(e==="single"?C[0]??"":C);},[e,b,o,y,n]),x=useMemo(()=>({openItems:b,toggle:h,variant:a,size:s,disabled:l,iconPosition:i,icon:c??null,hideIcon:d}),[b,h,a,s,l,i,c,d]);return jsx(td.Provider,{value:x,children:jsx("div",{className:p(bg[a],u),"data-testid":"accordion",children:f})})}function vg({value:e,disabled:t,className:r,children:n}){let o=Ki(),a=o.openItems.includes(e),s=t??o.disabled,l=useId(),i=`accordion-trigger-${l}`,c=`accordion-content-${l}`,d=useMemo(()=>({value:e,isOpen:a,disabled:s,triggerId:i,contentId:c}),[e,a,s,i,c]);return jsx(rd.Provider,{value:d,children:jsx("div",{className:p(yg[o.variant],r),"data-state":a?"open":"closed","data-testid":"accordion-item",children:n})})}function Cg({className:e,icon:t,children:r}){let n=Ki(),o=nd(),a=od[n.size],s=()=>{o.disabled||n.toggle(o.value);},l=d=>{(d.key==="Enter"||d.key===" ")&&(d.preventDefault(),s());},i=t??n.icon??jsx(hg,{className:a.icon}),c=!n.hideIcon&&jsx("span",{className:p("shrink-0 text-gray-500 dark:text-gray-400 transition-transform duration-200",o.isOpen&&"rotate-180"),"data-testid":"accordion-icon",children:i});return jsxs("button",{type:"button",id:o.triggerId,"aria-expanded":o.isOpen,"aria-controls":o.contentId,disabled:o.disabled,onClick:s,onKeyDown:l,className:p("flex items-center w-full text-left font-medium transition-colors cursor-pointer",a.trigger,a.text,"text-gray-900 dark:text-gray-100",!o.disabled&&"hover:bg-gray-50 dark:hover:bg-gray-800/50",o.disabled&&"opacity-50 cursor-not-allowed",e),"data-testid":"accordion-trigger",children:[n.iconPosition==="left"&&c,jsx("span",{className:"flex-1",children:r}),n.iconPosition==="right"&&c]})}function kg({className:e,children:t}){let r=Ki(),n=nd(),o=od[r.size],a=useRef(null),[s,l]=useState(n.isOpen?void 0:0),i=useRef(true);return useEffect(()=>{if(i.current){i.current=false,l(n.isOpen?void 0:0);return}if(n.isOpen){let c=a.current;if(c){l(c.scrollHeight);let d=setTimeout(()=>l(void 0),200);return ()=>clearTimeout(d)}}else {let c=a.current;c&&(l(c.scrollHeight),requestAnimationFrame(()=>l(0)));}},[n.isOpen]),jsx("div",{id:n.contentId,role:"region","aria-labelledby":n.triggerId,className:"overflow-hidden transition-[height] duration-200 ease-in-out",style:{height:s===void 0?"auto":s},"data-testid":"accordion-content","data-state":n.isOpen?"open":"closed",children:jsx("div",{ref:a,className:p(o.content,"text-gray-600 dark:text-gray-400",o.text==="text-lg"?"text-base":"text-sm",e),children:t})})}function Pg(...e){return e.filter(Boolean).join(" ")}var Tg="@synertech/ui/AdvanceDetachable",Dg=300,Eg="width=800,height=600,menubar=no,toolbar=no,location=no,status=no,scrollbars=yes,resizable=yes",Lg=0;function Mg(){return `${Date.now()}-${++Lg}-${Math.random().toString(36).slice(2,8)}`}function ad(e){try{return JSON.stringify(e)}catch{return String(e)}}function sd(e){try{return JSON.parse(e)}catch{return e}}function Ig(e,t){e.querySelectorAll("style").forEach(r=>{let n=t.createElement("style");n.textContent=r.textContent,t.head.appendChild(n);}),e.querySelectorAll('link[rel="stylesheet"]').forEach(r=>{let n=r,o=t.createElement("link");o.rel="stylesheet",o.href=n.href,n.crossOrigin&&(o.crossOrigin=n.crossOrigin),t.head.appendChild(o);}),e.documentElement.className&&(t.documentElement.className=e.documentElement.className),e.body.className&&(t.body.className=e.body.className);}function Ag(e,t){let r=new MutationObserver(n=>{for(let o of n)for(let a of Array.from(o.addedNodes))if(a instanceof HTMLStyleElement){let s=t.createElement("style");s.textContent=a.textContent,t.head.appendChild(s);}else if(a instanceof HTMLLinkElement&&a.rel==="stylesheet"){let s=t.createElement("link");s.rel="stylesheet",s.href=a.href,t.head.appendChild(s);}});return r.observe(e.head,{childList:true}),r}function zg(){return typeof BroadcastChannel<"u"}function Bg({mode:e,id:t,title:r="",children:n,value:o,defaultValue:a,onValueChange:s,isDetached:l,defaultDetached:i=false,onDetachedChange:c,features:d,target:u,autoFocus:f=true,className:m,detachedBodyClassName:g,disabled:y=false,readOnly:b=false,closeOnMainWindowUnload:h=true,name:x,serialize:L,deserialize:C},S){let v=l!==void 0,[R,N]=useState(i),M=v?l:R,P=o!==void 0,[E,W]=useState(a),T=P?o:E,[O,H]=useState(null),k=useRef(null),z=useRef(null),A=useRef(null),I=useRef(null),X=useRef(false),$=useRef(null),K=useRef(null),D=useRef(null),[B]=useState(()=>`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`),w=useRef({title:r,features:d,target:u,autoFocus:f,detachedBodyClassName:g,closeOnMainWindowUnload:h,disabled:y,readOnly:b,mode:e,id:t});w.current={title:r,features:d,target:u,autoFocus:f,detachedBodyClassName:g,closeOnMainWindowUnload:h,disabled:y,readOnly:b,mode:e,id:t};let G=useRef(L??ad);G.current=L??ad;let q=useRef(C??sd);q.current=C??sd;let j=useRef(s);j.current=s;let U=useRef(c);U.current=c;let F=useRef(M);F.current=M;let _=`${Tg}/${t}`,J=useCallback(()=>{A.current&&(clearInterval(A.current),A.current=null),I.current&&(I.current.disconnect(),I.current=null),H(null);},[]),ne=useCallback(()=>{z.current&&(z.current.close(),z.current=null),$.current&&typeof window<"u"&&(window.removeEventListener("message",$.current),$.current=null);},[]),Y=useCallback(be=>{if(!(!be||be.channel!==_)&&be.instanceId!==B&&!w.current.readOnly&&be.type==="value-sync"&&be.payload!==void 0){K.current=be.payload;let Me=q.current(be.payload);P||W(Me),j.current?.(Me);}},[_,B,P]),ee=useCallback(()=>{if(ne(),!(typeof window>"u"))if(zg()){let be=new BroadcastChannel(_),Me=Re=>Y(Re.data);be.addEventListener("message",Me),z.current=be;}else {let be=Me=>{Me.data?.channel===_&&Y(Me.data);};window.addEventListener("message",be),$.current=be;}},[_,ne,Y]),Z=useCallback(be=>{if(w.current.readOnly)return;let Me=G.current(be);if(Me===D.current)return;if(Me===K.current){K.current=null;return}D.current=Me;let Re={channel:_,instanceId:B,messageId:Mg(),origin:"main",timestamp:Date.now(),type:"value-sync",payload:Me};z.current?z.current.postMessage(Re):k.current&&!k.current.closed&&k.current.postMessage(Re,"*");},[_,B]),ie=useCallback(()=>{if(typeof window>"u"||w.current.disabled||X.current||k.current&&!k.current.closed)return;X.current=true;let be=w.current,Me=window.open("",be.target||"",be.features||Eg);if(!Me){X.current=false;return}k.current=Me,Me.document.title=be.title||document.title,be.detachedBodyClassName&&(Me.document.body.className=be.detachedBodyClassName);let Re=Me.document.createElement("div");Me.document.body.appendChild(Re),H(Re),Ig(document,Me.document),I.current=Ag(document,Me.document),A.current=setInterval(()=>{Me.closed&&(J(),k.current=null,v||N(false),U.current?.(false));},Dg),be.autoFocus&&Me.focus(),X.current=false;},[v,J]),V=useCallback(()=>{k.current&&!k.current.closed&&k.current.close(),k.current=null,J();},[J]),oe=useRef(ie);oe.current=ie;let pe=useRef(V);pe.current=V;let Te=useRef(Z);Te.current=Z;let ze=useCallback(()=>{w.current.disabled||(v||N(true),U.current?.(true));},[v]),ae=useCallback(()=>{v||N(false),U.current?.(false);},[v]),re=useCallback(()=>{let be=!F.current;be&&w.current.disabled||(v||N(be),U.current?.(be));},[v]);useImperativeHandle(S,()=>({open:ze,close:ae,toggle:re,get isDetached(){return F.current},get window(){return k.current}}),[ze,ae,re]),useEffect(()=>(ee(),()=>ne()),[ee,ne]),useEffect(()=>{if(M)return oe.current(),()=>pe.current();pe.current();},[M]),useEffect(()=>{T!==void 0&&Te.current(T);},[T]),useEffect(()=>{k.current&&!k.current.closed&&r&&(k.current.document.title=r);},[r]),useEffect(()=>{if(typeof window>"u")return;let be=()=>{w.current.closeOnMainWindowUnload&&k.current&&!k.current.closed&&k.current.close();};return window.addEventListener("beforeunload",be),()=>{window.removeEventListener("beforeunload",be),k.current&&!k.current.closed&&k.current.close(),k.current=null;}},[]);let ce=typeof n=="function"?n({open:ze,close:ae,toggle:re,detached:M,windowRef:k.current}):n,De=e==="clone"||!M,Ge=M&&O!==null;return jsxs(Fragment,{children:[x&&T!==void 0&&jsx("input",{type:"hidden",name:x,value:G.current(T)}),De&&jsx("div",{className:Pg(m),children:ce}),Ge&&createPortal(ce,O)]})}var ld=forwardRef(Bg);ld.displayName="AdvanceDetachable";var dd={closeModal:"Close modal",closeDrawer:"Close drawer",closeSidebar:"Close sidebar",openSidebar:"Open sidebar",expandSidebar:"Expand sidebar",collapseSidebar:"Collapse sidebar",sidebar:"Sidebar",enterFullScreen:"Enter full screen",exitFullScreen:"Exit full screen",confirm:"Confirm",cancel:"Cancel",markdownEditorUnavailable:"Markdown editor unavailable. Pass markdownEditor from @synertech/ui/markdown-editor.",chartShowTable:"Show data table",chartHideTable:"Hide data table",chartNoData:"No data",chartLoading:"Loading chart",chartOther:"Other",chartValue:"Value",chartTarget:"Target",chartIncrease:"Increase",chartDecrease:"Decrease",chartRunningTotal:"Running total",chartConversion:"Conversion",chartDropOff:"Drop-off",chartChange:"Change",chartMedian:"Median",chartCount:"Count",chartOutliers:"Outliers",chartOpen:"Open",chartHigh:"High",chartLow:"Low",chartClose:"Close",chartRise:"Up",chartFall:"Down",chartStart:"Start",chartEnd:"End",chartProgress:"Progress",chartToday:"Today",chartAnnotations:"Annotations",chartFilters:"Filters",chartPeriod:"Period",chartPeriodLast7Days:"Last 7 days",chartPeriodLast30Days:"Last 30 days",chartPeriodLast90Days:"Last 90 days",chartPeriodLast12Months:"Last 12 months",chartPeriodMonthToDate:"Month to date",chartPeriodQuarterToDate:"Quarter to date",chartPeriodYearToDate:"Year to date",chartPeriodCustom:"Custom range",chartError:"Chart could not be loaded",chartErrorHint:"Something went wrong while loading this data.",chartRetry:"Retry",chartExport:"Export",chartExportCsv:"Export as CSV",chartExportJson:"Export as JSON",chartBrush:"Selected range",chartClearSelection:"Clear selection"},Fg={closeModal:"Fermer la fen\xEAtre",closeDrawer:"Fermer le panneau",closeSidebar:"Fermer le menu lat\xE9ral",openSidebar:"Ouvrir le menu lat\xE9ral",expandSidebar:"D\xE9plier le menu lat\xE9ral",collapseSidebar:"Replier le menu lat\xE9ral",sidebar:"Menu lat\xE9ral",enterFullScreen:"Passer en plein \xE9cran",exitFullScreen:"Quitter le plein \xE9cran",confirm:"Confirmer",cancel:"Annuler",markdownEditorUnavailable:"\xC9diteur Markdown indisponible. Passez markdownEditor depuis @synertech/ui/markdown-editor.",chartShowTable:"Afficher le tableau de donn\xE9es",chartHideTable:"Masquer le tableau de donn\xE9es",chartNoData:"Aucune donn\xE9e",chartLoading:"Chargement du graphique",chartOther:"Autres",chartValue:"Valeur",chartTarget:"Objectif",chartIncrease:"Hausse",chartDecrease:"Baisse",chartRunningTotal:"Cumul",chartConversion:"Conversion",chartDropOff:"D\xE9perdition",chartChange:"\xC9cart",chartMedian:"M\xE9diane",chartCount:"Effectif",chartOutliers:"Valeurs aberrantes",chartOpen:"Ouverture",chartHigh:"Haut",chartLow:"Bas",chartClose:"Cl\xF4ture",chartRise:"Hausse",chartFall:"Baisse",chartStart:"D\xE9but",chartEnd:"Fin",chartProgress:"Avancement",chartToday:"Aujourd'hui",chartAnnotations:"Annotations",chartFilters:"Filtres",chartPeriod:"P\xE9riode",chartPeriodLast7Days:"7 derniers jours",chartPeriodLast30Days:"30 derniers jours",chartPeriodLast90Days:"90 derniers jours",chartPeriodLast12Months:"12 derniers mois",chartPeriodMonthToDate:"Mois en cours",chartPeriodQuarterToDate:"Trimestre en cours",chartPeriodYearToDate:"Ann\xE9e en cours",chartPeriodCustom:"P\xE9riode personnalis\xE9e",chartError:"Chargement impossible",chartErrorHint:"Une erreur est survenue pendant le chargement des donn\xE9es.",chartRetry:"R\xE9essayer",chartExport:"Exporter",chartExportCsv:"Exporter en CSV",chartExportJson:"Exporter en JSON",chartBrush:"Plage s\xE9lectionn\xE9e",chartClearSelection:"Effacer la s\xE9lection"},Yi=createContext(dd);function $g({labels:e,children:t}){let r=useContext(Yi),n=useMemo(()=>({...r,...e}),[r,e]);return jsx(Yi.Provider,{value:n,children:t})}function Ve(){return useContext(Yi)}function ir(e,t=11){return e.length*t*.6}function Pr(e,t=11){let r=0;for(let n of e){let o=ir(n,t);o>r&&(r=o);}return r}function Ea(e,t,r,n=12){if(e<=1||t<=0)return 1;let o=r+n,a=Math.max(1,Math.floor(t/o));return Math.max(1,Math.ceil(e/a))}var vs=10,ks=15,La=5,ro=6,xs=4,Xg=.1;function ji({x:e,y:t,text:r,align:n}){let o=ir(r,vs)+La*2,a=n==="start"?e:e-o;return jsxs("g",{children:[jsx("rect",{x:a,y:t,width:o,height:ks,rx:3,className:"fill-white stroke-gray-200 dark:fill-gray-800 dark:stroke-gray-700",strokeWidth:1}),jsx("text",{x:a+La,y:t+ks/2,dominantBaseline:"central",className:"fill-gray-600 text-[10px] dark:fill-gray-300",children:r})]})}function rn({annotations:e,xAt:t,yAt:r,width:n,height:o,bandwidth:a=0,layer:s="over"}){if(e.length===0)return null;if(s==="under"){let i=e.filter(c=>c.type==="band");return i.length===0?null:jsx("g",{"aria-hidden":"true",children:i.map((c,d)=>{let u=t(c.from),f=t(c.to);if(u===null||f===null)return null;let m=Math.max(0,Math.min(u,f)-a/2),y=Math.min(n,Math.max(u,f)+a/2)-m;if(y<=0)return null;let b=c.label??"",h=ir(b,vs)+La*2;return jsxs("g",{children:[jsx("rect",{x:m,y:0,width:y,height:o,fill:c.color??"var(--color-chart-muted)",opacity:Xg}),b&&h<=y?jsx(ji,{x:m+2,y:2,text:b,align:"start"}):null]},`band-${d}`)})})}let l=e.filter(i=>i.type!=="band");return l.length===0?null:jsx("g",{"aria-hidden":"true",children:l.map((i,c)=>{let d=t(i.x);if(d===null)return null;let u=i.color??"var(--color-chart-muted)";if(i.type==="line"){let h=i.label??"",x=ir(h,vs)+La*2,L=d+ro+x<=n?"start":"end";return jsxs("g",{children:[jsx("line",{x1:d,y1:0,x2:d,y2:o,stroke:u,strokeWidth:1,strokeDasharray:i.dashed===false?void 0:"3 3"}),h?jsx(ji,{x:L==="start"?d+ro:d-ro,y:2,text:h,align:L}):null]},`line-${c}`)}let f=r(i.y);if(!Number.isFinite(f))return null;let m=i.label??"",g=ir(m,vs)+La*2,y=d+xs+ro+g<=n?"start":"end",b=Math.min(Math.max(0,f-ks-ro),o-ks);return jsxs("g",{children:[jsx("circle",{cx:d,cy:f,r:xs,fill:"none",stroke:u,strokeWidth:2}),m?jsx(ji,{x:y==="start"?d+xs+ro:d-xs-ro,y:b,text:m,align:y}):null]},`point-${c}`)})})}function no(e,t){if(!e||e.length===0)return "";let r=e.map(n=>n.label).filter(n=>!!n);return r.length===0?"":`${t}: ${r.join(", ")}`}var Gg=10,Ug={sm:"text-[10px]",md:"text-[11px]",lg:"text-xs"};function tt({orientation:e,ticks:t,length:r,showLine:n=true,tickSize:o=4,tickPadding:a=6,label:s,size:l="md",className:i,...c}){let d=e==="bottom";return jsxs("g",{className:p(Ug[l],i),"aria-hidden":"true",...c,children:[n&&jsx("line",{x1:0,y1:0,x2:d?r:0,y2:d?0:r,className:"stroke-gray-300 dark:stroke-gray-600",strokeWidth:1,shapeRendering:"crispEdges"}),t.map(u=>{let f=d?u.offset:0,m=d?0:u.offset;return jsxs("g",{transform:`translate(${f}, ${m})`,children:[o>0?jsx("line",{x1:0,y1:0,x2:d?0:-o,y2:d?o:0,className:"stroke-gray-300 dark:stroke-gray-600",strokeWidth:1}):null,jsx("text",{x:d?0:-(o+a),y:d?o+a:0,textAnchor:d?"middle":"end",dominantBaseline:d?"hanging":"middle",className:"fill-gray-500 dark:fill-gray-400 [font-variant-numeric:tabular-nums]",children:u.label})]},`${u.label}-${u.offset}`)}),s?jsx("text",{x:d?r/2:0,y:d?o+a+16:0,textAnchor:"middle",dominantBaseline:d?"hanging":"middle",transform:d?void 0:`translate(${-(o+a+Pr(t.map(u=>u.label))+Gg)}, ${r/2}) rotate(-90)`,className:"fill-gray-600 dark:fill-gray-300 font-medium",children:s}):null]})}function rt(e){return e instanceof Date?e.toISOString():String(e)}function Xr(e){if(e instanceof Date)return e.getTime();if(typeof e=="number")return e;let t=Number(e);return Number.isFinite(t)?t:Number.NaN}function Ir(e,t){let[r,n]=e,[o,a]=t,s=n-r,l=s===0?0:(a-o)/s,i=(c=>Number.isFinite(c)?s===0?(o+a)/2:o+(c-r)*l:Number.NaN);return Object.defineProperties(i,{domain:{value:[r,n],enumerable:true},range:{value:[o,a],enumerable:true},invert:{value:c=>l===0?r:r+(c-o)/l,enumerable:true}}),i}function bn(e,t,r={}){let{paddingInner:n=.2,paddingOuter:o=n/2}=r,[a,s]=t,l=e.length,i=l===0?0:(s-a)/Math.max(1,l-n+o*2),c=i*(1-n),d=a+(s-a-i*(l-n))/2,u=new Map;e.forEach((g,y)=>{u.has(rt(g))||u.set(rt(g),y);});let f=g=>d+i*g,m=(g=>{let y=u.get(rt(g));return y===void 0?Number.NaN:f(y)});return Object.defineProperties(m,{bandwidth:{value:c,enumerable:true},step:{value:i,enumerable:true},domain:{value:e,enumerable:true},range:{value:[a,s],enumerable:true},center:{value:g=>{let y=u.get(rt(g));return y===void 0?Number.NaN:f(y)+c/2},enumerable:true},positions:{value:()=>e.map((g,y)=>f(y)),enumerable:true},indexOf:{value:g=>u.get(rt(g))??-1,enumerable:true}}),m}function Dt(e,t){if(e.length===0)return -1;let r=0,n=Number.POSITIVE_INFINITY;for(let o=0;o<e.length;o+=1){let a=Math.abs(e[o]-t);a<n&&(n=a,r=o);}return r}var Yg=4,jg=.14;function ao({from:e,to:t,width:r,height:n,orientation:o="vertical",live:a=false,label:s}){let l=Math.max(0,Math.min(e,t)),i=Math.min(o==="vertical"?r:n,Math.max(e,t)),c=i-l;if(c<=0)return null;let d=o==="vertical",u=d?{x:l,y:0,width:c,height:n}:{x:0,y:l,width:r,height:c},f=m=>d?{x1:m,y1:0,x2:m,y2:n}:{x1:0,y1:m,x2:r,y2:m};return jsxs("g",{"aria-hidden":s?void 0:"true",role:s?"img":void 0,"aria-label":s,children:[jsx("rect",{...u,className:"fill-blue-500",opacity:jg}),[l,i].map(m=>jsx("line",{...f(m),className:"stroke-blue-600 dark:stroke-blue-400",strokeWidth:1.5,strokeDasharray:a?"3 3":void 0},m))]})}function so({enabled:e,active:t,centers:r,xValues:n,offset:o,orientation:a,onCommit:s}){let[l,i]=useState(null),c=useRef(null),d=useRef(false),u=useRef(false),f=useRef(null),m=useCallback((C,S)=>{let[v,R]=C<=S?[C,S]:[S,C];return {from:n[v],to:n[R],fromIndex:v,toIndex:R}},[n]),g=useCallback(C=>{let S=C.currentTarget.getBoundingClientRect();return a==="vertical"?C.clientX-S.left-o:C.clientY-S.top-o},[a,o]),y=useCallback(C=>{if(!e||r.length===0||C.button!==0)return;let S=g(C),v=Dt(r,S);v<0||(c.current={index:v,pixel:S},d.current=false,u.current=false,C.currentTarget.setPointerCapture?.(C.pointerId));},[e,r,g]),b=useCallback(C=>{let S=c.current;if(!e||!S)return;let v=g(C);!d.current&&Math.abs(v-S.pixel)<Yg||(d.current=true,i(m(S.index,Dt(r,v))));},[e,r,g,m]),h=useCallback(C=>{let S=c.current;if(c.current=null,!e||!S)return;if(C.currentTarget.hasPointerCapture?.(C.pointerId)&&C.currentTarget.releasePointerCapture?.(C.pointerId),!d.current){i(null),t&&s(null);return}u.current=true,d.current=false;let v=m(S.index,Dt(r,g(C)));i(null),f.current=v.fromIndex,s(v);},[e,t,r,g,m,s]),x=useCallback((C,S)=>{if(!e||r.length===0)return;if(C.key==="Escape"){f.current=null,i(null),t&&s(null);return}if(!C.shiftKey){f.current=null;return}let v=a==="vertical",R=v?"ArrowRight":"ArrowDown",N=v?"ArrowLeft":"ArrowUp";if(C.key!==R&&C.key!==N)return;let M=r.length-1,P=f.current??S??0,E=Math.min(M,Math.max(0,(S??P)+(C.key===R?1:-1)));f.current=P,s(m(P,E));},[e,t,r.length,a,m,s]),L=useCallback(()=>{let C=u.current;return u.current=false,C},[]);return {dragging:l,onPointerDown:y,onPointerMove:b,onPointerUp:h,onKeyDown:x,consumedClick:L}}var Zg={default:"stroke-gray-500 dark:stroke-gray-400",primary:"stroke-blue-600 dark:stroke-blue-500",success:"stroke-green-600 dark:stroke-green-500",warning:"stroke-yellow-500 dark:stroke-yellow-400",error:"stroke-red-600 dark:stroke-red-500",info:"stroke-cyan-600 dark:stroke-cyan-500"},Qg={default:"text-gray-700 dark:text-gray-300",primary:"text-blue-600 dark:text-blue-400",success:"text-green-600 dark:text-green-400",warning:"text-yellow-600 dark:text-yellow-400",error:"text-red-600 dark:text-red-400",info:"text-cyan-600 dark:text-cyan-400"},Jg={xs:24,sm:32,md:48,lg:64,xl:96},ef={xs:"text-[8px]",sm:"text-[10px]",md:"text-sm",lg:"text-base",xl:"text-xl"},tf={thin:2,normal:4,thick:8};function Wo({value:e=0,indeterminate:t=false,size:r="md",thickness:n="normal",color:o="primary",progressColor:a,trackColor:s,showValue:l=false,children:i,valueFormat:c,animated:d=true,className:u,...f}){let m=Math.min(100,Math.max(0,e)),g=Jg[r],y=tf[n],b=(g-y)/2,h=2*Math.PI*b,x=g/2,L=h-m/100*h,C=a||Zg[o],S=s||"stroke-gray-200 dark:stroke-gray-700",v=Qg[o],R=i??(l&&!t?jsx("span",{className:p("font-semibold",ef[r],v),children:c?c(m):`${Math.round(m)}%`}):null);return jsxs("div",{className:p("relative inline-flex items-center justify-center",u),role:"progressbar","aria-valuenow":t?void 0:m,"aria-valuemin":0,"aria-valuemax":100,...f,children:[jsxs("svg",{width:g,height:g,viewBox:`0 0 ${g} ${g}`,className:p(t&&"animate-spin"),style:{transform:"rotate(-90deg)"},children:[jsx("circle",{cx:x,cy:x,r:b,fill:"none",strokeWidth:y,className:S}),jsx("circle",{cx:x,cy:x,r:b,fill:"none",strokeWidth:y,strokeLinecap:"round",strokeDasharray:h,strokeDashoffset:t?h*.75:L,className:p(C,d&&!t&&"transition-[stroke-dashoffset] duration-300 ease-out")})]}),R&&jsx("div",{className:"absolute inset-0 flex items-center justify-center",style:{transform:"rotate(0deg)"},children:R})]})}Wo.displayName="CircularProgress";var gd=640;function qi(e={}){let{width:t,fallbackWidth:r=gd}=e,n=useRef(null),[o,a]=useState(0);return useEffect(()=>{if(t!==void 0)return;let s=n.current;if(!s)return;let l=c=>{a(d=>Math.abs(d-c)<1?d:c);};if(l(s.getBoundingClientRect().width),typeof ResizeObserver>"u")return;let i=new ResizeObserver(c=>{for(let d of c)l(d.contentRect.width);});return i.observe(s),()=>i.disconnect()},[t]),t!==void 0?{ref:n,width:t,measured:true}:{ref:n,width:o>0?o:r,measured:o>0}}var lf=jsxs("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none","aria-hidden":"true",className:"text-red-600 dark:text-red-400",children:[jsx("path",{d:"M10 3.5 2.5 16.5h15L10 3.5Z",stroke:"currentColor",strokeWidth:"1.4",strokeLinejoin:"round"}),jsx("path",{d:"M10 8v3.5",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"}),jsx("circle",{cx:"10",cy:"14",r:"0.9",fill:"currentColor"})]}),cf={sm:"text-xs",md:"text-sm",lg:"text-base"};function xt({title:e,description:t,height:r=240,width:n,size:o="md",legend:a,legendPosition:s="bottom",actions:l,loading:i=false,empty:c=false,emptyState:d,error:u=false,errorState:f,onRetry:m,errorLabel:g,errorHintLabel:y,retryLabel:b,table:h,tableView:x=false,showTableLabel:L,hideTableLabel:C,noDataLabel:S,loadingLabel:v,ariaLabel:R,children:N,className:M,...P}){let E=Ve(),[W,T]=useState(false),O=useId(),H=`${O}-table`,k=`${O}-title`,z=`${O}-description`,{ref:A,width:I,measured:X}=qi({width:n}),$=!!h&&x==="toggle",K=!!h&&(x===true||$&&W),G=jsx("div",{ref:A,className:"relative w-full",style:{height:r},"aria-busy":i||void 0,children:i&&(c||u)?jsx("div",{className:"flex h-full w-full items-center justify-center",children:jsx(Wo,{indeterminate:true,size:"md","aria-label":v??E.chartLoading})}):u&&!i?jsx("div",{role:"alert",className:"flex h-full w-full flex-col items-center justify-center gap-2 px-4 text-center",children:f??jsxs(Fragment,{children:[lf,jsx("span",{className:"text-sm font-medium text-gray-900 dark:text-gray-100",children:g??E.chartError}),jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400",children:y??E.chartErrorHint}),m?jsx("button",{type:"button",onClick:m,className:"mt-1 cursor-pointer rounded-md border border-gray-300 bg-white px-3 py-1.5 text-xs font-medium text-gray-700 transition-colors hover:bg-gray-50 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 dark:border-gray-600 dark:bg-gray-800 dark:text-gray-200 dark:hover:bg-gray-700",children:b??E.chartRetry}):null]})}):c&&!i&&!u?jsx("div",{className:"flex h-full w-full items-center justify-center text-sm text-gray-500 dark:text-gray-400",children:d??S??E.chartNoData}):jsx("div",{className:p("h-full w-full transition-opacity duration-200",i&&"opacity-60"),children:typeof N=="function"?N({width:I,height:r,measured:X}):N})});return jsxs("figure",{className:p("flex w-full flex-col gap-3",M),"aria-label":R,"aria-labelledby":!R&&e?k:void 0,"aria-describedby":t?z:void 0,...P,children:[e||t||l?jsxs("figcaption",{className:"flex items-start justify-between gap-3",children:[jsxs("div",{className:"flex flex-col gap-0.5",children:[e?jsx("span",{id:k,className:p("font-semibold text-gray-900 dark:text-gray-100",cf[o]),children:e}):null,t?jsx("span",{id:z,className:"text-xs text-gray-500 dark:text-gray-400",children:t}):null]}),l]}):null,a&&s==="top"?a:null,a&&s==="right"?jsxs("div",{className:"flex items-start gap-4",children:[jsx("div",{className:"min-w-0 grow",children:G}),a]}):G,a&&s==="bottom"?a:null,$&&jsx("div",{className:"flex",children:jsx("button",{type:"button",onClick:()=>T(q=>!q),"aria-expanded":W,"aria-controls":K?H:void 0,className:"cursor-pointer rounded-sm text-xs font-medium text-gray-600 underline underline-offset-2 hover:text-gray-900 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 dark:text-gray-400 dark:hover:text-white",children:W?C??E.chartHideTable:L??E.chartShowTable})}),K&&jsx("div",{id:H,children:h})]})}var fd=[];function Yt({width:e,height:t,horizontal:r=fd,vertical:n=fd,className:o,...a}){return jsxs("g",{className:p("stroke-gray-200 dark:stroke-gray-700",o),strokeWidth:1,shapeRendering:"crispEdges","aria-hidden":"true",...a,children:[r.map(s=>jsx("line",{x1:0,y1:s,x2:e,y2:s},`h-${s}`)),n.map(s=>jsx("line",{x1:s,y1:0,x2:s,y2:t},`v-${s}`))]})}var io="var(--color-chart-surface)",Zi=["solid","diagonal","diagonal-reverse","cross","dots","diagonal-wide","diagonal-reverse-wide","dots-wide"],yd={solid:null,diagonal:{tile:6,rotate:45,stroke:2},"diagonal-reverse":{tile:6,rotate:-45,stroke:2},cross:{tile:6,rotate:45,stroke:1.25,crossed:true},dots:{tile:6,rotate:0,stroke:0,dot:1.5},"diagonal-wide":{tile:10,rotate:45,stroke:3},"diagonal-reverse-wide":{tile:10,rotate:-45,stroke:3},"dots-wide":{tile:10,rotate:0,stroke:0,dot:2.6}};function Ps(e){return !Number.isFinite(e)||e<0?"solid":Zi[Math.floor(e)%Zi.length]}function Rs(e,t){return `${e.replace(/[^a-zA-Z0-9_-]/g,"")}-texture-${Math.max(0,Math.floor(t))}`}function lo(e,t,r,n){return !e||Ps(r)==="solid"?n:`url(#${Rs(t,r)})`}function co({id:e,entries:t}){return jsx("defs",{children:t.map(({slot:r,color:n})=>{let o=yd[Ps(r)];if(!o)return null;let{tile:a,rotate:s,stroke:l,crossed:i,dot:c}=o;return jsxs("pattern",{id:Rs(e,r),width:a,height:a,patternUnits:"userSpaceOnUse",patternTransform:s===0?void 0:`rotate(${s})`,children:[jsx("rect",{width:a,height:a,fill:n}),c?jsxs(Fragment,{children:[jsx("circle",{cx:a/4,cy:a/4,r:c,fill:io}),jsx("circle",{cx:a*3/4,cy:a*3/4,r:c,fill:io})]}):null,l>0?jsx("line",{x1:a/2,y1:0,x2:a/2,y2:a,stroke:io,strokeWidth:l}):null,i?jsx("line",{x1:0,y1:a/2,x2:a,y2:a/2,stroke:io,strokeWidth:l}):null]},Rs(e,r))})})}function Qi(e,t){let r=yd[Ps(e)];if(!r)return {backgroundColor:t};let{tile:n,rotate:o,stroke:a,crossed:s,dot:l}=r;if(l)return {backgroundColor:t,backgroundImage:`radial-gradient(${io} ${l-.4}px, transparent ${l}px)`,backgroundSize:`${n/2}px ${n/2}px`};let i=c=>`repeating-linear-gradient(${c}deg, ${io} 0 ${a}px, transparent ${a}px ${n}px)`;return {backgroundColor:t,backgroundImage:s?`${i(o)}, ${i(o+90)}`:i(o)}}var pf={line:"h-0.5 w-3 rounded-full",rect:"h-2.5 w-2.5 rounded-sm",dot:"h-2 w-2 rounded-full"},gf={sm:"text-[11px]",md:"text-xs",lg:"text-sm"};function jt({items:e,position:t="bottom",marker:r="line",onToggle:n,size:o="md",className:a,...s}){return e.length===0?null:jsx("ul",{className:p("flex list-none flex-wrap gap-x-4 gap-y-1 p-0",t==="right"?"flex-col":"flex-row",t==="top"||t==="bottom"?"justify-center":"",gf[o],a),...s,children:e.map(l=>{let i=l.pattern!==void 0&&(l.marker??r)==="rect",c=jsx("span",{className:p("shrink-0",i?"h-3 w-3.5 rounded-sm":pf[l.marker??r]),style:i?Qi(l.pattern,l.color):{backgroundColor:l.color},"aria-hidden":"true"}),d=jsx("span",{className:p(l.hidden&&"line-through"),children:l.label}),u=jsxs(Fragment,{children:[c,d]}),f=p("flex items-center gap-1.5 text-gray-600 dark:text-gray-300",l.hidden&&"text-gray-400 dark:text-gray-500");return jsx("li",{children:n?jsx("button",{type:"button",onClick:()=>n(l.key),"aria-pressed":!l.hidden,className:p(f,"cursor-pointer rounded-sm hover:text-gray-900 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 dark:hover:text-white"),children:u}):jsx("span",{className:f,children:u})},l.key)})})}var Ji=["7d","30d","90d","12m","mtd","ytd"];function $o(e){let t=new Date(e);return t.setHours(0,0,0,0),t}function _o(e){let t=new Date(e);return t.setHours(23,59,59,999),t}function xd(e,t=new Date){let r=_o(t),n=$o(t);switch(e){case "7d":n.setDate(n.getDate()-6);break;case "30d":n.setDate(n.getDate()-29);break;case "90d":n.setDate(n.getDate()-89);break;case "12m":n.setMonth(n.getMonth()-12),n.setDate(n.getDate()+1);break;case "mtd":n.setDate(1);break;case "qtd":n.setMonth(Math.floor(n.getMonth()/3)*3,1);break;case "ytd":n.setMonth(0,1);break;}return {from:n,to:r}}function Ma(e,t=new Date){return {preset:e,...xd(e,t)}}function el(e,t,r){let n=new Intl.DateTimeFormat(r,{day:"numeric",month:"short",year:"numeric"});if(typeof n.formatRange=="function")try{return n.formatRange(e,t)}catch{}return `${n.format(e)} \u2013 ${n.format(t)}`}function bf(e,t){return !e||!t?e===t:e.preset===t.preset&&e.from.getTime()===t.from.getTime()&&e.to.getTime()===t.to.getTime()}var wd=createContext(null);function uo(){return useContext(wd)}function Cf({children:e,hover:t=true,brush:r,defaultBrush:n=null,onBrushChange:o}){let[a,s]=useState(null),[l,i]=useState(n),c=r!==void 0,d=c?r:l,u=useCallback(g=>{if(!t)return;let y=b=>b===null?"\0":rt(b);s(b=>y(b)===y(g)?b:g);},[t]),f=useCallback(g=>{c||i(g),o?.(g);},[c,o]),m=useMemo(()=>({hovered:t?a:null,brush:d??null,hoverShared:t,setHovered:u,setBrush:f}),[t,a,d,u,f]);return jsx(wd.Provider,{value:m,children:e})}function kf(e){let t=kd(e.from),r=kd(e.to);if(!t||!r)return null;let[n,o]=t<=r?[t,r]:[r,t];return {preset:"custom",from:$o(n),to:_o(o)}}function kd(e){if(e instanceof Date)return Number.isNaN(e.getTime())?null:e;let t=new Date(e);return Number.isNaN(t.getTime())?null:t}function yn({children:e,className:t,...r}){return jsx("table",{className:p("w-full text-sm text-left rtl:text-right text-gray-500 dark:text-gray-400",t),...r,children:e})}function xn({children:e,className:t,...r}){return jsx("tbody",{className:p(t),...r,children:e})}function qt({children:e,onClick:t,hidden:r=false,className:n,...o}){return jsx("td",{className:p("px-6 py-4",n),onClick:t,hidden:r,...o,children:e})}function vn({children:e,className:t,...r}){return jsx("thead",{className:p("text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400",t),...r,children:jsx("tr",{children:e})})}function It({children:e,onClick:t,hidden:r=false,className:n,sortable:o=false,...a}){return jsx("th",{scope:"col",className:p("px-6 py-3",o&&"cursor-pointer hover:bg-gray-100 dark:hover:bg-gray-600",n),onClick:t,hidden:r,...a,children:e})}function Cn({children:e,onClick:t,clickable:r=true,className:n,...o}){return jsx("tr",{className:p("bg-white border-b dark:bg-gray-800 dark:border-gray-700",r&&"hover:bg-gray-50 hover:cursor-pointer dark:hover:bg-gray-600",n),onClick:t,...o,children:e})}var Df=8,Ts=["var(--color-chart-1)","var(--color-chart-2)","var(--color-chart-3)","var(--color-chart-4)","var(--color-chart-5)","var(--color-chart-6)","var(--color-chart-7)","var(--color-chart-8)"],Ar="var(--color-chart-muted)",rl="var(--color-chart-up)",nl="var(--color-chart-down)",po=3,Sd=false;function zr(e,t){return t||(e<0||e>=8?(Sd||(Sd=true,console.warn('[@synertech/ui] A chart was given more than 8 series. Extra series share the de-emphasis grey: fold the tail into an "Other" bucket, or split the chart, instead of relying on a ninth colour.')),Ar):Ts[e])}function Br(e,t,r){return r&&e.key!==r?Ar:zr(t,e.color)}function Vt(e){return e.label??e.key}function Gr(e,t,r=false){return e.map((n,o)=>({key:n.key,label:Vt(n),color:Br(n,o,t),hidden:n.hidden,...n.type==="line"?{marker:"line"}:{},...r&&n.type!=="line"?{pattern:o}:{}}))}var tl=["var(--color-chart-seq-1)","var(--color-chart-seq-2)","var(--color-chart-seq-3)","var(--color-chart-seq-4)","var(--color-chart-seq-5)","var(--color-chart-seq-6)"],Ia=["var(--color-chart-ord-1)","var(--color-chart-ord-2)","var(--color-chart-ord-3)","var(--color-chart-ord-4)","var(--color-chart-ord-5)"],mo=["var(--color-chart-div-1)","var(--color-chart-div-2)","var(--color-chart-div-3)","var(--color-chart-div-4)","var(--color-chart-div-5)","var(--color-chart-div-6)","var(--color-chart-div-7)"],Rd=3,Pd=[false,false,false,false,true,true],ol=[false,false,true,true,true],Td=[true,false,false,false,false,false,true],Ds=7;function Aa(e){return Number.isFinite(e)?e<0?0:e>1?1:e:0}function Xo(e,t){if(e.length===0)return Ar;if(e.length===1)return e[0];let r=Aa(t)*(e.length-1),n=Math.min(e.length-2,Math.floor(r)),o=r-n;if(o<=.005)return e[n];if(o>=.995)return e[n+1];let a=Math.round(o*1e3)/10;return `color-mix(in oklab, ${e[n+1]} ${a}%, ${e[n]})`}function Ef(e,t){return t<=1?.5:Math.min(t-1,Math.floor(Aa(e)*t))/(t-1)}function Dd(e,t,r,n,o){let a=l=>{let i=n(l);return r===null?i:Ef(i,r)},s=(l=>Number.isFinite(l)?Xo(t,a(l)):Ar);return Object.defineProperties(s,{domain:{value:[e[0],e[1]],enumerable:true},colors:{value:t,enumerable:true},steps:{value:r,enumerable:true},position:{value:l=>Number.isFinite(l)?a(l):0,enumerable:true},onDark:{value:l=>{if(!Number.isFinite(l)||o.length===0)return false;let i=Math.round(a(l)*(o.length-1));return o[i]??false},enumerable:true}}),s}function za(e,t={}){let{steps:r,colors:n=tl,darkStops:o}=t,[a,s]=e,l=s-a;return Dd(e,n,r??null,i=>l===0?0:(i-a)/l,o??(n===tl?Pd:[]))}function Go(e,t={}){let{steps:r,colors:n=mo,darkStops:o,center:a=0,symmetric:s=true}=t,[l,i]=e;if(s){let u=Math.max(Math.abs(i-a),Math.abs(a-l));l=a-u,i=a+u;}let c=n===mo?Rd:(n.length-1)/2,d=n.length-1;return Dd([l,i],n,r??null,u=>{if(u>=a){let g=i-a,y=g<=0?0:Aa((u-a)/g);return (c+y*(d-c))/d}let f=a-l,m=f<=0?0:Aa((a-u)/f);return (c-m*c)/d},o??(n===mo?Td:[]))}function Lf(e,t=Ia.length,r=Ia){return t<=1?r[r.length-1]??Ar:Xo(r,Aa(e/(t-1)))}function Ae(e,t){let r=e[t];if(r==null||r==="")return null;if(typeof r=="number")return Number.isFinite(r)?r:null;if(typeof r=="boolean")return r?1:0;if(typeof r=="string"){let n=Number(r);return Number.isFinite(n)?n:null}return null}function gt(e,t,r){let n=e[t];return n instanceof Date||typeof n=="number"||typeof n=="string"?n:n==null?r:String(n)}function vr(e,t){let r=[];for(let n of e)for(let o of t)r.push(Ae(n,o));return r}function Ba(e,t={}){if(!Number.isFinite(e))return "\u2014";let{locale:r,compact:n,currency:o,unit:a,minimumFractionDigits:s,maximumFractionDigits:l}=t,i=new Intl.NumberFormat(r,{notation:n?"compact":"standard",...o?{style:"currency",currency:o}:{},...s!==void 0?{minimumFractionDigits:s}:{},...l!==void 0?{maximumFractionDigits:l}:n?{maximumFractionDigits:1}:{}}).format(e);return a?`${i}${a}`:i}function Mf(e,t){return Ba(e,{locale:t,compact:true})}function pt(e,t){return Number.isFinite(e)?Math.abs(e)<1e4?Ba(e,{locale:t}):Mf(e,t):"\u2014"}function Zt(e,t={}){if(!Number.isFinite(e))return "\u2014";let{locale:r,maximumFractionDigits:n=1,alreadyScaled:o,signed:a}=t;return new Intl.NumberFormat(r,{style:"percent",maximumFractionDigits:n,...a?{signDisplay:"exceptZero"}:{}}).format(o?e/100:e)}function st(e,t){return e instanceof Date?new Intl.DateTimeFormat(t,{day:"2-digit",month:"short"}).format(e):typeof e=="number"?Ba(e,{locale:t}):e}function Ot({data:e,series:t,xKey:r,xLabel:n,formatX:o,formatValue:a,caption:s,emptyLabel:l,className:i,...c}){let d=t.filter(m=>!m.hidden);if(e.length===0||d.length===0)return jsx("div",{className:p("text-sm text-gray-500 dark:text-gray-400",i),...c,children:l});let u=(m,g)=>{let y=gt(m,r,g);return o?o(y,g):st(y)},f=m=>m===null?"\u2014":a?a(m):Ba(m);return jsx("div",{className:p("w-full overflow-x-auto",i),...c,children:jsxs(yn,{children:[s?jsx("caption",{className:"sr-only",children:s}):null,jsxs(vn,{children:[jsx(It,{children:n??r}),d.map(m=>jsx(It,{className:"text-right",children:Vt(m)},m.key))]}),jsx(xn,{children:e.map((m,g)=>jsxs(Cn,{clickable:false,children:[jsx(qt,{className:"font-medium text-gray-900 dark:text-gray-100",children:u(m,g)}),d.map(y=>jsx(qt,{className:"text-right [font-variant-numeric:tabular-nums]",children:f(Ae(m,y.key))},y.key))]},g))})]})})}function vt({x:e,y:t,visible:r=true,containerWidth:n,offset:o=12,className:a,style:s,children:l,...i}){if(!r)return null;let c=n!==void 0&&e>n*.6;return jsx("div",{role:"tooltip",className:p("pointer-events-none absolute top-0 left-0 z-10 min-w-24 rounded-md border border-gray-200 bg-white px-2.5 py-2 text-xs shadow-lg dark:border-gray-700 dark:bg-gray-800",a),style:{transform:`translate(${c?e-o:e+o}px, ${t}px) translate(${c?"-100%":"0"}, -50%)`,...s},...i,children:l})}function Tr({title:e,points:t}){return jsxs("div",{className:"flex flex-col gap-1",children:[e!=null&&jsx("div",{className:"font-medium text-gray-900 dark:text-gray-100",children:e}),jsx("div",{className:"flex flex-col gap-0.5",children:t.map(r=>jsxs("div",{className:"flex items-center gap-2",children:[jsx("span",{className:"h-0.5 w-3 shrink-0 rounded-full",style:{backgroundColor:r.color},"aria-hidden":"true"}),jsx("span",{className:"grow text-gray-500 dark:text-gray-400",children:r.seriesLabel}),jsx("span",{className:"font-semibold text-gray-900 [font-variant-numeric:tabular-nums] dark:text-gray-100",children:r.formattedValue})]},r.seriesKey))})]})}function Ha(e){let t=Number(e.toPrecision(12));return Object.is(t,-0)?0:t}function Ld(e){if(!Number.isFinite(e)||e<=0)return 1;let t=Math.floor(Math.log10(e)),r=Math.pow(10,t),n=e/r,o=n<=1?1:n<=2?2:n<=5?5:10;return Ha(o*r)}function Es(e,t,r=5){if(!Number.isFinite(e)||!Number.isFinite(t))return [0,1];if(e===t){if(e===0)return [0,1];let o=Math.abs(e)*.5;[e,t]=[e-o,e+o];}let n=Ld((t-e)/Math.max(1,r));return [Ha(Math.floor(e/n)*n),Ha(Math.ceil(t/n)*n)]}function Wa(e,t,r=5){if(!Number.isFinite(e)||!Number.isFinite(t))return [];if(r<=0)return [];if(e===t)return [Ha(e)];e>t&&([e,t]=[t,e]);let n=Ld((t-e)/r),o=Math.ceil(e/n),a=Math.floor(t/n),s=[];for(let l=o;l<=a&&s.length<=1e3;l+=1)s.push(Ha(l*n));return s}function Qt(e){let t=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY,n=false;for(let o of e)o==null||!Number.isFinite(o)||(n=true,o<t&&(t=o),o>r&&(r=o));return n?[t,r]:null}function Ko(e,t={}){let{domain:r,includeZero:n=true,ticks:o=5}=t;if(Array.isArray(r))return r;let a=Qt(e);if(!a)return [0,1];let[s,l]=a;return n&&(s=Math.min(s,0),l=Math.max(l,0)),Es(s,l,o)}var sl={top:10,right:16,bottom:28},Md=16,If=14,Af=32;function Jt({width:e,height:t,data:r,x:n,y:o,bounds:a,margin:s,orientation:l="vertical",placement:i="point",bandPaddingInner:c=.2,formatValue:d,formatX:u,extraTop:f=0,defaultIncludeZero:m=false}){let g=l==="vertical",y=r.map((G,q)=>gt(G,n.key,q)),b=Ko(a??[],{domain:o?.domain,includeZero:o?.includeZero??m,ticks:o?.ticks??5}),h=o?.hidden??false,x=n.hidden??false,L=h?[]:Wa(b[0],b[1],o?.ticks??5),C=L.map(d),S=g&&(n.scale==="linear"||n.scale==="time"),v=y.map((G,q)=>u(G,q)),R=g?h:x,N=g?C:v,M=g?o?.width:n.height,P=g?x:h,E=g?n.height:void 0,W=g?n.label:o?.label,T=g?o?.label:n.label,O=g&&!x&&i!=="band"?v:[],H=G=>G?ir(G)/2+4:0,k={top:s?.top??sl.top+f,right:s?.right??Math.max(sl.right,H(O[O.length-1])),bottom:s?.bottom??(P?8:E??sl.bottom+(W?Md:0)),left:s?.left??(R?8:M??Math.max(Math.max(Af,Pr(N)+If)+(T?Md:0),H(O[0])))},z=Math.max(0,e-k.left-k.right),A=Math.max(0,t-k.top-k.bottom),I=g?Ir(b,[A,0]):Ir(b,[0,z]),X=g?z:A,$,K=0,D,B=null;if(S){let G=y.map(Xr),q=Qt(G)??[0,1],j=Ir(q,[0,X]);B=j,$=G.map(U=>j(U)),D=x?[]:Wa(q[0],q[1],n.ticks??5).map(U=>({value:U,offset:j(U),label:u(n.scale==="time"?new Date(U):U,0)}));}else if(i==="band"){let G=bn(r.map((q,j)=>j),[0,X],{paddingInner:c});$=r.map((q,j)=>G(j)),K=G.bandwidth,D=[];}else {let G=r.length>1?X/(r.length-1):0;$=r.map((q,j)=>r.length>1?j*G:X/2),D=[];}let w=$.map(G=>G+K/2);if(!S&&!x){let G=g?Pr(v):15,q=Ea(v.length,X,G);D=v.map((j,U)=>({value:y[U],offset:w[U],label:j})).filter((j,U)=>U%q===0);}return {margin:k,innerWidth:z,innerHeight:A,orientation:l,valueScale:I,domain:b,valueTicks:L.map(G=>({value:G,offset:I(G),label:d(G)})),xValues:y,categoryPositions:$,bandwidth:K,categoryCenters:w,categoryTicks:D,categoryLength:X,categoryScale:B}}function On(e){let{categoryScale:t,xValues:r,categoryCenters:n,categoryLength:o}=e;return a=>{if(t){let i=t(Xr(a));return Number.isFinite(i)?i<-0.5||i>o+.5?null:i:null}let s=rt(a),l=r.findIndex(i=>rt(i)===s);return l<0?null:n[l]}}function kn({geometry:e,width:t,height:r,data:n,series:o,formatValue:a,formatX:s}){return {dimensions:{width:t,height:r,innerWidth:e.innerWidth,innerHeight:e.innerHeight,margin:e.margin},orientation:e.orientation,xAt:On(e),yAt:e.valueScale,categoryCenters:e.categoryCenters,bandwidth:e.bandwidth,xValues:e.xValues,domain:e.domain,data:n,series:o,formatValue:a,formatX:s}}function wn(e){return e?typeof e=="function"?{over:e}:e:{}}var zf=2e3;var ll=false;function Bf(){ll=false;}function Yo(e,t){t<=2e3||ll||(ll=true,console.warn(`[@synertech/ui] ${e} is drawing ${t} points in one series. Past 2000 the path costs more than it shows \u2014 pass \`maxPoints\` to draw the shape from fewer points. The data table keeps every row either way.`));}function Id(e,t){let r=e.length;if(t>=r)return e.map((l,i)=>i);if(t<3)return r===0||t<=0?[]:t===1?[0]:[0,r-1];let n=[0],o=t-2,a=(r-2)/o,s=0;for(let l=0;l<o;l+=1){let i=Math.floor((l+1)*a)+1,c=Math.min(Math.floor((l+2)*a)+1,r-1),d=0,u=0,f=0;for(let x=i;x<c;x+=1)d+=e[x].x,u+=e[x].y,f+=1;f===0?(d=e[r-1].x,u=e[r-1].y):(d/=f,u/=f);let m=Math.floor(l*a)+1,g=Math.min(Math.floor((l+1)*a)+1,r-1),y=e[s],b=m,h=-1;for(let x=m;x<g;x+=1){let L=Math.abs((y.x-d)*(e[x].y-y.y)-(y.x-e[x].x)*(u-y.y));L>h&&(h=L,b=x);}g>m&&(n.push(b),s=b);}return n.push(r-1),n}function cl(e,t){if(t>=e.length||t<1)return [...e];if(t===1)return [e[0]];let r=(e.length-1)/(t-1);return Array.from({length:t},(n,o)=>e[Math.round(o*r)])}function Ls(e,t){let r=e.map((d,u)=>u);if(t<=0||e.length<=t)return r;let n=d=>d.defined!==false&&Number.isFinite(d.x)&&Number.isFinite(d.y),o=[],a=[],s=0,l=()=>{a.length>0&&o.push({start:s,points:a}),a=[];};e.forEach((d,u)=>{n(d)?(a.length===0&&(s=u),a.push(d)):l();}),l();let i=o.reduce((d,u)=>d+u.points.length,0);if(i===0)return r;let c=[];return o.forEach((d,u)=>{u>0&&c.push(d.start-1);let f=Math.max(3,Math.round(d.points.length/i*t));for(let m of Id(d.points,f))c.push(d.start+m);}),c}function dl(e,t){return Ls(e,t).map(r=>e[r])}function Et(e){return Math.round(e*100)/100}function Ad(e){return e.defined!==false&&Number.isFinite(e.x)&&Number.isFinite(e.y)}function zd(e,t=false){if(t){let o=e.filter(Ad);return o.length>0?[o]:[]}let r=[],n=[];for(let o of e)Ad(o)?n.push(o):n.length>0&&(r.push(n),n=[]);return n.length>0&&r.push(n),r}function Hf(e){let t=e.length,r=[],n=[];for(let a=0;a<t-1;a+=1){let s=e[a+1].x-e[a].x;r.push(s),n.push(s===0?0:(e[a+1].y-e[a].y)/s);}let o=new Array(t);o[0]=n[0],o[t-1]=n[t-2];for(let a=1;a<t-1;a+=1){let s=n[a-1],l=n[a];if(s*l<=0)o[a]=0;else {let i=2*r[a]+r[a-1],c=r[a]+2*r[a-1];o[a]=(i+c)/(i/s+c/l);}}return o}function ul(e,t){if(e.length<2)return "";if(t==="monotone"&&e.length>2){let n=Hf(e),o="";for(let a=0;a<e.length-1;a+=1){let s=e[a],l=e[a+1],i=(l.x-s.x)/3;o+=` C${Et(s.x+i)},${Et(s.y+n[a]*i)} ${Et(l.x-i)},${Et(l.y-n[a+1]*i)} ${Et(l.x)},${Et(l.y)}`;}return o}let r="";for(let n=1;n<e.length;n+=1){let o=e[n-1],a=e[n];if(t==="step"){let s=Et((o.x+a.x)/2);r+=` L${s},${Et(o.y)} L${s},${Et(a.y)}`;}else t==="stepAfter"&&(r+=` L${Et(a.x)},${Et(o.y)}`);r+=` L${Et(a.x)},${Et(a.y)}`;}return r}function nn(e,t="linear",r={}){return zd(e,r.connectNulls).map(n=>{let[o]=n;return `M${Et(o.x)},${Et(o.y)}${ul(n,t)}`}).join(" ")}function Va(e,t,r="linear",n={}){let o=zd(e,n.connectNulls);if(o.length===0)return "";let a=typeof t=="number"?null:new Map(t.map(s=>[Et(s.x),s]));return o.map(s=>{let[l]=s,i=s[s.length-1],c=`M${Et(l.x)},${Et(l.y)}${ul(s,r)}`;if(a===null){let f=Et(t);return `${c} L${Et(i.x)},${f} L${Et(l.x)},${f} Z`}let d=s.map(f=>a.get(Et(f.x))).filter(f=>f!==void 0).reverse();if(d.length===0)return `${c} Z`;let[u]=d;return `${c} L${Et(u.x)},${Et(u.y)}${ul(d,r)} Z`}).join(" ")}function fr({x:e,y:t,width:r,height:n,radius:o=4,round:a="none"}){if(!(r>0)||!(n>0))return "";let s=Math.max(0,Math.min(o,r/2,n/2)),[l,i]=[Ze(e),Ze(t)],[c,d]=[Ze(e+r),Ze(t+n)];if(s===0||a==="none")return `M${l},${i} L${c},${i} L${c},${d} L${l},${d} Z`;switch(a){case "top":return `M${l},${d} L${l},${Ze(t+s)} Q${l},${i} ${Ze(e+s)},${i} L${Ze(e+r-s)},${i} Q${c},${i} ${c},${Ze(t+s)} L${c},${d} Z`;case "bottom":return `M${l},${i} L${c},${i} L${c},${Ze(t+n-s)} Q${c},${d} ${Ze(e+r-s)},${d} L${Ze(e+s)},${d} Q${l},${d} ${l},${Ze(t+n-s)} Z`;case "right":return `M${l},${i} L${Ze(e+r-s)},${i} Q${c},${i} ${c},${Ze(t+s)} L${c},${Ze(t+n-s)} Q${c},${d} ${Ze(e+r-s)},${d} L${l},${d} Z`;case "left":return `M${c},${i} L${Ze(e+s)},${i} Q${l},${i} ${l},${Ze(t+s)} L${l},${Ze(t+n-s)} Q${l},${d} ${Ze(e+s)},${d} L${c},${d} Z`;default:return `M${l},${i} L${c},${i} L${c},${d} L${l},${d} Z`}}function Ze(e){return Math.round(e*100)/100}function Fn(e,t,r,n){return {x:Ze(e+r*Math.sin(n)),y:Ze(t-r*Math.cos(n))}}function Bd({cx:e,cy:t,innerRadius:r,outerRadius:n,startAngle:o,endAngle:a}){let s=a-o;if(!(n>0)||!(s>0))return "";let l=s>=Math.PI*2-1e-9,i=Math.max(0,Math.min(r,n));if(l){let g=Fn(e,t,n,0),y=Fn(e,t,n,Math.PI),b=`M${g.x},${g.y} A${Ze(n)},${Ze(n)} 0 1 1 ${y.x},${y.y} A${Ze(n)},${Ze(n)} 0 1 1 ${g.x},${g.y} Z`;if(i===0)return b;let h=Fn(e,t,i,0),x=Fn(e,t,i,Math.PI);return `${b} M${h.x},${h.y} A${Ze(i)},${Ze(i)} 0 1 0 ${x.x},${x.y} A${Ze(i)},${Ze(i)} 0 1 0 ${h.x},${h.y} Z`}let c=s>Math.PI?1:0,d=Fn(e,t,n,o),u=Fn(e,t,n,a);if(i===0)return `M${Ze(e)},${Ze(t)} L${d.x},${d.y} A${Ze(n)},${Ze(n)} 0 ${c} 1 ${u.x},${u.y} Z`;let f=Fn(e,t,i,a),m=Fn(e,t,i,o);return `M${d.x},${d.y} A${Ze(n)},${Ze(n)} 0 ${c} 1 ${u.x},${u.y} L${f.x},${f.y} A${Ze(i)},${Ze(i)} 0 ${c} 0 ${m.x},${m.y} Z`}function Ms(e,t,r="none"){return e.map((n,o)=>{let a=t.map(d=>Ae(n,d)),s=a.reduce((d,u)=>d+(u===null?0:Math.abs(u)),0),l=0,i=0,c=t.map((d,u)=>{let f=a[u];if(r==="none")return {key:d,value:f,start:0,end:f??0};if(f===null)return {key:d,value:null,start:l,end:l};let m=r==="percent"?s===0?0:f/s*100:f;if(m>=0){let y=l;return l+=m,{key:d,value:f,start:y,end:l}}let g=i;return i+=m,{key:d,value:f,start:i,end:g}});return {index:o,datum:n,total:s,segments:c}})}function Is(e){let t=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY,n=false;for(let o of e)for(let a of o.segments)a.value!==null&&(n=true,t=Math.min(t,a.start,a.end),r=Math.max(r,a.start,a.end));return n?[t,r]:null}function Hd(e,t,r={}){let{centerKey:n,percent:o=false}=r,a=n?t.indexOf(n):-1,s=a>=0?a:Math.max(0,Math.min(t.length,r.negativeCount??Math.floor(t.length/2)));return e.map((l,i)=>{let c=t.map(h=>Ae(l,h)),d=c.reduce((h,x)=>h+(x===null?0:Math.abs(x)),0),u=c.map(h=>h===null?null:o?d===0?0:h/d*100:h),f=t.map(h=>({key:h,value:null,start:0,end:0,base:false,outer:false})),m=0;a>=0&&(m=(u[a]??0)/2,f[a]={key:t[a],value:c[a],start:m===0?0:-m,end:m,base:true,outer:false});let g=m===0?0:-m,y=-1;for(let h=s-1;h>=0;h-=1){let x=u[h];if(x===null){f[h]={...f[h],value:null,start:g,end:g};continue}let L=g-Math.abs(x);f[h]={key:t[h],value:c[h],start:g,end:L,base:a<0&&y===-1,outer:false},g=L,y=h;}y>=0&&(f[y].outer=true),g=m;let b=-1;for(let h=a>=0?a+1:s;h<t.length;h+=1){let x=u[h];if(x===null){f[h]={...f[h],value:null,start:g,end:g};continue}let L=g+Math.abs(x);f[h]={key:t[h],value:c[h],start:g,end:L,base:a<0&&b===-1,outer:false},g=L,b=h;}return b>=0?f[b].outer=true:a>=0&&(f[a].outer=true),{index:i,datum:l,total:d,segments:f}})}var Of=.12,Ff=.9,$f=10,_f=memo(function({bands:t,stacked:r,patterns:n,patternBaseId:o}){return jsx("g",{children:t.map(a=>jsxs("g",{children:[jsx("path",{d:a.area,fill:lo(n,o,a.slot,a.color),fillOpacity:r?Ff:Of,stroke:"none"}),a.gap?jsx("path",{d:a.gap,fill:"none",strokeWidth:2,className:"stroke-white dark:stroke-gray-800"}):null,jsx("path",{d:a.edge,fill:"none",stroke:a.color,strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"})]},a.key))})});function Xf({width:e,height:t,data:r,resolvedSeries:n,x:o,y:a,grid:s,size:l,curve:i,stack:c,baseline:d,connectNulls:u,referenceLines:f,annotations:m,annotationsLabel:g,patterns:y,patternBaseId:b,overlay:h,maxPoints:x,brush:L,onBrush:C,brushLabel:S,syncEnabled:v,margin:R,tooltip:N,onPointClick:M,plotLabel:P,formatValue:E,formatRaw:W,formatX:T}){let[O,H]=useState(null),k=O!==null&&O<r.length?O:null,[z,A]=useState(null),I=uo(),X=v?I:null,$=useMemo(()=>{let V=n.filter(be=>!be.hidden),oe=V.map(be=>be.key),pe=c!=="none",Te=Ms(r,oe,c),ze=pe?Is(Te):Qt([...vr(r,oe),d]),ae=Jt({width:e,height:t,data:r,x:o,y:a,bounds:ze,margin:R,placement:"point",formatValue:E,formatX:T,defaultIncludeZero:true}),re=ae.categoryCenters,ce=ae.valueScale,De=ce(pe?0:d),Ge=V.map((be,Me)=>{let Re=r.map((dr,_t)=>{let Xt=Te[_t].segments[Me];return {x:re[_t],y:Xt.value===null?Number.NaN:ce(Xt.end),defined:Xt.value!==null}}),He=r.map((dr,_t)=>{let Xt=Te[_t].segments[Me];return {x:re[_t],y:Xt.value===null?Number.NaN:ce(pe?Xt.start:d),defined:Xt.value!==null}}),Ee={connectNulls:u},$e=x&&x>0&&Re.length>x?Ls(Re,x):null,bt=$e?$e.map(dr=>Re[dr]):Re,Kt=$e?$e.map(dr=>He[dr]):He;return x||Yo("AreaChart",Re.length),{key:be.key,color:be.color,slot:be.slot,area:pe?Va(bt,Kt,i,Ee):Va(bt,De,i,Ee),edge:nn(bt,i,Ee),gap:pe&&Me>0?nn(Kt,i,Ee):""}});return {visible:V,locate:On(ae),plot:kn({geometry:ae,width:e,height:t,data:r,series:V,formatValue:E,formatX:T}),rows:Te,stacked:pe,xValues:ae.xValues,positions:re,xTicks:ae.categoryTicks,yTicks:ae.valueTicks,valueScale:ce,innerWidth:ae.innerWidth,innerHeight:ae.innerHeight,margin:ae.margin,bands:Ge}},[r,n,o,a,e,t,R,i,c,d,u,x,E,T]),K=useCallback(V=>$.visible.map((oe,pe)=>{let Te=Ae(r[V],oe.key),ze=$.rows[V].segments[pe],ae=Te===null?"\u2014":c==="percent"?`${W(Te)} (${E(ze.end-ze.start)})`:E(Te);return {seriesKey:oe.key,seriesLabel:Vt(oe),color:oe.color,value:Te,formattedValue:ae,datum:r[V]}}),[r,$.visible,$.rows,c,E,W]),D=X?X.brush:z,B=useCallback(V=>{A(V),X?.setBrush(V),C?.(V);},[X,C]),w=so({enabled:L,active:D!==null,centers:$.positions,xValues:$.xValues,offset:$.margin.left,orientation:"vertical",onCommit:B}),G=useCallback(V=>{if(w.onPointerMove(V),N===false||r.length===0)return;let oe=V.currentTarget.getBoundingClientRect(),pe=V.clientX-oe.left-$.margin.left,Te=Dt($.positions,pe);H(Te>=0?Te:null),X?.setHovered(Te>=0?$.xValues[Te]:null);},[w,N,r.length,$.margin.left,$.positions,$.xValues,X]),q=useCallback(()=>{H(null),X?.setHovered(null);},[X]),j=useCallback(V=>{if(r.length===0)return;w.onKeyDown(V,k);let oe=r.length-1,pe=k??0,Te=V.key==="ArrowRight"?Math.min(oe,pe+1):V.key==="ArrowLeft"?Math.max(0,pe-1):V.key==="Home"?0:V.key==="End"?oe:V.key==="Escape"?null:void 0;Te!==void 0&&(V.preventDefault(),H(Te),X?.setHovered(Te===null?null:$.xValues[Te]));},[r.length,k,w,X,$.xValues]),U=useCallback(()=>{if(w.consumedClick()||!M||k===null)return;let[V]=K(k);V&&M({...V,index:k,x:$.xValues[k]});},[w,M,k,K,$.xValues]),F=k!==null||!X?.hovered?null:(()=>{let V=rt(X.hovered),oe=$.xValues.findIndex(pe=>rt(pe)===V);return oe<0?null:oe})(),_=k??F,J=k===null?null:K(k),ne=_===null?[]:$.visible.map((V,oe)=>{let pe=$.rows[_].segments[oe];return pe.value===null?null:{key:V.key,color:V.color,y:$.valueScale(pe.end)}}).filter(V=>V!==null),Y=w.dragging??D,ee=(()=>{if(!Y)return null;let V=$.locate(Y.from),oe=$.locate(Y.to);return V===null||oe===null?null:{from:V,to:oe}})(),Z=wn(h),ie=k===null||J===null?null:{x:$.xValues[k],xLabel:T($.xValues[k],k),index:k,points:J};return jsxs(Fragment,{children:[jsxs("svg",{width:e,height:t,role:"img","aria-label":P??[$.visible.map(V=>Vt(V)).join(", "),no(m,g)].filter(Boolean).join(". "),tabIndex:0,className:p("touch-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500",L&&"select-none"),onPointerDown:w.onPointerDown,onPointerMove:G,onPointerUp:w.onPointerUp,onPointerCancel:w.onPointerUp,onPointerLeave:q,onKeyDown:j,onBlur:q,onClick:U,children:[y?jsx(co,{id:b,entries:n.map(V=>({slot:V.slot,color:V.color}))}):null,jsxs("g",{transform:`translate(${$.margin.left}, ${$.margin.top})`,children:[jsx(Yt,{width:$.innerWidth,height:$.innerHeight,horizontal:s==="y"||s==="both"?$.yTicks.map(V=>V.offset):void 0,vertical:s==="x"||s==="both"?$.xTicks.map(V=>V.offset):void 0}),m?jsx(rn,{layer:"under",annotations:m,xAt:$.locate,yAt:$.valueScale,width:$.innerWidth,height:$.innerHeight}):null,ee?jsx(ao,{from:ee.from,to:ee.to,width:$.innerWidth,height:$.innerHeight,live:w.dragging!==null,label:S}):null,Z.under?.($.plot),jsx(_f,{bands:$.bands,stacked:$.stacked,patterns:y&&$.stacked,patternBaseId:b}),m?jsx(rn,{annotations:m,xAt:$.locate,yAt:$.valueScale,width:$.innerWidth,height:$.innerHeight}):null,f?.map(V=>{let oe=$.valueScale(V.value),pe=oe<$f?oe+12:oe-4;return jsxs("g",{children:[jsx("line",{x1:0,y1:oe,x2:$.innerWidth,y2:oe,stroke:V.color??"var(--color-chart-muted)",strokeWidth:1,strokeDasharray:V.dashed===false?void 0:"4 4"}),V.label?jsx("text",{x:$.innerWidth,y:pe,textAnchor:"end",className:"fill-gray-500 text-[10px] dark:fill-gray-400",children:V.label}):null]},`${V.value}-${V.label??""}`)}),Z.over?.($.plot),_!==null?jsxs("g",{"aria-hidden":"true",children:[jsx("line",{x1:$.positions[_],y1:0,x2:$.positions[_],y2:$.innerHeight,className:"stroke-gray-400 dark:stroke-gray-500",strokeWidth:1,strokeDasharray:k===null?"3 3":void 0}),ne.map(V=>jsx("circle",{cx:$.positions[_],cy:V.y,r:4,fill:V.color,strokeWidth:2,className:"stroke-white dark:stroke-gray-800"},V.key))]}):null]}),jsx("g",{transform:`translate(${$.margin.left}, ${$.margin.top+$.innerHeight})`,children:o.hidden?null:jsx(tt,{orientation:"bottom",ticks:$.xTicks,length:$.innerWidth,label:o.label,size:l})}),jsx("g",{transform:`translate(${$.margin.left}, ${$.margin.top})`,children:a?.hidden?null:jsx(tt,{orientation:"left",ticks:$.yTicks,length:$.innerHeight,showLine:false,label:a?.label,size:l})})]}),ie&&N!==false?jsx(vt,{x:$.margin.left+$.positions[ie.index],y:$.margin.top+(ne.length>0?Math.min(...ne.map(V=>V.y)):$.innerHeight/2),containerWidth:e,children:typeof N=="function"?N(ie):jsx(Tr,{title:ie.xLabel,points:ie.points})}):null]})}function Gf({data:e,series:t,x:r,y:n,height:o=240,width:a,size:s="md",grid:l="y",legend:i,tooltip:c=true,tableView:d=false,emphasis:u,title:f,description:m,loading:g=false,emptyState:y,error:b=false,errorState:h,onRetry:x,actions:L,onPointClick:C,curve:S="monotone",stack:v="none",baseline:R=0,connectNulls:N=false,referenceLines:M,annotations:P,overlay:E,patterns:W=false,legendToggle:T=true,maxPoints:O,brush:H=false,onBrush:k,brushLabel:z,sync:A=true,margin:I,locale:X,plotLabel:$,className:K,...D}){let B=Ve(),[w,G]=useState(()=>new Set),q=useId(),j=useMemo(()=>t.map((V,oe)=>({...V,slot:oe,hidden:V.hidden||w.has(V.key),color:Br(V,oe,u)})),[t,w,u]),U=v==="percent",F=useMemo(()=>U?{domain:[0,100],...n}:n,[U,n]),_=useMemo(()=>n?.format??(U?V=>Zt(V,{locale:X,alreadyScaled:true,maximumFractionDigits:0}):V=>pt(V,X)),[n?.format,U,X]),J=useMemo(()=>V=>pt(V,X),[X]),ne=useMemo(()=>r.format??(V=>r.scale==="time"?st(V instanceof Date?V:new Date(Xr(V)),X):st(V,X)),[r.format,r.scale,X]),Y=useCallback(V=>{G(oe=>{let pe=new Set(oe);return pe.has(V)?pe.delete(V):pe.add(V),pe});},[]),ee=i===void 0?t.length>=2:i!==false,Z=typeof i=="string"?i:"bottom",ie=j.filter(V=>!V.hidden).length;return jsx(xt,{title:f,description:m,height:o,width:a,size:s,loading:g,empty:e.length===0||ie===0,emptyState:y,error:b,errorState:h,onRetry:x,actions:L,tableView:d,legendPosition:Z,legend:ee?jsx(jt,{items:Gr(j,u,W&&v!=="none"),position:Z,marker:"rect",size:s,onToggle:T?Y:void 0}):void 0,table:d?jsx(Ot,{data:e,series:j,xKey:r.key,xLabel:r.label??r.key,formatX:ne,formatValue:J,caption:typeof f=="string"?f:void 0}):void 0,className:K,...D,children:({width:V})=>jsx(Xf,{width:V,height:o,data:e,resolvedSeries:j,x:r,y:F,grid:l,size:s,curve:S,stack:v,baseline:R,connectNulls:N,referenceLines:M,annotations:P,annotationsLabel:B.chartAnnotations,patterns:W,patternBaseId:q,overlay:E,maxPoints:O,brush:H,onBrush:k,brushLabel:z??B.chartBrush,syncEnabled:A,margin:I,tooltip:c,onPointClick:C,plotLabel:$,formatValue:_,formatRaw:J,formatX:ne})})}var Kf={xs:"h-6 w-6 text-xs",sm:"h-8 w-8 text-sm",md:"h-10 w-10 text-base",lg:"h-12 w-12 text-lg",xl:"h-16 w-16 text-xl"},Yf={circle:"rounded-full",square:"rounded-none",rounded:"rounded-md"};function jf({src:e,alt:t="Avatar",fallback:r,size:n="md",variant:o="circle",border:a=false,className:s,...l}){return jsx("div",{className:p("inline-flex items-center justify-center overflow-hidden bg-gray-200 font-medium text-gray-600 dark:bg-gray-700 dark:text-gray-300",Kf[n],Yf[o],a&&"ring-2 ring-white dark:ring-gray-900",s),...l,children:e?jsx("img",{src:e,alt:t,className:"h-full w-full object-cover"}):jsx("span",{children:r||t.charAt(0).toUpperCase()})})}var qf={default:{solid:"bg-gray-500 text-white",soft:"bg-gray-100 text-gray-700 dark:bg-gray-700 dark:text-gray-300",outlined:"border border-gray-300 text-gray-600 dark:border-gray-600 dark:text-gray-400",subtle:"bg-gray-50 text-gray-600 dark:bg-gray-800 dark:text-gray-400"},primary:{solid:"bg-blue-600 text-white",soft:"bg-blue-100 text-blue-700 dark:bg-blue-900/50 dark:text-blue-300",outlined:"border border-blue-500 text-blue-600 dark:border-blue-400 dark:text-blue-400",subtle:"bg-blue-50 text-blue-600 dark:bg-blue-900/30 dark:text-blue-400"},success:{solid:"bg-green-600 text-white",soft:"bg-green-100 text-green-700 dark:bg-green-900/50 dark:text-green-300",outlined:"border border-green-500 text-green-600 dark:border-green-400 dark:text-green-400",subtle:"bg-green-50 text-green-600 dark:bg-green-900/30 dark:text-green-400"},warning:{solid:"bg-yellow-500 text-white",soft:"bg-yellow-100 text-yellow-700 dark:bg-yellow-900/50 dark:text-yellow-300",outlined:"border border-yellow-400 text-yellow-600 dark:border-yellow-400 dark:text-yellow-400",subtle:"bg-yellow-50 text-yellow-600 dark:bg-yellow-900/30 dark:text-yellow-400"},error:{solid:"bg-red-600 text-white",soft:"bg-red-100 text-red-700 dark:bg-red-900/50 dark:text-red-300",outlined:"border border-red-500 text-red-600 dark:border-red-400 dark:text-red-400",subtle:"bg-red-50 text-red-600 dark:bg-red-900/30 dark:text-red-400"},info:{solid:"bg-cyan-600 text-white",soft:"bg-cyan-100 text-cyan-700 dark:bg-cyan-900/50 dark:text-cyan-300",outlined:"border border-cyan-500 text-cyan-600 dark:border-cyan-400 dark:text-cyan-400",subtle:"bg-cyan-50 text-cyan-600 dark:bg-cyan-900/30 dark:text-cyan-400"},purple:{solid:"bg-purple-600 text-white",soft:"bg-purple-100 text-purple-700 dark:bg-purple-900/50 dark:text-purple-300",outlined:"border border-purple-500 text-purple-600 dark:border-purple-400 dark:text-purple-400",subtle:"bg-purple-50 text-purple-600 dark:bg-purple-900/30 dark:text-purple-400"},indigo:{solid:"bg-indigo-600 text-white",soft:"bg-indigo-100 text-indigo-700 dark:bg-indigo-900/50 dark:text-indigo-300",outlined:"border border-indigo-500 text-indigo-600 dark:border-indigo-400 dark:text-indigo-400",subtle:"bg-indigo-50 text-indigo-600 dark:bg-indigo-900/30 dark:text-indigo-400"},teal:{solid:"bg-teal-600 text-white",soft:"bg-teal-100 text-teal-700 dark:bg-teal-900/50 dark:text-teal-300",outlined:"border border-teal-500 text-teal-600 dark:border-teal-400 dark:text-teal-400",subtle:"bg-teal-50 text-teal-600 dark:bg-teal-900/30 dark:text-teal-400"}},Zf={default:"bg-gray-500",primary:"bg-blue-500",success:"bg-green-500",warning:"bg-yellow-400",error:"bg-red-500",info:"bg-cyan-500",purple:"bg-purple-500",indigo:"bg-indigo-500",teal:"bg-teal-500"},Qf={sm:"text-[10px] px-1.5 py-0.5 gap-1",md:"text-xs px-2 py-0.5 gap-1",lg:"text-sm px-2.5 py-1 gap-1.5"},Jf={sm:"w-1.5 h-1.5",md:"w-1.5 h-1.5",lg:"w-2 h-2"},e0={sm:"w-2.5 h-2.5",md:"w-3 h-3",lg:"w-3.5 h-3.5"};function Vd({children:e,color:t="default",size:r="md",variant:n="soft",dot:o=false,icon:a,pill:s=true,className:l,...i}){return jsxs("span",{className:p("inline-flex items-center font-medium",Qf[r],s?"rounded-full":"rounded",qf[t][n],l),...i,children:[o&&jsx("span",{className:p("shrink-0 rounded-full",Jf[r],Zf[t]),"aria-hidden":"true"}),a&&!o&&jsx("span",{className:p("shrink-0",e0[r]),"aria-hidden":"true",children:a}),e]})}Vd.displayName="Badge";var r0={sm:"text-[10px]",md:"text-[11px]",lg:"text-xs"};function Oa({scale:e,label:t,format:r,ticks:n=3,size:o="md",thickness:a=10,locale:s,className:l,...i}){let[c,d]=e.domain,u=r??(x=>pt(x,s)),f=e.steps,m=f!==null&&f>0,g=Math.max(2,Math.round(n)),y=m?Array.from({length:f+1},(x,L)=>L/f):Array.from({length:g},(x,L)=>L/(g-1)),b=x=>c+x*(d-c),h=m?jsx("div",{className:"flex h-full w-full overflow-hidden rounded-sm",children:Array.from({length:f},(x,L)=>jsx("span",{className:"h-full grow",style:{backgroundColor:e(b((L+.5)/f))}},L))}):jsx("div",{className:"h-full w-full rounded-sm",style:{backgroundImage:`linear-gradient(to right, ${e.colors.join(", ")})`}});return jsxs("div",{className:p("flex w-full max-w-80 flex-col gap-1",r0[o],l),...i,children:[t?jsx("span",{className:"text-gray-600 dark:text-gray-300",children:t}):null,jsx("div",{style:{height:a},"aria-hidden":"true",children:h}),jsx("div",{className:"relative h-4 w-full",children:y.map((x,L)=>jsx("span",{className:"absolute top-0 whitespace-nowrap text-gray-500 [font-variant-numeric:tabular-nums] dark:text-gray-400",style:{left:`${x*100}%`,transform:`translateX(${L===0?"0":L===y.length-1?"-100%":"-50%"})`},children:u(b(x))},x))})]})}function Od(e){return e<=1?1:Math.min(60,Math.max(1,Math.ceil(Math.log2(e))+1))}function o0(e){let t=Math.pow(10,Math.floor(Math.log10(e)));return [.5,1,2,5,10].map(r=>Number((r*t).toPrecision(12)))}function Fd(e,t=true){if(Array.isArray(t)){let m=[...t].filter(g=>Number.isFinite(g)).sort((g,y)=>g-y);return m.length>=2?m:[]}let r=e.filter(m=>Number.isFinite(m));if(r.length===0)return [];let n=Math.min(...r),o=Math.max(...r);if(n===o){let m=Math.abs(n)>0?Math.abs(n)*.5:.5;n-=m,o+=m;}let a=typeof t=="number"?t:Od(r.length),s=Math.min(60,Math.max(1,Math.round(a))),l=(o-n)/s;if(!(l>0))return [];let i=0,c=0,d=Number.POSITIVE_INFINITY;for(let m of o0(l)){let g=Math.floor(n/m)*m,y=Math.ceil(o/m)*m,b=Math.max(1,Math.round((y-g)/m));if(b>60)continue;let h=Math.abs(b-s);h<=d&&(d=h,i=m,c=b);}if(i===0)return [];let u=Math.floor(n/i)*i,f=[];for(let m=0;m<=c;m+=1)f.push(Number((u+m*i).toPrecision(12)));return f}function gl(e,t=true){let r=e.filter(a=>typeof a=="number"&&Number.isFinite(a)),n=Fd(r,t);if(n.length<2)return [];let o=[];for(let a=0;a<n.length-1;a+=1)o.push({from:n[a],to:n[a+1],count:0,last:a===n.length-2});for(let a of r){if(a<n[0]||a>n[n.length-1])continue;let s=0,l=o.length-1;for(;s<l;){let i=s+l+1>>1;a>=n[i]?s=i:l=i-1;}o[s].count+=1;}return o}var s0=24,ho=2,i0=4,Zo=6,l0=10,hl=false,bl=false;function c0(){hl=false,bl=false;}var d0=memo(function({bars:t,patterns:r,patternBaseId:n}){return jsx("g",{children:t.map((o,a)=>jsxs("g",{children:[jsx("path",{d:o.d,fill:lo(r,n,o.slot,o.color)}),o.label?jsx("text",{x:o.label.x,y:o.label.y,textAnchor:o.label.anchor,dominantBaseline:"middle",className:"fill-gray-600 text-[10px] [font-variant-numeric:tabular-nums] dark:fill-gray-300",children:o.label.text}):null]},`${o.key}-${a}`))})}),u0=memo(function({lines:t}){return jsx("g",{children:t.map(r=>jsxs("g",{children:[jsx("path",{d:r.d,fill:"none",stroke:r.color,strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",strokeDasharray:r.dashed?"5 4":void 0}),r.markers.map(n=>jsx("circle",{cx:n.x,cy:n.y,r:3,fill:r.color,strokeWidth:2,className:"stroke-white dark:stroke-gray-800"},`${n.x}-${n.y}`))]},r.key))})});function m0({width:e,height:t,data:r,resolvedSeries:n,x:o,y:a,grid:s,size:l,orientation:i,stack:c,center:d,centerKey:u,valueColors:f,binned:m,curve:g,barSize:y,showValues:b,referenceLines:h,annotations:x,annotationsLabel:L,patterns:C,patternBaseId:S,overlay:v,brush:R,onBrush:N,brushLabel:M,syncEnabled:P,margin:E,tooltip:W,onPointClick:T,plotLabel:O,formatValue:H,formatRaw:k,formatX:z}){let[A,I]=useState(null),X=A!==null&&A<r.length?A:null,[$,K]=useState(null),D=uo(),B=P?D:null,w=useMemo(()=>{let ae=i==="vertical",re=n.filter(ye=>!ye.hidden),ce=re.filter(ye=>ye.type!=="line"),De=re.filter(ye=>ye.type==="line"),Ge=ce.map(ye=>ye.key),be=u!==null||c!=="none",Me=u!==null?Hd(r,Ge,{centerKey:u,percent:c==="percent"}):Ms(r,Ge,c),Re=be?Is(Me):Qt(vr(r,Ge)),He=Qt(vr(r,De.map(ye=>ye.key))),Ee=Re===null?He:He===null?Re:[Math.min(Re[0],He[0]),Math.max(Re[1],He[1])],$e=Jt({width:e,height:t,data:r,x:o,y:a,bounds:Ee===null?null:[Math.min(Ee[0],d),Math.max(Ee[1],d)],margin:E,orientation:i,placement:"band",bandPaddingInner:m?0:void 0,formatValue:H,formatX:z,defaultIncludeZero:d===0}),{valueScale:bt,bandwidth:Kt,categoryPositions:dr,innerWidth:_t,innerHeight:Xt}=$e,Mr=bt(d),Ce=Math.max(1,ce.length),we=be?Kt:Kt/Ce,se=Math.min(y??(m?Number.POSITIVE_INFINITY:s0),Math.max(1,we-(be&&!m?0:ho))),de=be?se:Ce*se+(Ce-1)*ho,ke=(Kt-de)/2,ve=[],Be=ye=>be?ye.end>=ye.start:ye.end>=d;Me.forEach((ye,Xe)=>{let We=-1,ut=-1;ye.segments.forEach((mt,ct)=>{mt.value!==null&&mt.outer!==false&&(Be(mt)?We=ct:ut=ct);});let ot=0,Ke=0;ye.segments.forEach((mt,ct)=>{if(mt.value===null)return;let xr=ce[ct],Pt=Be(mt),jr=bt(be?mt.start:d),hn=bt(mt.end),ar=Math.min(jr,hn),sr=Math.abs(hn-jr),te=mt.base??(Pt?ot===0:Ke===0),ue=ae?!Pt:Pt;be&&!te&&sr>ho&&(sr-=ho,ue&&(ar+=ho)),Pt?ot+=1:Ke+=1;let me=dr[Xe]+(be?ke:ke+ct*(se+ho)),xe=ct===(Pt?We:ut)?ae?Pt?"top":"bottom":Pt?"right":"left":"none",Ye=ae?{x:me,y:ar,width:se,height:sr}:{x:ar,y:me,width:sr,height:se},at=null;if(b&&!be){let et=k(mt.value),Fe=ir(et,10);if(ae){let St=Pt?ar:ar+sr,je=Pt?St-Zo:St+Zo,Mt=Ce>1?se+ho:Kt;Fe<=Mt&&(Pt?je>8:je<Xt-4)&&(at={x:me+se/2,y:je,anchor:"middle",text:et});}else {let St=Pt?ar+sr:ar,je=Pt?_t-St-Zo:St-Zo;Fe<=je&&(at={x:Pt?St+Zo:St-Zo,y:me+se/2,anchor:Pt?"start":"end",text:et});}}ve.push({key:xr.key,slot:xr.slot,color:f&&mt.value!==null?f(mt.value):xr.color,d:fr({...Ye,radius:i0,round:xe}),label:at});});});let Pe=De.map(ye=>{let Xe=$e.categoryCenters.map((We,ut)=>{let ot=Ae(r[ut],ye.key),Ke=ot===null?Number.NaN:bt(ot);return {x:ae?We:Ke,y:ae?Ke:We,defined:ot!==null}});return {key:ye.key,color:ye.color,dashed:ye.dashed,d:nn(Xe,g),markers:Xe.filter(We=>We.defined!==false)}});return {vertical:ae,visible:re,locate:On($e),barSeries:ce,rows:Me,stacked:be,plot:kn({geometry:$e,width:e,height:t,data:r,series:re,formatValue:H,formatX:z}),xValues:$e.xValues,categoryPositions:dr,categoryCenters:$e.categoryCenters,bandwidth:Kt,categoryTicks:$e.categoryTicks,valueTicks:$e.valueTicks,valueScale:bt,baseline:Mr,innerWidth:_t,innerHeight:Xt,margin:$e.margin,bars:ve,lines:Pe}},[r,n,o,a,e,t,E,i,c,d,u,f,m,g,y,b,H,k,z]),G=useCallback(ae=>w.visible.map(re=>{let ce=Ae(r[ae],re.key),De=w.barSeries.indexOf(re),Ge=De===-1?null:w.rows[ae].segments[De],be=ce===null?"\u2014":c==="percent"&&Ge!==null?`${k(ce)} (${H(Ge.end-Ge.start)})`:H(ce);return {seriesKey:re.key,seriesLabel:Vt(re),color:re.color,value:ce,formattedValue:be,datum:r[ae]}}),[r,w.visible,w.barSeries,w.rows,c,H,k]),q=B?B.brush:$,j=useCallback(ae=>{K(ae),B?.setBrush(ae),N?.(ae);},[B,N]),U=so({enabled:R,active:q!==null,centers:w.categoryCenters,xValues:w.xValues,offset:w.vertical?w.margin.left:w.margin.top,orientation:i,onCommit:j}),F=useCallback(ae=>{if(U.onPointerMove(ae),W===false||r.length===0)return;let re=ae.currentTarget.getBoundingClientRect(),ce=w.vertical?ae.clientX-re.left-w.margin.left:ae.clientY-re.top-w.margin.top,De=Dt(w.categoryCenters,ce);I(De>=0?De:null),B?.setHovered(De>=0?w.xValues[De]:null);},[U,W,r.length,w.vertical,w.margin,w.categoryCenters,w.xValues,B]),_=useCallback(()=>{I(null),B?.setHovered(null);},[B]),J=useCallback(ae=>{if(r.length===0)return;U.onKeyDown(ae,X);let re=r.length-1,ce=X??0,De=w.vertical?"ArrowRight":"ArrowDown",Ge=w.vertical?"ArrowLeft":"ArrowUp",be=ae.key===De?Math.min(re,ce+1):ae.key===Ge?Math.max(0,ce-1):ae.key==="Home"?0:ae.key==="End"?re:ae.key==="Escape"?null:void 0;be!==void 0&&(ae.preventDefault(),I(be),B?.setHovered(be===null?null:w.xValues[be]));},[r.length,X,w.vertical,U,B,w.xValues]),ne=useCallback(()=>{if(U.consumedClick()||!T||X===null)return;let[ae]=G(X);ae&&T({...ae,index:X,x:w.xValues[X]});},[U,T,X,G,w.xValues]),Y=X!==null||!B?.hovered?null:(()=>{let ae=rt(B.hovered),re=w.xValues.findIndex(ce=>rt(ce)===ae);return re<0?null:re})(),ee=X??Y,Z=U.dragging??q,ie=(()=>{if(!Z)return null;let ae=w.locate(Z.from),re=w.locate(Z.to);if(ae===null||re===null)return null;let ce=w.bandwidth/2;return {from:Math.min(ae,re)-ce,to:Math.max(ae,re)+ce}})(),V=wn(v),oe=X===null?null:G(X),pe=X===null||oe===null?null:{x:w.xValues[X],xLabel:z(w.xValues[X],X),index:X,points:oe},Te=ae=>{let re=w.rows[ae].segments.filter(ce=>ce.value!==null).map(ce=>w.valueScale(ce.end));for(let ce of w.lines){let De=Ae(r[ae],ce.key);De!==null&&re.push(w.valueScale(De));}return re},ze=X===null?null:w.vertical?{x:w.margin.left+w.categoryCenters[X],y:w.margin.top+Math.min(...Te(X),w.baseline)}:{x:w.margin.left+Math.max(...Te(X),w.baseline),y:w.margin.top+w.categoryCenters[X]};return jsxs(Fragment,{children:[jsxs("svg",{width:e,height:t,role:"img","aria-label":O??[w.visible.map(ae=>Vt(ae)).join(", "),no(x,L)].filter(Boolean).join(". "),tabIndex:0,className:p("touch-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500",R&&"select-none"),onPointerDown:U.onPointerDown,onPointerMove:F,onPointerUp:U.onPointerUp,onPointerCancel:U.onPointerUp,onPointerLeave:_,onKeyDown:J,onBlur:_,onClick:ne,children:[C?jsx(co,{id:S,entries:n.map(ae=>({slot:ae.slot,color:ae.color}))}):null,jsxs("g",{transform:`translate(${w.margin.left}, ${w.margin.top})`,children:[jsx(Yt,{width:w.innerWidth,height:w.innerHeight,horizontal:w.vertical&&(s==="y"||s==="both")?w.valueTicks.map(ae=>ae.offset):void 0,vertical:!w.vertical&&(s==="y"||s==="both")?w.valueTicks.map(ae=>ae.offset):void 0}),x?jsx(rn,{layer:"under",annotations:x,xAt:w.locate,yAt:w.valueScale,width:w.innerWidth,height:w.innerHeight,bandwidth:w.bandwidth}):null,ie?jsx(ao,{from:ie.from,to:ie.to,width:w.innerWidth,height:w.innerHeight,orientation:i,live:U.dragging!==null,label:M}):null,ee!==null?jsx("rect",{x:w.vertical?w.categoryPositions[ee]:0,y:w.vertical?0:w.categoryPositions[ee],width:w.vertical?w.bandwidth:w.innerWidth,height:w.vertical?w.innerHeight:w.bandwidth,className:"fill-gray-400 dark:fill-gray-500",opacity:.12,"aria-hidden":"true"}):null,V.under?.(w.plot),jsx(d0,{bars:w.bars,patterns:C,patternBaseId:S}),w.lines.length>0?jsx(u0,{lines:w.lines}):null,jsx("line",{x1:w.vertical?0:w.baseline,y1:w.vertical?w.baseline:0,x2:w.vertical?w.innerWidth:w.baseline,y2:w.vertical?w.baseline:w.innerHeight,className:"stroke-gray-300 dark:stroke-gray-600",strokeWidth:1,shapeRendering:"crispEdges"}),x?jsx(rn,{annotations:x,xAt:w.locate,yAt:w.valueScale,width:w.innerWidth,height:w.innerHeight,bandwidth:w.bandwidth}):null,V.over?.(w.plot),h?.map(ae=>{let re=w.valueScale(ae.value),ce=re<l0?re+12:re-4;return jsxs("g",{children:[jsx("line",{x1:w.vertical?0:re,y1:w.vertical?re:0,x2:w.vertical?w.innerWidth:re,y2:w.vertical?re:w.innerHeight,stroke:ae.color??"var(--color-chart-muted)",strokeWidth:1,strokeDasharray:ae.dashed===false?void 0:"4 4"}),ae.label?jsx("text",{x:w.vertical?w.innerWidth:re+4,y:w.vertical?ce:8,textAnchor:w.vertical?"end":"start",className:"fill-gray-500 text-[10px] dark:fill-gray-400",children:ae.label}):null]},`${ae.value}-${ae.label??""}`)})]}),jsx("g",{transform:`translate(${w.margin.left}, ${w.margin.top+w.innerHeight})`,children:(w.vertical?o.hidden:a?.hidden)?null:jsx(tt,{orientation:"bottom",ticks:w.vertical?w.categoryTicks:w.valueTicks,length:w.innerWidth,label:w.vertical?o.label:a?.label,size:l})}),jsx("g",{transform:`translate(${w.margin.left}, ${w.margin.top})`,children:(w.vertical?a?.hidden:o.hidden)?null:jsx(tt,{orientation:"left",ticks:w.vertical?w.valueTicks:w.categoryTicks,length:w.innerHeight,showLine:false,label:w.vertical?a?.label:o.label,size:l})})]}),pe&&ze&&W!==false?jsx(vt,{x:ze.x,y:ze.y,containerWidth:e,children:typeof W=="function"?W(pe):jsx(Tr,{title:pe.xLabel,points:pe.points})}):null]})}function p0({data:e,series:t,x:r,y:n,height:o=260,width:a,size:s="md",grid:l="y",legend:i,tooltip:c=true,tableView:d=false,emphasis:u,title:f,description:m,loading:g=false,emptyState:y,error:b=false,errorState:h,onRetry:x,actions:L,onPointClick:C,orientation:S="vertical",stack:v="none",diverging:R,bins:N,curve:M="linear",barSize:P,sort:E="none",showValues:W=false,referenceLines:T,annotations:O,overlay:H,patterns:k=false,legendToggle:z=true,brush:A=false,onBrush:I,brushLabel:X,sync:$=true,margin:K,locale:D,plotLabel:B,className:w,...G}){let q=Ve(),[j,U]=useState(()=>new Set),F=useId(),_=N!==void 0&&N!==false,J=_||typeof R!="string"?null:R,ne=!_&&typeof R=="number"?R:0,Y=useMemo(()=>{let Re=J===null?null:Go([0,Math.max(1,t.length-1)],{center:Math.max(0,t.findIndex(He=>He.key===J)),symmetric:false});return t.map((He,Ee)=>({...He,slot:Ee,hidden:He.hidden||j.has(He.key),color:Re&&!He.color&&!u?He.key===J?Ar:Re(Ee):Br(He,Ee,u)}))},[t,j,u,J]),ee=useMemo(()=>Re=>pt(Re,D),[D]),Z=useMemo(()=>{if(!_)return null;t.length>1&&!hl&&(hl=true,console.warn("[@synertech/ui] BarChart was given `bins` and more than one series. A histogram counts a single field \u2014 the extra series are ignored. Facet the chart, or draw the distributions side by side."));let Re=t[0]?.key??"count",He=r.format?$e=>r.format($e,0):$e=>ee($e),Ee=gl(e.map($e=>Ae($e,r.key)),N);return {rows:Ee.map($e=>({[r.key]:$e.from,[Re]:$e.count})),labels:Ee.map($e=>`${He($e.from)}\u2013${He($e.to)}`)}},[_,N,e,r.key,r.format,t,ee]),ie=useMemo(()=>{if(Z)return Z.rows;if(E==="none")return e;let Re=Y.filter(Ee=>!Ee.hidden).map(Ee=>Ee.key),He=Ee=>Re.reduce(($e,bt)=>$e+(Ae(Ee,bt)??0),0);return [...e].sort((Ee,$e)=>E==="asc"?He(Ee)-He($e):He($e)-He(Ee))},[Z,e,E,Y]),V=!_&&v==="percent",oe=useMemo(()=>V?{domain:J===null?[0,100]:[-100,100],...n}:n,[V,J,n]),pe=useMemo(()=>{let Re=n?.format??(V?He=>Zt(He,{locale:D,alreadyScaled:true,maximumFractionDigits:0}):ee);return J===null?Re:He=>Re(Math.abs(He))},[n?.format,V,D,ee,J]),Te=useMemo(()=>Z?(Re,He)=>Z.labels[He]??"":r.format??(Re=>st(Re,D)),[Z,r.format,D]),ze=useMemo(()=>Z?{...r,scale:"category"}:r,[Z,r]),ae=useCallback(Re=>{U(He=>{let Ee=new Set(He);return Ee.has(Re)?Ee.delete(Re):Ee.add(Re),Ee});},[]),re=S==="vertical"?O:void 0;O&&S!=="vertical"&&!bl&&(bl=true,console.warn("[@synertech/ui] BarChart was given `annotations` and a horizontal orientation. Annotations are read on the category axis, which runs up the side there: they are ignored. Use `referenceLines` for a threshold on the value axis."));let ce=i===void 0?t.length>=2:i!==false,De=typeof i=="string"?i:"bottom",Ge=Y.filter(Re=>!Re.hidden),be=Ge.length,Me=useMemo(()=>{if(_||R===void 0||R===false||J!==null||be!==1)return null;let Re=vr(ie,Ge.map(Ee=>Ee.key)),He=Ko([...Re,ne],{domain:n?.domain,includeZero:n?.includeZero??ne===0,ticks:n?.ticks??5});return Go(He,{center:ne})},[_,R,J,be,Ge,ie,ne,n]);return jsx(xt,{title:f,description:m,height:o,width:a,size:s,loading:g,empty:ie.length===0||be===0,emptyState:y,error:b,errorState:h,onRetry:x,actions:L,tableView:d,legendPosition:De,legend:Me?jsx(Oa,{scale:Me,label:n?.label,format:pe,size:s,locale:D}):ce?jsx(jt,{items:Gr(Y,u,k),position:De,marker:"rect",size:s,onToggle:z?ae:void 0}):void 0,table:d?jsx(Ot,{data:ie,series:Y,xKey:ze.key,xLabel:r.label??r.key,formatX:Te,formatValue:ee,caption:typeof f=="string"?f:void 0}):void 0,className:w,...G,children:({width:Re})=>jsx(m0,{width:Re,height:o,data:ie,resolvedSeries:Y,x:ze,y:oe,grid:l,size:s,orientation:S,stack:_?"none":v,center:ne,centerKey:J,valueColors:Me,binned:_,curve:M,barSize:P,showValues:W,referenceLines:T,annotations:re,annotationsLabel:q.chartAnnotations,patterns:k&&Me===null,patternBaseId:F,overlay:H,brush:A,onBrush:I,brushLabel:X??q.chartBrush,syncEnabled:$,margin:K,tooltip:c,onPointClick:C,plotLabel:B,formatValue:pe,formatRaw:ee,formatX:Te})})}function _d({className:e}){return jsx("svg",{className:e,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:jsx("path",{d:"M13 16H12V12H11M12 8H12.01M21 12C21 16.97 16.97 21 12 21C7.03 21 3 16.97 3 12C3 7.03 7.03 3 12 3C16.97 3 21 7.03 21 12Z",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}function f0({className:e}){return jsx("svg",{className:e,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:jsx("path",{d:"M9 12L11 14L15 10M21 12C21 16.97 16.97 21 12 21C7.03 21 3 16.97 3 12C3 7.03 7.03 3 12 3C16.97 3 21 7.03 21 12Z",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}function h0({className:e}){return jsx("svg",{className:e,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:jsx("path",{d:"M12 9V13M12 17H12.01M10.29 3.86L1.82 18C1.65 18.3 1.55 18.65 1.55 18.99C1.55 19.34 1.64 19.69 1.81 19.99C1.99 20.29 2.24 20.55 2.54 20.72C2.84 20.901 3.18 20.99 3.53 21H20.47C20.82 20.99 21.16 20.901 21.46 20.72C21.76 20.55 22.01 20.29 22.19 19.99C22.36 19.69 22.449 19.34 22.448 18.99C22.447 18.65 22.35 18.3 22.18 18L13.71 3.86C13.53 3.57 13.28 3.32 12.98 3.15C12.68 2.99 12.34 2.9 12 2.9C11.66 2.9 11.32 2.99 11.02 3.15C10.72 3.32 10.47 3.57 10.29 3.86Z",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}function b0({className:e}){return jsx("svg",{className:e,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:jsx("path",{d:"M12 8V12M12 16H12.01M21 12C21 16.97 16.97 21 12 21C7.03 21 3 16.97 3 12C3 7.03 7.03 3 12 3C16.97 3 21 7.03 21 12Z",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}function xl({className:e}){return jsx("svg",{className:e,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:jsx("path",{d:"M4 4L12 12M12 4L4 12",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}var y0={info:_d,success:f0,warning:h0,error:b0,default:_d},x0={info:"bg-blue-50 text-blue-800 border-blue-200 dark:bg-blue-900/20 dark:text-blue-300 dark:border-blue-800",success:"bg-green-50 text-green-800 border-green-200 dark:bg-green-900/20 dark:text-green-300 dark:border-green-800",warning:"bg-yellow-50 text-yellow-800 border-yellow-200 dark:bg-yellow-900/20 dark:text-yellow-300 dark:border-yellow-800",error:"bg-red-50 text-red-800 border-red-200 dark:bg-red-900/20 dark:text-red-300 dark:border-red-800",default:"bg-gray-50 text-gray-800 border-gray-200 dark:bg-gray-800 dark:text-gray-300 dark:border-gray-700"},v0={info:"text-blue-600 dark:text-blue-400",success:"text-green-600 dark:text-green-400",warning:"text-yellow-600 dark:text-yellow-400",error:"text-red-600 dark:text-red-400",default:"text-gray-600 dark:text-gray-400"};function C0({type:e="default",title:t,description:r,children:n,icon:o,action:a,closable:s=false,onClose:l,fullWidth:i=false,className:c,...d}){let[u,f]=useState(true);if(!u)return null;let m=()=>{f(false),l?.();},g=y0[e],y=n??r;return jsxs("div",{role:"alert",className:p("flex items-start gap-3 border px-4 py-3",i?"w-full":"rounded-lg",x0[e],c),...d,children:[jsx("div",{className:p("shrink-0 mt-0.5",v0[e]),children:o??jsx(g,{className:"w-5 h-5"})}),jsxs("div",{className:"flex-1 min-w-0",children:[t&&jsx("div",{className:"font-semibold text-sm",children:t}),y&&jsx("div",{className:p("text-sm",t?"mt-1 opacity-90":false),children:y}),a&&jsx("div",{className:"mt-3",children:a})]}),s&&jsx("button",{type:"button",onClick:m,className:p("shrink-0 rounded-md p-1 transition-colors","hover:bg-black/10 dark:hover:bg-white/10","focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-current"),"aria-label":"Close banner",children:jsx(xl,{className:"w-4 h-4"})})]})}function k0({title:e,description:t,children:r,action:n,backgroundImage:o,closable:a=false,onClose:s,fullWidth:l=false,className:i,...c}){let[d,u]=useState(true);if(!d)return null;let f=()=>{u(false),s?.();},m=r??t;return jsxs("div",{className:p("relative overflow-hidden bg-gray-900 text-white",l?"w-full":"rounded-xl","py-12 px-6 sm:px-12",i),style:o?{backgroundImage:`url(${o})`,backgroundSize:"cover",backgroundPosition:"center"}:void 0,...c,children:[o&&jsx("div",{className:"absolute inset-0 bg-black/50","aria-hidden":"true"}),jsxs("div",{className:"relative z-10 max-w-3xl mx-auto text-center",children:[e&&jsx("h2",{className:"text-2xl sm:text-3xl lg:text-4xl font-bold tracking-tight",children:e}),m&&jsx("div",{className:p("text-base sm:text-lg opacity-90",e?"mt-4":false),children:m}),n&&jsx("div",{className:"mt-6",children:n})]}),a&&jsx("button",{type:"button",onClick:f,className:p("absolute top-4 right-4 z-10 rounded-md p-1.5 text-white/80 transition-colors","hover:text-white hover:bg-white/10","focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-white"),"aria-label":"Close banner",children:jsx(xl,{className:"w-5 h-5"})})]})}function w0({title:e,description:t,children:r,icon:n,action:o,badge:a,closable:s=false,onClose:l,fullWidth:i=false,className:c,...d}){let[u,f]=useState(true);if(!u)return null;let m=()=>{f(false),l?.();},g=r??t;return jsxs("div",{className:p("relative flex items-center gap-4 bg-linear-to-r from-indigo-600 to-purple-600 text-white px-4 py-3",i?"w-full":"rounded-lg",c),...d,children:[n&&jsx("div",{className:"shrink-0",children:n}),a&&jsx("span",{className:"shrink-0 inline-flex items-center rounded-full bg-white/20 px-2.5 py-0.5 text-xs font-semibold uppercase tracking-wide",children:a}),jsxs("div",{className:"flex-1 min-w-0 flex flex-wrap items-center gap-x-4 gap-y-1",children:[e&&jsx("span",{className:"font-semibold text-sm",children:e}),g&&jsx("span",{className:"text-sm opacity-90",children:g})]}),o&&jsx("div",{className:"shrink-0",children:o}),s&&jsx("button",{type:"button",onClick:m,className:p("shrink-0 rounded-md p-1 text-white/80 transition-colors","hover:text-white hover:bg-white/10","focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-white"),"aria-label":"Close banner",children:jsx(xl,{className:"w-4 h-4"})})]})}function Xd({variant:e="notification",...t}){switch(e){case "hero":return jsx(k0,{...t});case "promotion":return jsx(w0,{...t});default:return jsx(C0,{...t})}}Xd.displayName="Banner";var N0={sm:"text-xs",md:"text-sm",lg:"text-base"};function S0({items:e,separator:t="/",size:r="md",maxItems:n,itemColor:o="text-gray-500 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-100",activeColor:a="text-gray-700 font-medium dark:text-gray-200",separatorColor:s="text-gray-400 dark:text-gray-500",className:l,...i}){let c=e,d=false;if(n&&e.length>n){d=true;let u=e[0],f=e.slice(-(n-1));c=[u,...f];}return jsx("nav",{"aria-label":"Breadcrumb",className:p("inline-flex items-center",N0[r],l),...i,children:jsx("ol",{className:"inline-flex items-center space-x-1 md:space-x-2",children:c.map((u,f)=>{let m=f===c.length-1;return jsxs("li",{className:"inline-flex items-center",children:[d&&f===1&&jsxs(Fragment,{children:[jsx("span",{className:p("mx-1 select-none",s),children:"..."}),jsx("span",{className:p("mx-1 select-none",s),"aria-hidden":"true",children:t})]}),u.href||u.onClick?jsxs("a",{href:u.href,onClick:u.onClick,className:p("inline-flex items-center gap-1.5 transition-colors",m?a:o),"aria-current":m?"page":void 0,children:[u.icon&&jsx("span",{className:"inline-flex","aria-hidden":"true",children:u.icon}),jsx("span",{children:u.label})]}):jsxs("span",{className:p("inline-flex items-center gap-1.5",m?a:o),"aria-current":m?"page":void 0,children:[u.icon&&jsx("span",{className:"inline-flex","aria-hidden":"true",children:u.icon}),jsx("span",{children:u.label})]}),!m&&jsx("span",{className:p("mx-2 select-none",s),"aria-hidden":"true",children:t})]},u.href??u.label)})})})}var D0=22,E0=.42,Gd=3,Ud=8,L0=12,M0=["fill-gray-300 dark:fill-gray-500","fill-gray-200 dark:fill-gray-600","fill-gray-100 dark:fill-gray-700","fill-gray-50 dark:fill-gray-800"],I0=memo(function({rows:t,color:r}){return jsx("g",{children:t.map(n=>jsxs("g",{children:[n.bands.map(o=>jsx("path",{d:o.d,className:o.className,fill:o.fill},o.key)),n.measure?jsx("path",{d:n.measure,fill:r}):null,n.target?jsx("line",{x1:n.target.x,y1:n.target.y1,x2:n.target.x,y2:n.target.y2,strokeWidth:2,strokeLinecap:"round",className:"stroke-gray-900 dark:stroke-white"}):null,n.label?jsx("text",{x:n.label.x,y:n.label.y,dominantBaseline:"middle",className:"fill-gray-700 text-[11px] font-medium [font-variant-numeric:tabular-nums] dark:fill-gray-200",children:n.label.text}):null]},n.key))})});function A0({width:e,height:t,rows:r,x:n,size:o,sharedDomain:a,showValues:s,trackSize:l,rangeColors:i,color:c,tooltip:d,plotLabel:u,formatValue:f,onRowClick:m}){let[g,y]=useState(null),b=useMemo(()=>{let S=r.map(A=>A.label),v=s?r.map(A=>A.formattedValue):[],R={top:6,right:s?Pr(v)+Ud*2:8,bottom:a?26+(n.label?16:0):6,left:n.hidden?8:n.height??Pr(S)+L0},N=Math.max(0,e-R.left-R.right),M=Math.max(0,t-R.top-R.bottom),P=bn(r.map((A,I)=>I),[0,M],{paddingInner:.34}),E=Math.min(l??D0,P.bandwidth),W=Math.max(3,E*E0),T=i??M0,O=i!==void 0,H=r.map((A,I)=>{let X=Math.max(0,A.value??0,A.target??0,...A.ranges.length>0?A.ranges:[0]),$=a??(A.ranges.length>0?[0,X]:Es(0,X,4)),K=Ir($,[0,N]),D=P(I)+(P.bandwidth-E)/2,B=D+E/2,w=A.ranges.length>0?[...A.ranges].sort((U,F)=>U-F):[$[1]],G=$[0],q=w.map((U,F)=>{let _=K(G),J=K(Math.max(G,U));G=U;let ne=T[Math.min(F,T.length-1)];return {key:`${I}-${F}`,d:fr({x:_,y:D,width:Math.max(0,J-_),height:E,radius:0}),className:O?void 0:ne,fill:O?ne:void 0}}),j=A.value===null?null:fr({x:K($[0]),y:B-W/2,width:Math.max(0,K(A.value)-K($[0])),height:W,radius:2,round:"right"});return {key:`${I}`,bands:q,measure:j,target:A.target===null?null:{x:K(A.target),y1:D-Gd,y2:D+E+Gd},label:s?{x:N+Ud,y:B,text:A.formattedValue}:null,top:P(I),height:P.bandwidth}}),k=n.hidden?[]:r.map((A,I)=>({value:A.x,offset:P.center(I),label:A.label})),z=a?Wa(a[0],a[1],5).map(A=>({value:A,offset:Ir(a,[0,N])(A),label:f(A)})):[];return {margin:R,innerWidth:N,innerHeight:M,band:P,rendered:H,categoryTicks:k,valueTicks:z,centers:r.map((A,I)=>P.center(I))}},[r,n,e,t,a,s,l,i,f]),h=useCallback(S=>{if(d===false||r.length===0)return;let v=S.currentTarget.getBoundingClientRect(),R=S.clientY-v.top-b.margin.top;y(Dt(b.centers,R));},[d,r.length,b.margin.top,b.centers]),x=useCallback(S=>{if(r.length===0)return;let v=r.length-1,R=g??0,N=S.key==="ArrowDown"?Math.min(v,R+1):S.key==="ArrowUp"?Math.max(0,R-1):S.key==="Home"?0:S.key==="End"?v:S.key==="Escape"?null:void 0;N!==void 0&&(S.preventDefault(),y(N));},[r.length,g]),L=useCallback(()=>{!m||g===null||m(r[g]);},[m,g,r]),C=g===null?null:r[g];return jsxs(Fragment,{children:[jsxs("svg",{width:e,height:t,role:"img","aria-label":u??r.map(S=>S.label).join(", "),tabIndex:0,className:"touch-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500",onPointerMove:h,onPointerLeave:()=>y(null),onKeyDown:x,onBlur:()=>y(null),onClick:L,children:[jsxs("g",{transform:`translate(${b.margin.left}, ${b.margin.top})`,children:[g!==null&&b.rendered[g]?jsx("rect",{x:-4,y:b.rendered[g].top,width:b.innerWidth+8,height:b.rendered[g].height,rx:4,className:"fill-gray-400 dark:fill-gray-500",opacity:.12,"aria-hidden":"true"}):null,jsx(I0,{rows:b.rendered,color:c})]}),jsx("g",{transform:`translate(${b.margin.left}, ${b.margin.top})`,children:n.hidden?null:jsx(tt,{orientation:"left",ticks:b.categoryTicks,length:b.innerHeight,showLine:false,tickSize:0,size:o})}),a?jsx("g",{transform:`translate(${b.margin.left}, ${b.margin.top+b.innerHeight})`,children:jsx(tt,{orientation:"bottom",ticks:b.valueTicks,length:b.innerWidth,label:n.label,size:o})}):null]}),C&&g!==null&&d!==false?jsx(vt,{x:b.margin.left+b.innerWidth/2,y:b.margin.top+b.centers[g],containerWidth:e,children:typeof d=="function"?d(C):jsxs("div",{className:"flex flex-col gap-1",children:[jsx("div",{className:"font-medium text-gray-900 dark:text-gray-100",children:C.label}),jsxs("div",{className:"flex items-center gap-2",children:[jsx("span",{className:"h-0.5 w-3 shrink-0 rounded-full",style:{backgroundColor:c},"aria-hidden":"true"}),jsx("span",{className:"font-semibold text-gray-900 [font-variant-numeric:tabular-nums] dark:text-gray-100",children:C.formattedValue}),C.attainment!==null?jsx("span",{className:"text-gray-500 [font-variant-numeric:tabular-nums] dark:text-gray-400",children:Zt(C.attainment)}):null]})]})}):null]})}function z0({data:e,x:t,value:r,target:n,ranges:o,domain:a,normalize:s="row",showValues:l=true,trackSize:i,rangeColors:c,color:d,height:u,width:f,size:m="md",tooltip:g=true,tableView:y=false,title:b,description:h,loading:x=false,emptyState:L,error:C=false,errorState:S,onRetry:v,actions:R,locale:N,plotLabel:M,valueLabel:P,targetLabel:E,format:W,onRowClick:T,className:O,...H}){let k=Ve(),z=useMemo(()=>W??(B=>pt(B,N)),[W,N]),A=useMemo(()=>t.format??(B=>st(B,N)),[t.format,N]),I=useMemo(()=>e.map((B,w)=>{let G=gt(B,t.key,w),q=Ae(B,r),j=n?Ae(B,n):null,U=o?B[o]:void 0,F=Array.isArray(U)?U.map(_=>typeof _=="number"?_:Number(_)).filter(_=>Number.isFinite(_)):[];return {index:w,x:G,label:A(G,w),value:q,target:j,ranges:F,formattedValue:q===null?"\u2014":z(q),formattedTarget:j===null?"\u2014":z(j),attainment:q===null||j===null||j===0?null:q/j,datum:B}}),[e,t.key,r,n,o,z,A]),X=useMemo(()=>{if(a)return a;if(s!=="shared")return null;let B=I.reduce((w,G)=>Math.max(w,G.value??0,G.target??0,...G.ranges),0);return Es(0,B,5)},[a,s,I]),$=u??Math.max(72,I.length*34+(X?30:12)),K=useMemo(()=>[{key:r,label:P??k.chartValue},...n?[{key:n,label:E??k.chartTarget}]:[]],[r,n,P,E,k.chartValue,k.chartTarget]),D=d??zr(0);return jsx(xt,{title:b,description:h,height:$,width:f,size:m,loading:x,empty:I.length===0,emptyState:L,error:C,errorState:S,onRetry:v,actions:R,tableView:y,table:y?jsx(Ot,{data:e,series:K,xKey:t.key,xLabel:t.label??t.key,formatX:A,formatValue:z,caption:typeof b=="string"?b:void 0}):void 0,className:O,...H,children:({width:B})=>jsx(A0,{width:B,height:$,rows:I,x:t,size:m,sharedDomain:X,showValues:l,trackSize:i,rangeColors:c,color:D,tooltip:g,plotLabel:M,formatValue:z,onRowClick:T})})}function H0({className:e}){return jsxs("svg",{className:p("animate-spin",e),xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","aria-hidden":"true",children:[jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]})}var W0={sm:"px-3 py-1.5 text-xs gap-1.5",md:"px-4 py-2 text-sm gap-2",lg:"px-5 py-2.5 text-base gap-2",xl:"px-6 py-3 text-lg gap-2.5"},V0={sm:"p-1.5",md:"p-2",lg:"p-2.5",xl:"p-3"},zs={sm:"h-3.5 w-3.5",md:"h-4 w-4",lg:"h-5 w-5",xl:"h-6 w-6"},O0={none:"rounded-none",sm:"rounded-sm",md:"rounded-md",lg:"rounded-lg",full:"rounded-full"};function Ft({label:e,children:t,onClick:r,disabled:n=false,className:o,type:a="button",size:s="md",loading:l=false,leftIcon:i,rightIcon:c,icon:d,fullWidth:u=false,rounded:f="lg",bgColor:m="bg-blue-600 hover:bg-blue-700",textColor:g="text-white",focusColor:y="focus:ring-blue-300",selected:b=false,value:h,showFocusOnClick:x=false,...L}){let C=n||l,S=d!==void 0&&!t&&!e,v=p("inline-flex items-center justify-center font-medium transition-colors focus:outline-none disabled:opacity-50 disabled:cursor-not-allowed",x?"focus:ring-4":"focus-visible:ring-4"),R=p(b?"bg-blue-700 text-white ring-2 ring-blue-500":m,!b&&g,y&&x&&`focus:ring-4 ${y}`,y&&!x&&`focus-visible:ring-4 ${y}`);return jsx("button",{type:a,onClick:r,disabled:C,"data-value":h,className:p(v,S?V0[s]:W0[s],O0[f],R,u&&"w-full",o),...L,children:l?jsx(H0,{className:zs[s]}):S?jsx("span",{className:zs[s],children:d}):jsxs(Fragment,{children:[i&&jsx("span",{className:zs[s],children:i}),t??e,c&&jsx("span",{className:zs[s],children:c})]})})}function ra({children:e,orientation:t="horizontal",size:r,fullWidth:n=false,selectedValue:o,onChange:a,className:s}){let i=Cl__default.Children.toArray(e).filter(d=>Cl__default.isValidElement(d)&&typeof d.type!="string"),c=(d,u)=>f=>{d!==void 0&&a&&a(d),u&&u(f);};return jsx("div",{className:p("inline-flex",t==="horizontal"?"flex-row":"flex-col",n&&"w-full",s),role:"group",children:i.map((d,u)=>{let f=u===0,m=u===i.length-1,g=!f&&!m,y=d.props.value,b=o!==void 0&&y===o,h=p(t==="horizontal"&&f&&"rounded-r-none",t==="horizontal"&&m&&"rounded-l-none",t==="horizontal"&&g&&"rounded-none",t==="horizontal"&&!f&&"-ml-px",t==="vertical"&&f&&"rounded-b-none",t==="vertical"&&m&&"rounded-t-none",t==="vertical"&&g&&"rounded-none",t==="vertical"&&!f&&"-mt-px",n&&"flex-1");return Cl__default.cloneElement(d,{...d.props,size:r??d.props.size,selected:b||d.props.selected,onClick:c(y,d.props.onClick),className:p(h,d.props.className)})})})}var X0=10080*60*1e3;function tr(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate())}function vo(e){return new Date(e.getFullYear(),e.getMonth(),1)}function Sn(e,t){return new Date(e.getFullYear(),e.getMonth(),e.getDate()+t)}function Ur(e,t){return new Date(e.getFullYear(),e.getMonth()+t,1)}function wl(e){return new Date(e.getFullYear(),e.getMonth()+1,0).getDate()}function an(e,t){return !e||!t?false:e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()}function kl(e,t){return e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()}function $n(e,t){return e.getFullYear()*12+e.getMonth()-(t.getFullYear()*12+t.getMonth())}function Hs(e){let t=`${e.getMonth()+1}`.padStart(2,"0"),r=`${e.getDate()}`.padStart(2,"0");return `${e.getFullYear()}-${t}-${r}`}function G0(e){let t=tr(e);t.setDate(t.getDate()-(t.getDay()+6)%7+3);let r=new Date(t.getFullYear(),0,4);return r.setDate(r.getDate()-(r.getDay()+6)%7+3),1+Math.round((t.getTime()-r.getTime())/X0)}function jd(e,t,r){return t&&e<tr(t)?tr(t):r&&e>tr(r)?tr(r):e}function U0(e,t,r){let n=vo(e),o=(n.getDay()-t+7)%7,a=Sn(n,-o),s=r?6:Math.ceil((o+wl(e))/7);return Array.from({length:s},(l,i)=>Array.from({length:7},(c,d)=>Sn(a,i*7+d)))}function K0({className:e}){return jsx("svg",{className:e,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"})})}function Y0({className:e}){return jsx("svg",{className:e,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})})}var j0={sm:{day:"h-7 w-7 text-xs",head:"h-7 w-7 text-[10px]",caption:"text-xs",nav:"h-6 w-6",icon:"h-3 w-3",padding:"p-2",gap:"gap-3",footer:"text-xs",select:"text-xs py-0.5 pl-1 pr-5"},md:{day:"h-9 w-9 text-sm",head:"h-9 w-9 text-xs",caption:"text-sm",nav:"h-7 w-7",icon:"h-4 w-4",padding:"p-3",gap:"gap-4",footer:"text-sm",select:"text-sm py-1 pl-1.5 pr-6"},lg:{day:"h-11 w-11 text-base",head:"h-11 w-11 text-sm",caption:"text-base",nav:"h-9 w-9",icon:"h-5 w-5",padding:"p-4",gap:"gap-5",footer:"text-sm",select:"text-base py-1.5 pl-2 pr-7"}},q0={primary:"bg-blue-600 text-white hover:bg-blue-700 dark:bg-blue-500 dark:hover:bg-blue-600",success:"bg-green-600 text-white hover:bg-green-700 dark:bg-green-500 dark:hover:bg-green-600",warning:"bg-yellow-500 text-white hover:bg-yellow-600 dark:bg-yellow-400 dark:text-gray-900 dark:hover:bg-yellow-500",error:"bg-red-600 text-white hover:bg-red-700 dark:bg-red-500 dark:hover:bg-red-600",info:"bg-cyan-600 text-white hover:bg-cyan-700 dark:bg-cyan-500 dark:hover:bg-cyan-600",neutral:"bg-gray-700 text-white hover:bg-gray-800 dark:bg-gray-500 dark:hover:bg-gray-400"},Z0={primary:"bg-blue-50 dark:bg-blue-900/30",success:"bg-green-50 dark:bg-green-900/30",warning:"bg-yellow-50 dark:bg-yellow-900/30",error:"bg-red-50 dark:bg-red-900/30",info:"bg-cyan-50 dark:bg-cyan-900/30",neutral:"bg-gray-100 dark:bg-gray-700/40"},Q0={primary:"text-blue-900 dark:text-blue-100",success:"text-green-900 dark:text-green-100",warning:"text-yellow-900 dark:text-yellow-100",error:"text-red-900 dark:text-red-100",info:"text-cyan-900 dark:text-cyan-100",neutral:"text-gray-900 dark:text-gray-100"},J0={primary:"font-semibold text-blue-600 dark:text-blue-400",success:"font-semibold text-green-600 dark:text-green-400",warning:"font-semibold text-yellow-600 dark:text-yellow-400",error:"font-semibold text-red-600 dark:text-red-400",info:"font-semibold text-cyan-600 dark:text-cyan-400",neutral:"font-semibold text-gray-900 dark:text-gray-100"},xo={primary:"focus-visible:ring-blue-500",success:"focus-visible:ring-green-500",warning:"focus-visible:ring-yellow-500",error:"focus-visible:ring-red-500",info:"focus-visible:ring-cyan-500",neutral:"focus-visible:ring-gray-500"};function Ws(e,t){if(e==="multiple")return Array.isArray(t)?t.map(tr):[];if(e==="range"){let r=t??null;return {from:r?.from?tr(r.from):null,to:r?.to?tr(r.to):null}}return t instanceof Date?tr(t):null}function qd(e){return e?e instanceof Date?e:Array.isArray(e)?e[0]??null:e.from??e.to??null:null}function Nl(e){let{mode:t="single",value:r,defaultValue:n,onChange:o,max:a,month:s,defaultMonth:l,onMonthChange:i,numberOfMonths:c=1,weekStartsOn:d=0,locale:u,size:f="md",color:m="primary",minDate:g,maxDate:y,disabledDates:b,disabled:h=false,showOutsideDays:x=true,showWeekNumbers:L=false,fixedWeeks:C=false,captionLayout:S="label",fromYear:v,toYear:R,todayButton:N=false,clearButton:M=false,footer:P,bordered:E=true,renderDay:W,labels:T,className:O,...H}=e,k=j0[f],z=Math.max(1,c),A=useMemo(()=>tr(new Date),[]),I=r!==void 0,[X,$]=useState(()=>Ws(t,n)),K=I?Ws(t,r):X,D=s!==void 0,[B,w]=useState(()=>vo(l??qd(Ws(t,n??r))??new Date)),G=D?vo(s):B,q=useCallback(Ce=>{let we=vo(Ce);D||w(we),i?.(we);},[D,i]),j=useRef(null),U=useRef(false),[F,_]=useState(()=>{let Ce=qd(Ws(t,n??r)),we=vo(l??s??Ce??new Date),se=Ce&&kl(Ce,we)?Ce:kl(tr(new Date),we)?tr(new Date):we;return jd(se,g,y)}),J=Ur(G,z-1),Y=$n(F,G)>=0&&$n(F,J)<=0?F:G;useEffect(()=>{if(!U.current)return;U.current=false,j.current?.querySelector(`[data-day="${Hs(F)}"]:not([data-outside])`)?.focus();},[F,G]);let ee=useCallback(Ce=>{let we=jd(tr(Ce),g,y);U.current=true,_(we);let se=Ur(G,z-1);$n(we,G)<0?q(we):$n(we,se)>0&&q(Ur(we,-(z-1)));},[G,z,g,y,q]),Z=useCallback(Ce=>h||g&&Ce<tr(g)||y&&Ce>tr(y)?true:typeof b=="function"?b(Ce):Array.isArray(b)?b.some(we=>an(we,Ce)):false,[h,g,y,b]),[ie,V]=useState(null),oe=useCallback(Ce=>{I||$(Ce),o?.(Ce);},[I,o]),pe=useCallback(Ce=>{let we=tr(Ce);if(Z(we))return;if(t==="multiple"){let de=K??[];if(de.some(ve=>an(ve,we))){oe(de.filter(ve=>!an(ve,we)));return}if(a!==void 0&&de.length>=a)return;oe([...de,we].sort((ve,Be)=>ve.getTime()-Be.getTime()));return}if(t==="range"){let de=K??{from:null,to:null};if(!de.from||de.to){oe({from:we,to:null});return}oe(we<de.from?{from:we,to:de.from}:{from:de.from,to:we});return}oe(an(K,we)?null:we);},[t,K,a,oe,Z]),Te=useCallback(Ce=>{pe(Ce),_(tr(Ce)),$n(Ce,G)<0?q(Ce):$n(Ce,Ur(G,z-1))>0&&q(Ur(Ce,-(z-1)));},[pe,G,z,q]),ze=!h&&(!g||$n(G,vo(g))>0),ae=!h&&(!y||$n(Ur(G,z-1),vo(y))<0),re=useCallback(()=>{q(Ur(G,-1));},[G,q]),ce=useCallback(()=>{q(Ur(G,1));},[G,q]),De=useCallback(Ce=>{if(h)return;let we=F;switch(Ce.key){case "ArrowLeft":Ce.preventDefault(),ee(Sn(we,-1));break;case "ArrowRight":Ce.preventDefault(),ee(Sn(we,1));break;case "ArrowUp":Ce.preventDefault(),ee(Sn(we,-7));break;case "ArrowDown":Ce.preventDefault(),ee(Sn(we,7));break;case "Home":Ce.preventDefault(),ee(Sn(we,-((we.getDay()-d+7)%7)));break;case "End":Ce.preventDefault(),ee(Sn(we,6-(we.getDay()-d+7)%7));break;case "PageUp":{Ce.preventDefault();let se=Ce.shiftKey?-12:-1,de=Ur(we,se),ke=Math.min(we.getDate(),wl(de));ee(new Date(de.getFullYear(),de.getMonth(),ke));break}case "PageDown":{Ce.preventDefault();let se=Ce.shiftKey?12:1,de=Ur(we,se),ke=Math.min(we.getDate(),wl(de));ee(new Date(de.getFullYear(),de.getMonth(),ke));break}}},[h,F,ee,d]),Ge=useMemo(()=>{let Ce=new Intl.DateTimeFormat(u,{weekday:"short"}),we=new Intl.DateTimeFormat(u,{weekday:"long"}),se=new Date(2024,0,7);return Array.from({length:7},(de,ke)=>{let ve=Sn(se,(d+ke)%7);return {short:Ce.format(ve),long:we.format(ve)}})},[u,d]),be=useMemo(()=>{let Ce=new Intl.DateTimeFormat(u,{month:"long"});return Array.from({length:12},(we,se)=>Ce.format(new Date(2024,se,1)))},[u]),Me=useMemo(()=>new Intl.DateTimeFormat(u,{month:"long",year:"numeric"}),[u]),Re=useMemo(()=>new Intl.DateTimeFormat(u,{dateStyle:"full"}),[u]),He=useMemo(()=>{if(S!=="dropdown")return [];let Ce=A.getFullYear(),we=v??g?.getFullYear()??Ce-100,se=R??y?.getFullYear()??Ce+10;return se<we?[we]:Array.from({length:se-we+1},(de,ke)=>we+ke)},[S,v,R,g,y,A]),Ee=t==="range"?K:null,$e=Ee&&Ee.from&&!Ee.to&&ie&&ie>Ee.from?ie:null,bt=Ee?.to??$e,Kt=useCallback((Ce,we)=>{let se=!kl(Ce,we),de=Z(Ce),ke=false,ve=false,Be=false,Pe=false;return t==="multiple"?ke=(K??[]).some(ye=>an(ye,Ce)):t==="range"?(ve=an(Ee?.from,Ce),Be=an(bt,Ce),ke=ve||Be,Pe=!!(Ee?.from&&bt&&Ce>Ee.from&&Ce<bt)):ke=an(K,Ce),{selected:ke,today:an(Ce,A),outside:se,disabled:de,rangeStart:ve,rangeEnd:Be,inRange:Pe}},[t,K,Ee,bt,Z,A]),dr=Ce=>{let we=Ur(G,Ce),se=U0(we,d,C),de=Ce===0,ke=Ce===z-1;return jsxs("div",{className:"flex flex-col",children:[jsxs("div",{className:"mb-2 flex items-center justify-between",children:[jsx("button",{type:"button",onClick:re,disabled:!ze,"aria-label":T?.previousMonth??"Previous month",className:p("inline-flex items-center justify-center rounded-md transition-colors","text-gray-600 hover:bg-gray-100 dark:text-gray-300 dark:hover:bg-gray-700","focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-1 dark:focus-visible:ring-offset-gray-900",xo[m],k.nav,!ze&&"cursor-not-allowed opacity-40 hover:bg-transparent dark:hover:bg-transparent",!de&&"invisible"),children:jsx(K0,{className:k.icon})}),S==="dropdown"?jsxs("div",{className:"flex items-center gap-1",children:[jsx("select",{"aria-label":T?.monthSelect??"Month",value:we.getMonth(),disabled:h,onChange:ve=>q(new Date(we.getFullYear(),Number(ve.target.value)-Ce,1)),className:p("rounded-md border border-gray-300 bg-white font-medium text-gray-900","dark:border-gray-600 dark:bg-gray-800 dark:text-gray-100","focus:outline-none focus-visible:ring-2",xo[m],k.select,h&&"cursor-not-allowed opacity-50"),children:be.map((ve,Be)=>jsx("option",{value:Be,children:ve},ve))}),jsx("select",{"aria-label":T?.yearSelect??"Year",value:we.getFullYear(),disabled:h,onChange:ve=>q(new Date(Number(ve.target.value),we.getMonth()-Ce,1)),className:p("rounded-md border border-gray-300 bg-white font-medium text-gray-900","dark:border-gray-600 dark:bg-gray-800 dark:text-gray-100","focus:outline-none focus-visible:ring-2",xo[m],k.select,h&&"cursor-not-allowed opacity-50"),children:He.map(ve=>jsx("option",{value:ve,children:ve},ve))})]}):jsx("div",{"aria-live":"polite",className:p("font-semibold text-gray-900 dark:text-gray-100",k.caption),children:Me.format(we)}),jsx("button",{type:"button",onClick:ce,disabled:!ae,"aria-label":T?.nextMonth??"Next month",className:p("inline-flex items-center justify-center rounded-md transition-colors","text-gray-600 hover:bg-gray-100 dark:text-gray-300 dark:hover:bg-gray-700","focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-1 dark:focus-visible:ring-offset-gray-900",xo[m],k.nav,!ae&&"cursor-not-allowed opacity-40 hover:bg-transparent dark:hover:bg-transparent",!ke&&"invisible"),children:jsx(Y0,{className:k.icon})})]}),jsxs("table",{role:"grid","aria-label":Me.format(we),className:"border-collapse",children:[jsx("thead",{children:jsxs("tr",{children:[L&&jsxs("th",{scope:"col",className:p("font-normal text-gray-400 dark:text-gray-500",k.head),children:[jsx("span",{className:"sr-only",children:T?.weekNumber??"Week number"}),jsx("span",{"aria-hidden":"true",children:"#"})]}),Ge.map(ve=>jsx("th",{scope:"col",abbr:ve.long,className:p("font-medium uppercase text-gray-500 dark:text-gray-400",k.head),children:ve.short},ve.long))]})}),jsx("tbody",{children:se.map(ve=>jsxs("tr",{children:[L&&jsx("td",{className:p("text-center align-middle text-gray-400 dark:text-gray-500",k.head),children:G0(ve[0])}),ve.map(Be=>{let Pe=Kt(Be,we),ye=Hs(Be);if(Pe.outside&&!x)return jsx("td",{className:"p-0"},ye);let Xe=an(Be,Y)&&!Pe.outside,We=Pe.inRange||Pe.rangeStart&&!!bt||Pe.rangeEnd&&!!Ee?.from;return jsx("td",{role:"presentation",className:p("p-0",We&&Z0[m],We&&Pe.rangeStart&&"rounded-l-full",We&&Pe.rangeEnd&&"rounded-r-full"),children:jsx("button",{type:"button","data-day":ye,"data-selected":Pe.selected||void 0,"data-today":Pe.today||void 0,"data-outside":Pe.outside||void 0,role:"gridcell",tabIndex:Xe?0:-1,disabled:h,"aria-selected":Pe.selected,"aria-disabled":Pe.disabled||void 0,"aria-current":Pe.today?"date":void 0,"aria-label":Re.format(Be),onClick:()=>{Pe.disabled||Te(Be);},onMouseEnter:()=>t==="range"&&V(tr(Be)),onMouseLeave:()=>t==="range"&&V(null),onFocus:()=>_(tr(Be)),className:p("inline-flex items-center justify-center rounded-full transition-colors","focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-1 dark:focus-visible:ring-offset-gray-900",xo[m],k.day,Pe.selected?q0[m]:Pe.inRange?p(Q0[m],"hover:bg-gray-200/60 dark:hover:bg-gray-600/60"):Pe.today?p(J0[m],"hover:bg-gray-100 dark:hover:bg-gray-700"):p("text-gray-900 dark:text-gray-100","hover:bg-gray-100 dark:hover:bg-gray-700"),Pe.outside&&!Pe.selected&&"text-gray-400 dark:text-gray-500",Pe.disabled&&"cursor-not-allowed opacity-40 hover:bg-transparent dark:hover:bg-transparent"),children:W?W(Be,Pe):Be.getDate()})},ye)})]},Hs(ve[0])))})]})]},Hs(we))},_t=useCallback(()=>{q(A),_(A),Z(A)||pe(A);},[A,q,Z,pe]),Xt=useCallback(()=>{oe(t==="multiple"?[]:t==="range"?{from:null,to:null}:null);},[t,oe]),Mr=!!P||N||M;return jsxs("div",{ref:j,onKeyDown:De,className:p("inline-block bg-white dark:bg-gray-900",E&&"rounded-lg border border-gray-200 shadow-sm dark:border-gray-700",k.padding,h&&"opacity-60",O),...H,children:[jsx("div",{className:p("flex flex-wrap",k.gap),children:Array.from({length:z},(Ce,we)=>dr(we))}),Mr&&jsxs("div",{className:p("mt-3 flex items-center justify-between gap-2 border-t border-gray-200 pt-3 dark:border-gray-700",k.footer),children:[jsx("div",{className:"text-gray-600 dark:text-gray-400",children:P}),(N||M)&&jsxs("div",{className:"flex items-center gap-2",children:[N&&jsx("button",{type:"button",onClick:_t,disabled:h,className:p("rounded-md px-2 py-1 font-medium transition-colors","text-gray-700 hover:bg-gray-100 dark:text-gray-300 dark:hover:bg-gray-700","focus:outline-none focus-visible:ring-2",xo[m],h&&"cursor-not-allowed opacity-50"),children:T?.today??"Today"}),M&&jsx("button",{type:"button",onClick:Xt,disabled:h,className:p("rounded-md px-2 py-1 font-medium transition-colors","text-gray-700 hover:bg-gray-100 dark:text-gray-300 dark:hover:bg-gray-700","focus:outline-none focus-visible:ring-2",xo[m],h&&"cursor-not-allowed opacity-50"),children:T?.clear??"Clear"})]})]})]})}function eh(e,t,r){let n=r||"bg-white dark:bg-gray-800",o=t||"border-gray-200 dark:border-gray-700";switch(e){case "outlined":return p("border-2 bg-transparent",o);case "elevated":return p("shadow-lg border-0",n);case "filled":return p(r||"bg-gray-100 dark:bg-gray-700","border-0");default:return p("border",o,n)}}function th(e){switch(e){case "sm":return "max-w-sm";case "lg":return "max-w-2xl";default:return "max-w-md"}}function rh(e){switch(e){case "none":return "rounded-none";case "sm":return "rounded-sm";case "md":return "rounded-md";case "xl":return "rounded-xl";case "full":return "rounded-3xl";default:return "rounded-lg"}}function nh(e){switch(e){case "none":return "";case "sm":return "p-2";case "lg":return "p-6";default:return ""}}function Zd({variant:e="default",size:t="md",rounded:r="lg",padding:n="none",bgColor:o,borderColor:a,shadowColor:s,hoverable:l=false,clickable:i=false,as:c="div",className:d,children:u,onClick:f,...m}){let g=c,y=l?"transition-all duration-200 hover:shadow-lg hover:-translate-y-0.5":"",b=i?"cursor-pointer active:scale-[0.98] transition-transform":"",h=s||"";return jsx(g,{className:p("overflow-hidden",eh(e,a,o),th(t),rh(r),nh(n),y,b,h,d),onClick:i||f?f:void 0,...m,children:u})}Zd.displayName="Card";function ah(e){switch(e){case "none":return "p-0";case "sm":return "px-3 py-2";case "lg":return "px-6 py-5";default:return "px-4 py-4"}}function Jd({actions:e,divider:t=false,padding:r="md",className:n,children:o,...a}){return jsxs("div",{className:p("flex items-center justify-between",ah(r),t&&"border-b border-gray-200 dark:border-gray-700",n),...a,children:[jsx("div",{className:"flex-1",children:o}),e&&jsx("div",{className:"flex items-center gap-2 ml-4",children:e})]})}Jd.displayName="CardHeader";function ih(e){switch(e){case "none":return "p-0";case "sm":return "px-3 py-2";case "lg":return "px-6 py-5";default:return "px-4 py-4"}}function eu({padding:e="md",className:t,children:r,...n}){return jsx("div",{className:p(ih(e),t),...n,children:r})}eu.displayName="CardBody";function ch(e){switch(e){case "none":return "p-0";case "sm":return "px-3 py-2";case "lg":return "px-6 py-5";default:return "px-4 py-4"}}function dh(e){switch(e){case "center":return "justify-center";case "right":return "justify-end";case "between":return "justify-between";default:return "justify-start"}}function tu({divider:e=false,align:t="left",padding:r="md",className:n,children:o,...a}){return jsx("div",{className:p("flex items-center gap-2",ch(r),dh(t),e&&"border-t border-gray-200 dark:border-gray-700",n),...a,children:o})}tu.displayName="CardFooter";function mh(e){switch(e){case "square":return "aspect-square";case "video":return "aspect-video";case "wide":return "aspect-[21/9]";default:return ""}}function ph(e){switch(e){case "contain":return "object-contain";case "fill":return "object-fill";case "none":return "object-none";default:return "object-cover"}}function ru({position:e="top",aspectRatio:t="auto",objectFit:r="cover",src:n,alt:o,className:a,...s}){let l=e==="top"?"rounded-t-lg":"rounded-b-lg";return jsx("img",{src:n,alt:o,className:p("w-full",mh(t),ph(r),l,a),...s})}ru.displayName="CardImage";function fh(e){switch(e){case "sm":return "text-base font-medium";case "lg":return "text-2xl font-bold";default:return "text-xl font-semibold"}}function nu({as:e="h3",size:t="md",className:r,children:n,...o}){return jsx(e,{className:p("text-gray-900 dark:text-white",fh(t),r),...o,children:n})}nu.displayName="CardTitle";function bh(e){switch(e){case "sm":return "text-xs";case "lg":return "text-base";default:return "text-sm"}}function ou({size:e="md",className:t,children:r,...n}){return jsx("p",{className:p("text-gray-500 dark:text-gray-400",bh(e),t),...n,children:r})}ou.displayName="CardDescription";function Fa(e,t){if(e.length===0)return Number.NaN;if(e.length===1)return e[0];let r=(e.length-1)*Math.min(1,Math.max(0,t)),n=Math.floor(r),o=r-n;return o===0?e[n]:e[n]+(e[n+1]-e[n])*o}function xh(e,t){let r=e.filter(Number.isFinite).sort((n,o)=>n-o);return Fa(r,t)}function Sl(e,t=1.5){let r=e.filter(f=>typeof f=="number"&&Number.isFinite(f)).sort((f,m)=>f-m);if(r.length===0)return null;let n=Fa(r,.25),o=Fa(r,.5),a=Fa(r,.75),s=a-n,l=Math.max(0,t)*s,i=n-l,c=a+l,d=r.filter(f=>f>=i&&f<=c),u=r.filter(f=>f<i||f>c);return {count:r.length,min:r[0],max:r[r.length-1],q1:n,median:o,q3:a,iqr:s,lower:d.length>0?d[0]:n,upper:d.length>0?d[d.length-1]:a,outliers:u}}var kh=40,wh=3,Vs=4,Pl="text-right [font-variant-numeric:tabular-nums]",Nh=memo(function({boxes:t,color:r}){return jsx("g",{children:t.map(n=>jsxs("g",{children:[jsx("g",{stroke:r,strokeWidth:1.5,strokeLinecap:"round",children:n.whiskers.map(o=>jsx("line",{x1:o.x1,y1:o.y1,x2:o.x2,y2:o.y2},o.key))}),n.body?jsx("path",{d:n.body,fill:r}):null,n.median?jsx("line",{x1:n.median.x1,y1:n.median.y1,x2:n.median.x2,y2:n.median.y2,strokeWidth:2,className:"stroke-white dark:stroke-gray-800"}):null,n.mean?jsx("path",{d:`M${n.mean.cx},${n.mean.cy-Vs} L${n.mean.cx+Vs},${n.mean.cy} L${n.mean.cx},${n.mean.cy+Vs} L${n.mean.cx-Vs},${n.mean.cy} Z`,strokeWidth:1.5,stroke:r,className:"fill-white dark:fill-gray-800"}):null,n.outliers.map(o=>jsx("circle",{cx:o.cx,cy:o.cy,r:wh,fill:r,strokeWidth:1.5,className:"stroke-white dark:stroke-gray-800"},o.key))]},n.key))})});function Sh({width:e,height:t,data:r,boxes:n,x:o,y:a,grid:s,size:l,orientation:i,boxSize:c,showOutliers:d,showMean:u,color:f,referenceLines:m,margin:g,tooltip:y,plotLabel:b,formatValue:h,formatX:x,onBoxClick:L}){let[C,S]=useState(null),v=Ve(),R=useMemo(()=>{let T=i==="vertical",O=n.flatMap(w=>w.stats===null?[]:[w.stats.min,w.stats.max,...u&&w.mean!==null?[w.mean]:[]]),H=Jt({width:e,height:t,data:r,x:o,y:a,bounds:O.length===0?null:[Math.min(...O),Math.max(...O)],margin:g,orientation:i,placement:"band",formatValue:h,formatX:x,defaultIncludeZero:false}),{valueScale:k,bandwidth:z,categoryPositions:A,innerWidth:I,innerHeight:X}=H,$=Math.min(c??kh,z),K=$*.5,D=(w,G)=>T?{x:w,y:G}:{x:G,y:w},B=n.map((w,G)=>{let q=A[G]+(z-$)/2,j=q+$/2;if(w.stats===null)return {key:`${G}`,body:"",median:null,whiskers:[],outliers:[],mean:null,top:A[G],height:z};let{q1:U,q3:F,median:_,lower:J,upper:ne,outliers:Y}=w.stats,ee=k(U),Z=k(F),ie=Math.min(ee,Z),V=Math.abs(Z-ee),oe=fr({...T?{x:q,y:ie,width:$,height:Math.max(1,V)}:{x:ie,y:q,width:Math.max(1,V),height:$},radius:2,round:"none"}),pe=k(_),Te=T?{x1:q,y1:pe,x2:q+$,y2:pe}:{x1:pe,y1:q,x2:pe,y2:q+$},ze=[];for(let[ae,re,ce]of [["lower",J,U],["upper",ne,F]]){let De=k(re),Ge=k(ce),be=D(j,De),Me=D(j,Ge);ze.push({key:`${ae}-stem`,x1:Me.x,y1:Me.y,x2:be.x,y2:be.y});let Re=D(j-K/2,De),He=D(j+K/2,De);ze.push({key:`${ae}-cap`,x1:Re.x,y1:Re.y,x2:He.x,y2:He.y});}return {key:`${G}`,body:oe,median:Te,whiskers:ze,outliers:d?Y.map((ae,re)=>{let ce=D(j,k(ae));return {key:`${re}`,cx:ce.x,cy:ce.y}}):[],mean:u&&w.mean!==null?(()=>{let ae=D(j,k(w.mean));return {cx:ae.x,cy:ae.y}})():null,top:A[G],height:z}});return {vertical:T,rendered:B,categoryPositions:A,categoryCenters:H.categoryCenters,bandwidth:z,categoryTicks:H.categoryTicks,valueTicks:H.valueTicks,valueScale:k,innerWidth:I,innerHeight:X,margin:H.margin}},[n,r,o,a,e,t,g,i,c,d,u,h,x]),N=useCallback(T=>{if(y===false||n.length===0)return;let O=T.currentTarget.getBoundingClientRect(),H=R.vertical?T.clientX-O.left-R.margin.left:T.clientY-O.top-R.margin.top;S(Dt(R.categoryCenters,H));},[y,n.length,R.vertical,R.margin,R.categoryCenters]),M=useCallback(T=>{if(n.length===0)return;let O=n.length-1,H=C??0,k=R.vertical?"ArrowRight":"ArrowDown",z=R.vertical?"ArrowLeft":"ArrowUp",A=T.key===k?Math.min(O,H+1):T.key===z?Math.max(0,H-1):T.key==="Home"?0:T.key==="End"?O:T.key==="Escape"?null:void 0;A!==void 0&&(T.preventDefault(),S(A));},[n.length,C,R.vertical]),P=useCallback(()=>{!L||C===null||L(n[C]);},[L,C,n]),E=C===null?null:n[C],W=C===null||E===null||E.stats===null?null:R.vertical?{x:R.margin.left+R.categoryCenters[C],y:R.margin.top+R.valueScale(E.stats.q3)}:{x:R.margin.left+R.valueScale(E.stats.q3),y:R.margin.top+R.categoryCenters[C]};return jsxs(Fragment,{children:[jsxs("svg",{width:e,height:t,role:"img","aria-label":b??n.map(T=>T.label).join(", "),tabIndex:0,className:"touch-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500",onPointerMove:N,onPointerLeave:()=>S(null),onKeyDown:M,onBlur:()=>S(null),onClick:P,children:[jsxs("g",{transform:`translate(${R.margin.left}, ${R.margin.top})`,children:[jsx(Yt,{width:R.innerWidth,height:R.innerHeight,horizontal:R.vertical&&(s==="y"||s==="both")?R.valueTicks.map(T=>T.offset):void 0,vertical:!R.vertical&&(s==="y"||s==="both")?R.valueTicks.map(T=>T.offset):void 0}),C!==null?jsx("rect",{x:R.vertical?R.categoryPositions[C]:0,y:R.vertical?0:R.categoryPositions[C],width:R.vertical?R.bandwidth:R.innerWidth,height:R.vertical?R.innerHeight:R.bandwidth,className:"fill-gray-400 dark:fill-gray-500",opacity:.12,"aria-hidden":"true"}):null,m?.map(T=>{let O=R.valueScale(T.value);return jsxs("g",{children:[jsx("line",{x1:R.vertical?0:O,y1:R.vertical?O:0,x2:R.vertical?R.innerWidth:O,y2:R.vertical?O:R.innerHeight,stroke:T.color??"var(--color-chart-muted)",strokeWidth:1,strokeDasharray:T.dashed===false?void 0:"4 4"}),T.label?jsx("text",{x:R.vertical?R.innerWidth:O+4,y:R.vertical?O-4:8,textAnchor:R.vertical?"end":"start",className:"fill-gray-500 text-[10px] dark:fill-gray-400",children:T.label}):null]},`${T.value}-${T.label??""}`)}),jsx(Nh,{boxes:R.rendered,color:f})]}),jsx("g",{transform:`translate(${R.margin.left}, ${R.margin.top+R.innerHeight})`,children:(R.vertical?o.hidden:a?.hidden)?null:jsx(tt,{orientation:"bottom",ticks:R.vertical?R.categoryTicks:R.valueTicks,length:R.innerWidth,label:R.vertical?o.label:a?.label,size:l})}),jsx("g",{transform:`translate(${R.margin.left}, ${R.margin.top})`,children:(R.vertical?a?.hidden:o.hidden)?null:jsx(tt,{orientation:"left",ticks:R.vertical?R.valueTicks:R.categoryTicks,length:R.innerHeight,showLine:false,label:R.vertical?a?.label:o.label,size:l})})]}),E&&E.stats&&W&&y!==false?jsx(vt,{x:W.x,y:W.y,containerWidth:e,children:typeof y=="function"?y(E):jsxs("div",{className:"flex flex-col gap-1",children:[jsx("div",{className:"font-medium text-gray-900 dark:text-gray-100",children:E.label}),jsxs("dl",{className:"grid grid-cols-[auto_auto] gap-x-3 gap-y-0.5",children:[[["Max",E.stats.max],["Q3",E.stats.q3],[v.chartMedian,E.stats.median],["Q1",E.stats.q1],["Min",E.stats.min]].map(([T,O])=>jsxs("div",{className:"contents",children:[jsx("dt",{className:"text-gray-500 dark:text-gray-400",children:T}),jsx("dd",{className:"justify-self-end font-medium text-gray-900 [font-variant-numeric:tabular-nums] dark:text-gray-100",children:h(O)})]},T)),jsxs("div",{className:"contents",children:[jsx("dt",{className:"text-gray-500 dark:text-gray-400",children:v.chartCount}),jsx("dd",{className:"justify-self-end font-medium text-gray-900 [font-variant-numeric:tabular-nums] dark:text-gray-100",children:E.stats.count})]})]})]})}):null]})}function Rh({data:e,x:t,y:r,values:n,quantiles:o,whisker:a=1.5,orientation:s="vertical",boxSize:l,showOutliers:i=true,showMean:c=false,color:d,referenceLines:u,height:f=280,width:m,size:g="md",grid:y="y",tooltip:b=true,tableView:h=false,title:x,description:L,loading:C=false,emptyState:S,error:v=false,errorState:R,onRetry:N,actions:M,margin:P,locale:E,plotLabel:W,format:T,onBoxClick:O,className:H,...k}){let z=Ve(),A=useMemo(()=>r?.format??T??(K=>pt(K,E)),[r?.format,T,E]),I=useMemo(()=>t.format??(K=>st(K,E)),[t.format,E]),X=useMemo(()=>e.map((K,D)=>{let B=gt(K,t.key,D),w=n?(()=>{let j=K[n];return Array.isArray(j)?j.map(U=>typeof U=="number"?U:Number(U)).filter(U=>Number.isFinite(U)):null})():null,G=null,q=null;if(w!==null)G=Sl(w,a),q=w.length===0?null:w.reduce((j,U)=>j+U,0)/w.length;else if(o){let j=Ae(K,o.q1),U=Ae(K,o.median),F=Ae(K,o.q3);if(j!==null&&U!==null&&F!==null){let _=o.min?Ae(K,o.min)??j:j,J=o.max?Ae(K,o.max)??F:F;G={count:0,min:_,max:J,q1:j,median:U,q3:F,iqr:F-j,lower:_,upper:J,outliers:[]};}}return {index:D,x:B,label:I(B,D),stats:G,mean:q,datum:K}}),[e,t.key,n,o,a,I]),$=X.filter(K=>K.stats!==null);return jsx(xt,{title:x,description:L,height:f,width:m,size:g,loading:C,empty:$.length===0,emptyState:S,error:v,errorState:R,onRetry:N,actions:M,tableView:h,table:h?jsx("div",{className:"w-full overflow-x-auto",children:jsxs(yn,{children:[typeof x=="string"?jsx("caption",{className:"sr-only",children:x}):null,jsxs(vn,{children:[jsx(It,{children:t.label??t.key}),n?jsx(It,{className:"text-right",children:z.chartCount}):null,jsx(It,{className:"text-right",children:"Min"}),jsx(It,{className:"text-right",children:"Q1"}),jsx(It,{className:"text-right",children:z.chartMedian}),jsx(It,{className:"text-right",children:"Q3"}),jsx(It,{className:"text-right",children:"Max"}),n&&i?jsx(It,{className:"text-right",children:z.chartOutliers}):null]}),jsx(xn,{children:X.map(K=>jsxs(Cn,{clickable:false,children:[jsx(qt,{className:"font-medium text-gray-900 dark:text-gray-100",children:K.label}),n?jsx(qt,{className:Pl,children:K.stats?.count??"\u2014"}):null,["min","q1","median","q3","max"].map(D=>jsx(qt,{className:Pl,children:K.stats===null?"\u2014":A(K.stats[D])},D)),n&&i?jsx(qt,{className:Pl,children:K.stats===null||K.stats.outliers.length===0?"\u2014":K.stats.outliers.map(A).join(", ")}):null]},K.index))})]})}):void 0,className:H,...k,children:({width:K})=>jsx(Sh,{width:K,height:f,data:e,boxes:X,x:t,y:r,grid:y,size:g,orientation:s,boxSize:l,showOutliers:i,showMean:c,color:d??zr(0),referenceLines:u,margin:P,tooltip:b,plotLabel:W,formatValue:A,formatX:I,onBoxClick:O})})}var Eh=16,Lh=1.5,Mh=memo(function({candles:t}){return jsx("g",{children:t.map(r=>jsxs("g",{children:[r.wick?jsx("line",{x1:r.wick.x,y1:r.wick.y1,x2:r.wick.x,y2:r.wick.y2,stroke:r.color,strokeWidth:1.5}):null,r.body?jsx("path",{d:r.body,fill:r.hollow?"none":r.color,stroke:r.color,strokeWidth:r.hollow?1.5:0}):null]},r.key))})});function Ih({width:e,height:t,data:r,candles:n,x:o,y:a,grid:s,size:l,candleSize:i,fillRising:c,palette:d,referenceLines:u,margin:f,tooltip:m,plotLabel:g,formatValue:y,formatX:b,onCandleClick:h}){let[x,L]=useState(null),C=Ve(),S=useMemo(()=>{let P=n.flatMap(I=>I.high===null||I.low===null?[]:[I.low,I.high]),E=Jt({width:e,height:t,data:r,x:o,y:a,bounds:P.length===0?null:[Math.min(...P),Math.max(...P)],margin:f,orientation:"vertical",placement:"band",formatValue:y,formatX:b,defaultIncludeZero:false}),{valueScale:W,bandwidth:T,categoryPositions:O,innerWidth:H,innerHeight:k}=E,z=Math.min(i??Eh,Math.max(1,T-2));return {rendered:n.map((I,X)=>{let $=O[X]+(T-z)/2,K=$+z/2,D=I.rising?d.up:d.down,B=I.high===null||I.low===null?null:{x:K,y1:W(I.high),y2:W(I.low)},w=null;if(I.open!==null&&I.close!==null){let G=W(I.open),q=W(I.close);w=fr({x:$,y:Math.min(G,q),width:z,height:Math.max(Lh,Math.abs(q-G)),radius:0,round:"none"});}return {key:`${X}`,color:D,body:w,hollow:I.rising&&!c,wick:B,left:$,width:z}}),categoryPositions:O,categoryCenters:E.categoryCenters,bandwidth:T,categoryTicks:E.categoryTicks,valueTicks:E.valueTicks,valueScale:W,innerWidth:H,innerHeight:k,margin:E.margin}},[n,r,o,a,e,t,f,i,c,d,y,b]),v=useCallback(P=>{if(m===false||n.length===0)return;let E=P.currentTarget.getBoundingClientRect(),W=P.clientX-E.left-S.margin.left;L(Dt(S.categoryCenters,W));},[m,n.length,S.margin.left,S.categoryCenters]),R=useCallback(P=>{if(n.length===0)return;let E=n.length-1,W=x??0,T=P.key==="ArrowRight"?Math.min(E,W+1):P.key==="ArrowLeft"?Math.max(0,W-1):P.key==="Home"?0:P.key==="End"?E:P.key==="Escape"?null:void 0;T!==void 0&&(P.preventDefault(),L(T));},[n.length,x]),N=useCallback(()=>{!h||x===null||h(n[x]);},[h,x,n]),M=x===null?null:n[x];return jsxs(Fragment,{children:[jsxs("svg",{width:e,height:t,role:"img","aria-label":g??n.map(P=>P.label).join(", "),tabIndex:0,className:"touch-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500",onPointerMove:v,onPointerLeave:()=>L(null),onKeyDown:R,onBlur:()=>L(null),onClick:N,children:[jsxs("g",{transform:`translate(${S.margin.left}, ${S.margin.top})`,children:[jsx(Yt,{width:S.innerWidth,height:S.innerHeight,horizontal:s==="y"||s==="both"?S.valueTicks.map(P=>P.offset):void 0}),x!==null?jsx("rect",{x:S.categoryPositions[x],y:0,width:S.bandwidth,height:S.innerHeight,className:"fill-gray-400 dark:fill-gray-500",opacity:.12,"aria-hidden":"true"}):null,u?.map(P=>jsxs("g",{children:[jsx("line",{x1:0,y1:S.valueScale(P.value),x2:S.innerWidth,y2:S.valueScale(P.value),stroke:P.color??"var(--color-chart-muted)",strokeWidth:1,strokeDasharray:P.dashed===false?void 0:"4 4"}),P.label?jsx("text",{x:S.innerWidth,y:S.valueScale(P.value)-4,textAnchor:"end",className:"fill-gray-500 text-[10px] dark:fill-gray-400",children:P.label}):null]},`${P.value}-${P.label??""}`)),jsx(Mh,{candles:S.rendered})]}),jsx("g",{transform:`translate(${S.margin.left}, ${S.margin.top+S.innerHeight})`,children:o.hidden?null:jsx(tt,{orientation:"bottom",ticks:S.categoryTicks,length:S.innerWidth,label:o.label,size:l})}),jsx("g",{transform:`translate(${S.margin.left}, ${S.margin.top})`,children:a?.hidden?null:jsx(tt,{orientation:"left",ticks:S.valueTicks,length:S.innerHeight,showLine:false,label:a?.label,size:l})})]}),M&&x!==null&&m!==false?jsx(vt,{x:S.margin.left+S.categoryCenters[x],y:S.margin.top+(M.high===null?S.innerHeight/2:S.valueScale(M.high)),containerWidth:e,children:typeof m=="function"?m(M):jsxs("div",{className:"flex flex-col gap-1",children:[jsx("div",{className:"font-medium text-gray-900 dark:text-gray-100",children:M.label}),jsx("dl",{className:"grid grid-cols-[auto_auto] gap-x-3 gap-y-0.5",children:[[C.chartOpen,M.open],[C.chartHigh,M.high],[C.chartLow,M.low],[C.chartClose,M.close]].map(([P,E])=>jsxs("div",{className:"contents",children:[jsx("dt",{className:"text-gray-500 dark:text-gray-400",children:P}),jsx("dd",{className:"justify-self-end font-medium text-gray-900 [font-variant-numeric:tabular-nums] dark:text-gray-100",children:E===null?"\u2014":y(E)})]},P))}),M.change===null?null:jsxs("div",{className:"flex items-center gap-2 border-t border-gray-200 pt-1 dark:border-gray-700",children:[jsx("span",{className:"text-gray-500 dark:text-gray-400",children:M.rising?C.chartRise:C.chartFall}),jsxs("span",{className:"[font-variant-numeric:tabular-nums] font-semibold text-gray-900 dark:text-gray-100",children:[M.change>0?"+":"",y(M.change)]})]})]})}):null]})}function Ah({data:e,x:t,y:r,open:n,high:o,low:a,close:s,candleSize:l,fillRising:i=false,colors:c,referenceLines:d,height:u=300,width:f,size:m="md",grid:g="y",legend:y,tooltip:b=true,tableView:h=false,title:x,description:L,loading:C=false,emptyState:S,error:v=false,errorState:R,onRetry:N,actions:M,margin:P,locale:E,plotLabel:W,openLabel:T,highLabel:O,lowLabel:H,closeLabel:k,riseLabel:z,fallLabel:A,format:I,onCandleClick:X,className:$,...K}){let D=Ve(),B=useMemo(()=>r?.format??I??(_=>pt(_,E)),[r?.format,I,E]),w=useMemo(()=>t.format??(_=>st(_,E)),[t.format,E]),G=useMemo(()=>e.map((_,J)=>{let ne=gt(_,t.key,J),Y=Ae(_,n),ee=Ae(_,s);return {index:J,x:ne,label:w(ne,J),open:Y,high:Ae(_,o),low:Ae(_,a),close:ee,change:Y===null||ee===null?null:ee-Y,rising:Y===null||ee===null?true:ee>=Y,datum:_}}),[e,t.key,n,o,a,s,w]),q=useMemo(()=>({up:c?.up??rl,down:c?.down??nl}),[c]),j=useMemo(()=>[{key:"up",label:z??D.chartRise,color:q.up,marker:"rect"},{key:"down",label:A??D.chartFall,color:q.down,marker:"rect"}],[q,z,A,D.chartRise,D.chartFall]),U=y===void 0?true:y!==false,F=typeof y=="string"?y:"bottom";return jsx(xt,{title:x,description:L,height:u,width:f,size:m,loading:C,empty:G.length===0,emptyState:S,error:v,errorState:R,onRetry:N,actions:M,tableView:h,legendPosition:F,legend:U?jsx(jt,{items:j,position:F,marker:"rect",size:m}):void 0,table:h?jsx(Ot,{data:e,series:[{key:n,label:T??D.chartOpen},{key:o,label:O??D.chartHigh},{key:a,label:H??D.chartLow},{key:s,label:k??D.chartClose}],xKey:t.key,xLabel:t.label??t.key,formatX:w,formatValue:B,caption:typeof x=="string"?x:void 0}):void 0,className:$,...K,children:({width:_})=>jsx(Ih,{width:_,height:u,data:e,candles:G,x:t,y:r,grid:g,size:m,candleSize:l,fillRising:i,palette:q,referenceLines:d,margin:P,tooltip:b,plotLabel:W,formatValue:B,formatX:w,onCandleClick:X})})}var iu=createContext(null);function Dr(){let e=useContext(iu);if(!e)throw new Error("Dropdown compound components must be used within a Dropdown");return e}function $s({open:e,defaultOpen:t=false,onOpenChange:r,closeOnSelect:n=true,closeOnClickOutside:o=true,closeOnEscape:a=true,modal:s=false,children:l}){let[i,c]=useState(t),d=e!==void 0,u=d?e:i,f=useRef(null),m=useRef(null),g=useRef([]),[y,b]=useState(-1),h=useRef(0),x=useId(),L={triggerId:`dropdown-trigger-${x}`,contentId:`dropdown-content-${x}`},C=useCallback(N=>{d||c(N),r?.(N),N||b(-1);},[d,r]),S=useCallback((N,M)=>{g.current&&(g.current[N]=M);},[]),v=useCallback(()=>h.current++,[]),R={isOpen:u,setIsOpen:C,triggerRef:f,contentRef:m,closeOnSelect:n,closeOnClickOutside:o,closeOnEscape:a,modal:s,focusedIndex:y,setFocusedIndex:b,itemsRef:g,registerItem:S,getNextItemIndex:v,triggerId:L.triggerId,contentId:L.contentId};return jsx(iu.Provider,{value:R,children:jsx("div",{className:"relative inline-block",children:l})})}$s.displayName="Dropdown";function aa(e){let t=useRef(e);return useLayoutEffect(()=>{t.current=e;}),t}function sa(e,t,r=true){let n=aa(t);useEffect(()=>{if(!r)return;let o=a=>{let s=a.target;!e.current||e.current.contains(s)||n.current();};return document.addEventListener("mousedown",o),document.addEventListener("touchstart",o,{passive:true}),()=>{document.removeEventListener("mousedown",o),document.removeEventListener("touchstart",o);}},[r,n,e]);}function _n({triggerRef:e,contentRef:t,isOpen:r,side:n="bottom",align:o="start",sideOffset:a=4,alignOffset:s=0,avoidCollisions:l=true,collisionPadding:i=8}){let[c,d]=useState({top:0,left:0,actualSide:n,actualAlign:o,isReady:false}),u=useRef(false),f=useCallback(()=>{if(!e.current||!t.current)return;let m=e.current.getBoundingClientRect(),g=t.current.getBoundingClientRect();if(!(m.width>0&&m.height>0&&g.width>0&&g.height>0)){u.current=false;return}let b={width:window.innerWidth,height:window.innerHeight},h=n,x=o,L=v=>{switch(v){case "bottom":return {top:m.bottom+a,left:m.left};case "top":return {top:m.top-g.height-a,left:m.left};case "right":return {top:m.top,left:m.right+a};case "left":return {top:m.top,left:m.left-g.width-a}}},C=(v,R,N)=>{if(v==="top"||v==="bottom")switch(R){case "start":return {...N,left:m.left+s};case "center":return {...N,left:m.left+m.width/2-g.width/2+s};case "end":return {...N,left:m.right-g.width+s}}else switch(R){case "start":return {...N,top:m.top+s};case "center":return {...N,top:m.top+m.height/2-g.height/2+s};case "end":return {...N,top:m.bottom-g.height+s}}},S=L(h);if(S=C(h,x,S),l){let{top:v,left:R}=S,{height:N,width:M}=g,{height:P,width:E}=b,W=v+N>P-i,T=v<i,O=R+M>E-i,H=R<i;h==="bottom"&&W&&!T?(h="top",S=L(h),S=C(h,x,S)):h==="top"&&T&&!W&&(h="bottom",S=L(h),S=C(h,x,S)),h==="right"&&O&&!H?(h="left",S=L(h),S=C(h,x,S)):h==="left"&&H&&!O&&(h="right",S=L(h),S=C(h,x,S));let k=S.left+M>E-i,z=S.left<i,A=S.top+N>P-i,I=S.top<i;(h==="top"||h==="bottom")&&(k&&(S.left=E-M-i,x="end"),z&&(S.left=i,x="start")),(h==="left"||h==="right")&&(A&&(S.top=P-N-i,x="end"),I&&(S.top=i,x="start"));}u.current=true,d({top:S.top,left:S.left,actualSide:h,actualAlign:x,isReady:true});},[e,t,n,o,a,s,l,i]);return useLayoutEffect(()=>{let m=0;if(r){u.current=false;let y=()=>{f(),u.current||(m=requestAnimationFrame(y));};m=requestAnimationFrame(y);}let g=()=>f();return window.addEventListener("resize",g),window.addEventListener("scroll",g,{passive:true,capture:true}),()=>{m&&cancelAnimationFrame(m),window.removeEventListener("resize",g),window.removeEventListener("scroll",g,{capture:true});}},[f,r]),c}function _s({isOpen:e,onClose:t,itemsCount:r,focusedIndex:n,setFocusedIndex:o,onSelect:a,loop:s=true}){let l=aa(t),i=aa(a),c=aa(n),d=useCallback(u=>{if(!(!e||r===0))switch(u.key){case "ArrowDown":u.preventDefault(),o(s?f=>f<r-1?f+1:0:f=>Math.min(f+1,r-1));break;case "ArrowUp":u.preventDefault(),o(s?f=>f>0?f-1:r-1:f=>Math.max(f-1,0));break;case "Home":u.preventDefault(),o(0);break;case "End":u.preventDefault(),o(r-1);break;case "Enter":case " ":u.preventDefault(),i.current?.(c.current);break;case "Escape":u.preventDefault(),l.current();break;case "Tab":l.current();break}},[e,r,o,s,l,i,c]);return useEffect(()=>{if(e)return document.addEventListener("keydown",d),()=>document.removeEventListener("keydown",d)},[e,d]),{focusedIndex:n}}function cu(e,t,r){useEffect(()=>{r&&e.current&&e.current[t]&&e.current[t]?.focus();},[t,r,e]);}var Kh=new Set(["SCRIPT","STYLE","LINK","META","NOSCRIPT","TEMPLATE","BASE","TITLE"]),du="data-synertech-inert-ignore",$a=new WeakMap,El=new WeakMap,Ll=new WeakMap;function Yh(e){let t=$a.get(e)??0;t===0&&(El.set(e,e.getAttribute("aria-hidden")),Ll.set(e,e.hasAttribute("inert")),e.setAttribute("aria-hidden","true"),e.setAttribute("inert","")),$a.set(e,t+1);}function jh(e){let t=$a.get(e)??0;if(t===0)return;if(t>1){$a.set(e,t-1);return}$a.delete(e);let r=El.get(e)??null;r===null?e.removeAttribute("aria-hidden"):e.setAttribute("aria-hidden",r),El.delete(e),Ll.get(e)||e.removeAttribute("inert"),Ll.delete(e);}var Xs=new Map;function Pn(e,t){return Xs.set(e,t),()=>{Xs.delete(e);}}function Gs(e){if(Xs.size===0)return [];let t=[];for(let[r,n]of Xs){let o=n();o&&e.some(a=>a.contains(o))&&t.push(r);}return t}function qh(e){return !(Kh.has(e.tagName)||e.hasAttribute(du))}function Ml(e){let t=(Array.isArray(e)?e:[e]).filter(Boolean),r=t[0]?.ownerDocument?.body;if(!r||!t.every(i=>r.contains(i)))return ()=>{};let n=[...t,...Gs(t).filter(i=>r.contains(i))],o=[],a=new Set,s=i=>n.some(c=>i===c||i.contains(c));for(let i of t){let c=i;for(;c&&c!==r;){let d=c.parentElement;if(!d)break;for(let u of Array.from(d.children))a.has(u)||s(u)||qh(u)&&(a.add(u),Yh(u),o.push(u));c=d;}}let l=false;return ()=>{if(!l){l=true;for(let i of o)jh(i);}}}var tb={fade:"animate-in fade-in-0 duration-200",scale:"animate-in fade-in-0 zoom-in-95 duration-200",slide:"animate-in fade-in-0 slide-in-from-top-2 duration-200",none:""};function Us({side:e="bottom",align:t="start",sideOffset:r=4,alignOffset:n=0,avoidCollisions:o=true,collisionPadding:a=8,minWidth:s,maxWidth:l,maxHeight:i=300,animation:c="scale",portal:d=true,children:u,className:f}){let{isOpen:m,setIsOpen:g,triggerRef:y,contentRef:b,closeOnClickOutside:h,closeOnEscape:x,modal:L,contentId:C,focusedIndex:S,setFocusedIndex:v,itemsRef:R}=Dr(),[N,M]=useState(false),P=_n({triggerRef:y,contentRef:b,isOpen:m,side:e,align:t,sideOffset:r,alignOffset:n,avoidCollisions:o,collisionPadding:a});sa(b,()=>{h&&g(false);},m);let E=R.current?.filter(Boolean).length||0,W=useCallback(O=>{let H=R.current?.[O];H&&!H.hasAttribute("data-disabled")&&H.click();},[R]);_s({isOpen:m,onClose:()=>{x&&(g(false),y.current?.focus());},itemsCount:E,focusedIndex:S,setFocusedIndex:v,onSelect:W}),useEffect(()=>{let O=b.current;if(O)return Pn(O,()=>y.current)},[b,y]),useEffect(()=>{if(m&&R.current&&R.current.length>0){let O=setTimeout(()=>{v(0),R.current?.[0]?.focus();},10);return ()=>clearTimeout(O)}},[m,R,v]),useLayoutEffect(()=>{let O=0;if(!m){M(false);return}let H=()=>{let k=y.current?.getBoundingClientRect(),z=b.current?.getBoundingClientRect();if(P.isReady&&!!k&&!!z&&k.width>0&&k.height>0&&z.width>0&&z.height>0){M(true);return}O=requestAnimationFrame(H);};return M(false),O=requestAnimationFrame(H),()=>{O&&cancelAnimationFrame(O);}},[m,P.isReady,y,b]);let T=jsxs(Fragment,{children:[L&&m&&jsx("div",{className:"fixed inset-0 z-40 bg-black/20",onClick:()=>g(false)}),jsx("div",{ref:b,id:C,role:"menu","aria-orientation":"vertical","aria-hidden":!m,tabIndex:-1,style:{position:"fixed",top:P.top,left:P.left,minWidth:s??y.current?.offsetWidth,maxWidth:l,maxHeight:i,visibility:m&&N?"visible":"hidden",opacity:m&&N?1:0,pointerEvents:m&&N?"auto":"none"},className:p("z-50 overflow-auto rounded-lg","border border-gray-200 bg-white shadow-lg","dark:border-gray-700 dark:bg-gray-800",m&&N&&tb[c],f),children:jsx("div",{className:"py-1",children:u})})]});return d&&typeof document<"u"?createPortal(T,document.body):T}Us.displayName="DropdownContent";var ib={default:"text-gray-700 dark:text-gray-200 hover:bg-gray-100 dark:hover:bg-gray-700",danger:"text-red-600 dark:text-red-400 hover:bg-red-50 dark:hover:bg-red-900/20",success:"text-green-600 dark:text-green-400 hover:bg-green-50 dark:hover:bg-green-900/20"};function Ks({children:e,icon:t,iconPosition:r="left",description:n,shortcut:o,variant:a="default",closeOnSelect:s,onSelect:l,disabled:i=false,className:c,onClick:d,index:u,...f}){let{setIsOpen:m,closeOnSelect:g,focusedIndex:y,setFocusedIndex:b,registerItem:h,getNextItemIndex:x}=Dr(),L=useRef(null),[C]=useState(()=>u??x());useEffect(()=>(h(C,L.current),()=>{h(C,null);}),[C,h]);let S=s??g,v=y===C;return jsxs("button",{ref:L,role:"menuitem",type:"button",tabIndex:v?0:-1,disabled:i,"data-disabled":i||void 0,"data-focused":v||void 0,onClick:M=>{i||(l?.(),d?.(M),S&&m(false));},onMouseEnter:()=>{i||b(C);},className:p("relative flex w-full items-center px-3 py-2 text-left text-sm","outline-none transition-colors","focus:bg-gray-100 dark:focus:bg-gray-700",ib[a],i&&"opacity-50 cursor-not-allowed hover:bg-transparent",v&&"bg-gray-100 dark:bg-gray-700",c),...f,children:[t&&r==="left"&&jsx("span",{className:"mr-2 shrink-0 w-5 h-5",children:t}),jsxs("span",{className:"flex-1 min-w-0",children:[jsx("span",{className:"block truncate",children:e}),n&&jsx("span",{className:"block text-xs text-gray-500 dark:text-gray-400 truncate",children:n})]}),t&&r==="right"&&jsx("span",{className:"ml-2 shrink-0 w-5 h-5",children:t}),o&&jsx("span",{className:"ml-auto pl-4 text-xs text-gray-400 dark:text-gray-500",children:o})]})}Ks.displayName="DropdownItem";var pu=memo(({isOpen:e})=>jsx("span",{className:p("inline-block transition-transform",e&&"rotate-180"),children:jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})}));pu.displayName="ChevronIcon";function js({asChild:e=false,disabled:t=false,children:r,className:n}){let{isOpen:o,setIsOpen:a,triggerRef:s,triggerId:l,contentId:i}=Dr(),u={ref:s,id:l,"aria-haspopup":"menu","aria-expanded":o,"aria-controls":o?i:void 0,disabled:t,onClick:()=>{t||a(!o);},onKeyDown:f=>{t||((f.key==="Enter"||f.key===" ")&&(f.preventDefault(),a(!o)),f.key==="ArrowDown"&&!o&&(f.preventDefault(),a(true)));}};return e&&isValidElement(r)?cloneElement(r,{...u,className:p(r.props.className,n)}):jsxs("button",{type:"button",...u,className:p("inline-flex items-center justify-center gap-2","rounded-md px-4 py-2","bg-white border border-gray-300","text-sm font-medium text-gray-700","hover:bg-gray-50","focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-500 focus-visible:ring-offset-2","disabled:opacity-50 disabled:cursor-not-allowed","transition-colors",n),children:[r,jsx(pu,{isOpen:o})]})}js.displayName="DropdownTrigger";function mb(e){return e instanceof Date?e.toISOString():e}function Al({data:e,series:t,xKey:r,xLabel:n,formatX:o}){let a=t.filter(l=>!l.hidden),s=n??r;return e.map((l,i)=>{let c=gt(l,r,i),d={[s]:o?o(c,i):mb(c)};for(let u of a)d[Vt(u)]=Ae(l,u.key);return d})}function gu(e,t){if(e===null)return "";let r=String(e);return !r.includes(t)&&!/["\n\r]/.test(r)?r:`"${r.replace(/"/g,'""')}"`}function fu(e,t=","){let r=Al(e);if(r.length===0)return "";let n=Object.keys(r[0]);return [n.map(o=>gu(o,t)).join(t),...r.map(o=>n.map(a=>gu(o[a]??null,t)).join(t))].join(`
|
|
2
|
+
`)}function hu(e){return JSON.stringify(Al(e),null,2)}function zl(e,t,r="chart"){if(typeof document>"u"||typeof URL.createObjectURL!="function")return;let n=e==="csv",o=n?fu(t):hu(t),a=new Blob([o],{type:n?"text/csv;charset=utf-8":"application/json"}),s=URL.createObjectURL(a),l=document.createElement("a");l.href=s,l.download=`${r}.${e}`,l.click(),URL.revokeObjectURL(s);}var gb={sm:"h-7 px-2.5 text-xs",md:"h-8 px-3 text-sm",lg:"h-10 px-4 text-sm"},bu=jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",className:"shrink-0",children:jsx("path",{d:"M8 2v8m0 0 3-3m-3 3L5 7M2.5 12.5h11",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})});function fb({data:e,series:t,xKey:r,xLabel:n,formatX:o,formats:a=["csv","json"],filename:s="chart",size:l="md",label:i,onExport:c,className:d,disabled:u}){let f=Ve(),m=useCallback(h=>{let x={data:e,series:t,xKey:r,xLabel:n,formatX:o};c?c(h,x):zl(h,x,s);},[e,t,r,n,o,c,s]),g=i??f.chartExport,y=h=>h==="csv"?f.chartExportCsv:f.chartExportJson,b=p("inline-flex cursor-pointer items-center gap-2 rounded-full border border-gray-300 bg-white font-medium text-gray-700 transition-colors hover:bg-gray-50 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 disabled:cursor-not-allowed disabled:opacity-50 dark:border-gray-600 dark:bg-gray-800 dark:text-gray-200 dark:hover:bg-gray-700",gb[l],d);if(a.length<=1){let h=a[0]??"csv";return jsxs("button",{type:"button",onClick:()=>m(h),disabled:u||e.length===0,className:b,children:[bu,jsx("span",{children:g})]})}return jsxs($s,{children:[jsxs(js,{disabled:u||e.length===0,className:b,children:[bu,jsx("span",{children:g})]}),jsx(Us,{children:a.map(h=>jsx(Ks,{onSelect:()=>m(h),children:y(h)},h))})]})}var yu=12,Wl=false,hb={sm:"text-[11px]",md:"text-xs",lg:"text-sm"},bb={sm:"text-xs",md:"text-sm",lg:"text-base"};function yb({data:e,by:t,values:r,domain:n,includeZero:o=false,ticks:a=5,order:s,sort:l="none",columns:i,minPanelWidth:c=220,formatLabel:d,showLabels:u=true,title:f,description:m,size:g="md",locale:y,emptyState:b,children:h,className:x,...L}){let C=d??(N=>st(N,y)),S=new Map;e.forEach((N,M)=>{let P=gt(N,t,M),E=rt(P),W=S.get(E);W?W.rows.push(N):S.set(E,{value:P,rows:[N]});});let v=[...S.entries()];if(s)v=s.map(rt).map(M=>v.find(([P])=>P===M)).filter(M=>M!==void 0);else if(l!=="none"){let N=M=>M.reduce((P,E)=>P+r.reduce((W,T)=>W+(Ae(E,T)??0),0),0);v=[...v].sort(([,M],[,P])=>l==="asc"?N(M.rows)-N(P.rows):N(P.rows)-N(M.rows));}let R=n??Ko(vr(e,r),{includeZero:o,ticks:a});return v.length>yu&&!Wl&&(Wl=true,console.warn(`[@synertech/ui] ChartFacets was given ${v.length} panels. Past ${yu} a facet grid stops being a comparison \u2014 filter the data down to the panels the reader is actually comparing.`)),v.length===0?jsx("div",{className:p("text-sm text-gray-500 dark:text-gray-400",x),...L,children:b}):jsxs("div",{className:p("flex w-full flex-col gap-3",x),...L,children:[f||m?jsxs("div",{className:"flex flex-col gap-0.5",children:[f?jsx("span",{className:p("font-semibold text-gray-900 dark:text-gray-100",bb[g]),children:f}):null,m?jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400",children:m}):null]}):null,jsx("div",{className:"grid gap-x-4 gap-y-3",style:{gridTemplateColumns:i?`repeat(${i}, minmax(0, 1fr))`:`repeat(auto-fit, minmax(${c}px, 1fr))`},children:v.map(([N,M],P)=>{let E=C(M.value,P);return jsxs("div",{role:"group","aria-label":E,className:"flex min-w-0 flex-col gap-1",children:[u?jsx("span",{className:p("font-medium text-gray-700 dark:text-gray-200",hb[g]),children:E}):null,h({key:N,label:E,data:M.rows,domain:R,index:P,count:v.length})]},N)})})]})}function xb(){Wl=false;}var vb={sm:"gap-1.5",md:"gap-2",lg:"gap-3"};function Cb({label:e,actions:t,sticky:r=false,bordered:n=true,size:o="md",children:a,className:s,...l}){let i=Ve();return jsxs("div",{role:"group","aria-label":e??i.chartFilters,className:p("flex w-full flex-wrap items-center",vb[o],n&&"border-b border-gray-200 pb-3 dark:border-gray-700",r&&"sticky top-0 z-10 bg-white/95 pt-3 backdrop-blur-sm dark:bg-gray-900/95",s),...l,children:[a,t?jsx("div",{className:"ml-auto flex items-center gap-2",children:t}):null]})}var Sb={"7d":"chartPeriodLast7Days","30d":"chartPeriodLast30Days","90d":"chartPeriodLast90Days","12m":"chartPeriodLast12Months",mtd:"chartPeriodMonthToDate",qtd:"chartPeriodQuarterToDate",ytd:"chartPeriodYearToDate",custom:"chartPeriodCustom"},Rb={sm:"h-7 px-2.5 text-xs",md:"h-8 px-3 text-sm",lg:"h-10 px-4 text-sm"},Pb=jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",className:"shrink-0",children:jsx("path",{d:"M5 1.5v2M11 1.5v2M2.5 6h11M3.5 3h9a1 1 0 011 1v9a1 1 0 01-1 1h-9a1 1 0 01-1-1V4a1 1 0 011-1z",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})});function Tb({value:e,defaultValue:t,onChange:r,presets:n=Ji,custom:o=true,presetLabels:a,now:s,minDate:l,maxDate:i,numberOfMonths:c=1,weekStartsOn:d,locale:u,size:f="md",align:m="start",disabled:g=false,label:y,className:b,...h}){let x=Ve(),L=useRef(null),C=useRef(null),S=useRef(null),[v,R]=useState(false),[N,M]=useState(false),[P,E]=useState(null),[W,T]=useState(()=>typeof t=="string"?Ma(t,s):t||Ma(n[0]??"30d",s)),O=e??W,H=_n({triggerRef:L,contentRef:C,isOpen:v,side:"bottom",align:m}),k=useCallback((D=true)=>{R(false),M(false),E(null),D&&L.current?.focus();},[]);useEffect(()=>{if(!v)return;let D=B=>{let w=B.target;C.current?.contains(w)||L.current?.contains(w)||k(false);};return document.addEventListener("mousedown",D),document.addEventListener("touchstart",D,{passive:true}),()=>{document.removeEventListener("mousedown",D),document.removeEventListener("touchstart",D);}},[v,k]),useEffect(()=>{if(!v)return;let D=B=>{B.key==="Escape"&&(B.stopPropagation(),k());};return document.addEventListener("keydown",D),()=>document.removeEventListener("keydown",D)},[v,k]),useEffect(()=>{let D=C.current;if(D)return Pn(D,()=>L.current)},[v]),useEffect(()=>{if(!v)return;let D=requestAnimationFrame(()=>S.current?.focus());return ()=>cancelAnimationFrame(D)},[v]);let z=useCallback(D=>{e===void 0&&T(D),r?.(D),k();},[e,r,k]),A=useCallback(D=>z(Ma(D,s)),[z,s]),I=useCallback(D=>{E(D),!(!D.from||!D.to)&&z({preset:"custom",from:$o(D.from),to:_o(D.to)});},[z]),X=D=>a?.[D]??x[Sb[D]],$=O.preset==="custom"?el(O.from,O.to,u):X(O.preset),K=jsxs("div",{ref:C,role:"dialog","aria-label":y??x.chartPeriod,style:{position:"fixed",top:H.top,left:H.left,visibility:H.isReady?"visible":"hidden"},className:"z-50 flex overflow-hidden rounded-lg border border-gray-200 bg-white shadow-lg dark:border-gray-700 dark:bg-gray-800",children:[jsxs("div",{ref:S,tabIndex:-1,className:"flex min-w-44 flex-col p-1 outline-none",children:[n.map(D=>jsx("button",{type:"button","aria-pressed":O.preset===D,onClick:()=>A(D),className:p("cursor-pointer rounded-md px-3 py-1.5 text-left text-sm text-gray-700 hover:bg-gray-100 focus-visible:outline-2 focus-visible:outline-offset-[-2px] focus-visible:outline-blue-500 dark:text-gray-200 dark:hover:bg-gray-700",O.preset===D&&"bg-blue-50 font-medium text-blue-700 dark:bg-blue-950 dark:text-blue-300"),children:X(D)},D)),o?jsx("button",{type:"button","aria-pressed":O.preset==="custom","aria-expanded":N,onClick:()=>M(true),className:p("cursor-pointer rounded-md px-3 py-1.5 text-left text-sm text-gray-700 hover:bg-gray-100 focus-visible:outline-2 focus-visible:outline-offset-[-2px] focus-visible:outline-blue-500 dark:text-gray-200 dark:hover:bg-gray-700",O.preset==="custom"&&"bg-blue-50 font-medium text-blue-700 dark:bg-blue-950 dark:text-blue-300"),children:X("custom")}):null]}),o&&N?jsx("div",{className:"border-l border-gray-200 p-2 dark:border-gray-700",children:jsx(Nl,{mode:"range",value:P??{from:O.from,to:O.to},onChange:I,numberOfMonths:c,weekStartsOn:d,locale:u,minDate:l,maxDate:i,size:"sm"})}):null]});return jsxs(Fragment,{children:[jsxs("button",{ref:L,type:"button",disabled:g,"aria-haspopup":"dialog","aria-expanded":v,"aria-label":`${y??x.chartPeriod}: ${$}`,onClick:()=>v?k():R(true),className:p("inline-flex cursor-pointer items-center gap-2 rounded-full border border-gray-300 bg-white font-medium text-gray-700 transition-colors hover:bg-gray-50 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 disabled:cursor-not-allowed disabled:opacity-50 dark:border-gray-600 dark:bg-gray-800 dark:text-gray-200 dark:hover:bg-gray-700",Rb[f],b),...h,children:[Pb,jsx("span",{children:$})]}),v&&typeof document<"u"?createPortal(K,document.body):null]})}var Ol=[{unit:"second",step:1,span:1e3},{unit:"second",step:5,span:5e3},{unit:"second",step:15,span:15e3},{unit:"second",step:30,span:3e4},{unit:"minute",step:1,span:6e4},{unit:"minute",step:5,span:3e5},{unit:"minute",step:15,span:9e5},{unit:"minute",step:30,span:18e5},{unit:"hour",step:1,span:36e5},{unit:"hour",step:3,span:108e5},{unit:"hour",step:6,span:216e5},{unit:"hour",step:12,span:432e5},{unit:"day",step:1,span:864e5},{unit:"day",step:2,span:1728e5},{unit:"week",step:1,span:6048e5},{unit:"week",step:2,span:12096e5},{unit:"month",step:1,span:2592e6},{unit:"month",step:3,span:78624e5},{unit:"month",step:6,span:157248e5},{unit:"year",step:1,span:31536e6},{unit:"year",step:2,span:63072e6},{unit:"year",step:5,span:1577664e5},{unit:"year",step:10,span:3155328e5}];function Eb(e,t,r){let n=new Date(e.getTime());switch(t){case "year":return n.setMonth(0,1),n.setHours(0,0,0,0),n.setFullYear(Math.floor(n.getFullYear()/r)*r),n;case "month":return n.setDate(1),n.setHours(0,0,0,0),n.setMonth(Math.floor(n.getMonth()/r)*r),n;case "week":return n.setHours(0,0,0,0),n.setDate(n.getDate()-(n.getDay()+6)%7),n;case "day":return n.setHours(0,0,0,0),n;case "hour":return n.setMinutes(0,0,0),n.setHours(Math.floor(n.getHours()/r)*r),n;case "minute":return n.setSeconds(0,0),n.setMinutes(Math.floor(n.getMinutes()/r)*r),n;default:return n.setMilliseconds(0),n.setSeconds(Math.floor(n.getSeconds()/r)*r),n}}function xu(e,t,r){let n=new Date(e.getTime());switch(t){case "year":return n.setFullYear(n.getFullYear()+r),n;case "month":return n.setMonth(n.getMonth()+r),n;case "week":return n.setDate(n.getDate()+r*7),n;case "day":return n.setDate(n.getDate()+r),n;case "hour":return n.setHours(n.getHours()+r),n;case "minute":return n.setMinutes(n.getMinutes()+r),n;default:return n.setSeconds(n.getSeconds()+r),n}}function Fl(e,t,r=6){if(!Number.isFinite(e)||!Number.isFinite(t))return {values:[],unit:"day",step:1};e>t&&([e,t]=[t,e]);let n=Math.max(1,r),o=(t-e)/n,a=Ol.find(i=>i.span>=o)??Ol[Ol.length-1],s=[],l=Eb(new Date(e),a.unit,a.step);for(;l.getTime()<e;)l=xu(l,a.unit,a.step);for(;l.getTime()<=t&&s.length<=500;)s.push(l.getTime()),l=xu(l,a.unit,a.step);return {values:s,unit:a.unit,step:a.step}}function ei(e,t,r){let n=new Date(e);switch(t){case "year":return new Intl.DateTimeFormat(r,{year:"numeric"}).format(n);case "month":return new Intl.DateTimeFormat(r,{month:"short",year:"2-digit"}).format(n);case "week":case "day":return new Intl.DateTimeFormat(r,{day:"numeric",month:"short"}).format(n);case "hour":return new Intl.DateTimeFormat(r,{hour:"2-digit",minute:"2-digit"}).format(n);default:return new Intl.DateTimeFormat(r,{minute:"2-digit",second:"2-digit"}).format(n)}}function ko(e){if(e instanceof Date){let t=e.getTime();return Number.isFinite(t)?t:null}if(typeof e=="number")return Number.isFinite(e)?e:null;if(typeof e=="string"&&e!==""){let t=Date.parse(e);if(Number.isFinite(t))return t;let r=Number(e);return Number.isFinite(r)?r:null}return null}var Mb=5,Ib=3,vu=10,$l=false;function Ab(){$l=false;}var zb=memo(function({rows:t,radius:r}){return jsx("g",{children:t.map(n=>jsxs("g",{children:[n.connector?jsx("line",{x1:n.connector.x1,y1:n.connector.y,x2:n.connector.x2,y2:n.connector.y,strokeWidth:Ib,strokeLinecap:"round",className:"stroke-gray-300 dark:stroke-gray-600"}):null,n.dots.map(o=>jsx("circle",{cx:o.cx,cy:o.cy,r,fill:o.color,strokeWidth:2,className:"stroke-white dark:stroke-gray-800"},o.key)),n.label?jsx("text",{x:n.label.x,y:n.label.y,dominantBaseline:"middle",className:"fill-gray-600 text-[10px] [font-variant-numeric:tabular-nums] dark:fill-gray-300",children:n.label.text}):null]},n.key))})});function Bb({width:e,height:t,data:r,rows:n,resolvedSeries:o,x:a,y:s,grid:l,size:i,showValues:c,dotSize:d,referenceLines:u,margin:f,tooltip:m,plotLabel:g,formatValue:y,formatX:b,onRowClick:h}){let[x,L]=useState(null),C=useMemo(()=>{let P=o.filter(A=>!A.hidden).map(A=>A.key),E=Jt({width:e,height:t,data:r,x:a,y:s,bounds:Qt(vr(r,P)),margin:f,orientation:"horizontal",placement:"band",formatValue:y,formatX:b,defaultIncludeZero:false}),{valueScale:W,bandwidth:T,categoryPositions:O,innerWidth:H,innerHeight:k}=E;return {rendered:n.map((A,I)=>{let X=O[I]+T/2,$=A.points.map((B,w)=>({key:B.seriesKey,value:B.value,cx:B.value===null?Number.NaN:W(B.value),cy:X,color:B.color,order:w})).filter(B=>B.value!==null),K=A.from===null||A.to===null||$.length<2?null:{x1:W(A.from),x2:W(A.to),y:X},D=null;if(c&&A.to!==null){let B=y(A.to),w=W(A.to);ir(B,10)<=H-w-vu&&(D={x:w+vu,y:X,text:B});}return {key:`${I}`,connector:K,dots:$.map(B=>({key:B.key,cx:B.cx,cy:B.cy,color:B.color})),label:D,top:O[I],height:T}}),categoryPositions:O,categoryCenters:E.categoryCenters,bandwidth:T,categoryTicks:E.categoryTicks,valueTicks:E.valueTicks,valueScale:W,innerWidth:H,innerHeight:k,margin:E.margin}},[r,n,o,a,s,e,t,f,c,y,b]),S=useCallback(M=>{if(m===false||n.length===0)return;let P=M.currentTarget.getBoundingClientRect(),E=M.clientY-P.top-C.margin.top;L(Dt(C.categoryCenters,E));},[m,n.length,C.margin.top,C.categoryCenters]),v=useCallback(M=>{if(n.length===0)return;let P=n.length-1,E=x??0,W=M.key==="ArrowDown"?Math.min(P,E+1):M.key==="ArrowUp"?Math.max(0,E-1):M.key==="Home"?0:M.key==="End"?P:M.key==="Escape"?null:void 0;W!==void 0&&(M.preventDefault(),L(W));},[n.length,x]),R=useCallback(()=>{!h||x===null||h(n[x]);},[h,x,n]),N=x===null?null:n[x];return jsxs(Fragment,{children:[jsxs("svg",{width:e,height:t,role:"img","aria-label":g??o.map(M=>Vt(M)).join(", "),tabIndex:0,className:"touch-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500",onPointerMove:S,onPointerLeave:()=>L(null),onKeyDown:v,onBlur:()=>L(null),onClick:R,children:[jsxs("g",{transform:`translate(${C.margin.left}, ${C.margin.top})`,children:[jsx(Yt,{width:C.innerWidth,height:C.innerHeight,vertical:l==="y"||l==="both"?C.valueTicks.map(M=>M.offset):void 0}),x!==null?jsx("rect",{x:0,y:C.categoryPositions[x],width:C.innerWidth,height:C.bandwidth,className:"fill-gray-400 dark:fill-gray-500",opacity:.12,"aria-hidden":"true"}):null,u?.map(M=>jsxs("g",{children:[jsx("line",{x1:C.valueScale(M.value),y1:0,x2:C.valueScale(M.value),y2:C.innerHeight,stroke:M.color??"var(--color-chart-muted)",strokeWidth:1,strokeDasharray:M.dashed===false?void 0:"4 4"}),M.label?jsx("text",{x:C.valueScale(M.value)+4,y:8,className:"fill-gray-500 text-[10px] dark:fill-gray-400",children:M.label}):null]},`${M.value}-${M.label??""}`)),jsx(zb,{rows:C.rendered,radius:d})]}),jsx("g",{transform:`translate(${C.margin.left}, ${C.margin.top+C.innerHeight})`,children:s?.hidden?null:jsx(tt,{orientation:"bottom",ticks:C.valueTicks,length:C.innerWidth,label:s?.label,size:i})}),jsx("g",{transform:`translate(${C.margin.left}, ${C.margin.top})`,children:a.hidden?null:jsx(tt,{orientation:"left",ticks:C.categoryTicks,length:C.innerHeight,showLine:false,tickSize:0,label:a.label,size:i})})]}),N&&x!==null&&m!==false?jsx(vt,{x:C.margin.left+(N.to===null?C.innerWidth/2:C.valueScale(N.to)),y:C.margin.top+C.categoryCenters[x],containerWidth:e,children:typeof m=="function"?m(N):jsx(Tr,{title:N.label,points:N.points})}):null]})}function Hb({data:e,x:t,y:r,series:n,sort:o="none",sortBy:a,showValues:s=false,dotSize:l=Mb,referenceLines:i,height:c,width:d,size:u="md",grid:f="y",legend:m,legendToggle:g=true,tooltip:y=true,tableView:b=false,showChange:h=true,title:x,description:L,loading:C=false,emptyState:S,error:v=false,errorState:R,onRetry:N,actions:M,margin:P,locale:E,plotLabel:W,changeLabel:T,format:O,onRowClick:H,className:k,...z}){let A=Ve(),[I,X]=useState(()=>new Set);n.length>3&&!$l&&($l=true,console.warn(`[@synertech/ui] A DumbbellChart was given ${n.length} series. Any two dots of a row can sit side by side, and only the first ${3} palette slots stay tellable apart under that test: facet the chart instead.`));let $=useMemo(()=>n.map((J,ne)=>({...J,hidden:J.hidden||I.has(J.key),color:Br(J,ne)})),[n,I]),K=useMemo(()=>r?.format??O??(J=>pt(J,E)),[r?.format,O,E]),D=useMemo(()=>t.format??(J=>st(J,E)),[t.format,E]),B=useMemo(()=>$.filter(J=>!J.hidden),[$]),w=useMemo(()=>e.map((J,ne)=>{let Y=gt(J,t.key,ne),ee=B.map(oe=>{let pe=Ae(J,oe.key);return {seriesKey:oe.key,seriesLabel:Vt(oe),color:oe.color,value:pe,formattedValue:pe===null?"\u2014":K(pe),datum:J}}),Z=ee.map(oe=>oe.value).filter(oe=>oe!==null),ie=ee[0]?.value??null,V=ee[ee.length-1]?.value??null;return {index:ne,x:Y,label:D(Y,ne),points:ee,from:Z.length>0?Math.min(...Z):null,to:Z.length>0?Math.max(...Z):null,change:ie===null||V===null?null:V-ie,datum:J}}),[e,t.key,B,K,D]),G=useMemo(()=>{if(o==="none")return w;let J=a??B[B.length-1]?.key,ne=ee=>o==="gap"?Math.abs(ee.change??0):ee.points.find(Z=>Z.seriesKey===J)?.value??0,Y=[...w].sort((ee,Z)=>ne(ee)-ne(Z));return o==="asc"?Y:Y.reverse()},[w,o,a,B]),q=useCallback(J=>{X(ne=>{let Y=new Set(ne);return Y.has(J)?Y.delete(J):Y.add(J),Y});},[]),j=c??Math.max(96,G.length*30+44),U=useMemo(()=>G.map(J=>({...J.datum,__change:J.change})),[G]),F=m===void 0?n.length>=2:m!==false,_=typeof m=="string"?m:"bottom";return jsx(xt,{title:x,description:L,height:j,width:d,size:u,loading:C,empty:G.length===0||B.length===0,emptyState:S,error:v,errorState:R,onRetry:N,actions:M,tableView:b,legendPosition:_,legend:F?jsx(jt,{items:Gr($),position:_,marker:"dot",size:u,onToggle:g?q:void 0}):void 0,table:b?jsx(Ot,{data:U,series:[...$,...h?[{key:"__change",label:T??A.chartChange}]:[]],xKey:t.key,xLabel:t.label??t.key,formatX:D,formatValue:K,caption:typeof x=="string"?x:void 0}):void 0,className:k,...z,children:({width:J})=>jsx(Bb,{width:J,height:j,data:G.map(ne=>ne.datum),rows:G,resolvedSeries:$,x:t,y:r,grid:f,size:u,showValues:s,dotSize:l,referenceLines:i,margin:P,tooltip:y,plotLabel:W,formatValue:K,formatX:D,onRowClick:H})})}var Fb=8,$b=12,_b=44,Xl="text-right [font-variant-numeric:tabular-nums]",Xb=memo(function({stages:t}){return jsx("g",{children:t.map(r=>jsxs("g",{children:[jsx("path",{d:r.d,fill:r.color}),r.value?jsx("text",{x:r.value.x,y:r.value.y,textAnchor:r.value.anchor,dominantBaseline:"middle",className:r.value.inside?r.value.onDark?"fill-gray-50 text-[11px] font-semibold [font-variant-numeric:tabular-nums] dark:fill-gray-900":"fill-gray-900 text-[11px] font-semibold [font-variant-numeric:tabular-nums] dark:fill-gray-50":"fill-gray-700 text-[11px] font-semibold [font-variant-numeric:tabular-nums] dark:fill-gray-200",children:r.value.text}):null,r.conversion?jsx("text",{x:r.conversion.x,y:r.conversion.y,textAnchor:"middle",dominantBaseline:"middle",className:"fill-gray-500 text-[10px] [font-variant-numeric:tabular-nums] dark:fill-gray-400",children:r.conversion.text}):null]},r.key))})});function Gb({width:e,height:t,stages:r,x:n,size:o,align:a,showConversion:s,showValues:l,stageSize:i,ramp:c,tooltip:d,plotLabel:u,locale:f,onStageClick:m}){let[g,y]=useState(null),b=Ve(),h=useMemo(()=>{let v=r.map(k=>k.label),R={top:6,right:12,bottom:6,left:n.hidden?8:n.height??Pr(v)+$b},N=Math.max(0,e-R.left-R.right),M=Math.max(0,t-R.top-R.bottom),P=bn(r.map((k,z)=>z),[0,M],{paddingInner:s?.45:.28}),E=Math.min(i??_b,P.bandwidth),W=Math.max(0,...r.map(k=>k.value??0)),T=Ir([0,W],[0,N]),O=r.map((k,z)=>{let A=k.value===null?0:Math.max(0,T(k.value)),I=a==="center"?(N-A)/2:0,X=P(z)+(P.bandwidth-E)/2,$=X+E/2,K=null;if(l&&k.value!==null){let w=k.formattedValue;K=ir(w,11)+16<=A?{x:I+A/2,y:$,anchor:"middle",text:w,inside:true,onDark:c.onDark(z)}:{x:I+A+Fb,y:$,anchor:"start",text:w,inside:false,onDark:false};}let D=P(z-1)+(P.bandwidth-E)/2+E,B=s&&k.conversion!==null&&z>0?{x:N/2,y:(D+X)/2,text:Zt(k.conversion,{locale:f,maximumFractionDigits:0})}:null;return {key:`${z}`,d:fr({x:I,y:X,width:A,height:E,radius:4,round:a==="center"?"none":"right"}),color:c(z),value:K,conversion:B,top:P(z),height:P.bandwidth}}),H=n.hidden?[]:r.map((k,z)=>({value:k.x,offset:P.center(z),label:k.label}));return {margin:R,innerWidth:N,innerHeight:M,rendered:O,stageTicks:H,centers:r.map((k,z)=>P.center(z))}},[r,n,e,t,a,s,l,i,c,f]),x=useCallback(v=>{if(d===false||r.length===0)return;let R=v.currentTarget.getBoundingClientRect(),N=v.clientY-R.top-h.margin.top;y(Dt(h.centers,N));},[d,r.length,h.margin.top,h.centers]),L=useCallback(v=>{if(r.length===0)return;let R=r.length-1,N=g??0,M=v.key==="ArrowDown"?Math.min(R,N+1):v.key==="ArrowUp"?Math.max(0,N-1):v.key==="Home"?0:v.key==="End"?R:v.key==="Escape"?null:void 0;M!==void 0&&(v.preventDefault(),y(M));},[r.length,g]),C=useCallback(()=>{!m||g===null||m(r[g]);},[m,g,r]),S=g===null?null:r[g];return jsxs(Fragment,{children:[jsxs("svg",{width:e,height:t,role:"img","aria-label":u??r.map(v=>v.label).join(", "),tabIndex:0,className:"touch-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500",onPointerMove:x,onPointerLeave:()=>y(null),onKeyDown:L,onBlur:()=>y(null),onClick:C,children:[jsxs("g",{transform:`translate(${h.margin.left}, ${h.margin.top})`,children:[g!==null&&h.rendered[g]?jsx("rect",{x:-4,y:h.rendered[g].top,width:h.innerWidth+8,height:h.rendered[g].height,rx:4,className:"fill-gray-400 dark:fill-gray-500",opacity:.12,"aria-hidden":"true"}):null,jsx(Xb,{stages:h.rendered})]}),jsx("g",{transform:`translate(${h.margin.left}, ${h.margin.top})`,children:n.hidden?null:jsx(tt,{orientation:"left",ticks:h.stageTicks,length:h.innerHeight,showLine:false,tickSize:0,size:o})})]}),S&&g!==null&&d!==false?jsx(vt,{x:h.margin.left+h.innerWidth/2,y:h.margin.top+h.centers[g],containerWidth:e,children:typeof d=="function"?d(S):jsxs("div",{className:"flex flex-col gap-1",children:[jsx("div",{className:"font-medium text-gray-900 dark:text-gray-100",children:S.label}),jsxs("div",{className:"flex items-center gap-2",children:[jsx("span",{className:"h-2.5 w-2.5 shrink-0 rounded-sm",style:{backgroundColor:h.rendered[g]?.color},"aria-hidden":"true"}),jsx("span",{className:"font-semibold text-gray-900 [font-variant-numeric:tabular-nums] dark:text-gray-100",children:S.formattedValue})]}),S.conversion!==null?jsxs("div",{className:"flex items-center gap-2 text-gray-500 dark:text-gray-400",children:[jsx("span",{children:b.chartConversion}),jsx("span",{className:"[font-variant-numeric:tabular-nums]",children:Zt(S.conversion,{locale:f,maximumFractionDigits:1})})]}):null,S.overall!==null?jsxs("div",{className:"flex items-center gap-2 text-gray-500 dark:text-gray-400",children:[jsx("span",{children:r[0]?.label}),jsx("span",{className:"[font-variant-numeric:tabular-nums]",children:Zt(S.overall,{locale:f,maximumFractionDigits:1})})]}):null]})}):null]})}function Ub({data:e,x:t,value:r,align:n="center",showConversion:o=true,showValues:a=true,stageSize:s,colors:l,height:i,width:c,size:d="md",tooltip:u=true,tableView:f=false,title:m,description:g,loading:y=false,emptyState:b,error:h=false,errorState:x,onRetry:L,actions:C,locale:S,plotLabel:v,valueLabel:R,conversionLabel:N,dropOffLabel:M,format:P,onStageClick:E,className:W,...T}){let O=Ve(),H=useMemo(()=>P??(X=>pt(X,S)),[P,S]),k=useMemo(()=>t.format??(X=>st(X,S)),[t.format,S]),z=useMemo(()=>{let X=Ae(e[0]??{},r);return e.map(($,K)=>{let D=gt($,t.key,K),B=Ae($,r),w=K===0?null:Ae(e[K-1],r);return {index:K,x:D,label:k(D,K),value:B,overall:K===0||X===null||X===0||B===null?null:B/X,conversion:w===null||w===0||B===null?null:B/w,dropOff:w===null||B===null?null:w-B,formattedValue:B===null?"\u2014":H(B),datum:$}})},[e,t.key,r,H,k]),A=useMemo(()=>za([0,Math.max(1,z.length-1)],{colors:l??Ia,...l?{}:{darkStops:ol}}),[z.length,l]),I=i??Math.max(96,z.length*(o?56:44)+12);return jsx(xt,{title:m,description:g,height:I,width:c,size:d,loading:y,empty:z.length===0,emptyState:b,error:h,errorState:x,onRetry:L,actions:C,tableView:f,table:f?jsx("div",{className:"w-full overflow-x-auto",children:jsxs(yn,{children:[typeof m=="string"?jsx("caption",{className:"sr-only",children:m}):null,jsxs(vn,{children:[jsx(It,{children:t.label??t.key}),jsx(It,{className:"text-right",children:R??O.chartValue}),jsx(It,{className:"text-right",children:N??O.chartConversion}),jsx(It,{className:"text-right",children:M??O.chartDropOff})]}),jsx(xn,{children:z.map(X=>jsxs(Cn,{clickable:false,children:[jsx(qt,{className:"font-medium text-gray-900 dark:text-gray-100",children:X.label}),jsx(qt,{className:Xl,children:X.formattedValue}),jsx(qt,{className:Xl,children:X.conversion===null?"\u2014":Zt(X.conversion,{locale:S,maximumFractionDigits:1})}),jsx(qt,{className:Xl,children:X.dropOff===null?"\u2014":H(X.dropOff)})]},X.index))})]})}):void 0,className:W,...T,children:({width:X})=>jsx(Gb,{width:X,height:I,stages:z,x:t,size:d,align:n,showConversion:o,showValues:a,stageSize:s,ramp:A,tooltip:u,plotLabel:v,locale:S,onStageClick:E})})}var qb=18,ku=.5,Zb=.3,ri=7,wu=10,Nu=.02,Gl="text-right [font-variant-numeric:tabular-nums]",Qb=memo(function({tasks:t,arrows:r}){return jsxs("g",{children:[jsx("g",{className:"fill-gray-400 stroke-gray-400 dark:fill-gray-500 dark:stroke-gray-500",children:r.map(n=>jsxs("g",{children:[jsx("path",{d:n.d,fill:"none",strokeWidth:1}),jsx("path",{d:n.head,strokeWidth:0})]},n.key))}),t.map(n=>jsxs("g",{children:[n.track?jsx("path",{d:n.track,fill:n.color,fillOpacity:n.trackOpacity}):null,n.progress?jsx("path",{d:n.progress,fill:n.color}):null,n.milestone?jsx("path",{d:n.milestone,fill:n.color,strokeWidth:2,className:"stroke-white dark:stroke-gray-800"}):null]},n.key))]})});function Jb({width:e,height:t,data:r,tasks:n,x:o,domain:a,unit:s,timeTicks:l,today:i,grid:c,size:d,barSize:u,colorOf:f,margin:m,tooltip:g,plotLabel:y,todayLabel:b,locale:h,formatDate:x,formatX:L,onTaskClick:C}){let[S,v]=useState(null),R=Ve(),N=useMemo(()=>{let T=Jt({width:e,height:t,data:r,x:o,y:{domain:a},bounds:a,margin:m,orientation:"horizontal",placement:"band",formatValue:B=>ei(B,s,h),formatX:L}),{valueScale:O,bandwidth:H,categoryPositions:k,innerWidth:z,innerHeight:A}=T,I=Math.min(u??qb,H),X=new Map(n.map((B,w)=>[B.id,w])),$=n.map((B,w)=>{let G=k[w]+(H-I)/2,q=G+I/2,j=f(B);if(B.start===null)return {key:`${w}`,color:j,track:null,trackOpacity:1,progress:null,milestone:null,top:k[w],height:H};let U=O(B.start);if(B.milestone)return {key:`${w}`,color:j,track:null,trackOpacity:1,progress:null,milestone:`M${U},${q-ri} L${U+ri},${q} L${U},${q+ri} L${U-ri},${q} Z`,top:k[w],height:H};let F=O(B.end??B.start),_=Math.max(2,F-U);return {key:`${w}`,color:j,track:fr({x:U,y:G,width:_,height:I,radius:3}),trackOpacity:B.progress===null?1:Zb,progress:B.progress===null?null:fr({x:U,y:q-I*ku/2,width:Math.max(0,_*Math.min(1,Math.max(0,B.progress))),height:I*ku,radius:2,round:"right"}),milestone:null,top:k[w],height:H}}),K=[];n.forEach((B,w)=>{if(B.start!==null)for(let G of B.dependsOn){let q=X.get(G);if(q===void 0||q===w)continue;let j=n[q];if(j.start===null)continue;let U=O(j.end??j.start),F=k[q]+H/2,_=O(B.start),J=k[w]+H/2,ne=Math.max(U+wu,_-wu);K.push({key:`${G}-${B.id}`,d:`M${U},${F} L${ne},${F} L${ne},${J} L${_-5},${J}`,head:`M${_},${J} L${_-5},${J-3.5} L${_-5},${J+3.5} Z`});}});let D=l.map(B=>({value:B,offset:O(B),label:ei(B,s,h)}));return {rendered:$,arrows:K,categoryPositions:k,categoryCenters:T.categoryCenters,bandwidth:H,categoryTicks:T.categoryTicks,valueTicks:D,valueScale:O,innerWidth:z,innerHeight:A,margin:T.margin}},[n,r,o,a,s,l,e,t,m,u,f,h,L]),M=useCallback(T=>{if(g===false||n.length===0)return;let O=T.currentTarget.getBoundingClientRect(),H=T.clientY-O.top-N.margin.top;v(Dt(N.categoryCenters,H));},[g,n.length,N.margin.top,N.categoryCenters]),P=useCallback(T=>{if(n.length===0)return;let O=n.length-1,H=S??0,k=T.key==="ArrowDown"?Math.min(O,H+1):T.key==="ArrowUp"?Math.max(0,H-1):T.key==="Home"?0:T.key==="End"?O:T.key==="Escape"?null:void 0;k!==void 0&&(T.preventDefault(),v(k));},[n.length,S]),E=useCallback(()=>{!C||S===null||C(n[S]);},[C,S,n]),W=S===null?null:n[S];return jsxs(Fragment,{children:[jsxs("svg",{width:e,height:t,role:"img","aria-label":y??n.map(T=>T.label).join(", "),tabIndex:0,className:"touch-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500",onPointerMove:M,onPointerLeave:()=>v(null),onKeyDown:P,onBlur:()=>v(null),onClick:E,children:[jsxs("g",{transform:`translate(${N.margin.left}, ${N.margin.top})`,children:[jsx(Yt,{width:N.innerWidth,height:N.innerHeight,vertical:c?N.valueTicks.map(T=>T.offset):void 0}),S!==null?jsx("rect",{x:0,y:N.categoryPositions[S],width:N.innerWidth,height:N.bandwidth,className:"fill-gray-400 dark:fill-gray-500",opacity:.12,"aria-hidden":"true"}):null,jsx(Qb,{tasks:N.rendered,arrows:N.arrows}),i!==null?jsxs("g",{children:[jsx("line",{x1:N.valueScale(i),y1:0,x2:N.valueScale(i),y2:N.innerHeight,className:"stroke-gray-900 dark:stroke-white",strokeWidth:1,strokeDasharray:"4 4"}),jsx("text",{x:N.valueScale(i)+4,y:8,className:"fill-gray-500 text-[10px] dark:fill-gray-400",children:b})]}):null]}),jsx("g",{transform:`translate(${N.margin.left}, ${N.margin.top+N.innerHeight})`,children:jsx(tt,{orientation:"bottom",ticks:N.valueTicks,length:N.innerWidth,size:d})}),jsx("g",{transform:`translate(${N.margin.left}, ${N.margin.top})`,children:o.hidden?null:jsx(tt,{orientation:"left",ticks:N.categoryTicks,length:N.innerHeight,showLine:false,tickSize:0,label:o.label,size:d})})]}),W&&S!==null&&g!==false?jsx(vt,{x:N.margin.left+(W.start===null?N.innerWidth/2:N.valueScale(W.start)),y:N.margin.top+N.categoryCenters[S],containerWidth:e,children:typeof g=="function"?g(W):jsxs("div",{className:"flex flex-col gap-1",children:[jsx("div",{className:"font-medium text-gray-900 dark:text-gray-100",children:W.label}),jsxs("div",{className:"flex items-center gap-2 text-gray-500 dark:text-gray-400",children:[jsx("span",{children:R.chartStart}),jsx("span",{className:"[font-variant-numeric:tabular-nums] text-gray-900 dark:text-gray-100",children:W.start===null?"\u2014":x(W.start)})]}),W.milestone?null:jsxs("div",{className:"flex items-center gap-2 text-gray-500 dark:text-gray-400",children:[jsx("span",{children:R.chartEnd}),jsx("span",{className:"[font-variant-numeric:tabular-nums] text-gray-900 dark:text-gray-100",children:W.end===null?"\u2014":x(W.end)})]}),W.progress===null?null:jsxs("div",{className:"flex items-center gap-2 text-gray-500 dark:text-gray-400",children:[jsx("span",{children:R.chartProgress}),jsx("span",{className:"[font-variant-numeric:tabular-nums] text-gray-900 dark:text-gray-100",children:Zt(W.progress,{locale:h,maximumFractionDigits:0})})]})]})}):null]})}function ey({data:e,x:t,start:r,end:n,id:o,progress:a,milestone:s,dependencies:l,group:i,domain:c,today:d,ticks:u=6,barSize:f,rowSize:m=30,color:g,height:y,width:b,size:h="md",grid:x=true,legend:L,tooltip:C=true,tableView:S=false,title:v,description:R,loading:N=false,emptyState:M,error:P=false,errorState:E,onRetry:W,actions:T,margin:O,locale:H,plotLabel:k,startLabel:z,endLabel:A,progressLabel:I,todayLabel:X,formatDate:$,onTaskClick:K,className:D,...B}){let w=Ve(),G=useMemo(()=>t.format??(V=>st(V,H)),[t.format,H]),q=useMemo(()=>e.map((V,oe)=>{let pe=gt(V,t.key,oe),Te=ko(V[r]),ze=n?ko(V[n]):null,ae=s?!!V[s]:ze===null,re=l?V[l]:void 0;return {index:oe,id:String(o?V[o]??oe:oe),x:pe,label:G(pe,oe),start:Te,end:ae?Te:ze??Te,progress:a?Ae(V,a):null,milestone:ae,dependsOn:Array.isArray(re)?re.map(ce=>String(ce)):[],group:i?V[i]??null:null,datum:V}}),[e,t.key,r,n,o,a,s,l,i,G]),j=useMemo(()=>{let V=[];for(let oe of q)oe.group!==null&&!V.includes(oe.group)&&V.push(oe.group);return V},[q]),U=useCallback(V=>V.group===null?g??zr(0):zr(j.indexOf(V.group)),[j,g]),F=useMemo(()=>{if(c){let ze=ko(c[0]),ae=ko(c[1]);if(ze!==null&&ae!==null)return [ze,ae]}let V=q.flatMap(ze=>ze.start===null?[]:[ze.start,ze.end??ze.start]);if(V.length===0)return [0,1];let oe=Math.min(...V),pe=Math.max(...V),Te=pe-oe||864e5;return [oe-Te*Nu,pe+Te*Nu]},[c,q]),_=useMemo(()=>Fl(F[0],F[1],u),[F,u]),J=useMemo(()=>$??(V=>new Intl.DateTimeFormat(H,{day:"numeric",month:"short",year:"numeric"}).format(new Date(V))),[$,H]),ne=useMemo(()=>d===false?null:ko(d??Date.now()),[d]),Y=useMemo(()=>j.map((V,oe)=>({key:V,label:V,color:zr(oe),marker:"rect"})),[j]),ee=y??Math.max(120,q.length*m+48),Z=L===void 0?j.length>=2:L!==false,ie=typeof L=="string"?L:"bottom";return jsx(xt,{title:v,description:R,height:ee,width:b,size:h,loading:N,empty:q.length===0,emptyState:M,error:P,errorState:E,onRetry:W,actions:T,tableView:S,legendPosition:ie,legend:Z&&Y.length>0?jsx(jt,{items:Y,position:ie,marker:"rect",size:h}):void 0,table:S?jsx("div",{className:"w-full overflow-x-auto",children:jsxs(yn,{children:[typeof v=="string"?jsx("caption",{className:"sr-only",children:v}):null,jsxs(vn,{children:[jsx(It,{children:t.label??t.key}),jsx(It,{className:"text-right",children:z??w.chartStart}),jsx(It,{className:"text-right",children:A??w.chartEnd}),a?jsx(It,{className:"text-right",children:I??w.chartProgress}):null]}),jsx(xn,{children:q.map(V=>jsxs(Cn,{clickable:false,children:[jsx(qt,{className:"font-medium text-gray-900 dark:text-gray-100",children:V.label}),jsx(qt,{className:Gl,children:V.start===null?"\u2014":J(V.start)}),jsx(qt,{className:Gl,children:V.milestone||V.end===null?"\u2014":J(V.end)}),a?jsx(qt,{className:Gl,children:V.progress===null?"\u2014":Zt(V.progress,{locale:H,maximumFractionDigits:0})}):null]},V.index))})]})}):void 0,className:D,...B,children:({width:V})=>jsx(Jb,{width:V,height:ee,data:e,tasks:q,x:t,domain:F,unit:_.unit,timeTicks:_.values,today:ne,grid:x,size:h,barSize:f,colorOf:U,margin:O,tooltip:C,plotLabel:k,todayLabel:X??w.chartToday,locale:H,formatDate:J,formatX:G,onTaskClick:K})})}var oy=24,ay=4,la=6,sy=Xo(mo,1),iy=Xo(mo,0),ly=memo(function({bars:t,connectors:r}){return jsxs("g",{children:[jsx("g",{className:"stroke-gray-300 dark:stroke-gray-600",strokeWidth:1,shapeRendering:"crispEdges","aria-hidden":"true",children:r.map(n=>jsx("line",{x1:n.x1,y1:n.y1,x2:n.x2,y2:n.y2},n.key))}),t.map(n=>jsxs("g",{children:[jsx("path",{d:n.d,fill:n.color}),n.label?jsx("text",{x:n.label.x,y:n.label.y,textAnchor:n.label.anchor,dominantBaseline:"middle",className:"fill-gray-600 text-[10px] [font-variant-numeric:tabular-nums] dark:fill-gray-300",children:n.label.text}):null]},n.key))]})});function cy({width:e,height:t,steps:r,data:n,x:o,y:a,grid:s,size:l,orientation:i,connectors:c,showValues:d,barSize:u,palette:f,margin:m,tooltip:g,plotLabel:y,totalLabel:b,formatValue:h,formatX:x,onStepClick:L}){let[C,S]=useState(null),v=useMemo(()=>{let W=i==="vertical",T=r.flatMap(B=>[B.start,B.end]),O=Jt({width:e,height:t,data:n,x:o,y:a,bounds:T.length===0?null:[Math.min(...T),Math.max(...T)],margin:m,orientation:i,placement:"band",formatValue:h,formatX:x,defaultIncludeZero:true}),{valueScale:H,bandwidth:k,categoryPositions:z,innerWidth:A,innerHeight:I}=O,X=H(0),$=Math.min(u??oy,k),K=[],D=[];return r.forEach((B,w)=>{let G=z[w]+(k-$)/2,q=H(B.start),j=H(B.end),U=Math.min(q,j),F=Math.abs(j-q),_=B.end>=B.start,J=W?_?"top":"bottom":_?"right":"left",ne=W?{x:G,y:U,width:$,height:F}:{x:U,y:G,width:F,height:$},Y=null;if(d&&B.value!==null){let Z=B.kind==="total"?B.formattedEnd:B.formattedValue,ie=ir(Z,10),V=H(_?Math.max(B.start,B.end):Math.min(B.start,B.end));if(W){let oe=_?V-la:V+la;ie<=k&&oe>8&&oe<I-4&&(Y={x:G+$/2,y:oe,anchor:"middle",text:Z});}else {let oe=_?A-V-la:V-la;ie<=oe&&(Y={x:_?V+la:V-la,y:G+$/2,anchor:_?"start":"end",text:Z});}}K.push({key:`${w}`,color:f[B.kind],d:fr({...ne,radius:ay,round:J}),label:Y});let ee=r[w+1];if(c&&ee){let Z=H(B.end),ie=z[w+1]+(k-$)/2;D.push(W?{key:`${w}`,x1:G+$,y1:Z,x2:ie,y2:Z}:{key:`${w}`,x1:Z,y1:G+$,x2:Z,y2:ie});}}),{vertical:W,bars:K,rules:D,baseline:X,bandwidth:k,categoryPositions:z,categoryCenters:O.categoryCenters,categoryTicks:O.categoryTicks,valueTicks:O.valueTicks,valueScale:H,innerWidth:A,innerHeight:I,margin:O.margin}},[r,n,o,a,e,t,m,i,c,d,u,f,h,x]),R=useCallback(W=>{if(g===false||r.length===0)return;let T=W.currentTarget.getBoundingClientRect(),O=v.vertical?W.clientX-T.left-v.margin.left:W.clientY-T.top-v.margin.top;S(Dt(v.categoryCenters,O));},[g,r.length,v.vertical,v.margin,v.categoryCenters]),N=useCallback(W=>{if(r.length===0)return;let T=r.length-1,O=C??0,H=v.vertical?"ArrowRight":"ArrowDown",k=v.vertical?"ArrowLeft":"ArrowUp",z=W.key===H?Math.min(T,O+1):W.key===k?Math.max(0,O-1):W.key==="Home"?0:W.key==="End"?T:W.key==="Escape"?null:void 0;z!==void 0&&(W.preventDefault(),S(z));},[r.length,C,v.vertical]),M=useCallback(()=>{!L||C===null||L(r[C]);},[L,C,r]),P=C===null?null:r[C],E=C===null||P===void 0||P===null?null:v.vertical?{x:v.margin.left+v.categoryCenters[C],y:v.margin.top+Math.min(v.valueScale(P.start),v.valueScale(P.end))}:{x:v.margin.left+Math.max(v.valueScale(P.start),v.valueScale(P.end)),y:v.margin.top+v.categoryCenters[C]};return jsxs(Fragment,{children:[jsxs("svg",{width:e,height:t,role:"img","aria-label":y??r.map(W=>W.label).join(", "),tabIndex:0,className:"touch-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500",onPointerMove:R,onPointerLeave:()=>S(null),onKeyDown:N,onBlur:()=>S(null),onClick:M,children:[jsxs("g",{transform:`translate(${v.margin.left}, ${v.margin.top})`,children:[jsx(Yt,{width:v.innerWidth,height:v.innerHeight,horizontal:v.vertical&&(s==="y"||s==="both")?v.valueTicks.map(W=>W.offset):void 0,vertical:!v.vertical&&(s==="y"||s==="both")?v.valueTicks.map(W=>W.offset):void 0}),C!==null?jsx("rect",{x:v.vertical?v.categoryPositions[C]:0,y:v.vertical?0:v.categoryPositions[C],width:v.vertical?v.bandwidth:v.innerWidth,height:v.vertical?v.innerHeight:v.bandwidth,className:"fill-gray-400 dark:fill-gray-500",opacity:.12,"aria-hidden":"true"}):null,jsx(ly,{bars:v.bars,connectors:v.rules}),jsx("line",{x1:v.vertical?0:v.baseline,y1:v.vertical?v.baseline:0,x2:v.vertical?v.innerWidth:v.baseline,y2:v.vertical?v.baseline:v.innerHeight,className:"stroke-gray-300 dark:stroke-gray-600",strokeWidth:1,shapeRendering:"crispEdges"})]}),jsx("g",{transform:`translate(${v.margin.left}, ${v.margin.top+v.innerHeight})`,children:(v.vertical?o.hidden:a?.hidden)?null:jsx(tt,{orientation:"bottom",ticks:v.vertical?v.categoryTicks:v.valueTicks,length:v.innerWidth,label:v.vertical?o.label:a?.label,size:l})}),jsx("g",{transform:`translate(${v.margin.left}, ${v.margin.top})`,children:(v.vertical?a?.hidden:o.hidden)?null:jsx(tt,{orientation:"left",ticks:v.vertical?v.valueTicks:v.categoryTicks,length:v.innerHeight,showLine:false,label:v.vertical?a?.label:o.label,size:l})})]}),P&&E&&g!==false?jsx(vt,{x:E.x,y:E.y,containerWidth:e,children:typeof g=="function"?g(P):jsxs("div",{className:"flex flex-col gap-1",children:[jsx("div",{className:"font-medium text-gray-900 dark:text-gray-100",children:P.label}),jsxs("div",{className:"flex items-center gap-2",children:[jsx("span",{className:"h-2.5 w-2.5 shrink-0 rounded-sm",style:{backgroundColor:f[P.kind]},"aria-hidden":"true"}),jsx("span",{className:"font-semibold text-gray-900 [font-variant-numeric:tabular-nums] dark:text-gray-100",children:P.kind==="total"?P.formattedEnd:P.formattedValue})]}),P.kind==="total"?null:jsxs("div",{className:"flex items-center gap-2 text-gray-500 dark:text-gray-400",children:[jsx("span",{children:b}),jsx("span",{className:"[font-variant-numeric:tabular-nums]",children:P.formattedEnd})]})]})}):null]})}function dy({data:e,x:t,y:r,value:n,total:o,start:a=0,orientation:s="vertical",connectors:l=true,showValues:i=true,barSize:c,colors:d,height:u=280,width:f,size:m="md",grid:g="y",legend:y,tooltip:b=true,tableView:h=false,title:x,description:L,loading:C=false,emptyState:S,error:v=false,errorState:R,onRetry:N,actions:M,margin:P,locale:E,plotLabel:W,valueLabel:T,totalLabel:O,increaseLabel:H,decreaseLabel:k,format:z,onStepClick:A,className:I,...X}){let $=Ve(),K=useMemo(()=>z??(_=>pt(_,E)),[z,E]),D=useMemo(()=>t.format??(_=>st(_,E)),[t.format,E]),B=useMemo(()=>{let _=a;return e.map((J,ne)=>{let Y=gt(J,t.key,ne),ee=Ae(J,n);if(o?!!J[o]:false){let oe=ee??_;return _=oe,{index:ne,x:Y,label:D(Y,ne),value:oe,start:0,end:oe,kind:"total",formattedValue:K(oe),formattedEnd:K(oe),datum:J}}let ie=_,V=ee===null?_:_+ee;return _=V,{index:ne,x:Y,label:D(Y,ne),value:ee,start:ie,end:V,kind:ee!==null&&ee<0?"decrease":"increase",formattedValue:ee===null?"\u2014":`${ee>0?"+":""}${K(ee)}`,formattedEnd:K(V),datum:J}})},[e,t.key,n,o,a,K,D]),w=useMemo(()=>({increase:d?.increase??sy,decrease:d?.decrease??iy,total:d?.total??Ar}),[d]),G=O??$.chartRunningTotal,q=useMemo(()=>{let _=[{key:"increase",label:H??$.chartIncrease,color:w.increase,marker:"rect"},{key:"decrease",label:k??$.chartDecrease,color:w.decrease,marker:"rect"}];return B.some(J=>J.kind==="total")&&_.push({key:"total",label:G,color:w.total,marker:"rect"}),_},[w,B,H,k,G,$.chartIncrease,$.chartDecrease]),j=useMemo(()=>B.map(_=>({[t.key]:_.x,[n]:_.kind==="total"?null:_.value,__running:_.end})),[B,t.key,n]),U=y===void 0?true:y!==false,F=typeof y=="string"?y:"bottom";return jsx(xt,{title:x,description:L,height:u,width:f,size:m,loading:C,empty:B.length===0,emptyState:S,error:v,errorState:R,onRetry:N,actions:M,tableView:h,legendPosition:F,legend:U?jsx(jt,{items:q,position:F,marker:"rect",size:m}):void 0,table:h?jsx(Ot,{data:j,series:[{key:n,label:T??$.chartValue},{key:"__running",label:G}],xKey:t.key,xLabel:t.label??t.key,formatX:D,formatValue:K,caption:typeof x=="string"?x:void 0}):void 0,className:I,...X,children:({width:_})=>jsx(cy,{width:_,height:u,steps:B,data:e,x:t,y:r,grid:g,size:m,orientation:s,connectors:l,showValues:i,barSize:c,palette:w,margin:P,tooltip:b,plotLabel:W,totalLabel:G,formatValue:K,formatX:D,onStepClick:A})})}var by=e=>{switch(e){case "sm":return {checkbox:"w-4 h-4",label:"text-xs",description:"text-xs"};case "lg":return {checkbox:"w-6 h-6",label:"text-base",description:"text-sm"};default:return {checkbox:"w-5 h-5",label:"text-sm",description:"text-xs"}}},yy=e=>{switch(e){case "circle":return "rounded-full";case "rounded":return "rounded-md";default:return "rounded"}},xy=({className:e})=>jsx("svg",{className:e,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M13.5 4.5L6 12L2.5 8.5",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"})}),vy=({className:e})=>jsx("svg",{className:e,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M3 8H13",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round"})}),Ka=forwardRef(({checked:e,defaultChecked:t=false,onChange:r,disabled:n=false,readOnly:o=false,required:a=false,name:s,value:l,id:i,label:c,description:d,error:u=false,size:f="md",labelPosition:m="right",checkedColor:g="bg-blue-600",uncheckedColor:y="bg-white dark:bg-gray-800",borderColor:b="border-gray-300 dark:border-gray-600",labelColor:h,errorColor:x="text-red-500",checkmarkColor:L="text-white",hoverColor:C,focusRingColor:S="ring-blue-500",indeterminate:v=false,icon:R,variant:N="default",shape:M="square",animation:P=true,showFocusRing:E=true,className:W,containerClassName:T,style:O,tabIndex:H,...k},z)=>{let A=useId(),I=i||A,X=`${I}-error`,$=`${I}-description`,[K,D]=useState(t),B=e!==void 0,w=B?e:K,G=useRef(null);useEffect(()=>{G.current&&(G.current.indeterminate=v);},[v]);let q=ne=>{if(n||o)return;let Y=ne.target.checked;B||D(Y),r?.(Y,ne);},j=by(f),U=yy(M),F=()=>{let ne=p("relative flex items-center justify-center border-2 transition-all",j.checkbox,U,P&&"duration-200 ease-in-out");return n?p(ne,"opacity-50 cursor-not-allowed",w||v?g:y,b):N==="filled"?p(ne,w||v?g:"bg-gray-100 dark:bg-gray-700",w||v?"border-transparent":b,C&&!o&&`hover:${C}`,"cursor-pointer"):N==="outlined"?p(ne,y,w||v?`border-current ${g.replace("bg-","text-")}`:b,"border-2",C&&!o&&`hover:${C}`,"cursor-pointer"):p(ne,w||v?g:y,w||v?"border-transparent":b,C&&!o&&`hover:${C}`,"cursor-pointer")},_=u!==false,J=typeof u=="string"?u:void 0;return jsxs("div",{className:p("inline-flex flex-col",T),children:[jsxs("label",{htmlFor:I,className:p("inline-flex items-start gap-2",n?"cursor-not-allowed":"cursor-pointer",m==="left"&&"flex-row-reverse justify-end"),children:[jsx("input",{ref:ne=>{G&&(G.current=ne),typeof z=="function"?z(ne):z&&(z.current=ne);},type:"checkbox",id:I,name:s,value:l,checked:w,onChange:q,disabled:n,readOnly:o,required:a,tabIndex:o?-1:H,"aria-invalid":_,"aria-describedby":p(J&&X,d&&$),className:"sr-only peer",style:O,...k}),jsx("span",{className:p(F(),E&&`peer-focus-visible:ring-2 peer-focus-visible:ring-offset-2 peer-focus-visible:${S}`,P&&w&&"scale-100",_&&"border-red-500"),"aria-hidden":"true",children:(w||v)&&jsx("span",{className:p(L,P&&"animate-in zoom-in-50 duration-200"),children:v?R||jsx(vy,{className:"w-full h-full"}):R||jsx(xy,{className:"w-full h-full"})})}),c&&jsxs("span",{className:"flex flex-col gap-1",children:[jsxs("span",{className:p(j.label,n&&"opacity-50",h,_&&x),children:[c,a&&jsx("span",{className:"text-red-500 ml-1",children:"*"})]}),d&&jsx("span",{id:$,className:p(j.description,"text-gray-500 dark:text-gray-400",n&&"opacity-50"),children:d})]})]}),J&&jsx("p",{id:X,className:p("mt-1 text-xs",x),children:J})]})});Ka.displayName="Checkbox";var Su=createContext(null),Ru=({label:e,description:t,value:r,defaultValue:n=[],onChange:o,orientation:a="vertical",spacing:s="md",disabled:l=false,size:i="md",error:c=false,required:d=false,children:u,className:f,labelClassName:m,...g})=>{let[y,b]=Cl.useState(n),h=r!==void 0,x=h?r:y,L=Cl.useCallback(N=>{let M=x.includes(N)?x.filter(P=>P!==N):[...x,N];h||b(M),o?.(M);},[x,h,o]),C=Cl.useMemo(()=>({value:x,onChange:L,disabled:l,size:i}),[x,L,l,i]),S={sm:a==="vertical"?"gap-2":"gap-3",md:a==="vertical"?"gap-3":"gap-4",lg:a==="vertical"?"gap-4":"gap-6"},v=c!==false,R=typeof c=="string"?c:void 0;return jsxs("div",{className:p("flex flex-col gap-2",f),...g,children:[(e||t)&&jsxs("div",{className:"flex flex-col gap-1",children:[e&&jsxs("label",{className:p("text-sm font-medium text-gray-900 dark:text-gray-100",l&&"opacity-50",v&&"text-red-500",m),children:[e,d&&jsx("span",{className:"text-red-500 ml-1",children:"*"})]}),t&&jsx("p",{className:p("text-xs text-gray-500 dark:text-gray-400",l&&"opacity-50"),children:t})]}),jsx(Su.Provider,{value:C,children:jsx("div",{className:p("flex",a==="vertical"?"flex-col":"flex-row flex-wrap",S[s]),role:"group",children:u})}),R&&jsx("p",{className:"text-xs text-red-500",children:R})]})};Ru.displayName="CheckboxGroup";var Pu=({value:e,disabled:t,size:r,...n})=>{let o=useContext(Su);if(!o)return console.warn("CheckboxGroupItem doit \xEAtre utilis\xE9 dans un CheckboxGroup"),jsx(Ka,{...n,disabled:t,size:r});let{value:a,onChange:s,disabled:l,size:i}=o,c=a.includes(e);return jsx(Ka,{...n,checked:c,onChange:()=>s(e),disabled:l||t,size:r||i})};Pu.displayName="CheckboxGroupItem";var hr={compact:"px-3 py-1.5",default:"px-4 py-3",comfortable:"px-6 py-4"},si={compact:"text-xs",default:"text-sm",comfortable:"text-base"},Ry=()=>jsx("svg",{className:"w-3.5 h-3.5",viewBox:"0 0 16 16",fill:"currentColor",children:jsx("path",{d:"M8 3l4 5H4l4-5z"})}),Py=()=>jsx("svg",{className:"w-3.5 h-3.5",viewBox:"0 0 16 16",fill:"currentColor",children:jsx("path",{d:"M8 13l4-5H4l4 5z"})}),Ty=()=>jsx("svg",{className:"w-3.5 h-3.5 opacity-30",viewBox:"0 0 16 16",fill:"currentColor",children:jsx("path",{d:"M8 3l3 4H5l3-4zM8 13l3-4H5l3 4z"})}),Tu=({className:e})=>jsx("svg",{className:p("w-4 h-4",e),viewBox:"0 0 20 20",fill:"currentColor",children:jsx("path",{fillRule:"evenodd",d:"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z",clipRule:"evenodd"})}),Dy=()=>jsx("svg",{className:"w-4 h-4 text-gray-400",viewBox:"0 0 20 20",fill:"currentColor",children:jsx("path",{fillRule:"evenodd",d:"M9 3.5a5.5 5.5 0 100 11 5.5 5.5 0 000-11zM2 9a7 7 0 1112.452 4.391l3.328 3.329a.75.75 0 11-1.06 1.06l-3.329-3.328A7 7 0 012 9z",clipRule:"evenodd"})}),Ey=()=>jsx("svg",{className:"w-4 h-4 text-gray-400",viewBox:"0 0 20 20",fill:"currentColor",children:jsx("path",{d:"M7 4a1.5 1.5 0 110-3 1.5 1.5 0 010 3zm6 0a1.5 1.5 0 110-3 1.5 1.5 0 010 3zM7 10.5a1.5 1.5 0 110-3 1.5 1.5 0 010 3zm6 0a1.5 1.5 0 110-3 1.5 1.5 0 010 3zM7 17a1.5 1.5 0 110-3 1.5 1.5 0 010 3zm6 0a1.5 1.5 0 110-3 1.5 1.5 0 010 3z"})}),Ly=()=>jsx("svg",{className:"w-3.5 h-3.5",viewBox:"0 0 20 20",fill:"currentColor",children:jsx("path",{fillRule:"evenodd",d:"M2.628 1.601C5.028 1.206 7.49 1 10 1s4.973.206 7.372.601a.75.75 0 01.628.74v2.288a2.25 2.25 0 01-.659 1.59l-4.682 4.683a2.25 2.25 0 00-.659 1.59v3.037c0 .684-.31 1.33-.844 1.757l-1.937 1.55A.75.75 0 018 18.25v-5.757a2.25 2.25 0 00-.659-1.591L2.659 6.22A2.25 2.25 0 012 4.629V2.34a.75.75 0 01.628-.74z",clipRule:"evenodd"})}),My=()=>jsxs("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor",children:[jsx("path",{d:"M10.75 2.75a.75.75 0 00-1.5 0v8.614L6.295 8.235a.75.75 0 10-1.09 1.03l4.25 4.5a.75.75 0 001.09 0l4.25-4.5a.75.75 0 00-1.09-1.03l-2.955 3.129V2.75z"}),jsx("path",{d:"M3.5 12.75a.75.75 0 00-1.5 0v2.5A2.75 2.75 0 004.75 18h10.5A2.75 2.75 0 0018 15.25v-2.5a.75.75 0 00-1.5 0v2.5c0 .69-.56 1.25-1.25 1.25H4.75c-.69 0-1.25-.56-1.25-1.25v-2.5z"})]}),Iy=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor",children:jsx("path",{fillRule:"evenodd",d:"M2.5 3A1.5 1.5 0 001 4.5v11A1.5 1.5 0 002.5 17h15a1.5 1.5 0 001.5-1.5v-11A1.5 1.5 0 0017.5 3h-15zM2.5 4.5h6v11h-6v-11zm7.5 0h7.5v11H10v-11z",clipRule:"evenodd"})});function ai(e,t,r){return typeof r=="function"?r(e,t):String(typeof r=="string"?e[r]:t)}function ln(e,t){return e[t]}function Ay(e,t){return e==null&&t==null?0:e==null?-1:t==null?1:typeof e=="number"&&typeof t=="number"?e-t:String(e).localeCompare(String(t))}function zy(e,t){let r=String(e??"").toLowerCase(),n=t.value.toLowerCase();switch(t.operator){case "contains":return r.includes(n);case "equals":return r===n;case "startsWith":return r.startsWith(n);case "endsWith":return r.endsWith(n);case "gt":return Number(e)>Number(t.value);case "gte":return Number(e)>=Number(t.value);case "lt":return Number(e)<Number(t.value);case "lte":return Number(e)<=Number(t.value);case "isEmpty":return r==="";case "isNotEmpty":return r!=="";default:return true}}function Du(e,t,r){let n=[];for(let o of e){let a=Number(ln(o,t));isNaN(a)||n.push(a);}if(n.length===0)return 0;switch(r){case "sum":return n.reduce((o,a)=>o+a,0);case "avg":return n.reduce((o,a)=>o+a,0)/n.length;case "count":return n.length;case "min":return Math.min(...n);case "max":return Math.max(...n)}}function By({cols:e,density:t}){return jsx("tr",{className:"border-b border-gray-200 dark:border-gray-700",children:Array.from({length:e}).map((r,n)=>jsx("td",{className:hr[t],children:jsx("div",{className:"h-4 bg-gray-200 dark:bg-gray-700 rounded animate-pulse"})},n))})}function Hy({column:e,value:t,onApply:r,onClear:n}){let[o,a]=useState(false),[s,l]=useState(t?.operator??"contains"),[i,c]=useState(t?.value??""),d=useRef(null),u=e.filterType??"text",f=u==="number"?[{value:"equals",label:"Equals"},{value:"gt",label:"Greater than"},{value:"gte",label:"Greater or equal"},{value:"lt",label:"Less than"},{value:"lte",label:"Less or equal"}]:[{value:"contains",label:"Contains"},{value:"equals",label:"Equals"},{value:"startsWith",label:"Starts with"},{value:"endsWith",label:"Ends with"},{value:"isEmpty",label:"Is empty"},{value:"isNotEmpty",label:"Is not empty"}];return useEffect(()=>{let m=g=>{d.current&&!d.current.contains(g.target)&&a(false);};return o&&document.addEventListener("mousedown",m),()=>document.removeEventListener("mousedown",m)},[o]),jsxs("div",{className:"relative inline-block",ref:d,children:[jsx("button",{type:"button",onClick:m=>{m.stopPropagation(),a(!o);},className:p("p-0.5 rounded hover:bg-gray-200 dark:hover:bg-gray-600 cursor-pointer",t&&"text-blue-600 dark:text-blue-400"),"aria-label":`Filter ${String(e.header)}`,children:jsx(Ly,{})}),o&&jsx("div",{className:"absolute z-50 top-full left-0 mt-1 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg shadow-lg p-3 min-w-[220px]",children:u==="select"&&e.filterOptions?jsxs("div",{className:"flex flex-col gap-1.5",children:[e.filterOptions.map(m=>jsxs("label",{className:"flex items-center gap-2 text-sm cursor-pointer",children:[jsx("input",{type:"radio",name:`filter-${e.key}`,value:m,checked:i===m,onChange:()=>c(m),className:"cursor-pointer"}),jsx("span",{className:"text-gray-700 dark:text-gray-300",children:m})]},m)),jsxs("div",{className:"flex gap-2 mt-2",children:[jsx("button",{type:"button",onClick:()=>{r({column:e.key,operator:"equals",value:i}),a(false);},className:"px-2 py-1 text-xs bg-blue-600 text-white rounded hover:bg-blue-700 cursor-pointer",children:"Apply"}),jsx("button",{type:"button",onClick:()=>{c(""),n(),a(false);},className:"px-2 py-1 text-xs text-gray-600 dark:text-gray-400 hover:text-gray-800 dark:hover:text-gray-200 cursor-pointer",children:"Clear"})]})]}):jsxs("div",{className:"flex flex-col gap-2",children:[jsx("select",{value:s,onChange:m=>l(m.target.value),className:"text-xs border border-gray-300 dark:border-gray-600 rounded px-2 py-1 bg-white dark:bg-gray-700 text-gray-700 dark:text-gray-200",children:f.map(m=>jsx("option",{value:m.value,children:m.label},m.value))}),s!=="isEmpty"&&s!=="isNotEmpty"&&jsx("input",{type:u==="number"?"number":u==="date"?"date":"text",value:i,onChange:m=>c(m.target.value),placeholder:"Filter value...",className:"text-xs border border-gray-300 dark:border-gray-600 rounded px-2 py-1 bg-white dark:bg-gray-700 text-gray-700 dark:text-gray-200",autoFocus:true,"aria-label":`Filter ${String(e.header)} value`}),jsxs("div",{className:"flex gap-2",children:[jsx("button",{type:"button",onClick:()=>{r({column:e.key,operator:s,value:i}),a(false);},className:"px-2 py-1 text-xs bg-blue-600 text-white rounded hover:bg-blue-700 cursor-pointer",children:"Apply"}),jsx("button",{type:"button",onClick:()=>{c(""),n(),a(false);},className:"px-2 py-1 text-xs text-gray-600 dark:text-gray-400 hover:text-gray-800 dark:hover:text-gray-200 cursor-pointer",children:"Clear"})]})]})})]})}function Wy({value:e,onSave:t,density:r}){let[n,o]=useState(false),[a,s]=useState(String(e??"")),l=useRef(null);if(useEffect(()=>{n&&l.current&&(l.current.focus(),l.current.select());},[n]),!n)return jsx("div",{onDoubleClick:()=>{s(String(e??"")),o(true);},className:"cursor-text min-h-[1.5em]",title:"Double-click to edit",children:String(e??"")});let i=()=>{o(false),a!==String(e??"")&&t(a);};return jsx("input",{ref:l,type:"text",value:a,onChange:c=>s(c.target.value),onBlur:i,"aria-label":"Edit cell value",onKeyDown:c=>{c.key==="Enter"&&i(),c.key==="Escape"&&o(false);},className:p("w-full border border-blue-500 rounded px-1 py-0.5 bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100 outline-none",si[r])})}function Vy(e,t){let{columns:r,data:n,rowKey:o,mode:a="client",sortable:s=false,multiSort:l=false,sort:i,defaultSort:c,onSort:d,pagination:u=false,page:f,onPageChange:m,onPageSizeChange:g,totalItems:y,selectable:b=false,selectionMode:h="multiple",selectedRows:x,onSelectionChange:L,searchable:C=false,searchPlaceholder:S="Search...",searchValue:v,onSearch:R,filters:N,onFilterChange:M,expandable:P=false,expandedContent:E,expandedRows:W,onExpandChange:T,editable:O=false,onCellEdit:H,reorderable:k=false,onReorder:z,columnReorderable:A=false,onColumnReorder:I,columnToggle:X=false,hiddenColumns:$,onColumnVisibilityChange:K,groupBy:D,renderGroupHeader:B,exportable:w=false,exportFormats:G=["csv","json"],exportFilename:q="export",virtualized:j=false,rowHeight:U=40,virtualHeight:F=400,density:_="default",striped:J=false,bordered:ne=false,borderless:Y=false,stickyHeader:ee=false,maxHeight:Z,loading:ie=false,loadingRows:V=5,emptyState:oe,showFooter:pe=false,onRowClick:Te,onRowDoubleClick:ze,onRowContextMenu:ae,className:re,rowClassName:ce,cellClassName:De,headerClassName:Ge}=e,[be,Me]=useState(c??[]),[Re,He]=useState(1),[Ee,$e]=useState(typeof u=="object"?u.pageSize??10:10),[bt,Kt]=useState([]),[dr,_t]=useState(""),[Xt,Mr]=useState([]),[Ce,we]=useState([]),[se,de]=useState(()=>r.flatMap(Q=>Q.hidden?[Q.key]:[])),[ke,ve]=useState({}),[Be,Pe]=useState(()=>r.map(Q=>Q.key)),[ye,Xe]=useState(null),[We,ut]=useState(null),[ot,Ke]=useState(false),[mt,ct]=useState(new Set),xr=useRef(null),[Pt,jr]=useState(0),hn=useRef(null),ar=i??be,sr=f??Re,te=x??bt,ue=v??dr,me=N??Xt,ge=W??Ce,xe=$??se,Ye=u?typeof u=="object"?u:{pageSize:10,pageSizeOptions:[10,25,50,100]}:null,at=Ye?.pageSize??Ee,et=useMemo(()=>{let Q=new Map(r.map(Ie=>[Ie.key,Ie])),le=Be.flatMap(Ie=>{let qe=Q.get(Ie);return qe?[qe]:[]}),he=new Set(le.map(Ie=>Ie.key));for(let Ie of r)he.has(Ie.key)||(le.push(Ie),he.add(Ie.key));return le.filter(Ie=>!xe.includes(Ie.key))},[r,Be,xe]),Fe=useMemo(()=>{if(a==="server")return n;let Q=[...n];if(ue){let le=ue.toLowerCase();Q=Q.filter(he=>et.some(Ie=>{let qe=ln(he,Ie.key);return String(qe??"").toLowerCase().includes(le)}));}if(me.length>0&&(Q=Q.filter(le=>me.every(he=>zy(ln(le,he.column),he)))),ar.length>0){let le=new Map(r.map(he=>[he.key,he]));Q.sort((he,Ie)=>{for(let qe of ar){if(!qe.direction)continue;let Wt=le.get(qe.key),wr=Wt?.sortComparator?Wt.sortComparator(he,Ie):Ay(ln(he,qe.key),ln(Ie,qe.key));if(wr!==0)return qe.direction==="asc"?wr:-wr}return 0});}return Q},[n,a,ue,me,ar,et,r]),St=useMemo(()=>{if(!D)return null;let Q=Array.isArray(D)?D:[D],le=new Map;for(let he of Fe){let Ie=Q.map(Wt=>String(ln(he,Wt)??"")).join(" / "),qe=le.get(Ie)??[];qe.push(he),le.set(Ie,qe);}return le},[Fe,D]),je=y??Fe.length,Mt=Math.max(1,Math.ceil(je/at)),Gt=useMemo(()=>{if(!Ye||a==="server")return Fe;let Q=(sr-1)*at;return Fe.slice(Q,Q+at)},[Fe,Ye,sr,at,a]),Tt=Ye?Gt:Fe,gr=useMemo(()=>{if(!j)return {start:0,end:Tt.length};let Q=Math.floor(Pt/U),le=Math.ceil(F/U),he=5;return {start:Math.max(0,Q-he),end:Math.min(Tt.length,Q+le+he)}},[j,Pt,U,F,Tt.length]),qr=useCallback(Q=>{i||Me(Q),d?.(Q);},[i,d]),Zr=useCallback(Q=>{let le=ar.find(Ie=>Ie.key===Q),he;if(!le||!le.direction?he="asc":le.direction==="asc"?he="desc":he=null,l){let Ie=ar.filter(qe=>qe.key!==Q);he&&Ie.push({key:Q,direction:he}),qr(Ie);}else qr(he?[{key:Q,direction:he}]:[]);},[ar,l,qr]),Rr=useCallback(Q=>{let le=Math.max(1,Math.min(Q,Mt));f||He(le),m?.(le);},[f,m,Mt]),Vi=useCallback(Q=>{$e(Q),Rr(1),g?.(Q);},[Rr,g]),bs=useCallback(Q=>{let le;h==="single"?le=te.includes(Q)?[]:[Q]:le=te.includes(Q)?te.filter(he=>he!==Q):[...te,Q],x||Kt(le),L?.(le);},[h,te,x,L]),Oi=useCallback(()=>{let Q=Tt.map((le,he)=>ai(le,he,o));x||Kt(Q),L?.(Q);},[Tt,o,x,L]),Fi=useCallback(()=>{x||Kt([]),L?.([]);},[x,L]),$i=Tt.length>0&&Tt.every((Q,le)=>te.includes(ai(Q,le,o))),Qp=!$i&&Tt.some((Q,le)=>te.includes(ai(Q,le,o))),Jp=useCallback(Q=>{let le=ge.includes(Q)?ge.filter(he=>he!==Q):[...ge,Q];W||we(le),T?.(le);},[ge,W,T]),eg=useCallback(Q=>{let le=Q.target.value;v||_t(le),R?.(le),Rr(1);},[v,R,Rr]),tg=useCallback(Q=>{let le=[...me.filter(he=>he.column!==Q.column),Q];N||Mr(le),M?.(le);},[me,N,M]),rg=useCallback(Q=>{let le=me.filter(he=>he.column!==Q);N||Mr(le),M?.(le);},[me,N,M]),ng=useCallback(Q=>{let le=xe.includes(Q)?xe.filter(he=>he!==Q):[...xe,Q];$||de(le),K?.(le);},[xe,$,K]),og=useCallback((Q,le)=>{Q.preventDefault(),Q.stopPropagation();let he=Q.clientX,Ie=ke[le]??Q.currentTarget.parentElement?.getBoundingClientRect().width??100,qe=r.find(Nr=>Nr.key===le),Wt=qe?.minWidth??50,wr=qe?.maxWidth??1/0,yt=Nr=>{let to=Nr.clientX-he,Jr=Math.min(wr,Math.max(Wt,Ie+to));ve(Ho=>({...Ho,[le]:Jr}));},Qr=()=>{document.removeEventListener("mousemove",yt),document.removeEventListener("mouseup",Qr);};document.addEventListener("mousemove",yt),document.addEventListener("mouseup",Qr);},[ke,r]),ag=useCallback(Q=>{k&&Xe(Q);},[k]),sg=useCallback((Q,le)=>{!k||ye===null||Q.preventDefault();},[k,ye]),ig=useCallback(Q=>{!k||ye===null||ye===Q||(z?.(ye,Q),Xe(null));},[k,ye,z]),lg=useCallback(Q=>{A&&ut(Q);},[A]),cg=useCallback(Q=>{if(!A||!We||We===Q)return;let le=[...Be],he=le.indexOf(We),Ie=le.indexOf(Q);he===-1||Ie===-1||(le.splice(he,1),le.splice(Ie,0,We),Pe(le),I?.(We,Q),ut(null));},[A,We,Be,I]),_i=useCallback(Q=>{let le=et.filter(Nr=>Nr.type!=="actions"&&Nr.type!=="selection"&&Nr.type!=="expand"),he=Fe,Ie,qe,Wt;if(Q==="csv"){let Nr=le.map(Jr=>String(Jr.header)).join(","),to=he.map(Jr=>le.map(Ho=>{let Ui=String(ln(Jr,Ho.key)??"");return Ui.includes(",")?`"${Ui}"`:Ui}).join(","));Ie=[Nr,...to].join(`
|
|
3
|
+
`),qe="text/csv",Wt="csv";}else {let Nr=he.map(to=>{let Jr={};for(let Ho of le)Jr[Ho.key]=ln(to,Ho.key);return Jr});Ie=JSON.stringify(Nr,null,2),qe="application/json",Wt="json";}let wr=new Blob([Ie],{type:qe}),yt=URL.createObjectURL(wr),Qr=document.createElement("a");Qr.href=yt,Qr.download=`${q}.${Wt}`,Qr.click(),URL.revokeObjectURL(yt);},[et,Fe,q]);useEffect(()=>{if(!ot)return;let Q=le=>{hn.current&&!hn.current.contains(le.target)&&Ke(false);};return document.addEventListener("mousedown",Q),()=>document.removeEventListener("mousedown",Q)},[ot]),useImperativeHandle(t,()=>({getVisibleData:()=>Tt,resetFilters:()=>{N||Mr([]),v||_t(""),M?.([]),R?.("");},resetSort:()=>{i||Me([]),d?.([]);},selectAll:Oi,deselectAll:Fi,exportData:_i,scrollToRow:Q=>{xr.current&&j&&(xr.current.scrollTop=Q*U);}}),[Tt,N,v,i,M,R,d,Oi,Fi,_i,j,U]);let Xi=Q=>{let le={},he=ke[Q.key]??Q.width;return he&&(le.width=typeof he=="number"?`${he}px`:he,le.minWidth=typeof he=="number"?`${he}px`:he),Q.sticky&&(le.position="sticky",le[Q.sticky]=0,le.zIndex=10),le},Bo=et.length+(b?1:0)+(P?1:0)+(k?1:0),dg=Q=>{let le=s&&Q.sortable!==false&&Q.type!=="actions",he=ar.find(qe=>qe.key===Q.key),Ie=Q.filterable&&(Q.filterType||Q.filterOptions);return jsxs("th",{className:p(hr[_],si[_],"font-semibold text-gray-700 dark:text-gray-300 whitespace-nowrap",Q.align==="center"&&"text-center",Q.align==="right"&&"text-right",le&&"cursor-pointer select-none hover:bg-gray-100 dark:hover:bg-gray-700",ne&&"border border-gray-200 dark:border-gray-700",Q.sticky&&"bg-gray-50 dark:bg-gray-800",Q.headerClassName,Ge),style:Xi(Q),onClick:le?()=>Zr(Q.key):void 0,draggable:A,onDragStart:A?()=>lg(Q.key):void 0,onDragOver:A?qe=>qe.preventDefault():void 0,onDrop:A?()=>cg(Q.key):void 0,"aria-sort":he?.direction==="asc"?"ascending":he?.direction==="desc"?"descending":void 0,children:[jsxs("div",{className:"flex items-center gap-1",children:[Q.renderHeader?Q.renderHeader(Q):Q.header,le&&jsx("span",{className:"inline-flex ml-1",children:he?.direction==="asc"?jsx(Ry,{}):he?.direction==="desc"?jsx(Py,{}):jsx(Ty,{})}),Ie&&jsx(Hy,{column:Q,value:me.find(qe=>qe.column===Q.key),onApply:tg,onClear:()=>rg(Q.key)})]}),Q.resizable!==false&&jsx("div",{className:"absolute top-0 right-0 w-1 h-full cursor-col-resize hover:bg-blue-500 opacity-0 hover:opacity-100",onMouseDown:qe=>og(qe,Q.key)})]},Q.key)},Gi=(Q,le,he)=>{let Ie=ai(Q,he,o),qe=te.includes(Ie),Wt=ge.includes(Ie),wr=typeof ce=="function"?ce(Q,he):ce;return jsxs(Cl__default.Fragment,{children:[jsxs("tr",{className:p("border-b border-gray-200 dark:border-gray-700 transition-colors",J&&he%2===1&&"bg-gray-50/50 dark:bg-gray-800/50",qe&&"bg-blue-50 dark:bg-blue-900/20",Te&&"cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-700/50",ye===le&&"opacity-50",wr),onClick:Te?()=>Te(Q,he):void 0,onDoubleClick:ze?()=>ze(Q,he):void 0,onContextMenu:ae?yt=>ae(Q,he,yt):void 0,draggable:k,onDragStart:k?()=>ag(le):void 0,onDragOver:k?yt=>sg(yt,le):void 0,onDrop:k?()=>ig(le):void 0,"data-row-key":Ie,"aria-selected":b?qe:void 0,children:[k&&jsx("td",{className:p(hr[_],"cursor-grab active:cursor-grabbing"),children:jsx(Ey,{})}),b&&jsx("td",{className:p(hr[_],"w-10"),children:jsx("input",{type:"checkbox",checked:qe,onChange:()=>bs(Ie),onClick:yt=>yt.stopPropagation(),className:"rounded border-gray-300 dark:border-gray-600 cursor-pointer","aria-label":`Select row ${Ie}`})}),P&&jsx("td",{className:p(hr[_],"w-10"),children:jsx("button",{type:"button",onClick:yt=>{yt.stopPropagation(),Jp(Ie);},className:"p-0.5 rounded hover:bg-gray-200 dark:hover:bg-gray-600 cursor-pointer","aria-label":Wt?"Collapse row":"Expand row","aria-expanded":Wt,children:jsx(Tu,{className:p("transition-transform",Wt&&"rotate-180")})})}),et.map(yt=>{let Qr=ln(Q,yt.key),Nr=yt.colSpan?.(Q,he);if(Nr===0)return null;let to=O&&yt.editable!==false&&yt.type!=="actions";return jsx("td",{className:p(hr[_],si[_],"text-gray-700 dark:text-gray-300",yt.align==="center"&&"text-center",yt.align==="right"&&"text-right",ne&&"border border-gray-200 dark:border-gray-700",yt.sticky&&(qe?"bg-blue-50 dark:bg-blue-900/20":J&&he%2===1?"bg-gray-50/50 dark:bg-gray-800/50":"bg-white dark:bg-gray-900"),yt.cellClassName,De),style:Xi(yt),colSpan:Nr,children:to?jsx(Wy,{value:Qr,onSave:Jr=>H?.(Ie,yt.key,Jr),density:_}):yt.render?yt.render(Qr,Q,he):String(Qr??"")},yt.key)})]}),P&&Wt&&E&&jsx("tr",{className:"bg-gray-50 dark:bg-gray-800/70",children:jsx("td",{colSpan:Bo,className:p(hr[_]),children:E(Q,he)})})]},Ie)},ug=()=>{if(ie)return Array.from({length:V}).map((Q,le)=>jsx(By,{cols:Bo,density:_},le));if(Tt.length===0)return jsx("tr",{children:jsx("td",{colSpan:Bo,className:p("text-center text-gray-400 dark:text-gray-500",hr[_]),children:oe??"No data available"})});if(St){let Q=[],le=0;for(let[he,Ie]of St){let qe=mt.has(he);if(Q.push(jsx("tr",{className:"bg-gray-100 dark:bg-gray-800 font-medium",children:jsx("td",{colSpan:Bo,className:p(hr[_],"cursor-pointer"),onClick:()=>{ct(Wt=>{let wr=new Set(Wt);return wr.has(he)?wr.delete(he):wr.add(he),wr});},children:jsxs("div",{className:"flex items-center gap-2",children:[jsx(Tu,{className:p("transition-transform",qe&&"-rotate-90")}),B?B(he,ln(Ie[0],Array.isArray(D)?D[0]:D),Ie):`${he} (${Ie.length})`]})})},`group-${he}`)),qe)le+=Ie.length;else for(let Wt=0;Wt<Ie.length;Wt++)Q.push(Gi(Ie[Wt],le,le)),le++;}return Q}if(j){let Q=[];for(let le=gr.start;le<gr.end;le++)Q.push(Gi(Tt[le],le,le));return jsxs(Fragment,{children:[gr.start>0&&jsx("tr",{children:jsx("td",{colSpan:Bo,style:{height:gr.start*U,padding:0}})}),Q,gr.end<Tt.length&&jsx("tr",{children:jsx("td",{colSpan:Bo,style:{height:(Tt.length-gr.end)*U,padding:0}})})]})}return Tt.map((Q,le)=>Gi(Q,le,le))},mg=()=>!pe||!et.some(le=>le.aggregate)?null:jsx("tfoot",{children:jsxs("tr",{className:"bg-gray-50 dark:bg-gray-800 font-semibold border-t-2 border-gray-300 dark:border-gray-600",children:[k&&jsx("td",{className:hr[_]}),b&&jsx("td",{className:hr[_]}),P&&jsx("td",{className:hr[_]}),et.map(le=>jsx("td",{className:p(hr[_],si[_],"text-gray-700 dark:text-gray-300",le.align==="center"&&"text-center",le.align==="right"&&"text-right",ne&&"border border-gray-200 dark:border-gray-700"),style:Xi(le),children:le.aggregate?le.renderAggregate?le.renderAggregate(Du(Fe,le.key,le.aggregate),Fe):`${le.aggregate==="count"?"":le.aggregate==="avg"?"Avg: ":le.aggregate==="sum"?"Total: ":le.aggregate==="min"?"Min: ":"Max: "}${Du(Fe,le.key,le.aggregate).toLocaleString()}`:""},le.key))]})});return jsxs("div",{className:p("flex flex-col gap-3",re),children:[(C||w||X)&&jsxs("div",{className:"flex items-center justify-between gap-3 flex-wrap",children:[jsxs("div",{className:"flex items-center gap-3 flex-1",children:[C&&jsxs("div",{className:"relative flex-1 max-w-xs",children:[jsx("div",{className:"absolute inset-y-0 left-0 flex items-center pl-3 pointer-events-none",children:jsx(Dy,{})}),jsx("input",{type:"text",value:ue,onChange:eg,placeholder:S,className:"w-full pl-9 pr-3 py-1.5 text-sm border border-gray-300 dark:border-gray-600 rounded-md bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500","aria-label":"Search table"})]}),te.length>0&&jsxs("span",{className:"text-sm text-gray-500 dark:text-gray-400",children:[te.length," selected"]})]}),jsxs("div",{className:"flex items-center gap-2",children:[X&&jsxs("div",{className:"relative",ref:hn,children:[jsx("button",{type:"button",onClick:()=>Ke(!ot),className:"p-1.5 rounded-md border border-gray-300 dark:border-gray-600 text-gray-600 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 cursor-pointer","aria-label":"Toggle columns",title:"Toggle columns",children:jsx(Iy,{})}),ot&&jsx("div",{className:"absolute z-50 right-0 top-full mt-1 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg shadow-lg p-2 min-w-[180px]",children:r.filter(Q=>Q.type!=="selection"&&Q.type!=="expand").map(Q=>jsxs("label",{className:"flex items-center gap-2 px-2 py-1.5 text-sm rounded hover:bg-gray-100 dark:hover:bg-gray-700 cursor-pointer",children:[jsx("input",{type:"checkbox",checked:!xe.includes(Q.key),onChange:()=>ng(Q.key),className:"rounded border-gray-300 dark:border-gray-600 cursor-pointer"}),jsx("span",{className:"text-gray-700 dark:text-gray-300",children:String(Q.header)})]},Q.key))})]}),w&&G.map(Q=>jsxs("button",{type:"button",onClick:()=>_i(Q),className:"inline-flex items-center gap-1.5 px-2.5 py-1.5 text-xs font-medium rounded-md border border-gray-300 dark:border-gray-600 text-gray-600 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 cursor-pointer",title:`Export as ${Q.toUpperCase()}`,children:[jsx(My,{}),Q.toUpperCase()]},Q))]})]}),jsx("div",{ref:xr,className:p("overflow-auto rounded-lg",!Y&&"border border-gray-200 dark:border-gray-700",ee&&"relative"),style:Z?{maxHeight:typeof Z=="number"?`${Z}px`:Z}:j?{maxHeight:F,overflow:"auto"}:void 0,onScroll:j?Q=>jr(Q.target.scrollTop):void 0,children:jsxs("table",{className:"w-full text-left",children:[jsx("thead",{className:p("bg-gray-50 dark:bg-gray-800 text-xs uppercase",ee&&"sticky top-0 z-20"),children:jsxs("tr",{children:[k&&jsx("th",{className:p(hr[_],"w-10 font-semibold text-gray-700 dark:text-gray-300")}),b&&jsx("th",{className:p(hr[_],"w-10"),children:h==="multiple"&&jsx("input",{type:"checkbox",checked:$i,ref:Q=>{Q&&(Q.indeterminate=Qp);},onChange:$i?Fi:Oi,className:"rounded border-gray-300 dark:border-gray-600 cursor-pointer","aria-label":"Select all rows"})}),P&&jsx("th",{className:p(hr[_],"w-10 font-semibold text-gray-700 dark:text-gray-300")}),et.map(dg)]})}),jsx("tbody",{children:ug()}),mg()]})}),Ye&&jsxs("div",{className:"flex items-center justify-between flex-wrap gap-3 text-sm text-gray-600 dark:text-gray-400",children:[jsxs("div",{className:"flex items-center gap-3",children:[Ye.showTotalItems!==false&&jsxs("span",{children:[je," item",je!==1?"s":""]}),Ye.showPageSizeSelector!==false&&Ye.pageSizeOptions&&jsxs("div",{className:"flex items-center gap-1.5",children:[jsx("span",{children:"Rows per page:"}),jsx("select",{value:at,onChange:Q=>Vi(Number(Q.target.value)),className:"border border-gray-300 dark:border-gray-600 rounded px-1.5 py-0.5 bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200 text-sm",children:Ye.pageSizeOptions.map(Q=>jsx("option",{value:Q,children:Q},Q))})]})]}),jsxs("div",{className:"flex items-center gap-1",children:[jsxs("span",{className:"mr-2",children:["Page ",sr," of ",Mt]}),jsx("button",{type:"button",onClick:()=>Rr(1),disabled:sr<=1,className:"px-2 py-1 rounded border border-gray-300 dark:border-gray-600 disabled:opacity-50 disabled:cursor-not-allowed hover:bg-gray-100 dark:hover:bg-gray-700 cursor-pointer","aria-label":"First page",children:"\xAB\xAB"}),jsx("button",{type:"button",onClick:()=>Rr(sr-1),disabled:sr<=1,className:"px-2 py-1 rounded border border-gray-300 dark:border-gray-600 disabled:opacity-50 disabled:cursor-not-allowed hover:bg-gray-100 dark:hover:bg-gray-700 cursor-pointer","aria-label":"Previous page",children:"\xAB"}),jsx("button",{type:"button",onClick:()=>Rr(sr+1),disabled:sr>=Mt,className:"px-2 py-1 rounded border border-gray-300 dark:border-gray-600 disabled:opacity-50 disabled:cursor-not-allowed hover:bg-gray-100 dark:hover:bg-gray-700 cursor-pointer","aria-label":"Next page",children:"\xBB"}),jsx("button",{type:"button",onClick:()=>Rr(Mt),disabled:sr>=Mt,className:"px-2 py-1 rounded border border-gray-300 dark:border-gray-600 disabled:opacity-50 disabled:cursor-not-allowed hover:bg-gray-100 dark:hover:bg-gray-700 cursor-pointer","aria-label":"Last page",children:"\xBB\xBB"})]})]})]})}var Oy=forwardRef(Vy);function $y({className:e}){return jsx("svg",{className:e,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:jsx("path",{d:"M4 4L12 12M12 4L4 12",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}var _y={default:{solid:"bg-gray-500 text-white",outlined:"border-gray-300 text-gray-700 dark:border-gray-600 dark:text-gray-300 bg-transparent",soft:"bg-gray-100 text-gray-700 dark:bg-gray-700 dark:text-gray-300",dot:"bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-300"},primary:{solid:"bg-blue-600 text-white",outlined:"border-blue-600 text-blue-600 dark:border-blue-400 dark:text-blue-400 bg-transparent",soft:"bg-blue-100 text-blue-700 dark:bg-blue-900/50 dark:text-blue-300",dot:"bg-blue-50 text-blue-700 dark:bg-blue-900/30 dark:text-blue-300"},success:{solid:"bg-green-600 text-white",outlined:"border-green-600 text-green-600 dark:border-green-400 dark:text-green-400 bg-transparent",soft:"bg-green-100 text-green-700 dark:bg-green-900/50 dark:text-green-300",dot:"bg-green-50 text-green-700 dark:bg-green-900/30 dark:text-green-300"},warning:{solid:"bg-yellow-500 text-white",outlined:"border-yellow-500 text-yellow-600 dark:border-yellow-400 dark:text-yellow-400 bg-transparent",soft:"bg-yellow-100 text-yellow-700 dark:bg-yellow-900/50 dark:text-yellow-300",dot:"bg-yellow-50 text-yellow-700 dark:bg-yellow-900/30 dark:text-yellow-300"},error:{solid:"bg-red-600 text-white",outlined:"border-red-600 text-red-600 dark:border-red-400 dark:text-red-400 bg-transparent",soft:"bg-red-100 text-red-700 dark:bg-red-900/50 dark:text-red-300",dot:"bg-red-50 text-red-700 dark:bg-red-900/30 dark:text-red-300"},info:{solid:"bg-cyan-600 text-white",outlined:"border-cyan-600 text-cyan-600 dark:border-cyan-400 dark:text-cyan-400 bg-transparent",soft:"bg-cyan-100 text-cyan-700 dark:bg-cyan-900/50 dark:text-cyan-300",dot:"bg-cyan-50 text-cyan-700 dark:bg-cyan-900/30 dark:text-cyan-300"}},Xy={default:"bg-gray-500",primary:"bg-blue-600",success:"bg-green-600",warning:"bg-yellow-500",error:"bg-red-600",info:"bg-cyan-600"},Gy={sm:"h-5 text-xs px-2 gap-1",md:"h-6 text-sm px-2.5 gap-1.5",lg:"h-8 text-sm px-3 gap-2"},jl={sm:"w-3 h-3",md:"w-3.5 h-3.5",lg:"w-4 h-4"},Uy={sm:"w-4 h-4 -ml-1",md:"w-5 h-5 -ml-1.5",lg:"w-6 h-6 -ml-1.5"},Ky={sm:"w-1.5 h-1.5",md:"w-2 h-2",lg:"w-2.5 h-2.5"},Yy={none:"rounded-none",sm:"rounded-sm",md:"rounded-md",lg:"rounded-lg",full:"rounded-full"};function li({label:e,children:t,variant:r="solid",size:n="md",color:o="default",bgColor:a,textColor:s,borderColor:l,rounded:i="full",icon:c,endIcon:d,avatar:u,onClose:f,closable:m=false,clickable:g=false,selected:y=false,disabled:b=false,as:h="span",className:x,onClick:L,...C}){let S=h,v=p("inline-flex items-center justify-center font-medium transition-all",Gy[n],Yy[i],r==="outlined"&&"border"),R=p(a||s||l?p(a,s,l):_y[o][r]),N=y?"ring-2 ring-offset-1 ring-blue-500":"",M=g&&!b?"cursor-pointer hover:opacity-80 active:scale-95":"",P=b?"opacity-50 cursor-not-allowed":"",E=O=>{O.stopPropagation(),f?.();},W=O=>{b||L?.(O);},T=t??e;return jsxs(S,{className:p(v,R,N,M,P,x),onClick:W,"aria-disabled":b,...C,children:[r==="dot"&&jsx("span",{className:p("rounded-full shrink-0",Ky[n],Xy[o]),"aria-hidden":"true"}),u&&jsx("span",{className:p("rounded-full overflow-hidden shrink-0",Uy[n]),children:u}),c&&!u&&jsx("span",{className:p("shrink-0",jl[n]),children:c}),T&&jsx("span",{className:"truncate",children:T}),d&&!m&&jsx("span",{className:p("shrink-0",jl[n]),children:d}),m&&jsx("button",{type:"button",onClick:E,disabled:b,className:p("shrink-0 rounded-full hover:bg-black/10 dark:hover:bg-white/10 p-0.5 -mr-1 transition-colors","focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-1 focus-visible:ring-current",b&&"pointer-events-none"),"aria-label":"Remove",children:jsx($y,{className:jl[n]})})]})}li.displayName="Chip";var Jy=500,ex=800,tx=600;function rx(e,t,r){let n=[`width=${e}`,`height=${t}`,"menubar=no","toolbar=no","location=no","status=no","scrollbars=yes","resizable=yes"];if(r.left!==void 0)n.push(`left=${r.left}`);else if(r.center!==false&&typeof window<"u"){let o=window.screenLeft??window.screenX,a=window.screenTop??window.screenY,s=window.outerWidth??screen.availWidth,l=window.outerHeight??screen.availHeight;n.push(`left=${o+(s-e)/2}`),n.push(`top=${a+(l-t)/2}`);}if(r.top!==void 0){let o=n.filter(a=>!a.startsWith("top="));return o.push(`top=${r.top}`),o.join(",")}return n.join(",")}function nx(e,t){e.querySelectorAll("style").forEach(s=>{let l=t.createElement("style");l.textContent=s.textContent,t.head.appendChild(l);}),e.querySelectorAll('link[rel="stylesheet"]').forEach(s=>{let l=t.createElement("link");l.rel="stylesheet",l.href=s.href,s.crossOrigin&&(l.crossOrigin=s.crossOrigin),t.head.appendChild(l);});let o=e.documentElement.className;o&&(t.documentElement.className=o);let a=e.body.className;a&&(t.body.className=a);}function ox(e,t){let r=new MutationObserver(n=>{for(let o of n)for(let a of Array.from(o.addedNodes))if(a instanceof HTMLStyleElement){let s=t.createElement("style");s.textContent=a.textContent,t.head.appendChild(s);}else if(a instanceof HTMLLinkElement&&a.rel==="stylesheet"){let s=t.createElement("link");s.rel="stylesheet",s.href=a.href,t.head.appendChild(s);}});return r.observe(e.head,{childList:true}),r}var Lu=forwardRef(function({children:t,detached:r,defaultDetached:n=false,onClose:o,onDetach:a,title:s="",width:l=ex,height:i=tx,left:c,top:d,center:u=true,copyStyles:f=true,closeOnParentUnmount:m=true,className:g,windowClassName:y,onPopupBlocked:b},h){let x=r!==void 0,[L,C]=useState(n),S=x?r:L,[v,R]=useState(null),N=useRef(null),M=useRef(null),P=useRef(null),E=useRef(false),W=useRef({width:l,height:i,left:c,top:d,center:u,shouldCopyStyles:f,title:s,windowClassName:y,closeOnParentUnmount:m});W.current={width:l,height:i,left:c,top:d,center:u,shouldCopyStyles:f,title:s,windowClassName:y,closeOnParentUnmount:m};let T=useCallback(()=>{M.current&&(clearInterval(M.current),M.current=null),P.current&&(P.current.disconnect(),P.current=null),R(null);},[]),O=useCallback(()=>{N.current&&!N.current.closed&&N.current.close(),N.current=null,T();},[T]),H=useCallback(()=>{if(typeof window>"u"||E.current||N.current&&!N.current.closed)return;E.current=true;let k=W.current,z=rx(k.width,k.height,{center:k.center,left:k.left,top:k.top}),A=window.open("","",z);if(!A){E.current=false,b?.();return}N.current=A,A.document.title=k.title||document.title;let I=A.document.createElement("div");k.windowClassName&&(I.className=k.windowClassName),A.document.body.appendChild(I),R(I),k.shouldCopyStyles&&(nx(document,A.document),P.current=ox(document,A.document)),M.current=setInterval(()=>{A.closed&&(T(),N.current=null,x||C(false),o?.());},Jy),E.current=false,a?.();},[x,o,a,b,T]);return useEffect(()=>{S?H():O();},[S,H,O]),useEffect(()=>{N.current&&!N.current.closed&&s&&(N.current.document.title=s);},[s]),useEffect(()=>()=>{W.current.closeOnParentUnmount&&N.current&&!N.current.closed&&N.current.close(),T(),N.current=null;},[T]),useImperativeHandle(h,()=>({detach:()=>{x||C(true);},attach:()=>{x||C(false);},get isDetached(){return x?!!r:L},get window(){return N.current}}),[x,r,L]),S&&v?createPortal(t,v):S?null:jsx("div",{className:p(g),children:t})});Lu.displayName="Detachable";var ix={phone:{sm:{w:180,h:320},md:{w:240,h:480},lg:{w:300,h:600}},android:{sm:{w:180,h:320},md:{w:240,h:480},lg:{w:300,h:600}},tablet:{sm:{w:320,h:420},md:{w:420,h:560},lg:{w:540,h:720}},laptop:{sm:{w:400,h:250},md:{w:560,h:350},lg:{w:720,h:450}},desktop:{sm:{w:400,h:300},md:{w:560,h:400},lg:{w:720,h:520}},watch:{sm:{w:80,h:96},md:{w:120,h:144},lg:{w:160,h:192}},browser:{sm:{w:400,h:280},md:{w:560,h:380},lg:{w:720,h:480}}},lx=({className:e})=>jsxs("svg",{className:p("w-3 h-3",e),viewBox:"0 0 16 16",fill:"currentColor",children:[jsx("rect",{x:"1",y:"11",width:"2.5",height:"4",rx:"0.5"}),jsx("rect",{x:"5",y:"8",width:"2.5",height:"7",rx:"0.5"}),jsx("rect",{x:"9",y:"5",width:"2.5",height:"10",rx:"0.5"}),jsx("rect",{x:"13",y:"1",width:"2.5",height:"14",rx:"0.5"})]}),cx=({className:e})=>jsxs("svg",{className:p("w-3 h-3",e),viewBox:"0 0 20 20",fill:"currentColor",children:[jsx("path",{d:"M10 14.5a1.5 1.5 0 100 3 1.5 1.5 0 000-3z"}),jsx("path",{fillRule:"evenodd",d:"M6.05 11.95a5.5 5.5 0 017.9 0 .75.75 0 001.08-1.04 7 7 0 00-10.06 0 .75.75 0 001.08 1.04z",clipRule:"evenodd"}),jsx("path",{fillRule:"evenodd",d:"M2.81 8.72a10 10 0 0114.38 0 .75.75 0 001.06-1.06 11.5 11.5 0 00-16.5 0 .75.75 0 001.06 1.06z",clipRule:"evenodd"})]}),dx=({className:e})=>jsxs("svg",{className:p("w-4 h-3",e),viewBox:"0 0 24 14",fill:"currentColor",children:[jsx("rect",{x:"0.5",y:"0.5",width:"20",height:"13",rx:"2",stroke:"currentColor",fill:"none",strokeWidth:"1"}),jsx("rect",{x:"22",y:"4",width:"2",height:"6",rx:"0.5"}),jsx("rect",{x:"2.5",y:"2.5",width:"14",height:"9",rx:"1"})]});function qa({time:e="9:41",theme:t,device:r}){let n=r==="watch",o=t==="dark"?"text-white":"text-gray-900";return n?jsx("div",{className:p("flex items-center justify-center py-0.5",o),style:{fontSize:"8px"},children:jsx("span",{className:"font-medium",children:e})}):jsxs("div",{className:p("flex items-center justify-between px-4 py-1",t==="dark"?"bg-black/20":"bg-white/20",o),style:{fontSize:"10px"},"data-testid":"status-bar",children:[jsx("span",{className:"font-semibold",children:e}),jsxs("div",{className:"flex items-center gap-1",children:[jsx(lx,{className:o}),jsx(cx,{className:o}),jsx(dx,{className:o})]})]})}function ux({theme:e}){let t=e==="dark";return jsxs("div",{className:p("flex items-center gap-2 px-3 py-2 border-b",t?"bg-gray-800 border-gray-700":"bg-gray-100 border-gray-200"),"data-testid":"browser-chrome",children:[jsxs("div",{className:"flex items-center gap-1.5",children:[jsx("div",{className:"w-2.5 h-2.5 rounded-full bg-red-400"}),jsx("div",{className:"w-2.5 h-2.5 rounded-full bg-yellow-400"}),jsx("div",{className:"w-2.5 h-2.5 rounded-full bg-green-400"})]}),jsx("div",{className:p("flex-1 rounded-md px-3 py-1 text-center",t?"bg-gray-700 text-gray-400":"bg-white text-gray-500 border border-gray-200"),style:{fontSize:"11px"},children:jsxs("span",{className:"flex items-center justify-center gap-1",children:[jsx("svg",{className:"w-2.5 h-2.5",viewBox:"0 0 16 16",fill:"currentColor",children:jsx("path",{fillRule:"evenodd",d:"M8 1a4 4 0 00-4 4v3.5H3a1 1 0 00-1 1V14a1 1 0 001 1h10a1 1 0 001-1V9.5a1 1 0 00-1-1h-1V5a4 4 0 00-4-4zm2.5 7.5V5a2.5 2.5 0 00-5 0v3.5h5z",clipRule:"evenodd"})}),"example.com"]})})]})}function mx({children:e,theme:t,screenW:r,screenH:n,showStatusBar:o,statusBarTime:a,frameColor:s,landscape:l=false}){let i=t==="dark",c=s??(i?"#1a1a1a":"#e5e7eb");if(l){let u=Math.round(n*.35);return jsxs("div",{className:"relative inline-flex flex-row items-center rounded-[2.5rem] shadow-xl",style:{backgroundColor:c,padding:"8px 12px",height:n+16},"data-testid":"device-frame","data-device":"phone",children:[jsx("div",{className:p("rounded-full mr-2",i?"bg-gray-600":"bg-gray-400"),style:{width:4,height:Math.round(n*.35)},"data-testid":"home-indicator"}),jsxs("div",{className:"rounded-[2rem] overflow-hidden bg-black relative",style:{width:r,height:n},children:[o&&jsx(qa,{time:a,theme:t,device:"phone"}),e]}),jsx("div",{className:"absolute rounded-full bg-black z-10",style:{width:20,height:u,right:10,top:"50%",transform:"translateY(-50%)"},"data-testid":"phone-notch"})]})}let d=Math.round(r*.35);return jsxs("div",{className:"relative inline-flex flex-col items-center rounded-[2.5rem] shadow-xl",style:{backgroundColor:c,padding:"12px 8px",width:r+16},"data-testid":"device-frame","data-device":"phone",children:[jsx("div",{className:"absolute top-[10px] rounded-full bg-black z-10",style:{width:d,height:20,left:"50%",transform:"translateX(-50%)"},"data-testid":"phone-notch"}),jsxs("div",{className:"rounded-[2rem] overflow-hidden bg-black relative",style:{width:r,height:n},children:[o&&jsx(qa,{time:a,theme:t,device:"phone"}),e]}),jsx("div",{className:p("rounded-full mt-2",i?"bg-gray-600":"bg-gray-400"),style:{width:Math.round(r*.35),height:4},"data-testid":"home-indicator"})]})}function px({children:e,theme:t,screenW:r,screenH:n,showStatusBar:o,statusBarTime:a,frameColor:s}){return jsxs("div",{className:"relative inline-flex flex-col items-center rounded-[2rem] shadow-xl",style:{backgroundColor:s??(t==="dark"?"#1a1a1a":"#e5e7eb"),padding:"10px 6px",width:r+12},"data-testid":"device-frame","data-device":"android",children:[jsx("div",{className:"absolute top-[6px] rounded-full bg-gray-800 z-10 border border-gray-700",style:{width:8,height:8,left:"50%",transform:"translateX(-50%)"},"data-testid":"camera-dot"}),jsxs("div",{className:"rounded-[1.5rem] overflow-hidden bg-black relative",style:{width:r,height:n},children:[o&&jsx(qa,{time:a,theme:t,device:"android"}),e]})]})}function gx({children:e,theme:t,screenW:r,screenH:n,showStatusBar:o,statusBarTime:a,frameColor:s}){return jsxs("div",{className:"relative inline-flex flex-col items-center rounded-[1.5rem] shadow-xl",style:{backgroundColor:s??(t==="dark"?"#1a1a1a":"#e5e7eb"),padding:"16px 12px",width:r+24},"data-testid":"device-frame","data-device":"tablet",children:[jsx("div",{className:"absolute top-[8px] rounded-full bg-gray-700 z-10",style:{width:6,height:6,left:"50%",transform:"translateX(-50%)"}}),jsxs("div",{className:"rounded-lg overflow-hidden bg-black relative",style:{width:r,height:n},children:[o&&jsx(qa,{time:a,theme:t,device:"tablet"}),e]})]})}function fx({children:e,theme:t,screenW:r,screenH:n,frameColor:o}){let a=t==="dark",s=o??(a?"#1a1a1a":"#d1d5db"),l=r+60;return jsxs("div",{className:"inline-flex flex-col items-center","data-testid":"device-frame","data-device":"laptop",children:[jsxs("div",{className:"rounded-t-xl shadow-xl relative",style:{backgroundColor:s,padding:"8px 8px 0",width:r+16},children:[jsx("div",{className:"absolute top-[3px] rounded-full bg-gray-700 z-10",style:{width:4,height:4,left:"50%",transform:"translateX(-50%)"}}),jsx("div",{className:"rounded-t-sm overflow-hidden bg-black",style:{width:r,height:n},children:e})]}),jsx("div",{className:p(a?"bg-gray-800":"bg-gray-400"),style:{width:r+16,height:3}}),jsx("div",{className:"rounded-b-xl shadow-lg",style:{backgroundColor:s,width:l,height:12,clipPath:"polygon(3% 0%, 97% 0%, 100% 100%, 0% 100%)"},"data-testid":"laptop-base"})]})}function hx({children:e,theme:t,screenW:r,screenH:n,frameColor:o}){let a=t==="dark";return jsxs("div",{className:"inline-flex flex-col items-center","data-testid":"device-frame","data-device":"desktop",children:[jsx("div",{className:"rounded-lg shadow-xl",style:{backgroundColor:o??(a?"#1a1a1a":"#d1d5db"),padding:"8px 8px 20px",width:r+16},children:jsx("div",{className:"rounded-sm overflow-hidden bg-black",style:{width:r,height:n},children:e})}),jsx("div",{className:p(a?"bg-gray-800":"bg-gray-400"),style:{width:40,height:24},"data-testid":"monitor-stand"}),jsx("div",{className:p("rounded-t-sm",a?"bg-gray-800":"bg-gray-400"),style:{width:Math.round(r*.4),height:6,borderRadius:"2px 2px 4px 4px"}})]})}function bx({children:e,theme:t,screenW:r,screenH:n,showStatusBar:o,statusBarTime:a,frameColor:s}){let l=t==="dark",i=s??(l?"#1a1a1a":"#d1d5db"),c=Math.round(r*.7);return jsxs("div",{className:"inline-flex flex-col items-center","data-testid":"device-frame","data-device":"watch",children:[jsx("div",{className:p("rounded-t-lg",l?"bg-gray-800":"bg-gray-400"),style:{width:c,height:30},"data-testid":"watch-band"}),jsxs("div",{className:"relative rounded-[1.2rem] shadow-xl",style:{backgroundColor:i,padding:"8px 6px",width:r+12},children:[jsx("div",{className:p("absolute rounded-sm",l?"bg-gray-600":"bg-gray-400"),style:{width:4,height:16,right:-4,top:"30%"},"data-testid":"watch-crown"}),jsxs("div",{className:"rounded-xl overflow-hidden bg-black",style:{width:r,height:n},children:[o&&jsx(qa,{time:a,theme:t,device:"watch"}),e]})]}),jsx("div",{className:p("rounded-b-lg",l?"bg-gray-800":"bg-gray-400"),style:{width:c,height:30}})]})}function yx({children:e,theme:t,screenW:r,screenH:n,frameColor:o}){return jsxs("div",{className:"inline-flex flex-col rounded-lg shadow-xl overflow-hidden",style:{backgroundColor:o??(t==="dark"?"#1f2937":"#f3f4f6"),width:r},"data-testid":"device-frame","data-device":"browser",children:[jsx(ux,{theme:t}),jsx("div",{className:"overflow-hidden bg-white",style:{width:r,height:n},children:e})]})}function xx({device:e="phone",src:t,alt:r="Device screen content",children:n,orientation:o="portrait",theme:a="dark",size:s="md",showStatusBar:l=false,statusBarTime:i,animated:c=false,scrollSpeed:d=30,frameColor:u,className:f,contentClassName:m}){let g=useRef(null),y=useRef(null),b=ix[e][s],h=o==="landscape"&&e!=="watch"&&e!=="browser",x=h?b.h:b.w,L=h?b.w:b.h;useEffect(()=>{if(!c||!g.current)return;let R=g.current,N=null,M=P=>{N===null&&(N=P);let E=(P-N)/1e3;N=P,R.scrollTop+=d*E,R.scrollTop>=R.scrollHeight-R.clientHeight&&(R.scrollTop=0),y.current=requestAnimationFrame(M);};return y.current=requestAnimationFrame(M),()=>{y.current!==null&&cancelAnimationFrame(y.current);}},[c,d]);let C=jsx("div",{ref:c?g:void 0,className:p("w-full h-full overflow-hidden",c&&"overflow-y-auto scrollbar-hide",m),style:c?{scrollBehavior:"auto"}:void 0,children:t?jsx("img",{src:t,alt:r,className:"w-full h-auto object-cover",draggable:false}):n}),S={showStatusBar:l,statusBarTime:i},v=()=>{switch(e){case "phone":return jsx(mx,{theme:a,screenW:x,screenH:L,frameColor:u,landscape:h,...S,children:C});case "android":return jsx(px,{theme:a,screenW:x,screenH:L,frameColor:u,...S,children:C});case "tablet":return jsx(gx,{theme:a,screenW:x,screenH:L,frameColor:u,...S,children:C});case "laptop":return jsx(fx,{theme:a,screenW:x,screenH:L,frameColor:u,children:C});case "desktop":return jsx(hx,{theme:a,screenW:x,screenH:L,frameColor:u,children:C});case "watch":return jsx(bx,{theme:a,screenW:x,screenH:L,frameColor:u,...S,children:C});case "browser":return jsx(yx,{theme:a,screenW:x,screenH:L,frameColor:u,children:C})}};return jsx("div",{className:p("inline-flex",f),"data-testid":"device-mockup","data-orientation":o,"data-theme":a,"data-size":s,children:v()})}var ci={solid:"border-solid",dashed:"border-dashed",dotted:"border-dotted"},vx={left:{before:"flex-[0.1]",after:"flex-1"},center:{before:"flex-1",after:"flex-1"},right:{before:"flex-1",after:"flex-[0.1]"}};function Iu({orientation:e="horizontal",variant:t="solid",label:r,textAlign:n="center",thickness:o=1,color:a="border-gray-300 dark:border-gray-700",spacing:s,className:l,...i}){if(e==="vertical")return jsx("hr",{"aria-orientation":"vertical",className:p("h-full border-l-0 border-r",ci[t],a,s||"mx-2",l),style:{borderRightWidth:`${o}px`},...i});if(r){let c=vx[n];return jsxs("div",{role:"separator","aria-orientation":"horizontal",className:p("flex items-center text-sm text-gray-500 dark:text-gray-400",s||"my-4",l),...i,children:[jsx("div",{className:p("border-t",ci[t],a,c.before),style:{borderTopWidth:`${o}px`}}),jsx("span",{className:"px-3 whitespace-nowrap",children:r}),jsx("div",{className:p("border-t",ci[t],a,c.after),style:{borderTopWidth:`${o}px`}})]})}return jsx("hr",{"aria-orientation":"horizontal",className:p("border-t-0 border-b",ci[t],a,s||"my-4",l),style:{borderBottomWidth:`${o}px`},...i})}Iu.displayName="Divider";var Un=[];function Au(e){let t=Un.indexOf(e);t!==-1&&Un.splice(t,1),Un.push(e);}function zu(e){let t=Un.indexOf(e);t!==-1&&Un.splice(t,1);}function Bu(e){return Un.length>0&&Un[Un.length-1]===e}var Qa=0,Ql=null;function Hu(e=document){let t=e.body;if(!t)return ()=>{};Qa===0&&(Ql=t.style.overflow,t.style.overflow="hidden"),Qa+=1;let r=false;return ()=>{r||(r=true,Qa=Math.max(0,Qa-1),Qa===0&&(t.style.overflow=Ql??"",Ql=null));}}var Wu=["a[href]","area[href]","button","input","select","textarea","details > summary:first-of-type","iframe","object","embed","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])',"[tabindex]"].join(",");function kx(e){let t=e.ownerDocument?.defaultView;if(!t)return null;try{return t.getComputedStyle(e)}catch{return null}}function Vu(e){let t=e;for(;t;){if(t.hasAttribute("hidden")||t.hasAttribute("inert")||t.getAttribute("aria-hidden")==="true")return false;let r=kx(t);if(r&&(r.display==="none"||r.visibility==="hidden"||r.visibility==="collapse"))return false;t=t.parentElement;}return true}function Ou(e){if(e.hasAttribute("disabled")||e.getAttribute("tabindex")==="-1")return false;let t=e.closest("fieldset[disabled]");if(t){let r=t.querySelector("legend");if(!r||!r.contains(e))return false}return Vu(e)}function di(e){return Array.from(e.querySelectorAll(Wu)).filter(Ou).sort((r,n)=>{let o=r.compareDocumentPosition(n);return o&Node.DOCUMENT_POSITION_FOLLOWING?-1:o&Node.DOCUMENT_POSITION_PRECEDING?1:0})}var wx={role:"dialog","aria-modal":true,tabIndex:-1};function Nx(e,t){return t==="none"?null:t&&typeof t=="object"?t.current??e:t==="first"?di(e)[0]??e:e}function Sx(e){return e?e.map(t=>t&&"current"in t?t.current:t).filter(t=>!!t):[]}function da(e){if(e)try{e.focus();}catch{}}function So(e){let{open:t}=e,r=useRef(null),n=useRef(e);return n.current=e,useEffect(()=>{if(!t)return;let o=r.current;if(!o)return;let a=o.ownerDocument,s=a.activeElement,{hideBackground:l,lockScroll:i,initialFocus:c,keepInteractive:d}=n.current;Au(o);let u=l===false?void 0:Ml([o,...Sx(d)]),f=i===false?void 0:Hu(a);return da(Nx(o,c)),()=>{u?.(),f?.(),zu(o);let{returnFocus:m}=n.current;if(m===false)return;let g=a.activeElement;if(!(!g||g===a.body||o.contains(g)))return;let b=m&&typeof m=="object"?m.current:s;b&&a.contains(b)&&da(b);}},[t]),useEffect(()=>{if(!t)return;let o=r.current;if(!o)return;let a=o.ownerDocument,s=a.defaultView??a,l=c=>c?o.contains(c)?true:Gs([o]).some(d=>d.contains(c)):false,i=c=>{if(c.defaultPrevented||!Bu(o))return;let{closeOnEscape:d,trapFocus:u,onClose:f}=n.current;if(c.key==="Escape"){if(d===false)return;c.preventDefault(),f?.();return}if(c.key!=="Tab"||u===false)return;let m=a.activeElement;if(m&&!o.contains(m)&&l(m))return;let g=di(o);if(g.length===0){c.preventDefault(),da(o);return}let y=g[0],b=g[g.length-1];if(!m||!o.contains(m)){c.preventDefault(),da(c.shiftKey?b:y);return}if(c.shiftKey&&(m===y||m===o)){c.preventDefault(),da(b);return}!c.shiftKey&&m===b&&(c.preventDefault(),da(y));};return s.addEventListener("keydown",i),()=>s.removeEventListener("keydown",i)},[t]),{dialogRef:r,dialogProps:wx}}var Ex={left:{sm:"w-64",md:"w-80",lg:"w-96",xl:"w-[32rem]",full:"w-full",half:"w-1/2 h-full"},right:{sm:"w-64",md:"w-80",lg:"w-96",xl:"w-[32rem]",full:"w-full",half:"w-1/2 h-full"},top:{sm:"h-64",md:"h-80",lg:"h-96",xl:"h-[32rem]",full:"h-full",half:"w-1/2 h-full"},bottom:{sm:"h-64",md:"h-80",lg:"h-96",xl:"h-[32rem]",full:"h-full",half:"w-1/2 h-full"}},Lx={left:"left-0 top-0 bottom-0",right:"right-0 top-0 bottom-0",top:"top-0 left-0 right-0",bottom:"bottom-0 left-0 right-0"},_u={left:{enter:"animate-in slide-in-from-left duration-300",exit:"animate-out slide-out-to-left duration-200"},right:{enter:"animate-in slide-in-from-right duration-300",exit:"animate-out slide-out-to-right duration-200"},top:{enter:"animate-in slide-in-from-top duration-300",exit:"animate-out slide-out-to-top duration-200"},bottom:{enter:"animate-in slide-in-from-bottom duration-300",exit:"animate-out slide-out-to-bottom duration-200"}},Mx=jsx("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})});function Xu({open:e,onClose:t,children:r,position:n="right",size:o="md",customWidth:a,customHeight:s,showOverlay:l=true,closeOnOverlayClick:i=true,closeOnEscape:c=true,title:d,footer:u,className:f,overlayClassName:m,closeLabel:g,"aria-label":y,trapFocus:b=true,initialFocus:h,returnFocus:x,lockScroll:L=true}){let C=!!(a||s),S=useRef(null),v=Ve(),N=`${useId()}-drawer-title`,{dialogRef:M,dialogProps:P}=So({open:e,onClose:t,closeOnEscape:c,trapFocus:b,initialFocus:h,returnFocus:x,lockScroll:L,keepInteractive:[S]}),E=useCallback(()=>{i&&t();},[i,t]);if(!e)return null;let W=jsxs(Fragment,{children:[l&&jsx("div",{ref:S,className:p("fixed inset-0 bg-black/50 z-40 transition-opacity",e?"animate-in fade-in duration-200":"animate-out fade-out duration-150",m),onClick:E,"aria-hidden":"true"}),jsxs("div",{ref:M,...P,"aria-labelledby":d?N:void 0,"aria-label":d?void 0:y,className:p("fixed z-50 bg-white dark:bg-gray-900","shadow-xl overflow-hidden","flex flex-col focus:outline-none",Lx[n],!C&&Ex[n][o],e?_u[n].enter:_u[n].exit,f),style:{...a?{width:a}:{},...s?{height:s}:{}},children:[d&&jsxs("div",{className:"flex items-center justify-between px-6 py-4 border-b border-gray-200 dark:border-gray-700",children:[jsx("h2",{id:N,className:"text-lg font-semibold text-gray-900 dark:text-white",children:d}),jsx("button",{type:"button",onClick:t,className:p("rounded-lg p-1.5 text-gray-400 hover:bg-gray-100 hover:text-gray-900","dark:hover:bg-gray-800 dark:hover:text-white","focus:outline-none focus:ring-2 focus:ring-gray-300 dark:focus:ring-gray-600"),"aria-label":g??v.closeDrawer,children:Mx})]}),jsx("div",{className:"flex-1 overflow-y-auto px-6 py-4",children:r}),u&&jsx("div",{className:"px-6 py-4 border-t border-gray-200 dark:border-gray-700",children:u})]})]});return typeof document<"u"?createPortal(W,document.body):W}Xu.displayName="Drawer";var Bx={sm:{dropzone:"py-4 px-3",text:"text-xs",subtext:"text-[10px]",icon:"w-6 h-6",button:"px-2.5 py-1.5 text-xs",fileItem:"py-1 px-2 text-xs",gap:"gap-1"},md:{dropzone:"py-6 px-4",text:"text-sm",subtext:"text-xs",icon:"w-8 h-8",button:"px-3 py-2 text-sm",fileItem:"py-1.5 px-3 text-sm",gap:"gap-1.5"},lg:{dropzone:"py-8 px-6",text:"text-base",subtext:"text-sm",icon:"w-10 h-10",button:"px-4 py-2.5 text-base",fileItem:"py-2 px-4 text-base",gap:"gap-2"}},Yu=e=>{if(e===0)return "0 B";let t=["B","KB","MB","GB"],r=Math.floor(Math.log(e)/Math.log(1024));return `${(e/Math.pow(1024,r)).toFixed(r===0?0:1)} ${t[r]}`},ec=e=>e.webkitRelativePath||e.name,Hx=jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:"w-full h-full",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 16.5v2.25A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75V16.5m-13.5-9L12 3m0 0l4.5 4.5M12 3v13.5"})}),Wx=jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:"w-full h-full",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 9.776c.112-.017.227-.026.344-.026h15.812c.117 0 .232.009.344.026m-16.5 0a2.25 2.25 0 00-1.883 2.542l.857 6a2.25 2.25 0 002.227 1.932H19.05a2.25 2.25 0 002.227-1.932l.857-6a2.25 2.25 0 00-1.883-2.542m-16.5 0V6A2.25 2.25 0 016 3.75h3.879a1.5 1.5 0 011.06.44l2.122 2.12a1.5 1.5 0 001.06.44H18A2.25 2.25 0 0120.25 9v.776"})}),Vx=0;async function Ox(e){let t=[],r=async n=>{if(n.isFile){let o=await new Promise((a,s)=>n.file(a,s));t.push(o);}else if(n.isDirectory){let o=n.createReader(),a=()=>new Promise((l,i)=>o.readEntries(l,i)),s=await a();for(;s.length>0;){for(let l of s)await r(l);s=await a();}}};for(let n of e)await r(n);return t}function Fx({value:e,onChange:t,accept:r,multiple:n=false,maxSize:o=10*1024*1024,maxFiles:a,mode:s="file",variant:l="dropzone",size:i="md",disabled:c=false,readOnly:d=false,label:u,helperText:f,error:m,showFileList:g=true,placeholder:y,browseLabel:b,browseFolderLabel:h,icon:x,onReject:L,className:C}){let[S,v]=useState([]),[R,N]=useState(false),M=useRef(null),P=useRef(null),E=useId(),W=e!==void 0,T=W?e.map((Y,ee)=>({file:Y,id:`ctrl-${ee}`})):S,O=Bx[i];useEffect(()=>{s==="directory"&&M.current&&M.current.setAttribute("webkitdirectory",""),s==="both"&&P.current&&P.current.setAttribute("webkitdirectory","");},[s]);let H=useMemo(()=>Yu(o),[o]),k=useMemo(()=>r?r.split(",").map(Y=>Y.trim()).map(Y=>Y.startsWith(".")?Y.toUpperCase():Y.endsWith("/*")?Y.replace("/*","").toUpperCase():Y).join(", "):"All files",[r]),z=s==="directory"?"Drag & drop a folder here, or":s==="both"?"Drag & drop files or folders here, or":n?"Drag & drop files here, or":"Drag & drop a file here, or",A=s==="directory"?"Browse folder":"Browse",I="Browse folder",X=useCallback(Y=>{if(Y.size>o)return `File exceeds maximum size of ${H}`;if(r){let ee=r.split(",").map(V=>V.trim()),Z=`.${Y.name.split(".").pop()?.toLowerCase()}`;if(!ee.some(V=>V.startsWith(".")?Z===V.toLowerCase():V.endsWith("/*")?Y.type.startsWith(V.replace("/*","/")):Y.type===V))return `File type not accepted. Expected: ${k}`}return null},[r,k,o,H]),$=useCallback(Y=>{if(c||d)return;let ee=Array.from(Y),Z=[];for(let ie of ee){let V=X(ie);V?L?.(ie,V):Z.push(ie);}if(Z.length!==0)if(W)if(n){let V=[...e??[],...Z],oe=a?V.slice(0,a):V;t?.(oe);}else t?.([Z[0]]);else v(ie=>{let V=Z.map(oe=>({file:oe,id:`file-${++Vx}`}));if(n){let oe=[...ie,...V],pe=a?oe.slice(0,a):oe,Te=pe.map(ze=>ze.file);return t?.(Te),pe}return t?.([Z[0]]),[V[0]]});},[c,d,W,n,a,e,t,L,X]),K=useCallback(Y=>{if(!(c||d)){if(W){let ee=(e??[]).filter((Z,ie)=>ie!==Y);t?.(ee);}else v(ee=>{let Z=ee.filter((ie,V)=>V!==Y);return t?.(Z.map(ie=>ie.file)),Z});M.current&&(M.current.value="");}},[c,d,W,e,t]),D=useCallback(()=>{c||d||(W?t?.([]):(v([]),t?.([])),M.current&&(M.current.value=""));},[c,d,W,t]),B=useCallback(Y=>{Y.target.files&&Y.target.files.length>0&&$(Y.target.files);},[$]),w=useCallback(Y=>{Y.preventDefault(),Y.stopPropagation(),!c&&!d&&N(true);},[c,d]),G=useCallback(Y=>{Y.preventDefault(),Y.stopPropagation(),N(false);},[]),q=useCallback(Y=>{if(Y.preventDefault(),Y.stopPropagation(),N(false),c||d)return;let ee=Y.dataTransfer.items;if(ee&&ee.length>0&&(s==="directory"||s==="both")){let Z=[];for(let V=0;V<ee.length;V++){let oe=ee[V].webkitGetAsEntry?.();oe&&Z.push(oe);}if(Z.some(V=>V.isDirectory)){Ox(Z).then(V=>{V.length>0&&$(V);});return}}Y.dataTransfer.files&&Y.dataTransfer.files.length>0&&$(Y.dataTransfer.files);},[c,d,s,$]),j=useCallback(()=>{!c&&!d&&M.current?.click();},[c,d]),U=useCallback(()=>{!c&&!d&&P.current?.click();},[c,d]),F=T.length>0,_=x||(s==="directory"?Wx:Hx),J=g&&F&&jsxs("div",{className:p("flex flex-col",O.gap),children:[T.map((Y,ee)=>jsxs("div",{className:p("flex items-center justify-between rounded-md border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800/50",O.fileItem),children:[jsxs("div",{className:"flex items-center gap-2 min-w-0 flex-1",children:[jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:"w-4 h-4 shrink-0 text-gray-400 dark:text-gray-500",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z"})}),jsx("span",{className:"truncate text-gray-700 dark:text-gray-300",children:ec(Y.file)}),jsxs("span",{className:"shrink-0 text-gray-400 dark:text-gray-500",children:["(",Yu(Y.file.size),")"]})]}),!c&&!d&&jsx("button",{type:"button",onClick:()=>K(ee),className:"shrink-0 ml-2 text-gray-400 hover:text-red-500 dark:text-gray-500 dark:hover:text-red-400 transition-colors cursor-pointer","aria-label":`Remove ${ec(Y.file)}`,children:jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:"w-4 h-4",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})})})]},Y.id)),n&&T.length>1&&!c&&!d&&jsx("button",{type:"button",onClick:D,className:p("self-start text-gray-400 hover:text-red-500 dark:text-gray-500 dark:hover:text-red-400 transition-colors cursor-pointer",O.subtext),children:"Remove all"})]}),ne=p("rounded-md border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200 font-medium transition-colors","hover:bg-gray-50 dark:hover:bg-gray-700","disabled:opacity-50 disabled:cursor-not-allowed cursor-pointer","focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-1",O.button,m&&"border-red-300 dark:border-red-600");return jsxs("div",{className:p("flex flex-col",O.gap,C),children:[u&&jsx("label",{htmlFor:E,className:p("block font-medium text-gray-700 dark:text-gray-300",O.text),children:u}),jsx("input",{ref:M,id:E,type:"file",accept:s!=="directory"?r:void 0,multiple:n,onChange:B,className:"sr-only",disabled:c||d,"aria-describedby":m?`${E}-error`:f?`${E}-helper`:void 0,"aria-invalid":!!m}),s==="both"&&jsx("input",{ref:P,type:"file",onChange:B,className:"sr-only",disabled:c||d,tabIndex:-1,"aria-hidden":"true"}),l==="dropzone"?jsxs("div",{role:s==="both"?"group":"button",tabIndex:s==="both"?void 0:c||d?-1:0,onClick:s==="both"?void 0:j,onKeyDown:s==="both"?void 0:Y=>{(Y.key==="Enter"||Y.key===" ")&&(Y.preventDefault(),j());},onDragOver:w,onDragLeave:G,onDrop:q,className:p("flex flex-col items-center justify-center rounded-lg border-2 border-dashed transition-colors",O.dropzone,R&&!c&&!d?"border-blue-500 bg-blue-50 dark:bg-blue-900/20":"border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800",!c&&!d&&"hover:border-blue-400 dark:hover:border-blue-500 hover:bg-gray-50 dark:hover:bg-gray-800/70",s!=="both"&&!c&&!d&&"cursor-pointer",c&&"opacity-50 cursor-not-allowed",d&&"cursor-default",m&&"border-red-300 dark:border-red-600"),"aria-label":s==="both"?"File and folder drop zone":y||z,children:[jsx("div",{className:p("text-gray-400 dark:text-gray-500 mb-2",O.icon,R&&"text-blue-500 dark:text-blue-400"),children:_}),jsxs("p",{className:p("text-gray-600 dark:text-gray-400",O.text),children:[y||z," ",!c&&!d&&s!=="both"&&jsx("span",{className:"text-blue-600 dark:text-blue-400 font-medium",children:b||A})]}),s==="both"&&!c&&!d&&jsxs("div",{className:p("flex items-center gap-3 mt-1",O.text),children:[jsx("button",{type:"button",onClick:j,className:"text-blue-600 dark:text-blue-400 font-medium hover:underline cursor-pointer focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-1 rounded",children:b||"Browse files"}),jsx("span",{className:"text-gray-300 dark:text-gray-600",children:"\xB7"}),jsx("button",{type:"button",onClick:U,className:"text-blue-600 dark:text-blue-400 font-medium hover:underline cursor-pointer focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-1 rounded",children:h||I})]}),jsxs("p",{className:p("text-gray-400 dark:text-gray-500 mt-1",O.subtext),children:[k," - Max ",H,n&&a&&` - Up to ${a} files`]})]}):jsxs("div",{className:"flex items-center gap-2",children:[s==="both"?jsxs(Fragment,{children:[jsx("button",{type:"button",onClick:j,disabled:c||d,className:ne,children:b||(F?"Change files":"Choose files")}),jsx("button",{type:"button",onClick:U,disabled:c||d,className:ne,children:h||"Choose folder"})]}):jsx("button",{type:"button",onClick:j,disabled:c||d,className:ne,children:b||(s==="directory"?F?"Change folder":"Choose folder":F?"Change file":"Choose file")}),!F&&jsx("span",{className:p("text-gray-400 dark:text-gray-500",O.text),children:s==="directory"?"No folder selected":s==="both"?"No file or folder selected":"No file selected"}),F&&!g&&jsx("span",{className:p("text-gray-600 dark:text-gray-400 truncate",O.text),children:T.length===1?ec(T[0].file):`${T.length} files selected`})]}),J,m&&jsx("p",{id:`${E}-error`,className:p("text-red-600 dark:text-red-400",O.subtext),role:"alert",children:m}),f&&!m&&jsx("p",{id:`${E}-helper`,className:p("text-gray-400 dark:text-gray-500",O.subtext),children:f})]})}function ju({className:e}){return jsx("hr",{className:p("my-1 h-px border-0 bg-gray-200 dark:bg-gray-700",e)})}ju.displayName="DropdownSeparator";function qu({children:e,className:t}){return jsx("div",{className:p("px-3 py-1.5 text-xs font-semibold text-gray-500 dark:text-gray-400",t),children:e})}qu.displayName="DropdownLabel";function em({checked:e,defaultChecked:t=false,onCheckedChange:r,children:n,icon:o,description:a,disabled:s=false,closeOnChange:l=false,className:i,index:c}){let{setIsOpen:d,focusedIndex:u,setFocusedIndex:f,registerItem:m,getNextItemIndex:g}=Dr(),y=useRef(null),[b]=useState(()=>c??g()),[h,x]=useState(t),L=e!==void 0,C=L?e:h;useEffect(()=>(m(b,y.current),()=>{m(b,null);}),[b,m]);let S=u===b;return jsxs("button",{ref:y,role:"menuitemcheckbox",type:"button",tabIndex:S?0:-1,"aria-checked":C,disabled:s,"data-disabled":s||void 0,"data-focused":S||void 0,onClick:()=>{if(s)return;let N=!C;L||x(N),r?.(N),l&&d(false);},onMouseEnter:()=>{s||f(b);},className:p("relative flex w-full items-center px-3 py-2 text-left text-sm","outline-none transition-colors","text-gray-700 dark:text-gray-200","hover:bg-gray-100 dark:hover:bg-gray-700","focus:bg-gray-100 dark:focus:bg-gray-700",s&&"opacity-50 cursor-not-allowed hover:bg-transparent",S&&"bg-gray-100 dark:bg-gray-700",i),children:[jsx("span",{className:"mr-2 shrink-0 w-4 h-4",children:o||jsx("span",{className:p("flex items-center justify-center w-4 h-4 rounded border-2 transition-colors",C?"bg-blue-600 border-blue-600":"border-gray-300 dark:border-gray-600"),children:C&&jsx("svg",{className:"w-3 h-3 text-white",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M13.5 4.5L6 12L2.5 8.5",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"})})})}),jsxs("span",{className:"flex-1 min-w-0",children:[jsx("span",{className:"block truncate",children:n}),a&&jsx("span",{className:"block text-xs text-gray-500 dark:text-gray-400 truncate",children:a})]})]})}em.displayName="DropdownCheckboxItem";var nm=createContext(null);function Zx(){let e=useContext(nm);if(!e)throw new Error("DropdownRadioItem must be used within a DropdownRadioGroup");return e}function om({value:e,defaultValue:t="",onValueChange:r,children:n,className:o}){let[a,s]=useState(t),l=e!==void 0,i=l?e:a,c=useCallback(u=>{l||s(u),r?.(u);},[l,r]),d=useMemo(()=>({value:i,onValueChange:c}),[i,c]);return jsx(nm.Provider,{value:d,children:jsx("div",{role:"group",className:o,children:n})})}om.displayName="DropdownRadioGroup";function am({value:e,children:t,icon:r,description:n,disabled:o=false,closeOnChange:a=true,className:s,index:l}){let{value:i,onValueChange:c}=Zx(),{setIsOpen:d,focusedIndex:u,setFocusedIndex:f,registerItem:m,getNextItemIndex:g}=Dr(),y=useRef(null),[b]=useState(()=>l??g()),h=i===e;useEffect(()=>(m(b,y.current),()=>{m(b,null);}),[b,m]);let x=u===b;return jsxs("button",{ref:y,role:"menuitemradio",type:"button",tabIndex:x?0:-1,"aria-checked":h,disabled:o,"data-disabled":o||void 0,"data-focused":x||void 0,onClick:()=>{o||(c(e),a&&d(false));},onMouseEnter:()=>{o||f(b);},className:p("relative flex w-full items-center px-3 py-2 text-left text-sm","outline-none transition-colors","text-gray-700 dark:text-gray-200","hover:bg-gray-100 dark:hover:bg-gray-700","focus:bg-gray-100 dark:focus:bg-gray-700",o&&"opacity-50 cursor-not-allowed hover:bg-transparent",x&&"bg-gray-100 dark:bg-gray-700",s),children:[jsx("span",{className:"mr-2 shrink-0 w-4 h-4",children:r||jsx("span",{className:p("flex items-center justify-center w-4 h-4 rounded-full border-2 transition-colors",h?"border-blue-600":"border-gray-300 dark:border-gray-600"),children:h&&jsx("span",{className:"w-2 h-2 rounded-full bg-blue-600"})})}),jsxs("span",{className:"flex-1 min-w-0",children:[jsx("span",{className:"block truncate",children:t}),n&&jsx("span",{className:"block text-xs text-gray-500 dark:text-gray-400 truncate",children:n})]}),h&&!r&&jsx("svg",{className:"ml-auto w-4 h-4 text-blue-600",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"})})]})}am.displayName="DropdownRadioItem";var cm=createContext(null);function dm(){let e=useContext(cm);if(!e)throw new Error("DropdownSubMenu components must be used within a DropdownSubMenu");return e}function um({children:e}){let[t,r]=useState(false),n=useRef(null),o=useRef(null),a=useMemo(()=>({isOpen:t,setIsOpen:r,triggerRef:n,contentRef:o}),[t]);return jsx(cm.Provider,{value:a,children:jsx("div",{className:"relative",children:e})})}um.displayName="DropdownSubMenu";var im=0;function mm({children:e,icon:t,disabled:r=false,className:n,index:o}){let{isOpen:a,setIsOpen:s,triggerRef:l}=dm(),{focusedIndex:i,setFocusedIndex:c,registerItem:d}=Dr(),u=useRef(o??-1);useEffect(()=>(o===void 0&&(u.current=im++),d(u.current,l.current),()=>{d(u.current,null);}),[o,d,l]),useEffect(()=>()=>{im=0;},[]);let f=i===u.current;return jsxs("button",{ref:l,role:"menuitem",type:"button",tabIndex:f?0:-1,"aria-haspopup":"menu","aria-expanded":a,disabled:r,"data-disabled":r||void 0,"data-focused":f||void 0,onMouseEnter:()=>{r||(c(u.current),s(true));},onMouseLeave:()=>{setTimeout(()=>{s(false);},100);},onKeyDown:b=>{r||(b.key==="ArrowRight"||b.key==="Enter")&&(b.preventDefault(),s(true));},className:p("relative flex w-full items-center px-3 py-2 text-left text-sm","outline-none transition-colors","text-gray-700 dark:text-gray-200","hover:bg-gray-100 dark:hover:bg-gray-700","focus:bg-gray-100 dark:focus:bg-gray-700",r&&"opacity-50 cursor-not-allowed hover:bg-transparent",f&&"bg-gray-100 dark:bg-gray-700",n),children:[t&&jsx("span",{className:"mr-2 shrink-0 w-5 h-5",children:t}),jsx("span",{className:"flex-1",children:e}),jsx("svg",{className:"ml-auto w-4 h-4 text-gray-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})})]})}mm.displayName="DropdownSubMenuTrigger";function pm({children:e,sideOffset:t=0,className:r}){let{isOpen:n,setIsOpen:o,triggerRef:a,contentRef:s}=dm(),[l,i]=useState(false),c=_n({triggerRef:a,contentRef:s,isOpen:n,side:"right",align:"start",sideOffset:t,avoidCollisions:true});sa(s,()=>o(false),n),useEffect(()=>{let g=s.current;if(g)return Pn(g,()=>a.current)},[s,a]);let d=useCallback(()=>{o(true);},[o]),u=useCallback(()=>{o(false);},[o]),f=g=>{(g.key==="ArrowLeft"||g.key==="Escape")&&(g.preventDefault(),o(false),a.current?.focus());};useLayoutEffect(()=>{let g=0;if(!n){i(false);return}let y=()=>{let b=a.current?.getBoundingClientRect(),h=s.current?.getBoundingClientRect();if(c.isReady&&!!b&&!!h&&b.width>0&&b.height>0&&h.width>0&&h.height>0){i(true);return}g=requestAnimationFrame(y);};return i(false),g=requestAnimationFrame(y),()=>{g&&cancelAnimationFrame(g);}},[n,c.isReady,a,s]);let m=jsx("div",{ref:s,role:"menu","aria-orientation":"vertical","aria-hidden":!n,tabIndex:-1,onMouseEnter:d,onMouseLeave:u,onKeyDown:f,style:{position:"fixed",top:c.top,left:c.left,visibility:n&&l?"visible":"hidden",opacity:n&&l?1:0,pointerEvents:n&&l?"auto":"none"},className:p("z-50 min-w-40 overflow-hidden rounded-lg","border border-gray-200 bg-white shadow-lg","dark:border-gray-700 dark:bg-gray-800",n&&l&&"animate-in fade-in-0 zoom-in-95 duration-150",r),children:jsx("div",{className:"py-1",children:e})});return typeof document<"u"?createPortal(m,document.body):m}pm.displayName="DropdownSubMenuContent";var ov=(e="md")=>({sm:"text-xs p-1.5",md:"text-sm p-2.5",lg:"text-base p-3.5"})[e],ma=({size:e="md",error:t,disabled:r,readOnly:n,icon:o,iconPosition:a})=>p("bg-gray-50 rounded-lg block w-full","border focus:outline-none focus:ring-0","dark:bg-gray-700 dark:placeholder-gray-400",ov(e),o&&a==="left"?"pl-9":"",o&&a==="right"?"pr-9":"",r?"opacity-50 cursor-not-allowed":"",n?"bg-gray-100 dark:bg-gray-600 cursor-default":"",t?"border-red-500 dark:border-red-500":"border-gray-300 dark:border-gray-600"),gm=(e,t)=>p("text-sm font-medium",e?"min-w-[120px]":"block mb-2",!t&&"text-gray-900 dark:text-white"),fm=e=>p("mt-1 text-xs",e?"text-red-500 dark:text-red-400":"text-gray-500 dark:text-gray-400"),Po=e=>p("absolute inset-y-0 flex items-center pointer-events-none",e==="left"?"left-2.5":"right-2.5");var pa=({label:e,hideLabel:t,labelColor:r,error:n,helperText:o,inline:a,children:s,htmlFor:l})=>jsxs("div",{className:a?"flex items-center gap-4":"flex flex-col",children:[e&&!t&&jsx("label",{htmlFor:l,className:gm(a||false,r),style:r?{color:r}:void 0,children:e}),jsx("div",{className:a?"flex-1":"w-full",children:s}),o&&jsx("p",{className:p(fm(n),a&&"ml-34"),children:o})]});var dn=forwardRef(({label:e,inline:t=false,size:r="md",labelColor:n,borderColor:o,textColor:a,disabled:s=false,readOnly:l=false,error:i=false,helperText:c,hideLabel:d=false,icon:u,iconPosition:f="left",multiline:m=false,rows:g=3,focused:y=false,className:b,...h},x)=>{let L=useRef(null),C=P=>{L.current=P,typeof x=="function"?x(P):x&&(x.current=P);};useEffect(()=>{y&&L.current?.focus();},[y]);let S=useId(),v=p(ma({size:r,error:i,disabled:s,readOnly:l,icon:u,iconPosition:f}),m&&"resize-vertical",b),R={...o&&{borderColor:o},...a&&{color:a}},N=o||a?R:void 0;return jsx(pa,{label:e,hideLabel:d,labelColor:n,error:i,helperText:c,inline:t,htmlFor:S,children:jsxs("div",{className:"relative w-full",children:[u&&jsx("span",{className:Po(f),children:u}),m?jsx("textarea",{ref:C,id:S,disabled:s,readOnly:l,rows:g,tabIndex:l||s?-1:void 0,className:v,style:N,...h}):jsx("input",{ref:C,id:S,disabled:s,readOnly:l,tabIndex:l||s?-1:void 0,className:v,style:N,...h})]})})});dn.displayName="Input";var fv=e=>jsxs("div",{className:"flex items-center gap-2 px-3 py-2 hover:bg-gray-100 dark:hover:bg-gray-700 cursor-pointer",children:[e.avatar&&jsx("img",{src:e.avatar,alt:e.label,className:"w-6 h-6 rounded-full"}),jsx("span",{className:"text-sm text-gray-900 dark:text-white",children:e.label})]}),ac=forwardRef(({label:e,inline:t=false,size:r="md",labelColor:n,borderColor:o,textColor:a,disabled:s=false,readOnly:l=false,error:i=false,helperText:c,hideLabel:d=false,icon:u,iconPosition:f="left",mentionTrigger:m="@",suggestions:g=[],onMentionSearch:y,onMentionSelect:b,onMentionRemove:h,renderSuggestion:x,value:L,onChange:C,placeholder:S,loading:v=false,maxSuggestions:R=10,chipVariant:N="soft",chipColor:M="primary",chipSize:P="sm"},E)=>{let W=useId(),T=useRef(null),[O,H]=useState(false),[k,z]=useState(0),[A,I]=useState(""),X=p(ma({size:r,error:i,disabled:s,readOnly:l,icon:u,iconPosition:f}),"min-h-[42px]","whitespace-pre-wrap","break-words"),$={...o&&{borderColor:o},...a&&{color:a}},K=o||a?$:void 0,D=useCallback(()=>{if(!T.current)return {text:"",mentions:[]};let F="",_=[],J=0,ne=Y=>{if(Y.nodeType===Node.TEXT_NODE)F+=Y.textContent||"",J+=(Y.textContent||"").length;else if(Y.nodeType===Node.ELEMENT_NODE){let ee=Y;if(ee.hasAttribute("data-mention-id")){let Z=ee.getAttribute("data-mention-id"),ie=ee.getAttribute("data-mention-label")||"",V=ee.getAttribute("data-mention-avatar")||void 0,oe=`@${ie}`,pe=J;_.push({trigger:m,suggestion:{id:Z||"",label:ie,avatar:V},startIndex:pe,endIndex:pe+oe.length}),F+=oe,J+=oe.length;}else ee.childNodes.forEach(ne);}};return T.current.childNodes.forEach(ne),{text:F,mentions:_}},[m]),B=useCallback((F,_)=>{let J=document.createElement("span");return J.contentEditable="false",J.setAttribute("data-mention-id",F.id),J.setAttribute("data-mention-label",F.label),F.avatar&&J.setAttribute("data-mention-avatar",F.avatar),J.className="inline-block align-middle mx-0.5",J.style.userSelect="none",createRoot(J).render(jsx(li,{label:F.label,variant:N,color:M,size:P,closable:!s&&!l,onClose:_,disabled:s,avatar:F.avatar?jsx("img",{src:F.avatar,alt:F.label,className:"w-full h-full object-cover"}):void 0})),J},[N,M,P,s,l]),w=useCallback(F=>{if(!T.current)return;let _=T.current.querySelector(`[data-mention-id="${F}"]`);if(_){_.remove();let J=D();C?.(J);let ne=L?.mentions.find(Y=>Y.suggestion.id===F)?.suggestion;ne&&h?.(ne);}},[D,C,h,L?.mentions]),G=useCallback(()=>{if(!T.current)return;let F=window.getSelection();if(!F||F.rangeCount===0)return;let _=F.getRangeAt(0),J="";_.startContainer.nodeType===Node.TEXT_NODE&&(J=_.startContainer.textContent?.substring(0,_.startOffset)||"");let ne=J.match(new RegExp(`${m}(\\w*)$`));if(ne){let ee=ne[1];I(ee),H(true),z(0),y?.(ee);}else H(false),I("");let Y=D();C?.(Y);},[m,y,C,D]),q=useCallback(F=>{if(!T.current)return;let _=window.getSelection();if(!_||_.rangeCount===0)return;let J=_.getRangeAt(0);if(J.startContainer.nodeType===Node.TEXT_NODE){let Y=J.startContainer,ee=Y.textContent||"",Z=J.startOffset,V=ee.substring(0,Z).lastIndexOf(m);if(V!==-1){let oe=ee.substring(0,V),pe=ee.substring(Z),Te=B(F,()=>{w(F.id);});if(oe?(Y.textContent=oe,Y.parentNode?.insertBefore(Te,Y.nextSibling)):(Y.parentNode?.insertBefore(Te,Y),Y.textContent="",Y.textContent||Y.remove()),pe){let re=document.createTextNode(pe);Te.parentNode?.insertBefore(re,Te.nextSibling);}let ze=document.createTextNode(" ");Te.parentNode?.insertBefore(ze,Te.nextSibling);let ae=document.createRange();ae.setStartAfter(ze),ae.collapse(true),_.removeAllRanges(),_.addRange(ae);}}H(false),I("");let ne=D();C?.(ne),b?.(F),T.current.focus();},[m,B,w,D,C,b]),j=useCallback(F=>{let _=g.slice(0,R);if(O&&_.length>0)switch(F.key){case "ArrowDown":F.preventDefault(),z(J=>J<_.length-1?J+1:0);return;case "ArrowUp":F.preventDefault(),z(J=>J>0?J-1:_.length-1);return;case "Enter":case "Tab":F.preventDefault(),_[k]&&q(_[k]);return;case "Escape":F.preventDefault(),H(false);return}if(F.key==="Backspace"){let J=window.getSelection();if(!J||J.rangeCount===0)return;let ne=J.getRangeAt(0);if(ne.collapsed&&ne.startOffset===0){let Y=ne.startContainer.previousSibling;if(Y&&Y.nodeType===Node.ELEMENT_NODE){let ee=Y;if(ee.hasAttribute("data-mention-id")){F.preventDefault();let Z=ee.getAttribute("data-mention-id");Z&&w(Z);return}}}if(ne.collapsed&&ne.startContainer.nodeType===Node.TEXT_NODE){let Y=ne.startContainer;if(ne.startOffset===0){let ee=Y.previousSibling;if(ee&&ee.nodeType===Node.ELEMENT_NODE){let Z=ee;if(Z.hasAttribute("data-mention-id")){F.preventDefault();let ie=Z.getAttribute("data-mention-id");ie&&w(ie);return}}}}}},[O,g,k,R,q,w]);return useEffect(()=>{T.current&&(!(T.current.textContent||T.current.querySelector("[data-mention-id]"))&&S?T.current.setAttribute("data-placeholder",S):T.current.removeAttribute("data-placeholder"));},[S,L]),useEffect(()=>{T.current&&L?.text===""&&L?.mentions.length===0&&T.current.innerHTML.trim()&&(T.current.innerHTML="");},[L?.text,L?.mentions.length]),jsx(pa,{label:e,hideLabel:d,labelColor:n,error:i,helperText:c,inline:t,htmlFor:W,children:jsxs("div",{className:"relative w-full",children:[u&&jsx("span",{className:Po(f),children:u}),jsx("div",{ref:F=>{typeof E=="function"?E(F):E&&(E.current=F),T.current=F;},id:W,contentEditable:!s&&!l,suppressContentEditableWarning:true,onInput:G,onKeyDown:j,className:p(X,"empty:before:content-[attr(data-placeholder)] empty:before:text-gray-400 empty:before:dark:text-gray-500"),style:K,role:"textbox","aria-label":e,"aria-multiline":"true",tabIndex:l||s?-1:0}),O&&g.length>0&&jsx("div",{className:"absolute z-10 mt-1 w-full max-h-60 overflow-auto rounded-lg border border-gray-300 bg-white dark:bg-gray-700 dark:border-gray-600 shadow-lg",children:v?jsx("div",{className:"px-3 py-2 text-sm text-gray-500 dark:text-gray-400",children:"Loading..."}):g.slice(0,R).map((F,_)=>jsx("div",{onClick:()=>q(F),className:p(_===k&&"bg-gray-100 dark:bg-gray-600"),children:x?x(F):fv(F)},F.id))})]})})});ac.displayName="MentionInput";var sc=forwardRef(({label:e,inline:t=false,size:r="md",labelColor:n,borderColor:o,textColor:a,disabled:s=false,readOnly:l=false,error:i=false,helperText:c,hideLabel:d=false,icon:u,iconPosition:f="left",className:m,value:g,onChange:y,format:b="number",currency:h="USD",locale:x="en-US",decimals:L,min:C,max:S,step:v=1,prefix:R,suffix:N,thousandSeparator:M=true,allowNegative:P=true,onBlur:E,onFocus:W,...T},O)=>{let H=useId(),[k,z]=useState(null),A=useMemo(()=>{let U=b==="currency"?{style:"currency",currency:h,minimumFractionDigits:L??2,maximumFractionDigits:L??2}:b==="percentage"?{minimumFractionDigits:L??0,maximumFractionDigits:L??2}:{minimumFractionDigits:L??0,maximumFractionDigits:L??(b==="decimal"?2:0),useGrouping:M};try{return new Intl.NumberFormat(x,U)}catch{return null}},[b,h,x,L,M]),I=U=>{if(U==null)return "";if(!A)return String(U);let F=A.format(U);return b==="percentage"?(F=R?`${R}${F}`:F,F=N||!F.includes("%")?`${F}%`:F,F):(R&&(F=`${R}${F}`),N&&(F=`${F}${N}`),F)},X=U=>{if(!U||U.trim()==="")return null;let F=U;if(R&&(F=F.replace(R,"")),N&&(F=F.replace(N,"")),F=F.replace(/[^\d.,-]/g,""),x.includes("fr")||x.includes("de")?F=F.replace(/\s/g,"").replace(",","."):F=F.replace(",",""),!F||F==="-"||F===".")return null;let _=parseFloat(F);return isNaN(_)?null:!P&&_<0?Math.abs(_):C!==void 0&&_<C?C:S!==void 0&&_>S?S:_},$=k??I(g??null),K=U=>{let F=x.includes("fr")||x.includes("de")?",":".";return new RegExp(`^-?[0-9${F===","?",":"\\."}]*$`).test(U)},D=U=>{let F=U.target.value;if(F===""||K(F)){z(F);let _=X(F);y&&y(_);}},B=U=>{let F=x.includes("fr")||x.includes("de")?",":".",_=["Backspace","Delete","Tab","Escape","Enter","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End"],J=/^[0-9]$/.test(U.key),ne=U.key===F,Y=U.key==="-"&&P&&$.indexOf("-")===-1,ee=U.ctrlKey||U.metaKey;!J&&!ne&&!Y&&!_.includes(U.key)&&!ee&&U.preventDefault();},w=U=>{let F=g!=null?String(g):"";z(F),W&&W(U);},G=U=>{let F=X(k??"");y&&F!==g&&y(F),z(null),E&&E(U);},q=p(ma({size:r,error:i,disabled:s,readOnly:l,icon:u,iconPosition:f}),o&&`border-[${o}]`,a&&`text-[${a}]`,m),j=jsxs("div",{className:"relative",children:[u&&f==="left"&&jsx("div",{className:Po(f),children:u}),jsx("input",{ref:O,id:H,type:"text",inputMode:"decimal",className:q,style:{borderColor:o,color:a},disabled:s,readOnly:l,value:$,onChange:D,onKeyDown:B,onFocus:w,onBlur:G,...T}),u&&f==="right"&&jsx("div",{className:Po(f),children:u})]});return jsx(pa,{label:e,hideLabel:d,labelColor:n,error:i,helperText:c,inline:t,htmlFor:H,children:j})});sc.displayName="NumberInput";function Cv({logo:e,logoHref:t="/",onLogoClick:r,navItems:n=[],actions:o,rightContent:a,variant:s="default",size:l="md",backgroundColor:i,textColor:c,hoverColor:d,navItemTextColor:u,navItemHoverColor:f,navItemBgHover:m,navItemActiveColor:g,sticky:y=false,fixed:b=false,showSearch:h=false,onSearch:x,searchPlaceholder:L="Search...",className:C,containerClassName:S}){let[v,R]=useState(false),[N,M]=useState(null),[P,E]=useState(""),W=()=>{R(!v);},T=D=>{M(N===D?null:D);},O=D=>{D.preventDefault(),x&&x(P);},H=p(y&&"sticky top-0 z-50",b&&"fixed top-0 left-0 right-0 z-50"),k=p(s==="default"&&!i&&"bg-neutral text-white",s==="transparent"&&!i&&"bg-transparent",s==="bordered"&&!i&&"bg-white border-b border-gray-200 text-gray-900 dark:bg-gray-900 dark:border-gray-800 dark:text-gray-100",s==="shadow"&&!i&&"bg-white shadow-md text-gray-900 dark:bg-gray-900 dark:text-gray-100"),z=p(l==="sm"&&"py-2",l==="md"&&"py-4",l==="lg"&&"py-6"),A=i||"",I=c||"",X=d||"",$=p(H,k,z,A,I,C),K=(D,B,w=false)=>{let G=D.children&&D.children.length>0,q=N===B,j=p("px-4 py-2 transition-colors flex items-center gap-2",w?"block w-full text-left":"inline-flex",D.active&&"font-semibold border-b-2",D.active&&(g||"border-current"),u||(s==="default"||s==="transparent"?"text-gray-300":"text-gray-600 dark:text-gray-300"),f||X||(s==="default"||s==="transparent"?"hover:text-white":"hover:text-blue-600 dark:hover:text-blue-400"),m||"");if(G)return jsxs("div",{className:w?"w-full":"relative",children:[jsxs("button",{type:"button",onClick:()=>T(B),className:j,children:[D.icon&&jsx("span",{className:"w-5 h-5",children:D.icon}),jsx("span",{children:D.label}),D.badge&&jsx("span",{className:"bg-red-500 text-white text-xs px-2 py-0.5 rounded-full",children:D.badge}),jsx("svg",{className:p("w-4 h-4 transition-transform",q&&"rotate-180"),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]}),q&&jsx("div",{className:p("bg-white shadow-lg rounded-lg overflow-hidden dark:bg-gray-800 dark:shadow-black/40",w?"mt-2 mb-2":"absolute top-full left-0 mt-1 min-w-[200px]"),children:D.children?.map(F=>jsx("a",{href:F.href,onClick:F.onClick,target:F.external?"_blank":void 0,rel:F.external?"noopener noreferrer":void 0,className:"block px-4 py-2 text-gray-700 hover:bg-gray-100 transition-colors dark:text-gray-200 dark:hover:bg-gray-700",children:jsxs("div",{className:"flex items-center gap-2",children:[F.icon&&jsx("span",{className:"w-5 h-5",children:F.icon}),jsx("span",{children:F.label}),F.badge&&jsx("span",{className:"bg-red-500 text-white text-xs px-2 py-0.5 rounded-full ml-auto",children:F.badge}),F.external&&jsx("svg",{className:"w-4 h-4 ml-auto",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})})]})},F.href??F.label))})]},D.href??D.label);let U=jsxs(Fragment,{children:[D.icon&&jsx("span",{className:"w-5 h-5",children:D.icon}),jsx("span",{children:D.label}),D.badge&&jsx("span",{className:"bg-red-500 text-white text-xs px-2 py-0.5 rounded-full",children:D.badge}),D.external&&jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})})]});return D.onClick?jsx("button",{type:"button",onClick:D.onClick,className:j,children:U},D.href??D.label):jsx("a",{href:D.href,target:D.external?"_blank":void 0,rel:D.external?"noopener noreferrer":void 0,className:j,children:U},D.href??D.label)};return jsxs("header",{className:$,children:[jsxs("nav",{className:p("container mx-auto flex items-center justify-between px-4",S),children:[e&&jsx("div",{className:"flex items-center",children:t?jsx("a",{href:t,onClick:r,className:"flex items-center hover:opacity-80 transition-opacity",children:e}):jsx("div",{className:"flex items-center",children:e})}),h&&jsx("form",{onSubmit:O,className:"hidden md:flex flex-1 max-w-md mx-8",children:jsx("input",{type:"search","aria-label":L,value:P,onChange:D=>E(D.target.value),placeholder:L,className:"w-full px-4 py-2 rounded-lg border border-gray-300 focus:outline-none focus:ring-2 focus:ring-blue-500 text-gray-900 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-100 dark:placeholder-gray-500"})}),jsx("div",{className:"hidden md:flex items-center gap-2",children:n.map((D,B)=>K(D,B,false))}),(o||a)&&jsxs("div",{className:"hidden md:flex items-center gap-2 ml-4",children:[o,a]}),n.length>0&&jsx("div",{className:"md:hidden",children:jsx("button",{type:"button",className:p("inline-flex rounded-lg border-2 p-2 w-10 h-10 justify-center transition-colors focus:outline-none",s==="default"||s==="transparent"?"text-gray-300 hover:text-white":"text-gray-600 hover:text-gray-900 dark:text-gray-300 dark:hover:text-gray-100"),onClick:W,"aria-label":"Toggle menu","aria-expanded":v,children:jsx("svg",{className:"w-5 h-5","aria-hidden":"true",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 17 14",children:jsx("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M1 1h15M1 7h15M1 13h15"})})})})]}),v&&n.length>0&&jsx("div",{className:p("md:hidden border-t animate-in slide-in-from-top duration-300",s==="default"||s==="transparent"?"border-gray-700":"border-gray-200 dark:border-gray-800"),children:jsxs("div",{className:"flex flex-col py-2 px-4",children:[h&&jsx("form",{onSubmit:O,className:"mb-4",children:jsx("input",{type:"search","aria-label":L,value:P,onChange:D=>E(D.target.value),placeholder:L,className:"w-full px-4 py-2 rounded-lg border border-gray-300 focus:outline-none focus:ring-2 focus:ring-blue-500 text-gray-900 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-100 dark:placeholder-gray-500"})}),n.map((D,B)=>K(D,B,true)),(o||a)&&jsxs("div",{className:"flex flex-col gap-2 mt-4 pt-4 border-t border-gray-700",children:[o,a]})]})})]})}var Rv=jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[jsx("path",{d:"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"}),jsx("path",{d:"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"})]}),Pv=jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[jsx("path",{d:"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z"}),jsx("polyline",{points:"17 21 17 13 7 13 7 21"}),jsx("polyline",{points:"7 3 7 8 15 8"})]}),Tv=jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]}),Dv=jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[jsx("polyline",{points:"1 4 1 10 7 10"}),jsx("path",{d:"M3.51 15a9 9 0 1 0 2.13-9.36L1 10"})]}),Ev=jsxs("svg",{className:"animate-spin h-4 w-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10"}),jsx("path",{className:"opacity-75",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z",fill:"currentColor"})]}),Lv={xs:"w-4 h-4 text-[10px]",sm:"w-5 h-5 text-xs",md:"w-6 h-6 text-sm",lg:"w-7 h-7 text-base"},Mv={top:"bottom-full left-1/2 -translate-x-1/2 mb-2",bottom:"top-full left-1/2 -translate-x-1/2 mt-2",left:"right-full top-1/2 -translate-y-1/2 mr-2",right:"left-full top-1/2 -translate-y-1/2 ml-2"},Iv={sm:"w-56",md:"w-72",lg:"w-96",xl:"w-[32rem]"},Av=[Sv],zv={h1:({...e})=>jsx("h1",{className:"text-xl font-bold mb-2 text-gray-900 dark:text-gray-100",...e}),h2:({...e})=>jsx("h2",{className:"text-lg font-semibold mt-4 mb-2 text-gray-900 dark:text-gray-100",...e}),h3:({...e})=>jsx("h3",{className:"text-base font-semibold mt-3 mb-1 text-gray-900 dark:text-gray-100",...e}),p:({...e})=>jsx("p",{className:"my-1 text-gray-700 dark:text-gray-300",...e}),ul:({...e})=>jsx("ul",{className:"list-disc list-inside space-y-1 my-2 text-gray-700 dark:text-gray-300",...e}),ol:({...e})=>jsx("ol",{className:"list-decimal list-inside space-y-1 my-2 text-gray-700 dark:text-gray-300",...e}),code:({className:e,children:t,...r})=>!e?.includes("language-")?jsx("code",{className:"bg-gray-100 dark:bg-gray-800 px-1.5 py-0.5 rounded text-sm font-mono text-gray-900 dark:text-gray-100",...r,children:t}):jsx("code",{className:"block bg-gray-100 dark:bg-gray-800 rounded-lg p-3 my-2 overflow-x-auto text-sm font-mono text-gray-900 dark:text-gray-100",...r,children:t}),pre:({...e})=>jsx("pre",{className:"my-2",...e}),a:({...e})=>jsx("a",{className:"text-blue-600 dark:text-blue-400 hover:underline",...e}),strong:({...e})=>jsx("strong",{className:"font-semibold text-gray-900 dark:text-gray-100",...e}),em:({...e})=>jsx("em",{className:"italic",...e}),blockquote:({...e})=>jsx("blockquote",{className:"border-l-4 border-gray-300 dark:border-gray-600 pl-4 my-2 italic text-gray-600 dark:text-gray-400",...e})};function ym({content:e,markdown:t=false,position:r="bottom",size:n="sm",className:o="",visible:a=true,editable:s=false,onSave:l,onReset:i,width:c="md",title:d,markdownEditor:u,markdownEditorUnavailableLabel:f}){let m=Ve(),[g,y]=useState(false),[b,h]=useState(false),[x,L]=useState(""),[C,S]=useState(false),[v,R]=useState(null),N=useRef(null),M=useRef(null),P=useRef(null),E=useRef(null);useEffect(()=>{if(!g)return;let z=I=>{N.current&&!N.current.contains(I.target)&&M.current&&!M.current.contains(I.target)&&(b||y(false));},A=I=>{I.key==="Escape"&&(b?(h(false),L("")):y(false));};return document.addEventListener("mousedown",z),document.addEventListener("keydown",A),()=>{document.removeEventListener("mousedown",z),document.removeEventListener("keydown",A);}},[g,b]),useEffect(()=>{b&&P.current&&P.current.focus();},[b]),useEffect(()=>()=>{E.current&&clearTimeout(E.current);},[]);let W=useCallback(()=>{L(typeof e=="string"?e:""),h(true),R(null);},[e]),T=useCallback(()=>{h(false),L(""),R(null);},[]),O=useCallback(async()=>{if(!l){R({type:"error",text:"Aucune fonction de sauvegarde fournie"});return}S(true);try{await l(x)?(R({type:"success",text:"Sauvegard\xE9 avec succ\xE8s !"}),h(!1),E.current&&clearTimeout(E.current),E.current=setTimeout(()=>R(null),2e3)):R({type:"error",text:"Erreur lors de la sauvegarde"});}catch{R({type:"error",text:"Erreur lors de la sauvegarde"});}finally{S(false);}},[x,l]),H=useCallback(async()=>{if(i&&confirm("\xCAtes-vous s\xFBr de vouloir r\xE9initialiser ce contenu ?")){S(true);try{await i()?(R({type:"success",text:"R\xE9initialis\xE9 avec succ\xE8s !"}),h(!1),E.current&&clearTimeout(E.current),E.current=setTimeout(()=>R(null),2e3)):R({type:"error",text:"Erreur lors de la r\xE9initialisation"});}catch{R({type:"error",text:"Erreur lors de la r\xE9initialisation"});}finally{S(false);}}},[i]),k=e;return a?jsxs("div",{className:"relative inline-flex items-center",children:[jsx("button",{type:"button",ref:N,onClick:()=>y(!g),className:`
|
|
4
|
+
${Lv[n]}
|
|
4
5
|
inline-flex items-center justify-center
|
|
5
6
|
rounded-full border border-gray-300 dark:border-gray-600
|
|
6
7
|
bg-white dark:bg-gray-800
|
|
@@ -12,20 +13,20 @@ import*as Ri from'react';import Ri__default,{createContext,forwardRef,memo,useId
|
|
|
12
13
|
transition-all duration-150
|
|
13
14
|
focus:outline-none focus:ring-2 focus:ring-blue-500/50
|
|
14
15
|
${o}
|
|
15
|
-
`,"aria-label":"Afficher l'aide","aria-expanded":
|
|
16
|
-
absolute z-50 ${
|
|
17
|
-
${
|
|
16
|
+
`,"aria-label":"Afficher l'aide","aria-expanded":g,children:jsx("span",{className:"font-medium",children:"?"})}),g&&jsxs("div",{ref:M,className:`
|
|
17
|
+
absolute z-50 ${Mv[r]}
|
|
18
|
+
${Iv[c]} max-h-[80vh] overflow-hidden flex flex-col
|
|
18
19
|
bg-white dark:bg-gray-900
|
|
19
20
|
border border-gray-200 dark:border-gray-700
|
|
20
21
|
rounded-xl shadow-xl
|
|
21
22
|
text-sm text-gray-700 dark:text-gray-300
|
|
22
23
|
animate-in fade-in-0 zoom-in-95 duration-150
|
|
23
|
-
`,role:"tooltip",children:[(d||s)&&jsxs("div",{className:"flex items-center justify-between px-4 py-2 border-b border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800/50",children:[jsx("div",{className:"flex items-center gap-2",children:d&&jsx("h3",{className:"text-sm font-semibold",children:d})}),s&&jsx("div",{className:"flex items-center gap-1",children:v?jsxs(Fragment,{children:[jsx("button",{type:"button",onClick:T,disabled:h,className:"p-1.5 rounded-md hover:bg-green-100 dark:hover:bg-green-900/30 text-green-600 dark:text-green-400 transition-colors disabled:opacity-50 cursor-pointer",title:"Sauvegarder",children:h?Gy:$y}),jsx("button",{type:"button",onClick:M,className:"p-1.5 rounded-md hover:bg-gray-200 dark:hover:bg-gray-700 text-gray-500 hover:text-gray-700 dark:hover:text-gray-300 transition-colors cursor-pointer",title:"Annuler",children:_y}),i&&jsx("button",{type:"button",onClick:P,disabled:h,className:"p-1.5 rounded-md hover:bg-orange-100 dark:hover:bg-orange-900/30 text-orange-600 dark:text-orange-400 transition-colors disabled:opacity-50 cursor-pointer",title:"R\xE9initialiser",children:Xy})]}):jsx("button",{type:"button",onClick:W,className:"p-1.5 rounded-md hover:bg-gray-200 dark:hover:bg-gray-700 text-gray-500 hover:text-gray-700 dark:hover:text-gray-300 transition-colors cursor-pointer",title:"Modifier",children:Oy})})]}),f&&jsx("div",{className:`px-4 py-2 text-xs ${f.type==="success"?"bg-green-50 dark:bg-green-900/20 text-green-600 dark:text-green-400":"bg-red-50 dark:bg-red-900/20 text-red-600 dark:text-red-400"}`,children:f.text}),jsx("div",{className:"flex-1 overflow-y-auto p-4",children:v?t?u?jsx(u,{value:y,onChange:z,placeholder:"\xC9crivez en Markdown..."}):jsx("p",{role:"alert",className:"p-3 text-sm text-gray-500 dark:text-gray-400",children:b??m.markdownEditorUnavailable}):jsx("div",{className:"space-y-2",children:jsx("textarea",{ref:I,"aria-label":"Contenu d'aide",value:y,onChange:D=>z(D.target.value),className:"w-full h-64 p-3 text-sm bg-gray-50 dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg resize-none focus:outline-none focus:ring-2 focus:ring-blue-500/50 text-gray-700 dark:text-gray-300 font-mono",placeholder:"\xC9crivez votre contenu d'aide..."})}):typeof x=="string"?jsx("div",{className:"prose prose-sm dark:prose-invert max-w-none",children:t?jsx(By,{remarkPlugins:qy,components:jy,children:x}):jsx("div",{dangerouslySetInnerHTML:{__html:Vy.sanitize(x)}})}):x})]})]}):null}function Zy({children:e,content:t,markdown:r=false,position:n="bottom",size:o="sm",visible:a=true,editable:s=false,onSave:l,onReset:i,width:c="md",title:d,className:u,markdownEditor:b,markdownEditorUnavailableLabel:m}){return jsxs("div",{className:"inline-flex items-center gap-2.5",children:[e,jsx(du,{content:t,markdown:r,position:n,size:o,visible:a,editable:s,onSave:l,onReset:i,width:c,title:d,className:u,markdownEditor:b,markdownEditorUnavailableLabel:m})]})}var rx={"16/9":"aspect-[16/9]","4/3":"aspect-[4/3]","1/1":"aspect-square",auto:""},nx=e=>new Promise((t,r)=>{let n=new FileReader;n.onload=o=>{let a=o.target?.result;t(a);},n.onerror=()=>{r(new Error("Erreur lors de la lecture du fichier"));},n.readAsDataURL(e);});function ox({value:e,onChange:t,onUpload:r,label:n="Image",maxSize:o=5*1024*1024,accept:a="image/*",helpText:s,disabled:l=false,className:i="",showUrlInput:c=true,urlPlaceholder:d="https://example.com/image.jpg",aspectRatio:u="16/9"}){let[b,m]=useState(false),[p,C]=useState(null),v=useRef(null),k=useId(),y=useMemo(()=>(o/(1024*1024)).toFixed(0),[o]),z=`Formats accept\xE9s : ${a==="image/*"?"JPG, PNG, GIF, WebP":a} (max ${y}MB)`,h=useCallback(async E=>{let I=E.target.files?.[0];if(I){if(!I.type.startsWith("image/")){C("Le fichier doit \xEAtre une image");return}if(I.size>o){C(`Le fichier est trop volumineux (max ${y}MB)`);return}m(true),C(null);try{if(r){let w=await r(I);t(w);}else {let w=await nx(I);t(w);}v.current&&(v.current.value="");}catch(w){console.error("Upload error:",w),C(w instanceof Error?w.message:"Erreur lors de l'upload");}finally{m(false);}}},[o,y,t,r]),R=useCallback(()=>{t(""),v.current&&(v.current.value=""),C(null);},[t]),f=useCallback(E=>{t(E),C(null);},[t]),N=useCallback(()=>{v.current?.click();},[]),L=useCallback(E=>{f(E.target.value);},[f]);return jsxs("div",{className:`space-y-2 ${i}`,children:[n&&jsx("label",{className:"block text-sm font-semibold text-gray-700 dark:text-gray-300",children:n}),e&&jsxs("div",{className:"relative w-full overflow-hidden rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800/50",children:[jsx("div",{className:`relative ${rx[u]} ${u==="auto"?"max-h-64":""} flex items-center justify-center`,children:jsx("img",{src:e,alt:"Aper\xE7u",className:"w-full h-full object-contain"})}),jsx("button",{type:"button",onClick:R,disabled:l,className:"absolute top-2 right-2 bg-red-500 text-white rounded-full w-6 h-6 flex items-center justify-center text-xs hover:bg-red-600 transition-colors cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed",title:"Supprimer l'image",children:"\xD7"})]}),jsxs("div",{className:"flex gap-2",children:[jsx("input",{ref:v,type:"file","aria-label":"Choisir une image",accept:a,onChange:h,className:"hidden",disabled:l||b}),jsx("button",{type:"button",onClick:N,disabled:l||b,className:"px-3 py-2 text-sm border border-gray-300 dark:border-gray-600 rounded-md hover:bg-gray-50 dark:hover:bg-gray-700 disabled:opacity-50 disabled:cursor-not-allowed transition-colors cursor-pointer bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200",children:b?"\u23F3 Upload...":e?"\u{1F4C1} Changer l'image":"\u{1F4C1} Choisir une image"})]}),c&&jsxs("div",{className:"space-y-1",children:[jsx("label",{htmlFor:k,className:"block text-xs text-gray-500 dark:text-gray-400",children:"Ou URL directe :"}),jsx("input",{id:k,type:"url",value:e||"",onChange:L,placeholder:d,disabled:l,className:"w-full px-3 py-2 text-sm border border-gray-300 dark:border-gray-600 rounded-md focus:ring-2 focus:ring-blue-500 focus:border-blue-500 dark:bg-gray-800 dark:text-gray-200 disabled:opacity-50 disabled:cursor-not-allowed"})]}),p&&jsxs("div",{className:"text-red-600 dark:text-red-400 text-sm bg-red-50 dark:bg-red-900/20 p-2 rounded border border-red-200 dark:border-red-800",children:["\u274C ",p]}),jsx("div",{className:"text-xs text-gray-500 dark:text-gray-400",children:s||z})]})}var Ls={default:"bg-gray-400",primary:"bg-blue-600",success:"bg-green-500",warning:"bg-yellow-400",error:"bg-red-500",info:"bg-cyan-500",dark:"bg-gray-900 dark:bg-gray-700",purple:"bg-purple-600",indigo:"bg-indigo-600",teal:"bg-teal-500"},cl={xs:"w-2 h-2",sm:"w-2.5 h-2.5",md:"w-3 h-3",lg:"w-3.5 h-3.5",xl:"w-4 h-4"},ax={xs:"min-w-4 h-4 text-[10px] px-1",sm:"min-w-5 h-5 text-xs px-1",md:"min-w-5 h-5 text-xs px-1.5",lg:"min-w-6 h-6 text-sm px-1.5",xl:"min-w-7 h-7 text-sm px-2"},dl={"top-left":"top-0 left-0 -translate-x-1/2 -translate-y-1/2","top-center":"top-0 left-1/2 -translate-x-1/2 -translate-y-1/2","top-right":"top-0 right-0 translate-x-1/2 -translate-y-1/2","center-left":"top-1/2 left-0 -translate-x-1/2 -translate-y-1/2",center:"top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2","center-right":"top-1/2 right-0 translate-x-1/2 -translate-y-1/2","bottom-left":"bottom-0 left-0 -translate-x-1/2 translate-y-1/2","bottom-center":"bottom-0 left-1/2 -translate-x-1/2 translate-y-1/2","bottom-right":"bottom-0 right-0 translate-x-1/2 translate-y-1/2"},ul={"top-left":"top-0 left-0","top-center":"top-0 left-1/2 -translate-x-1/2","top-right":"top-0 right-0","center-left":"top-1/2 left-0 -translate-y-1/2",center:"top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2","center-right":"top-1/2 right-0 -translate-y-1/2","bottom-left":"bottom-0 left-0","bottom-center":"bottom-0 left-1/2 -translate-x-1/2","bottom-right":"bottom-0 right-0"};function sx(e,t){return e>t?`${t}+`:`${e}`}function ix({color:e="primary",size:t="md",placement:r="top-right",bordered:n=false,borderColor:o,pulse:a=false,offset:s=false,className:l,...i}){return jsx("span",{"data-testid":"indicator",className:g("absolute z-10 rounded-full",Ls[e],cl[t],s?ul[r]:dl[r],n&&g("ring-2 ring-white dark:ring-gray-900",o),a&&"animate-pulse",l),...i})}function lx({color:e="error",size:t="md",placement:r="top-right",count:n=0,maxCount:o=99,bordered:a=false,borderColor:s,pulse:l=false,offset:i=false,className:c,...d}){return jsx("span",{"data-testid":"indicator",className:g("absolute z-10 inline-flex items-center justify-center rounded-full font-semibold text-white",Ls[e],ax[t],i?ul[r]:dl[r],a&&g("ring-2 ring-white dark:ring-gray-900",s),l&&"animate-pulse",c),...d,children:sx(n,o)})}function cx({color:e="success",size:t="md",placement:r="bottom-right",bordered:n=true,borderColor:o,pulse:a=false,offset:s=false,className:l,...i}){return jsx("span",{"data-testid":"indicator",className:g("absolute z-10 rounded-full",Ls[e],cl[t],s?ul[r]:dl[r],n&&g("ring-2 ring-white dark:ring-gray-900",o),a&&"animate-pulse",l),...i})}function dx({color:e="primary",size:t="sm",label:r,className:n,...o}){return jsxs("span",{"data-testid":"indicator",className:g("inline-flex items-center gap-2",n),...o,children:[jsx("span",{className:g("rounded-full shrink-0",Ls[e],cl[t])}),r?jsx("span",{className:"text-sm text-gray-700 dark:text-gray-300",children:r}):null]})}function mu({variant:e="dot",children:t,...r}){if(e==="legend")return jsx(dx,{...r});let n=(()=>{switch(e){case "count":return jsx(lx,{...r});case "status":return jsx(cx,{...r});default:return jsx(ix,{...r})}})();return t?jsxs("div",{className:"relative inline-flex",children:[t,n]}):n}mu.displayName="Indicator";var ux={xs:"text-xs",sm:"text-sm",md:"text-sm",lg:"text-base",xl:"text-lg"},pu={xs:"w-3 h-3",sm:"w-3.5 h-3.5",md:"w-4 h-4",lg:"w-4.5 h-4.5",xl:"w-5 h-5"},mx={normal:"font-normal",medium:"font-medium",semibold:"font-semibold",bold:"font-bold"},gx={default:{default:"text-gray-700 dark:text-gray-200",light:"text-gray-500 dark:text-gray-400",strong:"text-gray-900 dark:text-white"},primary:{default:"text-blue-600 dark:text-blue-400",light:"text-blue-400 dark:text-blue-300",strong:"text-blue-700 dark:text-blue-300"},secondary:{default:"text-purple-600 dark:text-purple-400",light:"text-purple-400 dark:text-purple-300",strong:"text-purple-700 dark:text-purple-300"},success:{default:"text-green-600 dark:text-green-400",light:"text-green-400 dark:text-green-300",strong:"text-green-700 dark:text-green-300"},warning:{default:"text-yellow-600 dark:text-yellow-400",light:"text-yellow-400 dark:text-yellow-300",strong:"text-yellow-700 dark:text-yellow-300"},error:{default:"text-red-600 dark:text-red-400",light:"text-red-400 dark:text-red-300",strong:"text-red-700 dark:text-red-300"},info:{default:"text-cyan-600 dark:text-cyan-400",light:"text-cyan-400 dark:text-cyan-300",strong:"text-cyan-700 dark:text-cyan-300"},muted:{default:"text-gray-500 dark:text-gray-400",light:"text-gray-400 dark:text-gray-500",strong:"text-gray-600 dark:text-gray-300"}};function bu({children:e,size:t="md",color:r="default",variant:n="default",weight:o="medium",textColor:a,required:s=false,requiredIndicator:l="*",optional:i=false,optionalText:c="(optional)",tooltip:d,icon:u,endIcon:b,disabled:m=false,truncate:p=false,as:C="label",className:v,...k}){let y=C,z=g("inline-flex items-center gap-1.5 transition-colors",ux[t],mx[o]),h=a||gx[r][n];return jsxs(y,{className:g(z,h,m?"opacity-50 cursor-not-allowed":"cursor-default",v),title:d,"aria-disabled":m,...k,children:[u&&jsx("span",{className:g("shrink-0",pu[t]),children:u}),jsxs("span",{className:g(p&&"truncate"),children:[e,s&&jsx("span",{className:"text-red-500 ml-0.5","aria-hidden":"true",children:l}),s&&jsx("span",{className:"sr-only",children:"(required)"})]}),i&&!s&&jsx("span",{className:"text-gray-400 dark:text-gray-500 font-normal",children:c}),b&&jsx("span",{className:g("shrink-0",pu[t]),children:b})]})}bu.displayName="Label";var bx=2,hx=2,yx=12,xx=16,hu="cell:",yu=false,vx=memo(function({cells:t,radius:r}){return jsx("g",{children:t.map(n=>jsxs("g",{children:[jsx("rect",{x:n.x,y:n.y,width:n.width,height:n.height,rx:r,fill:n.missing?void 0:n.color,className:n.missing?"fill-gray-100 dark:fill-gray-800":void 0}),n.label?jsx("text",{x:n.x+n.width/2,y:n.y+n.height/2,textAnchor:"middle",dominantBaseline:"central",className:g("text-[10px] [font-variant-numeric:tabular-nums]",n.onDark?"fill-gray-50 dark:fill-gray-900":"fill-gray-900 dark:fill-gray-50"),children:n.label}):null]},n.key))})});function kx({width:e,height:t,columns:r,rows:n,lookup:o,colorScale:a,x:s,y:l,size:i,cellGap:c,cellRadius:d,showValues:u,tooltip:b,plotLabel:m,formatValue:p,formatX:C,formatY:v,onCellClick:k}){let[y,z]=useState(null),h=useMemo(()=>{let I=r.map((A,V)=>C(A,V)),w=n.map((A,V)=>v(A,V)),W={top:8,right:8,bottom:s.hidden?8:s.height??24+(s.label?16:0),left:l.hidden?8:l.height??kr(w)+yx+(l.label?16:0)},M=Math.max(0,e-W.left-W.right),T=Math.max(0,t-W.top-W.bottom),P=hn(r.map((A,V)=>V),[0,M],{paddingInner:0,paddingOuter:0}),x=hn(n.map((A,V)=>V),[0,T],{paddingInner:0,paddingOuter:0}),D=Math.max(0,P.bandwidth-c),S=Math.max(0,x.bandwidth-c),B=[];n.forEach((A,V)=>{r.forEach((Y,X)=>{let j=o.get(`${St(Y)}|${St(A)}`)?.value??null,O=null;if(u&&j!==null&&S>=xx){let K=p(j);vr(K,10)+6<=D&&(O=K);}B.push({key:`${X}-${V}`,column:X,row:V,x:P(X)+c/2,y:x(V)+c/2,width:D,height:S,color:j===null?"transparent":a(j),label:O,onDark:j!==null&&a.onDark(j),missing:j===null});});});let H=sa(I.length,M,kr(I)),$=sa(w.length,T,15),_=s.hidden?[]:I.map((A,V)=>({value:r[V],offset:P.center(V),label:A})).filter((A,V)=>V%H===0),F=l.hidden?[]:w.map((A,V)=>({value:n[V],offset:x.center(V),label:A})).filter((A,V)=>V%$===0);return {margin:W,innerWidth:M,innerHeight:T,columnScale:P,rowScale:x,cells:B,columnTicks:_,rowTicks:F}},[r,n,o,a,s,l,e,t,c,u,p,C,v]),R=useCallback((I,w)=>{let W=r[I],M=n[w],T=o.get(`${St(W)}|${St(M)}`),P=T?.value??null;return {x:W,y:M,xLabel:C(W,I),yLabel:v(M,w),value:P,formattedValue:P===null?"\u2014":p(P),color:P===null?"transparent":a(P),datum:T?.datum}},[r,n,o,a,p,C,v]),f=useCallback(I=>{if(b===false||r.length===0||n.length===0)return;let w=I.currentTarget.getBoundingClientRect(),W=I.clientX-w.left-h.margin.left,M=I.clientY-w.top-h.margin.top,T=Math.floor(W/(h.columnScale.step||1)),P=Math.floor(M/(h.rowScale.step||1));if(T<0||T>=r.length||P<0||P>=n.length){z(null);return}z(x=>x?.column===T&&x.row===P?x:{column:T,row:P});},[b,r.length,n.length,h.margin,h.columnScale,h.rowScale]),N=useCallback(I=>{if(r.length===0||n.length===0)return;let w=y??{column:0,row:0},W;switch(I.key){case "ArrowRight":W={...w,column:Math.min(r.length-1,w.column+1)};break;case "ArrowLeft":W={...w,column:Math.max(0,w.column-1)};break;case "ArrowDown":W={...w,row:Math.min(n.length-1,w.row+1)};break;case "ArrowUp":W={...w,row:Math.max(0,w.row-1)};break;case "Home":W={...w,column:0};break;case "End":W={...w,column:r.length-1};break;case "Escape":W=null;break;default:W=void 0;}W!==void 0&&(I.preventDefault(),z(W));},[r.length,n.length,y]),L=useCallback(()=>{!k||!y||k(R(y.column,y.row));},[k,y,R]),E=y?R(y.column,y.row):null;return jsxs(Fragment,{children:[jsxs("svg",{width:e,height:t,role:"img","aria-label":m??`${s.label??s.key} / ${l.label??l.key}`,tabIndex:0,className:"touch-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500",onPointerMove:f,onPointerLeave:()=>z(null),onKeyDown:N,onBlur:()=>z(null),onClick:L,children:[jsxs("g",{transform:`translate(${h.margin.left}, ${h.margin.top})`,children:[jsx(vx,{cells:h.cells,radius:d}),y?jsx("rect",{x:h.columnScale(y.column)+c/2,y:h.rowScale(y.row)+c/2,width:Math.max(0,h.columnScale.bandwidth-c),height:Math.max(0,h.rowScale.bandwidth-c),rx:d,fill:"none",strokeWidth:2,className:"stroke-gray-900 dark:stroke-white","aria-hidden":"true"}):null]}),jsx("g",{transform:`translate(${h.margin.left}, ${h.margin.top+h.innerHeight})`,children:s.hidden?null:jsx(_e,{orientation:"bottom",ticks:h.columnTicks,length:h.innerWidth,showLine:false,tickSize:0,label:s.label,size:i})}),jsx("g",{transform:`translate(${h.margin.left}, ${h.margin.top})`,children:l.hidden?null:jsx(_e,{orientation:"left",ticks:h.rowTicks,length:h.innerHeight,showLine:false,tickSize:0,label:l.label,size:i})})]}),y&&E&&b!==false?jsx(gt,{x:h.margin.left+h.columnScale.center(y.column),y:h.margin.top+h.rowScale.center(y.row),containerWidth:e,children:typeof b=="function"?b(E):jsxs("div",{className:"flex flex-col gap-1",children:[jsxs("div",{className:"font-medium text-gray-900 dark:text-gray-100",children:[E.yLabel," \xB7 ",E.xLabel]}),jsxs("div",{className:"flex items-center gap-2",children:[jsx("span",{className:"h-2.5 w-2.5 shrink-0 rounded-sm",style:{backgroundColor:E.color},"aria-hidden":"true"}),jsx("span",{className:"font-semibold text-gray-900 [font-variant-numeric:tabular-nums] dark:text-gray-100",children:E.formattedValue})]})]})}):null]})}function xu(e,t,r){if(r)return r;let n=new Map;return e.forEach((o,a)=>{let s=mt(o,t,a),l=St(s);n.has(l)||n.set(l,s);}),[...n.values()]}function Cx({data:e,x:t,y:r,value:n,format:o,domain:a,scale:s="sequential",center:l=0,steps:i,colors:c,xDomain:d,yDomain:u,cellGap:b=bx,cellRadius:m=hx,showValues:p=false,height:C=280,width:v,size:k="md",legend:y=true,legendLabel:z,tooltip:h=true,tableView:R=false,title:f,description:N,loading:L=false,emptyState:E,locale:I,plotLabel:w,onCellClick:W,className:M,...T}){i!==void 0&&i>es&&!yu&&(yu=true,console.warn(`[@synertech/ui] A Heatmap was cut into ${i} colour classes. Past ${es} two neighbouring cells stop being tellable apart: leave \`steps\` unset and let the ramp stay continuous.`));let P=useMemo(()=>xu(e,t.key,d),[e,t.key,d]),x=useMemo(()=>xu(e,r.key,u),[e,r.key,u]),D=useMemo(()=>{let Y=new Map;return e.forEach((X,G)=>{let j=Ee(X,n);if(j===null)return;let O=mt(X,t.key,G),K=mt(X,r.key,G);Y.set(`${St(O)}|${St(K)}`,{value:j,datum:X});}),Y},[e,t.key,r.key,n]),S=useMemo(()=>o??(Y=>rt(Y,I)),[o,I]),B=useMemo(()=>t.format??(Y=>Ke(Y,I)),[t.format,I]),H=useMemo(()=>r.format??(Y=>Ke(Y,I)),[r.format,I]),$=useMemo(()=>{let Y=a??Kt([...D.values()].map(X=>X.value))??[0,1];return s==="diverging"?Co(Y,{center:l,steps:i,colors:c}):ca(Y,{steps:i,colors:c})},[a,D,s,l,i,c]),_=useMemo(()=>x.map(Y=>{let X={[r.key]:Y};return P.forEach(G=>{X[`${hu}${St(G)}`]=D.get(`${St(G)}|${St(Y)}`)?.value??null;}),X}),[x,P,D,r.key]),F=useMemo(()=>P.map((Y,X)=>({key:`${hu}${St(Y)}`,label:B(Y,X)})),[P,B]),A=y!==false,V=typeof y=="string"?y:"bottom";return jsx(ut,{title:f,description:N,height:C,width:v,size:k,loading:L,empty:D.size===0,emptyState:E,tableView:R,legendPosition:V,legend:A?jsx(fa,{scale:$,label:z,format:S,size:k,locale:I}):void 0,table:R?jsx(It,{data:_,series:F,xKey:r.key,xLabel:r.label??r.key,formatX:H,formatValue:S,caption:typeof f=="string"?f:void 0}):void 0,className:M,...T,children:({width:Y})=>jsx(kx,{width:Y,height:C,columns:P,rows:x,lookup:D,colorScale:$,x:t,y:r,size:k,cellGap:b,cellRadius:m,showValues:p,tooltip:h,plotLabel:w,formatValue:S,formatX:B,formatY:H,onCellClick:W})})}var Sx=24,Rx=10,Tx=10,Px=memo(function({lines:t,showMarkers:r}){return jsx("g",{children:t.map(n=>jsxs("g",{children:[n.solid?jsx("path",{d:n.solid,fill:"none",stroke:n.color,strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}):null,n.dashed?jsx("path",{d:n.dashed,fill:"none",stroke:n.color,strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",strokeDasharray:"5 4"}):null,r?n.markers.map(o=>jsx("circle",{cx:o.x,cy:o.y,r:3,fill:n.color,strokeWidth:2,className:"stroke-white dark:stroke-gray-800"},`${o.x}-${o.y}`)):null]},n.key))})});function Ex({width:e,height:t,data:r,resolvedSeries:n,x:o,y:a,grid:s,size:l,curve:i,forecastFrom:c,forecastLabel:d,markers:u,connectNulls:b,referenceLines:m,margin:p,tooltip:C,onPointClick:v,plotLabel:k,formatValue:y,formatX:z}){let[h,R]=useState(null),f=useMemo(()=>{let T=n.filter($=>!$.hidden),P=Qt({width:e,height:t,data:r,x:o,y:a,bounds:Kt(ur(r,T.map($=>$.key))),margin:p,placement:"point",formatValue:y,formatX:z,extraTop:d?Rx:0}),x=P.categoryCenters,D=P.valueScale,S=c===void 0?-1:P.xValues.findIndex($=>St($)===St(c)),B=T.map($=>{let _=r.map((V,Y)=>{let X=Ee(V,$.key);return {x:x[Y],y:X===null?Number.NaN:D(X),defined:X!==null}}),F={connectNulls:b},A=S>=0;return {key:$.key,color:$.color,solid:$.dashed?"":$r(A?_.slice(0,S+1):_,i,F),dashed:$.dashed?$r(_,i,F):A?$r(_.slice(S),i,F):"",markers:_.filter(V=>V.defined!==false)}}),H=r.length>1?P.innerWidth/(r.length-1):0;return {visible:T,xValues:P.xValues,xPositions:x,xTicks:P.categoryTicks,yTicks:P.valueTicks,yScale:D,innerWidth:P.innerWidth,innerHeight:P.innerHeight,margin:P.margin,lines:B,forecastIndex:S,showMarkers:u==="always"||u==="auto"&&H>=Sx&&r.length>1}},[r,n,o,a,e,t,p,i,b,c,d,u,y,z]),N=useCallback(T=>f.visible.map(P=>{let x=Ee(r[T],P.key);return {seriesKey:P.key,seriesLabel:Xt(P),color:P.color,value:x,formattedValue:x===null?"\u2014":y(x),datum:r[T]}}),[r,f.visible,y]),L=useCallback(T=>{if(C===false||r.length===0)return;let P=T.currentTarget.getBoundingClientRect(),x=T.clientX-P.left-f.margin.left,D=Wt(f.xPositions,x);R(D>=0?D:null);},[C,r.length,f.margin.left,f.xPositions]),E=useCallback(T=>{if(r.length===0)return;let P=r.length-1,x=h??0,D=T.key==="ArrowRight"?Math.min(P,x+1):T.key==="ArrowLeft"?Math.max(0,x-1):T.key==="Home"?0:T.key==="End"?P:T.key==="Escape"?null:void 0;D!==void 0&&(T.preventDefault(),R(D));},[r.length,h]),I=useCallback(()=>{if(!v||h===null)return;let[T]=N(h);T&&v({...T,index:h,x:f.xValues[h]});},[v,h,N,f.xValues]),w=h===null?null:N(h),W=(w??[]).filter(T=>T.value!==null),M=h===null||w===null?null:{x:f.xValues[h],xLabel:z(f.xValues[h],h),index:h,points:w};return jsxs(Fragment,{children:[jsxs("svg",{width:e,height:t,role:"img","aria-label":k??f.visible.map(T=>Xt(T)).join(", "),tabIndex:0,className:"touch-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500",onPointerMove:L,onPointerLeave:()=>R(null),onKeyDown:E,onBlur:()=>R(null),onClick:I,children:[jsxs("g",{transform:`translate(${f.margin.left}, ${f.margin.top})`,children:[jsx(Ot,{width:f.innerWidth,height:f.innerHeight,horizontal:s==="y"||s==="both"?f.yTicks.map(T=>T.offset):void 0,vertical:s==="x"||s==="both"?f.xTicks.map(T=>T.offset):void 0}),m?.map(T=>{let P=f.yScale(T.value),x=P<Tx?P+12:P-4;return jsxs("g",{children:[jsx("line",{x1:0,y1:P,x2:f.innerWidth,y2:P,stroke:T.color??"var(--color-chart-muted)",strokeWidth:1,strokeDasharray:T.dashed===false?void 0:"4 4"}),T.label?jsx("text",{x:f.innerWidth,y:x,textAnchor:"end",className:"fill-gray-500 text-[10px] dark:fill-gray-400",children:T.label}):null]},`${T.value}-${T.label??""}`)}),f.forecastIndex>=0?jsxs("g",{children:[jsx("line",{x1:f.xPositions[f.forecastIndex],y1:0,x2:f.xPositions[f.forecastIndex],y2:f.innerHeight,className:"stroke-gray-300 dark:stroke-gray-600",strokeWidth:1,strokeDasharray:"3 3"}),d?jsx("text",{x:f.xPositions[f.forecastIndex]+4,y:-2,className:"fill-gray-500 text-[10px] dark:fill-gray-400",children:d}):null]}):null,jsx(Px,{lines:f.lines,showMarkers:f.showMarkers}),h!==null?jsxs("g",{"aria-hidden":"true",children:[jsx("line",{x1:f.xPositions[h],y1:0,x2:f.xPositions[h],y2:f.innerHeight,className:"stroke-gray-400 dark:stroke-gray-500",strokeWidth:1}),W.map(T=>jsx("circle",{cx:f.xPositions[h],cy:f.yScale(T.value),r:4,fill:T.color,strokeWidth:2,className:"stroke-white dark:stroke-gray-800"},T.seriesKey))]}):null]}),jsx("g",{transform:`translate(${f.margin.left}, ${f.margin.top+f.innerHeight})`,children:o.hidden?null:jsx(_e,{orientation:"bottom",ticks:f.xTicks,length:f.innerWidth,label:o.label,size:l})}),jsx("g",{transform:`translate(${f.margin.left}, ${f.margin.top})`,children:a?.hidden?null:jsx(_e,{orientation:"left",ticks:f.yTicks,length:f.innerHeight,showLine:false,label:a?.label,size:l})})]}),M&&C!==false?jsx(gt,{x:f.margin.left+f.xPositions[M.index],y:f.margin.top+(W.length>0?Math.min(...W.map(T=>f.yScale(T.value))):f.innerHeight/2),containerWidth:e,children:typeof C=="function"?C(M):jsx(Cr,{title:M.xLabel,points:M.points})}):null]})}function Dx({data:e,series:t,x:r,y:n,height:o=240,width:a,size:s="md",grid:l="y",legend:i,tooltip:c=true,tableView:d=false,emphasis:u,title:b,description:m,loading:p=false,emptyState:C,onPointClick:v,curve:k="monotone",forecastFrom:y,forecastLabel:z,markers:h="auto",connectNulls:R=false,referenceLines:f,legendToggle:N=true,margin:L,locale:E,plotLabel:I,className:w,...W}){let[M,T]=useState(()=>new Set),P=useMemo(()=>t.map((_,F)=>({..._,hidden:_.hidden||M.has(_.key),color:Er(_,F,u)})),[t,M,u]),x=useMemo(()=>n?.format??(_=>rt(_,E)),[n?.format,E]),D=useMemo(()=>r.format??(_=>r.scale==="time"?Ke(_ instanceof Date?_:new Date(Jr(_)),E):Ke(_,E)),[r.format,r.scale,E]),S=useCallback(_=>{T(F=>{let A=new Set(F);return A.has(_)?A.delete(_):A.add(_),A});},[]),B=i===void 0?t.length>=2:i!==false,H=typeof i=="string"?i:"bottom",$=P.filter(_=>!_.hidden).length;return jsx(ut,{title:b,description:m,height:o,width:a,size:s,loading:p,empty:e.length===0||$===0,emptyState:C,tableView:d,legendPosition:H,legend:B?jsx($t,{items:Or(P,u),position:H,marker:"line",size:s,onToggle:N?S:void 0}):void 0,table:d?jsx(It,{data:e,series:P,xKey:r.key,xLabel:r.label??r.key,formatX:D,formatValue:x,caption:typeof b=="string"?b:void 0}):void 0,className:w,...W,children:({width:_})=>jsx(Ex,{width:_,height:o,data:e,resolvedSeries:P,x:r,y:n,grid:l,size:s,curve:k,forecastFrom:y,forecastLabel:z,markers:h,connectNulls:R,referenceLines:f,margin:L,tooltip:c,onPointClick:v,plotLabel:I,formatValue:x,formatX:D})})}var zx={sm:"max-w-sm",md:"max-w-2xl",lg:"max-w-4xl",xl:"max-w-6xl",full:"max-w-full"},Tn=forwardRef(({isOpen:e,onClose:t,title:r="Modal Title",children:n,buttonLabel:o,onButtonClick:a,className:s,allowFullScreen:l=false,showSubmit:i=true,submitLabel:c,onSubmitClick:d,showCancel:u=false,cancelLabel:b,onCancelClick:m,buttonsPosition:p="right",showHeaderDivider:C=true,showFooterDivider:v=true,description:k,icon:y,size:z="md",reverseButtons:h=false,headerClassName:R,contentClassName:f,footerClassName:N,titleClassName:L,descriptionClassName:E,submitClassName:I,cancelClassName:w,closeLabel:W,enterFullScreenLabel:M,exitFullScreenLabel:T,"aria-label":P,closeOnEscape:x=true,trapFocus:D=true,initialFocus:S,returnFocus:B,lockScroll:H=true},$)=>{let[_,F]=useState(false),A=Ge(),V=useId(),Y=`${V}-title`,X=`${V}-description`,{dialogRef:G,dialogProps:j}=ao({open:e,onClose:t,closeOnEscape:x,trapFocus:D,initialFocus:S,returnFocus:B,lockScroll:H});if(!e)return null;let O=o??c??A.confirm,K=b??A.cancel,se=W??A.closeModal,ae=_?T??A.exitFullScreen:M??A.enterFullScreen,U=a??d,J=async()=>{U&&await U(),t();},te=async()=>{m&&await m(),t();};return jsx("div",{className:g("overflow-y-auto overflow-x-hidden fixed inset-0 z-50 flex items-center justify-center bg-black/30 backdrop-blur-sm",s),"aria-hidden":!e,children:jsx("div",{className:g("relative p-4 w-full max-h-full transition-all duration-300",_?"max-w-full h-full p-0":zx[z]),ref:$,children:jsxs("div",{...j,ref:G,"aria-labelledby":r?Y:void 0,"aria-label":r?void 0:P,"aria-describedby":k?X:void 0,className:g("relative bg-white shadow dark:bg-gray-700 border-b-4 transition-all duration-300 focus:outline-none",_?"rounded-none h-full flex flex-col":"rounded-lg"),children:[jsxs("div",{className:g("flex items-center justify-between p-4 md:p-5 rounded-t",C&&"border-b border-gray-200 dark:border-gray-600",R),children:[jsxs("div",{className:"flex items-center gap-3",children:[y&&jsx("div",{className:"shrink-0 text-gray-500 dark:text-gray-400",children:y}),jsxs("div",{children:[jsx("h3",{id:Y,className:g("text-xl font-semibold text-gray-900 dark:text-white",L),children:r}),k&&jsx("p",{id:X,className:g("mt-1 text-sm text-gray-500 dark:text-gray-400",E),children:k})]})]}),jsxs("div",{className:"flex items-center gap-1 ms-auto",children:[l&&jsx("button",{type:"button",onClick:()=>F(ie=>!ie),className:"text-gray-400 bg-transparent hover:bg-gray-200 hover:text-gray-900 rounded-lg text-sm w-8 h-8 inline-flex justify-center items-center dark:hover:bg-gray-600 dark:hover:text-white","aria-label":ae,children:_?jsx("svg",{className:"w-3.5 h-3.5","aria-hidden":"true",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 18 18",children:jsx("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M7 1H1v6m16 0V1h-6m0 16h6v-6M1 11v6h6"})}):jsx("svg",{className:"w-3.5 h-3.5","aria-hidden":"true",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 18 18",children:jsx("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M11 1h6v6M1 11v6h6m0-12L1 1m16 16-6-6"})})}),jsxs("button",{type:"button",onClick:t,className:"text-gray-400 bg-transparent hover:bg-gray-200 hover:text-gray-900 rounded-lg text-sm w-8 h-8 inline-flex justify-center items-center dark:hover:bg-gray-600 dark:hover:text-white",children:[jsx("svg",{className:"w-3 h-3","aria-hidden":"true",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 14 14",children:jsx("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"m1 1 6 6m0 0 6 6M7 7l6-6M7 7l-6 6"})}),jsx("span",{className:"sr-only",children:se})]})]})]}),jsx("div",{className:g("p-4 md:p-5 space-y-4",_&&"flex-1 overflow-y-auto",f),children:n}),(i||u)&&jsxs("div",{className:g("flex items-center gap-2 p-4 md:p-5 rounded-b",v&&"border-t border-gray-200 dark:border-gray-600",p==="right"?"justify-end":p==="center"?"justify-center":"justify-start",h&&"flex-row-reverse",N),children:[u&&jsx("button",{type:"button",onClick:te,className:g("text-gray-500 bg-white hover:bg-gray-100 focus:ring-4 focus:outline-none focus:ring-gray-200 font-medium rounded-lg text-sm px-5 py-2.5 border border-gray-200 dark:bg-gray-700 dark:text-gray-300 dark:border-gray-500 dark:hover:bg-gray-600 dark:hover:text-white",w),children:K}),i&&jsx("button",{type:"button",onClick:J,className:g("text-white bg-blue-600 hover:bg-blue-700 focus:ring-4 focus:outline-none focus:ring-blue-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-blue-500 dark:hover:bg-blue-600",I),children:O})]})]})})})});Tn.displayName="Modal";function Vx(e,t,r,n){let o=r*2+1+n*2+2;if(t<=o)return Array.from({length:t},(b,m)=>m+1);let a=Array.from({length:n},(b,m)=>m+1).filter(b=>b<=t),s=Array.from({length:n},(b,m)=>t-n+1+m).filter(b=>b>=1),l=Math.max(e-r,n+1),i=Math.min(e+r,t-n),c=l>n+2,d=i<t-n-1,u=[];for(let b of a)u.push(b);if(c)u.push("ellipsis");else for(let b=n+1;b<l;b++)u.push(b);for(let b=l;b<=i;b++)u.push(b);if(d)u.push("ellipsis");else for(let b=i+1;b<=t-n;b++)u.push(b);for(let b of s)u.includes(b)||u.push(b);return u}function Bx({className:e}){return jsx("svg",{className:e,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"})})}function Fx({className:e}){return jsx("svg",{className:e,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})})}function Ox({className:e}){return jsx("svg",{className:e,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M11 19l-7-7 7-7M18 19l-7-7 7-7"})})}function $x({className:e}){return jsx("svg",{className:e,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M13 5l7 7-7 7M6 5l7 7-7 7"})})}var _x={sm:{button:"h-7 min-w-7 px-1.5 text-xs",icon:"h-3 w-3",gap:"gap-0.5",text:"text-xs"},md:{button:"h-9 min-w-9 px-2.5 text-sm",icon:"h-4 w-4",gap:"gap-1",text:"text-sm"},lg:{button:"h-11 min-w-11 px-3.5 text-base",icon:"h-5 w-5",gap:"gap-1.5",text:"text-base"}},Xx={default:{base:"rounded-md font-medium transition-colors",idle:"text-gray-700 hover:bg-gray-100 dark:text-gray-300 dark:hover:bg-gray-700",active:"bg-blue-600 text-white hover:bg-blue-700 dark:bg-blue-500 dark:hover:bg-blue-600",disabled:"text-gray-300 cursor-not-allowed dark:text-gray-600"},outlined:{base:"rounded-md border font-medium transition-colors",idle:"border-gray-300 text-gray-700 hover:bg-gray-50 dark:border-gray-600 dark:text-gray-300 dark:hover:bg-gray-800",active:"border-blue-600 bg-blue-50 text-blue-600 hover:bg-blue-100 dark:border-blue-400 dark:bg-blue-900/30 dark:text-blue-400 dark:hover:bg-blue-900/50",disabled:"border-gray-200 text-gray-300 cursor-not-allowed dark:border-gray-700 dark:text-gray-600"},minimal:{base:"rounded-md font-medium transition-colors",idle:"text-gray-600 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-200",active:"text-blue-600 font-semibold hover:text-blue-700 dark:text-blue-400 dark:hover:text-blue-300",disabled:"text-gray-300 cursor-not-allowed dark:text-gray-600"}};function Gx({page:e,totalPages:t,onPageChange:r,size:n="md",variant:o="default",showFirstLast:a=false,siblings:s=1,boundaries:l=1,disabled:i=false,labels:c,totalItems:d,pageSize:u,pageSizeOptions:b,onPageSizeChange:m,className:p,...C}){let v=_x[n],k=Xx[o],y=useMemo(()=>Vx(e,t,s,l),[e,t,s,l]),z=useCallback(I=>{i||I<1||I>t||I===e||r(I);},[i,t,e,r]),h=e<=1,R=e>=t,f=g("inline-flex items-center justify-center select-none",v.button,k.base),N=(I,w,W,M)=>jsx("button",{type:"button",onClick:I,disabled:i||w,"aria-label":W,"aria-disabled":i||w,className:g(f,i||w?k.disabled:k.idle),children:M}),L=d!==void 0&&u?(e-1)*u+1:void 0,E=d!==void 0&&u?Math.min(e*u,d):void 0;return jsxs("nav",{"aria-label":"Pagination",className:g("flex items-center",v.gap,p),...C,children:[d!==void 0&&u&&jsxs("span",{className:g("mr-2 text-gray-600 dark:text-gray-400 whitespace-nowrap",v.text),children:[L,"\u2013",E," of ",d]}),b&&b.length>0&&m&&jsxs("div",{className:g("mr-2 flex items-center whitespace-nowrap",v.gap,v.text),children:[jsx("label",{htmlFor:"pagination-page-size",className:"text-gray-600 dark:text-gray-400",children:"Rows:"}),jsx("select",{id:"pagination-page-size",value:u,onChange:I=>m(Number(I.target.value)),disabled:i,className:g("rounded border border-gray-300 bg-white px-1.5 py-0.5 dark:border-gray-600 dark:bg-gray-800 dark:text-gray-200",v.text,i&&"cursor-not-allowed opacity-50"),children:b.map(I=>jsx("option",{value:I,children:I},I))})]}),jsxs("div",{className:g("flex items-center",v.gap),children:[a&&N(()=>z(1),h,c?.first??"Go to first page",jsx(Ox,{className:v.icon})),N(()=>z(e-1),h,c?.previous??"Go to previous page",jsx(Bx,{className:v.icon})),y.map((I,w)=>I==="ellipsis"?jsx("span",{className:g("inline-flex items-center justify-center select-none",v.button,"text-gray-400 dark:text-gray-500"),"aria-hidden":"true",children:"\u2026"},`ellipsis-${w}`):jsx("button",{type:"button",onClick:()=>z(I),disabled:i,"aria-current":I===e?"page":void 0,"aria-label":`Page ${I}`,className:g(f,I===e?k.active:i?k.disabled:k.idle),children:I},I)),N(()=>z(e+1),R,c?.next??"Go to next page",jsx(Fx,{className:v.icon})),a&&N(()=>z(t),R,c?.last??"Go to last page",jsx($x,{className:v.icon}))]})]})}var Ux=.62,Yx=2,qx=3,jx=.16,Zx=64,Qx=22,ml=6,ku=false;function Jx({width:e,height:t,slices:r,variant:n,innerRadius:o,showLabels:a,centerLabel:s,tooltip:l,plotLabel:i,formatValue:c,onSliceClick:d}){let[u,b]=useState(null),m=useMemo(()=>{let f=a?Zx:8,N=a?Qx:8,L=Math.max(0,Math.min((e-f*2)/2,(t-N*2)/2));return {cx:e/2,cy:t/2,outerRadius:L,inner:n==="donut"?L*(o??Ux):(o??0)*L,pad:L>0&&r.length>1?Yx/L/2:0}},[e,t,n,o,a,r.length]),{cx:p,cy:C,outerRadius:v,inner:k,pad:y}=m,z=useCallback(f=>{let N=(f.startAngle+f.endAngle)/2,L=Math.sin(N)>=0,E={x:p+Math.sin(N)*(v+4),y:C-Math.cos(N)*(v+4)},I={x:p+Math.sin(N)*(v+14),y:C-Math.cos(N)*(v+14)},w={x:L?I.x+10:I.x-10,y:I.y};return {from:E,elbow:I,end:w,anchor:L?"start":"end"}},[p,C,v]),h=useCallback(f=>{if(r.length===0)return;let N=r.length-1,L=u??0,E=f.key==="ArrowRight"||f.key==="ArrowDown"?Math.min(N,L+1):f.key==="ArrowLeft"||f.key==="ArrowUp"?Math.max(0,L-1):f.key==="Home"?0:f.key==="End"?N:f.key==="Escape"?null:void 0;E!==void 0&&(f.preventDefault(),b(E));},[r.length,u]),R=u===null?null:r[u];return jsxs(Fragment,{children:[jsxs("svg",{width:e,height:t,role:"img","aria-label":i??r.map(f=>f.label).join(", "),tabIndex:0,className:"touch-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500",onPointerLeave:()=>b(null),onBlur:()=>b(null),onKeyDown:h,children:[r.map((f,N)=>jsx("path",{d:Rc({cx:p,cy:C,innerRadius:k,outerRadius:v+(u===N?qx:0),startAngle:f.startAngle+y,endAngle:Math.max(f.startAngle+y,f.endAngle-y)}),fill:f.color,onPointerEnter:()=>l===false?void 0:b(N),onClick:()=>d?.({key:f.key,label:f.label,value:f.value,share:f.share})},f.key)),a?r.filter(f=>f.endAngle-f.startAngle>=jx).map(f=>{let{from:N,elbow:L,end:E,anchor:I}=z(f);return jsxs("g",{"aria-hidden":"true",children:[jsx("polyline",{points:`${N.x},${N.y} ${L.x},${L.y} ${E.x},${E.y}`,fill:"none",className:"stroke-gray-300 dark:stroke-gray-600",strokeWidth:1}),jsx("text",{x:I==="start"?E.x+3:E.x-3,y:E.y,textAnchor:I,dominantBaseline:"middle",className:"fill-gray-600 text-[10px] dark:fill-gray-300",children:f.label})]},`label-${f.key}`)}):null,n==="donut"&&s?jsxs("g",{"aria-hidden":"true",children:[jsx("text",{x:p,y:C-(s.label?2:0),textAnchor:"middle",dominantBaseline:"middle",className:"fill-gray-900 text-lg font-semibold dark:fill-gray-100",children:s.value}),s.label?jsx("text",{x:p,y:C+14,textAnchor:"middle",dominantBaseline:"middle",className:"fill-gray-500 text-[10px] dark:fill-gray-400",children:s.label}):null]}):null]}),R&&l!==false?jsx(gt,{x:p+Math.sin((R.startAngle+R.endAngle)/2)*(v*.7),y:C-Math.cos((R.startAngle+R.endAngle)/2)*(v*.7),containerWidth:e,children:typeof l=="function"?l({seriesKey:R.key,seriesLabel:R.label,color:R.color,value:R.value,formattedValue:c(R.value),datum:{},share:R.share}):jsx(Cr,{title:R.label,points:[{seriesKey:R.key,seriesLabel:Gt(R.share),color:R.color,value:R.value,formattedValue:c(R.value),datum:{}}]})}):null]})}function ev({data:e,x:t,value:r,variant:n="pie",innerRadius:o,maxSlices:a=ml,otherLabel:s,sort:l="desc",showLabels:i=true,centerLabel:c,height:d=260,width:u,size:b="md",legend:m,tooltip:p=true,tableView:C=false,title:v,description:k,loading:y=false,emptyState:z,locale:h,plotLabel:R,onSliceClick:f,className:N,...L}){let E=Ge(),I=useCallback(D=>rt(D,h),[h]),w=useCallback(D=>t.format?t.format(D,0):Ke(D,h),[t,h]),{slices:W,total:M,rows:T}=useMemo(()=>{let D=e.map((A,V)=>({key:String(mt(A,t.key,V)),label:w(mt(A,t.key,V)),value:Ee(A,r)??0,color:Pr(V),datum:A})),S=l==="none"?D:[...D].sort((A,V)=>l==="asc"?A.value-V.value:V.value-A.value),B=S.slice(0,a),H=S.slice(a);H.length>0&&B.push({key:"__other__",label:s??E.chartOther,value:H.reduce((A,V)=>A+V.value,0),color:Tr,datum:{}}),B.length>ml&&!ku&&(ku=true,console.warn(`[@synertech/ui] A PieChart is drawing ${B.length} slices. Past ${ml} the slices stop being tellable apart: lower \`maxSlices\`, or use a BarChart, which compares lengths rather than angles.`));let $=B.reduce((A,V)=>A+Math.max(0,V.value),0),_=0;return {slices:B.map(A=>{let V=$===0?0:Math.max(0,A.value)/$,Y=_;return _+=V*Math.PI*2,{...A,share:V,startAngle:Y,endAngle:_}}),total:$,rows:B.map(A=>({[t.key]:A.label,[r]:A.value}))}},[e,t.key,r,l,a,s,E.chartOther,w]),P=m===void 0?true:m!==false,x=typeof m=="string"?m:"bottom";return jsx(ut,{title:v,description:k,height:d,width:u,size:b,loading:y,empty:W.length===0||M===0,emptyState:z,tableView:C,legendPosition:x,legend:P?jsx($t,{items:W.map(D=>({key:D.key,label:`${D.label} \xB7 ${Gt(D.share)}`,color:D.color})),position:x,marker:"rect",size:b}):void 0,table:C?jsx(It,{data:T,series:[{key:r,label:t.label??r}],xKey:t.key,xLabel:t.label??t.key,formatValue:I,caption:typeof v=="string"?v:void 0}):void 0,className:N,...L,children:({width:D})=>jsx(Jx,{width:D,height:d,slices:W,variant:n,innerRadius:o,showLabels:i,centerLabel:c,tooltip:p,plotLabel:R,formatValue:I,onSliceClick:f})})}var rv={xs:"h-1",sm:"h-1.5",md:"h-2.5",lg:"h-4",xl:"h-6"},nv={default:"bg-gray-500 dark:bg-gray-400",primary:"bg-blue-600 dark:bg-blue-500",success:"bg-green-600 dark:bg-green-500",warning:"bg-yellow-500 dark:bg-yellow-400",error:"bg-red-600 dark:bg-red-500",info:"bg-cyan-600 dark:bg-cyan-500"},ov={default:"text-gray-700 dark:text-gray-300",primary:"text-blue-600 dark:text-blue-400",success:"text-green-600 dark:text-green-400",warning:"text-yellow-600 dark:text-yellow-400",error:"text-red-600 dark:text-red-400",info:"text-cyan-600 dark:text-cyan-400"},wu="bg-[repeating-linear-gradient(45deg,transparent,transparent_10px,rgba(255,255,255,0.2)_10px,rgba(255,255,255,0.2)_20px)]",av={default:"bg-gradient-to-r from-gray-400 to-gray-600",primary:"bg-gradient-to-r from-blue-400 to-blue-700",success:"bg-gradient-to-r from-green-400 to-green-700",warning:"bg-gradient-to-r from-yellow-300 to-yellow-600",error:"bg-gradient-to-r from-red-400 to-red-700",info:"bg-gradient-to-r from-cyan-400 to-cyan-700"};function Su({value:e=0,indeterminate:t=false,size:r="md",color:n="primary",variant:o="default",showValue:a=false,valueFormat:s,label:l,animated:i=true,className:c,...d}){let u=Math.min(100,Math.max(0,e)),b=o==="gradient"?av[n]:nv[n],m=s?s(u):`${Math.round(u)}%`;return jsxs("div",{className:g("w-full",c),...d,children:[(l||a)&&jsxs("div",{className:"flex items-center justify-between mb-1",children:[l&&jsx("span",{className:"text-sm font-medium text-gray-700 dark:text-gray-300",children:l}),a&&!t&&jsx("span",{className:g("text-sm font-semibold",ov[n],!l&&"ml-auto"),children:m})]}),jsx("div",{role:"progressbar","aria-valuenow":t?void 0:u,"aria-valuemin":0,"aria-valuemax":100,"aria-label":l,className:g("relative w-full overflow-hidden rounded-full bg-gray-200 dark:bg-gray-700",rv[r]),children:t?jsx("div",{className:g("absolute h-full w-1/3 rounded-full",b,o==="striped"&&wu,"animate-[progress-indeterminate_1.5s_ease-in-out_infinite]")}):jsx("div",{className:g("h-full rounded-full",b,o==="striped"&&wu,i&&"transition-[width] duration-300 ease-out"),style:{width:`${u}%`}})})]})}Su.displayName="ProgressBar";var cv=e=>({sm:"w-4 h-4",md:"w-5 h-5",lg:"w-6 h-6"})[e],dv=e=>({sm:"w-2 h-2",md:"w-2.5 h-2.5",lg:"w-3 h-3"})[e],uv=(e,t,r,n,o,a,s,l)=>{if(t)return g("border-2",n?"":"border-red-500",r&&!o?"bg-red-500":"");switch(e){case "filled":return g("border-2",l?"":"border-gray-300 dark:border-gray-600",r?a?"":"bg-blue-600 border-blue-600 dark:bg-blue-500 dark:border-blue-500":s?"":"bg-gray-200 border-gray-200 dark:bg-gray-700 dark:border-gray-700");case "outlined":return g("border-[3px]",l?"":r?"border-blue-600 dark:border-blue-500":"border-gray-300 dark:border-gray-600","bg-white dark:bg-gray-800");default:return g("border-2",l?"":r?"border-blue-600 dark:border-blue-500":"border-gray-300 dark:border-gray-600","bg-white dark:bg-gray-800")}},mv={},Ru=forwardRef(({label:e,description:t,value:r,checked:n,defaultChecked:o=false,onCheckedChange:a,size:s="md",variant:l="default",labelPosition:i="right",error:c=false,disabled:d=false,readOnly:u=false,required:b=false,checkedColor:m,uncheckedColor:p,borderColor:C,labelColor:v,errorColor:k,dotColor:y,hoverColor:z,focusRingColor:h,showFocusRing:R=true,className:f,containerClassName:N,...L},E)=>{let[I,w]=useState(o),W=n!==void 0,M=W?n:I,T=useId(),P=typeof c=="string"?c:void 0,x=!!c,D=X=>{if(d||u)return;let G=X.target.checked;W||w(G),a?.(G);},S=useMemo(()=>uv(l,x,M,k,y,m,p,C),[l,x,M,k,y,m,p,C]),B=useMemo(()=>{let X={};return m&&M&&(X.backgroundColor=m,X.borderColor=m),p&&!M&&(X.backgroundColor=p),C&&(X.borderColor=C),X},[m,p,C,M]),H=useMemo(()=>y?{backgroundColor:y}:{},[y]),$=useMemo(()=>v?{color:v}:{},[v]),_=useMemo(()=>k?{color:k}:{},[k]),F=v?"":"text-gray-700 dark:text-gray-200",A=k?"":"text-red-500",V=z?"":"hover:border-blue-500 dark:hover:border-blue-400",Y=h?"":"focus-visible:ring-blue-500";return jsxs("div",{className:g("inline-flex flex-col",N),style:mv,children:[jsxs("label",{className:g("inline-flex items-center cursor-pointer",d&&"opacity-50 cursor-not-allowed",u&&"cursor-default",i==="left"&&"flex-row-reverse"),htmlFor:T,children:[jsxs("div",{className:"relative inline-flex items-center",children:[jsx("input",{ref:E,type:"radio",id:T,value:r,checked:M,onChange:D,disabled:d,readOnly:u,required:b,"aria-invalid":x,"aria-describedby":P?`${T}-error`:void 0,className:"sr-only peer",tabIndex:u?-1:void 0,...L}),jsx("div",{className:g("rounded-full transition-all duration-200",cv(s),S,!d&&!u&&V,!d&&!u&&R&&"peer-focus-visible:ring-2 ring-offset-2",!d&&!u&&R&&Y,f),style:B,children:M&&jsx("div",{className:g("rounded-full absolute inset-0 m-auto transition-all duration-200",dv(s),y?"":l==="outlined"||l==="default"?"bg-blue-600 dark:bg-blue-500":"bg-white"),style:H})})]}),e&&jsxs("span",{className:g("select-none",i==="left"?"mr-2":"ml-2",F,d&&"opacity-50"),style:$,children:[e,b&&jsx("span",{className:"text-red-500 ml-1",children:"*"})]})]}),t&&!x&&jsx("p",{className:g("text-sm text-gray-500 dark:text-gray-400 mt-1",i==="left"?"text-right":"ml-7"),children:t}),P&&jsx("p",{id:`${T}-error`,className:g("text-sm mt-1",i==="left"?"text-right":"ml-7",A),style:_,children:P})]})});Ru.displayName="RadioButton";var pl=()=>{},hv=[],yv=jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",className:"shrink-0",children:jsx("path",{d:"M4 6L8 10L12 6",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),xv=jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none","aria-hidden":"true",className:"shrink-0",children:jsx("path",{d:"M10.5 3.5L3.5 10.5M3.5 3.5L10.5 10.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),vv=jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",className:"shrink-0 animate-spin",children:[jsx("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor",strokeWidth:"2",strokeOpacity:"0.25"}),jsx("path",{d:"M14 8a6 6 0 00-6-6",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}),kv=jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none","aria-hidden":"true",className:"shrink-0",children:jsx("path",{d:"M11.5 3.5L5.5 10.5L2.5 7.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),Va={sm:{trigger:"h-8 px-2.5 text-xs gap-1.5",content:"text-xs",option:"px-2.5 py-1.5",searchInput:"px-2.5 py-1.5 text-xs"},md:{trigger:"h-10 px-3 text-sm gap-2",content:"text-sm",option:"px-3 py-2",searchInput:"px-3 py-2 text-sm"},lg:{trigger:"h-12 px-4 text-base gap-2.5",content:"text-base",option:"px-4 py-2.5",searchInput:"px-4 py-2.5 text-base"}},Tu={default:{trigger:"border border-gray-300 bg-white dark:border-gray-600 dark:bg-gray-800",focus:"focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},outlined:{trigger:"border-2 border-gray-300 bg-transparent dark:border-gray-600",focus:"focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},filled:{trigger:"border border-transparent bg-gray-100 dark:bg-gray-700",focus:"focus:ring-2 focus:ring-blue-500 focus:border-blue-500"}};function Bn(...e){let t="";for(let r=0;r<e.length;r++){let n=e[r];n&&(t&&(t+=" "),t+=n);}return t}function Cv(e,t){if(!t)return e;let r=t.toLowerCase();return e.filter(n=>{if(n.label.toLowerCase().includes(r)||n.value.toLowerCase().includes(r))return true;if(n.keywords){for(let o of n.keywords)if(o.toLowerCase().includes(r))return true}return false})}var wv=memo(forwardRef(function({option:t,isSelected:r,isHighlighted:n,isDisabled:o,sizeKey:a,optionId:s,onClick:l,onMouseEnter:i,index:c},d){let u=()=>{o||l(t.value);},b=()=>{o||i(c);};return jsxs("div",{ref:d,id:s,role:"option","aria-selected":r,"aria-disabled":o||void 0,"data-highlighted":n||void 0,className:Bn(Va[a].option,"flex items-center gap-2 cursor-pointer select-none transition-colors",n&&!o&&"bg-blue-50 dark:bg-blue-900/30",r&&!n&&"bg-gray-50 dark:bg-gray-700/50",o&&"opacity-50 cursor-not-allowed"),onClick:u,onMouseEnter:b,children:[t.icon?jsx("span",{className:"flex shrink-0 items-center",children:t.icon}):null,jsxs("span",{className:"flex flex-col min-w-0 flex-1",children:[jsx("span",{className:"truncate",children:t.label}),t.description?jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400 truncate",children:t.description}):null]}),r?jsx("span",{className:"ml-auto text-blue-600 dark:text-blue-400",children:kv}):null]})}));function Nv({options:e=hv,value:t,defaultValue:r,onValueChange:n,searchable:o=false,clearable:a=false,disabled:s=false,readOnly:l=false,loading:i=false,size:c="md",variant:d="default",placeholder:u="Select...",label:b,description:m,helperText:p,error:C,required:v=false,noOptionsText:k="No options",onSearchChange:y,name:z,className:h,triggerClassName:R,contentClassName:f,maxHeight:N=256}){let L=useId(),E=`${L}-label`,I=`${L}-trigger`,w=`${L}-listbox`,W=useRef(null),M=useRef(null),T=useRef(null),P=useRef([]),x=t!==void 0,[D,S]=useState(r??""),B=x?t:D,[H,$]=useState(false),[_,F]=useState(""),[A,V]=useState(-1),[Y,X]=useState(null),G=useMemo(()=>o?Cv(e,_):e,[e,_,o]),j=useMemo(()=>e.find(me=>me.value===B)??null,[e,B]),O=useMemo(()=>{let me=new Set;for(let ce of e)ce.disabled&&me.add(ce.value);return me},[e]),K=useCallback(me=>{x||S(me),(n??pl)(me),$(false),F(""),V(-1),W.current?.focus();},[x,n]),se=useCallback(me=>{me.stopPropagation(),x||S(""),(n??pl)(""),F(""),W.current?.focus();},[x,n]),ae=useCallback(()=>{s||l||($(true),F(""),V(-1));},[s,l]),U=useCallback(()=>{$(false),F(""),V(-1),W.current?.focus();},[]),J=useCallback(()=>{H?U():ae();},[H,U,ae]),te=useCallback((me,ce)=>{let Oe=G.length;if(Oe===0)return -1;let st=me;for(let Pe=0;Pe<Oe;Pe++)if(st=((st+ce)%Oe+Oe)%Oe,!O.has(G[st].value))return st;return -1},[G,O]),ie=useCallback(me=>{if(!(s||l)){if(H){switch(me.key){case "ArrowDown":{me.preventDefault();let ce=te(A,1);ce!==-1&&V(ce);break}case "ArrowUp":{me.preventDefault();let ce=te(A,-1);ce!==-1&&V(ce);break}case "Home":{me.preventDefault();let ce=te(-1,1);ce!==-1&&V(ce);break}case "End":{me.preventDefault();let ce=te(G.length,-1);ce!==-1&&V(ce);break}case "Enter":{if(me.preventDefault(),A>=0&&A<G.length){let ce=G[A];O.has(ce.value)||K(ce.value);}break}case " ":if(me.preventDefault(),A>=0&&A<G.length){let ce=G[A];O.has(ce.value)||K(ce.value);}else U();break;case "Escape":me.preventDefault(),U();break;case "Tab":U();break}return}switch(me.key){case "ArrowDown":case "ArrowUp":me.preventDefault(),ae();break;case "Enter":case " ":me.preventDefault(),ae();break}}},[s,l,H,ae,U,A,G,O,te,K]),Q=useCallback(me=>{switch(me.key){case "ArrowDown":{me.preventDefault();let ce=te(A,1);ce!==-1&&V(ce);break}case "ArrowUp":{me.preventDefault();let ce=te(A,-1);ce!==-1&&V(ce);break}case "Home":{me.preventDefault();let ce=te(-1,1);ce!==-1&&V(ce);break}case "End":{me.preventDefault();let ce=te(G.length,-1);ce!==-1&&V(ce);break}case "Enter":{if(me.preventDefault(),A>=0&&A<G.length){let ce=G[A];O.has(ce.value)||K(ce.value);}break}case "Escape":me.preventDefault(),U();break;case "Tab":U();break}},[A,G,O,te,K,U]),ge=useCallback(me=>{let ce=me.target.value;F(ce),V(-1),(y??pl)(ce);},[y]);useEffect(()=>{if(!H)return;let me=ce=>{let Oe=ce.target;W.current?.contains(Oe)||M.current?.contains(Oe)||U();};return document.addEventListener("mousedown",me),document.addEventListener("touchstart",me,{passive:true}),()=>{document.removeEventListener("mousedown",me),document.removeEventListener("touchstart",me);}},[H,U]),useEffect(()=>{if(!H||!W.current){X(null);return}let me=()=>{let ce=W.current;if(!ce)return;let Oe=ce.getBoundingClientRect(),st=window.innerHeight-Oe.bottom,Pe=Oe.top,De=N+8,it=st<De&&Pe>st?"top":"bottom";X({top:it==="bottom"?Oe.bottom+window.scrollY+4:Oe.top+window.scrollY-De,left:Oe.left+window.scrollX,width:Oe.width,placement:it});};return me(),window.addEventListener("scroll",me,true),window.addEventListener("resize",me),()=>{window.removeEventListener("scroll",me,true),window.removeEventListener("resize",me);}},[H,N]),useEffect(()=>{H&&o&&T.current?.focus();},[H,o]),useEffect(()=>{let me=M.current;if(!(!H||!me))return oo(me,()=>W.current)},[H]),useEffect(()=>{if(A>=0){let me=P.current[A];me&&typeof me.scrollIntoView=="function"&&me.scrollIntoView({block:"nearest"});}},[A]);let Re=B!==""&&B!==void 0,Qe=a&&Re&&!s&&!l&&!i,at=!s&&!l,et=Bn("w-full flex items-center justify-between rounded-md transition-colors","text-gray-900 dark:text-gray-100",Va[c].trigger,Tu[d].trigger,!C&&at&&Tu[d].focus,C&&"border-red-500 dark:border-red-400 focus:ring-2 focus:ring-red-500 focus:border-red-500",s&&"opacity-50 cursor-not-allowed bg-gray-50 dark:bg-gray-900",l&&"cursor-default",!s&&!l&&"cursor-pointer",R);return jsxs("div",{className:Bn("flex flex-col gap-1",h),children:[b?jsxs("label",{id:E,htmlFor:I,className:"text-sm font-medium text-gray-700 dark:text-gray-300",children:[b,v?jsx("span",{className:"text-red-500 ml-0.5","aria-hidden":"true",children:"*"}):null]}):null,m?jsx("p",{className:"text-xs text-gray-500 dark:text-gray-400",children:m}):null,jsxs("button",{ref:W,id:I,type:"button",role:"combobox","aria-expanded":H,"aria-haspopup":"listbox","aria-controls":H?w:void 0,"aria-labelledby":b?E:void 0,"aria-required":v||void 0,"aria-invalid":C?true:void 0,"aria-activedescendant":H&&A>=0?`${L}-option-${A}`:void 0,disabled:s,className:et,onClick:at?J:void 0,onKeyDown:ie,children:[jsxs("span",{className:Bn("flex items-center gap-2 min-w-0 flex-1 truncate",!Re&&"text-gray-400 dark:text-gray-500"),children:[j?.icon?jsx("span",{className:"flex shrink-0 items-center",children:j.icon}):null,jsx("span",{className:"truncate",children:Re&&j?j.label:u})]}),jsxs("span",{className:"flex items-center gap-1 shrink-0",children:[i?jsx("span",{className:"text-gray-400",children:vv}):null,Qe?jsx("span",{role:"button",tabIndex:-1,"aria-label":"Clear selection",className:"text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 p-0.5 rounded transition-colors",onClick:se,onMouseDown:me=>me.preventDefault(),children:xv}):null,jsx("span",{className:Bn("text-gray-400 transition-transform duration-200",H&&"rotate-180"),children:yv})]})]}),C?jsx("p",{role:"alert",className:"text-xs text-red-500 dark:text-red-400",children:C}):p?jsx("p",{className:"text-xs text-gray-500 dark:text-gray-400",children:p}):null,z?jsx("input",{type:"hidden",name:z,value:B??""}):null,H&&Y?createPortal(jsxs("div",{ref:M,role:"listbox",id:w,"aria-labelledby":b?E:void 0,className:Bn("fixed z-50 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700","rounded-md shadow-lg overflow-hidden","animate-in fade-in-0 zoom-in-95",Va[c].content,f),style:{top:Y.top,left:Y.left,width:Y.width,position:"absolute"},onKeyDown:Q,children:[o?jsx("div",{className:"border-b border-gray-200 dark:border-gray-700",children:jsx("input",{ref:T,type:"text",role:"searchbox","aria-label":"Search options",className:Bn(Va[c].searchInput,"w-full outline-none bg-transparent text-gray-900 dark:text-gray-100","placeholder:text-gray-400 dark:placeholder:text-gray-500"),placeholder:"Search...",value:_,onChange:ge,onKeyDown:Q})}):null,jsx("div",{className:"overflow-y-auto",style:{maxHeight:N},children:G.length===0?jsx("div",{className:Bn(Va[c].option,"text-gray-500 dark:text-gray-400 text-center py-4"),children:k}):G.map((me,ce)=>jsx(wv,{option:me,isSelected:me.value===B,isHighlighted:ce===A,isDisabled:i||O.has(me.value),sizeKey:c,optionId:`${L}-option-${ce}`,onClick:K,onMouseEnter:V,index:ce,ref:Oe=>{P.current[ce]=Oe;}},me.value))})]}),document.body):null]})}var bl=createContext(null);function go(){let e=useContext(bl);if(!e)throw new Error("Sidebar sub-components must be used within <Sidebar>");return e}function Tv(){return go()}var Pv=({className:e})=>jsx("svg",{className:g("w-4 h-4",e),viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M12.79 5.23a.75.75 0 01-.02 1.06L8.832 10l3.938 3.71a.75.75 0 11-1.04 1.08l-4.5-4.25a.75.75 0 010-1.08l4.5-4.25a.75.75 0 011.06.02z",clipRule:"evenodd"})}),Ev=({className:e})=>jsx("svg",{className:g("w-4 h-4",e),viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z",clipRule:"evenodd"})}),Dv=({className:e})=>jsx("svg",{className:g("w-5 h-5",e),viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{d:"M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z"})});function Du({text:e,position:t,children:r}){let[n,o]=useState(false),[a,s]=useState({top:0,left:0}),l=useRef(null);return jsxs("div",{ref:l,onMouseEnter:()=>{if(l.current){let c=l.current.getBoundingClientRect();s({top:c.top+c.height/2,left:t==="left"?c.right+8:c.left-8});}o(true);},onMouseLeave:()=>o(false),className:"relative",children:[r,n&&jsx("div",{className:g("fixed z-[9999] px-2.5 py-1.5 text-xs font-medium text-white bg-gray-900 dark:bg-gray-700 rounded-md shadow-lg whitespace-nowrap pointer-events-none",t==="right"&&"-translate-x-full"),style:{top:a.top,left:a.left,transform:`translateY(-50%)${t==="right"?" translateX(-100%)":""}`},role:"tooltip",children:e})]})}function Lv({collapsed:e,defaultCollapsed:t=false,onCollapsedChange:r,expandedWidth:n=260,collapsedWidth:o=64,position:a="left",variant:s="default",mobileBreakpoint:l=768,mobileOpen:i,onMobileOpenChange:c,className:d,"aria-label":u,closeLabel:b,trapFocus:m=true,initialFocus:p,returnFocus:C,lockScroll:v=true,children:k}){let y=Ge(),z=useRef(null),h=useRef(null),[R,f]=useState(t),[N,L]=useState(false),[E,I]=useState(false),w=e!==void 0,W=w?e:R,M=i!==void 0,T=M?i:N;useEffect(()=>{let F=window.matchMedia(`(max-width: ${l}px)`),A=V=>{I(V.matches),V.matches||(M||L(false),c?.(false));};return A(F),F.addEventListener("change",A),()=>F.removeEventListener("change",A)},[l,M,c]);let P=useCallback(()=>{if(E){let F=!T;M||L(F),c?.(F);}else {let F=!W;w||f(F),r?.(F);}},[E,T,W,M,w,c,r]),x=useCallback(()=>{M||L(false),c?.(false);},[M,c]);useEffect(()=>{let F=h.current;F&&(E&&!T?(F.setAttribute("inert",""),F.setAttribute("aria-hidden","true")):(F.removeAttribute("inert"),F.removeAttribute("aria-hidden")));},[E,T]);let{dialogRef:D,dialogProps:S}=ao({open:E&&T,onClose:x,trapFocus:m,initialFocus:p,returnFocus:C,lockScroll:v,keepInteractive:[z]}),B={default:"bg-white dark:bg-gray-900",bordered:g("bg-white dark:bg-gray-900",a==="left"?"border-r border-gray-200 dark:border-gray-700":"border-l border-gray-200 dark:border-gray-700"),floating:"bg-white dark:bg-gray-900 m-3 rounded-xl shadow-xl border border-gray-200 dark:border-gray-700"},H=W&&!E?o:n,$=jsx("aside",{className:g("flex flex-col h-full overflow-hidden transition-[width] duration-200 ease-in-out",B[s],d),style:{width:E?n:H,minWidth:E?n:H},"data-testid":"sidebar","data-collapsed":W&&!E,"data-mobile":E,"data-position":a,children:k}),_={collapsed:W&&!E,isMobile:E,mobileOpen:T,position:a,variant:s,expandedWidth:n,collapsedWidth:o,toggle:P,closeMobile:x,closeLabel:b};return E?jsxs(bl.Provider,{value:_,children:[T&&jsx("div",{ref:z,className:"fixed inset-0 z-40 bg-black/50 transition-opacity",onClick:x,"aria-hidden":"true","data-testid":"sidebar-overlay"}),jsx("div",{ref:F=>{h.current=F,D.current=F;},...S,"aria-label":u??y.sidebar,className:g("fixed top-0 z-50 h-full transition-transform duration-200 ease-in-out focus:outline-none",a==="left"?"left-0":"right-0",T?"translate-x-0":a==="left"?"-translate-x-full":"translate-x-full"),children:$})]}):jsx(bl.Provider,{value:_,children:$})}function Mv({className:e,children:t}){let r=go(),n=Ge();return jsxs("div",{className:g("flex items-center shrink-0 px-4 h-14 overflow-hidden",r.collapsed&&"justify-center px-2",e),"data-testid":"sidebar-header",children:[t,r.isMobile&&r.mobileOpen&&jsx("button",{type:"button",onClick:r.closeMobile,className:"ml-auto p-1 rounded-md text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-800 cursor-pointer","aria-label":r.closeLabel??n.closeSidebar,children:jsx(Dv,{})})]})}function Iv({className:e,children:t}){return jsx("div",{className:g("flex-1 overflow-y-auto overflow-x-hidden py-2",e),"data-testid":"sidebar-content",children:t})}function Av({className:e,children:t}){let r=go();return jsx("div",{className:g("shrink-0 border-t border-gray-200 dark:border-gray-700 px-4 py-3 overflow-hidden",r.collapsed&&"px-2 flex justify-center",e),"data-testid":"sidebar-footer",children:t})}function zv({label:e,className:t,children:r}){let n=go();return jsxs("div",{className:g("py-2",t),"data-testid":"sidebar-group",children:[e&&!n.collapsed&&jsx("div",{className:"px-4 py-1.5 text-[11px] font-semibold uppercase tracking-wider text-gray-400 dark:text-gray-500",children:e}),e&&n.collapsed&&jsx("div",{className:"mx-auto my-1 w-6 border-t border-gray-200 dark:border-gray-700"}),jsx("div",{className:"space-y-0.5 px-2",children:r})]})}function Wv({icon:e,label:t,badge:r,badgeColor:n="bg-blue-600 text-white",active:o=false,disabled:a=false,href:s,onClick:l,tooltip:i,className:c}){let d=go(),u=d.collapsed,b=i??t,m=jsxs(Fragment,{children:[e&&jsx("span",{className:g("shrink-0 w-5 h-5",u&&"w-5 h-5"),children:e}),!u&&jsxs(Fragment,{children:[jsx("span",{className:"flex-1 truncate",children:t}),r!=null&&jsx("span",{className:g("shrink-0 inline-flex items-center justify-center rounded-full text-[10px] font-semibold min-w-[18px] h-[18px] px-1",n),children:r})]}),u&&r!==void 0&&r!==null&&jsx("span",{className:"absolute top-1 right-1 w-2 h-2 rounded-full bg-blue-600"})]}),p=g("relative flex items-center gap-3 rounded-md text-sm font-medium transition-colors w-full",u?"justify-center px-2 py-2.5":"px-3 py-2",o?"bg-blue-50 text-blue-700 dark:bg-blue-900/30 dark:text-blue-400":"text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-800",a&&"opacity-50 pointer-events-none",!a&&"cursor-pointer",c),C=()=>{a||(l?.(),d.isMobile&&d.closeMobile());},v=s?jsx("a",{href:a?void 0:s,className:p,onClick:C,"aria-current":o?"page":void 0,"data-testid":"sidebar-item",children:m}):jsx("button",{type:"button",className:p,onClick:C,disabled:a,"aria-current":o?"page":void 0,"data-testid":"sidebar-item",children:m});return u?jsx(Du,{text:b,position:d.position,children:v}):v}function Hv({icon:e,label:t,badge:r,defaultOpen:n=false,className:o,children:a}){let s=go(),[l,i]=useState(n),c=useRef(null),[d,u]=useState(n?void 0:0),b=useRef(true);return useEffect(()=>{if(b.current){b.current=false,u(l?void 0:0);return}if(l){let m=c.current;if(m){u(m.scrollHeight);let p=setTimeout(()=>u(void 0),200);return ()=>clearTimeout(p)}}else {let m=c.current;m&&(u(m.scrollHeight),requestAnimationFrame(()=>u(0)));}},[l]),s.collapsed?jsx(Du,{text:t,position:s.position,children:jsxs("button",{type:"button",className:g("relative flex items-center justify-center gap-3 rounded-md text-sm font-medium transition-colors w-full px-2 py-2.5","text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-800 cursor-pointer",o),onClick:()=>{s.toggle(),i(true);},"data-testid":"sidebar-submenu-trigger",children:[e&&jsx("span",{className:"shrink-0 w-5 h-5",children:e}),r!=null&&jsx("span",{className:"absolute top-1 right-1 w-2 h-2 rounded-full bg-blue-600"})]})}):jsxs("div",{className:o,"data-testid":"sidebar-submenu",children:[jsxs("button",{type:"button",className:g("flex items-center gap-3 rounded-md text-sm font-medium transition-colors w-full px-3 py-2","text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-800 cursor-pointer"),onClick:()=>i(!l),"aria-expanded":l,"data-testid":"sidebar-submenu-trigger",children:[e&&jsx("span",{className:"shrink-0 w-5 h-5",children:e}),jsx("span",{className:"flex-1 truncate text-left",children:t}),r!=null&&jsx("span",{className:"shrink-0 inline-flex items-center justify-center rounded-full text-[10px] font-semibold min-w-[18px] h-[18px] px-1 bg-blue-600 text-white",children:r}),jsx(Ev,{className:g("shrink-0 text-gray-400 transition-transform duration-200",l&&"rotate-180")})]}),jsx("div",{className:"overflow-hidden transition-[height] duration-200 ease-in-out",style:{height:d===void 0?"auto":d},children:jsx("div",{ref:c,className:"pl-4 py-0.5",children:a})})]})}function Vv({className:e}){let t=go(),r=Ge(),n=t.isMobile?t.mobileOpen?t.closeLabel??r.closeSidebar:r.openSidebar:t.collapsed?r.expandSidebar:r.collapseSidebar;return jsx("button",{type:"button",onClick:t.toggle,className:g("p-1.5 rounded-md text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors cursor-pointer",e),"aria-label":n,"data-testid":"sidebar-toggle",children:jsx(Pv,{className:g("transition-transform duration-200",t.collapsed&&"rotate-180",t.position==="right"&&!t.collapsed&&"rotate-180",t.position==="right"&&t.collapsed&&"rotate-0")})})}function yl({data:e,width:t=96,height:r=28,curve:n="monotone",color:o=Ja[0],strokeWidth:a=2,area:s=false,emphasizeLast:l=false,domain:i,ariaLabel:c,className:d,...u}){let b=Math.max(a/2,l?a+2.5:0),m=i??Kt(e)??[0,1],p=Dr([0,Math.max(1,e.length-1)],[b,t-b]),C=Dr(m,[r-b,b]),v=e.map((y,z)=>({x:p(z),y:y==null?Number.NaN:C(y),defined:y!=null&&Number.isFinite(y)})),k=[...v].reverse().find(y=>y.defined!==false);return jsxs("svg",{width:t,height:r,viewBox:`0 0 ${t} ${r}`,className:g("overflow-visible",d),role:c?"img":void 0,"aria-label":c,"aria-hidden":c?void 0:true,...u,children:[s?jsx("path",{d:ga(v,r-b,n),fill:o,fillOpacity:.12,stroke:"none"}):null,jsx("path",{d:$r(v,n),fill:"none",stroke:o,strokeWidth:a,strokeLinecap:"round",strokeLinejoin:"round",vectorEffect:"non-scaling-stroke"}),l&&k?jsx("circle",{cx:k.x,cy:k.y,r:a,fill:o,strokeWidth:2,className:"stroke-white dark:stroke-gray-800"}):null]})}var Fv={sm:"p-3",md:"p-4",lg:"p-5"},Ov={sm:"text-[11px]",md:"text-xs",lg:"text-sm"},$v={sm:"text-xl",md:"text-2xl",lg:"text-3xl"},Lu={sm:{width:72,height:22},md:{width:96,height:28},lg:{width:120,height:34}};function _v(e){return e.direction?e.direction:e.value>0?"up":e.value<0?"down":"flat"}function Xv(e,t){return e==="flat"||t==="neutral"?"text-gray-500 dark:text-gray-400":e===t?"text-green-600 dark:text-green-400":"text-red-600 dark:text-red-400"}function Gv({direction:e}){return e==="flat"?jsx("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"currentColor","aria-hidden":"true",children:jsx("rect",{x:"1",y:"4.25",width:"8",height:"1.5",rx:"0.75"})}):jsx("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"currentColor","aria-hidden":"true",children:jsx("path",{d:e==="up"?"M5 1 L9.5 8 L0.5 8 Z":"M5 9 L0.5 2 L9.5 2 Z"})})}function Kv({label:e,value:t,format:r,delta:n,trend:o,trendColor:a,icon:s,size:l="md",loading:i=false,variant:c="card",footer:d,className:u,...b}){let m=typeof t=="number"?(r??rt)(t):t,p=n?_v(n):"flat",C=n?(n.format??(v=>Gt(v,{signed:true})))(n.value):null;return jsxs("div",{className:g("flex flex-col gap-2",c==="card"&&g("rounded-lg border border-gray-200 bg-white dark:border-gray-700 dark:bg-gray-800",Fv[l]),u),...b,children:[jsxs("div",{className:"flex items-start justify-between gap-2",children:[jsx("span",{className:g("font-medium text-gray-500 dark:text-gray-400",Ov[l]),children:e}),s?jsx("span",{className:"shrink-0 text-gray-400",children:s}):null]}),jsxs("div",{className:"flex items-end justify-between gap-3",children:[jsxs("div",{className:"flex min-w-0 flex-col gap-1",children:[i?jsx("div",{className:"flex items-center",style:{height:l==="lg"?30:24},"aria-busy":"true","aria-live":"polite",children:jsx(xo,{indeterminate:true,size:l==="lg"?"sm":"xs",thickness:"thin","aria-hidden":"true"})}):jsx("span",{className:g("leading-none font-semibold text-gray-900 dark:text-gray-100",$v[l]),children:m}),n&&!i?jsxs("span",{className:g("flex items-center gap-1 text-xs font-medium",Xv(p,n.goodWhen??"up")),children:[jsx(Gv,{direction:p}),C,n.period?jsx("span",{className:"font-normal text-gray-500 dark:text-gray-400",children:n.period}):null]}):null]}),o&&o.length>0&&!i?jsx(yl,{data:o,color:a,emphasizeLast:true,area:true,width:Lu[l].width,height:Lu[l].height,className:"shrink-0"}):null]}),d?jsx("div",{className:"text-xs text-gray-500 dark:text-gray-400",children:d}):null]})}var Uv={1:"sm:grid-cols-1",2:"sm:grid-cols-2",3:"sm:grid-cols-3",4:"sm:grid-cols-2 lg:grid-cols-4"};function Yv({columns:e=4,className:t,children:r,...n}){return jsx("div",{className:g("grid grid-cols-1 gap-3",Uv[e],t),...n,children:r})}var jv={text:"rounded h-4 w-full",circular:"rounded-full",rectangular:"rounded-none",rounded:"rounded-lg"},Zv={pulse:"animate-pulse",wave:"animate-shimmer bg-gradient-to-r from-gray-200 via-gray-100 to-gray-200 dark:from-gray-700 dark:via-gray-600 dark:to-gray-700 bg-[length:200%_100%]",none:""},Qv="bg-gray-200 dark:bg-gray-700";function Mu({variant:e="text",animation:t="pulse",width:r,height:n,count:o=1,className:a,style:s,...l}){let i={...r!==void 0&&{width:typeof r=="number"?`${r}px`:r},...n!==void 0&&{height:typeof n=="number"?`${n}px`:n},...s};e==="circular"&&r&&!n&&(i.height=i.width);let c=g(Qv,jv[e],Zv[t],a);return o===1?jsx("div",{className:c,style:i,"aria-busy":"true","aria-live":"polite",...l}):jsx("div",{className:"space-y-2",children:Array.from({length:o}).map((d,u)=>jsx("div",{className:c,style:i,"aria-busy":"true","aria-live":"polite",...l},u))})}Mu.displayName="Skeleton";var n1={sm:"h-1",md:"h-1.5",lg:"h-2"},o1={sm:"w-3.5 h-3.5",md:"w-4 h-4",lg:"w-5 h-5"},a1={sm:14,md:16,lg:20},s1="[&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:rounded-full [&::-moz-range-thumb]:appearance-none [&::-moz-range-thumb]:rounded-full [&::-moz-range-thumb]:border-0",i1={sm:"[&::-webkit-slider-thumb]:h-3.5 [&::-webkit-slider-thumb]:w-3.5 [&::-moz-range-thumb]:h-3.5 [&::-moz-range-thumb]:w-3.5",md:"[&::-webkit-slider-thumb]:h-4 [&::-webkit-slider-thumb]:w-4 [&::-moz-range-thumb]:h-4 [&::-moz-range-thumb]:w-4",lg:"[&::-webkit-slider-thumb]:h-5 [&::-webkit-slider-thumb]:w-5 [&::-moz-range-thumb]:h-5 [&::-moz-range-thumb]:w-5"},l1={sm:"h-4",md:"h-5",lg:"h-6"},c1={primary:"bg-blue-600 dark:bg-blue-500",success:"bg-green-600 dark:bg-green-500",warning:"bg-yellow-500 dark:bg-yellow-400",error:"bg-red-600 dark:bg-red-500",info:"bg-cyan-600 dark:bg-cyan-500",neutral:"bg-gray-600 dark:bg-gray-400"},d1={primary:"border-blue-600 dark:border-blue-500",success:"border-green-600 dark:border-green-500",warning:"border-yellow-500 dark:border-yellow-400",error:"border-red-600 dark:border-red-500",info:"border-cyan-600 dark:border-cyan-500",neutral:"border-gray-600 dark:border-gray-400"},u1={primary:"peer-focus-visible:ring-blue-500",success:"peer-focus-visible:ring-green-500",warning:"peer-focus-visible:ring-yellow-500",error:"peer-focus-visible:ring-red-500",info:"peer-focus-visible:ring-cyan-500",neutral:"peer-focus-visible:ring-gray-500"},m1={primary:"text-blue-600 dark:text-blue-400",success:"text-green-600 dark:text-green-400",warning:"text-yellow-600 dark:text-yellow-400",error:"text-red-600 dark:text-red-400",info:"text-cyan-600 dark:text-cyan-400",neutral:"text-gray-700 dark:text-gray-300"},Iu=(e,t,r)=>Math.min(r,Math.max(t,e)),vl=(e,t,r)=>r>t?(Iu(e,t,r)-t)/(r-t)*100:0,Bs=(e,t)=>{let r=(.5-e/100)*t,n=Math.round(Math.abs(r)*1e3)/1e3;return `calc(${e}% ${r<0?"-":"+"} ${n}px)`},g1=(e,t,r,n)=>{if(!e)return [];if(Array.isArray(e))return e;let o=n>0?n:1,a=Math.floor((r-t)/o);return a<=0||a>20?[{value:t},{value:r}]:Array.from({length:a+1},(s,l)=>({value:t+l*o}))},Au=forwardRef(({value:e,defaultValue:t,onValueChange:r,min:n=0,max:o=100,step:a=1,size:s="md",color:l="primary",disabled:i=false,readOnly:c=false,label:d,description:u,error:b=false,showValue:m=false,showTooltip:p=false,valueFormat:C,marks:v,trackColor:k,fillColor:y,thumbColor:z,className:h,containerClassName:R,id:f,...N},L)=>{let[E,I]=useState(t??n),w=e!==void 0,M=Iu(w?e:E,n,o),T=useId(),P=f??T,x=typeof b=="string"?b:void 0,D=!!b,S=!i&&!c,B=D?"error":l,H=vl(M,n,o),$=a1[s],_=j=>{if(!S)return;let O=Number(j.target.value);w||I(O),r?.(O);},F=useMemo(()=>g1(v,n,o,a),[v,n,o,a]),A=F.some(j=>j.label!=null),V=C?C(M):`${M}`,Y={width:Bs(H,$)};y&&(Y.backgroundColor=y);let X={left:Bs(H,$)};z&&(X.backgroundColor=z,X.borderColor=z);let G=k?{backgroundColor:k}:{};return jsxs("div",{className:g("w-full",R),children:[(d||m)&&jsxs("div",{className:"flex items-center justify-between mb-1.5",children:[d?jsx("label",{htmlFor:P,className:g("text-sm font-medium text-gray-700 dark:text-gray-200",i&&"opacity-50"),children:d}):jsx("span",{}),m&&jsx("span",{className:g("text-sm font-semibold tabular-nums",m1[B]),children:V})]}),jsxs("div",{className:g("relative flex items-center",l1[s],i&&"opacity-50"),children:[jsx("input",{ref:L,type:"range",id:P,min:n,max:o,step:a,value:M,onChange:_,disabled:i,readOnly:c,"aria-invalid":D,"aria-readonly":c||void 0,"aria-describedby":x?`${P}-error`:void 0,tabIndex:S?void 0:-1,className:g("peer absolute inset-0 z-10 m-0 h-full w-full cursor-pointer appearance-none bg-transparent opacity-0",s1,i1[s],!S&&"pointer-events-none cursor-default",h),...N}),jsxs("div",{className:g("pointer-events-none relative w-full overflow-hidden rounded-full bg-gray-200 dark:bg-gray-700",n1[s]),style:G,children:[jsx("div",{className:g("absolute inset-y-0 left-0 rounded-full transition-[width] duration-150 ease-out",y?"":c1[B]),style:Y}),F.map((j,O)=>{let K=vl(j.value,n,o),se=j.value<=M;return jsx("span",{"data-slider-mark":"",className:g("absolute top-1/2 h-1 w-1 -translate-x-1/2 -translate-y-1/2 rounded-full",se?"bg-white/80":"bg-gray-400 dark:bg-gray-500"),style:{left:Bs(K,$)}},`mark-${j.value}-${O}`)})]}),jsx("div",{"data-slider-thumb":"",className:g("pointer-events-none absolute top-1/2 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 bg-white shadow transition-transform dark:bg-gray-100",o1[s],z?"":d1[B],S&&"peer-hover:scale-110 peer-active:scale-110","peer-focus-visible:scale-110 peer-focus-visible:ring-2 peer-focus-visible:ring-offset-2",u1[B]),style:X,children:p&&jsx("span",{"data-slider-tooltip":"",className:g("pointer-events-none absolute bottom-full left-1/2 mb-2 -translate-x-1/2 rounded bg-gray-900 px-1.5 py-0.5 text-xs font-medium text-white opacity-0 transition-opacity dark:bg-gray-700","peer-hover:opacity-100 peer-focus-visible:opacity-100 peer-active:opacity-100"),children:V})})]}),A&&jsx("div",{className:"relative mt-1.5 h-4",children:F.map((j,O)=>j.label!=null?jsx("span",{className:"absolute -translate-x-1/2 whitespace-nowrap text-xs text-gray-500 dark:text-gray-400",style:{left:Bs(vl(j.value,n,o),$)},children:j.label},`mark-label-${j.value}-${O}`):null)}),u&&!x&&jsx("p",{className:"mt-1.5 text-sm text-gray-500 dark:text-gray-400",children:u}),x&&jsx("p",{id:`${P}-error`,className:"mt-1.5 text-sm text-red-500 dark:text-red-400",children:x})]})});Au.displayName="Slider";var kl=createContext(null);function Ko(){let e=useContext(kl);if(!e)throw new Error("Tabs components must be used within a Tabs provider");return e}function Wu({children:e,defaultValue:t="",value:r,onValueChange:n,variant:o="underline",size:a="md",color:s="default",fullWidth:l=false,orientation:i="horizontal",className:c}){let[d,u]=useState(t),b=r!==void 0,m=b?r:d,p=useCallback(v=>{b||u(v),n?.(v);},[b,n]),C=useMemo(()=>({value:m,onValueChange:p,variant:o,size:a,color:s,orientation:i,fullWidth:l}),[m,p,o,a,s,i,l]);return jsx(kl.Provider,{value:C,children:jsx("div",{className:g("w-full",i==="vertical"&&"flex gap-4",c),"data-orientation":i,children:e})})}Wu.displayName="Tabs";var x1={none:"gap-0",sm:"gap-1",md:"gap-2",lg:"gap-4"};function Hu({children:e,className:t,bgColor:r,gap:n="none"}){let{variant:o,orientation:a,fullWidth:s}=Ko(),l=g("flex",a==="vertical"?"flex-col":"flex-row items-center",x1[n]),i={underline:"border-b border-gray-200 dark:border-gray-700",pills:g("p-1 rounded-lg",r||"bg-gray-100 dark:bg-gray-800"),enclosed:"border-b border-gray-200 dark:border-gray-700",soft:g("p-1 rounded-lg",r||"bg-gray-100/50 dark:bg-gray-800/50")};return jsx("div",{role:"tablist","aria-orientation":a,className:g(l,i[o],s&&"w-full",t),children:e})}Hu.displayName="TabsList";var k1={sm:"px-3 py-1.5 text-xs gap-1.5",md:"px-4 py-2 text-sm gap-2",lg:"px-5 py-2.5 text-base gap-2"},Vu={sm:"w-3.5 h-3.5",md:"w-4 h-4",lg:"w-5 h-5"},Bu={default:{underline:{active:"text-gray-900 dark:text-white border-gray-900 dark:border-white",inactive:"text-gray-500 dark:text-gray-400 border-transparent hover:text-gray-700 dark:hover:text-gray-300"},pills:{active:"bg-white dark:bg-gray-700 text-gray-900 dark:text-white shadow-sm",inactive:"text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white"},enclosed:{active:"bg-white dark:bg-gray-800 text-gray-900 dark:text-white border-gray-200 dark:border-gray-700 border-b-white dark:border-b-gray-800",inactive:"text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300 border-transparent"},soft:{active:"bg-gray-200 dark:bg-gray-700 text-gray-900 dark:text-white",inactive:"text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white hover:bg-gray-100 dark:hover:bg-gray-700/50"}},primary:{underline:{active:"text-blue-600 dark:text-blue-400 border-blue-600 dark:border-blue-400",inactive:"text-gray-500 dark:text-gray-400 border-transparent hover:text-blue-600 dark:hover:text-blue-400"},pills:{active:"bg-blue-600 text-white",inactive:"text-gray-600 dark:text-gray-400 hover:text-blue-600 dark:hover:text-blue-400"},enclosed:{active:"bg-blue-50 dark:bg-blue-900/20 text-blue-600 dark:text-blue-400 border-blue-200 dark:border-blue-800 border-b-blue-50 dark:border-b-blue-900/20",inactive:"text-gray-500 dark:text-gray-400 hover:text-blue-600 dark:hover:text-blue-400 border-transparent"},soft:{active:"bg-blue-100 dark:bg-blue-900/50 text-blue-700 dark:text-blue-300",inactive:"text-gray-600 dark:text-gray-400 hover:text-blue-600 dark:hover:text-blue-400 hover:bg-blue-50 dark:hover:bg-blue-900/20"}},secondary:{underline:{active:"text-purple-600 dark:text-purple-400 border-purple-600 dark:border-purple-400",inactive:"text-gray-500 dark:text-gray-400 border-transparent hover:text-purple-600 dark:hover:text-purple-400"},pills:{active:"bg-purple-600 text-white",inactive:"text-gray-600 dark:text-gray-400 hover:text-purple-600 dark:hover:text-purple-400"},enclosed:{active:"bg-purple-50 dark:bg-purple-900/20 text-purple-600 dark:text-purple-400 border-purple-200 dark:border-purple-800 border-b-purple-50 dark:border-b-purple-900/20",inactive:"text-gray-500 dark:text-gray-400 hover:text-purple-600 dark:hover:text-purple-400 border-transparent"},soft:{active:"bg-purple-100 dark:bg-purple-900/50 text-purple-700 dark:text-purple-300",inactive:"text-gray-600 dark:text-gray-400 hover:text-purple-600 dark:hover:text-purple-400 hover:bg-purple-50 dark:hover:bg-purple-900/20"}},success:{underline:{active:"text-green-600 dark:text-green-400 border-green-600 dark:border-green-400",inactive:"text-gray-500 dark:text-gray-400 border-transparent hover:text-green-600 dark:hover:text-green-400"},pills:{active:"bg-green-600 text-white",inactive:"text-gray-600 dark:text-gray-400 hover:text-green-600 dark:hover:text-green-400"},enclosed:{active:"bg-green-50 dark:bg-green-900/20 text-green-600 dark:text-green-400 border-green-200 dark:border-green-800 border-b-green-50 dark:border-b-green-900/20",inactive:"text-gray-500 dark:text-gray-400 hover:text-green-600 dark:hover:text-green-400 border-transparent"},soft:{active:"bg-green-100 dark:bg-green-900/50 text-green-700 dark:text-green-300",inactive:"text-gray-600 dark:text-gray-400 hover:text-green-600 dark:hover:text-green-400 hover:bg-green-50 dark:hover:bg-green-900/20"}},warning:{underline:{active:"text-yellow-600 dark:text-yellow-400 border-yellow-600 dark:border-yellow-400",inactive:"text-gray-500 dark:text-gray-400 border-transparent hover:text-yellow-600 dark:hover:text-yellow-400"},pills:{active:"bg-yellow-500 text-white",inactive:"text-gray-600 dark:text-gray-400 hover:text-yellow-600 dark:hover:text-yellow-400"},enclosed:{active:"bg-yellow-50 dark:bg-yellow-900/20 text-yellow-600 dark:text-yellow-400 border-yellow-200 dark:border-yellow-800 border-b-yellow-50 dark:border-b-yellow-900/20",inactive:"text-gray-500 dark:text-gray-400 hover:text-yellow-600 dark:hover:text-yellow-400 border-transparent"},soft:{active:"bg-yellow-100 dark:bg-yellow-900/50 text-yellow-700 dark:text-yellow-300",inactive:"text-gray-600 dark:text-gray-400 hover:text-yellow-600 dark:hover:text-yellow-400 hover:bg-yellow-50 dark:hover:bg-yellow-900/20"}},error:{underline:{active:"text-red-600 dark:text-red-400 border-red-600 dark:border-red-400",inactive:"text-gray-500 dark:text-gray-400 border-transparent hover:text-red-600 dark:hover:text-red-400"},pills:{active:"bg-red-600 text-white",inactive:"text-gray-600 dark:text-gray-400 hover:text-red-600 dark:hover:text-red-400"},enclosed:{active:"bg-red-50 dark:bg-red-900/20 text-red-600 dark:text-red-400 border-red-200 dark:border-red-800 border-b-red-50 dark:border-b-red-900/20",inactive:"text-gray-500 dark:text-gray-400 hover:text-red-600 dark:hover:text-red-400 border-transparent"},soft:{active:"bg-red-100 dark:bg-red-900/50 text-red-700 dark:text-red-300",inactive:"text-gray-600 dark:text-gray-400 hover:text-red-600 dark:hover:text-red-400 hover:bg-red-50 dark:hover:bg-red-900/20"}}},C1={underline:"border-b-2 -mb-px",pills:"rounded-md",enclosed:"border border-b-0 rounded-t-md -mb-px",soft:"rounded-md"};function Fu({value:e,children:t,disabled:r=false,icon:n,endIcon:o,className:a,activeClassName:s,inactiveClassName:l}){let{value:i,onValueChange:c,variant:d,size:u,color:b,fullWidth:m}=Ko(),p=i===e,C=()=>{r||c(e);},v=h=>{(h.key==="Enter"||h.key===" ")&&(h.preventDefault(),C());},k=g("inline-flex items-center justify-center font-medium transition-all duration-200","focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-blue-500",k1[u],m&&"flex-1"),y=p?g(Bu[b][d].active,s):g(Bu[b][d].inactive,l),z=r?"opacity-50 cursor-not-allowed":"cursor-pointer";return jsxs("button",{type:"button",role:"tab","aria-selected":p,"aria-disabled":r,tabIndex:p?0:-1,onClick:C,onKeyDown:v,disabled:r,className:g(k,C1[d],y,z,a),children:[n&&jsx("span",{className:g("shrink-0",Vu[u]),children:n}),jsx("span",{children:t}),o&&jsx("span",{className:g("shrink-0",Vu[u]),children:o})]})}Fu.displayName="TabsTrigger";function Ou({value:e,children:t,className:r,forceMount:n=false}){let{value:o}=Ko(),a=o===e;return !a&&!n?null:jsx("div",{role:"tabpanel",hidden:!a,tabIndex:0,className:g("mt-4 focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-blue-500 rounded-md",!a&&"hidden",r),children:t})}Ou.displayName="TabsContent";function S1({className:e}){return jsx("svg",{className:e,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:jsx("path",{d:"M9 12L11 14L15 10M21 12C21 16.97 16.97 21 12 21C7.03 21 3 16.97 3 12C3 7.03 7.03 3 12 3C16.97 3 21 7.03 21 12Z",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}function R1({className:e}){return jsx("svg",{className:e,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:jsx("path",{d:"M12 8V12M12 16H12.01M21 12C21 16.97 16.97 21 12 21C7.03 21 3 16.97 3 12C3 7.03 7.03 3 12 3C16.97 3 21 7.03 21 12Z",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}function T1({className:e}){return jsx("svg",{className:e,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:jsx("path",{d:"M12 9V13M12 17H12.01M10.29 3.86L1.82 18C1.65 18.3 1.55 18.65 1.55 18.99C1.55 19.34 1.64 19.69 1.81 19.99C1.99 20.29 2.24 20.55 2.54 20.72C2.84 20.901 3.18 20.99 3.53 21H20.47C20.82 20.99 21.16 20.901 21.46 20.72C21.76 20.55 22.01 20.29 22.19 19.99C22.36 19.69 22.449 19.34 22.448 18.99C22.447 18.65 22.35 18.3 22.18 18L13.71 3.86C13.53 3.57 13.28 3.32 12.98 3.15C12.68 2.99 12.34 2.9 12 2.9C11.66 2.9 11.32 2.99 11.02 3.15C10.72 3.32 10.47 3.57 10.29 3.86Z",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}function $u({className:e}){return jsx("svg",{className:e,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:jsx("path",{d:"M13 16H12V12H11M12 8H12.01M21 12C21 16.97 16.97 21 12 21C7.03 21 3 16.97 3 12C3 7.03 7.03 3 12 3C16.97 3 21 7.03 21 12Z",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}function P1({className:e}){return jsx("svg",{className:e,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:jsx("path",{d:"M4 4L12 12M12 4L4 12",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}var E1={success:S1,error:R1,warning:T1,info:$u,default:$u},D1={success:{solid:"bg-green-600 text-white border-green-600",outlined:"bg-white text-green-700 border-green-600 dark:bg-gray-900 dark:text-green-400",soft:"bg-green-50 text-green-700 border-green-200 dark:bg-green-900/20 dark:text-green-400 dark:border-green-800"},error:{solid:"bg-red-600 text-white border-red-600",outlined:"bg-white text-red-700 border-red-600 dark:bg-gray-900 dark:text-red-400",soft:"bg-red-50 text-red-700 border-red-200 dark:bg-red-900/20 dark:text-red-400 dark:border-red-800"},warning:{solid:"bg-yellow-500 text-white border-yellow-500",outlined:"bg-white text-yellow-700 border-yellow-500 dark:bg-gray-900 dark:text-yellow-400",soft:"bg-yellow-50 text-yellow-700 border-yellow-200 dark:bg-yellow-900/20 dark:text-yellow-400 dark:border-yellow-800"},info:{solid:"bg-blue-600 text-white border-blue-600",outlined:"bg-white text-blue-700 border-blue-600 dark:bg-gray-900 dark:text-blue-400",soft:"bg-blue-50 text-blue-700 border-blue-200 dark:bg-blue-900/20 dark:text-blue-400 dark:border-blue-800"},default:{solid:"bg-gray-700 text-white border-gray-700",outlined:"bg-white text-gray-700 border-gray-300 dark:bg-gray-900 dark:text-gray-300",soft:"bg-gray-50 text-gray-700 border-gray-200 dark:bg-gray-800 dark:text-gray-300 dark:border-gray-700"}},L1={success:"text-green-600 dark:text-green-400",error:"text-red-600 dark:text-red-400",warning:"text-yellow-600 dark:text-yellow-400",info:"text-blue-600 dark:text-blue-400",default:"text-gray-600 dark:text-gray-400"};function Xu({children:e,title:t,description:r,type:n="default",variant:o="soft",icon:a,action:s,onClose:l,closable:i=true,className:c,...d}){let u=E1[n],b=jsx(u,{className:"w-5 h-5"}),m=e??r;return jsxs("div",{role:"alert",className:g("flex items-start gap-3 p-4 rounded-lg border shadow-lg min-w-[320px] max-w-md","animate-in slide-in-from-top-2 fade-in duration-300",D1[n][o],c),...d,children:[jsx("div",{className:g("flex-shrink-0 mt-0.5",o==="solid"?"text-white":L1[n]),children:a??b}),jsxs("div",{className:"flex-1 min-w-0",children:[t&&jsx("div",{className:"font-semibold text-sm mb-1",children:t}),m&&jsx("div",{className:"text-sm opacity-90",children:m}),s&&jsx("div",{className:"mt-3",children:s})]}),i&&jsx("button",{type:"button",onClick:l,className:g("flex-shrink-0 rounded-md p-1 transition-colors hover:bg-black/10 dark:hover:bg-white/10","focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-current",o==="solid"?"text-white":""),"aria-label":"Close notification",children:jsx(P1,{className:"w-4 h-4"})})]})}Xu.displayName="Toast";var A1={default:"bg-gray-900 text-white dark:bg-gray-700",light:"bg-white text-gray-900 border border-gray-200 shadow-lg dark:bg-gray-800 dark:text-white dark:border-gray-600",error:"bg-red-600 text-white",success:"bg-green-600 text-white",warning:"bg-yellow-500 text-white",info:"bg-blue-600 text-white"},z1={default:{top:"border-t-gray-900 dark:border-t-gray-700",bottom:"border-b-gray-900 dark:border-b-gray-700",left:"border-l-gray-900 dark:border-l-gray-700",right:"border-r-gray-900 dark:border-r-gray-700"},light:{top:"border-t-white dark:border-t-gray-800",bottom:"border-b-white dark:border-b-gray-800",left:"border-l-white dark:border-l-gray-800",right:"border-r-white dark:border-r-gray-800"},error:{top:"border-t-red-600",bottom:"border-b-red-600",left:"border-l-red-600",right:"border-r-red-600"},success:{top:"border-t-green-600",bottom:"border-b-green-600",left:"border-l-green-600",right:"border-r-green-600"},warning:{top:"border-t-yellow-500",bottom:"border-b-yellow-500",left:"border-l-yellow-500",right:"border-r-yellow-500"},info:{top:"border-t-blue-600",bottom:"border-b-blue-600",left:"border-l-blue-600",right:"border-r-blue-600"}},W1={sm:"px-2 py-1 text-xs",md:"px-3 py-1.5 text-sm",lg:"px-4 py-2 text-base"},H1={sm:"border-4",md:"border-[5px]",lg:"border-[6px]"},V1={top:"bottom-full left-1/2 -translate-x-1/2 mb-2",bottom:"top-full left-1/2 -translate-x-1/2 mt-2",left:"right-full top-1/2 -translate-y-1/2 mr-2",right:"left-full top-1/2 -translate-y-1/2 ml-2"},B1={top:"top-full left-1/2 -translate-x-1/2 border-l-transparent border-r-transparent border-b-transparent",bottom:"bottom-full left-1/2 -translate-x-1/2 border-l-transparent border-r-transparent border-t-transparent",left:"left-full top-1/2 -translate-y-1/2 border-t-transparent border-b-transparent border-r-transparent",right:"right-full top-1/2 -translate-y-1/2 border-t-transparent border-b-transparent border-l-transparent"};function zt({children:e,content:t,position:r="top",variant:n="default",size:o="md",trigger:a="hover",open:s,delay:l=0,showArrow:i=true,maxWidth:c="max-w-xs",className:d,contentClassName:u,disabled:b=false,...m}){let[p,C]=useState(false),v=useRef(null),k=useCallback(()=>{b||(l>0?v.current=setTimeout(()=>C(true),l):C(true));},[l,b]),y=useCallback(()=>{v.current&&(clearTimeout(v.current),v.current=null),C(false);},[]),z=useCallback(()=>{b||C(f=>!f);},[b]),h=a==="manual"?s:p,R={hover:{onMouseEnter:k,onMouseLeave:y,onFocus:k,onBlur:y},click:{onClick:z},manual:{}}[a];return jsxs("div",{className:g("relative inline-flex",d),...R,...m,children:[e,h&&!b&&jsxs("div",{role:"tooltip",className:g("absolute z-50 whitespace-normal wrap-break-word rounded-md","transition-opacity duration-150",V1[r],A1[n],W1[o],c,u),children:[t,i&&jsx("span",{className:g("absolute w-0 h-0 border-solid",H1[o],B1[r],z1[n][r]),"aria-hidden":"true"})]})]})}zt.displayName="Tooltip";function O1(e){switch(e){case "bordered":return "border-t border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-900 text-gray-700 dark:text-gray-300";case "minimal":return "bg-transparent text-gray-600 dark:text-gray-400";case "dark":return "bg-gray-900 text-gray-300";default:return "bg-gray-100 dark:bg-gray-800 text-gray-700 dark:text-gray-300"}}function $1(e){switch(e){case "sm":return "py-6";case "lg":return "py-16";default:return "py-10"}}function Uu({variant:e="default",size:t="md",sticky:r=false,className:n,children:o,...a}){return jsx("footer",{className:g(O1(e),$1(t),r&&"sticky bottom-0 z-40",n),...a,children:jsx("div",{className:"container mx-auto px-4",children:o})})}Uu.displayName="Footer";function _1(e){switch(e){case 1:return "grid-cols-1";case 2:return "grid-cols-1 sm:grid-cols-2";case 3:return "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3";case 4:return "grid-cols-1 sm:grid-cols-2 lg:grid-cols-4";case 5:return "grid-cols-1 sm:grid-cols-2 lg:grid-cols-5";case 6:return "grid-cols-2 sm:grid-cols-3 lg:grid-cols-6";default:return ""}}function Yu({title:e,titleClassName:t,columns:r,className:n,children:o,...a}){return jsxs("div",{className:g(r&&"grid gap-8",_1(r),n),...a,children:[e&&jsx("h3",{className:g("text-sm font-semibold uppercase tracking-wider text-gray-900 dark:text-white",r&&"col-span-full",t),children:e}),o]})}Yu.displayName="FooterSection";function qu({title:e,titleClassName:t,className:r,children:n,...o}){return jsxs("div",{className:g("flex flex-col gap-3",r),...o,children:[e&&jsx("h4",{className:g("text-sm font-semibold uppercase tracking-wider text-gray-900 dark:text-white",t),children:e}),n]})}qu.displayName="FooterColumn";function ju({external:e=false,className:t,children:r,...n}){return jsx("a",{className:g("text-sm text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white transition-colors",t),target:e?"_blank":void 0,rel:e?"noopener noreferrer":void 0,...n,children:r})}ju.displayName="FooterLink";function Zu({copyright:e,className:t,children:r,...n}){return jsxs("div",{className:g("mt-8 border-t border-gray-200 dark:border-gray-700 pt-6 flex flex-col sm:flex-row items-center justify-between gap-4",t),...n,children:[e&&jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:e}),r]})}Zu.displayName="FooterBottom";function Qu({className:e,children:t,...r}){return jsx("div",{className:g("flex items-center gap-4",e),...r,children:t})}Qu.displayName="FooterSocial";function Ju({icon:e,label:t,className:r,...n}){return jsx("a",{className:g("text-gray-500 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white transition-colors",r),target:"_blank",rel:"noopener noreferrer","aria-label":t,...n,children:e})}Ju.displayName="FooterSocialLink";var Q1=4.5,J1=48,tm=false,ek=memo(function({points:t}){return jsx("g",{children:t.map(r=>jsx("circle",{cx:r.cx,cy:r.cy,r:r.r,fill:r.color,fillOpacity:.85,strokeWidth:2,className:"stroke-white dark:stroke-gray-800"},`${r.seriesKey}-${r.index}`))})});function tk({width:e,height:t,data:r,resolvedSeries:n,x:o,y:a,grid:s,size:l,bubble:i,trendLine:c,quadrants:d,pointRadius:u,margin:b,tooltip:m,onPointClick:p,plotLabel:C,formatValue:v,formatX:k}){let[y,z]=useState(null),h=useMemo(()=>{let N=n.filter(D=>!D.hidden),L=N.map(D=>D.key),E=Qt({width:e,height:t,data:r,x:{...o,scale:o.scale==="time"?"time":"linear"},y:a,bounds:Kt(ur(r,L)),margin:b,formatValue:v,formatX:k}),I=i?ur(r,[i.key]):[],w=i?Kt(I):null,[W,M]=i?.range??[4,14],T=D=>{if(!i||!w)return u;let S=Ee(D,i.key);if(S===null)return W;let[B,H]=w,$=H===B?1:(S-B)/(H-B);return Math.sqrt(W*W+$*(M*M-W*W))},P=[];N.forEach(D=>{r.forEach((S,B)=>{let H=Ee(S,D.key),$=E.categoryPositions[B];H===null||!Number.isFinite($)||P.push({seriesKey:D.key,seriesLabel:Xt(D),color:D.color,index:B,cx:$,cy:E.valueScale(H),r:T(S),xValue:Jr(E.xValues[B]),yValue:H});});});let x=null;if(c&&P.length>1){let D=P.length,S=P.reduce((F,A)=>F+A.xValue,0),B=P.reduce((F,A)=>F+A.yValue,0),H=P.reduce((F,A)=>F+A.xValue*A.yValue,0),$=P.reduce((F,A)=>F+A.xValue*A.xValue,0),_=D*$-S*S;if(_!==0){let F=(D*H-S*B)/_,A=(B-F*S)/D,V=P.map(j=>j.xValue),[Y,X]=[Math.min(...V),Math.max(...V)],G=P.map(j=>j.cx);x={x1:Math.min(...G),y1:E.valueScale(F*Y+A),x2:Math.max(...G),y2:E.valueScale(F*X+A)};}}return {visible:N,points:P,trend:x,xTicks:E.categoryTicks,yTicks:E.valueTicks,valueScale:E.valueScale,positions:E.categoryPositions,innerWidth:E.innerWidth,innerHeight:E.innerHeight,margin:E.margin,xValues:E.xValues}},[r,n,o,a,e,t,b,i,c,u,v,k]),R=useCallback(N=>{if(m===false||h.points.length===0)return;let L=N.currentTarget.getBoundingClientRect(),E=N.clientX-L.left-h.margin.left,I=N.clientY-L.top-h.margin.top,w=null,W=J1;for(let M of h.points){let T=Math.hypot(M.cx-E,M.cy-I);T<W&&(W=T,w=M);}z(w);},[m,h.points,h.margin]),f=useCallback(()=>{!p||!y||p({seriesKey:y.seriesKey,seriesLabel:y.seriesLabel,color:y.color,value:y.yValue,formattedValue:v(y.yValue),datum:r[y.index],index:y.index,x:h.xValues[y.index]});},[p,y,v,r,h.xValues]);return jsxs(Fragment,{children:[jsxs("svg",{width:e,height:t,role:"img","aria-label":C??h.visible.map(N=>Xt(N)).join(", "),tabIndex:0,className:"touch-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500",onPointerMove:R,onPointerLeave:()=>z(null),onBlur:()=>z(null),onClick:f,children:[jsxs("g",{transform:`translate(${h.margin.left}, ${h.margin.top})`,children:[jsx(Ot,{width:h.innerWidth,height:h.innerHeight,horizontal:s==="y"||s==="both"?h.yTicks.map(N=>N.offset):void 0,vertical:s==="x"||s==="both"?h.xTicks.map(N=>N.offset):void 0}),d?.y!==void 0?jsx("line",{x1:0,y1:h.valueScale(d.y),x2:h.innerWidth,y2:h.valueScale(d.y),stroke:"var(--color-chart-muted)",strokeWidth:1,strokeDasharray:"4 4"}):null,h.trend?jsx("line",{x1:h.trend.x1,y1:h.trend.y1,x2:h.trend.x2,y2:h.trend.y2,stroke:"var(--color-chart-muted)",strokeWidth:1.5,strokeDasharray:"4 4"}):null,jsx(ek,{points:h.points}),y?jsx("circle",{cx:y.cx,cy:y.cy,r:y.r+3,fill:"none",stroke:y.color,strokeWidth:2,"aria-hidden":"true"}):null]}),jsx("g",{transform:`translate(${h.margin.left}, ${h.margin.top+h.innerHeight})`,children:o.hidden?null:jsx(_e,{orientation:"bottom",ticks:h.xTicks,length:h.innerWidth,label:o.label,size:l})}),jsx("g",{transform:`translate(${h.margin.left}, ${h.margin.top})`,children:a?.hidden?null:jsx(_e,{orientation:"left",ticks:h.yTicks,length:h.innerHeight,showLine:false,label:a?.label,size:l})})]}),y&&m!==false?jsx(gt,{x:h.margin.left+y.cx,y:h.margin.top+y.cy,containerWidth:e,children:typeof m=="function"?m({x:h.xValues[y.index],xLabel:k(h.xValues[y.index],y.index),index:y.index,points:[{seriesKey:y.seriesKey,seriesLabel:y.seriesLabel,color:y.color,value:y.yValue,formattedValue:v(y.yValue),datum:r[y.index]}]}):jsx(Cr,{title:`${o.label??o.key} ${k(h.xValues[y.index],y.index)}`,points:[{seriesKey:y.seriesKey,seriesLabel:y.seriesLabel,color:y.color,value:y.yValue,formattedValue:v(y.yValue),datum:r[y.index]}]})}):null]})}function rk({data:e,series:t,x:r,y:n,height:o=280,width:a,size:s="md",grid:l="both",legend:i,tooltip:c=true,tableView:d=false,emphasis:u,title:b,description:m,loading:p=false,emptyState:C,onPointClick:v,bubble:k,trendLine:y=false,quadrants:z,pointRadius:h=Q1,legendToggle:R=true,margin:f,locale:N,plotLabel:L,className:E,...I}){let[w,W]=useState(()=>new Set);t.length>3&&!tm&&(tm=true,console.warn(`[@synertech/ui] A ScatterChart was given ${t.length} series. Any two marks can sit side by side here, and only the first ${3} palette slots stay tellable apart under that test: facet the chart instead.`));let M=useMemo(()=>t.map((H,$)=>({...H,hidden:H.hidden||w.has(H.key),color:Er(H,$,u)})),[t,w,u]),T=useMemo(()=>n?.format??(H=>rt(H,N)),[n?.format,N]),P=useMemo(()=>r.format??(H=>r.scale==="time"?Ke(H instanceof Date?H:new Date(Jr(H)),N):rt(Jr(H),N)),[r.format,r.scale,N]),x=useCallback(H=>{W($=>{let _=new Set($);return _.has(H)?_.delete(H):_.add(H),_});},[]),D=i===void 0?t.length>=2:i!==false,S=typeof i=="string"?i:"bottom",B=M.filter(H=>!H.hidden).length;return jsx(ut,{title:b,description:m,height:o,width:a,size:s,loading:p,empty:e.length===0||B===0,emptyState:C,tableView:d,legendPosition:S,legend:D?jsx($t,{items:Or(M,u),position:S,marker:"dot",size:s,onToggle:R?x:void 0}):void 0,table:d?jsx(It,{data:e,series:M,xKey:r.key,xLabel:r.label??r.key,formatX:P,formatValue:T,caption:typeof b=="string"?b:void 0}):void 0,className:E,...I,children:({width:H})=>jsx(tk,{width:H,height:o,data:e,resolvedSeries:M,x:r,y:n,grid:l,size:s,bubble:k,trendLine:y,quadrants:z,pointRadius:h,margin:f,tooltip:c,onPointClick:v,plotLabel:L,formatValue:T,formatX:P})})}var nm="se-grid-pattern",om=memo(function({gridSize:t,zoom:r}){let n=t*r;return jsxs("svg",{className:"absolute inset-0 w-full h-full pointer-events-none","aria-hidden":"true",children:[jsx("defs",{children:jsx("pattern",{id:nm,width:n,height:n,patternUnits:"userSpaceOnUse",children:jsx("circle",{cx:1,cy:1,r:1,className:"fill-gray-300 dark:fill-gray-600"})})}),jsx("rect",{width:"100%",height:"100%",fill:`url(#${nm})`})]})});function Fn(e,t){return e.collapsed?40:e.height?e.height:40+(e.notes?24:0)+e.fields.length*32+(t?36:0)}function Uo(e,t){return 40+(t?24:0)+e*32+32/2}function am(e,t,r){let n=e.fields.findIndex(i=>i.id===t);if(n===-1)return null;let o=e.width??260,a=!!e.notes,s=e.y+Uo(n,a);return {x:r==="left"?e.x+0:e.x+o-0,y:s}}function Rl(e,t){return Math.round(e/t)*t}function Oa(e,t,r){return Math.min(r,Math.max(t,e))}function $a(e,t,r,n){return {x:(e-n.left-r.x)/r.zoom,y:(t-n.top-r.y)/r.zoom}}function _s(e,t,r,n){let o=Math.abs(r-e),a=Math.max(50,o*.5),s=e+a,l=t,i=r-a;return `M ${e} ${t} C ${s} ${l}, ${i} ${n}, ${r} ${n}`}function sm(e,t,r,n,o=40){if(e.length===0)return {x:0,y:0,zoom:1};let a=1/0,s=1/0,l=-1/0,i=-1/0;for(let p of e){let C=p.width??260,v=Fn(p,n);a=Math.min(a,p.x),s=Math.min(s,p.y),l=Math.max(l,p.x+C),i=Math.max(i,p.y+v);}let c=l-a+o*2,d=i-s+o*2,u=Math.min(t/c,r/d,1),b=(t-c*u)/2-(a-o)*u,m=(r-d*u)/2-(s-o)*u;return {x:b,y:m,zoom:u}}var Xa=["text","varchar","char","int2","int4","int8","serial","bigserial","float4","float8","numeric","decimal","bool","date","time","timestamp","timestamptz","uuid","json","jsonb","bytea"];function im(){return `table-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function _a(){return `field-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function Tl(){return `rel-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function Pl(e="new_field"){return {id:_a(),name:e,type:"text",nullable:true}}function El(e,t,r="new_table"){return {id:im(),name:r,x:e,y:t,fields:[{id:_a(),name:"id",type:"serial",primaryKey:true},{id:_a(),name:"createdAt",type:"timestamp"},{id:_a(),name:"updatedAt",type:"timestamp"}]}}var Xs=()=>jsxs("svg",{className:"w-3.5 h-3.5 text-indigo-500 flex-shrink-0",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[jsx("path",{d:"M10 1l2 2-5 5M8.5 4.5L11 7"}),jsx("circle",{cx:"4.5",cy:"11.5",r:"3"})]}),cm=()=>jsxs("svg",{className:"w-3.5 h-3.5 flex-shrink-0",viewBox:"0 0 16 16",fill:"currentColor",children:[jsx("circle",{cx:"8",cy:"8",r:"6",className:"fill-blue-500"}),jsx("path",{d:"M5 8h6M8 5l3 3-3 3",stroke:"white",strokeWidth:"1.5",fill:"none",strokeLinecap:"round",strokeLinejoin:"round"})]}),ik=({collapsed:e})=>jsx("svg",{className:"w-3.5 h-3.5",viewBox:"0 0 16 16",fill:"currentColor",children:e?jsx("path",{d:"M6 3l5 5-5 5V3z"}):jsx("path",{d:"M3 6l5 5 5-5H3z"})}),dm=()=>jsx("svg",{className:"w-3.5 h-3.5 text-amber-500 flex-shrink-0",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:jsx("path",{d:"M3 2v12M7 4h6M7 8h4M7 12h5"})}),um=()=>jsx("svg",{className:"w-3.5 h-3.5 text-purple-500 flex-shrink-0",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:jsx("path",{d:"M4 2v8a4 4 0 008 0V2"})}),lk=()=>jsx("svg",{className:"w-3 h-3",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:jsx("path",{d:"M4 8h8"})}),ck=()=>jsxs("svg",{className:"w-3 h-3 text-gray-300",viewBox:"0 0 16 16",fill:"currentColor",children:[jsx("circle",{cx:"5",cy:"4",r:"1.5"}),jsx("circle",{cx:"11",cy:"4",r:"1.5"}),jsx("circle",{cx:"5",cy:"8",r:"1.5"}),jsx("circle",{cx:"11",cy:"8",r:"1.5"}),jsx("circle",{cx:"5",cy:"12",r:"1.5"}),jsx("circle",{cx:"11",cy:"12",r:"1.5"})]}),dk=memo(function({field:t,tableId:r,editable:n,readOnly:o,disabled:a,onFieldChange:s}){let[l,i]=useState(false),[c,d]=useState(t.defaultValue??""),u=n&&!o&&!a,b=()=>{i(false),s?.(r,t.id,{defaultValue:c||void 0});};return u?l?jsx("input",{className:"text-xs w-16 text-emerald-500 bg-transparent border-b border-emerald-300 outline-none focus:ring-0 p-0 flex-shrink-0","aria-label":`Default value for ${t.name}`,value:c,onChange:m=>d(m.target.value),onBlur:b,onKeyDown:m=>{m.key==="Enter"&&b(),m.key==="Escape"&&i(false);},onMouseDown:m=>m.stopPropagation(),autoFocus:true}):t.defaultValue?jsxs("button",{type:"button",className:"text-xs text-emerald-500 flex-shrink-0 truncate max-w-16 cursor-pointer",onClick:m=>{m.stopPropagation(),d(t.defaultValue??""),i(true);},onMouseDown:m=>m.stopPropagation(),title:`Default: ${t.defaultValue}`,children:["= ",t.defaultValue]}):jsx("button",{type:"button",className:"text-xs text-gray-300 flex-shrink-0 opacity-0 group-hover:opacity-30 hover:!opacity-100 cursor-pointer transition-opacity",onClick:m=>{m.stopPropagation(),d(""),i(true);},onMouseDown:m=>m.stopPropagation(),title:"Set default value",children:"= \u2205"}):t.defaultValue?jsxs("span",{className:"text-xs text-emerald-500 flex-shrink-0 truncate max-w-16",title:`Default: ${t.defaultValue}`,children:["= ",t.defaultValue]}):null}),gm=memo(function({table:t,selected:r,disabled:n,readOnly:o,editable:a,dropTarget:s,fieldTypes:l,onTableNameChange:i,onTableNotesChange:c,onToggleCollapse:d,onFieldChange:u,onFieldAdd:b,onFieldRemove:m,onFieldReorder:p,onResizeStart:C}){let v=t.width??260,k=t.collapsed??false,y=l.length>0?l:Xa,[z,h]=useState(null),[R,f]=useState(null),N=useRef(null),L=useCallback(x=>{i?.(t.id,x.target.value);},[t.id,i]),E=useCallback((x,D)=>{u?.(t.id,x,{name:D});},[t.id,u]),I=useCallback((x,D)=>{u?.(t.id,x,{type:D});},[t.id,u]),w=useCallback((x,D)=>{u?.(t.id,x,{primaryKey:!D});},[t.id,u]),W=useCallback((x,D)=>{u?.(t.id,x,{nullable:!D});},[t.id,u]),M=useCallback((x,D)=>{u?.(t.id,x,{indexed:!D});},[t.id,u]),T=useCallback((x,D)=>{u?.(t.id,x,{unique:!D});},[t.id,u]),P=useCallback(()=>{b?.(t.id);},[t.id,b]);return jsxs("div",{"data-table-id":t.id,className:g("absolute bg-white dark:bg-gray-800 border-2 border-dashed rounded-lg shadow-sm cursor-grab active:cursor-grabbing",t.height?"flex flex-col":void 0,s?"border-green-400 shadow-green-100 dark:shadow-green-900/30 shadow-md":r?"border-blue-500 shadow-blue-100 dark:shadow-blue-900/30":"border-gray-300 dark:border-gray-600",n&&"opacity-60",t.locked&&"!cursor-default"),style:{left:t.x,top:t.y,width:v,height:t.height,userSelect:"none",overflow:t.height?"hidden":void 0},children:[jsxs("div",{className:g("flex items-center justify-between px-3 gap-2","bg-gray-50 dark:bg-gray-700 border-b border-gray-200 dark:border-gray-600"),style:{height:40},children:[a&&!o&&!n?jsx("input",{className:"flex-1 min-w-0 text-sm font-semibold text-gray-800 dark:text-gray-100 bg-transparent border-none outline-none focus:ring-0 p-0 truncate cursor-text","aria-label":"Table name",value:t.name,onChange:L,onMouseDown:x=>x.stopPropagation()}):jsx("span",{className:"flex-1 min-w-0 text-sm font-semibold text-gray-800 dark:text-gray-100 truncate",children:t.name}),jsx("button",{type:"button",className:"flex-shrink-0 p-1 rounded hover:bg-gray-200 dark:hover:bg-gray-600 text-gray-500 dark:text-gray-400",onClick:x=>{x.stopPropagation(),d?.(t.id);},onMouseDown:x=>x.stopPropagation(),"aria-label":k?"Expand table":"Collapse table",children:jsx(ik,{collapsed:k})})]}),!k&&(a&&!o&&!n?jsx("div",{className:"px-3 border-b border-gray-100 dark:border-gray-700 flex items-center",style:{height:24},children:jsx("input",{className:"w-full text-xs italic text-gray-400 dark:text-gray-500 bg-transparent border-none outline-none focus:ring-0 p-0 placeholder-gray-400 dark:placeholder-gray-500","aria-label":"Table notes",placeholder:"Add notes...",value:t.notes??"",onChange:x=>c?.(t.id,x.target.value),onMouseDown:x=>x.stopPropagation()})}):t.notes?jsx("div",{className:"px-3 border-b border-gray-100 dark:border-gray-700 flex items-center",style:{height:24},children:jsx("span",{className:"text-xs italic text-gray-400 dark:text-gray-500 truncate",children:t.notes})}):null),!k&&jsxs("div",{className:t.height?"overflow-y-auto flex-1 min-h-0":void 0,children:[t.fields.map((x,D)=>jsxs("div",{"data-field-id":x.id,"data-table-id":t.id,className:g("flex items-center gap-1.5 pr-2 relative group",a&&!o&&!n?"pl-[18px]":"pl-2","border-b border-gray-100 dark:border-gray-700 last:border-b-0",s?"bg-blue-50/50 dark:bg-blue-900/10":"hover:bg-gray-50 dark:hover:bg-gray-750",z===D&&"opacity-40",R===D&&"!border-t-2 !border-t-blue-400"),style:{height:32},draggable:a&&!o&&!n,onDragStart:S=>{!a||o||n||(S.stopPropagation(),N.current=D,h(D),S.dataTransfer.effectAllowed="move",S.dataTransfer.setData("text/plain",String(D)));},onDragOver:S=>{N.current!==null&&(S.preventDefault(),S.stopPropagation(),f(D));},onDragLeave:()=>{R===D&&f(null);},onDrop:S=>{S.preventDefault(),S.stopPropagation(),N.current!==null&&N.current!==D&&p?.(t.id,N.current,D),N.current=null,h(null),f(null);},onDragEnd:()=>{N.current=null,h(null),f(null);},children:[jsx("div",{"data-connection-side":"left","data-field-id":x.id,"data-table-id":t.id,className:g("absolute -left-[5px] w-2.5 h-2.5 rounded-full border-2 border-white dark:border-gray-800 cursor-crosshair z-10 transition-all",s?"opacity-100 bg-green-400 scale-150 shadow-[0_0_6px_rgba(74,222,128,0.6)]":"opacity-0 group-hover:opacity-100 bg-blue-400"),style:{top:32/2-5}}),a&&!o&&!n&&jsx("span",{className:"absolute left-[3px] cursor-grab active:cursor-grabbing opacity-0 group-hover:opacity-100 transition-opacity z-10",style:{top:32/2-6},children:jsx(ck,{})}),a&&!o&&!n?jsx("button",{type:"button",className:g("w-4 text-xs font-bold flex-shrink-0 text-center cursor-pointer",x.nullable?"text-gray-400":"text-transparent"),onClick:S=>{S.stopPropagation(),W(x.id,x.nullable??false);},onMouseDown:S=>S.stopPropagation(),title:x.nullable?"Nullable":"Not nullable",children:"?"}):jsx("span",{className:g("w-4 text-xs font-bold flex-shrink-0 text-center",x.nullable?"text-gray-400":"text-transparent"),children:x.nullable?"?":""}),x.primaryKey&&x.foreignKey?jsxs("span",{className:"flex items-center gap-0.5 flex-shrink-0",children:[a&&!o&&!n?jsx("button",{type:"button",className:"flex-shrink-0 cursor-pointer",onClick:S=>{S.stopPropagation(),w(x.id,true);},onMouseDown:S=>S.stopPropagation(),title:"Primary Key (click to remove)",children:jsx(Xs,{})}):jsx(Xs,{}),jsx(cm,{})]}):x.primaryKey?a&&!o&&!n?jsx("button",{type:"button",className:"flex-shrink-0 cursor-pointer",onClick:S=>{S.stopPropagation(),w(x.id,true);},onMouseDown:S=>S.stopPropagation(),title:"Primary Key (click to remove)",children:jsx(Xs,{})}):jsx(Xs,{}):x.foreignKey?jsx(cm,{}):a&&!o&&!n?jsx("button",{type:"button",className:"w-3.5 h-3.5 flex-shrink-0 rounded text-gray-300 hover:text-indigo-400 transition-colors cursor-pointer",onClick:S=>{S.stopPropagation(),w(x.id,false);},onMouseDown:S=>S.stopPropagation(),title:"Set as Primary Key","aria-label":"Set as primary key",children:jsxs("svg",{className:"w-3.5 h-3.5",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",opacity:"0.3",children:[jsx("path",{d:"M10 1l2 2-5 5M8.5 4.5L11 7"}),jsx("circle",{cx:"4.5",cy:"11.5",r:"3"})]})}):jsx("span",{className:"w-3.5 flex-shrink-0"}),a&&!o&&!n?jsx("input",{className:g("flex-1 min-w-0 text-xs bg-transparent border-none outline-none focus:ring-0 p-0 truncate cursor-text",x.primaryKey?"text-blue-600 dark:text-blue-400 font-medium":"text-gray-700 dark:text-gray-300"),"aria-label":"Field name",value:x.name,onChange:S=>E(x.id,S.target.value),onMouseDown:S=>S.stopPropagation()}):jsx("span",{className:g("flex-1 min-w-0 text-xs truncate",x.primaryKey?"text-blue-600 dark:text-blue-400 font-medium":"text-gray-700 dark:text-gray-300"),children:x.name}),a&&!o&&!n?jsxs("select",{className:"text-xs text-gray-400 dark:text-gray-500 bg-transparent border-none outline-none focus:ring-0 p-0 cursor-pointer text-right",value:x.type,onChange:S=>I(x.id,S.target.value),onMouseDown:S=>S.stopPropagation(),children:[y.map(S=>jsx("option",{value:S,children:S},S)),!y.includes(x.type)&&jsx("option",{value:x.type,children:x.type})]}):jsx("span",{className:"text-xs text-gray-400 dark:text-gray-500 flex-shrink-0",children:x.type}),jsx(dk,{field:x,tableId:t.id,editable:a,readOnly:o,disabled:n,onFieldChange:u}),x.indexed&&jsx(dm,{}),x.unique&&jsx(um,{}),a&&!o&&!n&&jsxs("div",{className:"absolute right-1 top-0 bottom-0 flex items-center gap-0.5 opacity-0 group-hover:opacity-100 transition-opacity bg-gradient-to-l from-white via-white to-transparent dark:from-gray-800 dark:via-gray-800 pl-4 pr-1 z-10",children:[jsx("button",{type:"button",className:g("cursor-pointer transition-opacity",x.indexed?"opacity-100":"opacity-30 hover:opacity-100"),onClick:S=>{S.stopPropagation(),M(x.id,x.indexed??false);},onMouseDown:S=>S.stopPropagation(),title:x.indexed?"Indexed (click to remove)":"Add index",children:jsx(dm,{})}),jsx("button",{type:"button",className:g("cursor-pointer transition-opacity",x.unique?"opacity-100":"opacity-30 hover:opacity-100"),onClick:S=>{S.stopPropagation(),T(x.id,x.unique??false);},onMouseDown:S=>S.stopPropagation(),title:x.unique?"Unique (click to remove)":"Add unique constraint",children:jsx(um,{})}),jsx("button",{type:"button",className:"p-0.5 rounded text-gray-300 hover:text-red-500 hover:bg-red-50 dark:hover:bg-red-900/20 cursor-pointer",onClick:S=>{S.stopPropagation(),m?.(t.id,x.id);},onMouseDown:S=>S.stopPropagation(),title:"Remove field",children:jsx(lk,{})})]}),jsx("div",{"data-connection-side":"right","data-field-id":x.id,"data-table-id":t.id,className:g("absolute -right-[5px] w-2.5 h-2.5 rounded-full border-2 border-white dark:border-gray-800 cursor-crosshair z-10 transition-all",s?"opacity-100 bg-green-400 scale-150 shadow-[0_0_6px_rgba(74,222,128,0.6)]":"opacity-0 group-hover:opacity-100 bg-green-400"),style:{top:32/2-5}})]},x.id)),a&&!o&&!n&&jsxs("button",{type:"button",className:"flex items-center justify-center w-full gap-1 text-xs text-gray-400 hover:text-blue-500 hover:bg-gray-50 dark:hover:bg-gray-750 transition-colors cursor-pointer",style:{height:36},onClick:x=>{x.stopPropagation(),P();},onMouseDown:x=>x.stopPropagation(),children:[jsx("svg",{className:"w-3 h-3",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:jsx("path",{d:"M8 4v8M4 8h8"})}),"Add field"]})]}),!n&&!o&&jsx("div",{"data-resize-handle":"corner",className:"absolute -bottom-[5px] -right-[5px] w-[14px] h-[14px] cursor-nwse-resize z-20 group/resize",onMouseDown:x=>{x.stopPropagation(),x.preventDefault();let D=t.height??Fn(t,a);C?.(t.id,x.clientX,x.clientY,v,D);},children:jsxs("svg",{className:"w-full h-full text-gray-300 group-hover/resize:text-blue-400 transition-colors",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",children:[jsx("path",{d:"M12 2v10H2",opacity:"0"}),jsx("path",{d:"M6 12L12 6"}),jsx("path",{d:"M10 12L12 10"})]})})]})});function mk(e,t){let r=t.find(p=>p.id===e.from.tableId),n=t.find(p=>p.id===e.to.tableId);if(!r||!n||r.collapsed||n.collapsed)return null;let o=r.fields.findIndex(p=>p.id===e.from.fieldId),a=n.fields.findIndex(p=>p.id===e.to.fieldId);if(o===-1||a===-1)return null;let s=r.width??260,l=n.width??260,i=r.x+s/2,c=n.x+l/2,d=r.y+Uo(o,!!r.notes),u=n.y+Uo(a,!!n.notes),b,m;return i<=c?(b=r.x+s,m=n.x):(b=r.x,m=n.x+l),{x1:b,y1:d,x2:m,y2:u,cardinality:e.cardinality??"1:n"}}var Ml=["1:1","1:n","n:1","n:n"];function gk(e){let t=Ml.indexOf(e);return Ml[(t+1)%Ml.length]}var fm=memo(function({relations:t,tables:r,viewport:n,selectedRelationId:o,disabled:a,onRelationClick:s,onCardinalityChange:l}){return jsx("svg",{className:"absolute top-0 left-0 pointer-events-none",style:{width:"100%",height:"100%",overflow:"visible"},children:jsx("g",{transform:`translate(${n.x}, ${n.y}) scale(${n.zoom})`,children:t.map(i=>{let c=mk(i,r);if(!c)return null;let{x1:d,y1:u,x2:b,y2:m,cardinality:p}=c,C=_s(d,u,b,m),v=o===i.id,k=(d+b)/2,y=(u+m)/2;return jsxs("g",{children:[jsx("path",{d:C,fill:"none",stroke:"transparent",strokeWidth:16,className:"pointer-events-auto cursor-pointer",onClick:z=>{a||s?.(i.id,z);}}),jsx("path",{d:C,fill:"none",stroke:v?"#3b82f6":"#9ca3af",strokeWidth:v?2.5:1.5,className:"transition-colors"}),jsx("circle",{cx:d,cy:u,r:3,fill:v?"#3b82f6":"#9ca3af"}),jsx("circle",{cx:b,cy:m,r:3,fill:v?"#3b82f6":"#9ca3af"}),p&&jsxs("g",{className:a?void 0:"pointer-events-auto cursor-pointer",onClick:a?void 0:z=>{z.stopPropagation(),l?.(i.id,gk(p));},children:[jsx("rect",{x:k-14,y:y-9,width:28,height:18,rx:4,fill:"white",stroke:v?"#3b82f6":"#d1d5db",strokeWidth:1}),jsx("text",{x:k,y:y+4,textAnchor:"middle",className:"text-[10px] font-mono",fill:v?"#3b82f6":"#6b7280",children:p})]})]},i.id)})})})});var fk=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M10 5a1 1 0 011 1v3h3a1 1 0 110 2h-3v3a1 1 0 11-2 0v-3H6a1 1 0 110-2h3V6a1 1 0 011-1z",clipRule:"evenodd"})}),bk=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M5 10a1 1 0 011-1h8a1 1 0 110 2H6a1 1 0 01-1-1z",clipRule:"evenodd"})}),hk=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M4 2a1 1 0 011 1v2.101a7.002 7.002 0 0111.601 2.566 1 1 0 11-1.885.666A5.002 5.002 0 005.999 7H9a1 1 0 010 2H4a1 1 0 01-1-1V3a1 1 0 011-1zm.008 9.057a1 1 0 011.276.61A5.002 5.002 0 0014.001 13H11a1 1 0 110-2h5a1 1 0 011 1v5a1 1 0 11-2 0v-2.101a7.002 7.002 0 01-11.601-2.566 1 1 0 01.61-1.276z",clipRule:"evenodd"})}),yk=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{d:"M3 4a1 1 0 011-1h4a1 1 0 010 2H6.414l2.293 2.293a1 1 0 01-1.414 1.414L5 6.414V8a1 1 0 01-2 0V4zm9 1a1 1 0 010-2h4a1 1 0 011 1v4a1 1 0 01-2 0V6.414l-2.293 2.293a1 1 0 11-1.414-1.414L13.586 5H12zm-9 7a1 1 0 012 0v1.586l2.293-2.293a1 1 0 011.414 1.414L6.414 15H8a1 1 0 010 2H4a1 1 0 01-1-1v-4zm13 0a1 1 0 01-2 0v-1.586l-2.293 2.293a1 1 0 01-1.414-1.414L13.586 9H12a1 1 0 010-2h4a1 1 0 011 1v4z"})}),xk=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M6 2a2 2 0 00-2 2v12a2 2 0 002 2h8a2 2 0 002-2V4a2 2 0 00-2-2H6zm4 5a1 1 0 011 1v1h1a1 1 0 110 2h-1v1a1 1 0 11-2 0v-1H8a1 1 0 110-2h1V8a1 1 0 011-1z",clipRule:"evenodd"})}),vk=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M3 17a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zm3.293-7.707a1 1 0 011.414 0L9 10.586V3a1 1 0 112 0v7.586l1.293-1.293a1 1 0 111.414 1.414l-3 3a1 1 0 01-1.414 0l-3-3a1 1 0 010-1.414z",clipRule:"evenodd"})}),kk=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M3 17a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM6.293 6.707a1 1 0 010-1.414l3-3a1 1 0 011.414 0l3 3a1 1 0 01-1.414 1.414L11 5.414V13a1 1 0 11-2 0V5.414L7.707 6.707a1 1 0 01-1.414 0z",clipRule:"evenodd"})}),Ck=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M2 5a2 2 0 012-2h12a2 2 0 012 2v2a2 2 0 01-2 2H4a2 2 0 01-2-2V5zm14 1a1 1 0 11-2 0 1 1 0 012 0zM2 13a2 2 0 012-2h12a2 2 0 012 2v2a2 2 0 01-2 2H4a2 2 0 01-2-2v-2zm14 1a1 1 0 11-2 0 1 1 0 012 0z",clipRule:"evenodd"})}),wk=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M7.707 3.293a1 1 0 010 1.414L5.414 7H11a7 7 0 017 7v2a1 1 0 11-2 0v-2a5 5 0 00-5-5H5.414l2.293 2.293a1 1 0 11-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z",clipRule:"evenodd"})}),Nk=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M12.293 3.293a1 1 0 011.414 0l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414-1.414L14.586 9H9a5 5 0 00-5 5v2a1 1 0 11-2 0v-2a7 7 0 017-7h5.586l-2.293-2.293a1 1 0 010-1.414z",clipRule:"evenodd"})}),Sk=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{d:"M3 3h4v4H3V3zm0 10h4v4H3v-4zm10-10h4v4h-4V3zm0 10h4v4h-4v-4zM7 5h6v1H7V5zm0 8h6v1H7v-1zM5 7v6h1V7H5zm8 0v6h1V7h-1z"})}),bm=memo(function({zoom:t,onZoomIn:r,onZoomOut:n,onResetView:o,onFitToContent:a,onAddTable:s,onExportJSON:l,onImportJSON:i,onExportSQL:c,onUndo:d,onRedo:u,canUndo:b=false,canRedo:m=false,onAutoLayout:p,disabled:C,className:v}){let[k,y]=useState(false),[z,h]=useState(false),[R,f]=useState(false),[N,L]=useState(""),[E,I]=useState(""),[w,W]=useState(""),M=useCallback(()=>{L(l()),y(true);},[l]),T=useCallback(()=>{E.trim()&&(i(E.trim()),I(""),h(false));},[E,i]),P=useCallback(()=>{I(""),h(false);},[]),x=useCallback(()=>{y(false);},[]),D=useCallback(()=>{c&&(W(c()),f(true));},[c]),S=useCallback(()=>{f(false);},[]),B=Math.round(t*100);return jsxs(Fragment,{children:[jsxs("div",{className:g("absolute top-3 left-3 z-20 flex items-center gap-2 bg-white dark:bg-gray-800 rounded-lg shadow-md border border-gray-200 dark:border-gray-600 px-2 py-1.5",v),"data-testid":"schema-toolbar",onMouseDown:H=>H.stopPropagation(),children:[jsxs(Mo,{size:"sm",children:[jsx(zt,{content:"Zoom in",size:"sm",position:"bottom",children:jsx(At,{icon:jsx(fk,{}),size:"sm",bgColor:"bg-gray-100 hover:bg-gray-200 dark:bg-gray-700 dark:hover:bg-gray-600",textColor:"text-gray-700 dark:text-gray-200",onClick:r,disabled:C,"aria-label":"Zoom in"})}),jsx(zt,{content:"Zoom out",size:"sm",position:"bottom",children:jsx(At,{icon:jsx(bk,{}),size:"sm",bgColor:"bg-gray-100 hover:bg-gray-200 dark:bg-gray-700 dark:hover:bg-gray-600",textColor:"text-gray-700 dark:text-gray-200",onClick:n,disabled:C,"aria-label":"Zoom out"})})]}),jsxs("span",{className:"text-xs font-mono text-gray-500 dark:text-gray-400 min-w-[3ch] text-center select-none",children:[B,"%"]}),jsx("div",{className:"w-px h-5 bg-gray-200 dark:bg-gray-600"}),jsx(zt,{content:"Reset view",size:"sm",position:"bottom",children:jsx(At,{icon:jsx(hk,{}),size:"sm",bgColor:"bg-gray-100 hover:bg-gray-200 dark:bg-gray-700 dark:hover:bg-gray-600",textColor:"text-gray-700 dark:text-gray-200",onClick:o,disabled:C,"aria-label":"Reset view"})}),jsx(zt,{content:"Fit to content",size:"sm",position:"bottom",children:jsx(At,{icon:jsx(yk,{}),size:"sm",bgColor:"bg-gray-100 hover:bg-gray-200 dark:bg-gray-700 dark:hover:bg-gray-600",textColor:"text-gray-700 dark:text-gray-200",onClick:a,disabled:C,"aria-label":"Fit to content"})}),jsx("div",{className:"w-px h-5 bg-gray-200 dark:bg-gray-600"}),jsx(zt,{content:"Add table",size:"sm",position:"bottom",children:jsx(At,{icon:jsx(xk,{}),size:"sm",bgColor:"bg-gray-100 hover:bg-gray-200 dark:bg-gray-700 dark:hover:bg-gray-600",textColor:"text-gray-700 dark:text-gray-200",onClick:s,disabled:C,"aria-label":"Add table"})}),jsx("div",{className:"w-px h-5 bg-gray-200 dark:bg-gray-600"}),jsx(zt,{content:"Export JSON",size:"sm",position:"bottom",children:jsx(At,{icon:jsx(vk,{}),size:"sm",bgColor:"bg-gray-100 hover:bg-gray-200 dark:bg-gray-700 dark:hover:bg-gray-600",textColor:"text-gray-700 dark:text-gray-200",onClick:M,disabled:C,"aria-label":"Export JSON"})}),jsx(zt,{content:"Import JSON",size:"sm",position:"bottom",children:jsx(At,{icon:jsx(kk,{}),size:"sm",bgColor:"bg-gray-100 hover:bg-gray-200 dark:bg-gray-700 dark:hover:bg-gray-600",textColor:"text-gray-700 dark:text-gray-200",onClick:()=>h(true),disabled:C,"aria-label":"Import JSON"})}),c&&jsx(zt,{content:"Export SQL",size:"sm",position:"bottom",children:jsx(At,{icon:jsx(Ck,{}),size:"sm",bgColor:"bg-gray-100 hover:bg-gray-200 dark:bg-gray-700 dark:hover:bg-gray-600",textColor:"text-gray-700 dark:text-gray-200",onClick:D,disabled:C,"aria-label":"Export SQL"})}),(d||u)&&jsxs(Fragment,{children:[jsx("div",{className:"w-px h-5 bg-gray-200 dark:bg-gray-600"}),jsxs(Mo,{size:"sm",children:[jsx(zt,{content:"Undo (Ctrl+Z)",size:"sm",position:"bottom",children:jsx(At,{icon:jsx(wk,{}),size:"sm",bgColor:"bg-gray-100 hover:bg-gray-200 dark:bg-gray-700 dark:hover:bg-gray-600",textColor:"text-gray-700 dark:text-gray-200",onClick:d,disabled:C||!b,"aria-label":"Undo"})}),jsx(zt,{content:"Redo (Ctrl+Y)",size:"sm",position:"bottom",children:jsx(At,{icon:jsx(Nk,{}),size:"sm",bgColor:"bg-gray-100 hover:bg-gray-200 dark:bg-gray-700 dark:hover:bg-gray-600",textColor:"text-gray-700 dark:text-gray-200",onClick:u,disabled:C||!m,"aria-label":"Redo"})})]})]}),p&&jsxs(Fragment,{children:[jsx("div",{className:"w-px h-5 bg-gray-200 dark:bg-gray-600"}),jsx(zt,{content:"Auto layout",size:"sm",position:"bottom",children:jsx(At,{icon:jsx(Sk,{}),size:"sm",bgColor:"bg-gray-100 hover:bg-gray-200 dark:bg-gray-700 dark:hover:bg-gray-600",textColor:"text-gray-700 dark:text-gray-200",onClick:p,disabled:C,"aria-label":"Auto layout"})})]})]}),jsx(Tn,{isOpen:k,onClose:x,title:"Export Schema",description:"Copy the JSON below to save your schema.",size:"lg",showSubmit:false,showCancel:true,cancelLabel:"Close",children:jsx(an,{label:"Schema JSON",multiline:true,rows:12,value:N,readOnly:true,size:"sm"})}),jsx(Tn,{isOpen:z,onClose:P,title:"Import Schema",description:"Paste schema JSON to load it into the editor.",size:"lg",showSubmit:true,submitLabel:"Import",onSubmitClick:T,showCancel:true,cancelLabel:"Cancel",children:jsx(an,{label:"Schema JSON",multiline:true,rows:12,value:E,onChange:H=>I(H.target.value),placeholder:'{"tables": [], "relations": []}',size:"sm"})}),jsx(Tn,{isOpen:R,onClose:S,title:"Export SQL",description:"Generated PostgreSQL CREATE TABLE statements.",size:"lg",showSubmit:false,showCancel:true,cancelLabel:"Close",children:jsx(an,{label:"SQL",multiline:true,rows:16,value:w,readOnly:true,size:"sm"})})]})});var Tk=()=>jsxs("svg",{className:"w-3.5 h-3.5",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[jsx("path",{d:"M10 1l2 2-5 5M8.5 4.5L11 7"}),jsx("circle",{cx:"4.5",cy:"11.5",r:"3"})]}),Pk=()=>jsx("span",{className:"text-xs font-bold text-gray-500 w-3.5 text-center",children:"?"}),Ek=()=>jsxs("svg",{className:"w-3.5 h-3.5",viewBox:"0 0 16 16",fill:"currentColor",children:[jsx("circle",{cx:"8",cy:"8",r:"6",className:"fill-blue-500"}),jsx("path",{d:"M5 8h6M8 5l3 3-3 3",stroke:"white",strokeWidth:"1.5",fill:"none",strokeLinecap:"round",strokeLinejoin:"round"})]}),Dk=()=>jsx("svg",{className:"w-3.5 h-3.5 text-amber-500",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:jsx("path",{d:"M3 2v12M7 4h6M7 8h4M7 12h5"})}),Lk=()=>jsx("svg",{className:"w-3.5 h-3.5 text-purple-500",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:jsx("path",{d:"M4 2v8a4 4 0 008 0V2"})}),hm=memo(function({className:t}){return jsxs("div",{className:g("absolute top-3 right-3 z-20 flex items-center gap-4 bg-white dark:bg-gray-800 rounded-lg shadow-md border border-gray-200 dark:border-gray-600 px-3 py-2",t),"data-testid":"schema-legend",children:[jsxs("div",{className:"flex items-center gap-1.5",children:[jsx(Tk,{}),jsx("span",{className:"text-xs text-gray-600 dark:text-gray-300",children:"Primary Key"})]}),jsxs("div",{className:"flex items-center gap-1.5",children:[jsx(Pk,{}),jsx("span",{className:"text-xs text-gray-600 dark:text-gray-300",children:"Nullable"})]}),jsxs("div",{className:"flex items-center gap-1.5",children:[jsx(Ek,{}),jsx("span",{className:"text-xs text-gray-600 dark:text-gray-300",children:"Foreign Key"})]}),jsxs("div",{className:"flex items-center gap-1.5",children:[jsx(Dk,{}),jsx("span",{className:"text-xs text-gray-600 dark:text-gray-300",children:"Index"})]}),jsxs("div",{className:"flex items-center gap-1.5",children:[jsx(Lk,{}),jsx("span",{className:"text-xs text-gray-600 dark:text-gray-300",children:"Unique"})]})]})});var Ks=180,Us=120,Zo=10,ym=memo(function({tables:t,viewport:r,containerWidth:n,containerHeight:o,editable:a,onViewportChange:s,className:l}){let i=useRef(null),c=useMemo(()=>{if(t.length===0)return null;let R=1/0,f=1/0,N=-1/0,L=-1/0;for(let S of t){let B=S.width??260,H=Fn(S,a);R=Math.min(R,S.x),f=Math.min(f,S.y),N=Math.max(N,S.x+B),L=Math.max(L,S.y+H);}let E=-r.x/r.zoom,I=-r.y/r.zoom,w=E+n/r.zoom,W=I+o/r.zoom;R=Math.min(R,E),f=Math.min(f,I),N=Math.max(N,w),L=Math.max(L,W);let M=N-R+Zo*2,T=L-f+Zo*2,P=Math.min((Ks-4)/M,(Us-4)/T),x=(Ks-M*P)/2,D=(Us-T*P)/2;return {minX:R,minY:f,scale:P,offsetX:x,offsetY:D,vpMinX:E,vpMinY:I}},[t,r,n,o,a]),d=useCallback(R=>{if(!c)return;let f=i.current?.getBoundingClientRect();if(!f)return;let N=R.clientX-f.left,L=R.clientY-f.top,E=(N-c.offsetX)/c.scale+c.minX-Zo,I=(L-c.offsetY)/c.scale+c.minY-Zo;s({...r,x:-(E-n/(2*r.zoom))*r.zoom,y:-(I-o/(2*r.zoom))*r.zoom});},[c,r,n,o,s]);if(!c)return null;let{minX:u,minY:b,scale:m,offsetX:p,offsetY:C,vpMinX:v,vpMinY:k}=c,y=(R,f)=>({x:(R-u+Zo)*m+p,y:(f-b+Zo)*m+C}),z=y(v,k),h={w:n/r.zoom*m,h:o/r.zoom*m};return jsx("div",{ref:i,className:g("absolute bottom-3 right-3 z-20 bg-white/90 dark:bg-gray-800/90 rounded-lg shadow-md border border-gray-200 dark:border-gray-600 cursor-pointer overflow-hidden",l),style:{width:Ks,height:Us},onClick:d,onMouseDown:R=>R.stopPropagation(),"data-testid":"schema-minimap",children:jsxs("svg",{width:Ks,height:Us,children:[t.map(R=>{let f=R.width??260,N=Fn(R,a),L=y(R.x,R.y);return jsx("rect",{x:L.x,y:L.y,width:f*m,height:N*m,fill:R.color??"#e5e7eb",stroke:"#9ca3af",strokeWidth:.5,rx:1},R.id)}),jsx("rect",{x:z.x,y:z.y,width:h.w,height:h.h,fill:"rgba(59, 130, 246, 0.1)",stroke:"#3b82f6",strokeWidth:1,rx:1})]})})});function Ln(e){return `"${e.replace(/"/g,'""')}"`}function xm(e){return {text:"TEXT",varchar:"VARCHAR(255)",char:"CHAR(1)",int2:"SMALLINT",int4:"INTEGER",int8:"BIGINT",serial:"SERIAL",bigserial:"BIGSERIAL",float4:"REAL",float8:"DOUBLE PRECISION",numeric:"NUMERIC",decimal:"DECIMAL",bool:"BOOLEAN",date:"DATE",time:"TIME",timestamp:"TIMESTAMP",timestamptz:"TIMESTAMP WITH TIME ZONE",uuid:"UUID",json:"JSON",jsonb:"JSONB",bytea:"BYTEA"}[e]??e.toUpperCase()}function Hk(e){let t=[Ln(e.name)];return e.type==="serial"||e.type,t.push(xm(e.type)),e.primaryKey&&t.push("PRIMARY KEY"),!e.nullable&&!e.primaryKey&&t.push("NOT NULL"),e.unique&&!e.primaryKey&&t.push("UNIQUE"),e.defaultValue&&t.push(`DEFAULT ${e.defaultValue}`)," "+t.join(" ")}function Vk(e,t,r){let n=[],o=[];for(let i of e.fields)n.push(Hk(i));for(let i of e.fields)if(i.foreignKey){let c=r.find(u=>u.id===i.foreignKey.tableId),d=c?.fields.find(u=>u.id===i.foreignKey.fieldId);c&&d&&o.push(` CONSTRAINT ${Ln(`fk_${e.name}_${i.name}`)} FOREIGN KEY (${Ln(i.name)}) REFERENCES ${Ln(c.name)} (${Ln(d.name)})`);}let a=[];for(let i of e.fields)i.indexed&&!i.primaryKey&&!i.unique&&a.push(`CREATE INDEX ${Ln(`idx_${e.name}_${i.name}`)} ON ${Ln(e.name)} (${Ln(i.name)});`);let s=[...n,...o],l=`CREATE TABLE ${Ln(e.name)} (
|
|
24
|
+
`,role:"tooltip",children:[(d||s)&&jsxs("div",{className:"flex items-center justify-between px-4 py-2 border-b border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800/50",children:[jsx("div",{className:"flex items-center gap-2",children:d&&jsx("h3",{className:"text-sm font-semibold",children:d})}),s&&jsx("div",{className:"flex items-center gap-1",children:b?jsxs(Fragment,{children:[jsx("button",{type:"button",onClick:O,disabled:C,className:"p-1.5 rounded-md hover:bg-green-100 dark:hover:bg-green-900/30 text-green-600 dark:text-green-400 transition-colors disabled:opacity-50 cursor-pointer",title:"Sauvegarder",children:C?Ev:Pv}),jsx("button",{type:"button",onClick:T,className:"p-1.5 rounded-md hover:bg-gray-200 dark:hover:bg-gray-700 text-gray-500 hover:text-gray-700 dark:hover:text-gray-300 transition-colors cursor-pointer",title:"Annuler",children:Tv}),i&&jsx("button",{type:"button",onClick:H,disabled:C,className:"p-1.5 rounded-md hover:bg-orange-100 dark:hover:bg-orange-900/30 text-orange-600 dark:text-orange-400 transition-colors disabled:opacity-50 cursor-pointer",title:"R\xE9initialiser",children:Dv})]}):jsx("button",{type:"button",onClick:W,className:"p-1.5 rounded-md hover:bg-gray-200 dark:hover:bg-gray-700 text-gray-500 hover:text-gray-700 dark:hover:text-gray-300 transition-colors cursor-pointer",title:"Modifier",children:Rv})})]}),v&&jsx("div",{className:`px-4 py-2 text-xs ${v.type==="success"?"bg-green-50 dark:bg-green-900/20 text-green-600 dark:text-green-400":"bg-red-50 dark:bg-red-900/20 text-red-600 dark:text-red-400"}`,children:v.text}),jsx("div",{className:"flex-1 overflow-y-auto p-4",children:b?t?u?jsx(u,{value:x,onChange:L,placeholder:"\xC9crivez en Markdown..."}):jsx("p",{role:"alert",className:"p-3 text-sm text-gray-500 dark:text-gray-400",children:f??m.markdownEditorUnavailable}):jsx("div",{className:"space-y-2",children:jsx("textarea",{ref:P,"aria-label":"Contenu d'aide",value:x,onChange:z=>L(z.target.value),className:"w-full h-64 p-3 text-sm bg-gray-50 dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg resize-none focus:outline-none focus:ring-2 focus:ring-blue-500/50 text-gray-700 dark:text-gray-300 font-mono",placeholder:"\xC9crivez votre contenu d'aide..."})}):typeof k=="string"?jsx("div",{className:"prose prose-sm dark:prose-invert max-w-none",children:t?jsx(Nv,{remarkPlugins:Av,components:zv,children:k}):jsx("div",{dangerouslySetInnerHTML:{__html:wv.sanitize(k)}})}):k})]})]}):null}function Bv({children:e,content:t,markdown:r=false,position:n="bottom",size:o="sm",visible:a=true,editable:s=false,onSave:l,onReset:i,width:c="md",title:d,className:u,markdownEditor:f,markdownEditorUnavailableLabel:m}){return jsxs("div",{className:"inline-flex items-center gap-2.5",children:[e,jsx(ym,{content:t,markdown:r,position:n,size:o,visible:a,editable:s,onSave:l,onReset:i,width:c,title:d,className:u,markdownEditor:f,markdownEditorUnavailableLabel:m})]})}var Fv={"16/9":"aspect-[16/9]","4/3":"aspect-[4/3]","1/1":"aspect-square",auto:""},$v=e=>new Promise((t,r)=>{let n=new FileReader;n.onload=o=>{let a=o.target?.result;t(a);},n.onerror=()=>{r(new Error("Erreur lors de la lecture du fichier"));},n.readAsDataURL(e);});function _v({value:e,onChange:t,onUpload:r,label:n="Image",maxSize:o=5*1024*1024,accept:a="image/*",helpText:s,disabled:l=false,className:i="",showUrlInput:c=true,urlPlaceholder:d="https://example.com/image.jpg",aspectRatio:u="16/9"}){let[f,m]=useState(false),[g,y]=useState(null),b=useRef(null),h=useId(),x=useMemo(()=>(o/(1024*1024)).toFixed(0),[o]),L=`Formats accept\xE9s : ${a==="image/*"?"JPG, PNG, GIF, WebP":a} (max ${x}MB)`,C=useCallback(async M=>{let P=M.target.files?.[0];if(P){if(!P.type.startsWith("image/")){y("Le fichier doit \xEAtre une image");return}if(P.size>o){y(`Le fichier est trop volumineux (max ${x}MB)`);return}m(true),y(null);try{if(r){let E=await r(P);t(E);}else {let E=await $v(P);t(E);}b.current&&(b.current.value="");}catch(E){console.error("Upload error:",E),y(E instanceof Error?E.message:"Erreur lors de l'upload");}finally{m(false);}}},[o,x,t,r]),S=useCallback(()=>{t(""),b.current&&(b.current.value=""),y(null);},[t]),v=useCallback(M=>{t(M),y(null);},[t]),R=useCallback(()=>{b.current?.click();},[]),N=useCallback(M=>{v(M.target.value);},[v]);return jsxs("div",{className:`space-y-2 ${i}`,children:[n&&jsx("label",{className:"block text-sm font-semibold text-gray-700 dark:text-gray-300",children:n}),e&&jsxs("div",{className:"relative w-full overflow-hidden rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800/50",children:[jsx("div",{className:`relative ${Fv[u]} ${u==="auto"?"max-h-64":""} flex items-center justify-center`,children:jsx("img",{src:e,alt:"Aper\xE7u",className:"w-full h-full object-contain"})}),jsx("button",{type:"button",onClick:S,disabled:l,className:"absolute top-2 right-2 bg-red-500 text-white rounded-full w-6 h-6 flex items-center justify-center text-xs hover:bg-red-600 transition-colors cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed",title:"Supprimer l'image",children:"\xD7"})]}),jsxs("div",{className:"flex gap-2",children:[jsx("input",{ref:b,type:"file","aria-label":"Choisir une image",accept:a,onChange:C,className:"hidden",disabled:l||f}),jsx("button",{type:"button",onClick:R,disabled:l||f,className:"px-3 py-2 text-sm border border-gray-300 dark:border-gray-600 rounded-md hover:bg-gray-50 dark:hover:bg-gray-700 disabled:opacity-50 disabled:cursor-not-allowed transition-colors cursor-pointer bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200",children:f?"\u23F3 Upload...":e?"\u{1F4C1} Changer l'image":"\u{1F4C1} Choisir une image"})]}),c&&jsxs("div",{className:"space-y-1",children:[jsx("label",{htmlFor:h,className:"block text-xs text-gray-500 dark:text-gray-400",children:"Ou URL directe :"}),jsx("input",{id:h,type:"url",value:e||"",onChange:N,placeholder:d,disabled:l,className:"w-full px-3 py-2 text-sm border border-gray-300 dark:border-gray-600 rounded-md focus:ring-2 focus:ring-blue-500 focus:border-blue-500 dark:bg-gray-800 dark:text-gray-200 disabled:opacity-50 disabled:cursor-not-allowed"})]}),g&&jsxs("div",{className:"text-red-600 dark:text-red-400 text-sm bg-red-50 dark:bg-red-900/20 p-2 rounded border border-red-200 dark:border-red-800",children:["\u274C ",g]}),jsx("div",{className:"text-xs text-gray-500 dark:text-gray-400",children:s||L})]})}var fi={default:"bg-gray-400",primary:"bg-blue-600",success:"bg-green-500",warning:"bg-yellow-400",error:"bg-red-500",info:"bg-cyan-500",dark:"bg-gray-900 dark:bg-gray-700",purple:"bg-purple-600",indigo:"bg-indigo-600",teal:"bg-teal-500"},cc={xs:"w-2 h-2",sm:"w-2.5 h-2.5",md:"w-3 h-3",lg:"w-3.5 h-3.5",xl:"w-4 h-4"},Xv={xs:"min-w-4 h-4 text-[10px] px-1",sm:"min-w-5 h-5 text-xs px-1",md:"min-w-5 h-5 text-xs px-1.5",lg:"min-w-6 h-6 text-sm px-1.5",xl:"min-w-7 h-7 text-sm px-2"},dc={"top-left":"top-0 left-0 -translate-x-1/2 -translate-y-1/2","top-center":"top-0 left-1/2 -translate-x-1/2 -translate-y-1/2","top-right":"top-0 right-0 translate-x-1/2 -translate-y-1/2","center-left":"top-1/2 left-0 -translate-x-1/2 -translate-y-1/2",center:"top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2","center-right":"top-1/2 right-0 translate-x-1/2 -translate-y-1/2","bottom-left":"bottom-0 left-0 -translate-x-1/2 translate-y-1/2","bottom-center":"bottom-0 left-1/2 -translate-x-1/2 translate-y-1/2","bottom-right":"bottom-0 right-0 translate-x-1/2 translate-y-1/2"},uc={"top-left":"top-0 left-0","top-center":"top-0 left-1/2 -translate-x-1/2","top-right":"top-0 right-0","center-left":"top-1/2 left-0 -translate-y-1/2",center:"top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2","center-right":"top-1/2 right-0 -translate-y-1/2","bottom-left":"bottom-0 left-0","bottom-center":"bottom-0 left-1/2 -translate-x-1/2","bottom-right":"bottom-0 right-0"};function Gv(e,t){return e>t?`${t}+`:`${e}`}function Uv({color:e="primary",size:t="md",placement:r="top-right",bordered:n=false,borderColor:o,pulse:a=false,offset:s=false,className:l,...i}){return jsx("span",{"data-testid":"indicator",className:p("absolute z-10 rounded-full",fi[e],cc[t],s?uc[r]:dc[r],n&&p("ring-2 ring-white dark:ring-gray-900",o),a&&"animate-pulse",l),...i})}function Kv({color:e="error",size:t="md",placement:r="top-right",count:n=0,maxCount:o=99,bordered:a=false,borderColor:s,pulse:l=false,offset:i=false,className:c,...d}){return jsx("span",{"data-testid":"indicator",className:p("absolute z-10 inline-flex items-center justify-center rounded-full font-semibold text-white",fi[e],Xv[t],i?uc[r]:dc[r],a&&p("ring-2 ring-white dark:ring-gray-900",s),l&&"animate-pulse",c),...d,children:Gv(n,o)})}function Yv({color:e="success",size:t="md",placement:r="bottom-right",bordered:n=true,borderColor:o,pulse:a=false,offset:s=false,className:l,...i}){return jsx("span",{"data-testid":"indicator",className:p("absolute z-10 rounded-full",fi[e],cc[t],s?uc[r]:dc[r],n&&p("ring-2 ring-white dark:ring-gray-900",o),a&&"animate-pulse",l),...i})}function jv({color:e="primary",size:t="sm",label:r,className:n,...o}){return jsxs("span",{"data-testid":"indicator",className:p("inline-flex items-center gap-2",n),...o,children:[jsx("span",{className:p("rounded-full shrink-0",fi[e],cc[t])}),r?jsx("span",{className:"text-sm text-gray-700 dark:text-gray-300",children:r}):null]})}function vm({variant:e="dot",children:t,...r}){if(e==="legend")return jsx(jv,{...r});let n=(()=>{switch(e){case "count":return jsx(Kv,{...r});case "status":return jsx(Yv,{...r});default:return jsx(Uv,{...r})}})();return t?jsxs("div",{className:"relative inline-flex",children:[t,n]}):n}vm.displayName="Indicator";var qv={xs:"text-xs",sm:"text-sm",md:"text-sm",lg:"text-base",xl:"text-lg"},km={xs:"w-3 h-3",sm:"w-3.5 h-3.5",md:"w-4 h-4",lg:"w-4.5 h-4.5",xl:"w-5 h-5"},Zv={normal:"font-normal",medium:"font-medium",semibold:"font-semibold",bold:"font-bold"},Qv={default:{default:"text-gray-700 dark:text-gray-200",light:"text-gray-500 dark:text-gray-400",strong:"text-gray-900 dark:text-white"},primary:{default:"text-blue-600 dark:text-blue-400",light:"text-blue-400 dark:text-blue-300",strong:"text-blue-700 dark:text-blue-300"},secondary:{default:"text-purple-600 dark:text-purple-400",light:"text-purple-400 dark:text-purple-300",strong:"text-purple-700 dark:text-purple-300"},success:{default:"text-green-600 dark:text-green-400",light:"text-green-400 dark:text-green-300",strong:"text-green-700 dark:text-green-300"},warning:{default:"text-yellow-600 dark:text-yellow-400",light:"text-yellow-400 dark:text-yellow-300",strong:"text-yellow-700 dark:text-yellow-300"},error:{default:"text-red-600 dark:text-red-400",light:"text-red-400 dark:text-red-300",strong:"text-red-700 dark:text-red-300"},info:{default:"text-cyan-600 dark:text-cyan-400",light:"text-cyan-400 dark:text-cyan-300",strong:"text-cyan-700 dark:text-cyan-300"},muted:{default:"text-gray-500 dark:text-gray-400",light:"text-gray-400 dark:text-gray-500",strong:"text-gray-600 dark:text-gray-300"}};function Nm({children:e,size:t="md",color:r="default",variant:n="default",weight:o="medium",textColor:a,required:s=false,requiredIndicator:l="*",optional:i=false,optionalText:c="(optional)",tooltip:d,icon:u,endIcon:f,disabled:m=false,truncate:g=false,as:y="label",className:b,...h}){let x=y,L=p("inline-flex items-center gap-1.5 transition-colors",qv[t],Zv[o]),C=a||Qv[r][n];return jsxs(x,{className:p(L,C,m?"opacity-50 cursor-not-allowed":"cursor-default",b),title:d,"aria-disabled":m,...h,children:[u&&jsx("span",{className:p("shrink-0",km[t]),children:u}),jsxs("span",{className:p(g&&"truncate"),children:[e,s&&jsx("span",{className:"text-red-500 ml-0.5","aria-hidden":"true",children:l}),s&&jsx("span",{className:"sr-only",children:"(required)"})]}),i&&!s&&jsx("span",{className:"text-gray-400 dark:text-gray-500 font-normal",children:c}),f&&jsx("span",{className:p("shrink-0",km[t]),children:f})]})}Nm.displayName="Label";var tC=2,rC=2,nC=12,oC=16,Sm="cell:",Rm=false,aC=memo(function({cells:t,radius:r}){return jsx("g",{children:t.map(n=>jsxs("g",{children:[jsx("rect",{x:n.x,y:n.y,width:n.width,height:n.height,rx:r,fill:n.missing?void 0:n.color,className:n.missing?"fill-gray-100 dark:fill-gray-800":void 0}),n.label?jsx("text",{x:n.x+n.width/2,y:n.y+n.height/2,textAnchor:"middle",dominantBaseline:"central",className:p("text-[10px] [font-variant-numeric:tabular-nums]",n.onDark?"fill-gray-50 dark:fill-gray-900":"fill-gray-900 dark:fill-gray-50"),children:n.label}):null]},n.key))})});function sC({width:e,height:t,columns:r,rows:n,lookup:o,colorScale:a,x:s,y:l,size:i,cellGap:c,cellRadius:d,showValues:u,tooltip:f,plotLabel:m,formatValue:g,formatX:y,formatY:b,onCellClick:h}){let[x,L]=useState(null),C=useMemo(()=>{let P=r.map((B,w)=>y(B,w)),E=n.map((B,w)=>b(B,w)),W={top:8,right:8,bottom:s.hidden?8:s.height??24+(s.label?16:0),left:l.hidden?8:l.height??Pr(E)+nC+(l.label?16:0)},T=Math.max(0,e-W.left-W.right),O=Math.max(0,t-W.top-W.bottom),H=bn(r.map((B,w)=>w),[0,T],{paddingInner:0,paddingOuter:0}),k=bn(n.map((B,w)=>w),[0,O],{paddingInner:0,paddingOuter:0}),z=Math.max(0,H.bandwidth-c),A=Math.max(0,k.bandwidth-c),I=[];n.forEach((B,w)=>{r.forEach((G,q)=>{let U=o.get(`${rt(G)}|${rt(B)}`)?.value??null,F=null;if(u&&U!==null&&A>=oC){let _=g(U);ir(_,10)+6<=z&&(F=_);}I.push({key:`${q}-${w}`,column:q,row:w,x:H(q)+c/2,y:k(w)+c/2,width:z,height:A,color:U===null?"transparent":a(U),label:F,onDark:U!==null&&a.onDark(U),missing:U===null});});});let X=Ea(P.length,T,Pr(P)),$=Ea(E.length,O,15),K=s.hidden?[]:P.map((B,w)=>({value:r[w],offset:H.center(w),label:B})).filter((B,w)=>w%X===0),D=l.hidden?[]:E.map((B,w)=>({value:n[w],offset:k.center(w),label:B})).filter((B,w)=>w%$===0);return {margin:W,innerWidth:T,innerHeight:O,columnScale:H,rowScale:k,cells:I,columnTicks:K,rowTicks:D}},[r,n,o,a,s,l,e,t,c,u,g,y,b]),S=useCallback((P,E)=>{let W=r[P],T=n[E],O=o.get(`${rt(W)}|${rt(T)}`),H=O?.value??null;return {x:W,y:T,xLabel:y(W,P),yLabel:b(T,E),value:H,formattedValue:H===null?"\u2014":g(H),color:H===null?"transparent":a(H),datum:O?.datum}},[r,n,o,a,g,y,b]),v=useCallback(P=>{if(f===false||r.length===0||n.length===0)return;let E=P.currentTarget.getBoundingClientRect(),W=P.clientX-E.left-C.margin.left,T=P.clientY-E.top-C.margin.top,O=Math.floor(W/(C.columnScale.step||1)),H=Math.floor(T/(C.rowScale.step||1));if(O<0||O>=r.length||H<0||H>=n.length){L(null);return}L(k=>k?.column===O&&k.row===H?k:{column:O,row:H});},[f,r.length,n.length,C.margin,C.columnScale,C.rowScale]),R=useCallback(P=>{if(r.length===0||n.length===0)return;let E=x??{column:0,row:0},W;switch(P.key){case "ArrowRight":W={...E,column:Math.min(r.length-1,E.column+1)};break;case "ArrowLeft":W={...E,column:Math.max(0,E.column-1)};break;case "ArrowDown":W={...E,row:Math.min(n.length-1,E.row+1)};break;case "ArrowUp":W={...E,row:Math.max(0,E.row-1)};break;case "Home":W={...E,column:0};break;case "End":W={...E,column:r.length-1};break;case "Escape":W=null;break;default:W=void 0;}W!==void 0&&(P.preventDefault(),L(W));},[r.length,n.length,x]),N=useCallback(()=>{!h||!x||h(S(x.column,x.row));},[h,x,S]),M=x?S(x.column,x.row):null;return jsxs(Fragment,{children:[jsxs("svg",{width:e,height:t,role:"img","aria-label":m??`${s.label??s.key} / ${l.label??l.key}`,tabIndex:0,className:"touch-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500",onPointerMove:v,onPointerLeave:()=>L(null),onKeyDown:R,onBlur:()=>L(null),onClick:N,children:[jsxs("g",{transform:`translate(${C.margin.left}, ${C.margin.top})`,children:[jsx(aC,{cells:C.cells,radius:d}),x?jsx("rect",{x:C.columnScale(x.column)+c/2,y:C.rowScale(x.row)+c/2,width:Math.max(0,C.columnScale.bandwidth-c),height:Math.max(0,C.rowScale.bandwidth-c),rx:d,fill:"none",strokeWidth:2,className:"stroke-gray-900 dark:stroke-white","aria-hidden":"true"}):null]}),jsx("g",{transform:`translate(${C.margin.left}, ${C.margin.top+C.innerHeight})`,children:s.hidden?null:jsx(tt,{orientation:"bottom",ticks:C.columnTicks,length:C.innerWidth,showLine:false,tickSize:0,label:s.label,size:i})}),jsx("g",{transform:`translate(${C.margin.left}, ${C.margin.top})`,children:l.hidden?null:jsx(tt,{orientation:"left",ticks:C.rowTicks,length:C.innerHeight,showLine:false,tickSize:0,label:l.label,size:i})})]}),x&&M&&f!==false?jsx(vt,{x:C.margin.left+C.columnScale.center(x.column),y:C.margin.top+C.rowScale.center(x.row),containerWidth:e,children:typeof f=="function"?f(M):jsxs("div",{className:"flex flex-col gap-1",children:[jsxs("div",{className:"font-medium text-gray-900 dark:text-gray-100",children:[M.yLabel," \xB7 ",M.xLabel]}),jsxs("div",{className:"flex items-center gap-2",children:[jsx("span",{className:"h-2.5 w-2.5 shrink-0 rounded-sm",style:{backgroundColor:M.color},"aria-hidden":"true"}),jsx("span",{className:"font-semibold text-gray-900 [font-variant-numeric:tabular-nums] dark:text-gray-100",children:M.formattedValue})]})]})}):null]})}function Pm(e,t,r){if(r)return r;let n=new Map;return e.forEach((o,a)=>{let s=gt(o,t,a),l=rt(s);n.has(l)||n.set(l,s);}),[...n.values()]}function iC({data:e,x:t,y:r,value:n,format:o,domain:a,scale:s="sequential",center:l=0,steps:i,colors:c,xDomain:d,yDomain:u,cellGap:f=tC,cellRadius:m=rC,showValues:g=false,height:y=280,width:b,size:h="md",legend:x=true,legendLabel:L,tooltip:C=true,tableView:S=false,title:v,description:R,loading:N=false,emptyState:M,error:P=false,errorState:E,onRetry:W,actions:T,locale:O,plotLabel:H,onCellClick:k,className:z,...A}){i!==void 0&&i>Ds&&!Rm&&(Rm=true,console.warn(`[@synertech/ui] A Heatmap was cut into ${i} colour classes. Past ${Ds} two neighbouring cells stop being tellable apart: leave \`steps\` unset and let the ramp stay continuous.`));let I=useMemo(()=>Pm(e,t.key,d),[e,t.key,d]),X=useMemo(()=>Pm(e,r.key,u),[e,r.key,u]),$=useMemo(()=>{let F=new Map;return e.forEach((_,J)=>{let ne=Ae(_,n);if(ne===null)return;let Y=gt(_,t.key,J),ee=gt(_,r.key,J);F.set(`${rt(Y)}|${rt(ee)}`,{value:ne,datum:_});}),F},[e,t.key,r.key,n]),K=useMemo(()=>o??(F=>pt(F,O)),[o,O]),D=useMemo(()=>t.format??(F=>st(F,O)),[t.format,O]),B=useMemo(()=>r.format??(F=>st(F,O)),[r.format,O]),w=useMemo(()=>{let F=a??Qt([...$.values()].map(_=>_.value))??[0,1];return s==="diverging"?Go(F,{center:l,steps:i,colors:c}):za(F,{steps:i,colors:c})},[a,$,s,l,i,c]),G=useMemo(()=>X.map(F=>{let _={[r.key]:F};return I.forEach(J=>{_[`${Sm}${rt(J)}`]=$.get(`${rt(J)}|${rt(F)}`)?.value??null;}),_}),[X,I,$,r.key]),q=useMemo(()=>I.map((F,_)=>({key:`${Sm}${rt(F)}`,label:D(F,_)})),[I,D]),j=x!==false,U=typeof x=="string"?x:"bottom";return jsx(xt,{title:v,description:R,height:y,width:b,size:h,loading:N,empty:$.size===0,emptyState:M,error:P,errorState:E,onRetry:W,actions:T,tableView:S,legendPosition:U,legend:j?jsx(Oa,{scale:w,label:L,format:K,size:h,locale:O}):void 0,table:S?jsx(Ot,{data:G,series:q,xKey:r.key,xLabel:r.label??r.key,formatX:B,formatValue:K,caption:typeof v=="string"?v:void 0}):void 0,className:z,...A,children:({width:F})=>jsx(sC,{width:F,height:y,columns:I,rows:X,lookup:$,colorScale:w,x:t,y:r,size:h,cellGap:f,cellRadius:m,showValues:g,tooltip:C,plotLabel:H,formatValue:K,formatX:D,formatY:B,onCellClick:k})})}var dC=24,uC=10,mC=10,pC=memo(function({lines:t,showMarkers:r}){return jsx("g",{children:t.map(n=>jsxs("g",{children:[n.solid?jsx("path",{d:n.solid,fill:"none",stroke:n.color,strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}):null,n.dashed?jsx("path",{d:n.dashed,fill:"none",stroke:n.color,strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",strokeDasharray:"5 4"}):null,r?n.markers.map(o=>jsx("circle",{cx:o.x,cy:o.y,r:3,fill:n.color,strokeWidth:2,className:"stroke-white dark:stroke-gray-800"},`${o.x}-${o.y}`)):null]},n.key))})});function gC({width:e,height:t,data:r,resolvedSeries:n,x:o,y:a,grid:s,size:l,curve:i,forecastFrom:c,forecastLabel:d,markers:u,connectNulls:f,referenceLines:m,annotations:g,annotationsLabel:y,overlay:b,maxPoints:h,brush:x,onBrush:L,brushLabel:C,syncEnabled:S,margin:v,tooltip:R,onPointClick:N,plotLabel:M,formatValue:P,formatX:E}){let[W,T]=useState(null),O=W!==null&&W<r.length?W:null,[H,k]=useState(null),z=uo(),A=S?z:null,I=useMemo(()=>{let Z=n.filter(ae=>!ae.hidden),ie=Jt({width:e,height:t,data:r,x:o,y:a,bounds:Qt(vr(r,Z.map(ae=>ae.key))),margin:v,placement:"point",formatValue:P,formatX:E,extraTop:d?uC:0}),V=ie.categoryCenters,oe=ie.valueScale,pe=c===void 0?-1:ie.xValues.findIndex(ae=>rt(ae)===rt(c)),Te=Z.map(ae=>{let re=r.map((Re,He)=>{let Ee=Ae(Re,ae.key);return {x:V[He],y:Ee===null?Number.NaN:oe(Ee),defined:Ee!==null}}),ce={connectNulls:f},De=pe>=0,Ge=Re=>h&&h>0?dl(Re,h):Re,be=Ge(De?re.slice(0,pe+1):re),Me=ae.dashed?Ge(re):De?Ge(re.slice(pe)):[];return h||Yo("LineChart",re.length),{key:ae.key,color:ae.color,solid:ae.dashed?"":nn(be,i,ce),dashed:ae.dashed||De?nn(Me,i,ce):"",markers:[...be,...ae.dashed?[]:Me].filter(Re=>Re.defined!==false)}}),ze=r.length>1?ie.innerWidth/(r.length-1):0;return {visible:Z,locate:On(ie),plot:kn({geometry:ie,width:e,height:t,data:r,series:Z,formatValue:P,formatX:E}),xValues:ie.xValues,xPositions:V,xTicks:ie.categoryTicks,yTicks:ie.valueTicks,yScale:oe,innerWidth:ie.innerWidth,innerHeight:ie.innerHeight,margin:ie.margin,lines:Te,forecastIndex:pe,showMarkers:u==="always"||u==="auto"&&ze>=dC&&r.length>1}},[r,n,o,a,e,t,v,i,f,c,d,u,h,P,E]),X=useCallback(Z=>I.visible.map(ie=>{let V=Ae(r[Z],ie.key);return {seriesKey:ie.key,seriesLabel:Vt(ie),color:ie.color,value:V,formattedValue:V===null?"\u2014":P(V),datum:r[Z]}}),[r,I.visible,P]),$=A?A.brush:H,K=useCallback(Z=>{k(Z),A?.setBrush(Z),L?.(Z);},[A,L]),D=so({enabled:x,active:$!==null,centers:I.xPositions,xValues:I.xValues,offset:I.margin.left,orientation:"vertical",onCommit:K}),B=useCallback(Z=>{if(D.onPointerMove(Z),R===false||r.length===0)return;let ie=Z.currentTarget.getBoundingClientRect(),V=Z.clientX-ie.left-I.margin.left,oe=Dt(I.xPositions,V);T(oe>=0?oe:null),A?.setHovered(oe>=0?I.xValues[oe]:null);},[D,R,r.length,I.margin.left,I.xPositions,I.xValues,A]),w=useCallback(()=>{T(null),A?.setHovered(null);},[A]),G=useCallback(Z=>{if(r.length===0)return;D.onKeyDown(Z,O);let ie=r.length-1,V=O??0,oe=Z.key==="ArrowRight"?Math.min(ie,V+1):Z.key==="ArrowLeft"?Math.max(0,V-1):Z.key==="Home"?0:Z.key==="End"?ie:Z.key==="Escape"?null:void 0;oe!==void 0&&(Z.preventDefault(),T(oe),A?.setHovered(oe===null?null:I.xValues[oe]));},[r.length,O,D,A,I.xValues]),q=useCallback(()=>{if(D.consumedClick()||!N||O===null)return;let[Z]=X(O);Z&&N({...Z,index:O,x:I.xValues[O]});},[D,N,O,X,I.xValues]),j=O!==null||!A?.hovered?null:(()=>{let Z=rt(A.hovered),ie=I.xValues.findIndex(V=>rt(V)===Z);return ie<0?null:ie})(),U=O??j,F=U===null?null:X(U),_=(F??[]).filter(Z=>Z.value!==null),J=D.dragging??$,ne=(()=>{if(!J)return null;let Z=I.locate(J.from),ie=I.locate(J.to);return Z===null||ie===null?null:{from:Z,to:ie}})(),Y=wn(b),ee=O===null||F===null?null:{x:I.xValues[O],xLabel:E(I.xValues[O],O),index:O,points:F};return jsxs(Fragment,{children:[jsxs("svg",{width:e,height:t,role:"img","aria-label":M??[I.visible.map(Z=>Vt(Z)).join(", "),no(g,y)].filter(Boolean).join(". "),tabIndex:0,className:p("touch-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500",x&&"select-none"),onPointerDown:D.onPointerDown,onPointerMove:B,onPointerUp:D.onPointerUp,onPointerCancel:D.onPointerUp,onPointerLeave:w,onKeyDown:G,onBlur:w,onClick:q,children:[jsxs("g",{transform:`translate(${I.margin.left}, ${I.margin.top})`,children:[jsx(Yt,{width:I.innerWidth,height:I.innerHeight,horizontal:s==="y"||s==="both"?I.yTicks.map(Z=>Z.offset):void 0,vertical:s==="x"||s==="both"?I.xTicks.map(Z=>Z.offset):void 0}),g?jsx(rn,{layer:"under",annotations:g,xAt:I.locate,yAt:I.yScale,width:I.innerWidth,height:I.innerHeight}):null,ne?jsx(ao,{from:ne.from,to:ne.to,width:I.innerWidth,height:I.innerHeight,live:D.dragging!==null,label:C}):null,Y.under?.(I.plot),m?.map(Z=>{let ie=I.yScale(Z.value),V=ie<mC?ie+12:ie-4;return jsxs("g",{children:[jsx("line",{x1:0,y1:ie,x2:I.innerWidth,y2:ie,stroke:Z.color??"var(--color-chart-muted)",strokeWidth:1,strokeDasharray:Z.dashed===false?void 0:"4 4"}),Z.label?jsx("text",{x:I.innerWidth,y:V,textAnchor:"end",className:"fill-gray-500 text-[10px] dark:fill-gray-400",children:Z.label}):null]},`${Z.value}-${Z.label??""}`)}),I.forecastIndex>=0?jsxs("g",{children:[jsx("line",{x1:I.xPositions[I.forecastIndex],y1:0,x2:I.xPositions[I.forecastIndex],y2:I.innerHeight,className:"stroke-gray-300 dark:stroke-gray-600",strokeWidth:1,strokeDasharray:"3 3"}),d?jsx("text",{x:I.xPositions[I.forecastIndex]+4,y:-2,className:"fill-gray-500 text-[10px] dark:fill-gray-400",children:d}):null]}):null,jsx(pC,{lines:I.lines,showMarkers:I.showMarkers}),g?jsx(rn,{annotations:g,xAt:I.locate,yAt:I.yScale,width:I.innerWidth,height:I.innerHeight}):null,Y.over?.(I.plot),U!==null?jsxs("g",{"aria-hidden":"true",children:[jsx("line",{x1:I.xPositions[U],y1:0,x2:I.xPositions[U],y2:I.innerHeight,className:"stroke-gray-400 dark:stroke-gray-500",strokeWidth:1,strokeDasharray:O===null?"3 3":void 0}),_.map(Z=>jsx("circle",{cx:I.xPositions[U],cy:I.yScale(Z.value),r:4,fill:Z.color,strokeWidth:2,className:"stroke-white dark:stroke-gray-800"},Z.seriesKey))]}):null]}),jsx("g",{transform:`translate(${I.margin.left}, ${I.margin.top+I.innerHeight})`,children:o.hidden?null:jsx(tt,{orientation:"bottom",ticks:I.xTicks,length:I.innerWidth,label:o.label,size:l})}),jsx("g",{transform:`translate(${I.margin.left}, ${I.margin.top})`,children:a?.hidden?null:jsx(tt,{orientation:"left",ticks:I.yTicks,length:I.innerHeight,showLine:false,label:a?.label,size:l})})]}),ee&&R!==false?jsx(vt,{x:I.margin.left+I.xPositions[ee.index],y:I.margin.top+(_.length>0?Math.min(..._.map(Z=>I.yScale(Z.value))):I.innerHeight/2),containerWidth:e,children:typeof R=="function"?R(ee):jsx(Tr,{title:ee.xLabel,points:ee.points})}):null]})}function fC({data:e,series:t,x:r,y:n,height:o=240,width:a,size:s="md",grid:l="y",legend:i,tooltip:c=true,tableView:d=false,emphasis:u,title:f,description:m,loading:g=false,emptyState:y,error:b=false,errorState:h,onRetry:x,actions:L,onPointClick:C,curve:S="monotone",forecastFrom:v,forecastLabel:R,markers:N="auto",connectNulls:M=false,referenceLines:P,annotations:E,overlay:W,legendToggle:T=true,maxPoints:O,brush:H=false,onBrush:k,brushLabel:z,sync:A=true,margin:I,locale:X,plotLabel:$,className:K,...D}){let B=Ve(),[w,G]=useState(()=>new Set),q=useMemo(()=>t.map((Y,ee)=>({...Y,hidden:Y.hidden||w.has(Y.key),color:Br(Y,ee,u)})),[t,w,u]),j=useMemo(()=>n?.format??(Y=>pt(Y,X)),[n?.format,X]),U=useMemo(()=>r.format??(Y=>r.scale==="time"?st(Y instanceof Date?Y:new Date(Xr(Y)),X):st(Y,X)),[r.format,r.scale,X]),F=useCallback(Y=>{G(ee=>{let Z=new Set(ee);return Z.has(Y)?Z.delete(Y):Z.add(Y),Z});},[]),_=i===void 0?t.length>=2:i!==false,J=typeof i=="string"?i:"bottom",ne=q.filter(Y=>!Y.hidden).length;return jsx(xt,{title:f,description:m,height:o,width:a,size:s,loading:g,empty:e.length===0||ne===0,emptyState:y,error:b,errorState:h,onRetry:x,actions:L,tableView:d,legendPosition:J,legend:_?jsx(jt,{items:Gr(q,u),position:J,marker:"line",size:s,onToggle:T?F:void 0}):void 0,table:d?jsx(Ot,{data:e,series:q,xKey:r.key,xLabel:r.label??r.key,formatX:U,formatValue:j,caption:typeof f=="string"?f:void 0}):void 0,className:K,...D,children:({width:Y})=>jsx(gC,{width:Y,height:o,data:e,resolvedSeries:q,x:r,y:n,grid:l,size:s,curve:S,forecastFrom:v,forecastLabel:R,markers:N,connectNulls:M,referenceLines:P,annotations:E,annotationsLabel:B.chartAnnotations,overlay:W,maxPoints:O,brush:H,onBrush:k,brushLabel:z??B.chartBrush,syncEnabled:A,margin:I,tooltip:c,onPointClick:C,plotLabel:$,formatValue:j,formatX:U})})}var vC={sm:"max-w-sm",md:"max-w-2xl",lg:"max-w-4xl",xl:"max-w-6xl",full:"max-w-full"},An=forwardRef(({isOpen:e,onClose:t,title:r="Modal Title",children:n,buttonLabel:o,onButtonClick:a,className:s,allowFullScreen:l=false,showSubmit:i=true,submitLabel:c,onSubmitClick:d,showCancel:u=false,cancelLabel:f,onCancelClick:m,buttonsPosition:g="right",showHeaderDivider:y=true,showFooterDivider:b=true,description:h,icon:x,size:L="md",reverseButtons:C=false,headerClassName:S,contentClassName:v,footerClassName:R,titleClassName:N,descriptionClassName:M,submitClassName:P,cancelClassName:E,closeLabel:W,enterFullScreenLabel:T,exitFullScreenLabel:O,"aria-label":H,closeOnEscape:k=true,trapFocus:z=true,initialFocus:A,returnFocus:I,lockScroll:X=true},$)=>{let[K,D]=useState(false),B=Ve(),w=useId(),G=`${w}-title`,q=`${w}-description`,{dialogRef:j,dialogProps:U}=So({open:e,onClose:t,closeOnEscape:k,trapFocus:z,initialFocus:A,returnFocus:I,lockScroll:X});if(!e)return null;let F=o??c??B.confirm,_=f??B.cancel,J=W??B.closeModal,ne=K?O??B.exitFullScreen:T??B.enterFullScreen,Y=a??d,ee=async()=>{Y&&await Y(),t();},Z=async()=>{m&&await m(),t();};return jsx("div",{className:p("overflow-y-auto overflow-x-hidden fixed inset-0 z-50 flex items-center justify-center bg-black/30 backdrop-blur-sm",s),"aria-hidden":!e,children:jsx("div",{className:p("relative p-4 w-full max-h-full transition-all duration-300",K?"max-w-full h-full p-0":vC[L]),ref:$,children:jsxs("div",{...U,ref:j,"aria-labelledby":r?G:void 0,"aria-label":r?void 0:H,"aria-describedby":h?q:void 0,className:p("relative bg-white shadow dark:bg-gray-700 border-b-4 transition-all duration-300 focus:outline-none",K?"rounded-none h-full flex flex-col":"rounded-lg"),children:[jsxs("div",{className:p("flex items-center justify-between p-4 md:p-5 rounded-t",y&&"border-b border-gray-200 dark:border-gray-600",S),children:[jsxs("div",{className:"flex items-center gap-3",children:[x&&jsx("div",{className:"shrink-0 text-gray-500 dark:text-gray-400",children:x}),jsxs("div",{children:[jsx("h3",{id:G,className:p("text-xl font-semibold text-gray-900 dark:text-white",N),children:r}),h&&jsx("p",{id:q,className:p("mt-1 text-sm text-gray-500 dark:text-gray-400",M),children:h})]})]}),jsxs("div",{className:"flex items-center gap-1 ms-auto",children:[l&&jsx("button",{type:"button",onClick:()=>D(ie=>!ie),className:"text-gray-400 bg-transparent hover:bg-gray-200 hover:text-gray-900 rounded-lg text-sm w-8 h-8 inline-flex justify-center items-center dark:hover:bg-gray-600 dark:hover:text-white","aria-label":ne,children:K?jsx("svg",{className:"w-3.5 h-3.5","aria-hidden":"true",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 18 18",children:jsx("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M7 1H1v6m16 0V1h-6m0 16h6v-6M1 11v6h6"})}):jsx("svg",{className:"w-3.5 h-3.5","aria-hidden":"true",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 18 18",children:jsx("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M11 1h6v6M1 11v6h6m0-12L1 1m16 16-6-6"})})}),jsxs("button",{type:"button",onClick:t,className:"text-gray-400 bg-transparent hover:bg-gray-200 hover:text-gray-900 rounded-lg text-sm w-8 h-8 inline-flex justify-center items-center dark:hover:bg-gray-600 dark:hover:text-white",children:[jsx("svg",{className:"w-3 h-3","aria-hidden":"true",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 14 14",children:jsx("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"m1 1 6 6m0 0 6 6M7 7l6-6M7 7l-6 6"})}),jsx("span",{className:"sr-only",children:J})]})]})]}),jsx("div",{className:p("p-4 md:p-5 space-y-4",K&&"flex-1 overflow-y-auto",v),children:n}),(i||u)&&jsxs("div",{className:p("flex items-center gap-2 p-4 md:p-5 rounded-b",b&&"border-t border-gray-200 dark:border-gray-600",g==="right"?"justify-end":g==="center"?"justify-center":"justify-start",C&&"flex-row-reverse",R),children:[u&&jsx("button",{type:"button",onClick:Z,className:p("text-gray-500 bg-white hover:bg-gray-100 focus:ring-4 focus:outline-none focus:ring-gray-200 font-medium rounded-lg text-sm px-5 py-2.5 border border-gray-200 dark:bg-gray-700 dark:text-gray-300 dark:border-gray-500 dark:hover:bg-gray-600 dark:hover:text-white",E),children:_}),i&&jsx("button",{type:"button",onClick:ee,className:p("text-white bg-blue-600 hover:bg-blue-700 focus:ring-4 focus:outline-none focus:ring-blue-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-blue-500 dark:hover:bg-blue-600",P),children:F})]})]})})})});An.displayName="Modal";function wC(e,t,r,n){let o=r*2+1+n*2+2;if(t<=o)return Array.from({length:t},(f,m)=>m+1);let a=Array.from({length:n},(f,m)=>m+1).filter(f=>f<=t),s=Array.from({length:n},(f,m)=>t-n+1+m).filter(f=>f>=1),l=Math.max(e-r,n+1),i=Math.min(e+r,t-n),c=l>n+2,d=i<t-n-1,u=[];for(let f of a)u.push(f);if(c)u.push("ellipsis");else for(let f=n+1;f<l;f++)u.push(f);for(let f=l;f<=i;f++)u.push(f);if(d)u.push("ellipsis");else for(let f=i+1;f<=t-n;f++)u.push(f);for(let f of s)u.includes(f)||u.push(f);return u}function NC({className:e}){return jsx("svg",{className:e,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"})})}function SC({className:e}){return jsx("svg",{className:e,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})})}function RC({className:e}){return jsx("svg",{className:e,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M11 19l-7-7 7-7M18 19l-7-7 7-7"})})}function PC({className:e}){return jsx("svg",{className:e,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M13 5l7 7-7 7M6 5l7 7-7 7"})})}var TC={sm:{button:"h-7 min-w-7 px-1.5 text-xs",icon:"h-3 w-3",gap:"gap-0.5",text:"text-xs"},md:{button:"h-9 min-w-9 px-2.5 text-sm",icon:"h-4 w-4",gap:"gap-1",text:"text-sm"},lg:{button:"h-11 min-w-11 px-3.5 text-base",icon:"h-5 w-5",gap:"gap-1.5",text:"text-base"}},DC={default:{base:"rounded-md font-medium transition-colors",idle:"text-gray-700 hover:bg-gray-100 dark:text-gray-300 dark:hover:bg-gray-700",active:"bg-blue-600 text-white hover:bg-blue-700 dark:bg-blue-500 dark:hover:bg-blue-600",disabled:"text-gray-300 cursor-not-allowed dark:text-gray-600"},outlined:{base:"rounded-md border font-medium transition-colors",idle:"border-gray-300 text-gray-700 hover:bg-gray-50 dark:border-gray-600 dark:text-gray-300 dark:hover:bg-gray-800",active:"border-blue-600 bg-blue-50 text-blue-600 hover:bg-blue-100 dark:border-blue-400 dark:bg-blue-900/30 dark:text-blue-400 dark:hover:bg-blue-900/50",disabled:"border-gray-200 text-gray-300 cursor-not-allowed dark:border-gray-700 dark:text-gray-600"},minimal:{base:"rounded-md font-medium transition-colors",idle:"text-gray-600 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-200",active:"text-blue-600 font-semibold hover:text-blue-700 dark:text-blue-400 dark:hover:text-blue-300",disabled:"text-gray-300 cursor-not-allowed dark:text-gray-600"}};function EC({page:e,totalPages:t,onPageChange:r,size:n="md",variant:o="default",showFirstLast:a=false,siblings:s=1,boundaries:l=1,disabled:i=false,labels:c,totalItems:d,pageSize:u,pageSizeOptions:f,onPageSizeChange:m,className:g,...y}){let b=TC[n],h=DC[o],x=useMemo(()=>wC(e,t,s,l),[e,t,s,l]),L=useCallback(P=>{i||P<1||P>t||P===e||r(P);},[i,t,e,r]),C=e<=1,S=e>=t,v=p("inline-flex items-center justify-center select-none",b.button,h.base),R=(P,E,W,T)=>jsx("button",{type:"button",onClick:P,disabled:i||E,"aria-label":W,"aria-disabled":i||E,className:p(v,i||E?h.disabled:h.idle),children:T}),N=d!==void 0&&u?(e-1)*u+1:void 0,M=d!==void 0&&u?Math.min(e*u,d):void 0;return jsxs("nav",{"aria-label":"Pagination",className:p("flex items-center",b.gap,g),...y,children:[d!==void 0&&u&&jsxs("span",{className:p("mr-2 text-gray-600 dark:text-gray-400 whitespace-nowrap",b.text),children:[N,"\u2013",M," of ",d]}),f&&f.length>0&&m&&jsxs("div",{className:p("mr-2 flex items-center whitespace-nowrap",b.gap,b.text),children:[jsx("label",{htmlFor:"pagination-page-size",className:"text-gray-600 dark:text-gray-400",children:"Rows:"}),jsx("select",{id:"pagination-page-size",value:u,onChange:P=>m(Number(P.target.value)),disabled:i,className:p("rounded border border-gray-300 bg-white px-1.5 py-0.5 dark:border-gray-600 dark:bg-gray-800 dark:text-gray-200",b.text,i&&"cursor-not-allowed opacity-50"),children:f.map(P=>jsx("option",{value:P,children:P},P))})]}),jsxs("div",{className:p("flex items-center",b.gap),children:[a&&R(()=>L(1),C,c?.first??"Go to first page",jsx(RC,{className:b.icon})),R(()=>L(e-1),C,c?.previous??"Go to previous page",jsx(NC,{className:b.icon})),x.map((P,E)=>P==="ellipsis"?jsx("span",{className:p("inline-flex items-center justify-center select-none",b.button,"text-gray-400 dark:text-gray-500"),"aria-hidden":"true",children:"\u2026"},`ellipsis-${E}`):jsx("button",{type:"button",onClick:()=>L(P),disabled:i,"aria-current":P===e?"page":void 0,"aria-label":`Page ${P}`,className:p(v,P===e?h.active:i?h.disabled:h.idle),children:P},P)),R(()=>L(e+1),S,c?.next??"Go to next page",jsx(SC,{className:b.icon})),a&&R(()=>L(t),S,c?.last??"Go to last page",jsx(PC,{className:b.icon}))]})]})}var IC=.62,AC=2,zC=3,BC=.16,HC=64,WC=22,pc=6,Tm=false;function VC({width:e,height:t,slices:r,variant:n,innerRadius:o,showLabels:a,centerLabel:s,tooltip:l,patterns:i,patternBaseId:c,plotLabel:d,formatValue:u,onSliceClick:f}){let[m,g]=useState(null),y=useMemo(()=>{let N=a?HC:8,M=a?WC:8,P=Math.max(0,Math.min((e-N*2)/2,(t-M*2)/2));return {cx:e/2,cy:t/2,outerRadius:P,inner:n==="donut"?P*(o??IC):(o??0)*P,pad:P>0&&r.length>1?AC/P/2:0}},[e,t,n,o,a,r.length]),{cx:b,cy:h,outerRadius:x,inner:L,pad:C}=y,S=useCallback(N=>{let M=(N.startAngle+N.endAngle)/2,P=Math.sin(M)>=0,E={x:b+Math.sin(M)*(x+4),y:h-Math.cos(M)*(x+4)},W={x:b+Math.sin(M)*(x+14),y:h-Math.cos(M)*(x+14)},T={x:P?W.x+10:W.x-10,y:W.y};return {from:E,elbow:W,end:T,anchor:P?"start":"end"}},[b,h,x]),v=useCallback(N=>{if(r.length===0)return;let M=r.length-1,P=m??0,E=N.key==="ArrowRight"||N.key==="ArrowDown"?Math.min(M,P+1):N.key==="ArrowLeft"||N.key==="ArrowUp"?Math.max(0,P-1):N.key==="Home"?0:N.key==="End"?M:N.key==="Escape"?null:void 0;E!==void 0&&(N.preventDefault(),g(E));},[r.length,m]),R=m===null?null:r[m];return jsxs(Fragment,{children:[jsxs("svg",{width:e,height:t,role:"img","aria-label":d??r.map(N=>N.label).join(", "),tabIndex:0,className:"touch-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500",onPointerLeave:()=>g(null),onBlur:()=>g(null),onKeyDown:v,children:[i?jsx(co,{id:c,entries:r.map(N=>({slot:N.slot,color:N.color}))}):null,r.map((N,M)=>jsx("path",{d:Bd({cx:b,cy:h,innerRadius:L,outerRadius:x+(m===M?zC:0),startAngle:N.startAngle+C,endAngle:Math.max(N.startAngle+C,N.endAngle-C)}),fill:lo(i,c,N.slot,N.color),onPointerEnter:()=>l===false?void 0:g(M),onClick:()=>f?.({key:N.key,label:N.label,value:N.value,share:N.share})},N.key)),a?r.filter(N=>N.endAngle-N.startAngle>=BC).map(N=>{let{from:M,elbow:P,end:E,anchor:W}=S(N);return jsxs("g",{"aria-hidden":"true",children:[jsx("polyline",{points:`${M.x},${M.y} ${P.x},${P.y} ${E.x},${E.y}`,fill:"none",className:"stroke-gray-300 dark:stroke-gray-600",strokeWidth:1}),jsx("text",{x:W==="start"?E.x+3:E.x-3,y:E.y,textAnchor:W,dominantBaseline:"middle",className:"fill-gray-600 text-[10px] dark:fill-gray-300",children:N.label})]},`label-${N.key}`)}):null,n==="donut"&&s?jsxs("g",{"aria-hidden":"true",children:[jsx("text",{x:b,y:h-(s.label?2:0),textAnchor:"middle",dominantBaseline:"middle",className:"fill-gray-900 text-lg font-semibold dark:fill-gray-100",children:s.value}),s.label?jsx("text",{x:b,y:h+14,textAnchor:"middle",dominantBaseline:"middle",className:"fill-gray-500 text-[10px] dark:fill-gray-400",children:s.label}):null]}):null]}),R&&l!==false?jsx(vt,{x:b+Math.sin((R.startAngle+R.endAngle)/2)*(x*.7),y:h-Math.cos((R.startAngle+R.endAngle)/2)*(x*.7),containerWidth:e,children:typeof l=="function"?l({seriesKey:R.key,seriesLabel:R.label,color:R.color,value:R.value,formattedValue:u(R.value),datum:{},share:R.share}):jsx(Tr,{title:R.label,points:[{seriesKey:R.key,seriesLabel:Zt(R.share),color:R.color,value:R.value,formattedValue:u(R.value),datum:{}}]})}):null]})}function OC({data:e,x:t,value:r,variant:n="pie",innerRadius:o,maxSlices:a=pc,otherLabel:s,sort:l="desc",showLabels:i=true,centerLabel:c,patterns:d=false,height:u=260,width:f,size:m="md",legend:g,tooltip:y=true,tableView:b=false,title:h,description:x,loading:L=false,emptyState:C,error:S=false,errorState:v,onRetry:R,actions:N,locale:M,plotLabel:P,onSliceClick:E,className:W,...T}){let O=Ve(),H=useId(),k=useCallback(D=>pt(D,M),[M]),z=useCallback(D=>t.format?t.format(D,0):st(D,M),[t,M]),{slices:A,total:I,rows:X}=useMemo(()=>{let D=e.map((F,_)=>({key:String(gt(F,t.key,_)),label:z(gt(F,t.key,_)),value:Ae(F,r)??0,color:zr(_),slot:_,datum:F})),B=l==="none"?D:[...D].sort((F,_)=>l==="asc"?F.value-_.value:_.value-F.value),w=B.slice(0,a),G=B.slice(a);G.length>0&&w.push({key:"__other__",label:s??O.chartOther,value:G.reduce((F,_)=>F+_.value,0),color:Ar,slot:-1,datum:{}}),w.length>pc&&!Tm&&(Tm=true,console.warn(`[@synertech/ui] A PieChart is drawing ${w.length} slices. Past ${pc} the slices stop being tellable apart: lower \`maxSlices\`, or use a BarChart, which compares lengths rather than angles.`));let q=w.reduce((F,_)=>F+Math.max(0,_.value),0),j=0;return {slices:w.map(F=>{let _=q===0?0:Math.max(0,F.value)/q,J=j;return j+=_*Math.PI*2,{...F,share:_,startAngle:J,endAngle:j}}),total:q,rows:w.map(F=>({[t.key]:F.label,[r]:F.value}))}},[e,t.key,r,l,a,s,O.chartOther,z]),$=g===void 0?true:g!==false,K=typeof g=="string"?g:"bottom";return jsx(xt,{title:h,description:x,height:u,width:f,size:m,loading:L,empty:A.length===0||I===0,emptyState:C,error:S,errorState:v,onRetry:R,actions:N,tableView:b,legendPosition:K,legend:$?jsx(jt,{items:A.map(D=>({key:D.key,label:`${D.label} \xB7 ${Zt(D.share)}`,color:D.color,...d?{pattern:D.slot}:{}})),position:K,marker:"rect",size:m}):void 0,table:b?jsx(Ot,{data:X,series:[{key:r,label:t.label??r}],xKey:t.key,xLabel:t.label??t.key,formatValue:k,caption:typeof h=="string"?h:void 0}):void 0,className:W,...T,children:({width:D})=>jsx(VC,{width:D,height:u,slices:A,variant:n,innerRadius:o,showLabels:i,centerLabel:c,tooltip:y,patterns:d,patternBaseId:H,plotLabel:P,formatValue:k,onSliceClick:E})})}var $C={xs:"h-1",sm:"h-1.5",md:"h-2.5",lg:"h-4",xl:"h-6"},_C={default:"bg-gray-500 dark:bg-gray-400",primary:"bg-blue-600 dark:bg-blue-500",success:"bg-green-600 dark:bg-green-500",warning:"bg-yellow-500 dark:bg-yellow-400",error:"bg-red-600 dark:bg-red-500",info:"bg-cyan-600 dark:bg-cyan-500"},XC={default:"text-gray-700 dark:text-gray-300",primary:"text-blue-600 dark:text-blue-400",success:"text-green-600 dark:text-green-400",warning:"text-yellow-600 dark:text-yellow-400",error:"text-red-600 dark:text-red-400",info:"text-cyan-600 dark:text-cyan-400"},Em="bg-[repeating-linear-gradient(45deg,transparent,transparent_10px,rgba(255,255,255,0.2)_10px,rgba(255,255,255,0.2)_20px)]",GC={default:"bg-gradient-to-r from-gray-400 to-gray-600",primary:"bg-gradient-to-r from-blue-400 to-blue-700",success:"bg-gradient-to-r from-green-400 to-green-700",warning:"bg-gradient-to-r from-yellow-300 to-yellow-600",error:"bg-gradient-to-r from-red-400 to-red-700",info:"bg-gradient-to-r from-cyan-400 to-cyan-700"};function Mm({value:e=0,indeterminate:t=false,size:r="md",color:n="primary",variant:o="default",showValue:a=false,valueFormat:s,label:l,animated:i=true,className:c,...d}){let u=Math.min(100,Math.max(0,e)),f=o==="gradient"?GC[n]:_C[n],m=s?s(u):`${Math.round(u)}%`;return jsxs("div",{className:p("w-full",c),...d,children:[(l||a)&&jsxs("div",{className:"flex items-center justify-between mb-1",children:[l&&jsx("span",{className:"text-sm font-medium text-gray-700 dark:text-gray-300",children:l}),a&&!t&&jsx("span",{className:p("text-sm font-semibold",XC[n],!l&&"ml-auto"),children:m})]}),jsx("div",{role:"progressbar","aria-valuenow":t?void 0:u,"aria-valuemin":0,"aria-valuemax":100,"aria-label":l,className:p("relative w-full overflow-hidden rounded-full bg-gray-200 dark:bg-gray-700",$C[r]),children:t?jsx("div",{className:p("absolute h-full w-1/3 rounded-full",f,o==="striped"&&Em,"animate-[progress-indeterminate_1.5s_ease-in-out_infinite]")}):jsx("div",{className:p("h-full rounded-full",f,o==="striped"&&Em,i&&"transition-[width] duration-300 ease-out"),style:{width:`${u}%`}})})]})}Mm.displayName="ProgressBar";var jC=e=>({sm:"w-4 h-4",md:"w-5 h-5",lg:"w-6 h-6"})[e],qC=e=>({sm:"w-2 h-2",md:"w-2.5 h-2.5",lg:"w-3 h-3"})[e],ZC=(e,t,r,n,o,a,s,l)=>{if(t)return p("border-2",n?"":"border-red-500",r&&!o?"bg-red-500":"");switch(e){case "filled":return p("border-2",l?"":"border-gray-300 dark:border-gray-600",r?a?"":"bg-blue-600 border-blue-600 dark:bg-blue-500 dark:border-blue-500":s?"":"bg-gray-200 border-gray-200 dark:bg-gray-700 dark:border-gray-700");case "outlined":return p("border-[3px]",l?"":r?"border-blue-600 dark:border-blue-500":"border-gray-300 dark:border-gray-600","bg-white dark:bg-gray-800");default:return p("border-2",l?"":r?"border-blue-600 dark:border-blue-500":"border-gray-300 dark:border-gray-600","bg-white dark:bg-gray-800")}},QC={},Im=forwardRef(({label:e,description:t,value:r,checked:n,defaultChecked:o=false,onCheckedChange:a,size:s="md",variant:l="default",labelPosition:i="right",error:c=false,disabled:d=false,readOnly:u=false,required:f=false,checkedColor:m,uncheckedColor:g,borderColor:y,labelColor:b,errorColor:h,dotColor:x,hoverColor:L,focusRingColor:C,showFocusRing:S=true,className:v,containerClassName:R,...N},M)=>{let[P,E]=useState(o),W=n!==void 0,T=W?n:P,O=useId(),H=typeof c=="string"?c:void 0,k=!!c,z=q=>{if(d||u)return;let j=q.target.checked;W||E(j),a?.(j);},A=useMemo(()=>ZC(l,k,T,h,x,m,g,y),[l,k,T,h,x,m,g,y]),I=useMemo(()=>{let q={};return m&&T&&(q.backgroundColor=m,q.borderColor=m),g&&!T&&(q.backgroundColor=g),y&&(q.borderColor=y),q},[m,g,y,T]),X=useMemo(()=>x?{backgroundColor:x}:{},[x]),$=useMemo(()=>b?{color:b}:{},[b]),K=useMemo(()=>h?{color:h}:{},[h]),D=b?"":"text-gray-700 dark:text-gray-200",B=h?"":"text-red-500",w=L?"":"hover:border-blue-500 dark:hover:border-blue-400",G=C?"":"focus-visible:ring-blue-500";return jsxs("div",{className:p("inline-flex flex-col",R),style:QC,children:[jsxs("label",{className:p("inline-flex items-center cursor-pointer",d&&"opacity-50 cursor-not-allowed",u&&"cursor-default",i==="left"&&"flex-row-reverse"),htmlFor:O,children:[jsxs("div",{className:"relative inline-flex items-center",children:[jsx("input",{ref:M,type:"radio",id:O,value:r,checked:T,onChange:z,disabled:d,readOnly:u,required:f,"aria-invalid":k,"aria-describedby":H?`${O}-error`:void 0,className:"sr-only peer",tabIndex:u?-1:void 0,...N}),jsx("div",{className:p("rounded-full transition-all duration-200",jC(s),A,!d&&!u&&w,!d&&!u&&S&&"peer-focus-visible:ring-2 ring-offset-2",!d&&!u&&S&&G,v),style:I,children:T&&jsx("div",{className:p("rounded-full absolute inset-0 m-auto transition-all duration-200",qC(s),x?"":l==="outlined"||l==="default"?"bg-blue-600 dark:bg-blue-500":"bg-white"),style:X})})]}),e&&jsxs("span",{className:p("select-none",i==="left"?"mr-2":"ml-2",D,d&&"opacity-50"),style:$,children:[e,f&&jsx("span",{className:"text-red-500 ml-1",children:"*"})]})]}),t&&!k&&jsx("p",{className:p("text-sm text-gray-500 dark:text-gray-400 mt-1",i==="left"?"text-right":"ml-7"),children:t}),H&&jsx("p",{id:`${O}-error`,className:p("text-sm mt-1",i==="left"?"text-right":"ml-7",B),style:K,children:H})]})});Im.displayName="RadioButton";var fc=()=>{},n1=[],o1=jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",className:"shrink-0",children:jsx("path",{d:"M4 6L8 10L12 6",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),a1=jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none","aria-hidden":"true",className:"shrink-0",children:jsx("path",{d:"M10.5 3.5L3.5 10.5M3.5 3.5L10.5 10.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),s1=jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",className:"shrink-0 animate-spin",children:[jsx("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor",strokeWidth:"2",strokeOpacity:"0.25"}),jsx("path",{d:"M14 8a6 6 0 00-6-6",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}),i1=jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none","aria-hidden":"true",className:"shrink-0",children:jsx("path",{d:"M11.5 3.5L5.5 10.5L2.5 7.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),is={sm:{trigger:"h-8 px-2.5 text-xs gap-1.5",content:"text-xs",option:"px-2.5 py-1.5",searchInput:"px-2.5 py-1.5 text-xs"},md:{trigger:"h-10 px-3 text-sm gap-2",content:"text-sm",option:"px-3 py-2",searchInput:"px-3 py-2 text-sm"},lg:{trigger:"h-12 px-4 text-base gap-2.5",content:"text-base",option:"px-4 py-2.5",searchInput:"px-4 py-2.5 text-base"}},Am={default:{trigger:"border border-gray-300 bg-white dark:border-gray-600 dark:bg-gray-800",focus:"focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},outlined:{trigger:"border-2 border-gray-300 bg-transparent dark:border-gray-600",focus:"focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},filled:{trigger:"border border-transparent bg-gray-100 dark:bg-gray-700",focus:"focus:ring-2 focus:ring-blue-500 focus:border-blue-500"}};function Yn(...e){let t="";for(let r=0;r<e.length;r++){let n=e[r];n&&(t&&(t+=" "),t+=n);}return t}function l1(e,t){if(!t)return e;let r=t.toLowerCase();return e.filter(n=>{if(n.label.toLowerCase().includes(r)||n.value.toLowerCase().includes(r))return true;if(n.keywords){for(let o of n.keywords)if(o.toLowerCase().includes(r))return true}return false})}var c1=memo(forwardRef(function({option:t,isSelected:r,isHighlighted:n,isDisabled:o,sizeKey:a,optionId:s,onClick:l,onMouseEnter:i,index:c},d){let u=()=>{o||l(t.value);},f=()=>{o||i(c);};return jsxs("div",{ref:d,id:s,role:"option","aria-selected":r,"aria-disabled":o||void 0,"data-highlighted":n||void 0,className:Yn(is[a].option,"flex items-center gap-2 cursor-pointer select-none transition-colors",n&&!o&&"bg-blue-50 dark:bg-blue-900/30",r&&!n&&"bg-gray-50 dark:bg-gray-700/50",o&&"opacity-50 cursor-not-allowed"),onClick:u,onMouseEnter:f,children:[t.icon?jsx("span",{className:"flex shrink-0 items-center",children:t.icon}):null,jsxs("span",{className:"flex flex-col min-w-0 flex-1",children:[jsx("span",{className:"truncate",children:t.label}),t.description?jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400 truncate",children:t.description}):null]}),r?jsx("span",{className:"ml-auto text-blue-600 dark:text-blue-400",children:i1}):null]})}));function d1({options:e=n1,value:t,defaultValue:r,onValueChange:n,searchable:o=false,clearable:a=false,disabled:s=false,readOnly:l=false,loading:i=false,size:c="md",variant:d="default",placeholder:u="Select...",label:f,description:m,helperText:g,error:y,required:b=false,noOptionsText:h="No options",onSearchChange:x,name:L,className:C,triggerClassName:S,contentClassName:v,maxHeight:R=256}){let N=useId(),M=`${N}-label`,P=`${N}-trigger`,E=`${N}-listbox`,W=useRef(null),T=useRef(null),O=useRef(null),H=useRef([]),k=t!==void 0,[z,A]=useState(r??""),I=k?t:z,[X,$]=useState(false),[K,D]=useState(""),[B,w]=useState(-1),[G,q]=useState(null),j=useMemo(()=>o?l1(e,K):e,[e,K,o]),U=useMemo(()=>e.find(re=>re.value===I)??null,[e,I]),F=useMemo(()=>{let re=new Set;for(let ce of e)ce.disabled&&re.add(ce.value);return re},[e]),_=useCallback(re=>{k||A(re),(n??fc)(re),$(false),D(""),w(-1),W.current?.focus();},[k,n]),J=useCallback(re=>{re.stopPropagation(),k||A(""),(n??fc)(""),D(""),W.current?.focus();},[k,n]),ne=useCallback(()=>{s||l||($(true),D(""),w(-1));},[s,l]),Y=useCallback(()=>{$(false),D(""),w(-1),W.current?.focus();},[]),ee=useCallback(()=>{X?Y():ne();},[X,Y,ne]),Z=useCallback((re,ce)=>{let De=j.length;if(De===0)return -1;let Ge=re;for(let be=0;be<De;be++)if(Ge=((Ge+ce)%De+De)%De,!F.has(j[Ge].value))return Ge;return -1},[j,F]),ie=useCallback(re=>{if(!(s||l)){if(X){switch(re.key){case "ArrowDown":{re.preventDefault();let ce=Z(B,1);ce!==-1&&w(ce);break}case "ArrowUp":{re.preventDefault();let ce=Z(B,-1);ce!==-1&&w(ce);break}case "Home":{re.preventDefault();let ce=Z(-1,1);ce!==-1&&w(ce);break}case "End":{re.preventDefault();let ce=Z(j.length,-1);ce!==-1&&w(ce);break}case "Enter":{if(re.preventDefault(),B>=0&&B<j.length){let ce=j[B];F.has(ce.value)||_(ce.value);}break}case " ":if(re.preventDefault(),B>=0&&B<j.length){let ce=j[B];F.has(ce.value)||_(ce.value);}else Y();break;case "Escape":re.preventDefault(),Y();break;case "Tab":Y();break}return}switch(re.key){case "ArrowDown":case "ArrowUp":re.preventDefault(),ne();break;case "Enter":case " ":re.preventDefault(),ne();break}}},[s,l,X,ne,Y,B,j,F,Z,_]),V=useCallback(re=>{switch(re.key){case "ArrowDown":{re.preventDefault();let ce=Z(B,1);ce!==-1&&w(ce);break}case "ArrowUp":{re.preventDefault();let ce=Z(B,-1);ce!==-1&&w(ce);break}case "Home":{re.preventDefault();let ce=Z(-1,1);ce!==-1&&w(ce);break}case "End":{re.preventDefault();let ce=Z(j.length,-1);ce!==-1&&w(ce);break}case "Enter":{if(re.preventDefault(),B>=0&&B<j.length){let ce=j[B];F.has(ce.value)||_(ce.value);}break}case "Escape":re.preventDefault(),Y();break;case "Tab":Y();break}},[B,j,F,Z,_,Y]),oe=useCallback(re=>{let ce=re.target.value;D(ce),w(-1),(x??fc)(ce);},[x]);useEffect(()=>{if(!X)return;let re=ce=>{let De=ce.target;W.current?.contains(De)||T.current?.contains(De)||Y();};return document.addEventListener("mousedown",re),document.addEventListener("touchstart",re,{passive:true}),()=>{document.removeEventListener("mousedown",re),document.removeEventListener("touchstart",re);}},[X,Y]),useEffect(()=>{if(!X||!W.current){q(null);return}let re=()=>{let ce=W.current;if(!ce)return;let De=ce.getBoundingClientRect(),Ge=window.innerHeight-De.bottom,be=De.top,Me=R+8,Re=Ge<Me&&be>Ge?"top":"bottom";q({top:Re==="bottom"?De.bottom+window.scrollY+4:De.top+window.scrollY-Me,left:De.left+window.scrollX,width:De.width,placement:Re});};return re(),window.addEventListener("scroll",re,true),window.addEventListener("resize",re),()=>{window.removeEventListener("scroll",re,true),window.removeEventListener("resize",re);}},[X,R]),useEffect(()=>{X&&o&&O.current?.focus();},[X,o]),useEffect(()=>{let re=T.current;if(!(!X||!re))return Pn(re,()=>W.current)},[X]),useEffect(()=>{if(B>=0){let re=H.current[B];re&&typeof re.scrollIntoView=="function"&&re.scrollIntoView({block:"nearest"});}},[B]);let pe=I!==""&&I!==void 0,Te=a&&pe&&!s&&!l&&!i,ze=!s&&!l,ae=Yn("w-full flex items-center justify-between rounded-md transition-colors","text-gray-900 dark:text-gray-100",is[c].trigger,Am[d].trigger,!y&&ze&&Am[d].focus,y&&"border-red-500 dark:border-red-400 focus:ring-2 focus:ring-red-500 focus:border-red-500",s&&"opacity-50 cursor-not-allowed bg-gray-50 dark:bg-gray-900",l&&"cursor-default",!s&&!l&&"cursor-pointer",S);return jsxs("div",{className:Yn("flex flex-col gap-1",C),children:[f?jsxs("label",{id:M,htmlFor:P,className:"text-sm font-medium text-gray-700 dark:text-gray-300",children:[f,b?jsx("span",{className:"text-red-500 ml-0.5","aria-hidden":"true",children:"*"}):null]}):null,m?jsx("p",{className:"text-xs text-gray-500 dark:text-gray-400",children:m}):null,jsxs("button",{ref:W,id:P,type:"button",role:"combobox","aria-expanded":X,"aria-haspopup":"listbox","aria-controls":X?E:void 0,"aria-labelledby":f?M:void 0,"aria-required":b||void 0,"aria-invalid":y?true:void 0,"aria-activedescendant":X&&B>=0?`${N}-option-${B}`:void 0,disabled:s,className:ae,onClick:ze?ee:void 0,onKeyDown:ie,children:[jsxs("span",{className:Yn("flex items-center gap-2 min-w-0 flex-1 truncate",!pe&&"text-gray-400 dark:text-gray-500"),children:[U?.icon?jsx("span",{className:"flex shrink-0 items-center",children:U.icon}):null,jsx("span",{className:"truncate",children:pe&&U?U.label:u})]}),jsxs("span",{className:"flex items-center gap-1 shrink-0",children:[i?jsx("span",{className:"text-gray-400",children:s1}):null,Te?jsx("span",{role:"button",tabIndex:-1,"aria-label":"Clear selection",className:"text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 p-0.5 rounded transition-colors",onClick:J,onMouseDown:re=>re.preventDefault(),children:a1}):null,jsx("span",{className:Yn("text-gray-400 transition-transform duration-200",X&&"rotate-180"),children:o1})]})]}),y?jsx("p",{role:"alert",className:"text-xs text-red-500 dark:text-red-400",children:y}):g?jsx("p",{className:"text-xs text-gray-500 dark:text-gray-400",children:g}):null,L?jsx("input",{type:"hidden",name:L,value:I??""}):null,X&&G?createPortal(jsxs("div",{ref:T,role:"listbox",id:E,"aria-labelledby":f?M:void 0,className:Yn("fixed z-50 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700","rounded-md shadow-lg overflow-hidden","animate-in fade-in-0 zoom-in-95",is[c].content,v),style:{top:G.top,left:G.left,width:G.width,position:"absolute"},onKeyDown:V,children:[o?jsx("div",{className:"border-b border-gray-200 dark:border-gray-700",children:jsx("input",{ref:O,type:"text",role:"searchbox","aria-label":"Search options",className:Yn(is[c].searchInput,"w-full outline-none bg-transparent text-gray-900 dark:text-gray-100","placeholder:text-gray-400 dark:placeholder:text-gray-500"),placeholder:"Search...",value:K,onChange:oe,onKeyDown:V})}):null,jsx("div",{className:"overflow-y-auto",style:{maxHeight:R},children:j.length===0?jsx("div",{className:Yn(is[c].option,"text-gray-500 dark:text-gray-400 text-center py-4"),children:h}):j.map((re,ce)=>jsx(c1,{option:re,isSelected:re.value===I,isHighlighted:ce===B,isDisabled:i||F.has(re.value),sizeKey:c,optionId:`${N}-option-${ce}`,onClick:_,onMouseEnter:w,index:ce,ref:De=>{H.current[ce]=De;}},re.value))})]}),document.body):null]})}var bc=createContext(null);function Io(){let e=useContext(bc);if(!e)throw new Error("Sidebar sub-components must be used within <Sidebar>");return e}function p1(){return Io()}var g1=({className:e})=>jsx("svg",{className:p("w-4 h-4",e),viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M12.79 5.23a.75.75 0 01-.02 1.06L8.832 10l3.938 3.71a.75.75 0 11-1.04 1.08l-4.5-4.25a.75.75 0 010-1.08l4.5-4.25a.75.75 0 011.06.02z",clipRule:"evenodd"})}),f1=({className:e})=>jsx("svg",{className:p("w-4 h-4",e),viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z",clipRule:"evenodd"})}),h1=({className:e})=>jsx("svg",{className:p("w-5 h-5",e),viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{d:"M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z"})});function Hm({text:e,position:t,children:r}){let[n,o]=useState(false),[a,s]=useState({top:0,left:0}),l=useRef(null);return jsxs("div",{ref:l,onMouseEnter:()=>{if(l.current){let c=l.current.getBoundingClientRect();s({top:c.top+c.height/2,left:t==="left"?c.right+8:c.left-8});}o(true);},onMouseLeave:()=>o(false),className:"relative",children:[r,n&&jsx("div",{className:p("fixed z-[9999] px-2.5 py-1.5 text-xs font-medium text-white bg-gray-900 dark:bg-gray-700 rounded-md shadow-lg whitespace-nowrap pointer-events-none",t==="right"&&"-translate-x-full"),style:{top:a.top,left:a.left,transform:`translateY(-50%)${t==="right"?" translateX(-100%)":""}`},role:"tooltip",children:e})]})}function b1({collapsed:e,defaultCollapsed:t=false,onCollapsedChange:r,expandedWidth:n=260,collapsedWidth:o=64,position:a="left",variant:s="default",mobileBreakpoint:l=768,mobileOpen:i,onMobileOpenChange:c,className:d,"aria-label":u,closeLabel:f,trapFocus:m=true,initialFocus:g,returnFocus:y,lockScroll:b=true,children:h}){let x=Ve(),L=useRef(null),C=useRef(null),[S,v]=useState(t),[R,N]=useState(false),[M,P]=useState(false),E=e!==void 0,W=E?e:S,T=i!==void 0,O=T?i:R;useEffect(()=>{let D=window.matchMedia(`(max-width: ${l}px)`),B=w=>{P(w.matches),w.matches||(T||N(false),c?.(false));};return B(D),D.addEventListener("change",B),()=>D.removeEventListener("change",B)},[l,T,c]);let H=useCallback(()=>{if(M){let D=!O;T||N(D),c?.(D);}else {let D=!W;E||v(D),r?.(D);}},[M,O,W,T,E,c,r]),k=useCallback(()=>{T||N(false),c?.(false);},[T,c]);useEffect(()=>{let D=C.current;D&&(M&&!O?(D.setAttribute("inert",""),D.setAttribute("aria-hidden","true")):(D.removeAttribute("inert"),D.removeAttribute("aria-hidden")));},[M,O]);let{dialogRef:z,dialogProps:A}=So({open:M&&O,onClose:k,trapFocus:m,initialFocus:g,returnFocus:y,lockScroll:b,keepInteractive:[L]}),I={default:"bg-white dark:bg-gray-900",bordered:p("bg-white dark:bg-gray-900",a==="left"?"border-r border-gray-200 dark:border-gray-700":"border-l border-gray-200 dark:border-gray-700"),floating:"bg-white dark:bg-gray-900 m-3 rounded-xl shadow-xl border border-gray-200 dark:border-gray-700"},X=W&&!M?o:n,$=jsx("aside",{className:p("flex flex-col h-full overflow-hidden transition-[width] duration-200 ease-in-out",I[s],d),style:{width:M?n:X,minWidth:M?n:X},"data-testid":"sidebar","data-collapsed":W&&!M,"data-mobile":M,"data-position":a,children:h}),K={collapsed:W&&!M,isMobile:M,mobileOpen:O,position:a,variant:s,expandedWidth:n,collapsedWidth:o,toggle:H,closeMobile:k,closeLabel:f};return M?jsxs(bc.Provider,{value:K,children:[O&&jsx("div",{ref:L,className:"fixed inset-0 z-40 bg-black/50 transition-opacity",onClick:k,"aria-hidden":"true","data-testid":"sidebar-overlay"}),jsx("div",{ref:D=>{C.current=D,z.current=D;},...A,"aria-label":u??x.sidebar,className:p("fixed top-0 z-50 h-full transition-transform duration-200 ease-in-out focus:outline-none",a==="left"?"left-0":"right-0",O?"translate-x-0":a==="left"?"-translate-x-full":"translate-x-full"),children:$})]}):jsx(bc.Provider,{value:K,children:$})}function y1({className:e,children:t}){let r=Io(),n=Ve();return jsxs("div",{className:p("flex items-center shrink-0 px-4 h-14 overflow-hidden",r.collapsed&&"justify-center px-2",e),"data-testid":"sidebar-header",children:[t,r.isMobile&&r.mobileOpen&&jsx("button",{type:"button",onClick:r.closeMobile,className:"ml-auto p-1 rounded-md text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-800 cursor-pointer","aria-label":r.closeLabel??n.closeSidebar,children:jsx(h1,{})})]})}function x1({className:e,children:t}){return jsx("div",{className:p("flex-1 overflow-y-auto overflow-x-hidden py-2",e),"data-testid":"sidebar-content",children:t})}function v1({className:e,children:t}){let r=Io();return jsx("div",{className:p("shrink-0 border-t border-gray-200 dark:border-gray-700 px-4 py-3 overflow-hidden",r.collapsed&&"px-2 flex justify-center",e),"data-testid":"sidebar-footer",children:t})}function C1({label:e,className:t,children:r}){let n=Io();return jsxs("div",{className:p("py-2",t),"data-testid":"sidebar-group",children:[e&&!n.collapsed&&jsx("div",{className:"px-4 py-1.5 text-[11px] font-semibold uppercase tracking-wider text-gray-400 dark:text-gray-500",children:e}),e&&n.collapsed&&jsx("div",{className:"mx-auto my-1 w-6 border-t border-gray-200 dark:border-gray-700"}),jsx("div",{className:"space-y-0.5 px-2",children:r})]})}function k1({icon:e,label:t,badge:r,badgeColor:n="bg-blue-600 text-white",active:o=false,disabled:a=false,href:s,onClick:l,tooltip:i,className:c}){let d=Io(),u=d.collapsed,f=i??t,m=jsxs(Fragment,{children:[e&&jsx("span",{className:p("shrink-0 w-5 h-5",u&&"w-5 h-5"),children:e}),!u&&jsxs(Fragment,{children:[jsx("span",{className:"flex-1 truncate",children:t}),r!=null&&jsx("span",{className:p("shrink-0 inline-flex items-center justify-center rounded-full text-[10px] font-semibold min-w-[18px] h-[18px] px-1",n),children:r})]}),u&&r!==void 0&&r!==null&&jsx("span",{className:"absolute top-1 right-1 w-2 h-2 rounded-full bg-blue-600"})]}),g=p("relative flex items-center gap-3 rounded-md text-sm font-medium transition-colors w-full",u?"justify-center px-2 py-2.5":"px-3 py-2",o?"bg-blue-50 text-blue-700 dark:bg-blue-900/30 dark:text-blue-400":"text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-800",a&&"opacity-50 pointer-events-none",!a&&"cursor-pointer",c),y=()=>{a||(l?.(),d.isMobile&&d.closeMobile());},b=s?jsx("a",{href:a?void 0:s,className:g,onClick:y,"aria-current":o?"page":void 0,"data-testid":"sidebar-item",children:m}):jsx("button",{type:"button",className:g,onClick:y,disabled:a,"aria-current":o?"page":void 0,"data-testid":"sidebar-item",children:m});return u?jsx(Hm,{text:f,position:d.position,children:b}):b}function w1({icon:e,label:t,badge:r,defaultOpen:n=false,className:o,children:a}){let s=Io(),[l,i]=useState(n),c=useRef(null),[d,u]=useState(n?void 0:0),f=useRef(true);return useEffect(()=>{if(f.current){f.current=false,u(l?void 0:0);return}if(l){let m=c.current;if(m){u(m.scrollHeight);let g=setTimeout(()=>u(void 0),200);return ()=>clearTimeout(g)}}else {let m=c.current;m&&(u(m.scrollHeight),requestAnimationFrame(()=>u(0)));}},[l]),s.collapsed?jsx(Hm,{text:t,position:s.position,children:jsxs("button",{type:"button",className:p("relative flex items-center justify-center gap-3 rounded-md text-sm font-medium transition-colors w-full px-2 py-2.5","text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-800 cursor-pointer",o),onClick:()=>{s.toggle(),i(true);},"data-testid":"sidebar-submenu-trigger",children:[e&&jsx("span",{className:"shrink-0 w-5 h-5",children:e}),r!=null&&jsx("span",{className:"absolute top-1 right-1 w-2 h-2 rounded-full bg-blue-600"})]})}):jsxs("div",{className:o,"data-testid":"sidebar-submenu",children:[jsxs("button",{type:"button",className:p("flex items-center gap-3 rounded-md text-sm font-medium transition-colors w-full px-3 py-2","text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-800 cursor-pointer"),onClick:()=>i(!l),"aria-expanded":l,"data-testid":"sidebar-submenu-trigger",children:[e&&jsx("span",{className:"shrink-0 w-5 h-5",children:e}),jsx("span",{className:"flex-1 truncate text-left",children:t}),r!=null&&jsx("span",{className:"shrink-0 inline-flex items-center justify-center rounded-full text-[10px] font-semibold min-w-[18px] h-[18px] px-1 bg-blue-600 text-white",children:r}),jsx(f1,{className:p("shrink-0 text-gray-400 transition-transform duration-200",l&&"rotate-180")})]}),jsx("div",{className:"overflow-hidden transition-[height] duration-200 ease-in-out",style:{height:d===void 0?"auto":d},children:jsx("div",{ref:c,className:"pl-4 py-0.5",children:a})})]})}function N1({className:e}){let t=Io(),r=Ve(),n=t.isMobile?t.mobileOpen?t.closeLabel??r.closeSidebar:r.openSidebar:t.collapsed?r.expandSidebar:r.collapseSidebar;return jsx("button",{type:"button",onClick:t.toggle,className:p("p-1.5 rounded-md text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors cursor-pointer",e),"aria-label":n,"data-testid":"sidebar-toggle",children:jsx(g1,{className:p("transition-transform duration-200",t.collapsed&&"rotate-180",t.position==="right"&&!t.collapsed&&"rotate-180",t.position==="right"&&t.collapsed&&"rotate-0")})})}function xc({data:e,width:t=96,height:r=28,curve:n="monotone",color:o=Ts[0],strokeWidth:a=2,area:s=false,emphasizeLast:l=false,domain:i,ariaLabel:c,className:d,...u}){let f=Math.max(a/2,l?a+2.5:0),m=i??Qt(e)??[0,1],g=Ir([0,Math.max(1,e.length-1)],[f,t-f]),y=Ir(m,[r-f,f]),b=e.map((x,L)=>({x:g(L),y:x==null?Number.NaN:y(x),defined:x!=null&&Number.isFinite(x)})),h=[...b].reverse().find(x=>x.defined!==false);return jsxs("svg",{width:t,height:r,viewBox:`0 0 ${t} ${r}`,className:p("overflow-visible",d),role:c?"img":void 0,"aria-label":c,"aria-hidden":c?void 0:true,...u,children:[s?jsx("path",{d:Va(b,r-f,n),fill:o,fillOpacity:.12,stroke:"none"}):null,jsx("path",{d:nn(b,n),fill:"none",stroke:o,strokeWidth:a,strokeLinecap:"round",strokeLinejoin:"round",vectorEffect:"non-scaling-stroke"}),l&&h?jsx("circle",{cx:h.x,cy:h.y,r:a,fill:o,strokeWidth:2,className:"stroke-white dark:stroke-gray-800"}):null]})}var R1={sm:"p-3",md:"p-4",lg:"p-5"},P1={sm:"text-[11px]",md:"text-xs",lg:"text-sm"},T1={sm:"text-xl",md:"text-2xl",lg:"text-3xl"},Wm={sm:{width:72,height:22},md:{width:96,height:28},lg:{width:120,height:34}};function D1(e){return e.direction?e.direction:e.value>0?"up":e.value<0?"down":"flat"}function E1(e,t){return e==="flat"||t==="neutral"?"text-gray-500 dark:text-gray-400":e===t?"text-green-600 dark:text-green-400":"text-red-600 dark:text-red-400"}function L1({direction:e}){return e==="flat"?jsx("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"currentColor","aria-hidden":"true",children:jsx("rect",{x:"1",y:"4.25",width:"8",height:"1.5",rx:"0.75"})}):jsx("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"currentColor","aria-hidden":"true",children:jsx("path",{d:e==="up"?"M5 1 L9.5 8 L0.5 8 Z":"M5 9 L0.5 2 L9.5 2 Z"})})}function M1({label:e,value:t,format:r,delta:n,trend:o,trendColor:a,icon:s,size:l="md",loading:i=false,variant:c="card",footer:d,className:u,...f}){let m=typeof t=="number"?(r??pt)(t):t,g=n?D1(n):"flat",y=n?(n.format??(b=>Zt(b,{signed:true})))(n.value):null;return jsxs("div",{className:p("flex flex-col gap-2",c==="card"&&p("rounded-lg border border-gray-200 bg-white dark:border-gray-700 dark:bg-gray-800",R1[l]),u),...f,children:[jsxs("div",{className:"flex items-start justify-between gap-2",children:[jsx("span",{className:p("font-medium text-gray-500 dark:text-gray-400",P1[l]),children:e}),s?jsx("span",{className:"shrink-0 text-gray-400",children:s}):null]}),jsxs("div",{className:"flex items-end justify-between gap-3",children:[jsxs("div",{className:"flex min-w-0 flex-col gap-1",children:[i?jsx("div",{className:"flex items-center",style:{height:l==="lg"?30:24},"aria-busy":"true","aria-live":"polite",children:jsx(Wo,{indeterminate:true,size:l==="lg"?"sm":"xs",thickness:"thin","aria-hidden":"true"})}):jsx("span",{className:p("leading-none font-semibold text-gray-900 dark:text-gray-100",T1[l]),children:m}),n&&!i?jsxs("span",{className:p("flex items-center gap-1 text-xs font-medium",E1(g,n.goodWhen??"up")),children:[jsx(L1,{direction:g}),y,n.period?jsx("span",{className:"font-normal text-gray-500 dark:text-gray-400",children:n.period}):null]}):null]}),o&&o.length>0&&!i?jsx(xc,{data:o,color:a,emphasizeLast:true,area:true,width:Wm[l].width,height:Wm[l].height,className:"shrink-0"}):null]}),d?jsx("div",{className:"text-xs text-gray-500 dark:text-gray-400",children:d}):null]})}var I1={1:"sm:grid-cols-1",2:"sm:grid-cols-2",3:"sm:grid-cols-3",4:"sm:grid-cols-2 lg:grid-cols-4"};function A1({columns:e=4,className:t,children:r,...n}){return jsx("div",{className:p("grid grid-cols-1 gap-3",I1[e],t),...n,children:r})}var B1={text:"rounded h-4 w-full",circular:"rounded-full",rectangular:"rounded-none",rounded:"rounded-lg"},H1={pulse:"animate-pulse",wave:"animate-shimmer bg-gradient-to-r from-gray-200 via-gray-100 to-gray-200 dark:from-gray-700 dark:via-gray-600 dark:to-gray-700 bg-[length:200%_100%]",none:""},W1="bg-gray-200 dark:bg-gray-700";function Vm({variant:e="text",animation:t="pulse",width:r,height:n,count:o=1,className:a,style:s,...l}){let i={...r!==void 0&&{width:typeof r=="number"?`${r}px`:r},...n!==void 0&&{height:typeof n=="number"?`${n}px`:n},...s};e==="circular"&&r&&!n&&(i.height=i.width);let c=p(W1,B1[e],H1[t],a);return o===1?jsx("div",{className:c,style:i,"aria-busy":"true","aria-live":"polite",...l}):jsx("div",{className:"space-y-2",children:Array.from({length:o}).map((d,u)=>jsx("div",{className:c,style:i,"aria-busy":"true","aria-live":"polite",...l},u))})}Vm.displayName="Skeleton";var _1={sm:"h-1",md:"h-1.5",lg:"h-2"},X1={sm:"w-3.5 h-3.5",md:"w-4 h-4",lg:"w-5 h-5"},G1={sm:14,md:16,lg:20},U1="[&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:rounded-full [&::-moz-range-thumb]:appearance-none [&::-moz-range-thumb]:rounded-full [&::-moz-range-thumb]:border-0",K1={sm:"[&::-webkit-slider-thumb]:h-3.5 [&::-webkit-slider-thumb]:w-3.5 [&::-moz-range-thumb]:h-3.5 [&::-moz-range-thumb]:w-3.5",md:"[&::-webkit-slider-thumb]:h-4 [&::-webkit-slider-thumb]:w-4 [&::-moz-range-thumb]:h-4 [&::-moz-range-thumb]:w-4",lg:"[&::-webkit-slider-thumb]:h-5 [&::-webkit-slider-thumb]:w-5 [&::-moz-range-thumb]:h-5 [&::-moz-range-thumb]:w-5"},Y1={sm:"h-4",md:"h-5",lg:"h-6"},j1={primary:"bg-blue-600 dark:bg-blue-500",success:"bg-green-600 dark:bg-green-500",warning:"bg-yellow-500 dark:bg-yellow-400",error:"bg-red-600 dark:bg-red-500",info:"bg-cyan-600 dark:bg-cyan-500",neutral:"bg-gray-600 dark:bg-gray-400"},q1={primary:"border-blue-600 dark:border-blue-500",success:"border-green-600 dark:border-green-500",warning:"border-yellow-500 dark:border-yellow-400",error:"border-red-600 dark:border-red-500",info:"border-cyan-600 dark:border-cyan-500",neutral:"border-gray-600 dark:border-gray-400"},Z1={primary:"peer-focus-visible:ring-blue-500",success:"peer-focus-visible:ring-green-500",warning:"peer-focus-visible:ring-yellow-500",error:"peer-focus-visible:ring-red-500",info:"peer-focus-visible:ring-cyan-500",neutral:"peer-focus-visible:ring-gray-500"},Q1={primary:"text-blue-600 dark:text-blue-400",success:"text-green-600 dark:text-green-400",warning:"text-yellow-600 dark:text-yellow-400",error:"text-red-600 dark:text-red-400",info:"text-cyan-600 dark:text-cyan-400",neutral:"text-gray-700 dark:text-gray-300"},Om=(e,t,r)=>Math.min(r,Math.max(t,e)),Cc=(e,t,r)=>r>t?(Om(e,t,r)-t)/(r-t)*100:0,wi=(e,t)=>{let r=(.5-e/100)*t,n=Math.round(Math.abs(r)*1e3)/1e3;return `calc(${e}% ${r<0?"-":"+"} ${n}px)`},J1=(e,t,r,n)=>{if(!e)return [];if(Array.isArray(e))return e;let o=n>0?n:1,a=Math.floor((r-t)/o);return a<=0||a>20?[{value:t},{value:r}]:Array.from({length:a+1},(s,l)=>({value:t+l*o}))},Fm=forwardRef(({value:e,defaultValue:t,onValueChange:r,min:n=0,max:o=100,step:a=1,size:s="md",color:l="primary",disabled:i=false,readOnly:c=false,label:d,description:u,error:f=false,showValue:m=false,showTooltip:g=false,valueFormat:y,marks:b,trackColor:h,fillColor:x,thumbColor:L,className:C,containerClassName:S,id:v,...R},N)=>{let[M,P]=useState(t??n),E=e!==void 0,T=Om(E?e:M,n,o),O=useId(),H=v??O,k=typeof f=="string"?f:void 0,z=!!f,A=!i&&!c,I=z?"error":l,X=Cc(T,n,o),$=G1[s],K=U=>{if(!A)return;let F=Number(U.target.value);E||P(F),r?.(F);},D=useMemo(()=>J1(b,n,o,a),[b,n,o,a]),B=D.some(U=>U.label!=null),w=y?y(T):`${T}`,G={width:wi(X,$)};x&&(G.backgroundColor=x);let q={left:wi(X,$)};L&&(q.backgroundColor=L,q.borderColor=L);let j=h?{backgroundColor:h}:{};return jsxs("div",{className:p("w-full",S),children:[(d||m)&&jsxs("div",{className:"flex items-center justify-between mb-1.5",children:[d?jsx("label",{htmlFor:H,className:p("text-sm font-medium text-gray-700 dark:text-gray-200",i&&"opacity-50"),children:d}):jsx("span",{}),m&&jsx("span",{className:p("text-sm font-semibold tabular-nums",Q1[I]),children:w})]}),jsxs("div",{className:p("relative flex items-center",Y1[s],i&&"opacity-50"),children:[jsx("input",{ref:N,type:"range",id:H,min:n,max:o,step:a,value:T,onChange:K,disabled:i,readOnly:c,"aria-invalid":z,"aria-readonly":c||void 0,"aria-describedby":k?`${H}-error`:void 0,tabIndex:A?void 0:-1,className:p("peer absolute inset-0 z-10 m-0 h-full w-full cursor-pointer appearance-none bg-transparent opacity-0",U1,K1[s],!A&&"pointer-events-none cursor-default",C),...R}),jsxs("div",{className:p("pointer-events-none relative w-full overflow-hidden rounded-full bg-gray-200 dark:bg-gray-700",_1[s]),style:j,children:[jsx("div",{className:p("absolute inset-y-0 left-0 rounded-full transition-[width] duration-150 ease-out",x?"":j1[I]),style:G}),D.map((U,F)=>{let _=Cc(U.value,n,o),J=U.value<=T;return jsx("span",{"data-slider-mark":"",className:p("absolute top-1/2 h-1 w-1 -translate-x-1/2 -translate-y-1/2 rounded-full",J?"bg-white/80":"bg-gray-400 dark:bg-gray-500"),style:{left:wi(_,$)}},`mark-${U.value}-${F}`)})]}),jsx("div",{"data-slider-thumb":"",className:p("pointer-events-none absolute top-1/2 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 bg-white shadow transition-transform dark:bg-gray-100",X1[s],L?"":q1[I],A&&"peer-hover:scale-110 peer-active:scale-110","peer-focus-visible:scale-110 peer-focus-visible:ring-2 peer-focus-visible:ring-offset-2",Z1[I]),style:q,children:g&&jsx("span",{"data-slider-tooltip":"",className:p("pointer-events-none absolute bottom-full left-1/2 mb-2 -translate-x-1/2 rounded bg-gray-900 px-1.5 py-0.5 text-xs font-medium text-white opacity-0 transition-opacity dark:bg-gray-700","peer-hover:opacity-100 peer-focus-visible:opacity-100 peer-active:opacity-100"),children:w})})]}),B&&jsx("div",{className:"relative mt-1.5 h-4",children:D.map((U,F)=>U.label!=null?jsx("span",{className:"absolute -translate-x-1/2 whitespace-nowrap text-xs text-gray-500 dark:text-gray-400",style:{left:wi(Cc(U.value,n,o),$)},children:U.label},`mark-label-${U.value}-${F}`):null)}),u&&!k&&jsx("p",{className:"mt-1.5 text-sm text-gray-500 dark:text-gray-400",children:u}),k&&jsx("p",{id:`${H}-error`,className:"mt-1.5 text-sm text-red-500 dark:text-red-400",children:k})]})});Fm.displayName="Slider";var kc=createContext(null);function ha(){let e=useContext(kc);if(!e)throw new Error("Tabs components must be used within a Tabs provider");return e}function _m({children:e,defaultValue:t="",value:r,onValueChange:n,variant:o="underline",size:a="md",color:s="default",fullWidth:l=false,orientation:i="horizontal",className:c}){let[d,u]=useState(t),f=r!==void 0,m=f?r:d,g=useCallback(b=>{f||u(b),n?.(b);},[f,n]),y=useMemo(()=>({value:m,onValueChange:g,variant:o,size:a,color:s,orientation:i,fullWidth:l}),[m,g,o,a,s,i,l]);return jsx(kc.Provider,{value:y,children:jsx("div",{className:p("w-full",i==="vertical"&&"flex gap-4",c),"data-orientation":i,children:e})})}_m.displayName="Tabs";var ak={none:"gap-0",sm:"gap-1",md:"gap-2",lg:"gap-4"};function Xm({children:e,className:t,bgColor:r,gap:n="none"}){let{variant:o,orientation:a,fullWidth:s}=ha(),l=p("flex",a==="vertical"?"flex-col":"flex-row items-center",ak[n]),i={underline:"border-b border-gray-200 dark:border-gray-700",pills:p("p-1 rounded-lg",r||"bg-gray-100 dark:bg-gray-800"),enclosed:"border-b border-gray-200 dark:border-gray-700",soft:p("p-1 rounded-lg",r||"bg-gray-100/50 dark:bg-gray-800/50")};return jsx("div",{role:"tablist","aria-orientation":a,className:p(l,i[o],s&&"w-full",t),children:e})}Xm.displayName="TabsList";var ik={sm:"px-3 py-1.5 text-xs gap-1.5",md:"px-4 py-2 text-sm gap-2",lg:"px-5 py-2.5 text-base gap-2"},Gm={sm:"w-3.5 h-3.5",md:"w-4 h-4",lg:"w-5 h-5"},Um={default:{underline:{active:"text-gray-900 dark:text-white border-gray-900 dark:border-white",inactive:"text-gray-500 dark:text-gray-400 border-transparent hover:text-gray-700 dark:hover:text-gray-300"},pills:{active:"bg-white dark:bg-gray-700 text-gray-900 dark:text-white shadow-sm",inactive:"text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white"},enclosed:{active:"bg-white dark:bg-gray-800 text-gray-900 dark:text-white border-gray-200 dark:border-gray-700 border-b-white dark:border-b-gray-800",inactive:"text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300 border-transparent"},soft:{active:"bg-gray-200 dark:bg-gray-700 text-gray-900 dark:text-white",inactive:"text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white hover:bg-gray-100 dark:hover:bg-gray-700/50"}},primary:{underline:{active:"text-blue-600 dark:text-blue-400 border-blue-600 dark:border-blue-400",inactive:"text-gray-500 dark:text-gray-400 border-transparent hover:text-blue-600 dark:hover:text-blue-400"},pills:{active:"bg-blue-600 text-white",inactive:"text-gray-600 dark:text-gray-400 hover:text-blue-600 dark:hover:text-blue-400"},enclosed:{active:"bg-blue-50 dark:bg-blue-900/20 text-blue-600 dark:text-blue-400 border-blue-200 dark:border-blue-800 border-b-blue-50 dark:border-b-blue-900/20",inactive:"text-gray-500 dark:text-gray-400 hover:text-blue-600 dark:hover:text-blue-400 border-transparent"},soft:{active:"bg-blue-100 dark:bg-blue-900/50 text-blue-700 dark:text-blue-300",inactive:"text-gray-600 dark:text-gray-400 hover:text-blue-600 dark:hover:text-blue-400 hover:bg-blue-50 dark:hover:bg-blue-900/20"}},secondary:{underline:{active:"text-purple-600 dark:text-purple-400 border-purple-600 dark:border-purple-400",inactive:"text-gray-500 dark:text-gray-400 border-transparent hover:text-purple-600 dark:hover:text-purple-400"},pills:{active:"bg-purple-600 text-white",inactive:"text-gray-600 dark:text-gray-400 hover:text-purple-600 dark:hover:text-purple-400"},enclosed:{active:"bg-purple-50 dark:bg-purple-900/20 text-purple-600 dark:text-purple-400 border-purple-200 dark:border-purple-800 border-b-purple-50 dark:border-b-purple-900/20",inactive:"text-gray-500 dark:text-gray-400 hover:text-purple-600 dark:hover:text-purple-400 border-transparent"},soft:{active:"bg-purple-100 dark:bg-purple-900/50 text-purple-700 dark:text-purple-300",inactive:"text-gray-600 dark:text-gray-400 hover:text-purple-600 dark:hover:text-purple-400 hover:bg-purple-50 dark:hover:bg-purple-900/20"}},success:{underline:{active:"text-green-600 dark:text-green-400 border-green-600 dark:border-green-400",inactive:"text-gray-500 dark:text-gray-400 border-transparent hover:text-green-600 dark:hover:text-green-400"},pills:{active:"bg-green-600 text-white",inactive:"text-gray-600 dark:text-gray-400 hover:text-green-600 dark:hover:text-green-400"},enclosed:{active:"bg-green-50 dark:bg-green-900/20 text-green-600 dark:text-green-400 border-green-200 dark:border-green-800 border-b-green-50 dark:border-b-green-900/20",inactive:"text-gray-500 dark:text-gray-400 hover:text-green-600 dark:hover:text-green-400 border-transparent"},soft:{active:"bg-green-100 dark:bg-green-900/50 text-green-700 dark:text-green-300",inactive:"text-gray-600 dark:text-gray-400 hover:text-green-600 dark:hover:text-green-400 hover:bg-green-50 dark:hover:bg-green-900/20"}},warning:{underline:{active:"text-yellow-600 dark:text-yellow-400 border-yellow-600 dark:border-yellow-400",inactive:"text-gray-500 dark:text-gray-400 border-transparent hover:text-yellow-600 dark:hover:text-yellow-400"},pills:{active:"bg-yellow-500 text-white",inactive:"text-gray-600 dark:text-gray-400 hover:text-yellow-600 dark:hover:text-yellow-400"},enclosed:{active:"bg-yellow-50 dark:bg-yellow-900/20 text-yellow-600 dark:text-yellow-400 border-yellow-200 dark:border-yellow-800 border-b-yellow-50 dark:border-b-yellow-900/20",inactive:"text-gray-500 dark:text-gray-400 hover:text-yellow-600 dark:hover:text-yellow-400 border-transparent"},soft:{active:"bg-yellow-100 dark:bg-yellow-900/50 text-yellow-700 dark:text-yellow-300",inactive:"text-gray-600 dark:text-gray-400 hover:text-yellow-600 dark:hover:text-yellow-400 hover:bg-yellow-50 dark:hover:bg-yellow-900/20"}},error:{underline:{active:"text-red-600 dark:text-red-400 border-red-600 dark:border-red-400",inactive:"text-gray-500 dark:text-gray-400 border-transparent hover:text-red-600 dark:hover:text-red-400"},pills:{active:"bg-red-600 text-white",inactive:"text-gray-600 dark:text-gray-400 hover:text-red-600 dark:hover:text-red-400"},enclosed:{active:"bg-red-50 dark:bg-red-900/20 text-red-600 dark:text-red-400 border-red-200 dark:border-red-800 border-b-red-50 dark:border-b-red-900/20",inactive:"text-gray-500 dark:text-gray-400 hover:text-red-600 dark:hover:text-red-400 border-transparent"},soft:{active:"bg-red-100 dark:bg-red-900/50 text-red-700 dark:text-red-300",inactive:"text-gray-600 dark:text-gray-400 hover:text-red-600 dark:hover:text-red-400 hover:bg-red-50 dark:hover:bg-red-900/20"}}},lk={underline:"border-b-2 -mb-px",pills:"rounded-md",enclosed:"border border-b-0 rounded-t-md -mb-px",soft:"rounded-md"};function Km({value:e,children:t,disabled:r=false,icon:n,endIcon:o,className:a,activeClassName:s,inactiveClassName:l}){let{value:i,onValueChange:c,variant:d,size:u,color:f,fullWidth:m}=ha(),g=i===e,y=()=>{r||c(e);},b=C=>{(C.key==="Enter"||C.key===" ")&&(C.preventDefault(),y());},h=p("inline-flex items-center justify-center font-medium transition-all duration-200","focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-blue-500",ik[u],m&&"flex-1"),x=g?p(Um[f][d].active,s):p(Um[f][d].inactive,l),L=r?"opacity-50 cursor-not-allowed":"cursor-pointer";return jsxs("button",{type:"button",role:"tab","aria-selected":g,"aria-disabled":r,tabIndex:g?0:-1,onClick:y,onKeyDown:b,disabled:r,className:p(h,lk[d],x,L,a),children:[n&&jsx("span",{className:p("shrink-0",Gm[u]),children:n}),jsx("span",{children:t}),o&&jsx("span",{className:p("shrink-0",Gm[u]),children:o})]})}Km.displayName="TabsTrigger";function Ym({value:e,children:t,className:r,forceMount:n=false}){let{value:o}=ha(),a=o===e;return !a&&!n?null:jsx("div",{role:"tabpanel",hidden:!a,tabIndex:0,className:p("mt-4 focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-blue-500 rounded-md",!a&&"hidden",r),children:t})}Ym.displayName="TabsContent";function uk({className:e}){return jsx("svg",{className:e,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:jsx("path",{d:"M9 12L11 14L15 10M21 12C21 16.97 16.97 21 12 21C7.03 21 3 16.97 3 12C3 7.03 7.03 3 12 3C16.97 3 21 7.03 21 12Z",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}function mk({className:e}){return jsx("svg",{className:e,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:jsx("path",{d:"M12 8V12M12 16H12.01M21 12C21 16.97 16.97 21 12 21C7.03 21 3 16.97 3 12C3 7.03 7.03 3 12 3C16.97 3 21 7.03 21 12Z",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}function pk({className:e}){return jsx("svg",{className:e,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:jsx("path",{d:"M12 9V13M12 17H12.01M10.29 3.86L1.82 18C1.65 18.3 1.55 18.65 1.55 18.99C1.55 19.34 1.64 19.69 1.81 19.99C1.99 20.29 2.24 20.55 2.54 20.72C2.84 20.901 3.18 20.99 3.53 21H20.47C20.82 20.99 21.16 20.901 21.46 20.72C21.76 20.55 22.01 20.29 22.19 19.99C22.36 19.69 22.449 19.34 22.448 18.99C22.447 18.65 22.35 18.3 22.18 18L13.71 3.86C13.53 3.57 13.28 3.32 12.98 3.15C12.68 2.99 12.34 2.9 12 2.9C11.66 2.9 11.32 2.99 11.02 3.15C10.72 3.32 10.47 3.57 10.29 3.86Z",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}function jm({className:e}){return jsx("svg",{className:e,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:jsx("path",{d:"M13 16H12V12H11M12 8H12.01M21 12C21 16.97 16.97 21 12 21C7.03 21 3 16.97 3 12C3 7.03 7.03 3 12 3C16.97 3 21 7.03 21 12Z",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}function gk({className:e}){return jsx("svg",{className:e,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:jsx("path",{d:"M4 4L12 12M12 4L4 12",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}var fk={success:uk,error:mk,warning:pk,info:jm,default:jm},hk={success:{solid:"bg-green-600 text-white border-green-600",outlined:"bg-white text-green-700 border-green-600 dark:bg-gray-900 dark:text-green-400",soft:"bg-green-50 text-green-700 border-green-200 dark:bg-green-900/20 dark:text-green-400 dark:border-green-800"},error:{solid:"bg-red-600 text-white border-red-600",outlined:"bg-white text-red-700 border-red-600 dark:bg-gray-900 dark:text-red-400",soft:"bg-red-50 text-red-700 border-red-200 dark:bg-red-900/20 dark:text-red-400 dark:border-red-800"},warning:{solid:"bg-yellow-500 text-white border-yellow-500",outlined:"bg-white text-yellow-700 border-yellow-500 dark:bg-gray-900 dark:text-yellow-400",soft:"bg-yellow-50 text-yellow-700 border-yellow-200 dark:bg-yellow-900/20 dark:text-yellow-400 dark:border-yellow-800"},info:{solid:"bg-blue-600 text-white border-blue-600",outlined:"bg-white text-blue-700 border-blue-600 dark:bg-gray-900 dark:text-blue-400",soft:"bg-blue-50 text-blue-700 border-blue-200 dark:bg-blue-900/20 dark:text-blue-400 dark:border-blue-800"},default:{solid:"bg-gray-700 text-white border-gray-700",outlined:"bg-white text-gray-700 border-gray-300 dark:bg-gray-900 dark:text-gray-300",soft:"bg-gray-50 text-gray-700 border-gray-200 dark:bg-gray-800 dark:text-gray-300 dark:border-gray-700"}},bk={success:"text-green-600 dark:text-green-400",error:"text-red-600 dark:text-red-400",warning:"text-yellow-600 dark:text-yellow-400",info:"text-blue-600 dark:text-blue-400",default:"text-gray-600 dark:text-gray-400"};function Zm({children:e,title:t,description:r,type:n="default",variant:o="soft",icon:a,action:s,onClose:l,closable:i=true,className:c,...d}){let u=fk[n],f=jsx(u,{className:"w-5 h-5"}),m=e??r;return jsxs("div",{role:"alert",className:p("flex items-start gap-3 p-4 rounded-lg border shadow-lg min-w-[320px] max-w-md","animate-in slide-in-from-top-2 fade-in duration-300",hk[n][o],c),...d,children:[jsx("div",{className:p("flex-shrink-0 mt-0.5",o==="solid"?"text-white":bk[n]),children:a??f}),jsxs("div",{className:"flex-1 min-w-0",children:[t&&jsx("div",{className:"font-semibold text-sm mb-1",children:t}),m&&jsx("div",{className:"text-sm opacity-90",children:m}),s&&jsx("div",{className:"mt-3",children:s})]}),i&&jsx("button",{type:"button",onClick:l,className:p("flex-shrink-0 rounded-md p-1 transition-colors hover:bg-black/10 dark:hover:bg-white/10","focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-current",o==="solid"?"text-white":""),"aria-label":"Close notification",children:jsx(gk,{className:"w-4 h-4"})})]})}Zm.displayName="Toast";var vk={default:"bg-gray-900 text-white dark:bg-gray-700",light:"bg-white text-gray-900 border border-gray-200 shadow-lg dark:bg-gray-800 dark:text-white dark:border-gray-600",error:"bg-red-600 text-white",success:"bg-green-600 text-white",warning:"bg-yellow-500 text-white",info:"bg-blue-600 text-white"},Ck={default:{top:"border-t-gray-900 dark:border-t-gray-700",bottom:"border-b-gray-900 dark:border-b-gray-700",left:"border-l-gray-900 dark:border-l-gray-700",right:"border-r-gray-900 dark:border-r-gray-700"},light:{top:"border-t-white dark:border-t-gray-800",bottom:"border-b-white dark:border-b-gray-800",left:"border-l-white dark:border-l-gray-800",right:"border-r-white dark:border-r-gray-800"},error:{top:"border-t-red-600",bottom:"border-b-red-600",left:"border-l-red-600",right:"border-r-red-600"},success:{top:"border-t-green-600",bottom:"border-b-green-600",left:"border-l-green-600",right:"border-r-green-600"},warning:{top:"border-t-yellow-500",bottom:"border-b-yellow-500",left:"border-l-yellow-500",right:"border-r-yellow-500"},info:{top:"border-t-blue-600",bottom:"border-b-blue-600",left:"border-l-blue-600",right:"border-r-blue-600"}},kk={sm:"px-2 py-1 text-xs",md:"px-3 py-1.5 text-sm",lg:"px-4 py-2 text-base"},wk={sm:"border-4",md:"border-[5px]",lg:"border-[6px]"},Nk={top:"bottom-full left-1/2 -translate-x-1/2 mb-2",bottom:"top-full left-1/2 -translate-x-1/2 mt-2",left:"right-full top-1/2 -translate-y-1/2 mr-2",right:"left-full top-1/2 -translate-y-1/2 ml-2"},Sk={top:"top-full left-1/2 -translate-x-1/2 border-l-transparent border-r-transparent border-b-transparent",bottom:"bottom-full left-1/2 -translate-x-1/2 border-l-transparent border-r-transparent border-t-transparent",left:"left-full top-1/2 -translate-y-1/2 border-t-transparent border-b-transparent border-r-transparent",right:"right-full top-1/2 -translate-y-1/2 border-t-transparent border-b-transparent border-l-transparent"};function $t({children:e,content:t,position:r="top",variant:n="default",size:o="md",trigger:a="hover",open:s,delay:l=0,showArrow:i=true,maxWidth:c="max-w-xs",className:d,contentClassName:u,disabled:f=false,...m}){let[g,y]=useState(false),b=useRef(null),h=useCallback(()=>{f||(l>0?b.current=setTimeout(()=>y(true),l):y(true));},[l,f]),x=useCallback(()=>{b.current&&(clearTimeout(b.current),b.current=null),y(false);},[]),L=useCallback(()=>{f||y(v=>!v);},[f]),C=a==="manual"?s:g,S={hover:{onMouseEnter:h,onMouseLeave:x,onFocus:h,onBlur:x},click:{onClick:L},manual:{}}[a];return jsxs("div",{className:p("relative inline-flex",d),...S,...m,children:[e,C&&!f&&jsxs("div",{role:"tooltip",className:p("absolute z-50 whitespace-normal wrap-break-word rounded-md","transition-opacity duration-150",Nk[r],vk[n],kk[o],c,u),children:[t,i&&jsx("span",{className:p("absolute w-0 h-0 border-solid",wk[o],Sk[r],Ck[n][r]),"aria-hidden":"true"})]})]})}$t.displayName="Tooltip";function Pk(e){switch(e){case "bordered":return "border-t border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-900 text-gray-700 dark:text-gray-300";case "minimal":return "bg-transparent text-gray-600 dark:text-gray-400";case "dark":return "bg-gray-900 text-gray-300";default:return "bg-gray-100 dark:bg-gray-800 text-gray-700 dark:text-gray-300"}}function Tk(e){switch(e){case "sm":return "py-6";case "lg":return "py-16";default:return "py-10"}}function ep({variant:e="default",size:t="md",sticky:r=false,className:n,children:o,...a}){return jsx("footer",{className:p(Pk(e),Tk(t),r&&"sticky bottom-0 z-40",n),...a,children:jsx("div",{className:"container mx-auto px-4",children:o})})}ep.displayName="Footer";function Dk(e){switch(e){case 1:return "grid-cols-1";case 2:return "grid-cols-1 sm:grid-cols-2";case 3:return "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3";case 4:return "grid-cols-1 sm:grid-cols-2 lg:grid-cols-4";case 5:return "grid-cols-1 sm:grid-cols-2 lg:grid-cols-5";case 6:return "grid-cols-2 sm:grid-cols-3 lg:grid-cols-6";default:return ""}}function tp({title:e,titleClassName:t,columns:r,className:n,children:o,...a}){return jsxs("div",{className:p(r&&"grid gap-8",Dk(r),n),...a,children:[e&&jsx("h3",{className:p("text-sm font-semibold uppercase tracking-wider text-gray-900 dark:text-white",r&&"col-span-full",t),children:e}),o]})}tp.displayName="FooterSection";function rp({title:e,titleClassName:t,className:r,children:n,...o}){return jsxs("div",{className:p("flex flex-col gap-3",r),...o,children:[e&&jsx("h4",{className:p("text-sm font-semibold uppercase tracking-wider text-gray-900 dark:text-white",t),children:e}),n]})}rp.displayName="FooterColumn";function np({external:e=false,className:t,children:r,...n}){return jsx("a",{className:p("text-sm text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white transition-colors",t),target:e?"_blank":void 0,rel:e?"noopener noreferrer":void 0,...n,children:r})}np.displayName="FooterLink";function op({copyright:e,className:t,children:r,...n}){return jsxs("div",{className:p("mt-8 border-t border-gray-200 dark:border-gray-700 pt-6 flex flex-col sm:flex-row items-center justify-between gap-4",t),...n,children:[e&&jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:e}),r]})}op.displayName="FooterBottom";function ap({className:e,children:t,...r}){return jsx("div",{className:p("flex items-center gap-4",e),...r,children:t})}ap.displayName="FooterSocial";function sp({icon:e,label:t,className:r,...n}){return jsx("a",{className:p("text-gray-500 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white transition-colors",r),target:"_blank",rel:"noopener noreferrer","aria-label":t,...n,children:e})}sp.displayName="FooterSocialLink";var Wk=4.5,Vk=48,lp=false,Ok=memo(function({points:t}){return jsx("g",{children:t.map(r=>jsx("circle",{cx:r.cx,cy:r.cy,r:r.r,fill:r.color,fillOpacity:.85,strokeWidth:2,className:"stroke-white dark:stroke-gray-800"},`${r.seriesKey}-${r.index}`))})});function Fk({width:e,height:t,data:r,resolvedSeries:n,x:o,y:a,grid:s,size:l,bubble:i,trendLine:c,quadrants:d,pointRadius:u,overlay:f,maxPoints:m,margin:g,tooltip:y,onPointClick:b,plotLabel:h,formatValue:x,formatX:L}){let[C,S]=useState(null),v=useMemo(()=>{let P=n.filter($=>!$.hidden),E=P.map($=>$.key),W=Jt({width:e,height:t,data:r,x:{...o,scale:o.scale==="time"?"time":"linear"},y:a,bounds:Qt(vr(r,E)),margin:g,formatValue:x,formatX:L}),T=i?vr(r,[i.key]):[],O=i?Qt(T):null,[H,k]=i?.range??[4,14],z=$=>{if(!i||!O)return u;let K=Ae($,i.key);if(K===null)return H;let[D,B]=O,w=B===D?1:(K-D)/(B-D);return Math.sqrt(H*H+w*(k*k-H*H))},A=[],I=[];P.forEach($=>{let K=[];r.forEach((D,B)=>{let w=Ae(D,$.key),G=W.categoryPositions[B];w===null||!Number.isFinite(G)||K.push({seriesKey:$.key,seriesLabel:Vt($),color:$.color,index:B,cx:G,cy:W.valueScale(w),r:z(D),xValue:Xr(W.xValues[B]),yValue:w});}),m||Yo("ScatterChart",K.length),I.push(...K),A.push(...m&&m>0?cl(K,m):K);});let X=null;if(c&&I.length>1){let $=I.length,K=I.reduce((q,j)=>q+j.xValue,0),D=I.reduce((q,j)=>q+j.yValue,0),B=I.reduce((q,j)=>q+j.xValue*j.yValue,0),w=I.reduce((q,j)=>q+j.xValue*j.xValue,0),G=$*w-K*K;if(G!==0){let q=($*B-K*D)/G,j=(D-q*K)/$,U=I.map(ne=>ne.xValue),[F,_]=[Math.min(...U),Math.max(...U)],J=I.map(ne=>ne.cx);X={x1:Math.min(...J),y1:W.valueScale(q*F+j),x2:Math.max(...J),y2:W.valueScale(q*_+j)};}}return {visible:P,points:A,plot:kn({geometry:W,width:e,height:t,data:r,series:P,formatValue:x,formatX:L}),trend:X,xTicks:W.categoryTicks,yTicks:W.valueTicks,valueScale:W.valueScale,positions:W.categoryPositions,innerWidth:W.innerWidth,innerHeight:W.innerHeight,margin:W.margin,xValues:W.xValues}},[r,n,o,a,e,t,g,i,c,u,m,x,L]),R=useCallback(P=>{if(y===false||v.points.length===0)return;let E=P.currentTarget.getBoundingClientRect(),W=P.clientX-E.left-v.margin.left,T=P.clientY-E.top-v.margin.top,O=null,H=Vk;for(let k of v.points){let z=Math.hypot(k.cx-W,k.cy-T);z<H&&(H=z,O=k);}S(O);},[y,v.points,v.margin]),N=useCallback(()=>{if(!b||!C)return;let P=r[C.index];P&&b({seriesKey:C.seriesKey,seriesLabel:C.seriesLabel,color:C.color,value:C.yValue,formattedValue:x(C.yValue),datum:P,index:C.index,x:v.xValues[C.index]});},[b,C,x,r,v.xValues]),M=wn(f);return jsxs(Fragment,{children:[jsxs("svg",{width:e,height:t,role:"img","aria-label":h??v.visible.map(P=>Vt(P)).join(", "),tabIndex:0,className:"touch-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500",onPointerMove:R,onPointerLeave:()=>S(null),onBlur:()=>S(null),onClick:N,children:[jsxs("g",{transform:`translate(${v.margin.left}, ${v.margin.top})`,children:[jsx(Yt,{width:v.innerWidth,height:v.innerHeight,horizontal:s==="y"||s==="both"?v.yTicks.map(P=>P.offset):void 0,vertical:s==="x"||s==="both"?v.xTicks.map(P=>P.offset):void 0}),d?.y!==void 0?jsx("line",{x1:0,y1:v.valueScale(d.y),x2:v.innerWidth,y2:v.valueScale(d.y),stroke:"var(--color-chart-muted)",strokeWidth:1,strokeDasharray:"4 4"}):null,M.under?.(v.plot),v.trend?jsx("line",{x1:v.trend.x1,y1:v.trend.y1,x2:v.trend.x2,y2:v.trend.y2,stroke:"var(--color-chart-muted)",strokeWidth:1.5,strokeDasharray:"4 4"}):null,jsx(Ok,{points:v.points}),M.over?.(v.plot),C?jsx("circle",{cx:C.cx,cy:C.cy,r:C.r+3,fill:"none",stroke:C.color,strokeWidth:2,"aria-hidden":"true"}):null]}),jsx("g",{transform:`translate(${v.margin.left}, ${v.margin.top+v.innerHeight})`,children:o.hidden?null:jsx(tt,{orientation:"bottom",ticks:v.xTicks,length:v.innerWidth,label:o.label,size:l})}),jsx("g",{transform:`translate(${v.margin.left}, ${v.margin.top})`,children:a?.hidden?null:jsx(tt,{orientation:"left",ticks:v.yTicks,length:v.innerHeight,showLine:false,label:a?.label,size:l})})]}),C&&r[C.index]&&y!==false?jsx(vt,{x:v.margin.left+C.cx,y:v.margin.top+C.cy,containerWidth:e,children:typeof y=="function"?y({x:v.xValues[C.index],xLabel:L(v.xValues[C.index],C.index),index:C.index,points:[{seriesKey:C.seriesKey,seriesLabel:C.seriesLabel,color:C.color,value:C.yValue,formattedValue:x(C.yValue),datum:r[C.index]}]}):jsx(Tr,{title:`${o.label??o.key} ${L(v.xValues[C.index],C.index)}`,points:[{seriesKey:C.seriesKey,seriesLabel:C.seriesLabel,color:C.color,value:C.yValue,formattedValue:x(C.yValue),datum:r[C.index]}]})}):null]})}function $k({data:e,series:t,x:r,y:n,height:o=280,width:a,size:s="md",grid:l="both",legend:i,tooltip:c=true,tableView:d=false,emphasis:u,title:f,description:m,loading:g=false,emptyState:y,error:b=false,errorState:h,onRetry:x,actions:L,onPointClick:C,bubble:S,trendLine:v=false,quadrants:R,pointRadius:N=Wk,overlay:M,legendToggle:P=true,maxPoints:E,margin:W,locale:T,plotLabel:O,className:H,...k}){let[z,A]=useState(()=>new Set);t.length>3&&!lp&&(lp=true,console.warn(`[@synertech/ui] A ScatterChart was given ${t.length} series. Any two marks can sit side by side here, and only the first ${3} palette slots stay tellable apart under that test: facet the chart instead.`));let I=useMemo(()=>t.map((G,q)=>({...G,hidden:G.hidden||z.has(G.key),color:Br(G,q,u)})),[t,z,u]),X=useMemo(()=>n?.format??(G=>pt(G,T)),[n?.format,T]),$=useMemo(()=>r.format??(G=>r.scale==="time"?st(G instanceof Date?G:new Date(Xr(G)),T):pt(Xr(G),T)),[r.format,r.scale,T]),K=useCallback(G=>{A(q=>{let j=new Set(q);return j.has(G)?j.delete(G):j.add(G),j});},[]),D=i===void 0?t.length>=2:i!==false,B=typeof i=="string"?i:"bottom",w=I.filter(G=>!G.hidden).length;return jsx(xt,{title:f,description:m,height:o,width:a,size:s,loading:g,empty:e.length===0||w===0,emptyState:y,error:b,errorState:h,onRetry:x,actions:L,tableView:d,legendPosition:B,legend:D?jsx(jt,{items:Gr(I,u),position:B,marker:"dot",size:s,onToggle:P?K:void 0}):void 0,table:d?jsx(Ot,{data:e,series:I,xKey:r.key,xLabel:r.label??r.key,formatX:$,formatValue:X,caption:typeof f=="string"?f:void 0}):void 0,className:H,...k,children:({width:G})=>jsx(Fk,{width:G,height:o,data:e,resolvedSeries:I,x:r,y:n,grid:l,size:s,bubble:S,trendLine:v,quadrants:R,pointRadius:N,overlay:M,maxPoints:E,margin:W,tooltip:c,onPointClick:C,plotLabel:O,formatValue:X,formatX:$})})}var dp="se-grid-pattern",up=memo(function({gridSize:t,zoom:r}){let n=t*r;return jsxs("svg",{className:"absolute inset-0 w-full h-full pointer-events-none","aria-hidden":"true",children:[jsx("defs",{children:jsx("pattern",{id:dp,width:n,height:n,patternUnits:"userSpaceOnUse",children:jsx("circle",{cx:1,cy:1,r:1,className:"fill-gray-300 dark:fill-gray-600"})})}),jsx("rect",{width:"100%",height:"100%",fill:`url(#${dp})`})]})});function jn(e,t){return e.collapsed?40:e.height?e.height:40+(e.notes?24:0)+e.fields.length*32+(t?36:0)}function ba(e,t){return 40+(t?24:0)+e*32+32/2}function mp(e,t,r){let n=e.fields.findIndex(i=>i.id===t);if(n===-1)return null;let o=e.width??260,a=!!e.notes,s=e.y+ba(n,a);return {x:r==="left"?e.x+0:e.x+o-0,y:s}}function Pc(e,t){return Math.round(e/t)*t}function ds(e,t,r){return Math.min(r,Math.max(t,e))}function us(e,t,r,n){return {x:(e-n.left-r.x)/r.zoom,y:(t-n.top-r.y)/r.zoom}}function Pi(e,t,r,n){let o=Math.abs(r-e),a=Math.max(50,o*.5),s=e+a,l=t,i=r-a;return `M ${e} ${t} C ${s} ${l}, ${i} ${n}, ${r} ${n}`}function pp(e,t,r,n,o=40){if(e.length===0)return {x:0,y:0,zoom:1};let a=1/0,s=1/0,l=-1/0,i=-1/0;for(let g of e){let y=g.width??260,b=jn(g,n);a=Math.min(a,g.x),s=Math.min(s,g.y),l=Math.max(l,g.x+y),i=Math.max(i,g.y+b);}let c=l-a+o*2,d=i-s+o*2,u=Math.min(t/c,r/d,1),f=(t-c*u)/2-(a-o)*u,m=(r-d*u)/2-(s-o)*u;return {x:f,y:m,zoom:u}}var ps=["text","varchar","char","int2","int4","int8","serial","bigserial","float4","float8","numeric","decimal","bool","date","time","timestamp","timestamptz","uuid","json","jsonb","bytea"];function gp(){return `table-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function ms(){return `field-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function Tc(){return `rel-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function Dc(e="new_field"){return {id:ms(),name:e,type:"text",nullable:true}}function Ec(e,t,r="new_table"){return {id:gp(),name:r,x:e,y:t,fields:[{id:ms(),name:"id",type:"serial",primaryKey:true},{id:ms(),name:"createdAt",type:"timestamp"},{id:ms(),name:"updatedAt",type:"timestamp"}]}}var Ti=()=>jsxs("svg",{className:"w-3.5 h-3.5 text-indigo-500 flex-shrink-0",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[jsx("path",{d:"M10 1l2 2-5 5M8.5 4.5L11 7"}),jsx("circle",{cx:"4.5",cy:"11.5",r:"3"})]}),hp=()=>jsxs("svg",{className:"w-3.5 h-3.5 flex-shrink-0",viewBox:"0 0 16 16",fill:"currentColor",children:[jsx("circle",{cx:"8",cy:"8",r:"6",className:"fill-blue-500"}),jsx("path",{d:"M5 8h6M8 5l3 3-3 3",stroke:"white",strokeWidth:"1.5",fill:"none",strokeLinecap:"round",strokeLinejoin:"round"})]}),Kk=({collapsed:e})=>jsx("svg",{className:"w-3.5 h-3.5",viewBox:"0 0 16 16",fill:"currentColor",children:e?jsx("path",{d:"M6 3l5 5-5 5V3z"}):jsx("path",{d:"M3 6l5 5 5-5H3z"})}),bp=()=>jsx("svg",{className:"w-3.5 h-3.5 text-amber-500 flex-shrink-0",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:jsx("path",{d:"M3 2v12M7 4h6M7 8h4M7 12h5"})}),yp=()=>jsx("svg",{className:"w-3.5 h-3.5 text-purple-500 flex-shrink-0",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:jsx("path",{d:"M4 2v8a4 4 0 008 0V2"})}),Yk=()=>jsx("svg",{className:"w-3 h-3",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:jsx("path",{d:"M4 8h8"})}),jk=()=>jsxs("svg",{className:"w-3 h-3 text-gray-300",viewBox:"0 0 16 16",fill:"currentColor",children:[jsx("circle",{cx:"5",cy:"4",r:"1.5"}),jsx("circle",{cx:"11",cy:"4",r:"1.5"}),jsx("circle",{cx:"5",cy:"8",r:"1.5"}),jsx("circle",{cx:"11",cy:"8",r:"1.5"}),jsx("circle",{cx:"5",cy:"12",r:"1.5"}),jsx("circle",{cx:"11",cy:"12",r:"1.5"})]}),qk=memo(function({field:t,tableId:r,editable:n,readOnly:o,disabled:a,onFieldChange:s}){let[l,i]=useState(false),[c,d]=useState(t.defaultValue??""),u=n&&!o&&!a,f=()=>{i(false),s?.(r,t.id,{defaultValue:c||void 0});};return u?l?jsx("input",{className:"text-xs w-16 text-emerald-500 bg-transparent border-b border-emerald-300 outline-none focus:ring-0 p-0 flex-shrink-0","aria-label":`Default value for ${t.name}`,value:c,onChange:m=>d(m.target.value),onBlur:f,onKeyDown:m=>{m.key==="Enter"&&f(),m.key==="Escape"&&i(false);},onMouseDown:m=>m.stopPropagation(),autoFocus:true}):t.defaultValue?jsxs("button",{type:"button",className:"text-xs text-emerald-500 flex-shrink-0 truncate max-w-16 cursor-pointer",onClick:m=>{m.stopPropagation(),d(t.defaultValue??""),i(true);},onMouseDown:m=>m.stopPropagation(),title:`Default: ${t.defaultValue}`,children:["= ",t.defaultValue]}):jsx("button",{type:"button",className:"text-xs text-gray-300 flex-shrink-0 opacity-0 group-hover:opacity-30 hover:!opacity-100 cursor-pointer transition-opacity",onClick:m=>{m.stopPropagation(),d(""),i(true);},onMouseDown:m=>m.stopPropagation(),title:"Set default value",children:"= \u2205"}):t.defaultValue?jsxs("span",{className:"text-xs text-emerald-500 flex-shrink-0 truncate max-w-16",title:`Default: ${t.defaultValue}`,children:["= ",t.defaultValue]}):null}),vp=memo(function({table:t,selected:r,disabled:n,readOnly:o,editable:a,dropTarget:s,fieldTypes:l,onTableNameChange:i,onTableNotesChange:c,onToggleCollapse:d,onFieldChange:u,onFieldAdd:f,onFieldRemove:m,onFieldReorder:g,onResizeStart:y}){let b=t.width??260,h=t.collapsed??false,x=l.length>0?l:ps,[L,C]=useState(null),[S,v]=useState(null),R=useRef(null),N=useCallback(k=>{i?.(t.id,k.target.value);},[t.id,i]),M=useCallback((k,z)=>{u?.(t.id,k,{name:z});},[t.id,u]),P=useCallback((k,z)=>{u?.(t.id,k,{type:z});},[t.id,u]),E=useCallback((k,z)=>{u?.(t.id,k,{primaryKey:!z});},[t.id,u]),W=useCallback((k,z)=>{u?.(t.id,k,{nullable:!z});},[t.id,u]),T=useCallback((k,z)=>{u?.(t.id,k,{indexed:!z});},[t.id,u]),O=useCallback((k,z)=>{u?.(t.id,k,{unique:!z});},[t.id,u]),H=useCallback(()=>{f?.(t.id);},[t.id,f]);return jsxs("div",{"data-table-id":t.id,className:p("absolute bg-white dark:bg-gray-800 border-2 border-dashed rounded-lg shadow-sm cursor-grab active:cursor-grabbing",t.height?"flex flex-col":void 0,s?"border-green-400 shadow-green-100 dark:shadow-green-900/30 shadow-md":r?"border-blue-500 shadow-blue-100 dark:shadow-blue-900/30":"border-gray-300 dark:border-gray-600",n&&"opacity-60",t.locked&&"!cursor-default"),style:{left:t.x,top:t.y,width:b,height:t.height,userSelect:"none",overflow:t.height?"hidden":void 0},children:[jsxs("div",{className:p("flex items-center justify-between px-3 gap-2","bg-gray-50 dark:bg-gray-700 border-b border-gray-200 dark:border-gray-600"),style:{height:40},children:[a&&!o&&!n?jsx("input",{className:"flex-1 min-w-0 text-sm font-semibold text-gray-800 dark:text-gray-100 bg-transparent border-none outline-none focus:ring-0 p-0 truncate cursor-text","aria-label":"Table name",value:t.name,onChange:N,onMouseDown:k=>k.stopPropagation()}):jsx("span",{className:"flex-1 min-w-0 text-sm font-semibold text-gray-800 dark:text-gray-100 truncate",children:t.name}),jsx("button",{type:"button",className:"flex-shrink-0 p-1 rounded hover:bg-gray-200 dark:hover:bg-gray-600 text-gray-500 dark:text-gray-400",onClick:k=>{k.stopPropagation(),d?.(t.id);},onMouseDown:k=>k.stopPropagation(),"aria-label":h?"Expand table":"Collapse table",children:jsx(Kk,{collapsed:h})})]}),!h&&(a&&!o&&!n?jsx("div",{className:"px-3 border-b border-gray-100 dark:border-gray-700 flex items-center",style:{height:24},children:jsx("input",{className:"w-full text-xs italic text-gray-400 dark:text-gray-500 bg-transparent border-none outline-none focus:ring-0 p-0 placeholder-gray-400 dark:placeholder-gray-500","aria-label":"Table notes",placeholder:"Add notes...",value:t.notes??"",onChange:k=>c?.(t.id,k.target.value),onMouseDown:k=>k.stopPropagation()})}):t.notes?jsx("div",{className:"px-3 border-b border-gray-100 dark:border-gray-700 flex items-center",style:{height:24},children:jsx("span",{className:"text-xs italic text-gray-400 dark:text-gray-500 truncate",children:t.notes})}):null),!h&&jsxs("div",{className:t.height?"overflow-y-auto flex-1 min-h-0":void 0,children:[t.fields.map((k,z)=>jsxs("div",{"data-field-id":k.id,"data-table-id":t.id,className:p("flex items-center gap-1.5 pr-2 relative group",a&&!o&&!n?"pl-[18px]":"pl-2","border-b border-gray-100 dark:border-gray-700 last:border-b-0",s?"bg-blue-50/50 dark:bg-blue-900/10":"hover:bg-gray-50 dark:hover:bg-gray-750",L===z&&"opacity-40",S===z&&"!border-t-2 !border-t-blue-400"),style:{height:32},draggable:a&&!o&&!n,onDragStart:A=>{!a||o||n||(A.stopPropagation(),R.current=z,C(z),A.dataTransfer.effectAllowed="move",A.dataTransfer.setData("text/plain",String(z)));},onDragOver:A=>{R.current!==null&&(A.preventDefault(),A.stopPropagation(),v(z));},onDragLeave:()=>{S===z&&v(null);},onDrop:A=>{A.preventDefault(),A.stopPropagation(),R.current!==null&&R.current!==z&&g?.(t.id,R.current,z),R.current=null,C(null),v(null);},onDragEnd:()=>{R.current=null,C(null),v(null);},children:[jsx("div",{"data-connection-side":"left","data-field-id":k.id,"data-table-id":t.id,className:p("absolute -left-[5px] w-2.5 h-2.5 rounded-full border-2 border-white dark:border-gray-800 cursor-crosshair z-10 transition-all",s?"opacity-100 bg-green-400 scale-150 shadow-[0_0_6px_rgba(74,222,128,0.6)]":"opacity-0 group-hover:opacity-100 bg-blue-400"),style:{top:32/2-5}}),a&&!o&&!n&&jsx("span",{className:"absolute left-[3px] cursor-grab active:cursor-grabbing opacity-0 group-hover:opacity-100 transition-opacity z-10",style:{top:32/2-6},children:jsx(jk,{})}),a&&!o&&!n?jsx("button",{type:"button",className:p("w-4 text-xs font-bold flex-shrink-0 text-center cursor-pointer",k.nullable?"text-gray-400":"text-transparent"),onClick:A=>{A.stopPropagation(),W(k.id,k.nullable??false);},onMouseDown:A=>A.stopPropagation(),title:k.nullable?"Nullable":"Not nullable",children:"?"}):jsx("span",{className:p("w-4 text-xs font-bold flex-shrink-0 text-center",k.nullable?"text-gray-400":"text-transparent"),children:k.nullable?"?":""}),k.primaryKey&&k.foreignKey?jsxs("span",{className:"flex items-center gap-0.5 flex-shrink-0",children:[a&&!o&&!n?jsx("button",{type:"button",className:"flex-shrink-0 cursor-pointer",onClick:A=>{A.stopPropagation(),E(k.id,true);},onMouseDown:A=>A.stopPropagation(),title:"Primary Key (click to remove)",children:jsx(Ti,{})}):jsx(Ti,{}),jsx(hp,{})]}):k.primaryKey?a&&!o&&!n?jsx("button",{type:"button",className:"flex-shrink-0 cursor-pointer",onClick:A=>{A.stopPropagation(),E(k.id,true);},onMouseDown:A=>A.stopPropagation(),title:"Primary Key (click to remove)",children:jsx(Ti,{})}):jsx(Ti,{}):k.foreignKey?jsx(hp,{}):a&&!o&&!n?jsx("button",{type:"button",className:"w-3.5 h-3.5 flex-shrink-0 rounded text-gray-300 hover:text-indigo-400 transition-colors cursor-pointer",onClick:A=>{A.stopPropagation(),E(k.id,false);},onMouseDown:A=>A.stopPropagation(),title:"Set as Primary Key","aria-label":"Set as primary key",children:jsxs("svg",{className:"w-3.5 h-3.5",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",opacity:"0.3",children:[jsx("path",{d:"M10 1l2 2-5 5M8.5 4.5L11 7"}),jsx("circle",{cx:"4.5",cy:"11.5",r:"3"})]})}):jsx("span",{className:"w-3.5 flex-shrink-0"}),a&&!o&&!n?jsx("input",{className:p("flex-1 min-w-0 text-xs bg-transparent border-none outline-none focus:ring-0 p-0 truncate cursor-text",k.primaryKey?"text-blue-600 dark:text-blue-400 font-medium":"text-gray-700 dark:text-gray-300"),"aria-label":"Field name",value:k.name,onChange:A=>M(k.id,A.target.value),onMouseDown:A=>A.stopPropagation()}):jsx("span",{className:p("flex-1 min-w-0 text-xs truncate",k.primaryKey?"text-blue-600 dark:text-blue-400 font-medium":"text-gray-700 dark:text-gray-300"),children:k.name}),a&&!o&&!n?jsxs("select",{className:"text-xs text-gray-400 dark:text-gray-500 bg-transparent border-none outline-none focus:ring-0 p-0 cursor-pointer text-right",value:k.type,onChange:A=>P(k.id,A.target.value),onMouseDown:A=>A.stopPropagation(),children:[x.map(A=>jsx("option",{value:A,children:A},A)),!x.includes(k.type)&&jsx("option",{value:k.type,children:k.type})]}):jsx("span",{className:"text-xs text-gray-400 dark:text-gray-500 flex-shrink-0",children:k.type}),jsx(qk,{field:k,tableId:t.id,editable:a,readOnly:o,disabled:n,onFieldChange:u}),k.indexed&&jsx(bp,{}),k.unique&&jsx(yp,{}),a&&!o&&!n&&jsxs("div",{className:"absolute right-1 top-0 bottom-0 flex items-center gap-0.5 opacity-0 group-hover:opacity-100 transition-opacity bg-gradient-to-l from-white via-white to-transparent dark:from-gray-800 dark:via-gray-800 pl-4 pr-1 z-10",children:[jsx("button",{type:"button",className:p("cursor-pointer transition-opacity",k.indexed?"opacity-100":"opacity-30 hover:opacity-100"),onClick:A=>{A.stopPropagation(),T(k.id,k.indexed??false);},onMouseDown:A=>A.stopPropagation(),title:k.indexed?"Indexed (click to remove)":"Add index",children:jsx(bp,{})}),jsx("button",{type:"button",className:p("cursor-pointer transition-opacity",k.unique?"opacity-100":"opacity-30 hover:opacity-100"),onClick:A=>{A.stopPropagation(),O(k.id,k.unique??false);},onMouseDown:A=>A.stopPropagation(),title:k.unique?"Unique (click to remove)":"Add unique constraint",children:jsx(yp,{})}),jsx("button",{type:"button",className:"p-0.5 rounded text-gray-300 hover:text-red-500 hover:bg-red-50 dark:hover:bg-red-900/20 cursor-pointer",onClick:A=>{A.stopPropagation(),m?.(t.id,k.id);},onMouseDown:A=>A.stopPropagation(),title:"Remove field",children:jsx(Yk,{})})]}),jsx("div",{"data-connection-side":"right","data-field-id":k.id,"data-table-id":t.id,className:p("absolute -right-[5px] w-2.5 h-2.5 rounded-full border-2 border-white dark:border-gray-800 cursor-crosshair z-10 transition-all",s?"opacity-100 bg-green-400 scale-150 shadow-[0_0_6px_rgba(74,222,128,0.6)]":"opacity-0 group-hover:opacity-100 bg-green-400"),style:{top:32/2-5}})]},k.id)),a&&!o&&!n&&jsxs("button",{type:"button",className:"flex items-center justify-center w-full gap-1 text-xs text-gray-400 hover:text-blue-500 hover:bg-gray-50 dark:hover:bg-gray-750 transition-colors cursor-pointer",style:{height:36},onClick:k=>{k.stopPropagation(),H();},onMouseDown:k=>k.stopPropagation(),children:[jsx("svg",{className:"w-3 h-3",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:jsx("path",{d:"M8 4v8M4 8h8"})}),"Add field"]})]}),!n&&!o&&jsx("div",{"data-resize-handle":"corner",className:"absolute -bottom-[5px] -right-[5px] w-[14px] h-[14px] cursor-nwse-resize z-20 group/resize",onMouseDown:k=>{k.stopPropagation(),k.preventDefault();let z=t.height??jn(t,a);y?.(t.id,k.clientX,k.clientY,b,z);},children:jsxs("svg",{className:"w-full h-full text-gray-300 group-hover/resize:text-blue-400 transition-colors",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",children:[jsx("path",{d:"M12 2v10H2",opacity:"0"}),jsx("path",{d:"M6 12L12 6"}),jsx("path",{d:"M10 12L12 10"})]})})]})});function Qk(e,t){let r=t.find(g=>g.id===e.from.tableId),n=t.find(g=>g.id===e.to.tableId);if(!r||!n||r.collapsed||n.collapsed)return null;let o=r.fields.findIndex(g=>g.id===e.from.fieldId),a=n.fields.findIndex(g=>g.id===e.to.fieldId);if(o===-1||a===-1)return null;let s=r.width??260,l=n.width??260,i=r.x+s/2,c=n.x+l/2,d=r.y+ba(o,!!r.notes),u=n.y+ba(a,!!n.notes),f,m;return i<=c?(f=r.x+s,m=n.x):(f=r.x,m=n.x+l),{x1:f,y1:d,x2:m,y2:u,cardinality:e.cardinality??"1:n"}}var Ic=["1:1","1:n","n:1","n:n"];function Jk(e){let t=Ic.indexOf(e);return Ic[(t+1)%Ic.length]}var kp=memo(function({relations:t,tables:r,viewport:n,selectedRelationId:o,disabled:a,onRelationClick:s,onCardinalityChange:l}){return jsx("svg",{className:"absolute top-0 left-0 pointer-events-none",style:{width:"100%",height:"100%",overflow:"visible"},children:jsx("g",{transform:`translate(${n.x}, ${n.y}) scale(${n.zoom})`,children:t.map(i=>{let c=Qk(i,r);if(!c)return null;let{x1:d,y1:u,x2:f,y2:m,cardinality:g}=c,y=Pi(d,u,f,m),b=o===i.id,h=(d+f)/2,x=(u+m)/2;return jsxs("g",{children:[jsx("path",{d:y,fill:"none",stroke:"transparent",strokeWidth:16,className:"pointer-events-auto cursor-pointer",onClick:L=>{a||s?.(i.id,L);}}),jsx("path",{d:y,fill:"none",stroke:b?"#3b82f6":"#9ca3af",strokeWidth:b?2.5:1.5,className:"transition-colors"}),jsx("circle",{cx:d,cy:u,r:3,fill:b?"#3b82f6":"#9ca3af"}),jsx("circle",{cx:f,cy:m,r:3,fill:b?"#3b82f6":"#9ca3af"}),g&&jsxs("g",{className:a?void 0:"pointer-events-auto cursor-pointer",onClick:a?void 0:L=>{L.stopPropagation(),l?.(i.id,Jk(g));},children:[jsx("rect",{x:h-14,y:x-9,width:28,height:18,rx:4,fill:"white",stroke:b?"#3b82f6":"#d1d5db",strokeWidth:1}),jsx("text",{x:h,y:x+4,textAnchor:"middle",className:"text-[10px] font-mono",fill:b?"#3b82f6":"#6b7280",children:g})]})]},i.id)})})})});var tw=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M10 5a1 1 0 011 1v3h3a1 1 0 110 2h-3v3a1 1 0 11-2 0v-3H6a1 1 0 110-2h3V6a1 1 0 011-1z",clipRule:"evenodd"})}),rw=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M5 10a1 1 0 011-1h8a1 1 0 110 2H6a1 1 0 01-1-1z",clipRule:"evenodd"})}),nw=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M4 2a1 1 0 011 1v2.101a7.002 7.002 0 0111.601 2.566 1 1 0 11-1.885.666A5.002 5.002 0 005.999 7H9a1 1 0 010 2H4a1 1 0 01-1-1V3a1 1 0 011-1zm.008 9.057a1 1 0 011.276.61A5.002 5.002 0 0014.001 13H11a1 1 0 110-2h5a1 1 0 011 1v5a1 1 0 11-2 0v-2.101a7.002 7.002 0 01-11.601-2.566 1 1 0 01.61-1.276z",clipRule:"evenodd"})}),ow=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{d:"M3 4a1 1 0 011-1h4a1 1 0 010 2H6.414l2.293 2.293a1 1 0 01-1.414 1.414L5 6.414V8a1 1 0 01-2 0V4zm9 1a1 1 0 010-2h4a1 1 0 011 1v4a1 1 0 01-2 0V6.414l-2.293 2.293a1 1 0 11-1.414-1.414L13.586 5H12zm-9 7a1 1 0 012 0v1.586l2.293-2.293a1 1 0 011.414 1.414L6.414 15H8a1 1 0 010 2H4a1 1 0 01-1-1v-4zm13 0a1 1 0 01-2 0v-1.586l-2.293 2.293a1 1 0 01-1.414-1.414L13.586 9H12a1 1 0 010-2h4a1 1 0 011 1v4z"})}),aw=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M6 2a2 2 0 00-2 2v12a2 2 0 002 2h8a2 2 0 002-2V4a2 2 0 00-2-2H6zm4 5a1 1 0 011 1v1h1a1 1 0 110 2h-1v1a1 1 0 11-2 0v-1H8a1 1 0 110-2h1V8a1 1 0 011-1z",clipRule:"evenodd"})}),sw=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M3 17a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zm3.293-7.707a1 1 0 011.414 0L9 10.586V3a1 1 0 112 0v7.586l1.293-1.293a1 1 0 111.414 1.414l-3 3a1 1 0 01-1.414 0l-3-3a1 1 0 010-1.414z",clipRule:"evenodd"})}),iw=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M3 17a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM6.293 6.707a1 1 0 010-1.414l3-3a1 1 0 011.414 0l3 3a1 1 0 01-1.414 1.414L11 5.414V13a1 1 0 11-2 0V5.414L7.707 6.707a1 1 0 01-1.414 0z",clipRule:"evenodd"})}),lw=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M2 5a2 2 0 012-2h12a2 2 0 012 2v2a2 2 0 01-2 2H4a2 2 0 01-2-2V5zm14 1a1 1 0 11-2 0 1 1 0 012 0zM2 13a2 2 0 012-2h12a2 2 0 012 2v2a2 2 0 01-2 2H4a2 2 0 01-2-2v-2zm14 1a1 1 0 11-2 0 1 1 0 012 0z",clipRule:"evenodd"})}),cw=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M7.707 3.293a1 1 0 010 1.414L5.414 7H11a7 7 0 017 7v2a1 1 0 11-2 0v-2a5 5 0 00-5-5H5.414l2.293 2.293a1 1 0 11-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z",clipRule:"evenodd"})}),dw=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M12.293 3.293a1 1 0 011.414 0l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414-1.414L14.586 9H9a5 5 0 00-5 5v2a1 1 0 11-2 0v-2a7 7 0 017-7h5.586l-2.293-2.293a1 1 0 010-1.414z",clipRule:"evenodd"})}),uw=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{d:"M3 3h4v4H3V3zm0 10h4v4H3v-4zm10-10h4v4h-4V3zm0 10h4v4h-4v-4zM7 5h6v1H7V5zm0 8h6v1H7v-1zM5 7v6h1V7H5zm8 0v6h1V7h-1z"})}),wp=memo(function({zoom:t,onZoomIn:r,onZoomOut:n,onResetView:o,onFitToContent:a,onAddTable:s,onExportJSON:l,onImportJSON:i,onExportSQL:c,onUndo:d,onRedo:u,canUndo:f=false,canRedo:m=false,onAutoLayout:g,disabled:y,className:b}){let[h,x]=useState(false),[L,C]=useState(false),[S,v]=useState(false),[R,N]=useState(""),[M,P]=useState(""),[E,W]=useState(""),T=useCallback(()=>{N(l()),x(true);},[l]),O=useCallback(()=>{M.trim()&&(i(M.trim()),P(""),C(false));},[M,i]),H=useCallback(()=>{P(""),C(false);},[]),k=useCallback(()=>{x(false);},[]),z=useCallback(()=>{c&&(W(c()),v(true));},[c]),A=useCallback(()=>{v(false);},[]),I=Math.round(t*100);return jsxs(Fragment,{children:[jsxs("div",{className:p("absolute top-3 left-3 z-20 flex items-center gap-2 bg-white dark:bg-gray-800 rounded-lg shadow-md border border-gray-200 dark:border-gray-600 px-2 py-1.5",b),"data-testid":"schema-toolbar",onMouseDown:X=>X.stopPropagation(),children:[jsxs(ra,{size:"sm",children:[jsx($t,{content:"Zoom in",size:"sm",position:"bottom",children:jsx(Ft,{icon:jsx(tw,{}),size:"sm",bgColor:"bg-gray-100 hover:bg-gray-200 dark:bg-gray-700 dark:hover:bg-gray-600",textColor:"text-gray-700 dark:text-gray-200",onClick:r,disabled:y,"aria-label":"Zoom in"})}),jsx($t,{content:"Zoom out",size:"sm",position:"bottom",children:jsx(Ft,{icon:jsx(rw,{}),size:"sm",bgColor:"bg-gray-100 hover:bg-gray-200 dark:bg-gray-700 dark:hover:bg-gray-600",textColor:"text-gray-700 dark:text-gray-200",onClick:n,disabled:y,"aria-label":"Zoom out"})})]}),jsxs("span",{className:"text-xs font-mono text-gray-500 dark:text-gray-400 min-w-[3ch] text-center select-none",children:[I,"%"]}),jsx("div",{className:"w-px h-5 bg-gray-200 dark:bg-gray-600"}),jsx($t,{content:"Reset view",size:"sm",position:"bottom",children:jsx(Ft,{icon:jsx(nw,{}),size:"sm",bgColor:"bg-gray-100 hover:bg-gray-200 dark:bg-gray-700 dark:hover:bg-gray-600",textColor:"text-gray-700 dark:text-gray-200",onClick:o,disabled:y,"aria-label":"Reset view"})}),jsx($t,{content:"Fit to content",size:"sm",position:"bottom",children:jsx(Ft,{icon:jsx(ow,{}),size:"sm",bgColor:"bg-gray-100 hover:bg-gray-200 dark:bg-gray-700 dark:hover:bg-gray-600",textColor:"text-gray-700 dark:text-gray-200",onClick:a,disabled:y,"aria-label":"Fit to content"})}),jsx("div",{className:"w-px h-5 bg-gray-200 dark:bg-gray-600"}),jsx($t,{content:"Add table",size:"sm",position:"bottom",children:jsx(Ft,{icon:jsx(aw,{}),size:"sm",bgColor:"bg-gray-100 hover:bg-gray-200 dark:bg-gray-700 dark:hover:bg-gray-600",textColor:"text-gray-700 dark:text-gray-200",onClick:s,disabled:y,"aria-label":"Add table"})}),jsx("div",{className:"w-px h-5 bg-gray-200 dark:bg-gray-600"}),jsx($t,{content:"Export JSON",size:"sm",position:"bottom",children:jsx(Ft,{icon:jsx(sw,{}),size:"sm",bgColor:"bg-gray-100 hover:bg-gray-200 dark:bg-gray-700 dark:hover:bg-gray-600",textColor:"text-gray-700 dark:text-gray-200",onClick:T,disabled:y,"aria-label":"Export JSON"})}),jsx($t,{content:"Import JSON",size:"sm",position:"bottom",children:jsx(Ft,{icon:jsx(iw,{}),size:"sm",bgColor:"bg-gray-100 hover:bg-gray-200 dark:bg-gray-700 dark:hover:bg-gray-600",textColor:"text-gray-700 dark:text-gray-200",onClick:()=>C(true),disabled:y,"aria-label":"Import JSON"})}),c&&jsx($t,{content:"Export SQL",size:"sm",position:"bottom",children:jsx(Ft,{icon:jsx(lw,{}),size:"sm",bgColor:"bg-gray-100 hover:bg-gray-200 dark:bg-gray-700 dark:hover:bg-gray-600",textColor:"text-gray-700 dark:text-gray-200",onClick:z,disabled:y,"aria-label":"Export SQL"})}),(d||u)&&jsxs(Fragment,{children:[jsx("div",{className:"w-px h-5 bg-gray-200 dark:bg-gray-600"}),jsxs(ra,{size:"sm",children:[jsx($t,{content:"Undo (Ctrl+Z)",size:"sm",position:"bottom",children:jsx(Ft,{icon:jsx(cw,{}),size:"sm",bgColor:"bg-gray-100 hover:bg-gray-200 dark:bg-gray-700 dark:hover:bg-gray-600",textColor:"text-gray-700 dark:text-gray-200",onClick:d,disabled:y||!f,"aria-label":"Undo"})}),jsx($t,{content:"Redo (Ctrl+Y)",size:"sm",position:"bottom",children:jsx(Ft,{icon:jsx(dw,{}),size:"sm",bgColor:"bg-gray-100 hover:bg-gray-200 dark:bg-gray-700 dark:hover:bg-gray-600",textColor:"text-gray-700 dark:text-gray-200",onClick:u,disabled:y||!m,"aria-label":"Redo"})})]})]}),g&&jsxs(Fragment,{children:[jsx("div",{className:"w-px h-5 bg-gray-200 dark:bg-gray-600"}),jsx($t,{content:"Auto layout",size:"sm",position:"bottom",children:jsx(Ft,{icon:jsx(uw,{}),size:"sm",bgColor:"bg-gray-100 hover:bg-gray-200 dark:bg-gray-700 dark:hover:bg-gray-600",textColor:"text-gray-700 dark:text-gray-200",onClick:g,disabled:y,"aria-label":"Auto layout"})})]})]}),jsx(An,{isOpen:h,onClose:k,title:"Export Schema",description:"Copy the JSON below to save your schema.",size:"lg",showSubmit:false,showCancel:true,cancelLabel:"Close",children:jsx(dn,{label:"Schema JSON",multiline:true,rows:12,value:R,readOnly:true,size:"sm"})}),jsx(An,{isOpen:L,onClose:H,title:"Import Schema",description:"Paste schema JSON to load it into the editor.",size:"lg",showSubmit:true,submitLabel:"Import",onSubmitClick:O,showCancel:true,cancelLabel:"Cancel",children:jsx(dn,{label:"Schema JSON",multiline:true,rows:12,value:M,onChange:X=>P(X.target.value),placeholder:'{"tables": [], "relations": []}',size:"sm"})}),jsx(An,{isOpen:S,onClose:A,title:"Export SQL",description:"Generated PostgreSQL CREATE TABLE statements.",size:"lg",showSubmit:false,showCancel:true,cancelLabel:"Close",children:jsx(dn,{label:"SQL",multiline:true,rows:16,value:E,readOnly:true,size:"sm"})})]})});var pw=()=>jsxs("svg",{className:"w-3.5 h-3.5",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[jsx("path",{d:"M10 1l2 2-5 5M8.5 4.5L11 7"}),jsx("circle",{cx:"4.5",cy:"11.5",r:"3"})]}),gw=()=>jsx("span",{className:"text-xs font-bold text-gray-500 w-3.5 text-center",children:"?"}),fw=()=>jsxs("svg",{className:"w-3.5 h-3.5",viewBox:"0 0 16 16",fill:"currentColor",children:[jsx("circle",{cx:"8",cy:"8",r:"6",className:"fill-blue-500"}),jsx("path",{d:"M5 8h6M8 5l3 3-3 3",stroke:"white",strokeWidth:"1.5",fill:"none",strokeLinecap:"round",strokeLinejoin:"round"})]}),hw=()=>jsx("svg",{className:"w-3.5 h-3.5 text-amber-500",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:jsx("path",{d:"M3 2v12M7 4h6M7 8h4M7 12h5"})}),bw=()=>jsx("svg",{className:"w-3.5 h-3.5 text-purple-500",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:jsx("path",{d:"M4 2v8a4 4 0 008 0V2"})}),Np=memo(function({className:t}){return jsxs("div",{className:p("absolute top-3 right-3 z-20 flex items-center gap-4 bg-white dark:bg-gray-800 rounded-lg shadow-md border border-gray-200 dark:border-gray-600 px-3 py-2",t),"data-testid":"schema-legend",children:[jsxs("div",{className:"flex items-center gap-1.5",children:[jsx(pw,{}),jsx("span",{className:"text-xs text-gray-600 dark:text-gray-300",children:"Primary Key"})]}),jsxs("div",{className:"flex items-center gap-1.5",children:[jsx(gw,{}),jsx("span",{className:"text-xs text-gray-600 dark:text-gray-300",children:"Nullable"})]}),jsxs("div",{className:"flex items-center gap-1.5",children:[jsx(fw,{}),jsx("span",{className:"text-xs text-gray-600 dark:text-gray-300",children:"Foreign Key"})]}),jsxs("div",{className:"flex items-center gap-1.5",children:[jsx(hw,{}),jsx("span",{className:"text-xs text-gray-600 dark:text-gray-300",children:"Index"})]}),jsxs("div",{className:"flex items-center gap-1.5",children:[jsx(bw,{}),jsx("span",{className:"text-xs text-gray-600 dark:text-gray-300",children:"Unique"})]})]})});var Ei=180,Li=120,Ca=10,Sp=memo(function({tables:t,viewport:r,containerWidth:n,containerHeight:o,editable:a,onViewportChange:s,className:l}){let i=useRef(null),c=useMemo(()=>{if(t.length===0)return null;let S=1/0,v=1/0,R=-1/0,N=-1/0;for(let A of t){let I=A.width??260,X=jn(A,a);S=Math.min(S,A.x),v=Math.min(v,A.y),R=Math.max(R,A.x+I),N=Math.max(N,A.y+X);}let M=-r.x/r.zoom,P=-r.y/r.zoom,E=M+n/r.zoom,W=P+o/r.zoom;S=Math.min(S,M),v=Math.min(v,P),R=Math.max(R,E),N=Math.max(N,W);let T=R-S+Ca*2,O=N-v+Ca*2,H=Math.min((Ei-4)/T,(Li-4)/O),k=(Ei-T*H)/2,z=(Li-O*H)/2;return {minX:S,minY:v,scale:H,offsetX:k,offsetY:z,vpMinX:M,vpMinY:P}},[t,r,n,o,a]),d=useCallback(S=>{if(!c)return;let v=i.current?.getBoundingClientRect();if(!v)return;let R=S.clientX-v.left,N=S.clientY-v.top,M=(R-c.offsetX)/c.scale+c.minX-Ca,P=(N-c.offsetY)/c.scale+c.minY-Ca;s({...r,x:-(M-n/(2*r.zoom))*r.zoom,y:-(P-o/(2*r.zoom))*r.zoom});},[c,r,n,o,s]);if(!c)return null;let{minX:u,minY:f,scale:m,offsetX:g,offsetY:y,vpMinX:b,vpMinY:h}=c,x=(S,v)=>({x:(S-u+Ca)*m+g,y:(v-f+Ca)*m+y}),L=x(b,h),C={w:n/r.zoom*m,h:o/r.zoom*m};return jsx("div",{ref:i,className:p("absolute bottom-3 right-3 z-20 bg-white/90 dark:bg-gray-800/90 rounded-lg shadow-md border border-gray-200 dark:border-gray-600 cursor-pointer overflow-hidden",l),style:{width:Ei,height:Li},onClick:d,onMouseDown:S=>S.stopPropagation(),"data-testid":"schema-minimap",children:jsxs("svg",{width:Ei,height:Li,children:[t.map(S=>{let v=S.width??260,R=jn(S,a),N=x(S.x,S.y);return jsx("rect",{x:N.x,y:N.y,width:v*m,height:R*m,fill:S.color??"#e5e7eb",stroke:"#9ca3af",strokeWidth:.5,rx:1},S.id)}),jsx("rect",{x:L.x,y:L.y,width:C.w,height:C.h,fill:"rgba(59, 130, 246, 0.1)",stroke:"#3b82f6",strokeWidth:1,rx:1})]})})});function Wn(e){return `"${e.replace(/"/g,'""')}"`}function Rp(e){return {text:"TEXT",varchar:"VARCHAR(255)",char:"CHAR(1)",int2:"SMALLINT",int4:"INTEGER",int8:"BIGINT",serial:"SERIAL",bigserial:"BIGSERIAL",float4:"REAL",float8:"DOUBLE PRECISION",numeric:"NUMERIC",decimal:"DECIMAL",bool:"BOOLEAN",date:"DATE",time:"TIME",timestamp:"TIMESTAMP",timestamptz:"TIMESTAMP WITH TIME ZONE",uuid:"UUID",json:"JSON",jsonb:"JSONB",bytea:"BYTEA"}[e]??e.toUpperCase()}function ww(e){let t=[Wn(e.name)];return e.type==="serial"||e.type,t.push(Rp(e.type)),e.primaryKey&&t.push("PRIMARY KEY"),!e.nullable&&!e.primaryKey&&t.push("NOT NULL"),e.unique&&!e.primaryKey&&t.push("UNIQUE"),e.defaultValue&&t.push(`DEFAULT ${e.defaultValue}`)," "+t.join(" ")}function Nw(e,t,r){let n=[],o=[];for(let i of e.fields)n.push(ww(i));for(let i of e.fields)if(i.foreignKey){let c=r.find(u=>u.id===i.foreignKey.tableId),d=c?.fields.find(u=>u.id===i.foreignKey.fieldId);c&&d&&o.push(` CONSTRAINT ${Wn(`fk_${e.name}_${i.name}`)} FOREIGN KEY (${Wn(i.name)}) REFERENCES ${Wn(c.name)} (${Wn(d.name)})`);}let a=[];for(let i of e.fields)i.indexed&&!i.primaryKey&&!i.unique&&a.push(`CREATE INDEX ${Wn(`idx_${e.name}_${i.name}`)} ON ${Wn(e.name)} (${Wn(i.name)});`);let s=[...n,...o],l=`CREATE TABLE ${Wn(e.name)} (
|
|
24
25
|
${s.join(`,
|
|
25
26
|
`)}
|
|
26
27
|
);`;return a.length>0?l+`
|
|
27
28
|
|
|
28
29
|
`+a.join(`
|
|
29
|
-
`):l}function
|
|
30
|
+
`):l}function Mi(e){let{tables:t,relations:r}=e;return t.length===0?"-- No tables defined":[...t].sort((a,s)=>{let l=a.fields.some(c=>c.foreignKey),i=s.fields.some(c=>c.foreignKey);return l&&!i?1:!l&&i?-1:0}).map(a=>Nw(a,r,t)).join(`
|
|
30
31
|
|
|
31
|
-
`)}var Bk=60,Fk=40;function zl(e,t){if(e.length===0)return e;let r=new Map;for(let p of e){let C=new Set;for(let v of p.fields)v.foreignKey&&C.add(v.foreignKey.tableId);r.set(p.id,C);}let n=new Map;for(let p of e)n.set(p.id,0);for(let[,p]of r)for(let C of p)n.has(C);for(let[p,C]of r)n.set(p,C.size);let o=[],a=[];for(let[p,C]of n)C===0&&a.push(p);for(;a.length>0;){let p=a.shift();o.push(p);for(let[C,v]of r)if(v.has(p)){let k=(n.get(C)??0)-1;n.set(C,k),k===0&&a.push(C);}}let s=new Set(o);for(let p of e)s.has(p.id)||(o.push(p.id),s.add(p.id));let l=new Map(e.map(p=>[p.id,p])),i=Math.max(1,Math.ceil(Math.sqrt(o.length))),c=0,d=0,u=0,b=0,m=[];for(let p of o){let C=l.get(p);if(!C)continue;let v=C.width??260,k=Fn(C,t);m.push({...C,x:c,y:d}),b=Math.max(b,k),u++,u>=i?(u=0,c=0,d+=b+Fk,b=0):c+=v+Bk;}return m}var Hl={x:0,y:0,zoom:1},Vl=.1,Xk=.1,Gk=3,Kk=20,Uk=50;function Yk({value:e,defaultValue:t,onValueChange:r,fieldTypes:n=Xa,onTableClick:o,onTableDoubleClick:a,onTableContextMenu:s,onFieldClick:l,onFieldDoubleClick:i,readOnly:c=false,disabled:d=false,draggableTables:u=true,panOnDrag:b=true,zoomOnWheel:m=true,editable:p=true,minZoom:C=Xk,maxZoom:v=Gk,snapToGrid:k=false,gridSize:y=Kk,showGrid:z=true,toolbar:h=true,legend:R=true,autoFit:f=false,className:N},L){let E=e!==void 0,[I,w]=useState(()=>t??{tables:[],relations:[],viewport:{...Hl}}),W=E?e:I,M=W.tables,T=W.relations,P=W.viewport??Hl,x=useRef(null),D=useRef(null),[S,B]=useState(null),[H,$]=useState(null),[_,F]=useState(null),[A,V]=useState(null),[Y,X]=useState({width:0,height:0}),G=useRef([]),j=useRef(-1),O=useRef(false),K=useRef(P);K.current=P;let se=useRef(M);se.current=M;let ae=useRef(T);ae.current=T;let U=useRef(k);U.current=k;let J=useRef(y);J.current=y;let te=useRef(p);te.current=p;let ie=useCallback(Z=>{if(O.current)return;let oe=G.current,le=j.current;G.current=oe.slice(0,le+1),G.current.push(Z),G.current.length>Uk&&G.current.shift(),j.current=G.current.length-1;},[]),Q=useCallback(Z=>{if(E){let oe=Z(e);ie(oe),r?.(oe);}else w(oe=>{let le=Z(oe);return ie(le),r?.(le),le});},[E,e,r,ie]),ge=useRef(Q);ge.current=Q;let Re=useCallback(Z=>{Q(oe=>({...oe,viewport:Z}));},[Q]),Qe=useRef(Re);Qe.current=Re,useEffect(()=>{function Z(de){let be=D.current;if(!be)return;let $e=x.current?.getBoundingClientRect();if(!$e)return;let nt=K.current;if(be.type==="pan"){let qe=de.clientX-be.startX,ze=de.clientY-be.startY;Qe.current({...nt,x:be.startVpX+qe,y:be.startVpY+ze});}if(be.type==="table"){let qe=$a(de.clientX,de.clientY,nt,$e),ze=qe.x-be.offsetX,tr=qe.y-be.offsetY;U.current&&(ze=Rl(ze,J.current),tr=Rl(tr,J.current)),ge.current(je=>({...je,tables:je.tables.map(Lt=>Lt.id===be.tableId?{...Lt,x:ze,y:tr}:Lt)}));}if(be.type==="relation"){let qe=$a(de.clientX,de.clientY,nt,$e);D.current={...be,currentX:qe.x,currentY:qe.y},F({fromX:be.fromX,fromY:be.fromY,currentX:qe.x,currentY:qe.y});}if(be.type==="resize"){let qe=(de.clientX-be.startX)/nt.zoom,ze=(de.clientY-be.startY)/nt.zoom,tr=180,je=80,Lt=Math.max(tr,be.startWidth+qe),Ft=Math.max(je,be.startHeight+ze);ge.current(kt=>({...kt,tables:kt.tables.map(sr=>sr.id===be.tableId?{...sr,width:Lt,height:Ft}:sr)}));}}function oe(de,be,$e,nt){let qe=K.current,ze=$a(de,be,qe,$e),tr=1/0,je=null,Lt=null;for(let Ft of nt){if(Ft.collapsed)continue;let kt=Ft.fields.length;if(kt===0)continue;let sr=Ft.width??260,Yr=40+kt*32+(te.current?36:0),qr=40;if(!(ze.x<Ft.x-qr||ze.x>Ft.x+sr+qr||ze.y<Ft.y-qr||ze.y>Ft.y+Yr+qr))for(let xr=0;xr<Ft.fields.length;xr++){let ti=Ft.y+Uo(xr,!!Ft.notes),Ya=Math.abs(ze.y-ti);Ya<tr&&(tr=Ya,je=Ft.id,Lt=Ft.fields[xr].id);}}return je&&Lt?{tableId:je,fieldId:Lt}:null}function le(de){let be=D.current;if(be){if(be.type==="relation"){let $e=x.current?.getBoundingClientRect();if($e){let nt=ae.current,qe=se.current,ze=oe(de.clientX,de.clientY,$e,qe);if(ze&&ze.tableId!==be.fromTableId&&!nt.some(je=>je.from.tableId===be.fromTableId&&je.from.fieldId===be.fromFieldId&&je.to.tableId===ze.tableId&&je.to.fieldId===ze.fieldId)){let je=be.fromTableId,Lt=be.fromFieldId,Ft=ze.tableId,kt=ze.fieldId;ge.current(sr=>({...sr,tables:sr.tables.map(Yr=>Yr.id===Ft?{...Yr,fields:Yr.fields.map(qr=>qr.id===kt?{...qr,foreignKey:{tableId:je,fieldId:Lt}}:qr)}:Yr),relations:[...sr.relations,{id:Tl(),from:{tableId:je,fieldId:Lt},to:{tableId:Ft,fieldId:kt},cardinality:"1:n"}]}));}}F(null),V(null);}D.current=null;}}return document.addEventListener("mousemove",Z),document.addEventListener("mouseup",le),()=>{document.removeEventListener("mousemove",Z),document.removeEventListener("mouseup",le);}},[]);let at=useCallback(Z=>{if(!m||d)return;Z.preventDefault();let oe=x.current?.getBoundingClientRect();if(!oe)return;let le=Z.clientX-oe.left,de=Z.clientY-oe.top,be=Z.deltaY<0?1:-1,$e=Oa(P.zoom+be*Vl,C,v),nt=$e/P.zoom;Re({x:le-(le-P.x)*nt,y:de-(de-P.y)*nt,zoom:$e});},[m,d,P,C,v,Re]),et=useCallback(Z=>{if(d)return;let oe=Z.target,le=oe.tagName,de=le==="INPUT"||le==="SELECT"||le==="TEXTAREA"||le==="BUTTON";if(oe.closest("[data-resize-handle]"))return;let be=oe.closest("[data-connection-side]");if(be&&!de){if(c)return;Z.preventDefault();let nt=be.getAttribute("data-table-id"),qe=be.getAttribute("data-field-id");if(!nt||!qe)return;let ze=M.find(Lt=>Lt.id===nt);if(!ze)return;let tr=be.getAttribute("data-connection-side"),je=am(ze,qe,tr);if(!je)return;D.current={type:"relation",fromTableId:nt,fromFieldId:qe,fromX:je.x,fromY:je.y,currentX:je.x,currentY:je.y},F({fromX:je.x,fromY:je.y,currentX:je.x,currentY:je.y}),V(nt);return}let $e=oe.closest("[data-table-id]");if($e){if(c)return;let nt=$e.getAttribute("data-table-id");if($(null),B(nt),de)return;if(u){let qe=x.current?.getBoundingClientRect();if(!qe)return;let ze=M.find(je=>je.id===nt);if(!ze||ze.locked)return;let tr=$a(Z.clientX,Z.clientY,P,qe);D.current={type:"table",tableId:nt,offsetX:tr.x-ze.x,offsetY:tr.y-ze.y};}return}B(null),$(null),b&&Z.button===0&&(D.current={type:"pan",startX:Z.clientX,startY:Z.clientY,startVpX:P.x,startVpY:P.y});},[d,c,u,b,P,M]),me=useCallback(Z=>{let oe=Z.target;if(oe.closest("[data-connection-side]"))return null;let le=oe.closest("[data-table-id]");if(!le)return null;let de=le.getAttribute("data-table-id");return M.find(be=>be.id===de)??null},[M]),ce=useCallback(Z=>{if(d)return;let oe=me(Z);oe&&o&&o({table:oe,nativeEvent:Z.nativeEvent});},[o,d,me]),Oe=useCallback(Z=>{if(d)return;let oe=me(Z);oe&&a&&a({table:oe,nativeEvent:Z.nativeEvent});},[a,d,me]),st=useCallback(Z=>{if(d)return;let oe=me(Z);oe&&s&&(Z.preventDefault(),s({table:oe,nativeEvent:Z.nativeEvent}));},[s,d,me]),Pe=useCallback((Z,oe)=>{d||(oe.stopPropagation(),B(null),$(Z));},[d]),De=useCallback((Z,oe)=>{Q(le=>({...le,relations:le.relations.map(de=>de.id===Z?{...de,cardinality:oe}:de)}));},[Q]),it=j.current>0,xt=j.current<G.current.length-1,lt=useCallback(()=>{if(j.current<=0)return;O.current=true,j.current--;let Z=G.current[j.current];E||w(Z),r?.(Z),O.current=false;},[E,r]),pr=useCallback(()=>{if(j.current>=G.current.length-1)return;O.current=true,j.current++;let Z=G.current[j.current];E||w(Z),r?.(Z),O.current=false;},[E,r]),tt=useCallback(()=>Ys(W),[W]),yr=useCallback(()=>{Q(Z=>({...Z,tables:zl(Z.tables,p)}));},[Q,p]),Wr=useCallback((Z,oe,le)=>{oe!==le&&Q(de=>({...de,tables:de.tables.map(be=>{if(be.id!==Z)return be;let $e=[...be.fields],[nt]=$e.splice(oe,1);return $e.splice(le,0,nt),{...be,fields:$e}})}));},[Q]);useEffect(()=>{let Z=x.current;if(!Z)return;let oe=new ResizeObserver(le=>{for(let de of le)X({width:de.contentRect.width,height:de.contentRect.height});});return oe.observe(Z),()=>oe.disconnect()},[]);let Bt=useRef(false);Bt.current||(Bt.current=true,G.current=[W],j.current=0);let ar=useCallback(Z=>{if(!(c||d)){if((Z.ctrlKey||Z.metaKey)&&Z.key==="z"&&!Z.shiftKey){Z.preventDefault(),lt();return}if((Z.ctrlKey||Z.metaKey)&&(Z.key==="y"||Z.key==="z"&&Z.shiftKey)){Z.preventDefault(),pr();return}if(Z.key==="Delete"||Z.key==="Backspace"){let oe=Z.target;if(oe.tagName==="INPUT"||oe.tagName==="TEXTAREA"||oe.tagName==="SELECT")return;S&&(Q(le=>({...le,tables:le.tables.filter(de=>de.id!==S),relations:le.relations.filter(de=>de.from.tableId!==S&&de.to.tableId!==S)})),B(null)),H&&(Q(le=>{let de=le.relations.find(be=>be.id===H);return {...le,tables:de?le.tables.map(be=>be.id===de.to.tableId?{...be,fields:be.fields.map($e=>$e.id===de.to.fieldId?{...$e,foreignKey:void 0}:$e)}:be):le.tables,relations:le.relations.filter(be=>be.id!==H)}}),$(null));}Z.key==="Escape"&&(B(null),$(null));}},[c,d,S,H,Q,lt,pr]),Rr=useCallback((Z,oe)=>{Q(le=>({...le,tables:le.tables.map(de=>de.id===Z?{...de,name:oe}:de)}));},[Q]),ye=useCallback((Z,oe)=>{Q(le=>({...le,tables:le.tables.map(de=>de.id===Z?{...de,notes:oe}:de)}));},[Q]),xe=useCallback(Z=>{Q(oe=>({...oe,tables:oe.tables.map(le=>le.id===Z?{...le,collapsed:!le.collapsed}:le)}));},[Q]),re=useCallback((Z,oe,le)=>{Q(de=>({...de,tables:de.tables.map(be=>be.id===Z?{...be,fields:be.fields.map($e=>$e.id===oe?{...$e,...le}:$e)}:be)}));},[Q]),ne=useCallback(Z=>{Q(oe=>({...oe,tables:oe.tables.map(le=>le.id===Z?{...le,fields:[...le.fields,Pl()]}:le)}));},[Q]),he=useCallback((Z,oe)=>{Q(le=>({...le,tables:le.tables.map(de=>de.id===Z?{...de,fields:de.fields.filter(be=>be.id!==oe)}:de),relations:le.relations.filter(de=>!(de.from.tableId===Z&&de.from.fieldId===oe)&&!(de.to.tableId===Z&&de.to.fieldId===oe))}));},[Q]),fe=useCallback((Z,oe,le,de,be)=>{D.current={type:"resize",tableId:Z,startX:oe,startY:le,startWidth:de,startHeight:be};},[]),Te=useCallback(()=>{let Z=Oa(P.zoom+Vl,C,v);Re({...P,zoom:Z});},[P,C,v,Re]),Ce=useCallback(()=>{let Z=Oa(P.zoom-Vl,C,v);Re({...P,zoom:Z});},[P,C,v,Re]),we=useCallback(()=>{Re({...Hl});},[Re]),Me=useCallback(()=>{let Z=x.current?.getBoundingClientRect();if(!Z)return;let oe=sm(M,Z.width,Z.height,p),le=Oa(oe.zoom,C,v);Re({...oe,zoom:le});},[M,p,C,v,Re]),Ae=useCallback(Z=>{Q(oe=>({...oe,tables:[...oe.tables,Z]}));},[Q]),bt=useCallback(Z=>{Q(oe=>({...oe,tables:oe.tables.filter(le=>le.id!==Z),relations:oe.relations.filter(le=>le.from.tableId!==Z&&le.to.tableId!==Z)}));},[Q]),ct=useCallback((Z,oe)=>{Q(le=>({...le,tables:le.tables.map(de=>de.id===Z?{...de,fields:[...de.fields,oe]}:de)}));},[Q]),Ye=useCallback((Z,oe)=>{he(Z,oe);},[he]),er=useCallback(Z=>{Q(oe=>({...oe,tables:oe.tables.map(le=>le.id===Z.to.tableId?{...le,fields:le.fields.map(de=>de.id===Z.to.fieldId?{...de,foreignKey:{tableId:Z.from.tableId,fieldId:Z.from.fieldId}}:de)}:le),relations:[...oe.relations,Z]}));},[Q]),vt=useCallback(Z=>{Q(oe=>{let le=oe.relations.find(de=>de.id===Z);return {...oe,tables:le?oe.tables.map(de=>de.id===le.to.tableId?{...de,fields:de.fields.map(be=>be.id===le.to.fieldId?{...be,foreignKey:void 0}:be)}:de):oe.tables,relations:oe.relations.filter(de=>de.id!==Z)}});},[Q]),Hr=useCallback(()=>JSON.stringify(W,null,2),[W]),mn=useCallback(Z=>{try{let oe=JSON.parse(Z);oe&&Array.isArray(oe.tables)&&Array.isArray(oe.relations)&&Q(()=>oe);}catch{}},[Q]),Kn=useCallback(()=>{let Z=x.current?.getBoundingClientRect(),oe=K.current,le=100,de=100;Z&&(le=(Z.width/2-oe.x)/oe.zoom-260/2,de=(Z.height/2-oe.y)/oe.zoom-60),Ae(El(le,de));},[Ae]),bo=useCallback(()=>Ys(W),[W]);useImperativeHandle(L,()=>({zoomIn:Te,zoomOut:Ce,resetView:we,fitToContent:Me,addTable:Ae,removeTable:bt,addField:ct,removeField:Ye,addRelation:er,removeRelation:vt,toJSON:Hr,loadJSON:mn,toSQL:bo}),[Te,Ce,we,Me,Ae,bt,ct,Ye,er,vt,Hr,mn,bo]);let Ur=useRef(false);useEffect(()=>{f&&!Ur.current&&x.current&&(Ur.current=true,Me());},[f,Me]);let Vr=useMemo(()=>({transform:`translate(${P.x}px, ${P.y}px) scale(${P.zoom})`,transformOrigin:"0 0"}),[P.x,P.y,P.zoom]);return jsxs("div",{ref:x,"data-testid":"schema-editor",className:g("relative w-full overflow-hidden bg-gray-50 dark:bg-gray-900 select-none",d&&"opacity-60 pointer-events-none",N),tabIndex:0,onWheel:at,onMouseDown:et,onClick:ce,onDoubleClick:Oe,onContextMenu:st,onKeyDown:ar,children:[z&&jsx(om,{gridSize:y,zoom:P.zoom}),h&&!c&&jsx(bm,{zoom:P.zoom,onZoomIn:Te,onZoomOut:Ce,onResetView:we,onFitToContent:Me,onAddTable:Kn,onExportJSON:Hr,onImportJSON:mn,onExportSQL:tt,onUndo:lt,onRedo:pr,canUndo:it,canRedo:xt,onAutoLayout:yr,disabled:d}),R&&jsx(hm,{}),jsx(fm,{relations:T,tables:M,viewport:P,selectedRelationId:H,disabled:d||c,onRelationClick:Pe,onCardinalityChange:De}),jsx("div",{style:Vr,children:M.map(Z=>jsx(gm,{table:Z,selected:S===Z.id,disabled:d||c,readOnly:c,editable:p,dropTarget:A!==null&&A!==Z.id&&!Z.collapsed,fieldTypes:n,onTableNameChange:Rr,onTableNotesChange:ye,onToggleCollapse:xe,onFieldChange:re,onFieldAdd:ne,onFieldRemove:he,onFieldReorder:Wr,onResizeStart:fe},Z.id))}),_&&jsxs("svg",{"data-testid":"drag-relation-overlay",style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",pointerEvents:"none",zIndex:1e3,overflow:"visible"},children:[jsx("path",{d:_s(_.fromX*P.zoom+P.x,_.fromY*P.zoom+P.y,_.currentX*P.zoom+P.x,_.currentY*P.zoom+P.y),fill:"none",stroke:"#3b82f6",strokeWidth:2.5,strokeDasharray:"8 4"}),jsx("circle",{cx:_.fromX*P.zoom+P.x,cy:_.fromY*P.zoom+P.y,r:5,fill:"#3b82f6"}),jsx("circle",{cx:_.currentX*P.zoom+P.x,cy:_.currentY*P.zoom+P.y,r:4,fill:"#3b82f6",opacity:.6})]}),R&&Y.width>0&&jsx(ym,{tables:M,viewport:P,containerWidth:Y.width,containerHeight:Y.height,editable:p,onViewportChange:Re})]})}var km=forwardRef(Yk);km.displayName="SchemaEditor";var Cm="wf-grid-pattern",wm=memo(function({gridSize:t,zoom:r}){let n=t*r;return jsxs("svg",{className:"absolute inset-0 w-full h-full pointer-events-none","aria-hidden":"true",children:[jsx("defs",{children:jsx("pattern",{id:Cm,width:n,height:n,patternUnits:"userSpaceOnUse",children:jsx("circle",{cx:1,cy:1,r:1,className:"fill-gray-300 dark:fill-gray-600"})})}),jsx("rect",{width:"100%",height:"100%",fill:`url(#${Cm})`})]})});function Bl(e,t){return Math.round(e/t)*t}function Ka(e,t,r){return Math.min(r,Math.max(t,e))}function Jo(e,t,r,n){return {x:(e-n.left-r.x)/r.zoom,y:(t-n.top-r.y)/r.zoom}}function Ga(e,t="horizontal"){return t==="vertical"?e==="in"?"top":"bottom":e==="in"?"left":"right"}function ea(e,t,r,n="horizontal"){let o=e.width??180,a=e.height??60,s=t.side??Ga(t.kind,n),l=r.filter(u=>(u.side??Ga(u.kind,n))===s),i=l.findIndex(u=>u.id===t.id),c=l.length,d=c===1?.5:(i+1)/(c+1);switch(s){case "left":return {x:e.x-8,y:e.y+a*d};case "right":return {x:e.x+o+8,y:e.y+a*d};case "top":return {x:e.x+o*d,y:e.y-8};case "bottom":return {x:e.x+o*d,y:e.y+a+8}}}function js(e,t,r,n,o="horizontal"){if(o==="vertical"){let u=Math.abs(n-t),b=Math.max(50,u*.5),m=e,p=t+b,C=r,v=n-b;return `M ${e} ${t} C ${m} ${p}, ${C} ${v}, ${r} ${n}`}let a=Math.abs(r-e),s=Math.max(50,a*.5),l=e+s,i=t,c=r-s;return `M ${e} ${t} C ${l} ${i}, ${c} ${n}, ${r} ${n}`}function Nm(e,t,r,n=40){if(e.length===0)return {x:0,y:0,zoom:1};let o=1/0,a=1/0,s=-1/0,l=-1/0;for(let m of e){let p=m.width??180,C=m.height??60;o=Math.min(o,m.x),a=Math.min(a,m.y),s=Math.max(s,m.x+p),l=Math.max(l,m.y+C);}let i=s-o+n*2,c=l-a+n*2,d=Math.min(t/i,r/c,1),u=(t-i*d)/2-(o-n)*d,b=(r-c*d)/2-(a-n)*d;return {x:u,y:b,zoom:d}}var Qk=180,Jk=60,Zs=12,ta=28,Ol=24,eC=-8;function tC(e,t,r,n,o="horizontal"){let a=e.side??Ga(e.kind,o),s=t.filter(d=>(d.side??Ga(d.kind,o))===a),l=s.findIndex(d=>d.id===e.id),i=s.length,c=i===1?.5:(l+1)/(i+1);switch(a){case "left":return {left:0,top:n*c};case "right":return {left:r,top:n*c};case "top":return {left:r*c,top:0};case "bottom":return {left:r*c,top:n}}}function rC({port:e,allPorts:t,nodeId:r,nodeWidth:n,nodeHeight:o,disabled:a,direction:s,onMouseUp:l}){let i=tC(e,t,n,o,s),c=a||e.disabled,d=useCallback(u=>{c||(u.stopPropagation(),l(r,e.id));},[c,r,e.id,l]);return jsx("div",{"data-testid":`port-${r}-${e.id}`,"data-port-id":e.id,"data-port-kind":e.kind,"data-node-id":r,className:"absolute",style:{left:i.left-ta/2,top:i.top-ta/2,width:ta,height:ta,zIndex:20},onMouseUp:d,title:e.label??e.id,children:jsx("div",{className:g("absolute rounded-full border-2 transition-colors",c?"bg-gray-300 border-gray-400 cursor-not-allowed":e.kind==="in"?"bg-blue-400 border-blue-600 hover:bg-blue-300 cursor-crosshair":"bg-green-400 border-green-600 hover:bg-green-300 cursor-crosshair"),style:{width:Zs,height:Zs,left:(ta-Zs)/2,top:(ta-Zs)/2}})})}function nC(e,t,r){let n=e??"top-right",o=eC,a=t*(Ol+4);switch(n){case "top-right":return {top:o,right:o-a};case "top-left":return {top:o,left:o+a};case "bottom-right":return {bottom:o,right:o-a};case "bottom-left":return {bottom:o,left:o+a}}}function oC({action:e,nodeId:t,index:r,nodeWidth:n,disabled:o,onActionClick:a}){let s=useCallback(c=>{c.stopPropagation(),c.preventDefault(),!o&&a(t,e.id,c.nativeEvent);},[o,t,e.id,a]),l=useCallback(c=>{c.stopPropagation();},[]),i=nC(e.position,r);return jsx("button",{"data-testid":`action-${t}-${e.id}`,"data-action-id":e.id,"data-node-id":t,type:"button",className:g("absolute flex items-center justify-center rounded-full border shadow-sm transition-all","bg-white border-gray-300 text-gray-600","hover:bg-gray-50 hover:border-gray-400 hover:text-gray-800 hover:shadow-md","active:scale-95",o&&"opacity-50 cursor-not-allowed",!o&&"cursor-pointer",e.className),style:{...i,width:Ol,height:Ol,zIndex:30},onClick:s,onMouseDown:l,title:e.label,disabled:o,children:jsx("span",{className:"flex items-center justify-center w-3.5 h-3.5 [&>svg]:w-full [&>svg]:h-full",children:e.icon})})}var Sm=memo(function({node:t,registry:r,ports:n,selected:o,disabled:a,draggable:s,direction:l,onPortMouseUp:i,onActionClick:c}){let d=t.width??Qk,u=t.height??Jk,b=r.render({node:t,selected:o,disabled:a}),p=(typeof r.actions=="function"?r.actions(t):r.actions)?.filter(v=>typeof v.hidden=="function"?!v.hidden(t):!v.hidden),C=new Map;if(p)for(let v of p){let k=v.position??"top-right",y=C.get(k)??[];y.push(v),C.set(k,y);}return jsxs("div",{"data-testid":`workflow-node-${t.id}`,"data-node-id":t.id,className:g("absolute select-none group/node",s&&!t.locked&&"cursor-grab active:cursor-grabbing",t.locked&&"cursor-not-allowed opacity-75",o&&"ring-2 ring-blue-500 ring-offset-1 rounded-lg"),style:{left:t.x,top:t.y,width:d,height:u,overflow:"visible"},children:[b,n.map(v=>jsx(rC,{port:v,allPorts:n,nodeId:t.id,nodeWidth:d,nodeHeight:u,disabled:a,direction:l,onMouseUp:i},v.id)),c&&C.size>0&&Array.from(C.entries()).map(([,v])=>v.map((k,y)=>jsx(oC,{action:k,nodeId:t.id,index:y,nodeWidth:d,disabled:a,onActionClick:c},k.id)))]})});function Rm(e,t,r,n,o="horizontal"){let a=r.find(i=>i.id===e);if(!a)return null;let s=n(a),l=s.find(i=>i.id===t);return l?ea(a,l,s,o):null}var iC=memo(function({edge:t,fromPos:r,toPos:n,selected:o,disabled:a,direction:s,onClick:l}){let i=js(r.x,r.y,n.x,n.y,s),c=(r.x+n.x)/2,d=(r.y+n.y)/2,u=useCallback(b=>{b.stopPropagation(),l(t.id,b);},[t.id,l]);return jsxs("g",{"data-testid":`workflow-edge-${t.id}`,children:[jsx("path",{d:i,fill:"none",stroke:"transparent",strokeWidth:16,className:"cursor-pointer",onClick:u}),jsx("path",{d:i,fill:"none",className:g("transition-colors pointer-events-none",a||t.disabled?"stroke-gray-300":o?"stroke-blue-500":"stroke-gray-400"),strokeWidth:o?2.5:2,strokeDasharray:t.disabled?"6 3":void 0}),t.label&&jsx("text",{x:c,y:d-8,textAnchor:"middle",className:"fill-gray-600 dark:fill-gray-300 text-xs pointer-events-none select-none",fontSize:11,children:t.label})]})}),Pm=memo(function({edges:t,nodes:r,selectedEdgeId:n,disabled:o,direction:a,onEdgeClick:s,getNodePorts:l}){return jsx("svg",{className:"absolute pointer-events-none",style:{top:0,left:0,width:1,height:1,overflow:"visible"},children:jsx("g",{className:"pointer-events-auto",children:t.map(i=>{let c=Rm(i.from.nodeId,i.from.portId,r,l,a),d=Rm(i.to.nodeId,i.to.portId,r,l,a);return !c||!d?null:jsx(iC,{edge:i,fromPos:c,toPos:d,selected:i.id===n,disabled:o,direction:a,onClick:s},i.id)})})})});var dC=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M10 5a1 1 0 011 1v3h3a1 1 0 110 2h-3v3a1 1 0 11-2 0v-3H6a1 1 0 110-2h3V6a1 1 0 011-1z",clipRule:"evenodd"})}),uC=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M5 10a1 1 0 011-1h8a1 1 0 110 2H6a1 1 0 01-1-1z",clipRule:"evenodd"})}),mC=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M4 2a1 1 0 011 1v2.101a7.002 7.002 0 0111.601 2.566 1 1 0 11-1.885.666A5.002 5.002 0 005.999 7H9a1 1 0 010 2H4a1 1 0 01-1-1V3a1 1 0 011-1zm.008 9.057a1 1 0 011.276.61A5.002 5.002 0 0014.001 13H11a1 1 0 110-2h5a1 1 0 011 1v5a1 1 0 11-2 0v-2.101a7.002 7.002 0 01-11.601-2.566 1 1 0 01.61-1.276z",clipRule:"evenodd"})}),gC=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{d:"M3 4a1 1 0 011-1h4a1 1 0 010 2H6.414l2.293 2.293a1 1 0 01-1.414 1.414L5 6.414V8a1 1 0 01-2 0V4zm9 1a1 1 0 010-2h4a1 1 0 011 1v4a1 1 0 01-2 0V6.414l-2.293 2.293a1 1 0 11-1.414-1.414L13.586 5H12zm-9 7a1 1 0 012 0v1.586l2.293-2.293a1 1 0 011.414 1.414L6.414 15H8a1 1 0 010 2H4a1 1 0 01-1-1v-4zm13 0a1 1 0 01-2 0v-1.586l-2.293 2.293a1 1 0 01-1.414-1.414L13.586 9H12a1 1 0 010-2h4a1 1 0 011 1v4z"})}),pC=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M3 17a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zm3.293-7.707a1 1 0 011.414 0L9 10.586V3a1 1 0 112 0v7.586l1.293-1.293a1 1 0 111.414 1.414l-3 3a1 1 0 01-1.414 0l-3-3a1 1 0 010-1.414z",clipRule:"evenodd"})}),fC=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M3 17a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM6.293 6.707a1 1 0 010-1.414l3-3a1 1 0 011.414 0l3 3a1 1 0 01-1.414 1.414L11 5.414V13a1 1 0 11-2 0V5.414L7.707 6.707a1 1 0 01-1.414 0z",clipRule:"evenodd"})}),bC=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M10.293 3.293a1 1 0 011.414 0l6 6a1 1 0 010 1.414l-6 6a1 1 0 01-1.414-1.414L14.586 11H3a1 1 0 110-2h11.586l-4.293-4.293a1 1 0 010-1.414z",clipRule:"evenodd"})}),hC=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M16.707 10.293a1 1 0 010 1.414l-6 6a1 1 0 01-1.414 0l-6-6a1 1 0 111.414-1.414L9 14.586V3a1 1 0 012 0v11.586l4.293-4.293a1 1 0 011.414 0z",clipRule:"evenodd"})}),Dm=memo(function({zoom:t,direction:r,onDirectionChange:n,onZoomIn:o,onZoomOut:a,onResetView:s,onFitToContent:l,onExportJSON:i,onImportJSON:c,disabled:d,className:u}){let[b,m]=useState(false),[p,C]=useState(false),[v,k]=useState(""),[y,z]=useState(""),h=useCallback(()=>{k(i()),m(true);},[i]),R=useCallback(()=>{y.trim()&&(c(y.trim()),z(""),C(false));},[y,c]),f=useCallback(()=>{z(""),C(false);},[]),N=useCallback(()=>{m(false);},[]),L=Math.round(t*100);return jsxs(Fragment,{children:[jsxs("div",{className:g("absolute top-3 left-3 z-20 flex items-center gap-2 bg-white dark:bg-gray-800 rounded-lg shadow-md border border-gray-200 dark:border-gray-600 px-2 py-1.5",u),"data-testid":"workflow-toolbar",children:[jsxs(Mo,{size:"sm",children:[jsx(zt,{content:"Zoom in",size:"sm",position:"bottom",children:jsx(At,{icon:jsx(dC,{}),size:"sm",bgColor:"bg-gray-100 hover:bg-gray-200 dark:bg-gray-700 dark:hover:bg-gray-600",textColor:"text-gray-700 dark:text-gray-200",onClick:o,disabled:d,"aria-label":"Zoom in"})}),jsx(zt,{content:"Zoom out",size:"sm",position:"bottom",children:jsx(At,{icon:jsx(uC,{}),size:"sm",bgColor:"bg-gray-100 hover:bg-gray-200 dark:bg-gray-700 dark:hover:bg-gray-600",textColor:"text-gray-700 dark:text-gray-200",onClick:a,disabled:d,"aria-label":"Zoom out"})})]}),jsxs("span",{className:"text-xs font-mono text-gray-500 dark:text-gray-400 min-w-[3ch] text-center select-none",children:[L,"%"]}),jsx("div",{className:"w-px h-5 bg-gray-200 dark:bg-gray-600"}),jsx(zt,{content:"Reset view",size:"sm",position:"bottom",children:jsx(At,{icon:jsx(mC,{}),size:"sm",bgColor:"bg-gray-100 hover:bg-gray-200 dark:bg-gray-700 dark:hover:bg-gray-600",textColor:"text-gray-700 dark:text-gray-200",onClick:s,disabled:d,"aria-label":"Reset view"})}),jsx(zt,{content:"Fit to content",size:"sm",position:"bottom",children:jsx(At,{icon:jsx(gC,{}),size:"sm",bgColor:"bg-gray-100 hover:bg-gray-200 dark:bg-gray-700 dark:hover:bg-gray-600",textColor:"text-gray-700 dark:text-gray-200",onClick:l,disabled:d,"aria-label":"Fit to content"})}),n&&jsxs(Fragment,{children:[jsx("div",{className:"w-px h-5 bg-gray-200 dark:bg-gray-600"}),jsx(zt,{content:r==="horizontal"?"Switch to vertical":"Switch to horizontal",size:"sm",position:"bottom",children:jsx(At,{icon:r==="horizontal"?jsx(bC,{}):jsx(hC,{}),size:"sm",bgColor:"bg-gray-100 hover:bg-gray-200 dark:bg-gray-700 dark:hover:bg-gray-600",textColor:"text-gray-700 dark:text-gray-200",onClick:()=>n(r==="horizontal"?"vertical":"horizontal"),disabled:d,"aria-label":r==="horizontal"?"Switch to vertical":"Switch to horizontal"})})]}),jsx("div",{className:"w-px h-5 bg-gray-200 dark:bg-gray-600"}),jsx(zt,{content:"Export JSON",size:"sm",position:"bottom",children:jsx(At,{icon:jsx(pC,{}),size:"sm",bgColor:"bg-gray-100 hover:bg-gray-200 dark:bg-gray-700 dark:hover:bg-gray-600",textColor:"text-gray-700 dark:text-gray-200",onClick:h,disabled:d,"aria-label":"Export JSON"})}),jsx(zt,{content:"Import JSON",size:"sm",position:"bottom",children:jsx(At,{icon:jsx(fC,{}),size:"sm",bgColor:"bg-gray-100 hover:bg-gray-200 dark:bg-gray-700 dark:hover:bg-gray-600",textColor:"text-gray-700 dark:text-gray-200",onClick:()=>C(true),disabled:d,"aria-label":"Import JSON"})})]}),jsx(Tn,{isOpen:b,onClose:N,title:"Export Workflow",description:"Copy the JSON below to save your workflow.",size:"lg",showSubmit:false,showCancel:true,cancelLabel:"Close",children:jsx(an,{label:"Workflow JSON",multiline:true,rows:12,value:v,readOnly:true,size:"sm"})}),jsx(Tn,{isOpen:p,onClose:f,title:"Import Workflow",description:"Paste workflow JSON to load it into the editor.",size:"lg",showSubmit:true,submitLabel:"Import",onSubmitClick:R,showCancel:true,cancelLabel:"Cancel",children:jsx(an,{label:"Workflow JSON",multiline:true,rows:12,value:y,onChange:E=>z(E.target.value),placeholder:'{"nodes": [], "edges": []}',size:"sm"})})]})});var $l={x:0,y:0,zoom:1},_l=.1,vC=.1,kC=3,CC=20;function Im(){return `edge-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function wC({value:e,defaultValue:t,onValueChange:r,nodeRegistry:n,direction:o="horizontal",onDirectionChange:a,onNodeClick:s,onNodeDoubleClick:l,onNodeContextMenu:i,onNodeAction:c,readOnly:d=false,disabled:u=false,draggableNodes:b=true,connectable:m=true,selectable:p=true,multiSelect:C=false,panOnDrag:v=true,zoomOnWheel:k=true,minZoom:y=vC,maxZoom:z=kC,snapToGrid:h=false,gridSize:R=CC,showGrid:f=true,toolbar:N=true,autoFit:L=false,className:E},I){let w=e!==void 0,[W,M]=useState(()=>t??{nodes:[],edges:[],viewport:{...$l}}),T=w?e:W,P=T.nodes,x=T.edges,D=T.viewport??$l,S=useRef(null),B=useRef(null),[H,$]=useState(new Set),[_,F]=useState(null),[A,V]=useState(null),Y=useRef(D);Y.current=D;let X=useRef(P);X.current=P;let G=useRef(x);G.current=x;let j=useRef(h);j.current=h;let O=useRef(R);O.current=R;let K=useRef(n);K.current=n;let se=useRef(o);se.current=o;let ae=useCallback(re=>{w?r?.(re(e)):M(ne=>{let he=re(ne);return r?.(he),he});},[w,e,r]),U=useRef(ae);U.current=ae;let J=useCallback(re=>{ae(ne=>({...ne,viewport:re}));},[ae]),te=useRef(J);te.current=J;let ie=useCallback(re=>{let ne=n[re.type];return ne?.getPorts?ne.getPorts(re):re.ports??[]},[n]),Q=useRef(ie);Q.current=ie;let ge=useCallback((re,ne,he)=>{let fe=X.current,Te=G.current,Ce=fe.find(vt=>vt.id===re.fromNodeId),we=fe.find(vt=>vt.id===ne);if(!Ce||!we)return;let Me=Q.current(Ce),Ae=Q.current(we),bt=Me.find(vt=>vt.id===re.fromPortId),ct=Ae.find(vt=>vt.id===he);if(!bt||!ct||ct.kind!=="in"||re.fromNodeId===ne)return;let Ye=K.current[Ce.type];if(Ye?.canConnect&&!Ye.canConnect({fromNode:Ce,toNode:we,fromPort:bt,toPort:ct}))return;Te.some(vt=>vt.from.nodeId===re.fromNodeId&&vt.from.portId===re.fromPortId&&vt.to.nodeId===ne&&vt.to.portId===he)||U.current(vt=>({...vt,edges:[...vt.edges,{id:Im(),from:{nodeId:re.fromNodeId,portId:re.fromPortId},to:{nodeId:ne,portId:he}}]}));},[]);useEffect(()=>{function re(he){let fe=B.current;if(!fe)return;let Te=S.current?.getBoundingClientRect();if(!Te)return;let Ce=Y.current;if(fe.type==="pan"){let we=he.clientX-fe.startX,Me=he.clientY-fe.startY;te.current({...Ce,x:fe.startViewportX+we,y:fe.startViewportY+Me});}if(fe.type==="node"){let we=Jo(he.clientX,he.clientY,Ce,Te),Me=we.x-fe.offsetX,Ae=we.y-fe.offsetY;j.current&&(Me=Bl(Me,O.current),Ae=Bl(Ae,O.current)),U.current(bt=>({...bt,nodes:bt.nodes.map(ct=>ct.id===fe.nodeId?{...ct,x:Me,y:Ae}:ct)}));}if(fe.type==="edge"){let we=Jo(he.clientX,he.clientY,Ce,Te);B.current={...fe,currentX:we.x,currentY:we.y},V({fromX:fe.fromX,fromY:fe.fromY,currentX:we.x,currentY:we.y});}}function ne(he){let fe=B.current;if(fe){if(fe.type==="edge"){let Te=S.current?.getBoundingClientRect();if(Te){let Ce=Y.current,we=Jo(he.clientX,he.clientY,Ce,Te),Me=25,Ae=X.current,bt=1/0,ct=null,Ye=null;for(let er of Ae){let vt=Q.current(er);for(let Hr of vt){if(Hr.kind!=="in")continue;let mn=ea(er,Hr,vt,se.current),Kn=Math.sqrt((we.x-mn.x)**2+(we.y-mn.y)**2);Kn<Me&&Kn<bt&&(bt=Kn,ct=er.id,Ye=Hr.id);}}ct&&Ye&&ge(fe,ct,Ye);}V(null);}B.current=null;}}return document.addEventListener("mousemove",re),document.addEventListener("mouseup",ne),()=>{document.removeEventListener("mousemove",re),document.removeEventListener("mouseup",ne);}},[ge]);let Re=useCallback(re=>{if(!k||u)return;re.preventDefault();let ne=S.current?.getBoundingClientRect();if(!ne)return;let he=re.clientX-ne.left,fe=re.clientY-ne.top,Te=re.deltaY<0?1:-1,Ce=Ka(D.zoom+Te*_l,y,z),we=Ce/D.zoom;J({x:he-(he-D.x)*we,y:fe-(fe-D.y)*we,zoom:Ce});},[k,u,D,y,z,J]),Qe=useCallback(re=>{if(u)return;let ne=re.target;if(ne.closest("[data-action-id]"))return;let fe=ne.closest("[data-port-id]");if(fe){if(!m||d)return;re.preventDefault();let Ce=fe.getAttribute("data-node-id"),we=fe.getAttribute("data-port-id"),Me=fe.getAttribute("data-port-kind");if(!Ce||!we||Me!=="out")return;let Ae=P.find(er=>er.id===Ce);if(!Ae)return;let bt=ie(Ae),ct=bt.find(er=>er.id===we);if(!ct)return;let Ye=ea(Ae,ct,bt,se.current);B.current={type:"edge",fromNodeId:Ce,fromPortId:we,fromX:Ye.x,fromY:Ye.y,currentX:Ye.x,currentY:Ye.y},V({fromX:Ye.x,fromY:Ye.y,currentX:Ye.x,currentY:Ye.y});return}let Te=ne.closest("[data-node-id]");if(Te){if(d)return;let Ce=Te.getAttribute("data-node-id");if(p&&(F(null),C&&re.shiftKey?$(we=>{let Me=new Set(we);return Me.has(Ce)?Me.delete(Ce):Me.add(Ce),Me}):$(new Set([Ce]))),b){let we=S.current?.getBoundingClientRect();if(!we)return;let Me=P.find(bt=>bt.id===Ce);if(!Me||Me.locked)return;let Ae=Jo(re.clientX,re.clientY,D,we);B.current={type:"node",nodeId:Ce,startX:Ae.x,startY:Ae.y,offsetX:Ae.x-Me.x,offsetY:Ae.y-Me.y};}return}p&&($(new Set),F(null)),v&&re.button===0&&(B.current={type:"pan",startX:re.clientX,startY:re.clientY,startViewportX:D.x,startViewportY:D.y});},[u,m,d,p,C,b,v,D,P,ie]),at=useCallback(re=>{let ne=B.current;if(!ne||ne.type!=="edge")return;let he=S.current?.getBoundingClientRect();if(he){let fe=Jo(re.clientX,re.clientY,D,he),Te=30,Ce=1/0,we=null,Me=null;for(let Ae of P){let bt=ie(Ae);for(let ct of bt){if(ct.kind!=="in")continue;let Ye=ea(Ae,ct,bt,se.current),er=Math.sqrt((fe.x-Ye.x)**2+(fe.y-Ye.y)**2);er<Te&&er<Ce&&(Ce=er,we=Ae.id,Me=ct.id);}}if(we&&Me){let Ae=ne.fromNodeId,bt=ne.fromPortId;Ae!==we&&(x.some(Ye=>Ye.from.nodeId===Ae&&Ye.from.portId===bt&&Ye.to.nodeId===we&&Ye.to.portId===Me)||ae(Ye=>({...Ye,edges:[...Ye.edges,{id:Im(),from:{nodeId:Ae,portId:bt},to:{nodeId:we,portId:Me}}]})));}}B.current=null,V(null);},[D,P,x,ie,ae]),et=useCallback((re,ne)=>{let he=B.current;!he||he.type!=="edge"||(ge(he,re,ne),B.current=null,V(null));},[ge]),me=useCallback(re=>{let ne=re.target;if(ne.closest("[data-port-id]")||ne.closest("[data-action-id]"))return null;let Te=ne.closest("[data-node-id]");if(!Te)return null;let Ce=Te.getAttribute("data-node-id");return P.find(we=>we.id===Ce)??null},[P]),ce=useCallback(re=>{if(!s||u)return;let ne=me(re);ne&&s({node:ne,nativeEvent:re.nativeEvent});},[s,u,me]),Oe=useCallback(re=>{if(!l||u)return;let ne=me(re);ne&&l({node:ne,nativeEvent:re.nativeEvent});},[l,u,me]),st=useCallback(re=>{if(!i||u)return;let ne=me(re);ne&&(re.preventDefault(),i({node:ne,nativeEvent:re.nativeEvent}));},[i,u,me]),Pe=useCallback((re,ne,he)=>{if(!c||u)return;let fe=P.find(Te=>Te.id===re);fe&&c({node:fe,actionId:ne,nativeEvent:he});},[c,u,P]),De=useCallback((re,ne)=>{!p||u||(ne.stopPropagation(),$(new Set),F(re));},[p,u]),it=useCallback(re=>{d||u||((re.key==="Delete"||re.key==="Backspace")&&(H.size>0&&(ae(ne=>({...ne,nodes:ne.nodes.filter(he=>!H.has(he.id)),edges:ne.edges.filter(he=>!H.has(he.from.nodeId)&&!H.has(he.to.nodeId))})),$(new Set)),_&&(ae(ne=>({...ne,edges:ne.edges.filter(he=>he.id!==_)})),F(null))),re.key==="Escape"&&($(new Set),F(null)));},[d,u,H,_,ae]),xt=useCallback(()=>{let re=Ka(D.zoom+_l,y,z);J({...D,zoom:re});},[D,y,z,J]),lt=useCallback(()=>{let re=Ka(D.zoom-_l,y,z);J({...D,zoom:re});},[D,y,z,J]),pr=useCallback(()=>{J({...$l});},[J]),tt=useCallback(()=>{let re=S.current?.getBoundingClientRect();if(!re)return;let ne=Nm(P,re.width,re.height),he=Ka(ne.zoom,y,z);J({...ne,zoom:he});},[P,y,z,J]),yr=useCallback(re=>{ae(ne=>({...ne,nodes:[...ne.nodes,re]}));},[ae]),Wr=useCallback(re=>{ae(ne=>({...ne,nodes:ne.nodes.filter(he=>he.id!==re),edges:ne.edges.filter(he=>he.from.nodeId!==re&&he.to.nodeId!==re)}));},[ae]),Bt=useCallback(()=>JSON.stringify(T,null,2),[T]),ar=useCallback(re=>{try{let ne=JSON.parse(re);ne&&Array.isArray(ne.nodes)&&Array.isArray(ne.edges)&&ae(()=>ne);}catch{}},[ae]);useImperativeHandle(I,()=>({zoomIn:xt,zoomOut:lt,resetView:pr,fitToContent:tt,addNode:yr,removeNode:Wr,toJSON:Bt,loadJSON:ar}),[xt,lt,pr,tt,yr,Wr,Bt,ar]);let Rr=useRef(false);useEffect(()=>{L&&!Rr.current&&S.current&&(Rr.current=true,tt());},[L,tt]);let ye=useMemo(()=>{let re=new Map;for(let ne of P)re.set(ne.id,ie(ne));return re},[P,ie]),xe=useMemo(()=>({transform:`translate(${D.x}px, ${D.y}px) scale(${D.zoom})`,transformOrigin:"0 0"}),[D.x,D.y,D.zoom]);return jsxs("div",{ref:S,"data-testid":"workflow-editor",className:g("relative w-full overflow-hidden bg-gray-50 dark:bg-gray-900 select-none",u&&"opacity-60 pointer-events-none",E),tabIndex:0,onWheel:Re,onMouseDown:Qe,onMouseUp:at,onClick:ce,onDoubleClick:Oe,onContextMenu:st,onKeyDown:it,children:[f&&jsx(wm,{gridSize:R,zoom:D.zoom}),N&&!d&&jsx(Dm,{zoom:D.zoom,direction:o,onDirectionChange:a,onZoomIn:xt,onZoomOut:lt,onResetView:pr,onFitToContent:tt,onExportJSON:Bt,onImportJSON:ar,disabled:u}),jsxs("div",{style:xe,children:[jsx(Pm,{edges:x,nodes:P,selectedEdgeId:_,disabled:u||d,direction:o,onEdgeClick:De,getNodePorts:re=>ye.get(re.id)??[]}),P.map(re=>{let ne=n[re.type];if(!ne)return null;let he=ye.get(re.id)??[];return jsx(Sm,{node:re,registry:ne,ports:he,selected:H.has(re.id),disabled:u||d,draggable:b&&!d,direction:o,onPortMouseUp:et,onActionClick:c?Pe:void 0},re.id)})]}),A&&jsxs("svg",{"data-testid":"drag-edge-overlay",style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",pointerEvents:"none",zIndex:1e3,overflow:"visible"},children:[jsx("path",{d:js(A.fromX*D.zoom+D.x,A.fromY*D.zoom+D.y,A.currentX*D.zoom+D.x,A.currentY*D.zoom+D.y,o),fill:"none",stroke:"#3b82f6",strokeWidth:2.5,strokeDasharray:"8 4"}),jsx("circle",{cx:A.fromX*D.zoom+D.x,cy:A.fromY*D.zoom+D.y,r:5,fill:"#3b82f6"}),jsx("circle",{cx:A.currentX*D.zoom+D.x,cy:A.currentY*D.zoom+D.y,r:4,fill:"#3b82f6",opacity:.6})]})]})}var Am=forwardRef(wC);Am.displayName="WorkflowEditor";var Vm=createContext(null);function Gn(){let e=useContext(Vm);if(!e)throw new Error("useWizard and Wizard sub-components must be used within <Wizard>");return e}var Gl=(e,t,r)=>Math.max(t,Math.min(e,r)),Kl={sm:{circle:"h-7 w-7 text-xs",dot:"h-2.5 w-2.5",icon:"h-3.5 w-3.5",title:"text-xs",desc:"text-[11px]",connector:"h-0.5"},md:{circle:"h-9 w-9 text-sm",dot:"h-3 w-3",icon:"h-4 w-4",title:"text-sm",desc:"text-xs",connector:"h-0.5"},lg:{circle:"h-11 w-11 text-base",dot:"h-3.5 w-3.5",icon:"h-5 w-5",title:"text-base",desc:"text-sm",connector:"h-1"}},un={primary:{solid:"bg-blue-600 text-white",bg:"bg-blue-600",text:"text-blue-600 dark:text-blue-400",ring:"focus-visible:ring-blue-500",ringSoft:"ring-blue-500/20"},secondary:{solid:"bg-gray-700 text-white",bg:"bg-gray-700",text:"text-gray-700 dark:text-gray-300",ring:"focus-visible:ring-gray-500",ringSoft:"ring-gray-500/20"},success:{solid:"bg-green-600 text-white",bg:"bg-green-600",text:"text-green-600 dark:text-green-400",ring:"focus-visible:ring-green-500",ringSoft:"ring-green-500/20"},warning:{solid:"bg-amber-500 text-white",bg:"bg-amber-500",text:"text-amber-600 dark:text-amber-400",ring:"focus-visible:ring-amber-500",ringSoft:"ring-amber-500/20"},error:{solid:"bg-red-600 text-white",bg:"bg-red-600",text:"text-red-600 dark:text-red-400",ring:"focus-visible:ring-red-500",ringSoft:"ring-red-500/20"}};function RC({className:e}){return jsx("svg",{className:e,viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z",clipRule:"evenodd"})})}function Bm({steps:e,step:t,defaultStep:r=0,onStepChange:n,onComplete:o,orientation:a="horizontal",variant:s="default",size:l="md",color:i="primary",linear:c=true,className:d,children:u}){let b=e.length,m=Math.max(0,b-1),p=t!==void 0,[C,v]=useState(()=>Gl(r,0,m)),k=Gl(p?t:C,0,m),[y,z]=useState(k);y<k&&z(k);let h=k<=0,R=k>=m,f=useCallback((M,T)=>{let P=Gl(M,0,m);P!==k&&(p||v(P),z(x=>Math.max(x,P)),n?.(P,{previous:k,direction:T}));},[k,p,m,n]),N=useCallback(M=>{let T=e[M];return !T||T.disabled?false:c?M<=y:true},[e,c,y]),L=useCallback(M=>{N(M)&&f(M,M>k?"jump":"backward");},[N,f,k]),E=useCallback(()=>{if(R){o?.();return}f(k+1,"forward");},[R,o,f,k]),I=useCallback(()=>{h||f(k-1,"backward");},[h,f,k]),w=useCallback(M=>e[M]?.error?"error":M===k?"active":M<k?"completed":"upcoming",[e,k]),W={steps:e,activeStep:k,totalSteps:b,isFirstStep:h,isLastStep:R,orientation:a,variant:s,size:l,color:i,linear:c,goToStep:L,goNext:E,goBack:I,getStepStatus:w,isStepAccessible:N};return jsx(Vm.Provider,{value:W,children:jsx("div",{className:g("flex w-full flex-col gap-6",d),"data-testid":"wizard","data-orientation":a,children:u})})}function Wm({index:e,status:t}){let{variant:r,size:n,color:o,steps:a}=Gn(),s=Kl[n],l=a[e];if(r==="dots"){let d=t==="upcoming"?"bg-gray-300 dark:bg-gray-600":t==="error"?"bg-red-600":un[o].bg;return jsx("span",{className:g("shrink-0 rounded-full transition-colors",s.dot,d),"aria-hidden":"true"})}let i=t==="completed"?g(un[o].solid,"border-transparent"):t==="active"?g(un[o].solid,"border-transparent ring-4",un[o].ringSoft):t==="error"?"border-transparent bg-red-600 text-white":"border-2 border-gray-300 bg-white text-gray-500 dark:border-gray-600 dark:bg-gray-800 dark:text-gray-400",c=t==="completed"?jsx(RC,{className:s.icon}):t==="error"?jsx("span",{className:"font-semibold leading-none",children:"!"}):l.icon??jsx("span",{className:"font-medium leading-none",children:e+1});return jsx("span",{className:g("flex shrink-0 items-center justify-center rounded-full transition-all",s.circle,i),"aria-hidden":"true",children:c})}function Hm({index:e,status:t}){let{steps:r,size:n,color:o,variant:a}=Gn(),s=Kl[n],l=r[e],c=t==="active"?un[o].text:t==="completed"?"text-gray-900 dark:text-gray-100":t==="error"?"text-red-600 dark:text-red-400":"text-gray-500 dark:text-gray-400";return jsxs("span",{className:"flex min-w-0 flex-col",children:[jsxs("span",{className:g("font-medium leading-tight",s.title,c),children:[a==="simple"&&jsxs("span",{className:"mr-1 tabular-nums",children:[e+1,"."]}),l.title,l.optional&&jsx("span",{className:"ml-1 text-xs font-normal text-gray-400 dark:text-gray-500",children:"(optional)"})]}),l.description&&jsx("span",{className:g("mt-0.5 text-gray-400 dark:text-gray-500",s.desc),children:l.description})]})}function Fm({className:e,hideConnector:t=false,hideLabels:r=false}){let n=Gn(),{steps:o,orientation:a,size:s,variant:l,color:i,activeStep:c}=n,d=Kl[s],u=a==="vertical",b=l!=="simple";return jsx("ol",{className:g("flex w-full",u?"flex-col":"items-start",e),"data-testid":"wizard-steps","data-orientation":a,children:o.map((m,p)=>{let C=n.getStepStatus(p),v=p===c,k=n.isStepAccessible(p)&&!v,y=p===o.length-1,h=p<c?un[i].bg:"bg-gray-200 dark:bg-gray-700";return u?jsx("li",{className:"flex","aria-current":v?"step":void 0,"data-status":C,"data-testid":"wizard-step",children:jsxs("button",{type:"button",disabled:!k,onClick:()=>n.goToStep(p),className:g("flex items-stretch gap-3 rounded-md text-left focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",un[i].ring,k?"cursor-pointer":"cursor-default"),children:[jsxs("span",{className:"flex flex-col items-center",children:[b&&jsx(Wm,{index:p,status:C}),!t&&!y&&jsx("span",{className:g("my-1 w-0.5 flex-1 rounded",h),"aria-hidden":"true"})]}),!r&&jsx("span",{className:g(y?"pb-0":"pb-6"),children:jsx(Hm,{index:p,status:C})})]})},m.id??p):jsxs("li",{className:g("flex items-center",!y&&"flex-1"),"aria-current":v?"step":void 0,"data-status":C,"data-testid":"wizard-step",children:[jsxs("button",{type:"button",disabled:!k,onClick:()=>n.goToStep(p),className:g("flex items-center gap-2.5 rounded-md focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",un[i].ring,k?"cursor-pointer":"cursor-default"),children:[b&&jsx(Wm,{index:p,status:C}),!r&&jsx(Hm,{index:p,status:C})]}),!t&&!y&&jsx("span",{className:g("mx-2 flex-1 rounded",d.connector,h),"aria-hidden":"true"})]},m.id??p)})})}function Om({index:e,keepMounted:t=false,className:r,children:n}){let{activeStep:o}=Gn(),a=e===o;return !a&&!t?null:jsx("div",{role:"tabpanel",hidden:!a,"data-testid":"wizard-panel","data-active":a,"data-step":e,className:g("w-full",r),children:n})}function $m({className:e,children:t}){let r=Gn();return jsx("div",{className:g("w-full",e),"data-testid":"wizard-content",children:typeof t=="function"?t(r):t})}var _m="inline-flex cursor-pointer items-center justify-center gap-2 rounded-lg px-4 py-2 text-sm font-medium transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50";function Ul({children:e,label:t="Previous",className:r,onClick:n,disabled:o,...a}){let{goBack:s,isFirstStep:l}=Gn();return jsx("button",{type:"button",onClick:c=>{n?.(c),c.defaultPrevented||s();},disabled:o??l,"data-testid":"wizard-previous",className:g(_m,"border border-gray-300 bg-white text-gray-700 hover:bg-gray-50 focus-visible:ring-gray-400 dark:border-gray-600 dark:bg-gray-800 dark:text-gray-200 dark:hover:bg-gray-700",r),...a,children:e??t})}function Yl({children:e,label:t="Next",finishLabel:r="Finish",className:n,onClick:o,...a}){let{goNext:s,isLastStep:l,color:i}=Gn();return jsx("button",{type:"button",onClick:d=>{o?.(d),d.defaultPrevented||s();},"data-testid":"wizard-next",className:g(_m,un[i].solid,un[i].ring,"hover:opacity-90",n),...a,children:e??(l?r:t)})}function Xm({className:e,children:t,align:r="between"}){let n={between:"justify-between",start:"justify-start",center:"justify-center",end:"justify-end"}[r];return jsx("div",{className:g("flex items-center gap-3",n,e),"data-testid":"wizard-actions",children:t??jsxs(Fragment,{children:[jsx(Ul,{}),jsx(Yl,{})]})})}Bm.displayName="Wizard";Fm.displayName="WizardSteps";Om.displayName="WizardPanel";$m.displayName="WizardContent";Xm.displayName="WizardActions";Ul.displayName="WizardPrevious";Yl.displayName="WizardNext";export{mg as Accordion,fg as AccordionContent,gg as AccordionItem,pg as AccordionTrigger,ic as AdvanceDetachable,xp as AreaChart,wp as Avatar,Dc as Badge,Wc as Banner,Fp as BarChart,ef as BoxPlot,Qp as Breadcrumb,l0 as BulletChart,At as Button,Mo as ButtonGroup,qn as CHART_ALL_PAIRS_LIMIT,Yn as CHART_DIVERGING_COLORS,xc as CHART_DIVERGING_DARK_STOPS,hc as CHART_DIVERGING_NEUTRAL_INDEX,pi as CHART_DOWN_COLOR,es as CHART_MAX_COLOR_CLASSES,Tr as CHART_MUTED_COLOR,ia as CHART_ORDINAL_COLORS,fi as CHART_ORDINAL_DARK_STOPS,sp as CHART_PALETTE_SIZE,mi as CHART_SEQUENTIAL_COLORS,yc as CHART_SEQUENTIAL_DARK_STOPS,Ja as CHART_SERIES_COLORS,gi as CHART_UP_COLOR,T0 as Calendar,cf as CandlestickChart,_c as Card,Kc as CardBody,jc as CardDescription,Uc as CardFooter,Gc as CardHeader,Yc as CardImage,qc as CardTitle,_e as ChartAxis,ut as ChartContainer,gf as ChartFacets,Ot as ChartGrid,$t as ChartLegend,fa as ChartScaleLegend,It as ChartTableView,gt as ChartTooltip,Cr as ChartTooltipContent,ka as Checkbox,ad as CheckboxGroup,sd as CheckboxGroupItem,xs as Chip,xo as CircularProgress,mc as DEFAULT_CHART_WIDTH,Xa as DEFAULT_FIELD_TYPES,Sb as DataGrid,dd as Detachable,oh as DeviceMockup,md as Divider,Nd as Drawer,Md as Dropdown,Kd as DropdownCheckboxItem,Vd as DropdownContent,Fd as DropdownItem,$d as DropdownLabel,jd as DropdownRadioGroup,Zd as DropdownRadioItem,Od as DropdownSeparator,nu as DropdownSubMenu,au as DropdownSubMenuContent,ou as DropdownSubMenuTrigger,Ad as DropdownTrigger,Cf as DumbbellChart,yd as FOCUSABLE_SELECTOR,Dh as FileSelector,Uu as Footer,Zu as FooterBottom,qu as FooterColumn,ju as FooterLink,Yu as FooterSection,Qu as FooterSocial,Ju as FooterSocialLink,Lf as FunnelChart,Bf as GanttChart,Wy as Header,Cx as Heatmap,du as HelpButton,gd as INERT_IGNORE_ATTRIBUTE,ox as ImageUploader,mu as Indicator,an as Input,bu as Label,Dx as LineChart,al as MentionInput,Tn as Modal,sl as NumberInput,Gx as Pagination,ev as PieChart,Su as ProgressBar,Ru as RadioButton,rk as ScatterChart,km as SchemaEditor,Nv as Select,Lv as Sidebar,Iv as SidebarContent,Av as SidebarFooter,zv as SidebarGroup,Mv as SidebarHeader,Wv as SidebarItem,Hv as SidebarSubMenu,Vv as SidebarToggle,Mu as Skeleton,Au as Slider,yl as Sparkline,Kv as StatCard,Yv as StatCardGroup,gn as Table,pn as TableBody,_t as TableCell,fn as TableHeader,Nt as TableHeaderCell,bn as TableRow,Wu as Tabs,Ou as TabsContent,Hu as TabsList,Fu as TabsTrigger,Xu as Toast,zt as Tooltip,Hg as UILabelsProvider,qf as WaterfallChart,Zy as WithHelpButton,Bm as Wizard,Xm as WizardActions,$m as WizardContent,Yl as WizardNext,Om as WizardPanel,Ul as WizardPrevious,Fm as WizardSteps,Am as WorkflowEditor,zl as autoLayoutTables,Mc as binEdges,ki as binValues,Ei as boxStats,g as cn,Pl as createDefaultField,El as createDefaultTable,Co as createDivergingScale,ca as createSequentialScale,dc as defaultUILabels,Cs as findOwnedLayers,us as formatTimeTick,Wg as frenchUILabels,_a as generateFieldId,Tl as generateRelationId,Ys as generateSQL,im as generateTableId,ws as getFocusableElements,lp as getOrdinalColor,Pr as getSeriesColor,Xt as getSeriesLabel,qi as hideOthers,xd as isElementVisible,vd as isFocusable,Wi as niceTimeTicks,U0 as quantile,ha as quantileSorted,ko as rampColor,oo as registerFloatingLayer,Wp as resetBarChartWarnings,xf as resetDumbbellWarnings,pf as resetFacetWarnings,Er as resolveSeriesColor,Lc as sturgesBins,Or as toLegendItems,to as toTimestamp,ui as useChartSize,Bo as useClickOutside,ao as useDialogA11y,wr as useDropdownContext,Wd as useFocusItem,Rs as useKeyboardNavigation,Fo as usePositioning,Tv as useSidebar,Ge as useUILabels,Gn as useWizard};
|
|
32
|
+
`)}var Sw=60,Rw=40;function Bc(e,t){if(e.length===0)return e;let r=new Map;for(let g of e){let y=new Set;for(let b of g.fields)b.foreignKey&&y.add(b.foreignKey.tableId);r.set(g.id,y);}let n=new Map;for(let g of e)n.set(g.id,0);for(let[,g]of r)for(let y of g)n.has(y);for(let[g,y]of r)n.set(g,y.size);let o=[],a=[];for(let[g,y]of n)y===0&&a.push(g);for(;a.length>0;){let g=a.shift();o.push(g);for(let[y,b]of r)if(b.has(g)){let h=(n.get(y)??0)-1;n.set(y,h),h===0&&a.push(y);}}let s=new Set(o);for(let g of e)s.has(g.id)||(o.push(g.id),s.add(g.id));let l=new Map(e.map(g=>[g.id,g])),i=Math.max(1,Math.ceil(Math.sqrt(o.length))),c=0,d=0,u=0,f=0,m=[];for(let g of o){let y=l.get(g);if(!y)continue;let b=y.width??260,h=jn(y,t);m.push({...y,x:c,y:d}),f=Math.max(f,h),u++,u>=i?(u=0,c=0,d+=f+Rw,f=0):c+=b+Sw;}return m}var Wc={x:0,y:0,zoom:1},Vc=.1,Ew=.1,Lw=3,Mw=20,Iw=50;function Aw({value:e,defaultValue:t,onValueChange:r,fieldTypes:n=ps,onTableClick:o,onTableDoubleClick:a,onTableContextMenu:s,onFieldClick:l,onFieldDoubleClick:i,readOnly:c=false,disabled:d=false,draggableTables:u=true,panOnDrag:f=true,zoomOnWheel:m=true,editable:g=true,minZoom:y=Ew,maxZoom:b=Lw,snapToGrid:h=false,gridSize:x=Mw,showGrid:L=true,toolbar:C=true,legend:S=true,autoFit:v=false,className:R},N){let M=e!==void 0,[P,E]=useState(()=>t??{tables:[],relations:[],viewport:{...Wc}}),W=M?e:P,T=W.tables,O=W.relations,H=W.viewport??Wc,k=useRef(null),z=useRef(null),[A,I]=useState(null),[X,$]=useState(null),[K,D]=useState(null),[B,w]=useState(null),[G,q]=useState({width:0,height:0}),j=useRef([]),U=useRef(-1),F=useRef(false),_=useRef(H);_.current=H;let J=useRef(T);J.current=T;let ne=useRef(O);ne.current=O;let Y=useRef(h);Y.current=h;let ee=useRef(x);ee.current=x;let Z=useRef(g);Z.current=g;let ie=useCallback(te=>{if(F.current)return;let ue=j.current,me=U.current;j.current=ue.slice(0,me+1),j.current.push(te),j.current.length>Iw&&j.current.shift(),U.current=j.current.length-1;},[]),V=useCallback(te=>{if(M){let ue=te(e);ie(ue),r?.(ue);}else E(ue=>{let me=te(ue);return ie(me),r?.(me),me});},[M,e,r,ie]),oe=useRef(V);oe.current=V;let pe=useCallback(te=>{V(ue=>({...ue,viewport:te}));},[V]),Te=useRef(pe);Te.current=pe,useEffect(()=>{function te(ge){let xe=z.current;if(!xe)return;let Ye=k.current?.getBoundingClientRect();if(!Ye)return;let at=_.current;if(xe.type==="pan"){let et=ge.clientX-xe.startX,Fe=ge.clientY-xe.startY;Te.current({...at,x:xe.startVpX+et,y:xe.startVpY+Fe});}if(xe.type==="table"){let et=us(ge.clientX,ge.clientY,at,Ye),Fe=et.x-xe.offsetX,St=et.y-xe.offsetY;Y.current&&(Fe=Pc(Fe,ee.current),St=Pc(St,ee.current)),oe.current(je=>({...je,tables:je.tables.map(Mt=>Mt.id===xe.tableId?{...Mt,x:Fe,y:St}:Mt)}));}if(xe.type==="relation"){let et=us(ge.clientX,ge.clientY,at,Ye);z.current={...xe,currentX:et.x,currentY:et.y},D({fromX:xe.fromX,fromY:xe.fromY,currentX:et.x,currentY:et.y});}if(xe.type==="resize"){let et=(ge.clientX-xe.startX)/at.zoom,Fe=(ge.clientY-xe.startY)/at.zoom,St=180,je=80,Mt=Math.max(St,xe.startWidth+et),Gt=Math.max(je,xe.startHeight+Fe);oe.current(Tt=>({...Tt,tables:Tt.tables.map(gr=>gr.id===xe.tableId?{...gr,width:Mt,height:Gt}:gr)}));}}function ue(ge,xe,Ye,at){let et=_.current,Fe=us(ge,xe,et,Ye),St=1/0,je=null,Mt=null;for(let Gt of at){if(Gt.collapsed)continue;let Tt=Gt.fields.length;if(Tt===0)continue;let gr=Gt.width??260,qr=40+Tt*32+(Z.current?36:0),Zr=40;if(!(Fe.x<Gt.x-Zr||Fe.x>Gt.x+gr+Zr||Fe.y<Gt.y-Zr||Fe.y>Gt.y+qr+Zr))for(let Rr=0;Rr<Gt.fields.length;Rr++){let Vi=Gt.y+ba(Rr,!!Gt.notes),bs=Math.abs(Fe.y-Vi);bs<St&&(St=bs,je=Gt.id,Mt=Gt.fields[Rr].id);}}return je&&Mt?{tableId:je,fieldId:Mt}:null}function me(ge){let xe=z.current;if(xe){if(xe.type==="relation"){let Ye=k.current?.getBoundingClientRect();if(Ye){let at=ne.current,et=J.current,Fe=ue(ge.clientX,ge.clientY,Ye,et);if(Fe&&Fe.tableId!==xe.fromTableId&&!at.some(je=>je.from.tableId===xe.fromTableId&&je.from.fieldId===xe.fromFieldId&&je.to.tableId===Fe.tableId&&je.to.fieldId===Fe.fieldId)){let je=xe.fromTableId,Mt=xe.fromFieldId,Gt=Fe.tableId,Tt=Fe.fieldId;oe.current(gr=>({...gr,tables:gr.tables.map(qr=>qr.id===Gt?{...qr,fields:qr.fields.map(Zr=>Zr.id===Tt?{...Zr,foreignKey:{tableId:je,fieldId:Mt}}:Zr)}:qr),relations:[...gr.relations,{id:Tc(),from:{tableId:je,fieldId:Mt},to:{tableId:Gt,fieldId:Tt},cardinality:"1:n"}]}));}}D(null),w(null);}z.current=null;}}return document.addEventListener("mousemove",te),document.addEventListener("mouseup",me),()=>{document.removeEventListener("mousemove",te),document.removeEventListener("mouseup",me);}},[]);let ze=useCallback(te=>{if(!m||d)return;te.preventDefault();let ue=k.current?.getBoundingClientRect();if(!ue)return;let me=te.clientX-ue.left,ge=te.clientY-ue.top,xe=te.deltaY<0?1:-1,Ye=ds(H.zoom+xe*Vc,y,b),at=Ye/H.zoom;pe({x:me-(me-H.x)*at,y:ge-(ge-H.y)*at,zoom:Ye});},[m,d,H,y,b,pe]),ae=useCallback(te=>{if(d)return;let ue=te.target,me=ue.tagName,ge=me==="INPUT"||me==="SELECT"||me==="TEXTAREA"||me==="BUTTON";if(ue.closest("[data-resize-handle]"))return;let xe=ue.closest("[data-connection-side]");if(xe&&!ge){if(c)return;te.preventDefault();let at=xe.getAttribute("data-table-id"),et=xe.getAttribute("data-field-id");if(!at||!et)return;let Fe=T.find(Mt=>Mt.id===at);if(!Fe)return;let St=xe.getAttribute("data-connection-side"),je=mp(Fe,et,St);if(!je)return;z.current={type:"relation",fromTableId:at,fromFieldId:et,fromX:je.x,fromY:je.y,currentX:je.x,currentY:je.y},D({fromX:je.x,fromY:je.y,currentX:je.x,currentY:je.y}),w(at);return}let Ye=ue.closest("[data-table-id]");if(Ye){if(c)return;let at=Ye.getAttribute("data-table-id");if($(null),I(at),ge)return;if(u){let et=k.current?.getBoundingClientRect();if(!et)return;let Fe=T.find(je=>je.id===at);if(!Fe||Fe.locked)return;let St=us(te.clientX,te.clientY,H,et);z.current={type:"table",tableId:at,offsetX:St.x-Fe.x,offsetY:St.y-Fe.y};}return}I(null),$(null),f&&te.button===0&&(z.current={type:"pan",startX:te.clientX,startY:te.clientY,startVpX:H.x,startVpY:H.y});},[d,c,u,f,H,T]),re=useCallback(te=>{let ue=te.target;if(ue.closest("[data-connection-side]"))return null;let me=ue.closest("[data-table-id]");if(!me)return null;let ge=me.getAttribute("data-table-id");return T.find(xe=>xe.id===ge)??null},[T]),ce=useCallback(te=>{if(d)return;let ue=re(te);ue&&o&&o({table:ue,nativeEvent:te.nativeEvent});},[o,d,re]),De=useCallback(te=>{if(d)return;let ue=re(te);ue&&a&&a({table:ue,nativeEvent:te.nativeEvent});},[a,d,re]),Ge=useCallback(te=>{if(d)return;let ue=re(te);ue&&s&&(te.preventDefault(),s({table:ue,nativeEvent:te.nativeEvent}));},[s,d,re]),be=useCallback((te,ue)=>{d||(ue.stopPropagation(),I(null),$(te));},[d]),Me=useCallback((te,ue)=>{V(me=>({...me,relations:me.relations.map(ge=>ge.id===te?{...ge,cardinality:ue}:ge)}));},[V]),Re=U.current>0,He=U.current<j.current.length-1,Ee=useCallback(()=>{if(U.current<=0)return;F.current=true,U.current--;let te=j.current[U.current];M||E(te),r?.(te),F.current=false;},[M,r]),$e=useCallback(()=>{if(U.current>=j.current.length-1)return;F.current=true,U.current++;let te=j.current[U.current];M||E(te),r?.(te),F.current=false;},[M,r]),bt=useCallback(()=>Mi(W),[W]),Kt=useCallback(()=>{V(te=>({...te,tables:Bc(te.tables,g)}));},[V,g]),dr=useCallback((te,ue,me)=>{ue!==me&&V(ge=>({...ge,tables:ge.tables.map(xe=>{if(xe.id!==te)return xe;let Ye=[...xe.fields],[at]=Ye.splice(ue,1);return Ye.splice(me,0,at),{...xe,fields:Ye}})}));},[V]);useEffect(()=>{let te=k.current;if(!te)return;let ue=new ResizeObserver(me=>{for(let ge of me)q({width:ge.contentRect.width,height:ge.contentRect.height});});return ue.observe(te),()=>ue.disconnect()},[]);let _t=useRef(false);_t.current||(_t.current=true,j.current=[W],U.current=0);let Xt=useCallback(te=>{if(!(c||d)){if((te.ctrlKey||te.metaKey)&&te.key==="z"&&!te.shiftKey){te.preventDefault(),Ee();return}if((te.ctrlKey||te.metaKey)&&(te.key==="y"||te.key==="z"&&te.shiftKey)){te.preventDefault(),$e();return}if(te.key==="Delete"||te.key==="Backspace"){let ue=te.target;if(ue.tagName==="INPUT"||ue.tagName==="TEXTAREA"||ue.tagName==="SELECT")return;A&&(V(me=>({...me,tables:me.tables.filter(ge=>ge.id!==A),relations:me.relations.filter(ge=>ge.from.tableId!==A&&ge.to.tableId!==A)})),I(null)),X&&(V(me=>{let ge=me.relations.find(xe=>xe.id===X);return {...me,tables:ge?me.tables.map(xe=>xe.id===ge.to.tableId?{...xe,fields:xe.fields.map(Ye=>Ye.id===ge.to.fieldId?{...Ye,foreignKey:void 0}:Ye)}:xe):me.tables,relations:me.relations.filter(xe=>xe.id!==X)}}),$(null));}te.key==="Escape"&&(I(null),$(null));}},[c,d,A,X,V,Ee,$e]),Mr=useCallback((te,ue)=>{V(me=>({...me,tables:me.tables.map(ge=>ge.id===te?{...ge,name:ue}:ge)}));},[V]),Ce=useCallback((te,ue)=>{V(me=>({...me,tables:me.tables.map(ge=>ge.id===te?{...ge,notes:ue}:ge)}));},[V]),we=useCallback(te=>{V(ue=>({...ue,tables:ue.tables.map(me=>me.id===te?{...me,collapsed:!me.collapsed}:me)}));},[V]),se=useCallback((te,ue,me)=>{V(ge=>({...ge,tables:ge.tables.map(xe=>xe.id===te?{...xe,fields:xe.fields.map(Ye=>Ye.id===ue?{...Ye,...me}:Ye)}:xe)}));},[V]),de=useCallback(te=>{V(ue=>({...ue,tables:ue.tables.map(me=>me.id===te?{...me,fields:[...me.fields,Dc()]}:me)}));},[V]),ke=useCallback((te,ue)=>{V(me=>({...me,tables:me.tables.map(ge=>ge.id===te?{...ge,fields:ge.fields.filter(xe=>xe.id!==ue)}:ge),relations:me.relations.filter(ge=>!(ge.from.tableId===te&&ge.from.fieldId===ue)&&!(ge.to.tableId===te&&ge.to.fieldId===ue))}));},[V]),ve=useCallback((te,ue,me,ge,xe)=>{z.current={type:"resize",tableId:te,startX:ue,startY:me,startWidth:ge,startHeight:xe};},[]),Be=useCallback(()=>{let te=ds(H.zoom+Vc,y,b);pe({...H,zoom:te});},[H,y,b,pe]),Pe=useCallback(()=>{let te=ds(H.zoom-Vc,y,b);pe({...H,zoom:te});},[H,y,b,pe]),ye=useCallback(()=>{pe({...Wc});},[pe]),Xe=useCallback(()=>{let te=k.current?.getBoundingClientRect();if(!te)return;let ue=pp(T,te.width,te.height,g),me=ds(ue.zoom,y,b);pe({...ue,zoom:me});},[T,g,y,b,pe]),We=useCallback(te=>{V(ue=>({...ue,tables:[...ue.tables,te]}));},[V]),ut=useCallback(te=>{V(ue=>({...ue,tables:ue.tables.filter(me=>me.id!==te),relations:ue.relations.filter(me=>me.from.tableId!==te&&me.to.tableId!==te)}));},[V]),ot=useCallback((te,ue)=>{V(me=>({...me,tables:me.tables.map(ge=>ge.id===te?{...ge,fields:[...ge.fields,ue]}:ge)}));},[V]),Ke=useCallback((te,ue)=>{ke(te,ue);},[ke]),mt=useCallback(te=>{V(ue=>({...ue,tables:ue.tables.map(me=>me.id===te.to.tableId?{...me,fields:me.fields.map(ge=>ge.id===te.to.fieldId?{...ge,foreignKey:{tableId:te.from.tableId,fieldId:te.from.fieldId}}:ge)}:me),relations:[...ue.relations,te]}));},[V]),ct=useCallback(te=>{V(ue=>{let me=ue.relations.find(ge=>ge.id===te);return {...ue,tables:me?ue.tables.map(ge=>ge.id===me.to.tableId?{...ge,fields:ge.fields.map(xe=>xe.id===me.to.fieldId?{...xe,foreignKey:void 0}:xe)}:ge):ue.tables,relations:ue.relations.filter(ge=>ge.id!==te)}});},[V]),xr=useCallback(()=>JSON.stringify(W,null,2),[W]),Pt=useCallback(te=>{try{let ue=JSON.parse(te);ue&&Array.isArray(ue.tables)&&Array.isArray(ue.relations)&&V(()=>ue);}catch{}},[V]),jr=useCallback(()=>{let te=k.current?.getBoundingClientRect(),ue=_.current,me=100,ge=100;te&&(me=(te.width/2-ue.x)/ue.zoom-260/2,ge=(te.height/2-ue.y)/ue.zoom-60),We(Ec(me,ge));},[We]),hn=useCallback(()=>Mi(W),[W]);useImperativeHandle(N,()=>({zoomIn:Be,zoomOut:Pe,resetView:ye,fitToContent:Xe,addTable:We,removeTable:ut,addField:ot,removeField:Ke,addRelation:mt,removeRelation:ct,toJSON:xr,loadJSON:Pt,toSQL:hn}),[Be,Pe,ye,Xe,We,ut,ot,Ke,mt,ct,xr,Pt,hn]);let ar=useRef(false);useEffect(()=>{v&&!ar.current&&k.current&&(ar.current=true,Xe());},[v,Xe]);let sr=useMemo(()=>({transform:`translate(${H.x}px, ${H.y}px) scale(${H.zoom})`,transformOrigin:"0 0"}),[H.x,H.y,H.zoom]);return jsxs("div",{ref:k,"data-testid":"schema-editor",className:p("relative w-full overflow-hidden bg-gray-50 dark:bg-gray-900 select-none",d&&"opacity-60 pointer-events-none",R),tabIndex:0,onWheel:ze,onMouseDown:ae,onClick:ce,onDoubleClick:De,onContextMenu:Ge,onKeyDown:Xt,children:[L&&jsx(up,{gridSize:x,zoom:H.zoom}),C&&!c&&jsx(wp,{zoom:H.zoom,onZoomIn:Be,onZoomOut:Pe,onResetView:ye,onFitToContent:Xe,onAddTable:jr,onExportJSON:xr,onImportJSON:Pt,onExportSQL:bt,onUndo:Ee,onRedo:$e,canUndo:Re,canRedo:He,onAutoLayout:Kt,disabled:d}),S&&jsx(Np,{}),jsx(kp,{relations:O,tables:T,viewport:H,selectedRelationId:X,disabled:d||c,onRelationClick:be,onCardinalityChange:Me}),jsx("div",{style:sr,children:T.map(te=>jsx(vp,{table:te,selected:A===te.id,disabled:d||c,readOnly:c,editable:g,dropTarget:B!==null&&B!==te.id&&!te.collapsed,fieldTypes:n,onTableNameChange:Mr,onTableNotesChange:Ce,onToggleCollapse:we,onFieldChange:se,onFieldAdd:de,onFieldRemove:ke,onFieldReorder:dr,onResizeStart:ve},te.id))}),K&&jsxs("svg",{"data-testid":"drag-relation-overlay",style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",pointerEvents:"none",zIndex:1e3,overflow:"visible"},children:[jsx("path",{d:Pi(K.fromX*H.zoom+H.x,K.fromY*H.zoom+H.y,K.currentX*H.zoom+H.x,K.currentY*H.zoom+H.y),fill:"none",stroke:"#3b82f6",strokeWidth:2.5,strokeDasharray:"8 4"}),jsx("circle",{cx:K.fromX*H.zoom+H.x,cy:K.fromY*H.zoom+H.y,r:5,fill:"#3b82f6"}),jsx("circle",{cx:K.currentX*H.zoom+H.x,cy:K.currentY*H.zoom+H.y,r:4,fill:"#3b82f6",opacity:.6})]}),S&&G.width>0&&jsx(Sp,{tables:T,viewport:H,containerWidth:G.width,containerHeight:G.height,editable:g,onViewportChange:pe})]})}var Tp=forwardRef(Aw);Tp.displayName="SchemaEditor";var Dp="wf-grid-pattern",Ep=memo(function({gridSize:t,zoom:r}){let n=t*r;return jsxs("svg",{className:"absolute inset-0 w-full h-full pointer-events-none","aria-hidden":"true",children:[jsx("defs",{children:jsx("pattern",{id:Dp,width:n,height:n,patternUnits:"userSpaceOnUse",children:jsx("circle",{cx:1,cy:1,r:1,className:"fill-gray-300 dark:fill-gray-600"})})}),jsx("rect",{width:"100%",height:"100%",fill:`url(#${Dp})`})]})});function Oc(e,t){return Math.round(e/t)*t}function fs(e,t,r){return Math.min(r,Math.max(t,e))}function wa(e,t,r,n){return {x:(e-n.left-r.x)/r.zoom,y:(t-n.top-r.y)/r.zoom}}function gs(e,t="horizontal"){return t==="vertical"?e==="in"?"top":"bottom":e==="in"?"left":"right"}function Na(e,t,r,n="horizontal"){let o=e.width??180,a=e.height??60,s=t.side??gs(t.kind,n),l=r.filter(u=>(u.side??gs(u.kind,n))===s),i=l.findIndex(u=>u.id===t.id),c=l.length,d=c===1?.5:(i+1)/(c+1);switch(s){case "left":return {x:e.x-8,y:e.y+a*d};case "right":return {x:e.x+o+8,y:e.y+a*d};case "top":return {x:e.x+o*d,y:e.y-8};case "bottom":return {x:e.x+o*d,y:e.y+a+8}}}function Ai(e,t,r,n,o="horizontal"){if(o==="vertical"){let u=Math.abs(n-t),f=Math.max(50,u*.5),m=e,g=t+f,y=r,b=n-f;return `M ${e} ${t} C ${m} ${g}, ${y} ${b}, ${r} ${n}`}let a=Math.abs(r-e),s=Math.max(50,a*.5),l=e+s,i=t,c=r-s;return `M ${e} ${t} C ${l} ${i}, ${c} ${n}, ${r} ${n}`}function Lp(e,t,r,n=40){if(e.length===0)return {x:0,y:0,zoom:1};let o=1/0,a=1/0,s=-1/0,l=-1/0;for(let m of e){let g=m.width??180,y=m.height??60;o=Math.min(o,m.x),a=Math.min(a,m.y),s=Math.max(s,m.x+g),l=Math.max(l,m.y+y);}let i=s-o+n*2,c=l-a+n*2,d=Math.min(t/i,r/c,1),u=(t-i*d)/2-(o-n)*d,f=(r-c*d)/2-(a-n)*d;return {x:u,y:f,zoom:d}}var Ww=180,Vw=60,zi=12,Sa=28,$c=24,Ow=-8;function Fw(e,t,r,n,o="horizontal"){let a=e.side??gs(e.kind,o),s=t.filter(d=>(d.side??gs(d.kind,o))===a),l=s.findIndex(d=>d.id===e.id),i=s.length,c=i===1?.5:(l+1)/(i+1);switch(a){case "left":return {left:0,top:n*c};case "right":return {left:r,top:n*c};case "top":return {left:r*c,top:0};case "bottom":return {left:r*c,top:n}}}function $w({port:e,allPorts:t,nodeId:r,nodeWidth:n,nodeHeight:o,disabled:a,direction:s,onMouseUp:l}){let i=Fw(e,t,n,o,s),c=a||e.disabled,d=useCallback(u=>{c||(u.stopPropagation(),l(r,e.id));},[c,r,e.id,l]);return jsx("div",{"data-testid":`port-${r}-${e.id}`,"data-port-id":e.id,"data-port-kind":e.kind,"data-node-id":r,className:"absolute",style:{left:i.left-Sa/2,top:i.top-Sa/2,width:Sa,height:Sa,zIndex:20},onMouseUp:d,title:e.label??e.id,children:jsx("div",{className:p("absolute rounded-full border-2 transition-colors",c?"bg-gray-300 border-gray-400 cursor-not-allowed":e.kind==="in"?"bg-blue-400 border-blue-600 hover:bg-blue-300 cursor-crosshair":"bg-green-400 border-green-600 hover:bg-green-300 cursor-crosshair"),style:{width:zi,height:zi,left:(Sa-zi)/2,top:(Sa-zi)/2}})})}function _w(e,t,r){let n=e??"top-right",o=Ow,a=t*($c+4);switch(n){case "top-right":return {top:o,right:o-a};case "top-left":return {top:o,left:o+a};case "bottom-right":return {bottom:o,right:o-a};case "bottom-left":return {bottom:o,left:o+a}}}function Xw({action:e,nodeId:t,index:r,nodeWidth:n,disabled:o,onActionClick:a}){let s=useCallback(c=>{c.stopPropagation(),c.preventDefault(),!o&&a(t,e.id,c.nativeEvent);},[o,t,e.id,a]),l=useCallback(c=>{c.stopPropagation();},[]),i=_w(e.position,r);return jsx("button",{"data-testid":`action-${t}-${e.id}`,"data-action-id":e.id,"data-node-id":t,type:"button",className:p("absolute flex items-center justify-center rounded-full border shadow-sm transition-all","bg-white border-gray-300 text-gray-600","hover:bg-gray-50 hover:border-gray-400 hover:text-gray-800 hover:shadow-md","active:scale-95",o&&"opacity-50 cursor-not-allowed",!o&&"cursor-pointer",e.className),style:{...i,width:$c,height:$c,zIndex:30},onClick:s,onMouseDown:l,title:e.label,disabled:o,children:jsx("span",{className:"flex items-center justify-center w-3.5 h-3.5 [&>svg]:w-full [&>svg]:h-full",children:e.icon})})}var Mp=memo(function({node:t,registry:r,ports:n,selected:o,disabled:a,draggable:s,direction:l,onPortMouseUp:i,onActionClick:c}){let d=t.width??Ww,u=t.height??Vw,f=r.render({node:t,selected:o,disabled:a}),g=(typeof r.actions=="function"?r.actions(t):r.actions)?.filter(b=>typeof b.hidden=="function"?!b.hidden(t):!b.hidden),y=new Map;if(g)for(let b of g){let h=b.position??"top-right",x=y.get(h)??[];x.push(b),y.set(h,x);}return jsxs("div",{"data-testid":`workflow-node-${t.id}`,"data-node-id":t.id,className:p("absolute select-none group/node",s&&!t.locked&&"cursor-grab active:cursor-grabbing",t.locked&&"cursor-not-allowed opacity-75",o&&"ring-2 ring-blue-500 ring-offset-1 rounded-lg"),style:{left:t.x,top:t.y,width:d,height:u,overflow:"visible"},children:[f,n.map(b=>jsx($w,{port:b,allPorts:n,nodeId:t.id,nodeWidth:d,nodeHeight:u,disabled:a,direction:l,onMouseUp:i},b.id)),c&&y.size>0&&Array.from(y.entries()).map(([,b])=>b.map((h,x)=>jsx(Xw,{action:h,nodeId:t.id,index:x,nodeWidth:d,disabled:a,onActionClick:c},h.id)))]})});function Ip(e,t,r,n,o="horizontal"){let a=r.find(i=>i.id===e);if(!a)return null;let s=n(a),l=s.find(i=>i.id===t);return l?Na(a,l,s,o):null}var Kw=memo(function({edge:t,fromPos:r,toPos:n,selected:o,disabled:a,direction:s,onClick:l}){let i=Ai(r.x,r.y,n.x,n.y,s),c=(r.x+n.x)/2,d=(r.y+n.y)/2,u=useCallback(f=>{f.stopPropagation(),l(t.id,f);},[t.id,l]);return jsxs("g",{"data-testid":`workflow-edge-${t.id}`,children:[jsx("path",{d:i,fill:"none",stroke:"transparent",strokeWidth:16,className:"cursor-pointer",onClick:u}),jsx("path",{d:i,fill:"none",className:p("transition-colors pointer-events-none",a||t.disabled?"stroke-gray-300":o?"stroke-blue-500":"stroke-gray-400"),strokeWidth:o?2.5:2,strokeDasharray:t.disabled?"6 3":void 0}),t.label&&jsx("text",{x:c,y:d-8,textAnchor:"middle",className:"fill-gray-600 dark:fill-gray-300 text-xs pointer-events-none select-none",fontSize:11,children:t.label})]})}),zp=memo(function({edges:t,nodes:r,selectedEdgeId:n,disabled:o,direction:a,onEdgeClick:s,getNodePorts:l}){return jsx("svg",{className:"absolute pointer-events-none",style:{top:0,left:0,width:1,height:1,overflow:"visible"},children:jsx("g",{className:"pointer-events-auto",children:t.map(i=>{let c=Ip(i.from.nodeId,i.from.portId,r,l,a),d=Ip(i.to.nodeId,i.to.portId,r,l,a);return !c||!d?null:jsx(Kw,{edge:i,fromPos:c,toPos:d,selected:i.id===n,disabled:o,direction:a,onClick:s},i.id)})})})});var qw=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M10 5a1 1 0 011 1v3h3a1 1 0 110 2h-3v3a1 1 0 11-2 0v-3H6a1 1 0 110-2h3V6a1 1 0 011-1z",clipRule:"evenodd"})}),Zw=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M5 10a1 1 0 011-1h8a1 1 0 110 2H6a1 1 0 01-1-1z",clipRule:"evenodd"})}),Qw=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M4 2a1 1 0 011 1v2.101a7.002 7.002 0 0111.601 2.566 1 1 0 11-1.885.666A5.002 5.002 0 005.999 7H9a1 1 0 010 2H4a1 1 0 01-1-1V3a1 1 0 011-1zm.008 9.057a1 1 0 011.276.61A5.002 5.002 0 0014.001 13H11a1 1 0 110-2h5a1 1 0 011 1v5a1 1 0 11-2 0v-2.101a7.002 7.002 0 01-11.601-2.566 1 1 0 01.61-1.276z",clipRule:"evenodd"})}),Jw=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{d:"M3 4a1 1 0 011-1h4a1 1 0 010 2H6.414l2.293 2.293a1 1 0 01-1.414 1.414L5 6.414V8a1 1 0 01-2 0V4zm9 1a1 1 0 010-2h4a1 1 0 011 1v4a1 1 0 01-2 0V6.414l-2.293 2.293a1 1 0 11-1.414-1.414L13.586 5H12zm-9 7a1 1 0 012 0v1.586l2.293-2.293a1 1 0 011.414 1.414L6.414 15H8a1 1 0 010 2H4a1 1 0 01-1-1v-4zm13 0a1 1 0 01-2 0v-1.586l-2.293 2.293a1 1 0 01-1.414-1.414L13.586 9H12a1 1 0 010-2h4a1 1 0 011 1v4z"})}),e2=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M3 17a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zm3.293-7.707a1 1 0 011.414 0L9 10.586V3a1 1 0 112 0v7.586l1.293-1.293a1 1 0 111.414 1.414l-3 3a1 1 0 01-1.414 0l-3-3a1 1 0 010-1.414z",clipRule:"evenodd"})}),t2=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M3 17a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM6.293 6.707a1 1 0 010-1.414l3-3a1 1 0 011.414 0l3 3a1 1 0 01-1.414 1.414L11 5.414V13a1 1 0 11-2 0V5.414L7.707 6.707a1 1 0 01-1.414 0z",clipRule:"evenodd"})}),r2=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M10.293 3.293a1 1 0 011.414 0l6 6a1 1 0 010 1.414l-6 6a1 1 0 01-1.414-1.414L14.586 11H3a1 1 0 110-2h11.586l-4.293-4.293a1 1 0 010-1.414z",clipRule:"evenodd"})}),n2=()=>jsx("svg",{className:"w-4 h-4",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M16.707 10.293a1 1 0 010 1.414l-6 6a1 1 0 01-1.414 0l-6-6a1 1 0 111.414-1.414L9 14.586V3a1 1 0 012 0v11.586l4.293-4.293a1 1 0 011.414 0z",clipRule:"evenodd"})}),Hp=memo(function({zoom:t,direction:r,onDirectionChange:n,onZoomIn:o,onZoomOut:a,onResetView:s,onFitToContent:l,onExportJSON:i,onImportJSON:c,disabled:d,className:u}){let[f,m]=useState(false),[g,y]=useState(false),[b,h]=useState(""),[x,L]=useState(""),C=useCallback(()=>{h(i()),m(true);},[i]),S=useCallback(()=>{x.trim()&&(c(x.trim()),L(""),y(false));},[x,c]),v=useCallback(()=>{L(""),y(false);},[]),R=useCallback(()=>{m(false);},[]),N=Math.round(t*100);return jsxs(Fragment,{children:[jsxs("div",{className:p("absolute top-3 left-3 z-20 flex items-center gap-2 bg-white dark:bg-gray-800 rounded-lg shadow-md border border-gray-200 dark:border-gray-600 px-2 py-1.5",u),"data-testid":"workflow-toolbar",children:[jsxs(ra,{size:"sm",children:[jsx($t,{content:"Zoom in",size:"sm",position:"bottom",children:jsx(Ft,{icon:jsx(qw,{}),size:"sm",bgColor:"bg-gray-100 hover:bg-gray-200 dark:bg-gray-700 dark:hover:bg-gray-600",textColor:"text-gray-700 dark:text-gray-200",onClick:o,disabled:d,"aria-label":"Zoom in"})}),jsx($t,{content:"Zoom out",size:"sm",position:"bottom",children:jsx(Ft,{icon:jsx(Zw,{}),size:"sm",bgColor:"bg-gray-100 hover:bg-gray-200 dark:bg-gray-700 dark:hover:bg-gray-600",textColor:"text-gray-700 dark:text-gray-200",onClick:a,disabled:d,"aria-label":"Zoom out"})})]}),jsxs("span",{className:"text-xs font-mono text-gray-500 dark:text-gray-400 min-w-[3ch] text-center select-none",children:[N,"%"]}),jsx("div",{className:"w-px h-5 bg-gray-200 dark:bg-gray-600"}),jsx($t,{content:"Reset view",size:"sm",position:"bottom",children:jsx(Ft,{icon:jsx(Qw,{}),size:"sm",bgColor:"bg-gray-100 hover:bg-gray-200 dark:bg-gray-700 dark:hover:bg-gray-600",textColor:"text-gray-700 dark:text-gray-200",onClick:s,disabled:d,"aria-label":"Reset view"})}),jsx($t,{content:"Fit to content",size:"sm",position:"bottom",children:jsx(Ft,{icon:jsx(Jw,{}),size:"sm",bgColor:"bg-gray-100 hover:bg-gray-200 dark:bg-gray-700 dark:hover:bg-gray-600",textColor:"text-gray-700 dark:text-gray-200",onClick:l,disabled:d,"aria-label":"Fit to content"})}),n&&jsxs(Fragment,{children:[jsx("div",{className:"w-px h-5 bg-gray-200 dark:bg-gray-600"}),jsx($t,{content:r==="horizontal"?"Switch to vertical":"Switch to horizontal",size:"sm",position:"bottom",children:jsx(Ft,{icon:r==="horizontal"?jsx(r2,{}):jsx(n2,{}),size:"sm",bgColor:"bg-gray-100 hover:bg-gray-200 dark:bg-gray-700 dark:hover:bg-gray-600",textColor:"text-gray-700 dark:text-gray-200",onClick:()=>n(r==="horizontal"?"vertical":"horizontal"),disabled:d,"aria-label":r==="horizontal"?"Switch to vertical":"Switch to horizontal"})})]}),jsx("div",{className:"w-px h-5 bg-gray-200 dark:bg-gray-600"}),jsx($t,{content:"Export JSON",size:"sm",position:"bottom",children:jsx(Ft,{icon:jsx(e2,{}),size:"sm",bgColor:"bg-gray-100 hover:bg-gray-200 dark:bg-gray-700 dark:hover:bg-gray-600",textColor:"text-gray-700 dark:text-gray-200",onClick:C,disabled:d,"aria-label":"Export JSON"})}),jsx($t,{content:"Import JSON",size:"sm",position:"bottom",children:jsx(Ft,{icon:jsx(t2,{}),size:"sm",bgColor:"bg-gray-100 hover:bg-gray-200 dark:bg-gray-700 dark:hover:bg-gray-600",textColor:"text-gray-700 dark:text-gray-200",onClick:()=>y(true),disabled:d,"aria-label":"Import JSON"})})]}),jsx(An,{isOpen:f,onClose:R,title:"Export Workflow",description:"Copy the JSON below to save your workflow.",size:"lg",showSubmit:false,showCancel:true,cancelLabel:"Close",children:jsx(dn,{label:"Workflow JSON",multiline:true,rows:12,value:b,readOnly:true,size:"sm"})}),jsx(An,{isOpen:g,onClose:v,title:"Import Workflow",description:"Paste workflow JSON to load it into the editor.",size:"lg",showSubmit:true,submitLabel:"Import",onSubmitClick:S,showCancel:true,cancelLabel:"Cancel",children:jsx(dn,{label:"Workflow JSON",multiline:true,rows:12,value:x,onChange:M=>L(M.target.value),placeholder:'{"nodes": [], "edges": []}',size:"sm"})})]})});var _c={x:0,y:0,zoom:1},Xc=.1,s2=.1,i2=3,l2=20;function Op(){return `edge-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function c2({value:e,defaultValue:t,onValueChange:r,nodeRegistry:n,direction:o="horizontal",onDirectionChange:a,onNodeClick:s,onNodeDoubleClick:l,onNodeContextMenu:i,onNodeAction:c,readOnly:d=false,disabled:u=false,draggableNodes:f=true,connectable:m=true,selectable:g=true,multiSelect:y=false,panOnDrag:b=true,zoomOnWheel:h=true,minZoom:x=s2,maxZoom:L=i2,snapToGrid:C=false,gridSize:S=l2,showGrid:v=true,toolbar:R=true,autoFit:N=false,className:M},P){let E=e!==void 0,[W,T]=useState(()=>t??{nodes:[],edges:[],viewport:{..._c}}),O=E?e:W,H=O.nodes,k=O.edges,z=O.viewport??_c,A=useRef(null),I=useRef(null),[X,$]=useState(new Set),[K,D]=useState(null),[B,w]=useState(null),G=useRef(z);G.current=z;let q=useRef(H);q.current=H;let j=useRef(k);j.current=k;let U=useRef(C);U.current=C;let F=useRef(S);F.current=S;let _=useRef(n);_.current=n;let J=useRef(o);J.current=o;let ne=useCallback(se=>{E?r?.(se(e)):T(de=>{let ke=se(de);return r?.(ke),ke});},[E,e,r]),Y=useRef(ne);Y.current=ne;let ee=useCallback(se=>{ne(de=>({...de,viewport:se}));},[ne]),Z=useRef(ee);Z.current=ee;let ie=useCallback(se=>{let de=n[se.type];return de?.getPorts?de.getPorts(se):se.ports??[]},[n]),V=useRef(ie);V.current=ie;let oe=useCallback((se,de,ke)=>{let ve=q.current,Be=j.current,Pe=ve.find(ct=>ct.id===se.fromNodeId),ye=ve.find(ct=>ct.id===de);if(!Pe||!ye)return;let Xe=V.current(Pe),We=V.current(ye),ut=Xe.find(ct=>ct.id===se.fromPortId),ot=We.find(ct=>ct.id===ke);if(!ut||!ot||ot.kind!=="in"||se.fromNodeId===de)return;let Ke=_.current[Pe.type];if(Ke?.canConnect&&!Ke.canConnect({fromNode:Pe,toNode:ye,fromPort:ut,toPort:ot}))return;Be.some(ct=>ct.from.nodeId===se.fromNodeId&&ct.from.portId===se.fromPortId&&ct.to.nodeId===de&&ct.to.portId===ke)||Y.current(ct=>({...ct,edges:[...ct.edges,{id:Op(),from:{nodeId:se.fromNodeId,portId:se.fromPortId},to:{nodeId:de,portId:ke}}]}));},[]);useEffect(()=>{function se(ke){let ve=I.current;if(!ve)return;let Be=A.current?.getBoundingClientRect();if(!Be)return;let Pe=G.current;if(ve.type==="pan"){let ye=ke.clientX-ve.startX,Xe=ke.clientY-ve.startY;Z.current({...Pe,x:ve.startViewportX+ye,y:ve.startViewportY+Xe});}if(ve.type==="node"){let ye=wa(ke.clientX,ke.clientY,Pe,Be),Xe=ye.x-ve.offsetX,We=ye.y-ve.offsetY;U.current&&(Xe=Oc(Xe,F.current),We=Oc(We,F.current)),Y.current(ut=>({...ut,nodes:ut.nodes.map(ot=>ot.id===ve.nodeId?{...ot,x:Xe,y:We}:ot)}));}if(ve.type==="edge"){let ye=wa(ke.clientX,ke.clientY,Pe,Be);I.current={...ve,currentX:ye.x,currentY:ye.y},w({fromX:ve.fromX,fromY:ve.fromY,currentX:ye.x,currentY:ye.y});}}function de(ke){let ve=I.current;if(ve){if(ve.type==="edge"){let Be=A.current?.getBoundingClientRect();if(Be){let Pe=G.current,ye=wa(ke.clientX,ke.clientY,Pe,Be),Xe=25,We=q.current,ut=1/0,ot=null,Ke=null;for(let mt of We){let ct=V.current(mt);for(let xr of ct){if(xr.kind!=="in")continue;let Pt=Na(mt,xr,ct,J.current),jr=Math.sqrt((ye.x-Pt.x)**2+(ye.y-Pt.y)**2);jr<Xe&&jr<ut&&(ut=jr,ot=mt.id,Ke=xr.id);}}ot&&Ke&&oe(ve,ot,Ke);}w(null);}I.current=null;}}return document.addEventListener("mousemove",se),document.addEventListener("mouseup",de),()=>{document.removeEventListener("mousemove",se),document.removeEventListener("mouseup",de);}},[oe]);let pe=useCallback(se=>{if(!h||u)return;se.preventDefault();let de=A.current?.getBoundingClientRect();if(!de)return;let ke=se.clientX-de.left,ve=se.clientY-de.top,Be=se.deltaY<0?1:-1,Pe=fs(z.zoom+Be*Xc,x,L),ye=Pe/z.zoom;ee({x:ke-(ke-z.x)*ye,y:ve-(ve-z.y)*ye,zoom:Pe});},[h,u,z,x,L,ee]),Te=useCallback(se=>{if(u)return;let de=se.target;if(de.closest("[data-action-id]"))return;let ve=de.closest("[data-port-id]");if(ve){if(!m||d)return;se.preventDefault();let Pe=ve.getAttribute("data-node-id"),ye=ve.getAttribute("data-port-id"),Xe=ve.getAttribute("data-port-kind");if(!Pe||!ye||Xe!=="out")return;let We=H.find(mt=>mt.id===Pe);if(!We)return;let ut=ie(We),ot=ut.find(mt=>mt.id===ye);if(!ot)return;let Ke=Na(We,ot,ut,J.current);I.current={type:"edge",fromNodeId:Pe,fromPortId:ye,fromX:Ke.x,fromY:Ke.y,currentX:Ke.x,currentY:Ke.y},w({fromX:Ke.x,fromY:Ke.y,currentX:Ke.x,currentY:Ke.y});return}let Be=de.closest("[data-node-id]");if(Be){if(d)return;let Pe=Be.getAttribute("data-node-id");if(g&&(D(null),y&&se.shiftKey?$(ye=>{let Xe=new Set(ye);return Xe.has(Pe)?Xe.delete(Pe):Xe.add(Pe),Xe}):$(new Set([Pe]))),f){let ye=A.current?.getBoundingClientRect();if(!ye)return;let Xe=H.find(ut=>ut.id===Pe);if(!Xe||Xe.locked)return;let We=wa(se.clientX,se.clientY,z,ye);I.current={type:"node",nodeId:Pe,startX:We.x,startY:We.y,offsetX:We.x-Xe.x,offsetY:We.y-Xe.y};}return}g&&($(new Set),D(null)),b&&se.button===0&&(I.current={type:"pan",startX:se.clientX,startY:se.clientY,startViewportX:z.x,startViewportY:z.y});},[u,m,d,g,y,f,b,z,H,ie]),ze=useCallback(se=>{let de=I.current;if(!de||de.type!=="edge")return;let ke=A.current?.getBoundingClientRect();if(ke){let ve=wa(se.clientX,se.clientY,z,ke),Be=30,Pe=1/0,ye=null,Xe=null;for(let We of H){let ut=ie(We);for(let ot of ut){if(ot.kind!=="in")continue;let Ke=Na(We,ot,ut,J.current),mt=Math.sqrt((ve.x-Ke.x)**2+(ve.y-Ke.y)**2);mt<Be&&mt<Pe&&(Pe=mt,ye=We.id,Xe=ot.id);}}if(ye&&Xe){let We=de.fromNodeId,ut=de.fromPortId;We!==ye&&(k.some(Ke=>Ke.from.nodeId===We&&Ke.from.portId===ut&&Ke.to.nodeId===ye&&Ke.to.portId===Xe)||ne(Ke=>({...Ke,edges:[...Ke.edges,{id:Op(),from:{nodeId:We,portId:ut},to:{nodeId:ye,portId:Xe}}]})));}}I.current=null,w(null);},[z,H,k,ie,ne]),ae=useCallback((se,de)=>{let ke=I.current;!ke||ke.type!=="edge"||(oe(ke,se,de),I.current=null,w(null));},[oe]),re=useCallback(se=>{let de=se.target;if(de.closest("[data-port-id]")||de.closest("[data-action-id]"))return null;let Be=de.closest("[data-node-id]");if(!Be)return null;let Pe=Be.getAttribute("data-node-id");return H.find(ye=>ye.id===Pe)??null},[H]),ce=useCallback(se=>{if(!s||u)return;let de=re(se);de&&s({node:de,nativeEvent:se.nativeEvent});},[s,u,re]),De=useCallback(se=>{if(!l||u)return;let de=re(se);de&&l({node:de,nativeEvent:se.nativeEvent});},[l,u,re]),Ge=useCallback(se=>{if(!i||u)return;let de=re(se);de&&(se.preventDefault(),i({node:de,nativeEvent:se.nativeEvent}));},[i,u,re]),be=useCallback((se,de,ke)=>{if(!c||u)return;let ve=H.find(Be=>Be.id===se);ve&&c({node:ve,actionId:de,nativeEvent:ke});},[c,u,H]),Me=useCallback((se,de)=>{!g||u||(de.stopPropagation(),$(new Set),D(se));},[g,u]),Re=useCallback(se=>{d||u||((se.key==="Delete"||se.key==="Backspace")&&(X.size>0&&(ne(de=>({...de,nodes:de.nodes.filter(ke=>!X.has(ke.id)),edges:de.edges.filter(ke=>!X.has(ke.from.nodeId)&&!X.has(ke.to.nodeId))})),$(new Set)),K&&(ne(de=>({...de,edges:de.edges.filter(ke=>ke.id!==K)})),D(null))),se.key==="Escape"&&($(new Set),D(null)));},[d,u,X,K,ne]),He=useCallback(()=>{let se=fs(z.zoom+Xc,x,L);ee({...z,zoom:se});},[z,x,L,ee]),Ee=useCallback(()=>{let se=fs(z.zoom-Xc,x,L);ee({...z,zoom:se});},[z,x,L,ee]),$e=useCallback(()=>{ee({..._c});},[ee]),bt=useCallback(()=>{let se=A.current?.getBoundingClientRect();if(!se)return;let de=Lp(H,se.width,se.height),ke=fs(de.zoom,x,L);ee({...de,zoom:ke});},[H,x,L,ee]),Kt=useCallback(se=>{ne(de=>({...de,nodes:[...de.nodes,se]}));},[ne]),dr=useCallback(se=>{ne(de=>({...de,nodes:de.nodes.filter(ke=>ke.id!==se),edges:de.edges.filter(ke=>ke.from.nodeId!==se&&ke.to.nodeId!==se)}));},[ne]),_t=useCallback(()=>JSON.stringify(O,null,2),[O]),Xt=useCallback(se=>{try{let de=JSON.parse(se);de&&Array.isArray(de.nodes)&&Array.isArray(de.edges)&&ne(()=>de);}catch{}},[ne]);useImperativeHandle(P,()=>({zoomIn:He,zoomOut:Ee,resetView:$e,fitToContent:bt,addNode:Kt,removeNode:dr,toJSON:_t,loadJSON:Xt}),[He,Ee,$e,bt,Kt,dr,_t,Xt]);let Mr=useRef(false);useEffect(()=>{N&&!Mr.current&&A.current&&(Mr.current=true,bt());},[N,bt]);let Ce=useMemo(()=>{let se=new Map;for(let de of H)se.set(de.id,ie(de));return se},[H,ie]),we=useMemo(()=>({transform:`translate(${z.x}px, ${z.y}px) scale(${z.zoom})`,transformOrigin:"0 0"}),[z.x,z.y,z.zoom]);return jsxs("div",{ref:A,"data-testid":"workflow-editor",className:p("relative w-full overflow-hidden bg-gray-50 dark:bg-gray-900 select-none",u&&"opacity-60 pointer-events-none",M),tabIndex:0,onWheel:pe,onMouseDown:Te,onMouseUp:ze,onClick:ce,onDoubleClick:De,onContextMenu:Ge,onKeyDown:Re,children:[v&&jsx(Ep,{gridSize:S,zoom:z.zoom}),R&&!d&&jsx(Hp,{zoom:z.zoom,direction:o,onDirectionChange:a,onZoomIn:He,onZoomOut:Ee,onResetView:$e,onFitToContent:bt,onExportJSON:_t,onImportJSON:Xt,disabled:u}),jsxs("div",{style:we,children:[jsx(zp,{edges:k,nodes:H,selectedEdgeId:K,disabled:u||d,direction:o,onEdgeClick:Me,getNodePorts:se=>Ce.get(se.id)??[]}),H.map(se=>{let de=n[se.type];if(!de)return null;let ke=Ce.get(se.id)??[];return jsx(Mp,{node:se,registry:de,ports:ke,selected:X.has(se.id),disabled:u||d,draggable:f&&!d,direction:o,onPortMouseUp:ae,onActionClick:c?be:void 0},se.id)})]}),B&&jsxs("svg",{"data-testid":"drag-edge-overlay",style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",pointerEvents:"none",zIndex:1e3,overflow:"visible"},children:[jsx("path",{d:Ai(B.fromX*z.zoom+z.x,B.fromY*z.zoom+z.y,B.currentX*z.zoom+z.x,B.currentY*z.zoom+z.y,o),fill:"none",stroke:"#3b82f6",strokeWidth:2.5,strokeDasharray:"8 4"}),jsx("circle",{cx:B.fromX*z.zoom+z.x,cy:B.fromY*z.zoom+z.y,r:5,fill:"#3b82f6"}),jsx("circle",{cx:B.currentX*z.zoom+z.x,cy:B.currentY*z.zoom+z.y,r:4,fill:"#3b82f6",opacity:.6})]})]})}var Fp=forwardRef(c2);Fp.displayName="WorkflowEditor";var Gp=createContext(null);function eo(){let e=useContext(Gp);if(!e)throw new Error("useWizard and Wizard sub-components must be used within <Wizard>");return e}var Uc=(e,t,r)=>Math.max(t,Math.min(e,r)),Kc={sm:{circle:"h-7 w-7 text-xs",dot:"h-2.5 w-2.5",icon:"h-3.5 w-3.5",title:"text-xs",desc:"text-[11px]",connector:"h-0.5"},md:{circle:"h-9 w-9 text-sm",dot:"h-3 w-3",icon:"h-4 w-4",title:"text-sm",desc:"text-xs",connector:"h-0.5"},lg:{circle:"h-11 w-11 text-base",dot:"h-3.5 w-3.5",icon:"h-5 w-5",title:"text-base",desc:"text-sm",connector:"h-1"}},fn={primary:{solid:"bg-blue-600 text-white",bg:"bg-blue-600",text:"text-blue-600 dark:text-blue-400",ring:"focus-visible:ring-blue-500",ringSoft:"ring-blue-500/20"},secondary:{solid:"bg-gray-700 text-white",bg:"bg-gray-700",text:"text-gray-700 dark:text-gray-300",ring:"focus-visible:ring-gray-500",ringSoft:"ring-gray-500/20"},success:{solid:"bg-green-600 text-white",bg:"bg-green-600",text:"text-green-600 dark:text-green-400",ring:"focus-visible:ring-green-500",ringSoft:"ring-green-500/20"},warning:{solid:"bg-amber-500 text-white",bg:"bg-amber-500",text:"text-amber-600 dark:text-amber-400",ring:"focus-visible:ring-amber-500",ringSoft:"ring-amber-500/20"},error:{solid:"bg-red-600 text-white",bg:"bg-red-600",text:"text-red-600 dark:text-red-400",ring:"focus-visible:ring-red-500",ringSoft:"ring-red-500/20"}};function m2({className:e}){return jsx("svg",{className:e,viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:jsx("path",{fillRule:"evenodd",d:"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z",clipRule:"evenodd"})})}function Up({steps:e,step:t,defaultStep:r=0,onStepChange:n,onComplete:o,orientation:a="horizontal",variant:s="default",size:l="md",color:i="primary",linear:c=true,className:d,children:u}){let f=e.length,m=Math.max(0,f-1),g=t!==void 0,[y,b]=useState(()=>Uc(r,0,m)),h=Uc(g?t:y,0,m),[x,L]=useState(h);x<h&&L(h);let C=h<=0,S=h>=m,v=useCallback((T,O)=>{let H=Uc(T,0,m);H!==h&&(g||b(H),L(k=>Math.max(k,H)),n?.(H,{previous:h,direction:O}));},[h,g,m,n]),R=useCallback(T=>{let O=e[T];return !O||O.disabled?false:c?T<=x:true},[e,c,x]),N=useCallback(T=>{R(T)&&v(T,T>h?"jump":"backward");},[R,v,h]),M=useCallback(()=>{if(S){o?.();return}v(h+1,"forward");},[S,o,v,h]),P=useCallback(()=>{C||v(h-1,"backward");},[C,v,h]),E=useCallback(T=>e[T]?.error?"error":T===h?"active":T<h?"completed":"upcoming",[e,h]),W={steps:e,activeStep:h,totalSteps:f,isFirstStep:C,isLastStep:S,orientation:a,variant:s,size:l,color:i,linear:c,goToStep:N,goNext:M,goBack:P,getStepStatus:E,isStepAccessible:R};return jsx(Gp.Provider,{value:W,children:jsx("div",{className:p("flex w-full flex-col gap-6",d),"data-testid":"wizard","data-orientation":a,children:u})})}function _p({index:e,status:t}){let{variant:r,size:n,color:o,steps:a}=eo(),s=Kc[n],l=a[e];if(r==="dots"){let d=t==="upcoming"?"bg-gray-300 dark:bg-gray-600":t==="error"?"bg-red-600":fn[o].bg;return jsx("span",{className:p("shrink-0 rounded-full transition-colors",s.dot,d),"aria-hidden":"true"})}let i=t==="completed"?p(fn[o].solid,"border-transparent"):t==="active"?p(fn[o].solid,"border-transparent ring-4",fn[o].ringSoft):t==="error"?"border-transparent bg-red-600 text-white":"border-2 border-gray-300 bg-white text-gray-500 dark:border-gray-600 dark:bg-gray-800 dark:text-gray-400",c=t==="completed"?jsx(m2,{className:s.icon}):t==="error"?jsx("span",{className:"font-semibold leading-none",children:"!"}):l.icon??jsx("span",{className:"font-medium leading-none",children:e+1});return jsx("span",{className:p("flex shrink-0 items-center justify-center rounded-full transition-all",s.circle,i),"aria-hidden":"true",children:c})}function Xp({index:e,status:t}){let{steps:r,size:n,color:o,variant:a}=eo(),s=Kc[n],l=r[e],c=t==="active"?fn[o].text:t==="completed"?"text-gray-900 dark:text-gray-100":t==="error"?"text-red-600 dark:text-red-400":"text-gray-500 dark:text-gray-400";return jsxs("span",{className:"flex min-w-0 flex-col",children:[jsxs("span",{className:p("font-medium leading-tight",s.title,c),children:[a==="simple"&&jsxs("span",{className:"mr-1 tabular-nums",children:[e+1,"."]}),l.title,l.optional&&jsx("span",{className:"ml-1 text-xs font-normal text-gray-400 dark:text-gray-500",children:"(optional)"})]}),l.description&&jsx("span",{className:p("mt-0.5 text-gray-400 dark:text-gray-500",s.desc),children:l.description})]})}function Kp({className:e,hideConnector:t=false,hideLabels:r=false}){let n=eo(),{steps:o,orientation:a,size:s,variant:l,color:i,activeStep:c}=n,d=Kc[s],u=a==="vertical",f=l!=="simple";return jsx("ol",{className:p("flex w-full",u?"flex-col":"items-start",e),"data-testid":"wizard-steps","data-orientation":a,children:o.map((m,g)=>{let y=n.getStepStatus(g),b=g===c,h=n.isStepAccessible(g)&&!b,x=g===o.length-1,C=g<c?fn[i].bg:"bg-gray-200 dark:bg-gray-700";return u?jsx("li",{className:"flex","aria-current":b?"step":void 0,"data-status":y,"data-testid":"wizard-step",children:jsxs("button",{type:"button",disabled:!h,onClick:()=>n.goToStep(g),className:p("flex items-stretch gap-3 rounded-md text-left focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",fn[i].ring,h?"cursor-pointer":"cursor-default"),children:[jsxs("span",{className:"flex flex-col items-center",children:[f&&jsx(_p,{index:g,status:y}),!t&&!x&&jsx("span",{className:p("my-1 w-0.5 flex-1 rounded",C),"aria-hidden":"true"})]}),!r&&jsx("span",{className:p(x?"pb-0":"pb-6"),children:jsx(Xp,{index:g,status:y})})]})},m.id??g):jsxs("li",{className:p("flex items-center",!x&&"flex-1"),"aria-current":b?"step":void 0,"data-status":y,"data-testid":"wizard-step",children:[jsxs("button",{type:"button",disabled:!h,onClick:()=>n.goToStep(g),className:p("flex items-center gap-2.5 rounded-md focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",fn[i].ring,h?"cursor-pointer":"cursor-default"),children:[f&&jsx(_p,{index:g,status:y}),!r&&jsx(Xp,{index:g,status:y})]}),!t&&!x&&jsx("span",{className:p("mx-2 flex-1 rounded",d.connector,C),"aria-hidden":"true"})]},m.id??g)})})}function Yp({index:e,keepMounted:t=false,className:r,children:n}){let{activeStep:o}=eo(),a=e===o;return !a&&!t?null:jsx("div",{role:"tabpanel",hidden:!a,"data-testid":"wizard-panel","data-active":a,"data-step":e,className:p("w-full",r),children:n})}function jp({className:e,children:t}){let r=eo();return jsx("div",{className:p("w-full",e),"data-testid":"wizard-content",children:typeof t=="function"?t(r):t})}var qp="inline-flex cursor-pointer items-center justify-center gap-2 rounded-lg px-4 py-2 text-sm font-medium transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50";function Yc({children:e,label:t="Previous",className:r,onClick:n,disabled:o,...a}){let{goBack:s,isFirstStep:l}=eo();return jsx("button",{type:"button",onClick:c=>{n?.(c),c.defaultPrevented||s();},disabled:o??l,"data-testid":"wizard-previous",className:p(qp,"border border-gray-300 bg-white text-gray-700 hover:bg-gray-50 focus-visible:ring-gray-400 dark:border-gray-600 dark:bg-gray-800 dark:text-gray-200 dark:hover:bg-gray-700",r),...a,children:e??t})}function jc({children:e,label:t="Next",finishLabel:r="Finish",className:n,onClick:o,...a}){let{goNext:s,isLastStep:l,color:i}=eo();return jsx("button",{type:"button",onClick:d=>{o?.(d),d.defaultPrevented||s();},"data-testid":"wizard-next",className:p(qp,fn[i].solid,fn[i].ring,"hover:opacity-90",n),...a,children:e??(l?r:t)})}function Zp({className:e,children:t,align:r="between"}){let n={between:"justify-between",start:"justify-start",center:"justify-center",end:"justify-end"}[r];return jsx("div",{className:p("flex items-center gap-3",n,e),"data-testid":"wizard-actions",children:t??jsxs(Fragment,{children:[jsx(Yc,{}),jsx(jc,{})]})})}Up.displayName="Wizard";Kp.displayName="WizardSteps";Yp.displayName="WizardPanel";jp.displayName="WizardContent";Zp.displayName="WizardActions";Yc.displayName="WizardPrevious";jc.displayName="WizardNext";export{xg as Accordion,kg as AccordionContent,vg as AccordionItem,Cg as AccordionTrigger,ld as AdvanceDetachable,Gf as AreaChart,jf as Avatar,Vd as Badge,Xd as Banner,p0 as BarChart,Rh as BoxPlot,S0 as Breadcrumb,z0 as BulletChart,Ft as Button,ra as ButtonGroup,po as CHART_ALL_PAIRS_LIMIT,mo as CHART_DIVERGING_COLORS,Td as CHART_DIVERGING_DARK_STOPS,Rd as CHART_DIVERGING_NEUTRAL_INDEX,nl as CHART_DOWN_COLOR,Ds as CHART_MAX_COLOR_CLASSES,Ar as CHART_MUTED_COLOR,Ia as CHART_ORDINAL_COLORS,ol as CHART_ORDINAL_DARK_STOPS,Df as CHART_PALETTE_SIZE,Zi as CHART_PATTERNS,zf as CHART_POINT_BUDGET,tl as CHART_SEQUENTIAL_COLORS,Pd as CHART_SEQUENTIAL_DARK_STOPS,Ts as CHART_SERIES_COLORS,io as CHART_SURFACE_COLOR,rl as CHART_UP_COLOR,Nl as Calendar,Ah as CandlestickChart,Zd as Card,eu as CardBody,ou as CardDescription,tu as CardFooter,Jd as CardHeader,ru as CardImage,nu as CardTitle,rn as ChartAnnotationLayer,tt as ChartAxis,ao as ChartBrushLayer,xt as ChartContainer,fb as ChartExportButton,yb as ChartFacets,Cb as ChartFilterBar,Yt as ChartGrid,jt as ChartLegend,co as ChartPatternDefs,Tb as ChartPeriodPicker,Oa as ChartScaleLegend,Cf as ChartSyncProvider,Ot as ChartTableView,vt as ChartTooltip,Tr as ChartTooltipContent,Ka as Checkbox,Ru as CheckboxGroup,Pu as CheckboxGroupItem,li as Chip,Wo as CircularProgress,Ji as DEFAULT_CHART_PERIOD_PRESETS,gd as DEFAULT_CHART_WIDTH,ps as DEFAULT_FIELD_TYPES,Oy as DataGrid,Lu as Detachable,xx as DeviceMockup,Iu as Divider,Xu as Drawer,$s as Dropdown,em as DropdownCheckboxItem,Us as DropdownContent,Ks as DropdownItem,qu as DropdownLabel,om as DropdownRadioGroup,am as DropdownRadioItem,ju as DropdownSeparator,um as DropdownSubMenu,pm as DropdownSubMenuContent,mm as DropdownSubMenuTrigger,js as DropdownTrigger,Hb as DumbbellChart,Wu as FOCUSABLE_SELECTOR,Fx as FileSelector,ep as Footer,op as FooterBottom,rp as FooterColumn,np as FooterLink,tp as FooterSection,ap as FooterSocial,sp as FooterSocialLink,Ub as FunnelChart,ey as GanttChart,Cv as Header,iC as Heatmap,ym as HelpButton,du as INERT_IGNORE_ATTRIBUTE,_v as ImageUploader,vm as Indicator,dn as Input,Nm as Label,fC as LineChart,ac as MentionInput,An as Modal,sc as NumberInput,EC as Pagination,OC as PieChart,Mm as ProgressBar,Im as RadioButton,$k as ScatterChart,Tp as SchemaEditor,d1 as Select,b1 as Sidebar,x1 as SidebarContent,v1 as SidebarFooter,C1 as SidebarGroup,y1 as SidebarHeader,k1 as SidebarItem,w1 as SidebarSubMenu,N1 as SidebarToggle,Vm as Skeleton,Fm as Slider,xc as Sparkline,M1 as StatCard,A1 as StatCardGroup,yn as Table,xn as TableBody,qt as TableCell,vn as TableHeader,It as TableHeaderCell,Cn as TableRow,_m as Tabs,Ym as TabsContent,Xm as TabsList,Km as TabsTrigger,Zm as Toast,$t as Tooltip,$g as UILabelsProvider,dy as WaterfallChart,Bv as WithHelpButton,Up as Wizard,Zp as WizardActions,jp as WizardContent,jc as WizardNext,Yp as WizardPanel,Yc as WizardPrevious,Kp as WizardSteps,Fp as WorkflowEditor,Bc as autoLayoutTables,Fd as binEdges,gl as binValues,Sl as boxStats,kf as brushToPeriod,Jt as buildCartesianGeometry,p as cn,On as createCategoryLocator,Dc as createDefaultField,Ec as createDefaultTable,Go as createDivergingScale,Ma as createPeriod,kn as createPlotContext,za as createSequentialScale,Ls as decimateIndices,dl as decimatePath,dd as defaultUILabels,no as describeAnnotations,zl as downloadChartData,_o as endOfDay,Gs as findOwnedLayers,el as formatPeriodRange,ei as formatTimeTick,Fg as frenchUILabels,ms as generateFieldId,Tc as generateRelationId,Mi as generateSQL,gp as generateTableId,di as getFocusableElements,Lf as getOrdinalColor,Ps as getPattern,zr as getSeriesColor,Vt as getSeriesLabel,Ml as hideOthers,Vu as isElementVisible,Ou as isFocusable,Id as lttb,Fl as niceTimeTicks,Qi as patternBackground,lo as patternFill,Rs as patternId,xh as quantile,Fa as quantileSorted,Xo as rampColor,Pn as registerFloatingLayer,c0 as resetBarChartWarnings,Ab as resetDumbbellWarnings,xb as resetFacetWarnings,Bf as resetPointBudgetWarning,xd as resolvePeriodPreset,Br as resolveSeriesColor,bf as samePeriod,cl as sampleEvenly,wn as splitOverlay,$o as startOfDay,Od as sturgesBins,fu as toChartCsv,hu as toChartJson,Al as toChartRows,Gr as toLegendItems,ko as toTimestamp,so as useChartBrush,qi as useChartSize,uo as useChartSync,sa as useClickOutside,So as useDialogA11y,Dr as useDropdownContext,cu as useFocusItem,_s as useKeyboardNavigation,_n as usePositioning,p1 as useSidebar,Ve as useUILabels,eo as useWizard};
|