@chenpu17/cc-gw 0.11.0 → 0.13.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.
Files changed (54) hide show
  1. package/README.md +2 -0
  2. package/package.json +6 -6
  3. package/src/web/dist/assets/{About-BlnDjxRZ.js → About-BJbSQIDc.js} +1 -1
  4. package/src/web/dist/assets/{ApiKeys-Bx2Y7hWv.js → ApiKeys-C8I9ti-a.js} +1 -1
  5. package/src/web/dist/assets/{ConfirmDialog-BzQnNT7J.js → ConfirmDialog-BOe5HI56.js} +1 -1
  6. package/src/web/dist/assets/{Dashboard-DQ63EzZw.js → Dashboard-C7n9KzBy.js} +1 -1
  7. package/src/web/dist/assets/{DialogShell-iCyqEFRA.js → DialogShell-BbpG8sot.js} +1 -1
  8. package/src/web/dist/assets/{Events-DnzSzb94.js → Events-BGfmA69d.js} +1 -1
  9. package/src/web/dist/assets/{Help-B2NLJW2z.js → Help-DUrs56_n.js} +1 -1
  10. package/src/web/dist/assets/{Login-eevgp5s_.js → Login-Dxeq-BfV.js} +1 -1
  11. package/src/web/dist/assets/{Logs-BY5T_RIf.js → Logs-VRdCNMkl.js} +1 -1
  12. package/src/web/dist/assets/{PageSection-BE4JZURK.js → PageSection-Bv6dZZwN.js} +1 -1
  13. package/src/web/dist/assets/{PageState-BzdQq00f.js → PageState-U6DpaNu4.js} +1 -1
  14. package/src/web/dist/assets/{PageToolbar-xVyzEX46.js → PageToolbar-BnDacS2l.js} +1 -1
  15. package/src/web/dist/assets/ProvidersWorkbench-DOGrU9Xl.js +1 -0
  16. package/src/web/dist/assets/{Settings-KI4lKsOz.js → Settings-CGxWfI_h.js} +1 -1
  17. package/src/web/dist/assets/{Setup-BgMY-gpn.js → Setup-yKUdrXJQ.js} +1 -1
  18. package/src/web/dist/assets/{apiKeys-3Wl4kRDv.js → apiKeys-B-WRyKci.js} +1 -1
  19. package/src/web/dist/assets/{app-PTY3WlMQ.js → app-BnQl39hq.js} +4 -4
  20. package/src/web/dist/assets/{badge-DMgopDMC.js → badge-RZTsODn-.js} +1 -1
  21. package/src/web/dist/assets/{card-kh1_vqEo.js → card-DhuLMeO9.js} +1 -1
  22. package/src/web/dist/assets/{charts-core-BTTtAoo-.js → charts-core-DlIzYcw_.js} +1 -1
  23. package/src/web/dist/assets/{charts-engine-CFhx8nba.js → charts-engine-C14rMTiz.js} +1 -1
  24. package/src/web/dist/assets/{charts-react-BQP6-BFp.js → charts-react-Bz6GVFr3.js} +1 -1
  25. package/src/web/dist/assets/{disclosure-Dpus5Sms.js → disclosure-CJdf1-ap.js} +1 -1
  26. package/src/web/dist/assets/{gateway-CRzzn31H.js → gateway-DxCj_uok.js} +1 -1
  27. package/src/web/dist/assets/{global-D5dyWHqO.js → global-CJOj9WGx.js} +1 -1
  28. package/src/web/dist/assets/global-CWlBZlIY.css +1 -0
  29. package/src/web/dist/assets/{i18n-PeX9kBVO.js → i18n-Dp-o1LhZ.js} +1 -1
  30. package/src/web/dist/assets/{label-Dg8bOG83.js → label-Da-JMxO2.js} +1 -1
  31. package/src/web/dist/assets/{landing-DDnYbDDs.js → landing-BuuM1jg8.js} +1 -1
  32. package/src/web/dist/assets/{metric-card-DMOLvKiC.js → metric-card-B_6litu2.js} +1 -1
  33. package/src/web/dist/assets/package-CKkVmaOi.js +1 -0
  34. package/src/web/dist/assets/{popover-BPqySDlA.js → popover-JpUYyIhi.js} +1 -1
  35. package/src/web/dist/assets/{query-DZF7K6hv.js → query-DVc6ZTRQ.js} +1 -1
  36. package/src/web/dist/assets/{radix-Bux_1C5J.js → radix-B9EIjzyN.js} +1 -1
  37. package/src/web/dist/assets/{router-BoBrmro7.js → router-CUBM_FND.js} +1 -1
  38. package/src/web/dist/assets/{segmented-control-C1wXb26c.js → segmented-control-D80bc13p.js} +1 -1
  39. package/src/web/dist/assets/{select-BMTHg2Ox.js → select-BTwqvh0l.js} +1 -1
  40. package/src/web/dist/assets/{shared-DciW3SvI.js → shared-DHBfRHZV.js} +1 -1
  41. package/src/web/dist/assets/{switch-BjJJ5nhB.js → switch-CeKtgMDT.js} +1 -1
  42. package/src/web/dist/assets/{table-Cmf9Rq18.js → table-rPjqxS-f.js} +1 -1
  43. package/src/web/dist/assets/{tabs-kDNBpHZ8.js → tabs-DYNHHISl.js} +1 -1
  44. package/src/web/dist/assets/{useAppMutation-CSLeLocH.js → useAppMutation-Cix9n50u.js} +1 -1
  45. package/src/web/dist/assets/{useEventStream-BYg6oKvQ.js → useEventStream-CQTreYBE.js} +1 -1
  46. package/src/web/dist/assets/useProviderForm-CsPV2Cqr.js +1 -0
  47. package/src/web/dist/assets/{utils-C0ba36BP.js → utils-HY2ZFw0f.js} +1 -1
  48. package/src/web/dist/assets/{vendor-CITafuNQ.js → vendor-D2wC0h2o.js} +1 -1
  49. package/src/web/dist/index.html +8 -8
  50. package/src/web/dist/landing.html +5 -5
  51. package/src/web/dist/assets/ProvidersWorkbench-CSdS6Fhh.js +0 -1
  52. package/src/web/dist/assets/global-CjRN4Kqi.css +0 -1
  53. package/src/web/dist/assets/package-98UM-D4s.js +0 -1
  54. package/src/web/dist/assets/useProviderForm-ZwPM_4sh.js +0 -1
@@ -406,4 +406,4 @@ PERFORMANCE OF THIS SOFTWARE.
406
406
  To pick up a draggable item, press the space bar.
407
407
  While dragging, use the arrow keys to move the item.
408
408
  Press space again to drop the item in its new position, or press escape to cancel.
409
- `},G3={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was moved over droppable area "+n.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was dropped over droppable area "+n.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function Q3(e){let{announcements:t=G3,container:n,hiddenTextDescribedById:r,screenReaderInstructions:i=q3}=e;const{announce:s,announcement:o}=W3(),a=_a("DndLiveRegion"),[l,u]=S.useState(!1);if(S.useEffect(()=>{u(!0)},[]),H3(S.useMemo(()=>({onDragStart(f){let{active:d}=f;s(t.onDragStart({active:d}))},onDragMove(f){let{active:d,over:h}=f;t.onDragMove&&s(t.onDragMove({active:d,over:h}))},onDragOver(f){let{active:d,over:h}=f;s(t.onDragOver({active:d,over:h}))},onDragEnd(f){let{active:d,over:h}=f;s(t.onDragEnd({active:d,over:h}))},onDragCancel(f){let{active:d,over:h}=f;s(t.onDragCancel({active:d,over:h}))}}),[s,t])),!l)return null;const c=Je.createElement(Je.Fragment,null,Je.createElement(U3,{id:r,value:i.draggable}),Je.createElement($3,{id:a,announcement:o}));return n?Rr.createPortal(c,n):c}var Me;(function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"})(Me||(Me={}));function Fu(){}function mF(e,t){return S.useMemo(()=>({sensor:e,options:t??{}}),[e,t])}function gF(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return S.useMemo(()=>[...t].filter(r=>r!=null),[...t])}const on=Object.freeze({x:0,y:0});function Ok(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function Dk(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function X3(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function k0(e){let{left:t,top:n,height:r,width:i}=e;return[{x:t,y:n},{x:t+i,y:n},{x:t,y:n+r},{x:t+i,y:n+r}]}function Lk(e,t){if(!e||e.length===0)return null;const[n]=e;return n[t]}function C0(e,t,n){return t===void 0&&(t=e.left),n===void 0&&(n=e.top),{x:t+e.width*.5,y:n+e.height*.5}}const yF=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const i=C0(t,t.left,t.top),s=[];for(const o of r){const{id:a}=o,l=n.get(a);if(l){const u=Ok(C0(l),i);s.push({id:a,data:{droppableContainer:o,value:u}})}}return s.sort(Dk)},Y3=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const i=k0(t),s=[];for(const o of r){const{id:a}=o,l=n.get(a);if(l){const u=k0(l),c=i.reduce((d,h,p)=>d+Ok(u[p],h),0),f=Number((c/4).toFixed(4));s.push({id:a,data:{droppableContainer:o,value:f}})}}return s.sort(Dk)};function Z3(e,t){const n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),i=Math.min(t.left+t.width,e.left+e.width),s=Math.min(t.top+t.height,e.top+e.height),o=i-r,a=s-n;if(r<i&&n<s){const l=t.width*t.height,u=e.width*e.height,c=o*a,f=c/(l+u-c);return Number(f.toFixed(4))}return 0}const J3=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const i=[];for(const s of r){const{id:o}=s,a=n.get(o);if(a){const l=Z3(a,t);l>0&&i.push({id:o,data:{droppableContainer:s,value:l}})}}return i.sort(X3)};function eI(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function _k(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:on}function tI(e){return function(n){for(var r=arguments.length,i=new Array(r>1?r-1:0),s=1;s<r;s++)i[s-1]=arguments[s];return i.reduce((o,a)=>({...o,top:o.top+e*a.y,bottom:o.bottom+e*a.y,left:o.left+e*a.x,right:o.right+e*a.x}),{...n})}}const nI=tI(1);function rI(e){if(e.startsWith("matrix3d(")){const t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}else if(e.startsWith("matrix(")){const t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function iI(e,t,n){const r=rI(t);if(!r)return e;const{scaleX:i,scaleY:s,x:o,y:a}=r,l=e.left-o-(1-i)*parseFloat(n),u=e.top-a-(1-s)*parseFloat(n.slice(n.indexOf(" ")+1)),c=i?e.width/i:e.width,f=s?e.height/s:e.height;return{width:c,height:f,top:u,right:l+c,bottom:u+f,left:l}}const sI={ignoreTransform:!1};function Ys(e,t){t===void 0&&(t=sI);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:u,transformOrigin:c}=gt(e).getComputedStyle(e);u&&(n=iI(n,u,c))}const{top:r,left:i,width:s,height:o,bottom:a,right:l}=n;return{top:r,left:i,width:s,height:o,bottom:a,right:l}}function E0(e){return Ys(e,{ignoreTransform:!0})}function oI(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function aI(e,t){return t===void 0&&(t=gt(e).getComputedStyle(e)),t.position==="fixed"}function lI(e,t){t===void 0&&(t=gt(e).getComputedStyle(e));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(i=>{const s=t[i];return typeof s=="string"?n.test(s):!1})}function Sc(e,t){const n=[];function r(i){if(t!=null&&n.length>=t||!i)return n;if(Em(i)&&i.scrollingElement!=null&&!n.includes(i.scrollingElement))return n.push(i.scrollingElement),n;if(!Da(i)||Pk(i)||n.includes(i))return n;const s=gt(e).getComputedStyle(i);return i!==e&&lI(i,s)&&n.push(i),aI(i,s)?n:r(i.parentNode)}return e?r(e):n}function Ik(e){const[t]=Sc(e,1);return t??null}function _f(e){return!xc||!e?null:Qs(e)?e:Cm(e)?Em(e)||e===Xs(e).scrollingElement?window:Da(e)?e:null:null}function Nk(e){return Qs(e)?e.scrollX:e.scrollLeft}function Fk(e){return Qs(e)?e.scrollY:e.scrollTop}function Ah(e){return{x:Nk(e),y:Fk(e)}}var _e;(function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"})(_e||(_e={}));function Vk(e){return!xc||!e?!1:e===document.scrollingElement}function jk(e){const t={x:0,y:0},n=Vk(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height},i=e.scrollTop<=t.y,s=e.scrollLeft<=t.x,o=e.scrollTop>=r.y,a=e.scrollLeft>=r.x;return{isTop:i,isLeft:s,isBottom:o,isRight:a,maxScroll:r,minScroll:t}}const uI={x:.2,y:.2};function cI(e,t,n,r,i){let{top:s,left:o,right:a,bottom:l}=n;r===void 0&&(r=10),i===void 0&&(i=uI);const{isTop:u,isBottom:c,isLeft:f,isRight:d}=jk(e),h={x:0,y:0},p={x:0,y:0},m={height:t.height*i.y,width:t.width*i.x};return!u&&s<=t.top+m.height?(h.y=_e.Backward,p.y=r*Math.abs((t.top+m.height-s)/m.height)):!c&&l>=t.bottom-m.height&&(h.y=_e.Forward,p.y=r*Math.abs((t.bottom-m.height-l)/m.height)),!d&&a>=t.right-m.width?(h.x=_e.Forward,p.x=r*Math.abs((t.right-m.width-a)/m.width)):!f&&o<=t.left+m.width&&(h.x=_e.Backward,p.x=r*Math.abs((t.left+m.width-o)/m.width)),{direction:h,speed:p}}function fI(e){if(e===document.scrollingElement){const{innerWidth:s,innerHeight:o}=window;return{top:0,left:0,right:s,bottom:o,width:s,height:o}}const{top:t,left:n,right:r,bottom:i}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:i,width:e.clientWidth,height:e.clientHeight}}function zk(e){return e.reduce((t,n)=>hs(t,Ah(n)),on)}function dI(e){return e.reduce((t,n)=>t+Nk(n),0)}function hI(e){return e.reduce((t,n)=>t+Fk(n),0)}function pI(e,t){if(t===void 0&&(t=Ys),!e)return;const{top:n,left:r,bottom:i,right:s}=t(e);Ik(e)&&(i<=0||s<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}const mI=[["x",["left","right"],dI],["y",["top","bottom"],hI]];class Pm{constructor(t,n){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const r=Sc(n),i=zk(r);this.rect={...t},this.width=t.width,this.height=t.height;for(const[s,o,a]of mI)for(const l of o)Object.defineProperty(this,l,{get:()=>{const u=a(r),c=i[s]-u;return this.rect[l]+c},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class No{constructor(t){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(n=>{var r;return(r=this.target)==null?void 0:r.removeEventListener(...n)})},this.target=t}add(t,n,r){var i;(i=this.target)==null||i.addEventListener(t,n,r),this.listeners.push([t,n,r])}}function gI(e){const{EventTarget:t}=gt(e);return e instanceof t?e:Xs(e)}function If(e,t){const n=Math.abs(e.x),r=Math.abs(e.y);return typeof t=="number"?Math.sqrt(n**2+r**2)>t:"x"in t&&"y"in t?n>t.x&&r>t.y:"x"in t?n>t.x:"y"in t?r>t.y:!1}var _t;(function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"})(_t||(_t={}));function R0(e){e.preventDefault()}function yI(e){e.stopPropagation()}var ne;(function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter",e.Tab="Tab"})(ne||(ne={}));const Bk={start:[ne.Space,ne.Enter],cancel:[ne.Esc],end:[ne.Space,ne.Enter,ne.Tab]},vI=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case ne.Right:return{...n,x:n.x+25};case ne.Left:return{...n,x:n.x-25};case ne.Down:return{...n,y:n.y+25};case ne.Up:return{...n,y:n.y-25}}};class Uk{constructor(t){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=t;const{event:{target:n}}=t;this.props=t,this.listeners=new No(Xs(n)),this.windowListeners=new No(gt(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(_t.Resize,this.handleCancel),this.windowListeners.add(_t.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(_t.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:t,onStart:n}=this.props,r=t.node.current;r&&pI(r),n(on)}handleKeyDown(t){if(Tm(t)){const{active:n,context:r,options:i}=this.props,{keyboardCodes:s=Bk,coordinateGetter:o=vI,scrollBehavior:a="smooth"}=i,{code:l}=t;if(s.end.includes(l)){this.handleEnd(t);return}if(s.cancel.includes(l)){this.handleCancel(t);return}const{collisionRect:u}=r.current,c=u?{x:u.left,y:u.top}:on;this.referenceCoordinates||(this.referenceCoordinates=c);const f=o(t,{active:n,context:r.current,currentCoordinates:c});if(f){const d=ca(f,c),h={x:0,y:0},{scrollableAncestors:p}=r.current;for(const m of p){const v=t.code,{isTop:g,isRight:y,isLeft:w,isBottom:x,maxScroll:k,minScroll:R}=jk(m),E=fI(m),b={x:Math.min(v===ne.Right?E.right-E.width/2:E.right,Math.max(v===ne.Right?E.left:E.left+E.width/2,f.x)),y:Math.min(v===ne.Down?E.bottom-E.height/2:E.bottom,Math.max(v===ne.Down?E.top:E.top+E.height/2,f.y))},A=v===ne.Right&&!y||v===ne.Left&&!w,T=v===ne.Down&&!x||v===ne.Up&&!g;if(A&&b.x!==f.x){const D=m.scrollLeft+d.x,N=v===ne.Right&&D<=k.x||v===ne.Left&&D>=R.x;if(N&&!d.y){m.scrollTo({left:D,behavior:a});return}N?h.x=m.scrollLeft-D:h.x=v===ne.Right?m.scrollLeft-k.x:m.scrollLeft-R.x,h.x&&m.scrollBy({left:-h.x,behavior:a});break}else if(T&&b.y!==f.y){const D=m.scrollTop+d.y,N=v===ne.Down&&D<=k.y||v===ne.Up&&D>=R.y;if(N&&!d.x){m.scrollTo({top:D,behavior:a});return}N?h.y=m.scrollTop-D:h.y=v===ne.Down?m.scrollTop-k.y:m.scrollTop-R.y,h.y&&m.scrollBy({top:-h.y,behavior:a});break}}this.handleMove(t,hs(ca(f,this.referenceCoordinates),h))}}}handleMove(t,n){const{onMove:r}=this.props;t.preventDefault(),r(n)}handleEnd(t){const{onEnd:n}=this.props;t.preventDefault(),this.detach(),n()}handleCancel(t){const{onCancel:n}=this.props;t.preventDefault(),this.detach(),n()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}Uk.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:r=Bk,onActivation:i}=t,{active:s}=n;const{code:o}=e.nativeEvent;if(r.start.includes(o)){const a=s.activatorNode.current;return a&&e.target!==a?!1:(e.preventDefault(),i==null||i({event:e.nativeEvent}),!0)}return!1}}];function T0(e){return!!(e&&"distance"in e)}function P0(e){return!!(e&&"delay"in e)}class Am{constructor(t,n,r){var i;r===void 0&&(r=gI(t.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=t,this.events=n;const{event:s}=t,{target:o}=s;this.props=t,this.events=n,this.document=Xs(o),this.documentListeners=new No(this.document),this.listeners=new No(r),this.windowListeners=new No(gt(o)),this.initialCoordinates=(i=Ph(s))!=null?i:on,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:t,props:{options:{activationConstraint:n,bypassActivationConstraint:r}}}=this;if(this.listeners.add(t.move.name,this.handleMove,{passive:!1}),this.listeners.add(t.end.name,this.handleEnd),t.cancel&&this.listeners.add(t.cancel.name,this.handleCancel),this.windowListeners.add(_t.Resize,this.handleCancel),this.windowListeners.add(_t.DragStart,R0),this.windowListeners.add(_t.VisibilityChange,this.handleCancel),this.windowListeners.add(_t.ContextMenu,R0),this.documentListeners.add(_t.Keydown,this.handleKeydown),n){if(r!=null&&r({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(P0(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(T0(n)){this.handlePending(n);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(t,n){const{active:r,onPending:i}=this.props;i(r,t,this.initialCoordinates,n)}handleStart(){const{initialCoordinates:t}=this,{onStart:n}=this.props;t&&(this.activated=!0,this.documentListeners.add(_t.Click,yI,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(_t.SelectionChange,this.removeTextSelection),n(t))}handleMove(t){var n;const{activated:r,initialCoordinates:i,props:s}=this,{onMove:o,options:{activationConstraint:a}}=s;if(!i)return;const l=(n=Ph(t))!=null?n:on,u=ca(i,l);if(!r&&a){if(T0(a)){if(a.tolerance!=null&&If(u,a.tolerance))return this.handleCancel();if(If(u,a.distance))return this.handleStart()}if(P0(a)&&If(u,a.tolerance))return this.handleCancel();this.handlePending(a,u);return}t.cancelable&&t.preventDefault(),o(l)}handleEnd(){const{onAbort:t,onEnd:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleCancel(){const{onAbort:t,onCancel:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleKeydown(t){t.code===ne.Esc&&this.handleCancel()}removeTextSelection(){var t;(t=this.document.getSelection())==null||t.removeAllRanges()}}const wI={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class $k extends Am{constructor(t){const{event:n}=t,r=Xs(n.target);super(t,wI,r)}}$k.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r==null||r({event:n}),!0)}}];const xI={move:{name:"mousemove"},end:{name:"mouseup"}};var Mh;(function(e){e[e.RightClick=2]="RightClick"})(Mh||(Mh={}));class SI extends Am{constructor(t){super(t,xI,Xs(t.event.target))}}SI.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button===Mh.RightClick?!1:(r==null||r({event:n}),!0)}}];const Nf={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class bI extends Am{constructor(t){super(t,Nf)}static setup(){return window.addEventListener(Nf.move.name,t,{capture:!1,passive:!1}),function(){window.removeEventListener(Nf.move.name,t)};function t(){}}}bI.activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;const{touches:i}=n;return i.length>1?!1:(r==null||r({event:n}),!0)}}];var Fo;(function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"})(Fo||(Fo={}));var Vu;(function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"})(Vu||(Vu={}));function kI(e){let{acceleration:t,activator:n=Fo.Pointer,canScroll:r,draggingRect:i,enabled:s,interval:o=5,order:a=Vu.TreeOrder,pointerCoordinates:l,scrollableAncestors:u,scrollableAncestorRects:c,delta:f,threshold:d}=e;const h=EI({delta:f,disabled:!s}),[p,m]=F3(),v=S.useRef({x:0,y:0}),g=S.useRef({x:0,y:0}),y=S.useMemo(()=>{switch(n){case Fo.Pointer:return l?{top:l.y,bottom:l.y,left:l.x,right:l.x}:null;case Fo.DraggableRect:return i}},[n,i,l]),w=S.useRef(null),x=S.useCallback(()=>{const R=w.current;if(!R)return;const E=v.current.x*g.current.x,b=v.current.y*g.current.y;R.scrollBy(E,b)},[]),k=S.useMemo(()=>a===Vu.TreeOrder?[...u].reverse():u,[a,u]);S.useEffect(()=>{if(!s||!u.length||!y){m();return}for(const R of k){if((r==null?void 0:r(R))===!1)continue;const E=u.indexOf(R),b=c[E];if(!b)continue;const{direction:A,speed:T}=cI(R,b,y,t,d);for(const D of["x","y"])h[D][A[D]]||(T[D]=0,A[D]=0);if(T.x>0||T.y>0){m(),w.current=R,p(x,o),v.current=T,g.current=A;return}}v.current={x:0,y:0},g.current={x:0,y:0},m()},[t,x,r,m,s,o,JSON.stringify(y),JSON.stringify(h),p,u,k,c,JSON.stringify(d)])}const CI={x:{[_e.Backward]:!1,[_e.Forward]:!1},y:{[_e.Backward]:!1,[_e.Forward]:!1}};function EI(e){let{delta:t,disabled:n}=e;const r=Th(t);return La(i=>{if(n||!r||!i)return CI;const s={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[_e.Backward]:i.x[_e.Backward]||s.x===-1,[_e.Forward]:i.x[_e.Forward]||s.x===1},y:{[_e.Backward]:i.y[_e.Backward]||s.y===-1,[_e.Forward]:i.y[_e.Forward]||s.y===1}}},[n,t,r])}function RI(e,t){const n=t!=null?e.get(t):void 0,r=n?n.node.current:null;return La(i=>{var s;return t==null?null:(s=r??i)!=null?s:null},[r,t])}function TI(e,t){return S.useMemo(()=>e.reduce((n,r)=>{const{sensor:i}=r,s=i.activators.map(o=>({eventName:o.eventName,handler:t(o.handler,r)}));return[...n,...s]},[]),[e,t])}var fa;(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(fa||(fa={}));var Oh;(function(e){e.Optimized="optimized"})(Oh||(Oh={}));const A0=new Map;function PI(e,t){let{dragging:n,dependencies:r,config:i}=t;const[s,o]=S.useState(null),{frequency:a,measure:l,strategy:u}=i,c=S.useRef(e),f=v(),d=ua(f),h=S.useCallback(function(g){g===void 0&&(g=[]),!d.current&&o(y=>y===null?g:y.concat(g.filter(w=>!y.includes(w))))},[d]),p=S.useRef(null),m=La(g=>{if(f&&!n)return A0;if(!g||g===A0||c.current!==e||s!=null){const y=new Map;for(let w of e){if(!w)continue;if(s&&s.length>0&&!s.includes(w.id)&&w.rect.current){y.set(w.id,w.rect.current);continue}const x=w.node.current,k=x?new Pm(l(x),x):null;w.rect.current=k,k&&y.set(w.id,k)}return y}return g},[e,s,n,f,l]);return S.useEffect(()=>{c.current=e},[e]),S.useEffect(()=>{f||h()},[n,f]),S.useEffect(()=>{s&&s.length>0&&o(null)},[JSON.stringify(s)]),S.useEffect(()=>{f||typeof a!="number"||p.current!==null||(p.current=setTimeout(()=>{h(),p.current=null},a))},[a,f,h,...r]),{droppableRects:m,measureDroppableContainers:h,measuringScheduled:s!=null};function v(){switch(u){case fa.Always:return!1;case fa.BeforeDragging:return n;default:return!n}}}function Wk(e,t){return La(n=>e?n||(typeof t=="function"?t(e):e):null,[t,e])}function AI(e,t){return Wk(e,t)}function MI(e){let{callback:t,disabled:n}=e;const r=Rm(t),i=S.useMemo(()=>{if(n||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:s}=window;return new s(r)},[r,n]);return S.useEffect(()=>()=>i==null?void 0:i.disconnect(),[i]),i}function bc(e){let{callback:t,disabled:n}=e;const r=Rm(t),i=S.useMemo(()=>{if(n||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:s}=window;return new s(r)},[n]);return S.useEffect(()=>()=>i==null?void 0:i.disconnect(),[i]),i}function OI(e){return new Pm(Ys(e),e)}function M0(e,t,n){t===void 0&&(t=OI);const[r,i]=S.useState(null);function s(){i(l=>{if(!e)return null;if(e.isConnected===!1){var u;return(u=l??n)!=null?u:null}const c=t(e);return JSON.stringify(l)===JSON.stringify(c)?l:c})}const o=MI({callback(l){if(e)for(const u of l){const{type:c,target:f}=u;if(c==="childList"&&f instanceof HTMLElement&&f.contains(e)){s();break}}}}),a=bc({callback:s});return Rn(()=>{s(),e?(a==null||a.observe(e),o==null||o.observe(document.body,{childList:!0,subtree:!0})):(a==null||a.disconnect(),o==null||o.disconnect())},[e]),r}function DI(e){const t=Wk(e);return _k(e,t)}const O0=[];function LI(e){const t=S.useRef(e),n=La(r=>e?r&&r!==O0&&e&&t.current&&e.parentNode===t.current.parentNode?r:Sc(e):O0,[e]);return S.useEffect(()=>{t.current=e},[e]),n}function _I(e){const[t,n]=S.useState(null),r=S.useRef(e),i=S.useCallback(s=>{const o=_f(s.target);o&&n(a=>a?(a.set(o,Ah(o)),new Map(a)):null)},[]);return S.useEffect(()=>{const s=r.current;if(e!==s){o(s);const a=e.map(l=>{const u=_f(l);return u?(u.addEventListener("scroll",i,{passive:!0}),[u,Ah(u)]):null}).filter(l=>l!=null);n(a.length?new Map(a):null),r.current=e}return()=>{o(e),o(s)};function o(a){a.forEach(l=>{const u=_f(l);u==null||u.removeEventListener("scroll",i)})}},[i,e]),S.useMemo(()=>e.length?t?Array.from(t.values()).reduce((s,o)=>hs(s,o),on):zk(e):on,[e,t])}function D0(e,t){t===void 0&&(t=[]);const n=S.useRef(null);return S.useEffect(()=>{n.current=null},t),S.useEffect(()=>{const r=e!==on;r&&!n.current&&(n.current=e),!r&&n.current&&(n.current=null)},[e]),n.current?ca(e,n.current):on}function II(e){S.useEffect(()=>{if(!xc)return;const t=e.map(n=>{let{sensor:r}=n;return r.setup==null?void 0:r.setup()});return()=>{for(const n of t)n==null||n()}},e.map(t=>{let{sensor:n}=t;return n}))}function NI(e,t){return S.useMemo(()=>e.reduce((n,r)=>{let{eventName:i,handler:s}=r;return n[i]=o=>{s(o,t)},n},{}),[e,t])}function Hk(e){return S.useMemo(()=>e?oI(e):null,[e])}const L0=[];function FI(e,t){t===void 0&&(t=Ys);const[n]=e,r=Hk(n?gt(n):null),[i,s]=S.useState(L0);function o(){s(()=>e.length?e.map(l=>Vk(l)?r:new Pm(t(l),l)):L0)}const a=bc({callback:o});return Rn(()=>{a==null||a.disconnect(),o(),e.forEach(l=>a==null?void 0:a.observe(l))},[e]),i}function VI(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return Da(t)?t:e}function jI(e){let{measure:t}=e;const[n,r]=S.useState(null),i=S.useCallback(u=>{for(const{target:c}of u)if(Da(c)){r(f=>{const d=t(c);return f?{...f,width:d.width,height:d.height}:d});break}},[t]),s=bc({callback:i}),o=S.useCallback(u=>{const c=VI(u);s==null||s.disconnect(),c&&(s==null||s.observe(c)),r(c?t(c):null)},[t,s]),[a,l]=Iu(o);return S.useMemo(()=>({nodeRef:a,rect:n,setRef:l}),[n,a,l])}const zI=[{sensor:$k,options:{}},{sensor:Uk,options:{}}],BI={current:{}},Hl={draggable:{measure:E0},droppable:{measure:E0,strategy:fa.WhileDragging,frequency:Oh.Optimized},dragOverlay:{measure:Ys}};class Vo extends Map{get(t){var n;return t!=null&&(n=super.get(t))!=null?n:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(t=>{let{disabled:n}=t;return!n})}getNodeFor(t){var n,r;return(n=(r=this.get(t))==null?void 0:r.node.current)!=null?n:void 0}}const UI={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Vo,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:Fu},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:Hl,measureDroppableContainers:Fu,windowRect:null,measuringScheduled:!1},$I={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:Fu,draggableNodes:new Map,over:null,measureDroppableContainers:Fu},kc=S.createContext($I),Kk=S.createContext(UI);function WI(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Vo}}}function HI(e,t){switch(t.type){case Me.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case Me.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case Me.DragEnd:case Me.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case Me.RegisterDroppable:{const{element:n}=t,{id:r}=n,i=new Vo(e.droppable.containers);return i.set(r,n),{...e,droppable:{...e.droppable,containers:i}}}case Me.SetDroppableDisabled:{const{id:n,key:r,disabled:i}=t,s=e.droppable.containers.get(n);if(!s||r!==s.key)return e;const o=new Vo(e.droppable.containers);return o.set(n,{...s,disabled:i}),{...e,droppable:{...e.droppable,containers:o}}}case Me.UnregisterDroppable:{const{id:n,key:r}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;const s=new Vo(e.droppable.containers);return s.delete(n),{...e,droppable:{...e.droppable,containers:s}}}default:return e}}function KI(e){let{disabled:t}=e;const{active:n,activatorEvent:r,draggableNodes:i}=S.useContext(kc),s=Th(r),o=Th(n==null?void 0:n.id);return S.useEffect(()=>{if(!t&&!r&&s&&o!=null){if(!Tm(s)||document.activeElement===s.target)return;const a=i.get(o);if(!a)return;const{activatorNode:l,node:u}=a;if(!l.current&&!u.current)return;requestAnimationFrame(()=>{for(const c of[l.current,u.current]){if(!c)continue;const f=z3(c);if(f){f.focus();break}}})}},[r,t,i,o,s]),null}function qI(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((i,s)=>s({transform:i,...r}),n):n}function GI(e){return S.useMemo(()=>({draggable:{...Hl.draggable,...e==null?void 0:e.draggable},droppable:{...Hl.droppable,...e==null?void 0:e.droppable},dragOverlay:{...Hl.dragOverlay,...e==null?void 0:e.dragOverlay}}),[e==null?void 0:e.draggable,e==null?void 0:e.droppable,e==null?void 0:e.dragOverlay])}function QI(e){let{activeNode:t,measure:n,initialRect:r,config:i=!0}=e;const s=S.useRef(!1),{x:o,y:a}=typeof i=="boolean"?{x:i,y:i}:i;Rn(()=>{if(!o&&!a||!t){s.current=!1;return}if(s.current||!r)return;const u=t==null?void 0:t.node.current;if(!u||u.isConnected===!1)return;const c=n(u),f=_k(c,r);if(o||(f.x=0),a||(f.y=0),s.current=!0,Math.abs(f.x)>0||Math.abs(f.y)>0){const d=Ik(u);d&&d.scrollBy({top:f.y,left:f.x})}},[t,o,a,r,n])}const qk=S.createContext({...on,scaleX:1,scaleY:1});var dr;(function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"})(dr||(dr={}));const vF=S.memo(function(t){var n,r,i,s;let{id:o,accessibility:a,autoScroll:l=!0,children:u,sensors:c=zI,collisionDetection:f=J3,measuring:d,modifiers:h,...p}=t;const m=S.useReducer(HI,void 0,WI),[v,g]=m,[y,w]=K3(),[x,k]=S.useState(dr.Uninitialized),R=x===dr.Initialized,{draggable:{active:E,nodes:b,translate:A},droppable:{containers:T}}=v,D=E!=null?b.get(E):null,N=S.useRef({initial:null,translated:null}),H=S.useMemo(()=>{var $e;return E!=null?{id:E,data:($e=D==null?void 0:D.data)!=null?$e:BI,rect:N}:null},[E,D]),U=S.useRef(null),[X,V]=S.useState(null),[Q,M]=S.useState(null),_=ua(p,Object.values(p)),O=_a("DndDescribedBy",o),q=S.useMemo(()=>T.getEnabled(),[T]),G=GI(d),{droppableRects:be,measureDroppableContainers:pe,measuringScheduled:ae}=PI(q,{dragging:R,dependencies:[A.x,A.y],config:G.droppable}),ee=RI(b,E),st=S.useMemo(()=>Q?Ph(Q):null,[Q]),Wt=aC(),le=AI(ee,G.draggable.measure);QI({activeNode:E!=null?b.get(E):null,config:Wt.layoutShiftCompensation,initialRect:le,measure:G.draggable.measure});const ie=M0(ee,G.draggable.measure,le),ln=M0(ee?ee.parentElement:null),Xe=S.useRef({activatorEvent:null,active:null,activeNode:ee,collisionRect:null,collisions:null,droppableRects:be,draggableNodes:b,draggingNode:null,draggingNodeRect:null,droppableContainers:T,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),un=T.getNodeFor((n=Xe.current.over)==null?void 0:n.id),ot=jI({measure:G.dragOverlay.measure}),Di=(r=ot.nodeRef.current)!=null?r:ee,Li=R?(i=ot.rect)!=null?i:ie:null,Mm=!!(ot.nodeRef.current&&ot.rect),Om=DI(Mm?null:ie),Cc=Hk(Di?gt(Di):null),er=LI(R?un??ee:null),Ia=FI(er),Na=qI(h,{transform:{x:A.x-Om.x,y:A.y-Om.y,scaleX:1,scaleY:1},activatorEvent:Q,active:H,activeNodeRect:ie,containerNodeRect:ln,draggingNodeRect:Li,over:Xe.current.over,overlayNodeRect:ot.rect,scrollableAncestors:er,scrollableAncestorRects:Ia,windowRect:Cc}),Dm=st?hs(st,A):null,Lm=_I(er),eC=D0(Lm),tC=D0(Lm,[ie]),_i=hs(Na,eC),Ii=Li?nI(Li,Na):null,Zs=H&&Ii?f({active:H,collisionRect:Ii,droppableRects:be,droppableContainers:q,pointerCoordinates:Dm}):null,_m=Lk(Zs,"id"),[tr,Im]=S.useState(null),nC=Mm?Na:hs(Na,tC),rC=eI(nC,(s=tr==null?void 0:tr.rect)!=null?s:null,ie),Ec=S.useRef(null),Nm=S.useCallback(($e,yt)=>{let{sensor:vt,options:nr}=yt;if(U.current==null)return;const At=b.get(U.current);if(!At)return;const wt=$e.nativeEvent,cn=new vt({active:U.current,activeNode:At,event:wt,options:nr,context:Xe,onAbort(Ne){if(!b.get(Ne))return;const{onDragAbort:fn}=_.current,Pn={id:Ne};fn==null||fn(Pn),y({type:"onDragAbort",event:Pn})},onPending(Ne,rr,fn,Pn){if(!b.get(Ne))return;const{onDragPending:eo}=_.current,ir={id:Ne,constraint:rr,initialCoordinates:fn,offset:Pn};eo==null||eo(ir),y({type:"onDragPending",event:ir})},onStart(Ne){const rr=U.current;if(rr==null)return;const fn=b.get(rr);if(!fn)return;const{onDragStart:Pn}=_.current,Js={activatorEvent:wt,active:{id:rr,data:fn.data,rect:N}};Rr.unstable_batchedUpdates(()=>{Pn==null||Pn(Js),k(dr.Initializing),g({type:Me.DragStart,initialCoordinates:Ne,active:rr}),y({type:"onDragStart",event:Js}),V(Ec.current),M(wt)})},onMove(Ne){g({type:Me.DragMove,coordinates:Ne})},onEnd:Ni(Me.DragEnd),onCancel:Ni(Me.DragCancel)});Ec.current=cn;function Ni(Ne){return async function(){const{active:fn,collisions:Pn,over:Js,scrollAdjustedTranslate:eo}=Xe.current;let ir=null;if(fn&&eo){const{cancelDrop:to}=_.current;ir={activatorEvent:wt,active:fn,collisions:Pn,delta:eo,over:Js},Ne===Me.DragEnd&&typeof to=="function"&&await Promise.resolve(to(ir))&&(Ne=Me.DragCancel)}U.current=null,Rr.unstable_batchedUpdates(()=>{g({type:Ne}),k(dr.Uninitialized),Im(null),V(null),M(null),Ec.current=null;const to=Ne===Me.DragEnd?"onDragEnd":"onDragCancel";if(ir){const Rc=_.current[to];Rc==null||Rc(ir),y({type:to,event:ir})}})}}},[b]),iC=S.useCallback(($e,yt)=>(vt,nr)=>{const At=vt.nativeEvent,wt=b.get(nr);if(U.current!==null||!wt||At.dndKit||At.defaultPrevented)return;const cn={active:wt};$e(vt,yt.options,cn)===!0&&(At.dndKit={capturedBy:yt.sensor},U.current=nr,Nm(vt,yt))},[b,Nm]),Fm=TI(c,iC);II(c),Rn(()=>{ie&&x===dr.Initializing&&k(dr.Initialized)},[ie,x]),S.useEffect(()=>{const{onDragMove:$e}=_.current,{active:yt,activatorEvent:vt,collisions:nr,over:At}=Xe.current;if(!yt||!vt)return;const wt={active:yt,activatorEvent:vt,collisions:nr,delta:{x:_i.x,y:_i.y},over:At};Rr.unstable_batchedUpdates(()=>{$e==null||$e(wt),y({type:"onDragMove",event:wt})})},[_i.x,_i.y]),S.useEffect(()=>{const{active:$e,activatorEvent:yt,collisions:vt,droppableContainers:nr,scrollAdjustedTranslate:At}=Xe.current;if(!$e||U.current==null||!yt||!At)return;const{onDragOver:wt}=_.current,cn=nr.get(_m),Ni=cn&&cn.rect.current?{id:cn.id,rect:cn.rect.current,data:cn.data,disabled:cn.disabled}:null,Ne={active:$e,activatorEvent:yt,collisions:vt,delta:{x:At.x,y:At.y},over:Ni};Rr.unstable_batchedUpdates(()=>{Im(Ni),wt==null||wt(Ne),y({type:"onDragOver",event:Ne})})},[_m]),Rn(()=>{Xe.current={activatorEvent:Q,active:H,activeNode:ee,collisionRect:Ii,collisions:Zs,droppableRects:be,draggableNodes:b,draggingNode:Di,draggingNodeRect:Li,droppableContainers:T,over:tr,scrollableAncestors:er,scrollAdjustedTranslate:_i},N.current={initial:Li,translated:Ii}},[H,ee,Zs,Ii,b,Di,Li,be,T,tr,er,_i]),kI({...Wt,delta:A,draggingRect:Ii,pointerCoordinates:Dm,scrollableAncestors:er,scrollableAncestorRects:Ia});const sC=S.useMemo(()=>({active:H,activeNode:ee,activeNodeRect:ie,activatorEvent:Q,collisions:Zs,containerNodeRect:ln,dragOverlay:ot,draggableNodes:b,droppableContainers:T,droppableRects:be,over:tr,measureDroppableContainers:pe,scrollableAncestors:er,scrollableAncestorRects:Ia,measuringConfiguration:G,measuringScheduled:ae,windowRect:Cc}),[H,ee,ie,Q,Zs,ln,ot,b,T,be,tr,pe,er,Ia,G,ae,Cc]),oC=S.useMemo(()=>({activatorEvent:Q,activators:Fm,active:H,activeNodeRect:ie,ariaDescribedById:{draggable:O},dispatch:g,draggableNodes:b,over:tr,measureDroppableContainers:pe}),[Q,Fm,H,ie,g,O,b,tr,pe]);return Je.createElement(Mk.Provider,{value:w},Je.createElement(kc.Provider,{value:oC},Je.createElement(Kk.Provider,{value:sC},Je.createElement(qk.Provider,{value:rC},u)),Je.createElement(KI,{disabled:(a==null?void 0:a.restoreFocus)===!1})),Je.createElement(Q3,{...a,hiddenTextDescribedById:O}));function aC(){const $e=(X==null?void 0:X.autoScrollEnabled)===!1,yt=typeof l=="object"?l.enabled===!1:l===!1,vt=R&&!$e&&!yt;return typeof l=="object"?{...l,enabled:vt}:{enabled:vt}}}),XI=S.createContext(null),_0="button",YI="Draggable";function ZI(e){let{id:t,data:n,disabled:r=!1,attributes:i}=e;const s=_a(YI),{activators:o,activatorEvent:a,active:l,activeNodeRect:u,ariaDescribedById:c,draggableNodes:f,over:d}=S.useContext(kc),{role:h=_0,roleDescription:p="draggable",tabIndex:m=0}=i??{},v=(l==null?void 0:l.id)===t,g=S.useContext(v?qk:XI),[y,w]=Iu(),[x,k]=Iu(),R=NI(o,t),E=ua(n);Rn(()=>(f.set(t,{id:t,key:s,node:y,activatorNode:x,data:E}),()=>{const A=f.get(t);A&&A.key===s&&f.delete(t)}),[f,t]);const b=S.useMemo(()=>({role:h,tabIndex:m,"aria-disabled":r,"aria-pressed":v&&h===_0?!0:void 0,"aria-roledescription":p,"aria-describedby":c.draggable}),[r,h,m,v,p,c.draggable]);return{active:l,activatorEvent:a,activeNodeRect:u,attributes:b,isDragging:v,listeners:r?void 0:R,node:y,over:d,setNodeRef:w,setActivatorNodeRef:k,transform:g}}function JI(){return S.useContext(Kk)}const eN="Droppable",tN={timeout:25};function nN(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:i}=e;const s=_a(eN),{active:o,dispatch:a,over:l,measureDroppableContainers:u}=S.useContext(kc),c=S.useRef({disabled:n}),f=S.useRef(!1),d=S.useRef(null),h=S.useRef(null),{disabled:p,updateMeasurementsFor:m,timeout:v}={...tN,...i},g=ua(m??r),y=S.useCallback(()=>{if(!f.current){f.current=!0;return}h.current!=null&&clearTimeout(h.current),h.current=setTimeout(()=>{u(Array.isArray(g.current)?g.current:[g.current]),h.current=null},v)},[v]),w=bc({callback:y,disabled:p||!o}),x=S.useCallback((b,A)=>{w&&(A&&(w.unobserve(A),f.current=!1),b&&w.observe(b))},[w]),[k,R]=Iu(x),E=ua(t);return S.useEffect(()=>{!w||!k.current||(w.disconnect(),f.current=!1,w.observe(k.current))},[k,w]),S.useEffect(()=>(a({type:Me.RegisterDroppable,element:{id:r,key:s,disabled:n,node:k,rect:d,data:E}}),()=>a({type:Me.UnregisterDroppable,key:s,id:r})),[r]),S.useEffect(()=>{n!==c.current.disabled&&(a({type:Me.SetDroppableDisabled,id:r,key:s,disabled:n}),c.current.disabled=n)},[r,s,n,a]),{active:o,rect:d,isOver:(l==null?void 0:l.id)===r,node:k,over:l,setNodeRef:R}}function Gk(e,t,n){const r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function rN(e,t){return e.reduce((n,r,i)=>{const s=t.get(r);return s&&(n[i]=s),n},Array(e.length))}function ml(e){return e!==null&&e>=0}function iN(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function sN(e){return typeof e=="boolean"?{draggable:e,droppable:e}:e}const Qk=e=>{let{rects:t,activeIndex:n,overIndex:r,index:i}=e;const s=Gk(t,r,n),o=t[i],a=s[i];return!a||!o?null:{x:a.left-o.left,y:a.top-o.top,scaleX:a.width/o.width,scaleY:a.height/o.height}},gl={scaleX:1,scaleY:1},wF=e=>{var t;let{activeIndex:n,activeNodeRect:r,index:i,rects:s,overIndex:o}=e;const a=(t=s[n])!=null?t:r;if(!a)return null;if(i===n){const u=s[o];return u?{x:0,y:n<o?u.top+u.height-(a.top+a.height):u.top-a.top,...gl}:null}const l=oN(s,i,n);return i>n&&i<=o?{x:0,y:-a.height-l,...gl}:i<n&&i>=o?{x:0,y:a.height+l,...gl}:{x:0,y:0,...gl}};function oN(e,t,n){const r=e[t],i=e[t-1],s=e[t+1];return r?n<t?i?r.top-(i.top+i.height):s?s.top-(r.top+r.height):0:s?s.top-(r.top+r.height):i?r.top-(i.top+i.height):0:0}const Xk="Sortable",Yk=Je.createContext({activeIndex:-1,containerId:Xk,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:Qk,disabled:{draggable:!1,droppable:!1}});function xF(e){let{children:t,id:n,items:r,strategy:i=Qk,disabled:s=!1}=e;const{active:o,dragOverlay:a,droppableRects:l,over:u,measureDroppableContainers:c}=JI(),f=_a(Xk,n),d=a.rect!==null,h=S.useMemo(()=>r.map(R=>typeof R=="object"&&"id"in R?R.id:R),[r]),p=o!=null,m=o?h.indexOf(o.id):-1,v=u?h.indexOf(u.id):-1,g=S.useRef(h),y=!iN(h,g.current),w=v!==-1&&m===-1||y,x=sN(s);Rn(()=>{y&&p&&c(h)},[y,h,p,c]),S.useEffect(()=>{g.current=h},[h]);const k=S.useMemo(()=>({activeIndex:m,containerId:f,disabled:x,disableTransforms:w,items:h,overIndex:v,useDragOverlay:d,sortedRects:rN(h,l),strategy:i}),[m,f,x.draggable,x.droppable,w,h,v,l,d,i]);return Je.createElement(Yk.Provider,{value:k},t)}const aN=e=>{let{id:t,items:n,activeIndex:r,overIndex:i}=e;return Gk(n,r,i).indexOf(t)},lN=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:i,items:s,newIndex:o,previousItems:a,previousContainerId:l,transition:u}=e;return!u||!r||a!==s&&i===o?!1:n?!0:o!==i&&t===l},uN={duration:200,easing:"ease"},Zk="transform",cN=Nu.Transition.toString({property:Zk,duration:0,easing:"linear"}),fN={roleDescription:"sortable"};function dN(e){let{disabled:t,index:n,node:r,rect:i}=e;const[s,o]=S.useState(null),a=S.useRef(n);return Rn(()=>{if(!t&&n!==a.current&&r.current){const l=i.current;if(l){const u=Ys(r.current,{ignoreTransform:!0}),c={x:l.left-u.left,y:l.top-u.top,scaleX:l.width/u.width,scaleY:l.height/u.height};(c.x||c.y)&&o(c)}}n!==a.current&&(a.current=n)},[t,n,r,i]),S.useEffect(()=>{s&&o(null)},[s]),s}function SF(e){let{animateLayoutChanges:t=lN,attributes:n,disabled:r,data:i,getNewIndex:s=aN,id:o,strategy:a,resizeObserverConfig:l,transition:u=uN}=e;const{items:c,containerId:f,activeIndex:d,disabled:h,disableTransforms:p,sortedRects:m,overIndex:v,useDragOverlay:g,strategy:y}=S.useContext(Yk),w=hN(r,h),x=c.indexOf(o),k=S.useMemo(()=>({sortable:{containerId:f,index:x,items:c},...i}),[f,i,x,c]),R=S.useMemo(()=>c.slice(c.indexOf(o)),[c,o]),{rect:E,node:b,isOver:A,setNodeRef:T}=nN({id:o,data:k,disabled:w.droppable,resizeObserverConfig:{updateMeasurementsFor:R,...l}}),{active:D,activatorEvent:N,activeNodeRect:H,attributes:U,setNodeRef:X,listeners:V,isDragging:Q,over:M,setActivatorNodeRef:_,transform:O}=ZI({id:o,data:k,attributes:{...fN,...n},disabled:w.draggable}),q=N3(T,X),G=!!D,be=G&&!p&&ml(d)&&ml(v),pe=!g&&Q,ae=pe&&be?O:null,st=be?ae??(a??y)({rects:m,activeNodeRect:H,activeIndex:d,overIndex:v,index:x}):null,Wt=ml(d)&&ml(v)?s({id:o,items:c,activeIndex:d,overIndex:v}):x,le=D==null?void 0:D.id,ie=S.useRef({activeId:le,items:c,newIndex:Wt,containerId:f}),ln=c!==ie.current.items,Xe=t({active:D,containerId:f,isDragging:Q,isSorting:G,id:o,index:x,items:c,newIndex:ie.current.newIndex,previousItems:ie.current.items,previousContainerId:ie.current.containerId,transition:u,wasDragging:ie.current.activeId!=null}),un=dN({disabled:!Xe,index:x,node:b,rect:E});return S.useEffect(()=>{G&&ie.current.newIndex!==Wt&&(ie.current.newIndex=Wt),f!==ie.current.containerId&&(ie.current.containerId=f),c!==ie.current.items&&(ie.current.items=c)},[G,Wt,f,c]),S.useEffect(()=>{if(le===ie.current.activeId)return;if(le!=null&&ie.current.activeId==null){ie.current.activeId=le;return}const Di=setTimeout(()=>{ie.current.activeId=le},50);return()=>clearTimeout(Di)},[le]),{active:D,activeIndex:d,attributes:U,data:k,rect:E,index:x,newIndex:Wt,items:c,isOver:A,isSorting:G,isDragging:Q,listeners:V,node:b,overIndex:v,over:M,setNodeRef:q,setActivatorNodeRef:_,setDroppableNodeRef:T,setDraggableNodeRef:X,transform:un??st,transition:ot()};function ot(){if(un||ln&&ie.current.newIndex===x)return cN;if(!(pe&&!Tm(N)||!u)&&(G||Xe))return Nu.Transition.toString({...u,property:Zk})}}function hN(e,t){var n,r;return typeof e=="boolean"?{draggable:e,droppable:!1}:{draggable:(n=e==null?void 0:e.draggable)!=null?n:t.draggable,droppable:(r=e==null?void 0:e.droppable)!=null?r:t.droppable}}function ju(e){if(!e)return!1;const t=e.data.current;return!!(t&&"sortable"in t&&typeof t.sortable=="object"&&"containerId"in t.sortable&&"items"in t.sortable&&"index"in t.sortable)}const pN=[ne.Down,ne.Right,ne.Up,ne.Left],bF=(e,t)=>{let{context:{active:n,collisionRect:r,droppableRects:i,droppableContainers:s,over:o,scrollableAncestors:a}}=t;if(pN.includes(e.code)){if(e.preventDefault(),!n||!r)return;const l=[];s.getEnabled().forEach(f=>{if(!f||f!=null&&f.disabled)return;const d=i.get(f.id);if(d)switch(e.code){case ne.Down:r.top<d.top&&l.push(f);break;case ne.Up:r.top>d.top&&l.push(f);break;case ne.Left:r.left>d.left&&l.push(f);break;case ne.Right:r.left<d.left&&l.push(f);break}});const u=Y3({collisionRect:r,droppableRects:i,droppableContainers:l});let c=Lk(u,"id");if(c===(o==null?void 0:o.id)&&u.length>1&&(c=u[1].id),c!=null){const f=s.get(n.id),d=s.get(c),h=d?i.get(d.id):null,p=d==null?void 0:d.node.current;if(p&&h&&f&&d){const v=Sc(p).some((R,E)=>a[E]!==R),g=Jk(f,d),y=mN(f,d),w=v||!g?{x:0,y:0}:{x:y?r.width-h.width:0,y:y?r.height-h.height:0},x={x:h.left,y:h.top};return w.x&&w.y?x:ca(x,w)}}}};function Jk(e,t){return!ju(e)||!ju(t)?!1:e.data.current.sortable.containerId===t.data.current.sortable.containerId}function mN(e,t){return!ju(e)||!ju(t)||!Jk(e,t)?!1:e.data.current.sortable.index<t.data.current.sortable.index}export{r4 as $,es as A,Z4 as B,nF as C,vN as D,LM as E,aF as F,dF as G,pF as H,hF as I,kN as J,Re as K,VN as L,bN as M,R4 as N,e4 as O,m4 as P,SN as Q,yN as R,b4 as S,XN as T,x4 as U,j4 as V,C4 as W,u4 as X,Y4 as Y,o4 as Z,fF as _,Dt as a,l4 as a0,W4 as a1,M4 as a2,A4 as a3,S4 as a4,F4 as a5,wN as a6,O4 as a7,Um as a8,y4 as a9,K4 as aA,SF as aB,v4 as aC,Nu as aD,gF as aE,mF as aF,vF as aG,yF as aH,xF as aI,wF as aJ,bF as aK,Uk as aL,$k as aM,t4 as aN,g4 as aO,U4 as aP,h4 as aQ,k4 as aR,E4 as aS,p4 as aT,JN as aU,YN as aV,QN as aW,$4 as aX,V4 as aY,B4 as aZ,T4 as a_,H4 as aa,ZN as ab,n4 as ac,q4 as ad,D4 as ae,P4 as af,w4 as ag,N4 as ah,Q4 as ai,i4 as aj,c4 as ak,X4 as al,aP as am,GN as an,uF as ao,cF as ap,I4 as aq,a4 as ar,G4 as as,f4 as at,d4 as au,s4 as av,z4 as aw,Gk as ax,_4 as ay,L4 as az,cs as b,Ll as c,KN as d,XT as e,qN as f,HN as g,Nx as h,Ls as i,$n as j,$N as k,qT as l,WN as m,je as n,Rr as o,ac as p,Je as q,S as r,xN as s,eF as t,J4 as u,tF as v,rF as w,iF as x,oF as y,sF as z};
409
+ `},G3={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was moved over droppable area "+n.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was dropped over droppable area "+n.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function Q3(e){let{announcements:t=G3,container:n,hiddenTextDescribedById:r,screenReaderInstructions:i=q3}=e;const{announce:s,announcement:o}=W3(),a=_a("DndLiveRegion"),[l,u]=S.useState(!1);if(S.useEffect(()=>{u(!0)},[]),H3(S.useMemo(()=>({onDragStart(f){let{active:d}=f;s(t.onDragStart({active:d}))},onDragMove(f){let{active:d,over:h}=f;t.onDragMove&&s(t.onDragMove({active:d,over:h}))},onDragOver(f){let{active:d,over:h}=f;s(t.onDragOver({active:d,over:h}))},onDragEnd(f){let{active:d,over:h}=f;s(t.onDragEnd({active:d,over:h}))},onDragCancel(f){let{active:d,over:h}=f;s(t.onDragCancel({active:d,over:h}))}}),[s,t])),!l)return null;const c=Je.createElement(Je.Fragment,null,Je.createElement(U3,{id:r,value:i.draggable}),Je.createElement($3,{id:a,announcement:o}));return n?Rr.createPortal(c,n):c}var Me;(function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"})(Me||(Me={}));function Fu(){}function mF(e,t){return S.useMemo(()=>({sensor:e,options:t??{}}),[e,t])}function gF(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return S.useMemo(()=>[...t].filter(r=>r!=null),[...t])}const on=Object.freeze({x:0,y:0});function Ok(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function Dk(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function X3(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function k0(e){let{left:t,top:n,height:r,width:i}=e;return[{x:t,y:n},{x:t+i,y:n},{x:t,y:n+r},{x:t+i,y:n+r}]}function Lk(e,t){if(!e||e.length===0)return null;const[n]=e;return n[t]}function C0(e,t,n){return t===void 0&&(t=e.left),n===void 0&&(n=e.top),{x:t+e.width*.5,y:n+e.height*.5}}const yF=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const i=C0(t,t.left,t.top),s=[];for(const o of r){const{id:a}=o,l=n.get(a);if(l){const u=Ok(C0(l),i);s.push({id:a,data:{droppableContainer:o,value:u}})}}return s.sort(Dk)},Y3=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const i=k0(t),s=[];for(const o of r){const{id:a}=o,l=n.get(a);if(l){const u=k0(l),c=i.reduce((d,h,p)=>d+Ok(u[p],h),0),f=Number((c/4).toFixed(4));s.push({id:a,data:{droppableContainer:o,value:f}})}}return s.sort(Dk)};function Z3(e,t){const n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),i=Math.min(t.left+t.width,e.left+e.width),s=Math.min(t.top+t.height,e.top+e.height),o=i-r,a=s-n;if(r<i&&n<s){const l=t.width*t.height,u=e.width*e.height,c=o*a,f=c/(l+u-c);return Number(f.toFixed(4))}return 0}const J3=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const i=[];for(const s of r){const{id:o}=s,a=n.get(o);if(a){const l=Z3(a,t);l>0&&i.push({id:o,data:{droppableContainer:s,value:l}})}}return i.sort(X3)};function eI(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function _k(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:on}function tI(e){return function(n){for(var r=arguments.length,i=new Array(r>1?r-1:0),s=1;s<r;s++)i[s-1]=arguments[s];return i.reduce((o,a)=>({...o,top:o.top+e*a.y,bottom:o.bottom+e*a.y,left:o.left+e*a.x,right:o.right+e*a.x}),{...n})}}const nI=tI(1);function rI(e){if(e.startsWith("matrix3d(")){const t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}else if(e.startsWith("matrix(")){const t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function iI(e,t,n){const r=rI(t);if(!r)return e;const{scaleX:i,scaleY:s,x:o,y:a}=r,l=e.left-o-(1-i)*parseFloat(n),u=e.top-a-(1-s)*parseFloat(n.slice(n.indexOf(" ")+1)),c=i?e.width/i:e.width,f=s?e.height/s:e.height;return{width:c,height:f,top:u,right:l+c,bottom:u+f,left:l}}const sI={ignoreTransform:!1};function Ys(e,t){t===void 0&&(t=sI);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:u,transformOrigin:c}=gt(e).getComputedStyle(e);u&&(n=iI(n,u,c))}const{top:r,left:i,width:s,height:o,bottom:a,right:l}=n;return{top:r,left:i,width:s,height:o,bottom:a,right:l}}function E0(e){return Ys(e,{ignoreTransform:!0})}function oI(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function aI(e,t){return t===void 0&&(t=gt(e).getComputedStyle(e)),t.position==="fixed"}function lI(e,t){t===void 0&&(t=gt(e).getComputedStyle(e));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(i=>{const s=t[i];return typeof s=="string"?n.test(s):!1})}function Sc(e,t){const n=[];function r(i){if(t!=null&&n.length>=t||!i)return n;if(Em(i)&&i.scrollingElement!=null&&!n.includes(i.scrollingElement))return n.push(i.scrollingElement),n;if(!Da(i)||Pk(i)||n.includes(i))return n;const s=gt(e).getComputedStyle(i);return i!==e&&lI(i,s)&&n.push(i),aI(i,s)?n:r(i.parentNode)}return e?r(e):n}function Ik(e){const[t]=Sc(e,1);return t??null}function _f(e){return!xc||!e?null:Qs(e)?e:Cm(e)?Em(e)||e===Xs(e).scrollingElement?window:Da(e)?e:null:null}function Nk(e){return Qs(e)?e.scrollX:e.scrollLeft}function Fk(e){return Qs(e)?e.scrollY:e.scrollTop}function Ah(e){return{x:Nk(e),y:Fk(e)}}var _e;(function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"})(_e||(_e={}));function Vk(e){return!xc||!e?!1:e===document.scrollingElement}function jk(e){const t={x:0,y:0},n=Vk(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height},i=e.scrollTop<=t.y,s=e.scrollLeft<=t.x,o=e.scrollTop>=r.y,a=e.scrollLeft>=r.x;return{isTop:i,isLeft:s,isBottom:o,isRight:a,maxScroll:r,minScroll:t}}const uI={x:.2,y:.2};function cI(e,t,n,r,i){let{top:s,left:o,right:a,bottom:l}=n;r===void 0&&(r=10),i===void 0&&(i=uI);const{isTop:u,isBottom:c,isLeft:f,isRight:d}=jk(e),h={x:0,y:0},p={x:0,y:0},m={height:t.height*i.y,width:t.width*i.x};return!u&&s<=t.top+m.height?(h.y=_e.Backward,p.y=r*Math.abs((t.top+m.height-s)/m.height)):!c&&l>=t.bottom-m.height&&(h.y=_e.Forward,p.y=r*Math.abs((t.bottom-m.height-l)/m.height)),!d&&a>=t.right-m.width?(h.x=_e.Forward,p.x=r*Math.abs((t.right-m.width-a)/m.width)):!f&&o<=t.left+m.width&&(h.x=_e.Backward,p.x=r*Math.abs((t.left+m.width-o)/m.width)),{direction:h,speed:p}}function fI(e){if(e===document.scrollingElement){const{innerWidth:s,innerHeight:o}=window;return{top:0,left:0,right:s,bottom:o,width:s,height:o}}const{top:t,left:n,right:r,bottom:i}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:i,width:e.clientWidth,height:e.clientHeight}}function zk(e){return e.reduce((t,n)=>hs(t,Ah(n)),on)}function dI(e){return e.reduce((t,n)=>t+Nk(n),0)}function hI(e){return e.reduce((t,n)=>t+Fk(n),0)}function pI(e,t){if(t===void 0&&(t=Ys),!e)return;const{top:n,left:r,bottom:i,right:s}=t(e);Ik(e)&&(i<=0||s<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}const mI=[["x",["left","right"],dI],["y",["top","bottom"],hI]];class Pm{constructor(t,n){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const r=Sc(n),i=zk(r);this.rect={...t},this.width=t.width,this.height=t.height;for(const[s,o,a]of mI)for(const l of o)Object.defineProperty(this,l,{get:()=>{const u=a(r),c=i[s]-u;return this.rect[l]+c},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class No{constructor(t){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(n=>{var r;return(r=this.target)==null?void 0:r.removeEventListener(...n)})},this.target=t}add(t,n,r){var i;(i=this.target)==null||i.addEventListener(t,n,r),this.listeners.push([t,n,r])}}function gI(e){const{EventTarget:t}=gt(e);return e instanceof t?e:Xs(e)}function If(e,t){const n=Math.abs(e.x),r=Math.abs(e.y);return typeof t=="number"?Math.sqrt(n**2+r**2)>t:"x"in t&&"y"in t?n>t.x&&r>t.y:"x"in t?n>t.x:"y"in t?r>t.y:!1}var _t;(function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"})(_t||(_t={}));function R0(e){e.preventDefault()}function yI(e){e.stopPropagation()}var ne;(function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter",e.Tab="Tab"})(ne||(ne={}));const Bk={start:[ne.Space,ne.Enter],cancel:[ne.Esc],end:[ne.Space,ne.Enter,ne.Tab]},vI=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case ne.Right:return{...n,x:n.x+25};case ne.Left:return{...n,x:n.x-25};case ne.Down:return{...n,y:n.y+25};case ne.Up:return{...n,y:n.y-25}}};class Uk{constructor(t){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=t;const{event:{target:n}}=t;this.props=t,this.listeners=new No(Xs(n)),this.windowListeners=new No(gt(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(_t.Resize,this.handleCancel),this.windowListeners.add(_t.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(_t.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:t,onStart:n}=this.props,r=t.node.current;r&&pI(r),n(on)}handleKeyDown(t){if(Tm(t)){const{active:n,context:r,options:i}=this.props,{keyboardCodes:s=Bk,coordinateGetter:o=vI,scrollBehavior:a="smooth"}=i,{code:l}=t;if(s.end.includes(l)){this.handleEnd(t);return}if(s.cancel.includes(l)){this.handleCancel(t);return}const{collisionRect:u}=r.current,c=u?{x:u.left,y:u.top}:on;this.referenceCoordinates||(this.referenceCoordinates=c);const f=o(t,{active:n,context:r.current,currentCoordinates:c});if(f){const d=ca(f,c),h={x:0,y:0},{scrollableAncestors:p}=r.current;for(const m of p){const v=t.code,{isTop:g,isRight:y,isLeft:w,isBottom:x,maxScroll:k,minScroll:R}=jk(m),E=fI(m),b={x:Math.min(v===ne.Right?E.right-E.width/2:E.right,Math.max(v===ne.Right?E.left:E.left+E.width/2,f.x)),y:Math.min(v===ne.Down?E.bottom-E.height/2:E.bottom,Math.max(v===ne.Down?E.top:E.top+E.height/2,f.y))},A=v===ne.Right&&!y||v===ne.Left&&!w,T=v===ne.Down&&!x||v===ne.Up&&!g;if(A&&b.x!==f.x){const D=m.scrollLeft+d.x,N=v===ne.Right&&D<=k.x||v===ne.Left&&D>=R.x;if(N&&!d.y){m.scrollTo({left:D,behavior:a});return}N?h.x=m.scrollLeft-D:h.x=v===ne.Right?m.scrollLeft-k.x:m.scrollLeft-R.x,h.x&&m.scrollBy({left:-h.x,behavior:a});break}else if(T&&b.y!==f.y){const D=m.scrollTop+d.y,N=v===ne.Down&&D<=k.y||v===ne.Up&&D>=R.y;if(N&&!d.x){m.scrollTo({top:D,behavior:a});return}N?h.y=m.scrollTop-D:h.y=v===ne.Down?m.scrollTop-k.y:m.scrollTop-R.y,h.y&&m.scrollBy({top:-h.y,behavior:a});break}}this.handleMove(t,hs(ca(f,this.referenceCoordinates),h))}}}handleMove(t,n){const{onMove:r}=this.props;t.preventDefault(),r(n)}handleEnd(t){const{onEnd:n}=this.props;t.preventDefault(),this.detach(),n()}handleCancel(t){const{onCancel:n}=this.props;t.preventDefault(),this.detach(),n()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}Uk.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:r=Bk,onActivation:i}=t,{active:s}=n;const{code:o}=e.nativeEvent;if(r.start.includes(o)){const a=s.activatorNode.current;return a&&e.target!==a?!1:(e.preventDefault(),i==null||i({event:e.nativeEvent}),!0)}return!1}}];function T0(e){return!!(e&&"distance"in e)}function P0(e){return!!(e&&"delay"in e)}class Am{constructor(t,n,r){var i;r===void 0&&(r=gI(t.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=t,this.events=n;const{event:s}=t,{target:o}=s;this.props=t,this.events=n,this.document=Xs(o),this.documentListeners=new No(this.document),this.listeners=new No(r),this.windowListeners=new No(gt(o)),this.initialCoordinates=(i=Ph(s))!=null?i:on,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:t,props:{options:{activationConstraint:n,bypassActivationConstraint:r}}}=this;if(this.listeners.add(t.move.name,this.handleMove,{passive:!1}),this.listeners.add(t.end.name,this.handleEnd),t.cancel&&this.listeners.add(t.cancel.name,this.handleCancel),this.windowListeners.add(_t.Resize,this.handleCancel),this.windowListeners.add(_t.DragStart,R0),this.windowListeners.add(_t.VisibilityChange,this.handleCancel),this.windowListeners.add(_t.ContextMenu,R0),this.documentListeners.add(_t.Keydown,this.handleKeydown),n){if(r!=null&&r({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(P0(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(T0(n)){this.handlePending(n);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(t,n){const{active:r,onPending:i}=this.props;i(r,t,this.initialCoordinates,n)}handleStart(){const{initialCoordinates:t}=this,{onStart:n}=this.props;t&&(this.activated=!0,this.documentListeners.add(_t.Click,yI,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(_t.SelectionChange,this.removeTextSelection),n(t))}handleMove(t){var n;const{activated:r,initialCoordinates:i,props:s}=this,{onMove:o,options:{activationConstraint:a}}=s;if(!i)return;const l=(n=Ph(t))!=null?n:on,u=ca(i,l);if(!r&&a){if(T0(a)){if(a.tolerance!=null&&If(u,a.tolerance))return this.handleCancel();if(If(u,a.distance))return this.handleStart()}if(P0(a)&&If(u,a.tolerance))return this.handleCancel();this.handlePending(a,u);return}t.cancelable&&t.preventDefault(),o(l)}handleEnd(){const{onAbort:t,onEnd:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleCancel(){const{onAbort:t,onCancel:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleKeydown(t){t.code===ne.Esc&&this.handleCancel()}removeTextSelection(){var t;(t=this.document.getSelection())==null||t.removeAllRanges()}}const wI={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class $k extends Am{constructor(t){const{event:n}=t,r=Xs(n.target);super(t,wI,r)}}$k.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r==null||r({event:n}),!0)}}];const xI={move:{name:"mousemove"},end:{name:"mouseup"}};var Mh;(function(e){e[e.RightClick=2]="RightClick"})(Mh||(Mh={}));class SI extends Am{constructor(t){super(t,xI,Xs(t.event.target))}}SI.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button===Mh.RightClick?!1:(r==null||r({event:n}),!0)}}];const Nf={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class bI extends Am{constructor(t){super(t,Nf)}static setup(){return window.addEventListener(Nf.move.name,t,{capture:!1,passive:!1}),function(){window.removeEventListener(Nf.move.name,t)};function t(){}}}bI.activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;const{touches:i}=n;return i.length>1?!1:(r==null||r({event:n}),!0)}}];var Fo;(function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"})(Fo||(Fo={}));var Vu;(function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"})(Vu||(Vu={}));function kI(e){let{acceleration:t,activator:n=Fo.Pointer,canScroll:r,draggingRect:i,enabled:s,interval:o=5,order:a=Vu.TreeOrder,pointerCoordinates:l,scrollableAncestors:u,scrollableAncestorRects:c,delta:f,threshold:d}=e;const h=EI({delta:f,disabled:!s}),[p,m]=F3(),v=S.useRef({x:0,y:0}),g=S.useRef({x:0,y:0}),y=S.useMemo(()=>{switch(n){case Fo.Pointer:return l?{top:l.y,bottom:l.y,left:l.x,right:l.x}:null;case Fo.DraggableRect:return i}},[n,i,l]),w=S.useRef(null),x=S.useCallback(()=>{const R=w.current;if(!R)return;const E=v.current.x*g.current.x,b=v.current.y*g.current.y;R.scrollBy(E,b)},[]),k=S.useMemo(()=>a===Vu.TreeOrder?[...u].reverse():u,[a,u]);S.useEffect(()=>{if(!s||!u.length||!y){m();return}for(const R of k){if((r==null?void 0:r(R))===!1)continue;const E=u.indexOf(R),b=c[E];if(!b)continue;const{direction:A,speed:T}=cI(R,b,y,t,d);for(const D of["x","y"])h[D][A[D]]||(T[D]=0,A[D]=0);if(T.x>0||T.y>0){m(),w.current=R,p(x,o),v.current=T,g.current=A;return}}v.current={x:0,y:0},g.current={x:0,y:0},m()},[t,x,r,m,s,o,JSON.stringify(y),JSON.stringify(h),p,u,k,c,JSON.stringify(d)])}const CI={x:{[_e.Backward]:!1,[_e.Forward]:!1},y:{[_e.Backward]:!1,[_e.Forward]:!1}};function EI(e){let{delta:t,disabled:n}=e;const r=Th(t);return La(i=>{if(n||!r||!i)return CI;const s={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[_e.Backward]:i.x[_e.Backward]||s.x===-1,[_e.Forward]:i.x[_e.Forward]||s.x===1},y:{[_e.Backward]:i.y[_e.Backward]||s.y===-1,[_e.Forward]:i.y[_e.Forward]||s.y===1}}},[n,t,r])}function RI(e,t){const n=t!=null?e.get(t):void 0,r=n?n.node.current:null;return La(i=>{var s;return t==null?null:(s=r??i)!=null?s:null},[r,t])}function TI(e,t){return S.useMemo(()=>e.reduce((n,r)=>{const{sensor:i}=r,s=i.activators.map(o=>({eventName:o.eventName,handler:t(o.handler,r)}));return[...n,...s]},[]),[e,t])}var fa;(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(fa||(fa={}));var Oh;(function(e){e.Optimized="optimized"})(Oh||(Oh={}));const A0=new Map;function PI(e,t){let{dragging:n,dependencies:r,config:i}=t;const[s,o]=S.useState(null),{frequency:a,measure:l,strategy:u}=i,c=S.useRef(e),f=v(),d=ua(f),h=S.useCallback(function(g){g===void 0&&(g=[]),!d.current&&o(y=>y===null?g:y.concat(g.filter(w=>!y.includes(w))))},[d]),p=S.useRef(null),m=La(g=>{if(f&&!n)return A0;if(!g||g===A0||c.current!==e||s!=null){const y=new Map;for(let w of e){if(!w)continue;if(s&&s.length>0&&!s.includes(w.id)&&w.rect.current){y.set(w.id,w.rect.current);continue}const x=w.node.current,k=x?new Pm(l(x),x):null;w.rect.current=k,k&&y.set(w.id,k)}return y}return g},[e,s,n,f,l]);return S.useEffect(()=>{c.current=e},[e]),S.useEffect(()=>{f||h()},[n,f]),S.useEffect(()=>{s&&s.length>0&&o(null)},[JSON.stringify(s)]),S.useEffect(()=>{f||typeof a!="number"||p.current!==null||(p.current=setTimeout(()=>{h(),p.current=null},a))},[a,f,h,...r]),{droppableRects:m,measureDroppableContainers:h,measuringScheduled:s!=null};function v(){switch(u){case fa.Always:return!1;case fa.BeforeDragging:return n;default:return!n}}}function Wk(e,t){return La(n=>e?n||(typeof t=="function"?t(e):e):null,[t,e])}function AI(e,t){return Wk(e,t)}function MI(e){let{callback:t,disabled:n}=e;const r=Rm(t),i=S.useMemo(()=>{if(n||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:s}=window;return new s(r)},[r,n]);return S.useEffect(()=>()=>i==null?void 0:i.disconnect(),[i]),i}function bc(e){let{callback:t,disabled:n}=e;const r=Rm(t),i=S.useMemo(()=>{if(n||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:s}=window;return new s(r)},[n]);return S.useEffect(()=>()=>i==null?void 0:i.disconnect(),[i]),i}function OI(e){return new Pm(Ys(e),e)}function M0(e,t,n){t===void 0&&(t=OI);const[r,i]=S.useState(null);function s(){i(l=>{if(!e)return null;if(e.isConnected===!1){var u;return(u=l??n)!=null?u:null}const c=t(e);return JSON.stringify(l)===JSON.stringify(c)?l:c})}const o=MI({callback(l){if(e)for(const u of l){const{type:c,target:f}=u;if(c==="childList"&&f instanceof HTMLElement&&f.contains(e)){s();break}}}}),a=bc({callback:s});return Rn(()=>{s(),e?(a==null||a.observe(e),o==null||o.observe(document.body,{childList:!0,subtree:!0})):(a==null||a.disconnect(),o==null||o.disconnect())},[e]),r}function DI(e){const t=Wk(e);return _k(e,t)}const O0=[];function LI(e){const t=S.useRef(e),n=La(r=>e?r&&r!==O0&&e&&t.current&&e.parentNode===t.current.parentNode?r:Sc(e):O0,[e]);return S.useEffect(()=>{t.current=e},[e]),n}function _I(e){const[t,n]=S.useState(null),r=S.useRef(e),i=S.useCallback(s=>{const o=_f(s.target);o&&n(a=>a?(a.set(o,Ah(o)),new Map(a)):null)},[]);return S.useEffect(()=>{const s=r.current;if(e!==s){o(s);const a=e.map(l=>{const u=_f(l);return u?(u.addEventListener("scroll",i,{passive:!0}),[u,Ah(u)]):null}).filter(l=>l!=null);n(a.length?new Map(a):null),r.current=e}return()=>{o(e),o(s)};function o(a){a.forEach(l=>{const u=_f(l);u==null||u.removeEventListener("scroll",i)})}},[i,e]),S.useMemo(()=>e.length?t?Array.from(t.values()).reduce((s,o)=>hs(s,o),on):zk(e):on,[e,t])}function D0(e,t){t===void 0&&(t=[]);const n=S.useRef(null);return S.useEffect(()=>{n.current=null},t),S.useEffect(()=>{const r=e!==on;r&&!n.current&&(n.current=e),!r&&n.current&&(n.current=null)},[e]),n.current?ca(e,n.current):on}function II(e){S.useEffect(()=>{if(!xc)return;const t=e.map(n=>{let{sensor:r}=n;return r.setup==null?void 0:r.setup()});return()=>{for(const n of t)n==null||n()}},e.map(t=>{let{sensor:n}=t;return n}))}function NI(e,t){return S.useMemo(()=>e.reduce((n,r)=>{let{eventName:i,handler:s}=r;return n[i]=o=>{s(o,t)},n},{}),[e,t])}function Hk(e){return S.useMemo(()=>e?oI(e):null,[e])}const L0=[];function FI(e,t){t===void 0&&(t=Ys);const[n]=e,r=Hk(n?gt(n):null),[i,s]=S.useState(L0);function o(){s(()=>e.length?e.map(l=>Vk(l)?r:new Pm(t(l),l)):L0)}const a=bc({callback:o});return Rn(()=>{a==null||a.disconnect(),o(),e.forEach(l=>a==null?void 0:a.observe(l))},[e]),i}function VI(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return Da(t)?t:e}function jI(e){let{measure:t}=e;const[n,r]=S.useState(null),i=S.useCallback(u=>{for(const{target:c}of u)if(Da(c)){r(f=>{const d=t(c);return f?{...f,width:d.width,height:d.height}:d});break}},[t]),s=bc({callback:i}),o=S.useCallback(u=>{const c=VI(u);s==null||s.disconnect(),c&&(s==null||s.observe(c)),r(c?t(c):null)},[t,s]),[a,l]=Iu(o);return S.useMemo(()=>({nodeRef:a,rect:n,setRef:l}),[n,a,l])}const zI=[{sensor:$k,options:{}},{sensor:Uk,options:{}}],BI={current:{}},Hl={draggable:{measure:E0},droppable:{measure:E0,strategy:fa.WhileDragging,frequency:Oh.Optimized},dragOverlay:{measure:Ys}};class Vo extends Map{get(t){var n;return t!=null&&(n=super.get(t))!=null?n:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(t=>{let{disabled:n}=t;return!n})}getNodeFor(t){var n,r;return(n=(r=this.get(t))==null?void 0:r.node.current)!=null?n:void 0}}const UI={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Vo,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:Fu},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:Hl,measureDroppableContainers:Fu,windowRect:null,measuringScheduled:!1},$I={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:Fu,draggableNodes:new Map,over:null,measureDroppableContainers:Fu},kc=S.createContext($I),Kk=S.createContext(UI);function WI(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Vo}}}function HI(e,t){switch(t.type){case Me.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case Me.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case Me.DragEnd:case Me.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case Me.RegisterDroppable:{const{element:n}=t,{id:r}=n,i=new Vo(e.droppable.containers);return i.set(r,n),{...e,droppable:{...e.droppable,containers:i}}}case Me.SetDroppableDisabled:{const{id:n,key:r,disabled:i}=t,s=e.droppable.containers.get(n);if(!s||r!==s.key)return e;const o=new Vo(e.droppable.containers);return o.set(n,{...s,disabled:i}),{...e,droppable:{...e.droppable,containers:o}}}case Me.UnregisterDroppable:{const{id:n,key:r}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;const s=new Vo(e.droppable.containers);return s.delete(n),{...e,droppable:{...e.droppable,containers:s}}}default:return e}}function KI(e){let{disabled:t}=e;const{active:n,activatorEvent:r,draggableNodes:i}=S.useContext(kc),s=Th(r),o=Th(n==null?void 0:n.id);return S.useEffect(()=>{if(!t&&!r&&s&&o!=null){if(!Tm(s)||document.activeElement===s.target)return;const a=i.get(o);if(!a)return;const{activatorNode:l,node:u}=a;if(!l.current&&!u.current)return;requestAnimationFrame(()=>{for(const c of[l.current,u.current]){if(!c)continue;const f=z3(c);if(f){f.focus();break}}})}},[r,t,i,o,s]),null}function qI(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((i,s)=>s({transform:i,...r}),n):n}function GI(e){return S.useMemo(()=>({draggable:{...Hl.draggable,...e==null?void 0:e.draggable},droppable:{...Hl.droppable,...e==null?void 0:e.droppable},dragOverlay:{...Hl.dragOverlay,...e==null?void 0:e.dragOverlay}}),[e==null?void 0:e.draggable,e==null?void 0:e.droppable,e==null?void 0:e.dragOverlay])}function QI(e){let{activeNode:t,measure:n,initialRect:r,config:i=!0}=e;const s=S.useRef(!1),{x:o,y:a}=typeof i=="boolean"?{x:i,y:i}:i;Rn(()=>{if(!o&&!a||!t){s.current=!1;return}if(s.current||!r)return;const u=t==null?void 0:t.node.current;if(!u||u.isConnected===!1)return;const c=n(u),f=_k(c,r);if(o||(f.x=0),a||(f.y=0),s.current=!0,Math.abs(f.x)>0||Math.abs(f.y)>0){const d=Ik(u);d&&d.scrollBy({top:f.y,left:f.x})}},[t,o,a,r,n])}const qk=S.createContext({...on,scaleX:1,scaleY:1});var dr;(function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"})(dr||(dr={}));const vF=S.memo(function(t){var n,r,i,s;let{id:o,accessibility:a,autoScroll:l=!0,children:u,sensors:c=zI,collisionDetection:f=J3,measuring:d,modifiers:h,...p}=t;const m=S.useReducer(HI,void 0,WI),[v,g]=m,[y,w]=K3(),[x,k]=S.useState(dr.Uninitialized),R=x===dr.Initialized,{draggable:{active:E,nodes:b,translate:A},droppable:{containers:T}}=v,D=E!=null?b.get(E):null,N=S.useRef({initial:null,translated:null}),H=S.useMemo(()=>{var $e;return E!=null?{id:E,data:($e=D==null?void 0:D.data)!=null?$e:BI,rect:N}:null},[E,D]),U=S.useRef(null),[X,V]=S.useState(null),[Q,M]=S.useState(null),_=ua(p,Object.values(p)),O=_a("DndDescribedBy",o),q=S.useMemo(()=>T.getEnabled(),[T]),G=GI(d),{droppableRects:be,measureDroppableContainers:pe,measuringScheduled:ae}=PI(q,{dragging:R,dependencies:[A.x,A.y],config:G.droppable}),ee=RI(b,E),st=S.useMemo(()=>Q?Ph(Q):null,[Q]),Wt=aC(),le=AI(ee,G.draggable.measure);QI({activeNode:E!=null?b.get(E):null,config:Wt.layoutShiftCompensation,initialRect:le,measure:G.draggable.measure});const ie=M0(ee,G.draggable.measure,le),ln=M0(ee?ee.parentElement:null),Xe=S.useRef({activatorEvent:null,active:null,activeNode:ee,collisionRect:null,collisions:null,droppableRects:be,draggableNodes:b,draggingNode:null,draggingNodeRect:null,droppableContainers:T,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),un=T.getNodeFor((n=Xe.current.over)==null?void 0:n.id),ot=jI({measure:G.dragOverlay.measure}),Di=(r=ot.nodeRef.current)!=null?r:ee,Li=R?(i=ot.rect)!=null?i:ie:null,Mm=!!(ot.nodeRef.current&&ot.rect),Om=DI(Mm?null:ie),Cc=Hk(Di?gt(Di):null),er=LI(R?un??ee:null),Ia=FI(er),Na=qI(h,{transform:{x:A.x-Om.x,y:A.y-Om.y,scaleX:1,scaleY:1},activatorEvent:Q,active:H,activeNodeRect:ie,containerNodeRect:ln,draggingNodeRect:Li,over:Xe.current.over,overlayNodeRect:ot.rect,scrollableAncestors:er,scrollableAncestorRects:Ia,windowRect:Cc}),Dm=st?hs(st,A):null,Lm=_I(er),eC=D0(Lm),tC=D0(Lm,[ie]),_i=hs(Na,eC),Ii=Li?nI(Li,Na):null,Zs=H&&Ii?f({active:H,collisionRect:Ii,droppableRects:be,droppableContainers:q,pointerCoordinates:Dm}):null,_m=Lk(Zs,"id"),[tr,Im]=S.useState(null),nC=Mm?Na:hs(Na,tC),rC=eI(nC,(s=tr==null?void 0:tr.rect)!=null?s:null,ie),Ec=S.useRef(null),Nm=S.useCallback(($e,yt)=>{let{sensor:vt,options:nr}=yt;if(U.current==null)return;const At=b.get(U.current);if(!At)return;const wt=$e.nativeEvent,cn=new vt({active:U.current,activeNode:At,event:wt,options:nr,context:Xe,onAbort(Ne){if(!b.get(Ne))return;const{onDragAbort:fn}=_.current,Pn={id:Ne};fn==null||fn(Pn),y({type:"onDragAbort",event:Pn})},onPending(Ne,rr,fn,Pn){if(!b.get(Ne))return;const{onDragPending:eo}=_.current,ir={id:Ne,constraint:rr,initialCoordinates:fn,offset:Pn};eo==null||eo(ir),y({type:"onDragPending",event:ir})},onStart(Ne){const rr=U.current;if(rr==null)return;const fn=b.get(rr);if(!fn)return;const{onDragStart:Pn}=_.current,Js={activatorEvent:wt,active:{id:rr,data:fn.data,rect:N}};Rr.unstable_batchedUpdates(()=>{Pn==null||Pn(Js),k(dr.Initializing),g({type:Me.DragStart,initialCoordinates:Ne,active:rr}),y({type:"onDragStart",event:Js}),V(Ec.current),M(wt)})},onMove(Ne){g({type:Me.DragMove,coordinates:Ne})},onEnd:Ni(Me.DragEnd),onCancel:Ni(Me.DragCancel)});Ec.current=cn;function Ni(Ne){return async function(){const{active:fn,collisions:Pn,over:Js,scrollAdjustedTranslate:eo}=Xe.current;let ir=null;if(fn&&eo){const{cancelDrop:to}=_.current;ir={activatorEvent:wt,active:fn,collisions:Pn,delta:eo,over:Js},Ne===Me.DragEnd&&typeof to=="function"&&await Promise.resolve(to(ir))&&(Ne=Me.DragCancel)}U.current=null,Rr.unstable_batchedUpdates(()=>{g({type:Ne}),k(dr.Uninitialized),Im(null),V(null),M(null),Ec.current=null;const to=Ne===Me.DragEnd?"onDragEnd":"onDragCancel";if(ir){const Rc=_.current[to];Rc==null||Rc(ir),y({type:to,event:ir})}})}}},[b]),iC=S.useCallback(($e,yt)=>(vt,nr)=>{const At=vt.nativeEvent,wt=b.get(nr);if(U.current!==null||!wt||At.dndKit||At.defaultPrevented)return;const cn={active:wt};$e(vt,yt.options,cn)===!0&&(At.dndKit={capturedBy:yt.sensor},U.current=nr,Nm(vt,yt))},[b,Nm]),Fm=TI(c,iC);II(c),Rn(()=>{ie&&x===dr.Initializing&&k(dr.Initialized)},[ie,x]),S.useEffect(()=>{const{onDragMove:$e}=_.current,{active:yt,activatorEvent:vt,collisions:nr,over:At}=Xe.current;if(!yt||!vt)return;const wt={active:yt,activatorEvent:vt,collisions:nr,delta:{x:_i.x,y:_i.y},over:At};Rr.unstable_batchedUpdates(()=>{$e==null||$e(wt),y({type:"onDragMove",event:wt})})},[_i.x,_i.y]),S.useEffect(()=>{const{active:$e,activatorEvent:yt,collisions:vt,droppableContainers:nr,scrollAdjustedTranslate:At}=Xe.current;if(!$e||U.current==null||!yt||!At)return;const{onDragOver:wt}=_.current,cn=nr.get(_m),Ni=cn&&cn.rect.current?{id:cn.id,rect:cn.rect.current,data:cn.data,disabled:cn.disabled}:null,Ne={active:$e,activatorEvent:yt,collisions:vt,delta:{x:At.x,y:At.y},over:Ni};Rr.unstable_batchedUpdates(()=>{Im(Ni),wt==null||wt(Ne),y({type:"onDragOver",event:Ne})})},[_m]),Rn(()=>{Xe.current={activatorEvent:Q,active:H,activeNode:ee,collisionRect:Ii,collisions:Zs,droppableRects:be,draggableNodes:b,draggingNode:Di,draggingNodeRect:Li,droppableContainers:T,over:tr,scrollableAncestors:er,scrollAdjustedTranslate:_i},N.current={initial:Li,translated:Ii}},[H,ee,Zs,Ii,b,Di,Li,be,T,tr,er,_i]),kI({...Wt,delta:A,draggingRect:Ii,pointerCoordinates:Dm,scrollableAncestors:er,scrollableAncestorRects:Ia});const sC=S.useMemo(()=>({active:H,activeNode:ee,activeNodeRect:ie,activatorEvent:Q,collisions:Zs,containerNodeRect:ln,dragOverlay:ot,draggableNodes:b,droppableContainers:T,droppableRects:be,over:tr,measureDroppableContainers:pe,scrollableAncestors:er,scrollableAncestorRects:Ia,measuringConfiguration:G,measuringScheduled:ae,windowRect:Cc}),[H,ee,ie,Q,Zs,ln,ot,b,T,be,tr,pe,er,Ia,G,ae,Cc]),oC=S.useMemo(()=>({activatorEvent:Q,activators:Fm,active:H,activeNodeRect:ie,ariaDescribedById:{draggable:O},dispatch:g,draggableNodes:b,over:tr,measureDroppableContainers:pe}),[Q,Fm,H,ie,g,O,b,tr,pe]);return Je.createElement(Mk.Provider,{value:w},Je.createElement(kc.Provider,{value:oC},Je.createElement(Kk.Provider,{value:sC},Je.createElement(qk.Provider,{value:rC},u)),Je.createElement(KI,{disabled:(a==null?void 0:a.restoreFocus)===!1})),Je.createElement(Q3,{...a,hiddenTextDescribedById:O}));function aC(){const $e=(X==null?void 0:X.autoScrollEnabled)===!1,yt=typeof l=="object"?l.enabled===!1:l===!1,vt=R&&!$e&&!yt;return typeof l=="object"?{...l,enabled:vt}:{enabled:vt}}}),XI=S.createContext(null),_0="button",YI="Draggable";function ZI(e){let{id:t,data:n,disabled:r=!1,attributes:i}=e;const s=_a(YI),{activators:o,activatorEvent:a,active:l,activeNodeRect:u,ariaDescribedById:c,draggableNodes:f,over:d}=S.useContext(kc),{role:h=_0,roleDescription:p="draggable",tabIndex:m=0}=i??{},v=(l==null?void 0:l.id)===t,g=S.useContext(v?qk:XI),[y,w]=Iu(),[x,k]=Iu(),R=NI(o,t),E=ua(n);Rn(()=>(f.set(t,{id:t,key:s,node:y,activatorNode:x,data:E}),()=>{const A=f.get(t);A&&A.key===s&&f.delete(t)}),[f,t]);const b=S.useMemo(()=>({role:h,tabIndex:m,"aria-disabled":r,"aria-pressed":v&&h===_0?!0:void 0,"aria-roledescription":p,"aria-describedby":c.draggable}),[r,h,m,v,p,c.draggable]);return{active:l,activatorEvent:a,activeNodeRect:u,attributes:b,isDragging:v,listeners:r?void 0:R,node:y,over:d,setNodeRef:w,setActivatorNodeRef:k,transform:g}}function JI(){return S.useContext(Kk)}const eN="Droppable",tN={timeout:25};function nN(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:i}=e;const s=_a(eN),{active:o,dispatch:a,over:l,measureDroppableContainers:u}=S.useContext(kc),c=S.useRef({disabled:n}),f=S.useRef(!1),d=S.useRef(null),h=S.useRef(null),{disabled:p,updateMeasurementsFor:m,timeout:v}={...tN,...i},g=ua(m??r),y=S.useCallback(()=>{if(!f.current){f.current=!0;return}h.current!=null&&clearTimeout(h.current),h.current=setTimeout(()=>{u(Array.isArray(g.current)?g.current:[g.current]),h.current=null},v)},[v]),w=bc({callback:y,disabled:p||!o}),x=S.useCallback((b,A)=>{w&&(A&&(w.unobserve(A),f.current=!1),b&&w.observe(b))},[w]),[k,R]=Iu(x),E=ua(t);return S.useEffect(()=>{!w||!k.current||(w.disconnect(),f.current=!1,w.observe(k.current))},[k,w]),S.useEffect(()=>(a({type:Me.RegisterDroppable,element:{id:r,key:s,disabled:n,node:k,rect:d,data:E}}),()=>a({type:Me.UnregisterDroppable,key:s,id:r})),[r]),S.useEffect(()=>{n!==c.current.disabled&&(a({type:Me.SetDroppableDisabled,id:r,key:s,disabled:n}),c.current.disabled=n)},[r,s,n,a]),{active:o,rect:d,isOver:(l==null?void 0:l.id)===r,node:k,over:l,setNodeRef:R}}function Gk(e,t,n){const r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function rN(e,t){return e.reduce((n,r,i)=>{const s=t.get(r);return s&&(n[i]=s),n},Array(e.length))}function ml(e){return e!==null&&e>=0}function iN(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function sN(e){return typeof e=="boolean"?{draggable:e,droppable:e}:e}const Qk=e=>{let{rects:t,activeIndex:n,overIndex:r,index:i}=e;const s=Gk(t,r,n),o=t[i],a=s[i];return!a||!o?null:{x:a.left-o.left,y:a.top-o.top,scaleX:a.width/o.width,scaleY:a.height/o.height}},gl={scaleX:1,scaleY:1},wF=e=>{var t;let{activeIndex:n,activeNodeRect:r,index:i,rects:s,overIndex:o}=e;const a=(t=s[n])!=null?t:r;if(!a)return null;if(i===n){const u=s[o];return u?{x:0,y:n<o?u.top+u.height-(a.top+a.height):u.top-a.top,...gl}:null}const l=oN(s,i,n);return i>n&&i<=o?{x:0,y:-a.height-l,...gl}:i<n&&i>=o?{x:0,y:a.height+l,...gl}:{x:0,y:0,...gl}};function oN(e,t,n){const r=e[t],i=e[t-1],s=e[t+1];return r?n<t?i?r.top-(i.top+i.height):s?s.top-(r.top+r.height):0:s?s.top-(r.top+r.height):i?r.top-(i.top+i.height):0:0}const Xk="Sortable",Yk=Je.createContext({activeIndex:-1,containerId:Xk,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:Qk,disabled:{draggable:!1,droppable:!1}});function xF(e){let{children:t,id:n,items:r,strategy:i=Qk,disabled:s=!1}=e;const{active:o,dragOverlay:a,droppableRects:l,over:u,measureDroppableContainers:c}=JI(),f=_a(Xk,n),d=a.rect!==null,h=S.useMemo(()=>r.map(R=>typeof R=="object"&&"id"in R?R.id:R),[r]),p=o!=null,m=o?h.indexOf(o.id):-1,v=u?h.indexOf(u.id):-1,g=S.useRef(h),y=!iN(h,g.current),w=v!==-1&&m===-1||y,x=sN(s);Rn(()=>{y&&p&&c(h)},[y,h,p,c]),S.useEffect(()=>{g.current=h},[h]);const k=S.useMemo(()=>({activeIndex:m,containerId:f,disabled:x,disableTransforms:w,items:h,overIndex:v,useDragOverlay:d,sortedRects:rN(h,l),strategy:i}),[m,f,x.draggable,x.droppable,w,h,v,l,d,i]);return Je.createElement(Yk.Provider,{value:k},t)}const aN=e=>{let{id:t,items:n,activeIndex:r,overIndex:i}=e;return Gk(n,r,i).indexOf(t)},lN=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:i,items:s,newIndex:o,previousItems:a,previousContainerId:l,transition:u}=e;return!u||!r||a!==s&&i===o?!1:n?!0:o!==i&&t===l},uN={duration:200,easing:"ease"},Zk="transform",cN=Nu.Transition.toString({property:Zk,duration:0,easing:"linear"}),fN={roleDescription:"sortable"};function dN(e){let{disabled:t,index:n,node:r,rect:i}=e;const[s,o]=S.useState(null),a=S.useRef(n);return Rn(()=>{if(!t&&n!==a.current&&r.current){const l=i.current;if(l){const u=Ys(r.current,{ignoreTransform:!0}),c={x:l.left-u.left,y:l.top-u.top,scaleX:l.width/u.width,scaleY:l.height/u.height};(c.x||c.y)&&o(c)}}n!==a.current&&(a.current=n)},[t,n,r,i]),S.useEffect(()=>{s&&o(null)},[s]),s}function SF(e){let{animateLayoutChanges:t=lN,attributes:n,disabled:r,data:i,getNewIndex:s=aN,id:o,strategy:a,resizeObserverConfig:l,transition:u=uN}=e;const{items:c,containerId:f,activeIndex:d,disabled:h,disableTransforms:p,sortedRects:m,overIndex:v,useDragOverlay:g,strategy:y}=S.useContext(Yk),w=hN(r,h),x=c.indexOf(o),k=S.useMemo(()=>({sortable:{containerId:f,index:x,items:c},...i}),[f,i,x,c]),R=S.useMemo(()=>c.slice(c.indexOf(o)),[c,o]),{rect:E,node:b,isOver:A,setNodeRef:T}=nN({id:o,data:k,disabled:w.droppable,resizeObserverConfig:{updateMeasurementsFor:R,...l}}),{active:D,activatorEvent:N,activeNodeRect:H,attributes:U,setNodeRef:X,listeners:V,isDragging:Q,over:M,setActivatorNodeRef:_,transform:O}=ZI({id:o,data:k,attributes:{...fN,...n},disabled:w.draggable}),q=N3(T,X),G=!!D,be=G&&!p&&ml(d)&&ml(v),pe=!g&&Q,ae=pe&&be?O:null,st=be?ae??(a??y)({rects:m,activeNodeRect:H,activeIndex:d,overIndex:v,index:x}):null,Wt=ml(d)&&ml(v)?s({id:o,items:c,activeIndex:d,overIndex:v}):x,le=D==null?void 0:D.id,ie=S.useRef({activeId:le,items:c,newIndex:Wt,containerId:f}),ln=c!==ie.current.items,Xe=t({active:D,containerId:f,isDragging:Q,isSorting:G,id:o,index:x,items:c,newIndex:ie.current.newIndex,previousItems:ie.current.items,previousContainerId:ie.current.containerId,transition:u,wasDragging:ie.current.activeId!=null}),un=dN({disabled:!Xe,index:x,node:b,rect:E});return S.useEffect(()=>{G&&ie.current.newIndex!==Wt&&(ie.current.newIndex=Wt),f!==ie.current.containerId&&(ie.current.containerId=f),c!==ie.current.items&&(ie.current.items=c)},[G,Wt,f,c]),S.useEffect(()=>{if(le===ie.current.activeId)return;if(le!=null&&ie.current.activeId==null){ie.current.activeId=le;return}const Di=setTimeout(()=>{ie.current.activeId=le},50);return()=>clearTimeout(Di)},[le]),{active:D,activeIndex:d,attributes:U,data:k,rect:E,index:x,newIndex:Wt,items:c,isOver:A,isSorting:G,isDragging:Q,listeners:V,node:b,overIndex:v,over:M,setNodeRef:q,setActivatorNodeRef:_,setDroppableNodeRef:T,setDraggableNodeRef:X,transform:un??st,transition:ot()};function ot(){if(un||ln&&ie.current.newIndex===x)return cN;if(!(pe&&!Tm(N)||!u)&&(G||Xe))return Nu.Transition.toString({...u,property:Zk})}}function hN(e,t){var n,r;return typeof e=="boolean"?{draggable:e,droppable:!1}:{draggable:(n=e==null?void 0:e.draggable)!=null?n:t.draggable,droppable:(r=e==null?void 0:e.droppable)!=null?r:t.droppable}}function ju(e){if(!e)return!1;const t=e.data.current;return!!(t&&"sortable"in t&&typeof t.sortable=="object"&&"containerId"in t.sortable&&"items"in t.sortable&&"index"in t.sortable)}const pN=[ne.Down,ne.Right,ne.Up,ne.Left],bF=(e,t)=>{let{context:{active:n,collisionRect:r,droppableRects:i,droppableContainers:s,over:o,scrollableAncestors:a}}=t;if(pN.includes(e.code)){if(e.preventDefault(),!n||!r)return;const l=[];s.getEnabled().forEach(f=>{if(!f||f!=null&&f.disabled)return;const d=i.get(f.id);if(d)switch(e.code){case ne.Down:r.top<d.top&&l.push(f);break;case ne.Up:r.top>d.top&&l.push(f);break;case ne.Left:r.left>d.left&&l.push(f);break;case ne.Right:r.left<d.left&&l.push(f);break}});const u=Y3({collisionRect:r,droppableRects:i,droppableContainers:l});let c=Lk(u,"id");if(c===(o==null?void 0:o.id)&&u.length>1&&(c=u[1].id),c!=null){const f=s.get(n.id),d=s.get(c),h=d?i.get(d.id):null,p=d==null?void 0:d.node.current;if(p&&h&&f&&d){const v=Sc(p).some((R,E)=>a[E]!==R),g=Jk(f,d),y=mN(f,d),w=v||!g?{x:0,y:0}:{x:y?r.width-h.width:0,y:y?r.height-h.height:0},x={x:h.left,y:h.top};return w.x&&w.y?x:ca(x,w)}}}};function Jk(e,t){return!ju(e)||!ju(t)?!1:e.data.current.sortable.containerId===t.data.current.sortable.containerId}function mN(e,t){return!ju(e)||!ju(t)||!Jk(e,t)?!1:e.data.current.sortable.index<t.data.current.sortable.index}export{r4 as $,es as A,Z4 as B,nF as C,vN as D,LM as E,aF as F,dF as G,pF as H,hF as I,kN as J,Re as K,VN as L,bN as M,R4 as N,e4 as O,m4 as P,SN as Q,yN as R,b4 as S,XN as T,x4 as U,j4 as V,C4 as W,u4 as X,Y4 as Y,o4 as Z,fF as _,Dt as a,l4 as a0,W4 as a1,M4 as a2,A4 as a3,S4 as a4,F4 as a5,wN as a6,O4 as a7,Um as a8,y4 as a9,mF as aA,bF as aB,Uk as aC,$k as aD,vF as aE,yF as aF,xF as aG,wF as aH,SF as aI,v4 as aJ,Nu as aK,L4 as aL,K4 as aM,t4 as aN,g4 as aO,U4 as aP,h4 as aQ,k4 as aR,E4 as aS,p4 as aT,JN as aU,YN as aV,QN as aW,$4 as aX,V4 as aY,B4 as aZ,T4 as a_,H4 as aa,ZN as ab,n4 as ac,q4 as ad,D4 as ae,P4 as af,w4 as ag,N4 as ah,Q4 as ai,i4 as aj,c4 as ak,X4 as al,aP as am,GN as an,uF as ao,cF as ap,I4 as aq,a4 as ar,G4 as as,f4 as at,d4 as au,s4 as av,z4 as aw,Gk as ax,_4 as ay,gF as az,cs as b,Ll as c,KN as d,XT as e,qN as f,HN as g,Nx as h,Ls as i,$n as j,$N as k,qT as l,WN as m,je as n,Rr as o,ac as p,Je as q,S as r,xN as s,eF as t,J4 as u,tF as v,rF as w,iF as x,oF as y,sF as z};
@@ -14,14 +14,14 @@
14
14
  rel="stylesheet"
15
15
  />
16
16
  <title>cc-gw 控制台</title>
17
- <script type="module" crossorigin src="/assets/app-PTY3WlMQ.js"></script>
18
- <link rel="modulepreload" crossorigin href="/assets/vendor-CITafuNQ.js">
19
- <link rel="modulepreload" crossorigin href="/assets/global-D5dyWHqO.js">
20
- <link rel="modulepreload" crossorigin href="/assets/query-DZF7K6hv.js">
21
- <link rel="modulepreload" crossorigin href="/assets/i18n-PeX9kBVO.js">
22
- <link rel="modulepreload" crossorigin href="/assets/router-BoBrmro7.js">
23
- <link rel="modulepreload" crossorigin href="/assets/radix-Bux_1C5J.js">
24
- <link rel="stylesheet" crossorigin href="/assets/global-CjRN4Kqi.css">
17
+ <script type="module" crossorigin src="/assets/app-BnQl39hq.js"></script>
18
+ <link rel="modulepreload" crossorigin href="/assets/vendor-D2wC0h2o.js">
19
+ <link rel="modulepreload" crossorigin href="/assets/global-CJOj9WGx.js">
20
+ <link rel="modulepreload" crossorigin href="/assets/query-DVc6ZTRQ.js">
21
+ <link rel="modulepreload" crossorigin href="/assets/i18n-Dp-o1LhZ.js">
22
+ <link rel="modulepreload" crossorigin href="/assets/router-CUBM_FND.js">
23
+ <link rel="modulepreload" crossorigin href="/assets/radix-B9EIjzyN.js">
24
+ <link rel="stylesheet" crossorigin href="/assets/global-CWlBZlIY.css">
25
25
  </head>
26
26
  <body class="bg-background text-foreground">
27
27
  <div id="root"></div>
@@ -42,12 +42,12 @@
42
42
  }
43
43
  </script>
44
44
  <title>cc-gw | 你的 API Key 不该躺在 30 个 .env 里 · local-first AI gateway</title>
45
- <script type="module" crossorigin src="/assets/landing-DDnYbDDs.js"></script>
46
- <link rel="modulepreload" crossorigin href="/assets/vendor-CITafuNQ.js">
47
- <link rel="modulepreload" crossorigin href="/assets/global-D5dyWHqO.js">
45
+ <script type="module" crossorigin src="/assets/landing-BuuM1jg8.js"></script>
46
+ <link rel="modulepreload" crossorigin href="/assets/vendor-D2wC0h2o.js">
47
+ <link rel="modulepreload" crossorigin href="/assets/global-CJOj9WGx.js">
48
48
  <link rel="modulepreload" crossorigin href="/assets/clipboard-BnAnBk_-.js">
49
- <link rel="modulepreload" crossorigin href="/assets/package-98UM-D4s.js">
50
- <link rel="stylesheet" crossorigin href="/assets/global-CjRN4Kqi.css">
49
+ <link rel="modulepreload" crossorigin href="/assets/package-CKkVmaOi.js">
50
+ <link rel="stylesheet" crossorigin href="/assets/global-CWlBZlIY.css">
51
51
  </head>
52
52
  <body class="bg-slate-50 text-slate-900">
53
53
  <div id="landing-root"></div>
@@ -1 +0,0 @@
1
- import{r as f,ax as Nt,j as e,ay as wt,as as ft,ab as be,az as kt,aA as Ct,aB as St,aC as Mt,aD as Pt,aE as Et,aF as ct,aG as Dt,aH as Rt,aI as Tt,aJ as Ot,aK as Lt,aL as Ft,aM as It,aN as At,aO as Bt}from"./vendor-CITafuNQ.js";import{d as zt}from"./router-BoBrmro7.js";import{C as $t}from"./ConfirmDialog-BzQnNT7J.js";import{P as Ht}from"./PageToolbar-xVyzEX46.js";import{t as ce,q as Se,e as ze,B,a as Ut,c as bt,b as qt,s as Vt,T as _t,f as Kt,g as Qt,h as Gt}from"./app-PTY3WlMQ.js";import{B as te}from"./badge-DMgopDMC.js";import{c as ve}from"./global-D5dyWHqO.js";import{d as ut,g as mt,a as pt,b as Wt,c as ht,e as xt,r as Jt,f as Be,m as Le,h as Xt,u as Yt,P as dt,i as Zt,j as Re,S as es,B as ts,M as ss,k as as,l as rs,C as vt,O as jt,n as ns,o as os}from"./useProviderForm-ZwPM_4sh.js";import{a as is}from"./query-DZF7K6hv.js";import{g as Te}from"./gateway-CRzzn31H.js";import{u as et}from"./useAppMutation-CSLeLocH.js";import{D as $e,A as He,a as Ue,b as qe,c as Ve,d as _e,e as Ke}from"./DialogShell-iCyqEFRA.js";import{L as Ne,I as pe}from"./label-Dg8bOG83.js";import{S as tt,a as st,b as at,c as rt,d as Oe}from"./select-BMTHg2Ox.js";import{S as nt}from"./switch-BjJJ5nhB.js";import{u as W}from"./i18n-PeX9kBVO.js";import{C as Qe,a as Ge}from"./card-kh1_vqEo.js";import{a as lt}from"./PageState-BzdQq00f.js";import{b as ls}from"./types-DYz12j32.js";import{D as ds}from"./disclosure-Dpus5Sms.js";import{P as cs,c as us,b as ms}from"./popover-BPqySDlA.js";import"./radix-Bux_1C5J.js";function ps(a){const{t,pushToast:n,config:s,setConfig:o,configQuery:h,customEndpoints:x,tabs:j,ensureConfig:y}=a,b=is(),[d,m]=f.useState({}),[l,C]=f.useState({}),[N,u]=f.useState(null),[w,k]=f.useState({}),[M,R]=f.useState({}),[X,_]=f.useState({}),[T,c]=f.useState(null),[S,L]=f.useState(null),[V,q]=f.useState(null),[se,A]=f.useState(!1),[ne,ae]=f.useState(null),[E,I]=f.useState({}),[U,we]=f.useState(null),oe=f.useRef(null),[ie,he]=f.useState(null),ue=r=>{oe.current=r,he(r)},xe=()=>{oe.current=null,he(null)},ge=f.useMemo(()=>j.filter(r=>r.key!=="providers"),[j]);f.useEffect(()=>{if(!h.data)return;const r=h.data;m(g=>{const i=ut(r,x);if(!g||Object.keys(g).length===0)return i;const v={...i};for(const[P,O]of Object.entries(g)){if(!(P in i))continue;const F=mt(r,x,P);if(pt(O,F))v[P]=O;else{const J=new Map(O.map(K=>[K.source,K.id]));v[P]=i[P].map(K=>({...K,id:J.get(K.source)??K.id}))}}return v}),I(g=>{const i=Wt(r,x);if(!g||Object.keys(g).length===0)return i;const v={...i};for(const[P,O]of Object.entries(g)){if(!(P in i))continue;const F=ht(r,x,P);JSON.stringify(O)!==JSON.stringify(F)&&(v[P]=O)}return v}),C({}),k(xt(r,x))},[h.data,x]);const fe=(s==null?void 0:s.providers)??[],je=f.useMemo(()=>{const r=[],g=new Set;for(const i of fe){const v=i.label&&i.label!==i.id?`${i.label} (${i.id})`:i.id,P=i.models??[];if(P.length>0)for(const F of P){const J=`${i.id}:${F.id}`;g.has(J)||(g.add(J),r.push({value:J,label:`${v} · ${F.label??F.id}`,providerId:i.id,providerLabel:v,modelId:F.id,modelLabel:F.label??F.id,kind:"model",isDefault:i.defaultModel===F.id}))}else if(i.defaultModel){const F=`${i.id}:${i.defaultModel}`;g.has(F)||(g.add(F),r.push({value:F,label:`${v} · ${i.defaultModel}`,providerId:i.id,providerLabel:v,modelId:i.defaultModel,modelLabel:i.defaultModel,kind:"model",isDefault:!0}))}const O=`${i.id}:*`;g.has(O)||(g.add(O),r.push({value:O,label:t("settings.routing.providerPassthroughOption",{provider:v}),providerId:i.id,providerLabel:v,modelId:"*",modelLabel:"*",kind:"passthrough"}))}for(const i of Object.values(d).flat()){const v=i.target.trim();v&&!g.has(v)&&(g.add(v),r.push({value:v,label:v,modelId:v,modelLabel:v,kind:"custom"}))}return r},[fe,d,t]),Fe=r=>s?mt(s,x,r):{},Me=f.useMemo(()=>{const r={};for(const g of ge){const i=d[g.key]||[];r[g.key]=pt(i,Fe(g.key))}return r},[s,x,d,ge]),We=f.useMemo(()=>{const r={};if(!s)return r;for(const g of ge){const i=E[g.key];if(!i){r[g.key]=!1;continue}const v=ht(s,x,g.key);r[g.key]=JSON.stringify(i)!==JSON.stringify(v)}return r},[s,x,E,ge]),Je=(r,g,i)=>{I(v=>({...v,[r]:{...v[r]??{completion:null,reasoning:null,background:null,longContextThreshold:6e4},[g]:i}}))},D=async r=>{var v,P,O,F,J,K,Q,re;if(!y()||oe.current)return;const g=E[r];if(!g)return;const i={completion:(v=g.completion)!=null&&v.trim()?g.completion.trim():null,reasoning:(P=g.reasoning)!=null&&P.trim()?g.reasoning.trim():null,background:(O=g.background)!=null&&O.trim()?g.background.trim():null,longContextThreshold:Number.isFinite(g.longContextThreshold)&&g.longContextThreshold>0?Math.floor(g.longContextThreshold):s.defaults.longContextThreshold};we(r),ue(r);try{const Z=x.find(G=>G.id===r);if(Z){const G={...Z.routing??{},defaults:i,modelRoutes:((F=Z.routing)==null?void 0:F.modelRoutes)??{}};await ze.update(r,{routing:G}),o(de=>{if(!de)return de;const Ye=[...de.customEndpoints??[]],ot=Ye.findIndex(yt=>yt.id===r);return ot===-1?de:(Ye[ot]={...Ye[ot],routing:G},{...de,customEndpoints:Ye})}),await b.invalidateQueries({queryKey:Se.customEndpoints.all()})}else{const G=r,de={...s,endpointRouting:{...s.endpointRouting??{},[G]:{defaults:i,modelRoutes:((K=(J=s.endpointRouting)==null?void 0:J[G])==null?void 0:K.modelRoutes)??(G==="anthropic"?s.modelRoutes??{}:{}),compatibility:(re=(Q=s.endpointRouting)==null?void 0:Q[G])==null?void 0:re.compatibility}}};await Te.saveConfig(de),o(de)}I(G=>({...G,[r]:i})),n({title:t("workbench.defaults.saveSuccess"),variant:"success"}),h.refetch()}catch(Z){n({title:t("workbench.defaults.saveFailure",{message:ce(Z).message}),variant:"error"})}finally{we(null),xe()}},z=(r,g)=>{k(i=>({...i,[r]:g})),o(i=>{if(!i)return i;if(r==="anthropic"||r==="openai")return{...i,routingPresets:{...i.routingPresets,[r]:g}};const v=[...i.customEndpoints??[]],P=v.findIndex(O=>O.id===r);return P===-1?i:(v[P]={...v[P],routingPresets:g},{...i,customEndpoints:v})})},H=(r,g)=>{R(i=>({...i,[r]:g})),g.trim()&&_(i=>({...i,[r]:null}))},p=async r=>{if(!y()||oe.current)return;const g=(M[r]??"").trim();if(!g){_(i=>({...i,[r]:t("modelManagement.validation.presetName")}));return}if((w[r]??[]).some(i=>i.name.toLowerCase()===g.toLowerCase())){_(i=>({...i,[r]:t("modelManagement.validation.presetDuplicate",{name:g})}));return}c(r),ue(r);try{const v=(await Le.savePreset(r,g)).presets??[];z(r,v),R(P=>({...P,[r]:""})),_(P=>({...P,[r]:null})),n({title:t("modelManagement.toast.presetSaved",{name:g}),variant:"success"})}catch(i){n({title:t("modelManagement.toast.presetSaveFailure",{message:ce(i).message}),variant:"error"})}finally{c(null),xe(),h.refetch()}},$=async(r,g)=>{if(y()&&!oe.current){L({endpoint:r,name:g.name}),ue(r);try{const v=(await Le.applyPreset(r,g.name)).config;o(v);const P=ut(v,x);m(O=>({...O,[r]:P[r]??[]})),k(xt(v,x)),r!=="anthropic"&&r!=="openai"&&await b.invalidateQueries({queryKey:Se.customEndpoints.all()}),n({title:t("modelManagement.toast.presetApplySuccess",{name:g.name}),variant:"success"})}catch(i){n({title:t("modelManagement.toast.presetApplyFailure",{message:ce(i).message}),variant:"error"})}finally{L(null),xe(),h.refetch()}}},Y=async(r,g)=>{if(y()&&!oe.current){q({endpoint:r,name:g.name}),ue(r);try{const i=await Le.deletePreset(r,g.name);z(r,i.presets??[]),n({title:t("modelManagement.toast.presetDeleteSuccess",{name:g.name}),variant:"success"})}catch(i){n({title:t("modelManagement.toast.presetDeleteFailure",{message:ce(i).message}),variant:"error"})}finally{q(null),xe(),h.refetch()}}},Pe=async r=>{const g=x.find(i=>i.id===r);if(!(!g||g.deletable===!1))try{await ze.delete(r),await b.invalidateQueries({queryKey:Se.customEndpoints.all()}),o(i=>i&&{...i,customEndpoints:(i.customEndpoints??[]).filter(v=>v.id!==r)}),h.refetch(),n({title:t("modelManagement.deleteEndpointSuccess"),variant:"success"})}catch(i){const v=ce(i);n({title:t("modelManagement.deleteEndpointError",{error:v.message}),variant:"error"})}},ke=r=>{m(g=>({...g,[r]:[...g[r]||[],{id:Be(),source:"",target:""}]})),C(g=>({...g,[r]:null}))},ee=async(r,g)=>{if(y()&&!oe.current){A(!0),ue(r);try{if(r==="anthropic"||r==="openai"){const i=r,v=s.endpointRouting?{...s.endpointRouting}:{},P=v[i]??{defaults:s.defaults,modelRoutes:(i==="anthropic"?s.modelRoutes:{})??{}},O={defaults:P.defaults??s.defaults,modelRoutes:P.modelRoutes??{}},F={...s,endpointRouting:{...v,[i]:g?{...O,compatibility:{enabled:!0}}:{...O}}};await Te.saveConfig(F),o(F)}else{const i=[...s.customEndpoints??[]],v=i.findIndex(J=>J.id===r);if(v===-1)throw new Error(t("modelManagement.toast.endpointNotFound"));const P=i[v],O=P.routing??{defaults:s.defaults,modelRoutes:{}};i[v]={...P,routing:g?{...O,compatibility:{enabled:!0}}:{defaults:O.defaults,modelRoutes:O.modelRoutes}};const F={...s,customEndpoints:i};await Te.saveConfig(F),o(F)}n({title:t("modelManagement.toast.compatibilitySaved",{state:t(g?"common.status.enabled":"common.status.disabled")}),variant:"success"}),h.refetch()}catch(i){const v=ce(i);n({title:t("modelManagement.toast.compatibilitySaveFailure",{message:v.message}),variant:"error"})}finally{A(!1),xe()}}},ye=(r,g)=>{m(i=>{const v=i[r]||[];return v.some(P=>P.source.trim()===g.trim())?i:{...i,[r]:[...v,{id:Be(),source:g,target:""}]}}),C(i=>({...i,[r]:null}))},Ee=(r,g,i,v)=>{m(P=>({...P,[r]:(P[r]||[]).map(O=>O.id===g?{...O,[i]:v}:O)})),C(P=>({...P,[r]:null}))},Ce=(r,g)=>{m(i=>({...i,[r]:(i[r]||[]).filter(v=>v.id!==g)})),C(i=>({...i,[r]:null}))},De=(r,g,i)=>{g!==i&&(m(v=>{const P=v[r]||[],O=P.findIndex(J=>J.id===g),F=P.findIndex(J=>J.id===i);return O===-1||F===-1?v:{...v,[r]:Nt(P,O,F)}}),C(v=>({...v,[r]:null})))},Xe=r=>{var i;if(!s)return;const g=(s.customEndpoints??x).find(v=>v.id===r);if(g)m(v=>{var P;return{...v,[r]:Object.entries(((P=g.routing)==null?void 0:P.modelRoutes)??{}).map(([O,F])=>({id:Be(),source:O,target:F}))}});else{const v=s.endpointRouting??{},P=r,O=P==="anthropic"?s.modelRoutes??{}:{},F=((i=v[P])==null?void 0:i.modelRoutes)??O;m(J=>({...J,[r]:Object.entries(F).map(([K,Q])=>({id:Be(),source:K,target:Q}))}))}C(v=>({...v,[r]:null}))},le=et({mutationFn:async r=>(await Te.saveConfig(r.nextConfig),r)}),me=et({mutationFn:async r=>(await ze.update(r.endpoint,{routing:r.routing}),r)});return{endpointTabs:ge,routesByEndpoint:d,setRoutesByEndpoint:m,routeError:l,savingRouteFor:N,presetsByEndpoint:w,presetNameByEndpoint:M,presetErrorByEndpoint:X,savingPresetFor:T,applyingPreset:S,deletingPreset:V,savingCompatibilityPolicy:se,writingEndpoint:ie,presetDiffDialog:ne,setPresetDiffDialog:ae,providerModelOptions:je,isDirtyByEndpoint:Me,defaultsByEndpoint:E,isDefaultsDirtyByEndpoint:We,savingDefaultsFor:U,handleDefaultsChange:Je,handleSaveDefaults:D,handlePresetNameChange:H,handleSavePreset:p,handleApplyPreset:$,handleDeletePreset:Y,handleDeleteEndpoint:Pe,handleAddRoute:ke,handleAddSuggestion:ye,handleRouteChange:Ee,handleRemoveRoute:Ce,handleReorderRules:De,handleResetRoutes:Xe,handleSaveRoutes:async r=>{var v,P,O,F,J;if(!y()||oe.current)return;const g=d[r]||[],i={};for(const K of g){const Q=K.source.trim(),re=K.target.trim();if(!(!Q&&!re)){if(!Q||!re){C(Z=>({...Z,[r]:t("settings.validation.routePair")}));return}if(i[Q]){C(Z=>({...Z,[r]:t("settings.validation.routeDuplicate",{model:Q})}));return}i[Q]=re}}C(K=>({...K,[r]:null})),u(r),ue(r);try{const K=x.find(Q=>Q.id===r);if(K){const Q={...K.routing??{},modelRoutes:i,defaults:((v=K.routing)==null?void 0:v.defaults)||s.defaults};await me.mutateAsync({endpoint:r,routing:Q}),o(re=>{if(!re)return re;const Z=[...re.customEndpoints??[]],G=Z.findIndex(de=>de.id===r);return G===-1?re:(Z[G]={...Z[G],routing:Q},{...re,customEndpoints:Z})}),await b.invalidateQueries({queryKey:Se.customEndpoints.all()})}else{const Q={...s,endpointRouting:{...s.endpointRouting??{},[r]:{defaults:((O=(P=s.endpointRouting)==null?void 0:P[r])==null?void 0:O.defaults)??s.defaults,modelRoutes:i,compatibility:(J=(F=s.endpointRouting)==null?void 0:F[r])==null?void 0:J.compatibility}},modelRoutes:r==="anthropic"?i:s.modelRoutes??{}};await le.mutateAsync({endpoint:r,nextConfig:Q}),o(Q)}m(Q=>{const re=Q[r]??[],Z=new Map(re.map(G=>[G.source.trim(),G.id]));return{...Q,[r]:Object.entries(i).map(([G,de])=>({id:Z.get(G.trim())??Be(),source:G,target:de}))}}),n({title:t("modelManagement.toast.routesSaved"),variant:"success"}),h.refetch()}catch(K){n({title:t("modelManagement.toast.routesSaveFailure",{message:ce(K).message}),variant:"error"})}finally{u(null),xe()}},handleCompatibilityEnabledChange:ee,sanitizeDraftsForProvider:r=>{m(g=>{const i={};for(const[v,P]of Object.entries(g))i[v]=P.filter(O=>!Jt(O.target.trim(),r));return i})}}}function hs(a,t){const{t:n,pushToast:s,config:o,setConfig:h,configQuery:x,customEndpoints:j,ensureConfig:y}=a,{sanitizeDraftsForProvider:b}=t??{},[d,m]=f.useState(""),[l,C]=f.useState("all"),[N,u]=f.useState(!1),[w,k]=f.useState("create"),[M,R]=f.useState(void 0),[X,_]=f.useState(null),[T,c]=f.useState({}),[S,L]=f.useState(!1),[V,q]=f.useState(null),[se,A]=f.useState(!0),[ne,ae]=f.useState({}),[E,I]=f.useState(null),U=(o==null?void 0:o.providers)??[],we=U.length,oe=f.useMemo(()=>U.filter(D=>{var $;if(!(l==="all"||(D.type??"custom")===l))return!1;const H=d.trim().toLowerCase();return H?[D.id,D.label??"",D.baseUrl,D.defaultModel??"",...(($=D.models)==null?void 0:$.map(Y=>Y.id))??[]].join(" ").toLowerCase().includes(H):!0}),[d,l,U]),ie=f.useMemo(()=>{const D=new Map;for(const z of U){if(!z.defaultModel||!z.models)continue;const H=z.models.find(p=>p.id===z.defaultModel);H&&D.set(z.id,Xt(H))}return D},[U]),he=f.useMemo(()=>[{key:"anthropic-beta",value:"claude-code-20250219,interleaved-thinking-2025-05-14,fine-grained-tool-streaming-2025-05-14",label:n("providers.testDialog.options.beta.label"),description:n("providers.testDialog.options.beta.description")}],[n]),ue=()=>{y()&&(k("create"),R(void 0),u(!0))},xe=D=>{y()&&(k("edit"),R(D),u(!0))},ge=async D=>{if(!o)throw new Error(n("settings.toast.missingConfig"));const z=w==="create"?[...U,D]:U.map(p=>M&&p.id===M.id?{...D,id:M.id}:p),H={...o,providers:z};await Te.saveConfig(H),h(H),x.refetch(),s({title:w==="create"?n("providers.toast.createSuccess",{name:D.label||D.id}):n("providers.toast.updateSuccess",{name:D.label||D.id}),variant:"success"})},fe=(D,z)=>{c(H=>({...H,[D]:z}))},je=async(D,z)=>{_(D.id);try{const H=z&&(z.headers||z.query)?{headers:z.headers&&Object.keys(z.headers).length>0?z.headers:void 0,query:z.query&&z.query.trim().length>0?z.query.trim():void 0}:void 0,p=await Le.testProvider(D.id,H);if(p.ok){fe(D.id,{ok:!0,status:p.status,statusText:p.statusText,durationMs:p.durationMs,testedAt:Date.now()}),s({title:n("providers.toast.testSuccess"),description:n("providers.toast.testSuccessDesc",{status:p.status,duration:p.durationMs?`${p.durationMs} ms`:"—"}),variant:"success"});return}fe(D.id,{ok:!1,status:p.status,statusText:p.statusText,durationMs:p.durationMs,message:`${p.status} ${p.statusText}`,testedAt:Date.now()}),s({title:n("providers.toast.testFailure",{message:`${p.status} ${p.statusText}`}),variant:"error"})}catch(H){const p=ce(H),$=p.status?`${p.status} ${p.message}`:p.message;fe(D.id,{ok:!1,status:p.status,message:$,testedAt:Date.now()}),s({title:n("providers.toast.testFailure",{message:$}),variant:"error"})}finally{_(null)}},Fe=D=>{var Pe,ke;if(!(!!((Pe=D.defaultModel)!=null&&Pe.trim())||!!((ke=D.models)!=null&&ke.some(ee=>ee.id.trim().length>0)))){I(D);return}if(D.type!=="anthropic"){je(D);return}const H=D.extraHeaders??{},p=new Map(he.map(ee=>[ee.key.toLowerCase(),ee])),$={};let Y=!0;for(const ee of he){const ye=Object.entries(H).find(([De])=>De.toLowerCase()===ee.key.toLowerCase());if(!ye)continue;const[Ee,Ce]=ye;String(Ce??"")!==ee.value&&(Y=!1,$[Ee]=String(Ce??""))}for(const[ee,ye]of Object.entries(H))p.has(ee.toLowerCase())||($[ee]=String(ye??""));ae($),A(Y),q(D),L(!0)},Me=()=>{L(!1),q(null),A(!0),ae({})};return{providers:U,providerCount:we,filteredProviders:oe,providerSearch:d,setProviderSearch:m,providerTypeFilter:l,setProviderTypeFilter:C,defaultLabels:ie,drawerOpen:N,setDrawerOpen:u,drawerMode:w,setDrawerMode:k,editingProvider:M,setEditingProvider:R,testingProviderId:X,testResults:T,testDialogOpen:S,testDialogProvider:V,testDialogUsePreset:se,setTestDialogUsePreset:A,testDialogPreservedExtras:ne,noModelDialogProvider:E,setNoModelDialogProvider:I,anthropicTestHeaderOptions:he,handleOpenCreate:ue,handleOpenEdit:xe,handleProviderSubmit:ge,handleDeleteProvider:async D=>{var ee,ye,Ee,Ce,De,Xe;if(!y())return;const z=U.filter(le=>le.id!==D.id),H=le=>{const me={};if(!le)return me;for(const[Ie,Ae]of Object.entries(le)){if(!Ae)continue;const[r]=Ae.split(":");r&&r===D.id||Ae===D.id||(me[Ie]=Ae)}return me},p=(o==null?void 0:o.endpointRouting)??{},$=H(((ee=p.anthropic)==null?void 0:ee.modelRoutes)??(o==null?void 0:o.modelRoutes)??{}),Y=H(((ye=p.openai)==null?void 0:ye.modelRoutes)??{}),Pe=((o==null?void 0:o.customEndpoints)??j).map(le=>{const me=le.routing,Ie=me==null?void 0:me.modelRoutes;return Ie?{...le,routing:{...me,defaults:me.defaults??o.defaults,modelRoutes:H(Ie)}}:le}),ke={...o,providers:z,modelRoutes:$,customEndpoints:Pe,endpointRouting:{anthropic:{defaults:((Ee=p.anthropic)==null?void 0:Ee.defaults)??o.defaults,modelRoutes:$,compatibility:(Ce=p.anthropic)==null?void 0:Ce.compatibility},openai:{defaults:((De=p.openai)==null?void 0:De.defaults)??o.defaults,modelRoutes:Y,compatibility:(Xe=p.openai)==null?void 0:Xe.compatibility}}};try{await Te.saveConfig(ke),h(ke),b==null||b(D.id),(M==null?void 0:M.id)===D.id&&(u(!1),R(void 0),k("create")),s({title:n("providers.toast.deleteSuccess",{name:D.label||D.id}),variant:"success"}),x.refetch()}catch(le){s({title:n("providers.toast.deleteFailure",{message:ce(le).message}),variant:"error"})}},handleTestConnection:je,initiateTestConnection:Fe,closeTestDialog:Me,confirmTestDialog:async()=>{if(!V)return;const D={};if(se)for(const p of he)D[p.key]=p.value;const z=new Map(he.map(p=>[p.key.toLowerCase(),p]));for(const[p,$]of Object.entries(ne))z.get(p.toLowerCase())&&se||(D[p]=$);const H=V;Me(),await je(H,{headers:Object.keys(D).length>0?D:void 0})}}}const xs=["anthropic","openai-auto","openai-chat","openai-responses"];function gs({open:a,endpoint:t,onClose:n,onSuccess:s}){const{t:o}=W(),[h,x]=f.useState({id:"",label:"",paths:[{path:"",protocol:"openai-auto"}],enabled:!0});f.useEffect(()=>{if(a){if(t){const u=t.paths&&t.paths.length>0?t.paths:t.path&&t.protocol?[{path:t.path,protocol:t.protocol}]:[{path:"",protocol:"openai-auto"}];x({id:t.id,label:t.label,paths:u,enabled:t.enabled!==!1});return}x({id:"",label:"",paths:[{path:"",protocol:"openai-auto"}],enabled:!0})}},[t,a]);const j=et({mutationFn:ze.create,invalidateKeys:[Se.customEndpoints.all()],successToast:()=>({title:o("modelManagement.createEndpointSuccess")}),errorToast:u=>({title:o("modelManagement.createEndpointError",{error:u.message})}),onSuccess:async()=>{s(),n()}}),y=et({mutationFn:u=>ze.update(u.id,u.updates),invalidateKeys:[Se.customEndpoints.all()],successToast:()=>({title:o("modelManagement.updateEndpointSuccess")}),errorToast:u=>({title:o("modelManagement.updateEndpointError",{error:u.message})}),onSuccess:async()=>{s(),n()}}),b=()=>{x(u=>({...u,paths:[...u.paths,{path:"",protocol:"anthropic"}]}))},d=u=>{h.paths.length!==1&&x(w=>({...w,paths:w.paths.filter((k,M)=>M!==u)}))},m=(u,w,k)=>{x(M=>{const R=[...M.paths];return R[u]={...R[u],[w]:k},{...M,paths:R}})},l=u=>{if(u==null||u.preventDefault(),!h.id.trim()||!h.label.trim())return;for(const k of h.paths)if(!k.path.trim())return;const w=h.paths.map(k=>({path:k.path.trim(),protocol:k.protocol}));if(t){y.mutate({id:t.id,updates:{label:h.label.trim(),paths:w,enabled:h.enabled}});return}j.mutate({id:h.id.trim(),label:h.label.trim(),paths:w,enabled:h.enabled})},C=j.isPending||y.isPending,N=h.paths.length===0?o("modelManagement.atLeastOnePath"):!h.id.trim()||!h.label.trim()?o("modelManagement.endpointValidationError"):h.paths.some(u=>!u.path.trim())?o("modelManagement.pathValidationError"):null;return e.jsx($e,{open:a,onOpenChange:u=>!u&&n(),children:e.jsxs(He,{className:"max-w-lg",onInteractOutside:u=>u.preventDefault(),children:[e.jsxs(Ue,{children:[e.jsx(qe,{children:o(t?"modelManagement.editEndpoint":"modelManagement.createEndpoint")}),e.jsx(Ve,{className:"truncate font-mono text-xs",children:t?t.id:o("modelManagement.endpointRoutingHint")})]}),e.jsx(_e,{children:e.jsxs("form",{id:"endpoint-form",onSubmit:l,className:"space-y-6",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs(Ne,{children:[o("modelManagement.endpointId")," ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsx(pe,{value:h.id,onChange:u=>x(w=>({...w,id:u.target.value})),placeholder:o("modelManagement.endpointIdPlaceholder"),disabled:!!t,required:!0}),e.jsx("p",{className:"text-xs text-muted-foreground",children:o("modelManagement.endpointIdHint")})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs(Ne,{children:[o("modelManagement.endpointLabel")," ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsx(pe,{value:h.label,onChange:u=>x(w=>({...w,label:u.target.value})),placeholder:o("modelManagement.endpointLabelPlaceholder"),required:!0})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs(Ne,{children:[o("modelManagement.endpointPaths")," ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsxs(B,{type:"button",variant:"ghost",size:"sm",onClick:b,children:[e.jsx(wt,{className:"mr-1 h-3 w-3"}),o("modelManagement.addPath")]})]}),e.jsx("div",{className:"space-y-3",children:h.paths.map((u,w)=>e.jsxs("div",{className:"space-y-2 rounded-xl border border-transparent bg-card p-3 shadow-[var(--surface-shadow)]",children:[e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsxs("div",{className:"flex-1 space-y-2",children:[e.jsx(pe,{value:u.path,onChange:k=>m(w,"path",k.target.value),placeholder:o("modelManagement.endpointPathPlaceholder"),required:!0}),e.jsxs(tt,{value:u.protocol,onValueChange:k=>m(w,"protocol",k),children:[e.jsx(st,{children:e.jsx(at,{})}),e.jsx(rt,{children:xs.map(k=>e.jsx(Oe,{value:k,children:o(k==="anthropic"?"modelManagement.protocolAnthropic":k==="openai-auto"?"modelManagement.protocolOpenAI":k==="openai-chat"?"modelManagement.protocolOpenAIChat":"modelManagement.protocolOpenAIResponses")},k))})]})]}),h.paths.length>1?e.jsx(B,{type:"button",variant:"ghost",size:"sm",onClick:()=>d(w),className:"text-destructive",children:e.jsx(ft,{className:"h-4 w-4"})}):null]}),e.jsxs("div",{className:"space-y-1 text-xs text-muted-foreground",children:[w===0?e.jsx("p",{children:o("modelManagement.endpointPathHint")}):null,e.jsx("p",{children:o(`modelManagement.protocolHints.${u.protocol}`)})]})]},`${u.protocol}-${w}`))}),N?e.jsx("p",{className:"text-xs text-destructive",children:N}):null]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(nt,{id:"endpoint-enabled",checked:h.enabled,onCheckedChange:u=>x(w=>({...w,enabled:u}))}),e.jsx(Ne,{htmlFor:"endpoint-enabled",children:o("modelManagement.endpointEnabled")})]}),t?null:e.jsx("div",{className:"rounded-xl bg-accent p-4",children:e.jsx("p",{className:"text-sm text-primary",children:o("modelManagement.endpointRoutingHint")})})]})}),e.jsxs(Ke,{children:[e.jsx(B,{variant:"outline",onClick:n,disabled:C,children:o("common.cancel")}),e.jsx(B,{type:"submit",form:"endpoint-form",disabled:C,children:o(C?"common.saving":t?"common.save":"common.create")})]})]})})}function fs({open:a,provider:t,onClose:n,onEdit:s}){const{t:o}=W();return t?e.jsx($e,{open:a,onOpenChange:h=>!h&&n(),children:e.jsxs(He,{className:"max-w-md",children:[e.jsxs(Ue,{children:[e.jsx(qe,{children:o("providers.noModelDialog.title")}),e.jsx(Ve,{children:o("providers.noModelDialog.subtitle",{name:t.label||t.id})})]}),e.jsxs(_e,{className:"space-y-4",children:[e.jsx("div",{className:"rounded-xl bg-accent p-4 text-sm text-primary",children:o("providers.noModelDialog.description")}),e.jsx("p",{className:"text-sm text-muted-foreground",children:o("providers.noModelDialog.hint")})]}),e.jsxs(Ke,{children:[e.jsx(B,{variant:"outline",onClick:n,children:o("common.actions.close")}),e.jsx(B,{onClick:()=>s(t),children:o("providers.noModelDialog.primary")})]})]})}):null}function bs({dialog:a,currentRoutes:t,onConfirm:n,onClose:s}){const{t:o}=W();if(!a)return null;const{endpoint:h,preset:x}=a,j=x.modelRoutes??{},y={};for(const N of t){const u=N.source.trim(),w=N.target.trim();u&&w&&(y[u]=w)}const b=new Set([...Object.keys(y),...Object.keys(j)]),d=[],m=[],l=[];for(const N of b){const u=N in y,w=N in j;w&&!u?d.push([N,j[N]]):u&&!w?m.push([N,y[N]]):u&&w&&y[N]!==j[N]&&l.push([N,y[N],j[N]])}const C=d.length>0||m.length>0||l.length>0;return e.jsx($e,{open:!0,onOpenChange:N=>!N&&s(),children:e.jsxs(He,{className:"max-w-2xl",children:[e.jsxs(Ue,{children:[e.jsx(qe,{children:o("modelManagement.presets.diffTitle")}),e.jsx(Ve,{children:o("modelManagement.presets.diffDescription",{name:x.name})})]}),e.jsx(_e,{children:C?e.jsxs("div",{className:"max-h-80 space-y-2 rounded-xl bg-secondary/50 p-3 text-sm",children:[d.map(([N,u])=>e.jsxs("div",{className:"flex items-center gap-2 rounded-xl bg-success-bg px-2 py-1.5 text-success",children:[e.jsx(te,{variant:"outline",className:"border-success/30 text-xs",children:o("modelManagement.presets.diffAdded")}),e.jsx("span",{className:"truncate",children:N}),e.jsx(be,{className:"h-3 w-3 flex-shrink-0"}),e.jsx("span",{className:"truncate",children:u})]},`add-${N}`)),m.map(([N,u])=>e.jsxs("div",{className:"flex items-center gap-2 rounded-xl bg-error-bg px-2 py-1.5 text-error",children:[e.jsx(te,{variant:"outline",className:"border-error/30 text-xs",children:o("modelManagement.presets.diffRemoved")}),e.jsx("span",{className:"truncate",children:N}),e.jsx(be,{className:"h-3 w-3 flex-shrink-0"}),e.jsx("span",{className:"truncate",children:u})]},`rm-${N}`)),l.map(([N,u,w])=>e.jsxs("div",{className:"flex items-center gap-2 rounded-xl bg-warning-bg px-2 py-1.5 text-warning",children:[e.jsx(te,{variant:"outline",className:"border-warning/30 text-xs",children:o("modelManagement.presets.diffChanged")}),e.jsx("span",{className:"truncate",children:N}),e.jsx(be,{className:"h-3 w-3 flex-shrink-0"}),e.jsx("span",{className:"truncate line-through opacity-60",children:u}),e.jsx(be,{className:"h-3 w-3 flex-shrink-0"}),e.jsx("span",{className:"truncate",children:w})]},`chg-${N}`))]}):e.jsx("p",{className:"rounded-xl bg-secondary/50 py-8 text-center text-sm text-muted-foreground",children:o("modelManagement.presets.diffEmpty")})}),e.jsxs(Ke,{children:[e.jsx(B,{variant:"outline",onClick:s,children:o("common.cancel")}),e.jsx(B,{onClick:()=>n(h,x),disabled:!C,children:o("modelManagement.presets.diffConfirm")})]})]})})}function vs({open:a,providerId:t,providerName:n,existingModelIds:s,draft:o,onImport:h,onClose:x}){const{t:j}=W(),{pushToast:y}=Ut(),[b,d]=f.useState({phase:"loading"}),[m,l]=f.useState(""),[C,N]=f.useState(new Set),u=f.useRef(o);u.current=o,f.useEffect(()=>{if(!a)return;d({phase:"loading"}),l(""),N(new Set);let c=!1;return Le.probeModels(t,u.current).then(S=>{var L;c||(S.ok&&S.models?d({phase:"ready",models:S.models}):d({phase:"error",message:((L=S.statusText)==null?void 0:L.trim())||j("providers.drawer.probe.failedFallback"),status:S.status>0?S.status:void 0}))}).catch(S=>{c||d({phase:"error",message:ce(S).message})}),()=>{c=!0}},[a,t,j]);const w=f.useMemo(()=>new Set(s),[s]),k=f.useMemo(()=>{if(b.phase!=="ready")return[];const c=m.trim().toLowerCase();return c?b.models.filter(S=>S.id.toLowerCase().includes(c)||(S.label??"").toLowerCase().includes(c)):b.models},[b,m]),M=f.useMemo(()=>k.map(c=>c.id).filter(c=>!w.has(c)),[k,w]),R=c=>{N(S=>{const L=new Set(S);return L.has(c)?L.delete(c):L.add(c),L})},X=()=>{N(c=>new Set([...c,...M]))},_=()=>{N(new Set)},T=()=>{if(b.phase!=="ready"||C.size===0)return;const c=b.models.filter(S=>C.has(S.id));h(c),y({title:j("providers.drawer.probe.importSuccess",{count:c.length}),variant:"success"}),x()};return e.jsx($e,{open:a,onOpenChange:c=>!c&&x(),children:e.jsxs(He,{className:"max-w-2xl",children:[e.jsxs(Ue,{children:[e.jsx(qe,{children:j("providers.drawer.probe.title")}),e.jsx(Ve,{children:j("providers.drawer.probe.subtitle",{name:n})})]}),e.jsxs(_e,{className:"space-y-4",children:[b.phase==="loading"?e.jsx("p",{className:"rounded-xl bg-secondary/50 px-4 py-6 text-center text-sm text-muted-foreground",children:j("providers.drawer.probe.loading")}):null,b.phase==="error"?e.jsxs("div",{className:"space-y-2 rounded-xl border border-warning/30 bg-warning-bg p-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("p",{className:"text-sm font-semibold text-warning",children:j("providers.drawer.probe.failedTitle")}),b.status?e.jsxs(te,{variant:"warning",className:"shrink-0",children:["HTTP ",b.status]}):null]}),e.jsx("p",{className:"break-words text-xs leading-relaxed text-warning",children:b.message}),e.jsx("p",{className:"text-xs text-muted-foreground",children:j("providers.drawer.probe.failedHint")})]}):null,b.phase==="ready"?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(pe,{value:m,onChange:c=>l(c.target.value),placeholder:j("providers.drawer.probe.searchPlaceholder"),className:"h-9"}),e.jsx("span",{className:"shrink-0 text-xs text-muted-foreground",children:j("providers.drawer.probe.totalCount",{count:b.models.length})})]}),e.jsxs("div",{className:"flex items-center justify-between gap-3 text-xs",children:[e.jsxs("div",{className:"flex gap-2",children:[e.jsx(B,{type:"button",variant:"outline",size:"sm",className:"h-auto bg-card px-2 py-1 text-xs",onClick:X,disabled:M.length===0,children:j("providers.drawer.probe.selectAll")}),e.jsx(B,{type:"button",variant:"outline",size:"sm",className:"h-auto bg-card px-2 py-1 text-xs",onClick:_,disabled:C.size===0,children:j("providers.drawer.probe.clearSelection")})]}),e.jsx("span",{className:"text-muted-foreground",children:j("providers.drawer.probe.selectedCount",{count:C.size})})]}),k.length===0?e.jsx("p",{className:"rounded-xl bg-secondary/50 px-4 py-6 text-center text-sm text-muted-foreground",children:j("providers.drawer.probe.emptyResult")}):e.jsx("div",{className:"grid max-h-80 gap-1 overflow-y-auto",children:k.map(c=>{const S=w.has(c.id),L=C.has(c.id);return e.jsxs("label",{className:ve("flex items-center gap-2 rounded-lg border border-border bg-card px-3 py-2.5 transition-colors",S?"cursor-not-allowed opacity-60":"cursor-pointer hover:border-primary/20 hover:bg-accent/50",L&&"border-primary/30 bg-primary/10"),children:[e.jsx("input",{type:"checkbox",className:"h-4 w-4 shrink-0 rounded border-input accent-primary",checked:L,disabled:S,onChange:()=>R(c.id)}),e.jsx("span",{className:"min-w-0 flex-1 truncate font-mono text-xs",children:c.id}),c.label?e.jsx("span",{className:"shrink-0 truncate text-xs text-muted-foreground",children:c.label}):null,S?e.jsx(te,{variant:"secondary",className:"shrink-0",children:j("providers.drawer.probe.imported")}):null]},c.id)})})]}):null]}),e.jsxs(Ke,{children:[e.jsx(B,{variant:"outline",onClick:x,children:j("common.actions.cancel")}),e.jsx(B,{onClick:T,disabled:b.phase!=="ready"||C.size===0,children:j("providers.drawer.probe.importAction",{count:C.size})})]})]})})}function js({open:a,mode:t,provider:n,existingProviderIds:s,onClose:o,onSubmit:h,testResult:x,testing:j,onTest:y,onDelete:b}){const{t:d}=W(),m=Yt({mode:t,provider:n,existingProviderIds:s}),{form:l,errors:C,advancedOpen:N,providerIdRef:u}=m,[w,k]=f.useState(!1),[M,R]=f.useState(null),[X,_]=f.useState("basics"),[T,c]=f.useState(!1),[S,L]=f.useState(!1),[V,q]=f.useState(null),se=f.useRef(null),A=f.useRef(null);f.useEffect(()=>{a&&(m.resetForm(),R(null),k(!1),_("basics"),c(!1),L(!1),q(null))},[a,n,t,m.resetForm]);const ne=f.useRef(o);ne.current=o,f.useEffect(()=>{if(!a)return;const p=$=>{$.key==="Escape"&&(document.querySelector('[role="dialog"][data-state="open"], [role="listbox"][data-state="open"], [data-radix-popper-content-wrapper]')||ne.current())};return window.addEventListener("keydown",p),()=>window.removeEventListener("keydown",p)},[a]),f.useEffect(()=>{if(a){if(t==="create"&&u.current){u.current.focus();return}A.current&&A.current.focus()}},[a,t]);const ae=t==="create",E=f.useMemo(()=>l.models.filter(p=>p.id.trim().length>0),[l.models]),I=f.useMemo(()=>{var p;return((p=dt.find($=>$.value===l.type))==null?void 0:p.label)??"Custom"},[l.type]),U=l.label.trim()||l.id.trim()||d("providers.drawer.summary.untitled"),we=f.useMemo(()=>[{label:d("providers.drawer.summary.type"),value:I},{label:d("providers.drawer.summary.auth"),value:Zt(l.type,l.authMode,d)},{label:d("providers.drawer.summary.models"),value:E.length.toLocaleString()}],[E.length,l.authMode,l.type,I,d]),oe=async()=>{R(null);const p=m.validateErrors();if(Object.keys(p).length>0){p.baseUrl||p.id||p.extraHeaders?(_("basics"),p.extraHeaders&&m.setAdvancedOpen(!0)):p.models&&_("models");return}k(!0);try{const $=m.serialize();await h($)}catch($){R(d("providers.drawer.toast.saveFailure",{message:ce($).message})),k(!1);return}k(!1),o()};if(!a)return null;const ie=Re.findIndex(p=>p.id===X),he=ie===Re.length-1,ue=l.id.trim(),xe=ue.length>0&&(t==="edit"||!s.includes(ue)),ge=l.baseUrl.trim();let fe=ge.length>0;if(fe)try{new URL(ge)}catch{fe=!1}let je=!l.defaultModel||l.models.some(p=>p.id===l.defaultModel);if(je){const p=new Set;je=!l.models.some($=>{const Y=$.id.trim();return Y.length===0||p.has(Y)?!0:(p.add(Y),!1)})}const Fe={basics:xe&&fe,models:je},Me=Re.map((p,$)=>{let Y;return $===ie?Y="current":$<ie?Y=Fe[p.id]?"complete":"error":Y="upcoming",{id:p.id,label:d(p.labelKey),status:Y}}),We=p=>{_(p)},Je=async()=>{L(!0),q(null);try{const p=await Le.testProvider(l.id.trim()||"draft",{provider:m.serialize()});q({ok:p.ok,status:p.status,statusText:p.statusText,durationMs:p.durationMs,message:p.ok?void 0:p.statusText,testedAt:Date.now()})}catch(p){q({ok:!1,message:ce(p).message,testedAt:Date.now()})}finally{L(!1)}},D=()=>{ie<Re.length-1&&_(Re[ie+1].id)},z=()=>{ie>0&&_(Re[ie-1].id)},H={form:l,errors:C,isCreate:ae,advancedOpen:N,onAdvancedOpenChange:m.setAdvancedOpen,idInputRef:u,onProviderIdChange:m.handleProviderIdChange,onFieldChange:m.handleFieldChange,onTypeChange:m.handleTypeChange,onAuthModeChange:m.handleAuthModeChange,onNonStreamViaStreamChange:m.handleProviderNonStreamViaStreamChange,onUseAbsoluteUrlChange:m.handleUseAbsoluteUrlChange,onStreamUsageChange:m.handleStreamUsageChange,onAddHeader:m.handleAddHeader,onRemoveHeader:m.handleRemoveHeader,onHeaderChange:m.handleHeaderChange,onModelIdChange:m.handleModelIdChange,onModelChange:m.handleModelChange,onAddModel:m.handleAddModel,onRemoveModel:m.handleRemoveModel,onModelNonStreamViaStreamChange:m.handleModelNonStreamViaStreamChange,onSetDefaultModel:m.handleSetDefaultModel,testVerification:t==="edit"?y?{available:!0,testing:j??!1,result:x??null,onTest:y}:void 0:{available:!0,testing:S,result:V,onTest:()=>void Je()},probeModels:{available:l.baseUrl.trim().length>0,onProbe:()=>c(!0)}};return e.jsxs("div",{className:"fixed inset-0 z-50 flex",children:[e.jsx("div",{className:"flex-1 bg-background/95","aria-hidden":"true"}),e.jsxs("aside",{ref:se,role:"dialog","aria-modal":"true","aria-labelledby":"provider-drawer-title","aria-describedby":"provider-drawer-desc",className:"flex h-full min-h-0 w-full max-w-5xl flex-col border-l border-border bg-background shadow-[var(--surface-shadow-lg)]",children:[e.jsxs("header",{className:"border-b border-border bg-secondary px-6 py-5",children:[e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx("div",{className:"inline-flex rounded-full border border-primary/20 bg-primary/10 px-3 py-1 text-[11px] font-medium uppercase tracking-[0.18em] text-primary",children:d(ae?"providers.drawer.quickStart":"providers.drawer.editTitle")}),e.jsxs("div",{children:[e.jsx("h2",{id:"provider-drawer-title",className:"text-lg font-semibold tracking-[-0.02em]",children:d(ae?"providers.drawer.createTitle":"providers.drawer.editTitle")}),e.jsx("p",{id:"provider-drawer-desc",className:"text-sm text-muted-foreground",children:d("providers.drawer.description")})]})]}),e.jsx(B,{type:"button",ref:A,variant:"outline",onClick:o,className:"bg-card",children:d("common.actions.close")})]}),e.jsx("div",{className:"mt-4 grid gap-3 md:grid-cols-3",children:we.map(p=>e.jsxs("div",{className:"rounded-xl border border-transparent bg-card px-4 py-3 shadow-[var(--surface-shadow)]",children:[e.jsx("p",{className:"text-[11px] font-medium uppercase tracking-[0.16em] text-muted-foreground",children:p.label}),e.jsx("p",{className:"mt-2 text-sm font-semibold text-foreground",children:p.value})]},p.label))})]}),e.jsxs("div",{className:"grid min-h-0 flex-1 overflow-hidden xl:grid-cols-[minmax(0,1fr)_280px]",children:[e.jsxs("div",{className:"min-h-0 overflow-y-auto px-6 py-5 pb-10",children:[e.jsx(es,{steps:Me,current:X,onSelect:We,className:"mb-6"}),X==="basics"?e.jsx(ts,{...H}):null,X==="models"?e.jsx(ss,{...H}):null]}),e.jsx("aside",{className:"hidden min-h-0 overflow-y-auto border-l border-border/45 bg-secondary/40 px-5 py-5 xl:block",children:e.jsxs("div",{className:"sticky top-0 space-y-5",children:[e.jsxs("div",{className:"rounded-xl border border-transparent bg-card p-4 shadow-[var(--surface-shadow)]",children:[e.jsx("p",{className:"text-[11px] font-medium uppercase tracking-[0.16em] text-muted-foreground",children:d("providers.drawer.formSummary")}),e.jsx("p",{className:"mt-2 text-base font-semibold",children:U}),e.jsx("div",{className:"mt-4 space-y-3 text-sm",children:we.map(p=>e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[e.jsx("span",{className:"text-muted-foreground",children:p.label}),e.jsx("span",{className:"text-right font-medium",children:p.value})]},p.label))})]}),e.jsxs("div",{className:"rounded-xl border border-transparent bg-card p-4 shadow-[var(--surface-shadow)]",children:[e.jsx("p",{className:"text-[11px] font-medium uppercase tracking-[0.16em] text-muted-foreground",children:d("providers.drawer.sections.checklist")}),e.jsxs("ul",{className:"mt-3 space-y-2 text-sm text-muted-foreground",children:[e.jsx("li",{children:d("providers.drawer.hints.checkUrl")}),e.jsx("li",{children:d("providers.drawer.hints.checkAuth")}),e.jsx("li",{children:d("providers.drawer.hints.checkModels")})]})]}),N&&e.jsxs("div",{className:"rounded-xl bg-accent p-4 text-sm text-foreground",children:[e.jsx("p",{className:"font-medium text-primary",children:d("providers.drawer.hints.advancedTitle")}),e.jsx("p",{className:"mt-2 text-xs text-muted-foreground",children:d("providers.drawer.hints.advancedBody")})]})]})})]}),e.jsxs("footer",{className:"flex items-center justify-between gap-3 border-t border-border bg-secondary px-6 py-4 text-sm",children:[e.jsxs("div",{className:"flex flex-col gap-1 text-xs",children:[!ae&&b?e.jsx("button",{type:"button",onClick:b,disabled:w,className:"text-muted-foreground underline-offset-2 hover:text-destructive hover:underline disabled:opacity-50",children:d("providers.actions.delete")}):null,M?e.jsx("span",{className:"text-destructive","aria-live":"polite",children:M}):null]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(B,{type:"button",variant:"outline",onClick:o,disabled:w,className:"bg-card",children:d("common.actions.cancel")}),e.jsx(B,{type:"button",variant:"outline",onClick:z,disabled:w||ie===0,className:"bg-card",children:d("common.actions.previous")}),he?null:e.jsx(B,{type:"button",onClick:D,disabled:w,children:d("common.actions.next")}),e.jsx(B,{type:"button",onClick:oe,disabled:w,children:d(w?"common.actions.saving":"common.actions.save")})]})]})]}),e.jsx(vs,{open:T,providerId:(n==null?void 0:n.id)??(l.id.trim()||"draft"),providerName:(n==null?void 0:n.label)||l.label.trim()||l.id.trim()||d("providers.drawer.summary.untitled"),existingModelIds:l.models.map(p=>p.id.trim()).filter(Boolean),draft:m.serialize(),onImport:m.handleImportModels,onClose:()=>c(!1)})]})}function ys({provider:a,defaultModel:t,modelCount:n,requests24h:s,avgLatencyMs:o,routeCount:h,testResult:x,onTest:j,onEdit:y}){var N;const{t:b}=W(),d=a.label||a.id,m=d.slice(0,1).toUpperCase()||"?",l=((N=dt.find(u=>u.value===(a.type??"custom")))==null?void 0:N.label)??a.type??"custom",C=x?x.ok?"ok":"fail":"untested";return e.jsxs("div",{"data-testid":"provider-card",className:"flex flex-col rounded-lg border border-border bg-card p-4 transition-colors hover:border-primary/40",children:[e.jsxs("div",{className:"flex items-start gap-2.5",children:[e.jsx("div",{className:"flex h-9 w-9 shrink-0 items-center justify-center rounded-md bg-secondary text-sm font-semibold text-muted-foreground",children:m}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"truncate text-[13px] font-semibold text-foreground",title:d,children:d}),e.jsx(te,{variant:"outline",className:"shrink-0 rounded-full px-2 py-0 text-[10px] font-normal text-muted-foreground",children:l})]}),e.jsx("code",{className:"mt-0.5 block truncate font-mono text-[10.5px] text-muted-foreground",title:a.baseUrl,children:a.baseUrl})]}),e.jsx(Ns,{state:C})]}),e.jsxs("div",{className:"mt-3 grid grid-cols-3 gap-2",children:[e.jsx(it,{label:b("providers.card.statModels"),value:n>0?String(n):"—"}),e.jsx(it,{label:b("providers.card.statRequests24h"),value:s!=null?s.toLocaleString():"—"}),e.jsx(it,{label:b("providers.card.statAvgLatency"),value:ls(o,b("common.units.ms"),{maximumFractionDigits:0})})]}),e.jsxs("div",{className:"mt-2.5 flex items-center gap-1.5 text-[11px] text-muted-foreground",children:[e.jsx("span",{className:"shrink-0",children:b("providers.card.defaultModelLabel")}),t?e.jsx("code",{className:"min-w-0 truncate rounded bg-secondary px-1.5 py-0.5 font-mono text-[10.5px] text-foreground",title:t,children:t}):e.jsx("span",{children:"—"})]}),e.jsxs("div",{className:"mt-3 flex items-center gap-1.5 border-t border-border pt-2.5 text-[10.5px] text-muted-foreground",children:[e.jsx("span",{className:"truncate",children:b("providers.card.routeCount",{count:h})}),e.jsxs("div",{className:"ml-auto flex shrink-0 gap-1.5",children:[e.jsx(B,{variant:"outline",size:"sm",className:"h-7 px-2.5 text-[11px]",onClick:j,children:b("providers.actions.test")}),e.jsx(B,{variant:"outline",size:"sm",className:"h-7 px-2.5 text-[11px]",onClick:y,children:b("providers.actions.edit")})]})]})]})}function it({label:a,value:t}){return e.jsxs("div",{className:"rounded bg-secondary/60 px-2.5 py-2",children:[e.jsx("div",{className:"text-[10px] text-muted-foreground",children:a}),e.jsx("div",{className:"metric-number mt-0.5 truncate text-[13px] font-semibold text-foreground",children:t})]})}function Ns({state:a}){const{t}=W();return a==="ok"?e.jsx(te,{variant:"success",className:"shrink-0 rounded-full px-1.5 py-0 text-[10px]",children:t("providers.card.health.ok")}):a==="fail"?e.jsx(te,{variant:"destructive",className:"shrink-0 rounded-full px-1.5 py-0 text-[10px]",children:t("providers.card.health.fail")}):e.jsx(te,{variant:"secondary",className:"shrink-0 rounded-full px-1.5 py-0 text-[10px]",children:t("providers.card.health.untested")})}function ws({providersLength:a,filteredProviders:t,testResults:n,providerSearch:s,providerTypeFilter:o,configPending:h,defaultLabels:x,config:j,customEndpoints:y,onTest:b,onEdit:d,onProviderSearchChange:m,onProviderTypeChange:l,onResetFilters:C}){const{t:N}=W(),[u,w]=f.useState("usage"),k=bt(Se.stats.model(1,50),{url:"/api/stats/model",method:"GET",params:{days:1,limit:50}},{retry:!1}),{requestsByProvider:M,latencyByProvider:R}=f.useMemo(()=>{const T=new Map,c=new Map,S=new Map;for(const V of k.data??[]){const q=V.provider;T.set(q,(T.get(q)??0)+V.requests),V.avgLatencyMs>0&&(c.set(q,(c.get(q)??0)+V.avgLatencyMs*V.requests),S.set(q,(S.get(q)??0)+V.requests))}const L=new Map;for(const V of T.keys()){const q=S.get(V)??0;L.set(V,q>0?(c.get(V)??0)/q:null)}return{requestsByProvider:T,latencyByProvider:L}},[k.data]),X=f.useMemo(()=>{const T=new Map;for(const c of t)T.set(c.id,as(j,y,c.id).length);return T},[j,y,t]),_=f.useMemo(()=>{const T=[...t],c=(S,L)=>(S.label||S.id).localeCompare(L.label||L.id);return u==="usage"&&k.isSuccess?T.sort((S,L)=>(M.get(L.id)??0)-(M.get(S.id)??0)||c(S,L)):T.sort(c),T},[t,u,k.isSuccess,M]);return e.jsxs("div",{className:"space-y-3",children:[e.jsx(Qe,{className:"overflow-hidden",children:e.jsx(Ge,{className:"p-0",children:e.jsxs("div",{className:"flex flex-wrap items-center gap-2 bg-secondary/50 px-4 py-3",children:[e.jsx(pe,{value:s,onChange:T=>m(T.target.value),placeholder:N("providers.filters.searchPlaceholder"),className:"h-9 w-full sm:w-64"}),e.jsxs(tt,{value:o,onValueChange:l,children:[e.jsx(st,{className:"h-9 w-[130px] text-xs",children:e.jsx(at,{})}),e.jsxs(rt,{children:[e.jsx(Oe,{value:"all",children:N("providers.filters.typeAll")}),dt.map(T=>e.jsx(Oe,{value:T.value??"custom",children:T.label},T.value??"custom"))]})]}),e.jsxs(tt,{value:u,onValueChange:T=>w(T),children:[e.jsx(st,{className:"h-9 w-[104px] text-xs","aria-label":N("providers.list.sortLabel"),children:e.jsx(at,{})}),e.jsxs(rt,{children:[e.jsx(Oe,{value:"usage",children:N("providers.list.sortUsage")}),e.jsx(Oe,{value:"name",children:N("providers.list.sortName")})]})]}),e.jsx(te,{variant:"secondary",className:"shrink-0 rounded-full px-2.5 py-1 text-[11px]",children:t.length}),e.jsx(B,{variant:"ghost",size:"sm",onClick:C,disabled:!s.trim()&&o==="all",className:"h-9 shrink-0 rounded-full px-2.5 text-xs",children:N("common.actions.reset")})]})})}),h?e.jsx("div",{className:"flex min-h-[160px] items-center justify-center text-sm text-muted-foreground",children:N("common.loading")}):a===0?e.jsx(lt,{compact:!0,title:N("providers.emptyState"),description:e.jsxs(e.Fragment,{children:[e.jsx("p",{children:N("providers.emptyStateSub")}),e.jsx("p",{className:"mt-1",children:N("workbench.list.emptyHint")})]})}):t.length===0?e.jsx(lt,{compact:!0,title:N("providers.emptyFiltered")}):e.jsx("div",{className:"grid gap-3.5 sm:grid-cols-2 xl:grid-cols-3",children:_.map(T=>{var c;return e.jsx(ys,{provider:T,defaultModel:x.get(T.id),modelCount:((c=T.models)==null?void 0:c.length)??0,requests24h:k.isSuccess?M.get(T.id)??0:null,avgLatencyMs:k.isSuccess?R.get(T.id)??null:null,routeCount:X.get(T.id)??0,testResult:n[T.id]??null,onTest:()=>b(T),onEdit:()=>d(T)},T.id)})})]})}function ks({routing:a,endpoint:t,tabInfo:n,config:s,customEndpoints:o}){var w,k;const{t:h}=W(),x=a.routesByEndpoint[t]||[],j=a.savingRouteFor===t,y=a.savingCompatibilityPolicy,b=a.writingEndpoint===t,d=((w=n==null?void 0:n.protocols)==null?void 0:w.some(M=>M.startsWith("openai")))??t==="openai",m=rs(t,s,o),l=d?(m==null?void 0:m.enabled)??!1:!1,N=((k=n==null?void 0:n.protocols)==null?void 0:k.includes("anthropic"))??t==="anthropic"?vt:jt,u=new Set(x.map(M=>M.source.trim()).filter(Boolean));return e.jsx(Qe,{"data-testid":"endpoint-config-card",className:"shadow-[var(--surface-shadow)]",children:e.jsxs(Ge,{className:"space-y-3 p-4",children:[e.jsx("h3",{className:"text-[12.5px] font-semibold",children:h("workbench.endpointConfig.title")}),d?e.jsxs("div",{className:"flex items-center justify-between gap-2 border border-border/60 bg-secondary/30 px-2.5 py-2",children:[e.jsxs("div",{className:"min-w-0 space-y-0.5",children:[e.jsx(Ne,{className:"text-[11px] font-semibold uppercase tracking-[0.16em] text-muted-foreground",children:h("modelManagement.openaiCompatibility.toggleLabel")}),e.jsx("p",{className:"text-[10.5px] text-muted-foreground",children:h(l?"modelManagement.openaiCompatibility.enabledHint":"modelManagement.openaiCompatibility.disabledHint")})]}),e.jsx(nt,{"data-testid":"compatibility-toggle",checked:l,onCheckedChange:M=>void a.handleCompatibilityEnabledChange(t,M),disabled:y||b,"aria-label":h("modelManagement.openaiCompatibility.toggleLabel")})]}):null,e.jsxs("div",{children:[e.jsx("p",{className:"mb-1.5 text-[11px] text-muted-foreground",children:h("settings.routing.suggested")}),e.jsx("div",{className:"flex flex-wrap gap-1.5",children:N.map(M=>{const R=u.has(M);return e.jsx("button",{"data-testid":"suggestion-chip",type:"button",onClick:()=>a.handleAddSuggestion(t,M),disabled:j||R,className:ve("h-6 border px-2 text-[10.5px] transition-colors",R?"border-border bg-secondary/40 text-muted-foreground/50":"border-border bg-card hover:border-primary hover:text-primary"),children:M},`${t}-${M}`)})})]})]})})}const gt=6;function Ze({value:a,onChange:t,options:n,disabled:s,placeholder:o,ariaLabel:h}){const{t:x}=W(),j=f.useId(),[y,b]=f.useState(!1),[d,m]=f.useState(""),l=f.useRef(null),C=f.useRef(!1),[N,u]=qt(Vt.modelManagement.recentRouteTargets,[]),w=f.useMemo(()=>{const c=new Map;for(const S of n)c.set(S.value,S);return c},[n]),k=(c,S)=>S?[c.label,c.value,c.providerId??"",c.providerLabel??"",c.modelId??"",c.modelLabel??""].join(" ").toLowerCase().includes(S):!0,M=f.useMemo(()=>{const c=d.trim().toLowerCase(),S=n.filter(A=>k(A,c)),L=N.map(A=>w.get(A)??(c?void 0:{value:A,label:A,kind:"custom"})).filter(A=>!!A).filter(A=>k(A,c)).slice(0,gt),V=[];L.length>0&&V.push({key:"recent",label:x("modelManagement.targetPicker.recent"),options:L});const q=new Map,se=[];for(const A of S){if(A.kind==="custom"||!A.providerId){se.push(A);continue}const ne=`provider:${A.providerId}`,ae=q.get(ne);ae?ae.options.push(A):q.set(ne,{key:ne,label:A.providerLabel??A.providerId,options:[A]})}return V.push(...q.values()),se.length>0&&V.push({key:"custom",label:x("modelManagement.targetPicker.custom"),options:se,muted:!0}),V},[w,n,N,d,x]),R=M.reduce((c,S)=>c+S.options.length,0),X=c=>{t(c),u(S=>[c,...S.filter(L=>L!==c)].slice(0,gt)),m(""),C.current=!0,typeof document<"u"&&document.activeElement instanceof HTMLElement&&document.activeElement.blur(),b(!1),typeof window<"u"?window.requestAnimationFrame(()=>{C.current=!1}):C.current=!1},_=c=>c.kind==="passthrough"?x("modelManagement.targetPicker.passthrough"):c.kind==="custom"?x("modelManagement.targetPicker.customValue"):x("modelManagement.targetPicker.model"),T=c=>c.kind==="passthrough"||c.kind==="custom"?c.label:c.modelLabel??c.label;return e.jsxs(cs,{open:y,onOpenChange:c=>{c&&C.current||(b(c),c&&m(""))},children:[e.jsx(us,{asChild:!0,children:e.jsx(pe,{value:a,onChange:c=>{t(c.target.value),m(c.target.value),y||b(!0)},onFocus:()=>{m(""),b(!0)},onClick:()=>{y||b(!0)},placeholder:o,disabled:s,autoComplete:"off",role:"combobox","aria-label":h,"aria-expanded":y,"aria-controls":j,"aria-autocomplete":"list"})}),e.jsxs(ms,{className:"flex max-h-[min(28rem,var(--radix-popover-content-available-height))] flex-col overflow-hidden rounded-xl border border-[color:var(--surface-border)] bg-popover p-0 shadow-[var(--surface-shadow-lg)]",style:{width:"max(var(--radix-popover-trigger-width), 360px)"},align:"start",onOpenAutoFocus:c=>{var S;c.preventDefault(),(S=l.current)==null||S.focus()},onCloseAutoFocus:c=>{c.preventDefault()},children:[e.jsxs("div",{className:"space-y-2 border-b border-border px-3 py-3",children:[e.jsx(pe,{ref:l,value:d,onChange:c=>m(c.target.value),placeholder:x("modelManagement.targetPicker.searchPlaceholder"),className:"h-9",autoComplete:"off"}),e.jsx("div",{className:"text-xs text-muted-foreground",children:d.trim()?x("modelManagement.targetPicker.matchCount",{count:R}):x("modelManagement.targetPicker.helper")})]}),R===0?e.jsx("div",{className:"px-3 py-4 text-center text-xs text-muted-foreground",children:x("common.noMatches")}):e.jsx("div",{id:j,role:"listbox",className:"min-h-0 flex-1 overflow-y-auto p-1.5",children:M.map(c=>e.jsxs("div",{className:"py-1",children:[e.jsxs("div",{className:ve("sticky top-0 z-10 flex items-center justify-between bg-popover px-2 py-1 text-[11px] font-semibold uppercase tracking-wide text-muted-foreground",c.muted&&"opacity-80"),children:[e.jsx("span",{className:"truncate",children:c.label}),e.jsx("span",{children:c.options.length})]}),e.jsx("div",{className:"space-y-1",children:c.options.map(S=>e.jsxs("button",{type:"button",role:"option","aria-selected":S.value===a.trim(),className:ve("flex w-full min-w-0 items-center gap-2 rounded-lg px-3 py-2 text-left text-sm transition-colors hover:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",S.value===a.trim()&&"bg-accent text-accent-foreground"),onMouseDown:L=>{L.preventDefault()},onClick:()=>X(S.value),children:[e.jsxs("span",{className:"min-w-0 flex-1",children:[e.jsx("span",{className:"block truncate font-medium",children:T(S)}),e.jsx("span",{className:"block truncate text-xs text-muted-foreground",children:S.value})]}),e.jsxs("span",{className:"flex shrink-0 items-center gap-1",children:[S.isDefault?e.jsx(te,{variant:"secondary",className:"text-[10px]",children:x("modelManagement.targetPicker.default")}):null,e.jsx(te,{variant:S.kind==="passthrough"?"outline":"secondary",className:"text-[10px]",children:_(S)})]})]},`${c.key}-${S.value}`))})]},c.key))})]})]})}function Cs({routing:a,endpoint:t}){const{t:n}=W(),s=a.defaultsByEndpoint[t]??null,o=a.isDefaultsDirtyByEndpoint[t]??!1,h=a.savingDefaultsFor===t,x=a.writingEndpoint===t,j=a.providerModelOptions;return e.jsx(Qe,{"data-testid":"routing-defaults-card",className:"border-primary/40 bg-primary/5 shadow-none",children:e.jsxs(Ge,{className:"space-y-3 p-4",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("h3",{className:"text-[13px] font-semibold text-primary",children:n("workbench.defaults.title")}),e.jsx("p",{className:"mt-0.5 text-[11px] text-muted-foreground",children:n("workbench.defaults.cardSubtitle")})]}),e.jsxs(ds,{summary:e.jsx("span",{className:"text-[11px] font-medium text-muted-foreground",children:n("workbench.defaults.moreLabel")}),summaryClassName:"px-2 py-1",contentClassName:"mt-3 space-y-3",children:[e.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(Ne,{className:"text-[11px] font-semibold uppercase tracking-[0.16em] text-muted-foreground",children:n("workbench.defaults.reasoningLabel")}),e.jsx(Ze,{value:(s==null?void 0:s.reasoning)??"",onChange:y=>a.handleDefaultsChange(t,"reasoning",y),options:j,disabled:h,ariaLabel:n("workbench.defaults.reasoningLabel"),placeholder:n("workbench.defaults.targetPlaceholder")})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(Ne,{className:"text-[11px] font-semibold uppercase tracking-[0.16em] text-muted-foreground",children:n("workbench.defaults.backgroundLabel")}),e.jsx(Ze,{value:(s==null?void 0:s.background)??"",onChange:y=>a.handleDefaultsChange(t,"background",y),options:j,disabled:h,ariaLabel:n("workbench.defaults.backgroundLabel"),placeholder:n("workbench.defaults.targetPlaceholder")})]})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(Ne,{className:"text-[11px] font-semibold uppercase tracking-[0.16em] text-muted-foreground",children:n("workbench.defaults.thresholdLabel")}),e.jsx(pe,{type:"number",min:1,value:(s==null?void 0:s.longContextThreshold)||"",onChange:y=>{const b=Number.parseInt(y.target.value,10);a.handleDefaultsChange(t,"longContextThreshold",Number.isFinite(b)?b:0)},disabled:h,className:"md:w-56"})]})]})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("span",{className:"border border-border bg-card px-2.5 py-2 font-mono text-xs",children:"*"}),e.jsx(be,{className:"h-3.5 w-3.5 flex-shrink-0 text-muted-foreground","aria-hidden":!0}),e.jsx("div",{"data-testid":"default-target",className:"min-w-[180px] flex-1",children:e.jsx(Ze,{value:(s==null?void 0:s.completion)??"",onChange:y=>a.handleDefaultsChange(t,"completion",y),options:j,disabled:h,ariaLabel:n("workbench.defaults.completionLabel"),placeholder:n("workbench.defaults.targetPlaceholder")})}),e.jsxs(B,{size:"sm","data-testid":"save-defaults",onClick:()=>void a.handleSaveDefaults(t),disabled:h||!o||x,className:"relative",children:[n(h?"common.actions.saving":"workbench.defaults.save"),o?e.jsx("span",{className:"absolute -right-1 -top-1 h-2 w-2 rounded-full bg-warning"}):null]})]})]})})}const Ss={anthropic:"/anthropic",openai:"/openai"};function Ms(a){var t;return(t=a.paths)!=null&&t.length?a.paths[0].path:a.path?a.path:`/${a.id}`}function Ps({tabs:a,customEndpoints:t,routeCounts:n,selectedEndpointId:s,onSelect:o,onCreate:h,onEditEndpoint:x,onDeleteEndpoint:j}){const{t:y}=W(),b=a.map(d=>{const m=t.find(C=>C.id===d.key);if(!m)return{key:d.key,label:d.label,path:Ss[d.key]??`/${d.key}`,protocols:d.protocols??[],enabled:!0};const l=m.paths??(m.path?[{path:m.path,protocol:m.protocol??"anthropic"}]:[]);return{key:d.key,label:m.label||m.id,path:Ms(m),protocols:[...new Set(l.map(C=>C.protocol))],enabled:m.enabled!==!1,custom:m}});return e.jsxs("section",{"data-testid":"endpoint-rail",className:"flex gap-2 overflow-x-auto border border-border bg-card shadow-[var(--surface-shadow)] lg:h-full lg:flex-col lg:overflow-visible",children:[e.jsxs("div",{className:"hidden shrink-0 border-b border-border/60 px-3 py-2.5 lg:block",children:[e.jsx("h2",{className:"text-[12.5px] font-semibold",children:y("workbench.endpointRail.title")}),e.jsx("p",{className:"mt-0.5 text-[11px] text-muted-foreground",children:y("workbench.endpointRail.subtitle")})]}),e.jsxs("div",{className:"flex gap-1.5 p-2 lg:flex-col lg:gap-1",children:[b.map(d=>{const m=d.key===s,l=n[d.key]??0,C=!d.enabled;return e.jsxs("div",{"data-testid":"endpoint-row",className:ve("flex shrink-0 items-stretch border transition-colors lg:shrink",m?"border-primary/40 bg-primary/5":"border-border bg-card hover:bg-accent",C?"opacity-60":""),children:[e.jsxs("button",{type:"button",onClick:()=>o(d.key),className:"flex min-w-0 flex-1 items-center gap-2 px-2.5 py-2 text-left",children:[e.jsx("span",{className:ve("h-1.5 w-1.5 shrink-0 rounded-full",m?"bg-primary":"bg-muted-foreground/40"),"aria-hidden":!0}),e.jsxs("span",{className:"min-w-0 flex-1",children:[e.jsx("span",{className:"block truncate text-[11.5px] font-medium",title:d.label,children:d.label}),e.jsxs("span",{className:"mt-0.5 flex items-center gap-1.5 text-[10px] text-muted-foreground",children:[e.jsx("span",{className:"truncate font-mono",children:d.path}),e.jsx("span",{"aria-hidden":!0,children:"·"}),e.jsx("span",{className:"shrink-0 tabular-nums",children:y("workbench.endpointRail.ruleCount",{count:l})})]})]})]}),d.custom?e.jsxs("div",{className:"flex items-center gap-0.5 pr-1",children:[e.jsx("button",{type:"button",onClick:()=>x(d.custom),className:"flex h-6 w-6 items-center justify-center text-muted-foreground hover:text-foreground",title:y("common.edit"),"aria-label":y("common.edit"),children:e.jsx(kt,{className:"h-3 w-3","aria-hidden":!0})}),d.custom.deletable!==!1?e.jsx("button",{type:"button",onClick:()=>j(d.custom),className:"flex h-6 w-6 items-center justify-center text-muted-foreground hover:text-destructive",title:y("common.delete"),"aria-label":y("common.delete"),children:e.jsx(Ct,{className:"h-3 w-3","aria-hidden":!0})}):null]}):null]},d.key)}),e.jsxs("button",{type:"button","data-testid":"create-endpoint",onClick:h,className:"flex shrink-0 items-center justify-center border border-dashed border-border px-3 py-2 text-[11.5px] text-muted-foreground transition-colors hover:border-primary hover:text-primary lg:shrink",children:["+ ",y("workbench.endpointRail.add")]})]})]})}function Es({endpointPath:a,defaultTarget:t}){const{t:n}=W();return e.jsxs("section",{"data-testid":"routing-flow-banner",className:"flex flex-wrap items-center gap-x-3 gap-y-2 border border-border bg-card px-4 py-3 shadow-[var(--surface-shadow)]",children:[e.jsx("span",{className:"text-[10.5px] font-semibold uppercase tracking-[0.06em] text-muted-foreground",children:n("workbench.flow.title")}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-xs",children:[e.jsx("span",{className:"border border-border bg-secondary px-2.5 py-1 font-mono text-[11px]",children:n("workbench.flow.clientStep")}),e.jsx(be,{className:"h-3.5 w-3.5 text-muted-foreground","aria-hidden":!0}),e.jsxs("span",{className:"border border-border bg-secondary px-2.5 py-1 text-[11px]",children:[n("workbench.flow.endpointStep")," ",e.jsx("span",{className:"font-mono",children:a})]}),e.jsx(be,{className:"h-3.5 w-3.5 text-muted-foreground","aria-hidden":!0}),e.jsx("span",{className:"border border-primary bg-primary/5 px-2.5 py-1 text-[11px] font-semibold text-primary",children:n("workbench.flow.matchStep")}),e.jsx(be,{className:"h-3.5 w-3.5 text-muted-foreground","aria-hidden":!0}),e.jsx("span",{className:"border border-border bg-secondary px-2.5 py-1 font-mono text-[11px]",children:t||n("workbench.flow.fallbackNote")})]})]})}function Ds({routing:a,endpoint:t,onRequestDeletePreset:n}){var m,l;const{t:s}=W(),o=a.presetsByEndpoint[t]??[],h=a.presetNameByEndpoint[t]??"",x=a.presetErrorByEndpoint[t],j=a.savingPresetFor===t,y=((m=a.applyingPreset)==null?void 0:m.endpoint)===t?a.applyingPreset.name:null,b=((l=a.deletingPreset)==null?void 0:l.endpoint)===t?a.deletingPreset.name:null,d=a.writingEndpoint===t;return e.jsx(Qe,{"data-testid":"routing-presets-card",className:"shadow-[var(--surface-shadow)]",children:e.jsxs(Ge,{className:"space-y-3 p-4",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsx("h3",{className:"text-[13px] font-semibold",children:s("modelManagement.presets.title")}),e.jsx(B,{variant:"outline",size:"sm","data-testid":"save-preset",onClick:()=>void a.handleSavePreset(t),disabled:j||d,children:s(j?"modelManagement.presets.saving":"modelManagement.presets.save")})]}),e.jsx("p",{className:"text-[11px] text-muted-foreground",children:s("modelManagement.presets.description")}),e.jsx(pe,{"data-testid":"preset-name-input",value:h,onChange:C=>a.handlePresetNameChange(t,C.target.value),placeholder:s("modelManagement.presets.namePlaceholder"),disabled:j,className:"h-8 text-xs"}),x?e.jsx("p",{className:"text-xs text-destructive",children:x}):null,o.length===0?e.jsx("p",{className:"py-2 text-center text-[11px] text-muted-foreground",children:s("modelManagement.presets.empty")}):e.jsx(_t,{children:e.jsx("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-2",children:o.map(C=>{const N=y===C.name,u=b===C.name,w=Object.entries(C.modelRoutes??{}),k=w.length;return e.jsxs("div",{"data-testid":"preset-row",className:"flex items-center justify-between gap-2 border border-border bg-secondary/40 px-2.5 py-2",children:[e.jsxs(Kt,{children:[e.jsx(Qt,{asChild:!0,children:e.jsxs("div",{className:"min-w-0 flex-1 cursor-default",children:[e.jsx("span",{className:"block truncate text-[11px] font-medium",children:C.name}),e.jsx(te,{variant:"outline",className:"mt-0.5 text-[10px] font-normal",children:k>0?s("modelManagement.presets.rulesCount",{count:k}):s("modelManagement.presets.noRules")})]})}),k>0?e.jsx(Gt,{side:"bottom",className:"max-w-xs",children:e.jsxs("div",{className:"space-y-1 text-xs",children:[w.slice(0,5).map(([M,R])=>e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("span",{className:"truncate",children:M}),e.jsx(be,{className:"h-3 w-3 shrink-0"}),e.jsx("span",{className:"truncate",children:R})]},M)),k>5?e.jsxs("div",{className:"text-muted-foreground",children:["…+",k-5]}):null]})}):null]}),e.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[e.jsx("button",{type:"button","data-testid":"apply-preset",className:"text-[11px] font-semibold text-primary hover:underline disabled:opacity-50",onClick:()=>a.setPresetDiffDialog({endpoint:t,preset:C}),disabled:N||u||d,children:s(N?"modelManagement.presets.applying":"modelManagement.presets.apply")}),e.jsx("button",{type:"button","data-testid":"delete-preset",className:"text-[11px] text-muted-foreground hover:text-destructive disabled:opacity-50","aria-label":s("common.delete"),onClick:()=>n(t,C),disabled:u||N||d,children:s(u?"modelManagement.presets.deleting":"modelManagement.presets.delete")})]})]},C.name)})})})]})})}function Rs({entry:a,index:t,savingRoute:n,options:s,sourceListId:o,onRouteChange:h,onRemoveRoute:x}){const{t:j}=W(),{attributes:y,listeners:b,setNodeRef:d,setActivatorNodeRef:m,transform:l,transition:C,isDragging:N}=St({id:a.id});return e.jsxs("div",{ref:d,"data-testid":"route-rule-row","data-id":a.id,style:{transform:Pt.Transform.toString(l),transition:C},className:ve("flex items-center gap-2 border border-border bg-card p-2",N&&"z-10 opacity-60 shadow-[var(--surface-shadow-lg)]"),children:[e.jsx("button",{ref:m,type:"button","data-testid":"route-rule-grip","aria-label":j("workbench.routing.dragHandle"),className:"flex h-7 w-4 shrink-0 cursor-grab touch-none items-center justify-center text-muted-foreground hover:text-foreground active:cursor-grabbing",...y,...b,children:e.jsx(Mt,{className:"h-4 w-4","aria-hidden":!0})}),e.jsx("span",{className:"w-4 shrink-0 text-center text-[10.5px] tabular-nums text-muted-foreground",children:t+1}),e.jsx(pe,{"data-testid":"route-rule-source",value:a.source,onChange:u=>h(a.id,"source",u.target.value),placeholder:j("settings.routing.sourcePlaceholder"),list:o,disabled:n,className:"h-8 min-w-0 flex-1 text-xs"}),e.jsx(be,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground","aria-hidden":!0}),e.jsx("div",{"data-testid":"route-rule-target",className:"min-w-0 flex-[1.15]",children:e.jsx(Ze,{value:a.target,onChange:u=>h(a.id,"target",u),options:s,disabled:n,ariaLabel:j("workbench.routing.targetLabel"),placeholder:j("settings.routing.targetPlaceholder")})}),e.jsx(B,{variant:"ghost",size:"icon","data-testid":"route-rule-delete",className:"h-7 w-7 shrink-0 text-muted-foreground hover:text-destructive",onClick:()=>x(a.id),disabled:n,"aria-label":j("common.delete"),children:e.jsx(ft,{className:"h-3.5 w-3.5","aria-hidden":!0})})]})}function Ts({routing:a,endpoint:t,tabInfo:n}){var u;const{t:s}=W(),o=a.routesByEndpoint[t]||[],h=a.routeError[t],x=a.savingRouteFor===t,j=a.isDirtyByEndpoint[t]??!1,y=a.writingEndpoint===t,b=a.providerModelOptions,d=`route-source-${t}`,m=Et(ct(It,{activationConstraint:{distance:6}}),ct(Ft,{coordinateGetter:Lt})),l=w=>{const{active:k,over:M}=w;!M||k.id===M.id||a.handleReorderRules(t,String(k.id),String(M.id))},N=((u=n==null?void 0:n.protocols)==null?void 0:u.includes("anthropic"))??t==="anthropic"?vt:jt;return e.jsx(Qe,{"data-testid":"routing-rules-card",className:"shadow-[var(--surface-shadow)]",children:e.jsxs(Ge,{className:"space-y-3 p-4",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("h3",{className:"flex items-center gap-2 text-[13px] font-semibold",children:[s("workbench.routing.rulesTitle"),e.jsx(te,{variant:"outline",className:"text-[10.5px] font-normal tabular-nums",children:o.length})]}),e.jsx("p",{className:"mt-0.5 text-[11px] text-muted-foreground",children:s("workbench.routing.rulesSubtitle")})]}),e.jsx(B,{variant:"outline",size:"sm","data-testid":"add-route",onClick:()=>a.handleAddRoute(t),disabled:x,children:s("settings.routing.add")})]}),h?e.jsx("p",{className:"text-xs text-destructive",children:h}):null,o.length===0?e.jsx(lt,{compact:!0,title:s("workbench.routing.emptyTitle"),description:s("workbench.routing.emptyDescription"),action:e.jsx(B,{size:"sm",onClick:()=>a.handleAddRoute(t),disabled:x,children:s("workbench.routing.addFirst")})}):e.jsx(Dt,{sensors:m,collisionDetection:Rt,onDragEnd:l,children:e.jsx(Tt,{items:o.map(w=>w.id),strategy:Ot,children:e.jsx("div",{className:"flex flex-col gap-1.5",children:o.map((w,k)=>e.jsx(Rs,{entry:w,index:k,savingRoute:x,options:b,sourceListId:d,onRouteChange:(M,R,X)=>a.handleRouteChange(t,M,R,X),onRemoveRoute:M=>a.handleRemoveRoute(t,M)},w.id))})})}),e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2 border-t border-border/60 pt-3",children:[e.jsx("p",{className:"text-[11px] text-muted-foreground",children:s(j?"modelManagement.actions.footerDirtyHint":"modelManagement.actions.footerSavedHint")}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(B,{variant:"outline",size:"sm","data-testid":"reset-routes",onClick:()=>a.handleResetRoutes(t),disabled:x||!j,children:s("common.actions.reset")}),e.jsxs(B,{size:"sm","data-testid":"save-routes",onClick:()=>void a.handleSaveRoutes(t),disabled:x||y,className:"relative",children:[s(x?"common.actions.saving":"modelManagement.actions.saveRoutes"),j?e.jsx("span",{className:"absolute -right-1 -top-1 h-2 w-2 rounded-full bg-warning"}):null]})]})]}),e.jsx("datalist",{id:d,children:N.map(w=>e.jsx("option",{value:w},`${d}-${w}`))})]})})}const Os={simulateRequest(a){return{url:"/api/routing/simulate",method:"POST",data:a}}},Ls=350;function Fs(a,t){switch(a.kind){case"modelRoute":return{label:a.viaAlias?t("workbench.hitSim.reasonModelRouteAlias"):t("workbench.hitSim.reasonModelRoute"),tone:"hit"};case"directMatch":return{label:t("workbench.hitSim.reasonDirectMatch"),tone:"hit"};case"thinkingDefault":return{label:t("workbench.hitSim.reasonThinkingDefault"),tone:"hit"};case"completionDefault":return{label:t("workbench.hitSim.reasonCompletionDefault"),tone:"hit"};case"longContextDefault":return{label:t("workbench.hitSim.reasonLongContext"),tone:"hit",detail:t("workbench.hitSim.longContextDetail",{estimate:a.tokenEstimate.toLocaleString(),threshold:a.threshold.toLocaleString()})};case"fallback":return{label:t("workbench.hitSim.reasonFallback"),tone:"fallback"}}return{label:t("workbench.hitSim.reasonFallback"),tone:"fallback"}}function Is({tabs:a,endpoint:t,onEndpointChange:n}){var M;const{t:s}=W(),o=a.filter(R=>R.key!=="providers"),[h,x]=f.useState(((M=o[0])==null?void 0:M.key)??"anthropic"),j=t??h,y=R=>{t&&n?n(R):x(R)},[b,d]=f.useState(""),[m,l]=f.useState(!1),[C,N]=f.useState("");f.useEffect(()=>{const R=setTimeout(()=>N(b.trim()),Ls);return()=>clearTimeout(R)},[b]);const{data:u,isFetching:w,error:k}=bt(["routing","simulate",j,C,m],Os.simulateRequest({endpoint:j,model:C||void 0,thinking:m}),{retry:!1,refetchOnWindowFocus:!1,staleTime:1/0});return e.jsxs("section",{"data-testid":"routing-hit-simulator",className:"space-y-3 rounded-lg border border-border bg-card p-4",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"text-sm font-semibold text-foreground",children:s("workbench.hitSim.title")}),e.jsx("p",{className:"mt-0.5 text-xs text-muted-foreground",children:s("workbench.hitSim.subtitle")})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-x-5 gap-y-2",children:[t?null:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-xs text-muted-foreground",children:s("workbench.hitSim.endpointLabel")}),e.jsxs(tt,{value:j,onValueChange:y,children:[e.jsx(st,{className:"h-8 w-[168px]",children:e.jsx(at,{})}),e.jsx(rt,{children:o.map(R=>e.jsx(Oe,{value:R.key,children:R.label},R.key))})]})]}),e.jsxs("label",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[e.jsx(nt,{checked:m,onCheckedChange:l,"aria-label":s("workbench.hitSim.thinking")}),s("workbench.hitSim.thinking")]})]}),e.jsx(pe,{value:b,onChange:R=>d(R.target.value),placeholder:s("workbench.hitSim.modelPlaceholder"),className:"h-9 text-xs",spellCheck:!1,autoComplete:"off","aria-label":s("workbench.hitSim.modelPlaceholder")}),e.jsx(As,{result:u,loading:w,errorMessage:(k==null?void 0:k.message)??null,requestedModel:C})]})}function As({result:a,loading:t,errorMessage:n,requestedModel:s}){const{t:o}=W();if(n)return e.jsxs("p",{className:"text-xs text-muted-foreground",children:[o("workbench.hitSim.errorPrefix"),": ",n]});if(!a)return t?e.jsx("div",{className:"h-[72px] animate-pulse rounded-lg border border-border bg-secondary"}):e.jsx("p",{className:"text-xs text-muted-foreground",children:o("workbench.hitSim.empty")});const h=Fs(a.reason,o),x=h.tone==="fallback",j=s||o("workbench.hitSim.anyModel");return e.jsxs("div",{className:"space-y-1.5",children:[e.jsxs("div",{className:x?"rounded-lg border border-border bg-secondary px-3 py-2.5":"rounded-lg border border-success bg-success-bg px-3 py-2.5",children:[e.jsx("div",{className:x?"text-[11px] font-semibold text-warning":"text-[11px] font-semibold text-success",children:h.label}),e.jsx("div",{className:"mt-1 text-xs text-foreground",children:j}),e.jsxs("div",{className:"mt-1 text-xs text-muted-foreground",children:["→ ",a.providerLabel,":",a.modelId]}),h.detail?e.jsx("div",{className:"mt-1 text-[11px] text-muted-foreground",children:h.detail}):null]}),x?e.jsx("p",{className:"text-[11px] text-muted-foreground",children:o("workbench.hitSim.fallbackHint")}):null]})}function Bs({routing:a,config:t,customEndpoints:n,selectedEndpointId:s,routeCounts:o,onSelectEndpoint:h,onCreateEndpoint:x,onEditEndpoint:j,onDeleteEndpoint:y,onRequestDeletePreset:b}){var N;W();const d=s??((N=a.endpointTabs[0])==null?void 0:N.key)??"anthropic",m=a.endpointTabs.find(u=>u.key===d),l=a.defaultsByEndpoint[d],C=(()=>{var w;if(d==="anthropic")return"/anthropic";if(d==="openai")return"/openai";const u=n.find(k=>k.id===d);return(w=u==null?void 0:u.paths)!=null&&w.length?u.paths[0].path:u!=null&&u.path?u.path:`/${d}`})();return e.jsxs("div",{"data-testid":"routing-workspace",className:"flex flex-col gap-3.5",children:[e.jsx(Es,{endpointPath:C,defaultTarget:(l==null?void 0:l.completion)??null}),e.jsxs("div",{className:"grid items-start gap-3.5 lg:grid-cols-[200px_minmax(0,1fr)_288px]",children:[e.jsx(Ps,{tabs:a.endpointTabs,customEndpoints:n,routeCounts:o,selectedEndpointId:d,onSelect:h,onCreate:x,onEditEndpoint:j,onDeleteEndpoint:y}),e.jsxs("div",{className:"flex flex-col gap-3.5",children:[e.jsx(Cs,{routing:a,endpoint:d}),e.jsx(Ts,{routing:a,endpoint:d,tabInfo:m}),e.jsx(Ds,{routing:a,endpoint:d,onRequestDeletePreset:b})]}),e.jsxs("div",{className:"flex flex-col gap-3.5",children:[e.jsx(Is,{tabs:a.endpointTabs,endpoint:d,onEndpointChange:h}),e.jsx(ks,{routing:a,endpoint:d,tabInfo:m,config:t,customEndpoints:n})]})]})]})}function zs({open:a,provider:t,options:n,usePreset:s,preservedExtras:o,onPresetChange:h,onConfirm:x,onClose:j}){const{t:y}=W();return t?e.jsx($e,{open:a,onOpenChange:b=>!b&&j(),children:e.jsxs(He,{className:"max-w-2xl",onInteractOutside:b=>b.preventDefault(),children:[e.jsxs(Ue,{children:[e.jsx(qe,{children:y("providers.testDialog.title")}),e.jsx(Ve,{children:y("providers.testDialog.subtitle",{name:t.label||t.id})})]}),e.jsxs(_e,{className:"space-y-4",children:[e.jsx("div",{className:"rounded-xl bg-accent p-4 text-sm text-primary",children:y("providers.testDialog.description")}),e.jsxs("div",{className:"space-y-4 rounded-xl bg-secondary/50 p-4",children:[e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(Ne,{htmlFor:"provider-test-preset",children:y("providers.testDialog.presetLabel")}),e.jsx("p",{className:"text-xs text-muted-foreground",children:y("providers.testDialog.presetDescription")})]}),e.jsx("div",{className:"flex items-center gap-2",children:e.jsx(nt,{id:"provider-test-preset",checked:s,onCheckedChange:h})})]}),s?e.jsx("div",{className:"space-y-2",children:e.jsxs("details",{className:"rounded-xl border border-transparent bg-card p-2 text-xs shadow-[var(--surface-shadow)]",children:[e.jsx("summary",{className:"cursor-pointer text-primary hover:underline",children:y("providers.testDialog.presetPreviewSummary")}),e.jsx("div",{className:"mt-2 space-y-1",children:n.map(b=>e.jsxs("code",{className:"block rounded-lg bg-secondary px-2 py-1 text-xs",children:[b.key,": ",b.value]},b.key))})]})}):e.jsx("p",{className:"text-xs text-muted-foreground",children:y("providers.testDialog.presetDescription")})]}),Object.keys(o).length>0&&e.jsxs("div",{className:"space-y-2 rounded-xl bg-secondary/50 p-4 text-xs",children:[e.jsx("p",{className:"font-medium",children:y("providers.testDialog.preservedInfo")}),Object.entries(o).map(([b,d])=>e.jsxs("code",{className:"block rounded-lg border border-transparent bg-card px-2 py-1 shadow-[var(--surface-shadow)]",children:[b,": ",d]},b))]})]}),e.jsxs(Ke,{children:[e.jsx(B,{variant:"outline",onClick:j,children:y("providers.testDialog.cancel")}),e.jsx(B,{onClick:()=>void x(),children:y("providers.testDialog.primary")})]})]})}):null}function la(){const{t:a}=W(),t=ns(),n=ps(t),s=hs(t,{sanitizeDraftsForProvider:n.sanitizeDraftsForProvider}),[o,h]=zt(),x=o.get("tab"),j=x==="routing"||x==="endpoints"?"routing":"providers";f.useEffect(()=>{x==="endpoints"&&h(E=>{const I=new URLSearchParams(E);return I.set("tab","routing"),I},{replace:!0})},[x,h]);const[y,b]=f.useState(!1),[d,m]=f.useState(void 0),[l,C]=f.useState(null),[N,u]=f.useState(!1),w=o.get("endpoint"),[k,M]=f.useState(w);f.useEffect(()=>{M(w)},[w]);const R=E=>{h(I=>{const U=new URLSearchParams(I);return U.set("tab","routing"),U.set("endpoint",E),U},{replace:!0})},X=()=>{h(E=>{const I=new URLSearchParams(E);return I.delete("endpoint"),I},{replace:!0})};f.useEffect(()=>{k&&(t.customEndpointsQuery.isPending||n.endpointTabs.some(E=>E.key===k)||X())},[k,n.endpointTabs,t.customEndpointsQuery.isPending]);const _=()=>{m(void 0),b(!0)},T=E=>{m(E),b(!0)},c=E=>{h(I=>{const U=new URLSearchParams(I);return E==="providers"?U.delete("tab"):U.set("tab",E),U},{replace:!0})},S=async()=>{if(l){u(!0);try{l.kind==="provider"?await s.handleDeleteProvider(l.provider):l.kind==="preset"?await n.handleDeletePreset(l.endpoint,l.preset):await n.handleDeleteEndpoint(l.endpoint.id),C(null)}finally{u(!1)}}},L=(l==null?void 0:l.kind)==="provider"?os(t.config,t.customEndpoints,l.provider.id):0,V=(l==null?void 0:l.kind)==="provider"?a("providers.actions.delete"):(l==null?void 0:l.kind)==="preset"?a("modelManagement.presets.delete"):(l==null?void 0:l.kind)==="endpoint"?a("common.delete"):"",q=(l==null?void 0:l.kind)==="provider"?a("providers.confirm.delete",{name:l.provider.label||l.provider.id}):(l==null?void 0:l.kind)==="preset"?a("modelManagement.confirm.deletePreset",{name:l.preset.name}):(l==null?void 0:l.kind)==="endpoint"?a("modelManagement.deleteEndpointConfirm",{label:l.endpoint.label}):"",se=(l==null?void 0:l.kind)==="provider"?l.provider.label||l.provider.id:(l==null?void 0:l.kind)==="preset"?l.preset.name:(l==null?void 0:l.kind)==="endpoint"?l.endpoint.label:"",A=Object.values(n.routesByEndpoint).reduce((E,I)=>E+((I==null?void 0:I.length)??0),0),ne=Object.fromEntries(Object.entries(n.routesByEndpoint).map(([E,I])=>[E,(I==null?void 0:I.length)??0])),ae=[{value:"providers",icon:At,label:a("workbench.viewSwitch.providers"),description:a("workbench.viewSwitch.providersDesc"),count:s.providerCount},{value:"routing",icon:Bt,label:a("workbench.viewSwitch.routing"),description:a("workbench.viewSwitch.routingDesc"),count:A}];return e.jsxs("div",{className:"flex flex-col gap-6",children:[e.jsx(Ht,{actions:j==="providers"?e.jsx(B,{size:"sm",onClick:s.handleOpenCreate,children:a("providers.actions.add")}):e.jsx(B,{size:"sm",onClick:_,children:a("workbench.endpoints.create")})}),e.jsx("div",{role:"tablist","aria-label":a("workbench.viewSwitch.label"),className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:ae.map(E=>{const I=E.icon,U=j===E.value;return e.jsxs("button",{type:"button",role:"tab","aria-selected":U,onClick:()=>c(E.value),className:ve("motion-surface flex items-center gap-3 rounded-xl border p-4 text-left",U?"border-primary/40 bg-primary/5":"border-border bg-card hover:bg-muted/40"),children:[e.jsx("span",{className:ve("flex h-9 w-9 shrink-0 items-center justify-center rounded-lg",U?"bg-primary/10 text-primary":"bg-secondary text-muted-foreground"),children:e.jsx(I,{className:"h-5 w-5","aria-hidden":"true"})}),e.jsxs("span",{className:"min-w-0 flex-1",children:[e.jsxs("span",{className:"flex items-center gap-2",children:[e.jsx("span",{className:ve("text-sm font-semibold",U?"text-foreground":"text-muted-foreground"),children:E.label}),e.jsx(te,{variant:U?"default":"secondary",className:"text-[10px]",children:E.count})]}),e.jsx("span",{className:"mt-0.5 block truncate text-xs text-muted-foreground",children:E.description})]})]},E.value)})}),j==="providers"?e.jsx(ws,{configPending:t.configQuery.isPending||!t.config&&t.configQuery.isFetching,testResults:s.testResults,filteredProviders:s.filteredProviders,providerSearch:s.providerSearch,providerTypeFilter:s.providerTypeFilter,providersLength:s.providers.length,defaultLabels:s.defaultLabels,config:t.config,customEndpoints:t.customEndpoints,onTest:E=>s.initiateTestConnection(E),onEdit:E=>s.handleOpenEdit(E),onProviderSearchChange:s.setProviderSearch,onProviderTypeChange:s.setProviderTypeFilter,onResetFilters:()=>{s.setProviderSearch(""),s.setProviderTypeFilter("all")}}):e.jsx(Bs,{routing:n,config:t.config,customEndpoints:t.customEndpoints,routeCounts:ne,selectedEndpointId:k,onSelectEndpoint:R,onCreateEndpoint:_,onEditEndpoint:T,onDeleteEndpoint:E=>C({kind:"endpoint",endpoint:E}),onRequestDeletePreset:(E,I)=>C({kind:"preset",endpoint:E,preset:I})}),e.jsx(js,{open:s.drawerOpen,mode:s.drawerMode,provider:s.drawerMode==="edit"?s.editingProvider:void 0,existingProviderIds:s.providers.map(E=>E.id).filter(E=>s.drawerMode==="edit"&&s.editingProvider?E!==s.editingProvider.id:!0),testResult:s.editingProvider?s.testResults[s.editingProvider.id]??null:null,testing:s.editingProvider?s.testingProviderId===s.editingProvider.id:!1,onTest:()=>{s.editingProvider&&s.handleTestConnection(s.editingProvider)},onDelete:()=>{s.drawerMode==="edit"&&s.editingProvider&&C({kind:"provider",provider:s.editingProvider})},onClose:()=>{s.setDrawerOpen(!1),s.setEditingProvider(void 0),s.setDrawerMode("create")},onSubmit:s.handleProviderSubmit}),e.jsx(zs,{open:s.testDialogOpen,provider:s.testDialogProvider,options:s.anthropicTestHeaderOptions,preservedExtras:s.testDialogPreservedExtras,usePreset:s.testDialogUsePreset,onPresetChange:s.setTestDialogUsePreset,onConfirm:s.confirmTestDialog,onClose:s.closeTestDialog}),e.jsx(fs,{open:!!s.noModelDialogProvider,provider:s.noModelDialogProvider,onClose:()=>s.setNoModelDialogProvider(null),onEdit:E=>{s.setNoModelDialogProvider(null),s.handleOpenEdit(E)}}),e.jsx(gs,{open:y,endpoint:d,onClose:()=>{b(!1),m(void 0)},onSuccess:()=>{t.configQuery.refetch()}}),e.jsx(bs,{dialog:n.presetDiffDialog,currentRoutes:n.presetDiffDialog?n.routesByEndpoint[n.presetDiffDialog.endpoint]||[]:[],onConfirm:(E,I)=>{n.setPresetDiffDialog(null),n.handleApplyPreset(E,I)},onClose:()=>n.setPresetDiffDialog(null)}),e.jsx($t,{open:!!l,onOpenChange:E=>{!E&&!N&&C(null)},title:V,description:q,confirmLabel:a(N?"common.actions.loading":"common.delete"),cancelLabel:a("common.actions.cancel"),loading:N,onConfirm:S,children:se?e.jsxs("div",{className:"space-y-2",children:[e.jsx("div",{className:"rounded-xl border border-destructive/20 bg-destructive/5 px-3 py-2 font-mono text-xs text-foreground",children:se}),(l==null?void 0:l.kind)==="provider"&&L>0?e.jsx("p",{className:"text-xs text-muted-foreground",children:a("providers.confirm.deleteImpact",{count:L})}):null]}):null})]})}export{la as default};