@riddix/hamh 2.1.0-alpha.535 → 2.1.0-alpha.536
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.
|
@@ -496,4 +496,4 @@ ${n.comment}`:n.comment}this.doc.range[2]=n.offset;break}default:this.errors.pus
|
|
|
496
496
|
To pick up a draggable item, press the space bar.
|
|
497
497
|
While dragging, use the arrow keys to move the item.
|
|
498
498
|
Press space again to drop the item in its new position, or press escape to cancel.
|
|
499
|
-
`},gmt={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 ymt(e){let{announcements:t=gmt,container:n,hiddenTextDescribedById:r,screenReaderInstructions:i=mmt}=e;const{announce:o,announcement:s}=fmt(),a=$v("DndLiveRegion"),[l,c]=A.useState(!1);if(A.useEffect(()=>{c(!0)},[]),hmt(A.useMemo(()=>({onDragStart(d){let{active:p}=d;o(t.onDragStart({active:p}))},onDragMove(d){let{active:p,over:g}=d;t.onDragMove&&o(t.onDragMove({active:p,over:g}))},onDragOver(d){let{active:p,over:g}=d;o(t.onDragOver({active:p,over:g}))},onDragEnd(d){let{active:p,over:g}=d;o(t.onDragEnd({active:p,over:g}))},onDragCancel(d){let{active:p,over:g}=d;o(t.onDragCancel({active:p,over:g}))}}),[o,t])),!l)return null;const u=nn.createElement(nn.Fragment,null,nn.createElement(umt,{id:r,value:i.draggable}),nn.createElement(dmt,{id:a,announcement:s}));return n?Vd.createPortal(u,n):u}var Vi;(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"})(Vi||(Vi={}));function sw(){}function YY(e,t){return A.useMemo(()=>({sensor:e,options:t??{}}),[e,t])}function bmt(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return A.useMemo(()=>[...t].filter(r=>r!=null),[...t])}const kl=Object.freeze({x:0,y:0});function hue(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function pue(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function vmt(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function JY(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 mue(e,t){if(!e||e.length===0)return null;const[n]=e;return n[t]}function XY(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 xmt=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const i=XY(t,t.left,t.top),o=[];for(const s of r){const{id:a}=s,l=n.get(a);if(l){const c=hue(XY(l),i);o.push({id:a,data:{droppableContainer:s,value:c}})}}return o.sort(pue)},Smt=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const i=JY(t),o=[];for(const s of r){const{id:a}=s,l=n.get(a);if(l){const c=JY(l),u=i.reduce((p,g,y)=>p+hue(c[y],g),0),d=Number((u/4).toFixed(4));o.push({id:a,data:{droppableContainer:s,value:d}})}}return o.sort(pue)};function wmt(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),o=Math.min(t.top+t.height,e.top+e.height),s=i-r,a=o-n;if(r<i&&n<o){const l=t.width*t.height,c=e.width*e.height,u=s*a,d=u/(l+c-u);return Number(d.toFixed(4))}return 0}const Cmt=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const i=[];for(const o of r){const{id:s}=o,a=n.get(s);if(a){const l=wmt(a,t);l>0&&i.push({id:s,data:{droppableContainer:o,value:l}})}}return i.sort(vmt)};function Emt(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function gue(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:kl}function kmt(e){return function(n){for(var r=arguments.length,i=new Array(r>1?r-1:0),o=1;o<r;o++)i[o-1]=arguments[o];return i.reduce((s,a)=>({...s,top:s.top+e*a.y,bottom:s.bottom+e*a.y,left:s.left+e*a.x,right:s.right+e*a.x}),{...n})}}const Amt=kmt(1);function Dmt(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 _mt(e,t,n){const r=Dmt(t);if(!r)return e;const{scaleX:i,scaleY:o,x:s,y:a}=r,l=e.left-s-(1-i)*parseFloat(n),c=e.top-a-(1-o)*parseFloat(n.slice(n.indexOf(" ")+1)),u=i?e.width/i:e.width,d=o?e.height/o:e.height;return{width:u,height:d,top:c,right:l+u,bottom:c+d,left:l}}const Omt={ignoreTransform:!1};function $0(e,t){t===void 0&&(t=Omt);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:c,transformOrigin:u}=Is(e).getComputedStyle(e);c&&(n=_mt(n,c,u))}const{top:r,left:i,width:o,height:s,bottom:a,right:l}=n;return{top:r,left:i,width:o,height:s,bottom:a,right:l}}function ZY(e){return $0(e,{ignoreTransform:!0})}function Tmt(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function Mmt(e,t){return t===void 0&&(t=Is(e).getComputedStyle(e)),t.position==="fixed"}function Rmt(e,t){t===void 0&&(t=Is(e).getComputedStyle(e));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(i=>{const o=t[i];return typeof o=="string"?n.test(o):!1})}function M8(e,t){const n=[];function r(i){if(t!=null&&n.length>=t||!i)return n;if(xj(i)&&i.scrollingElement!=null&&!n.includes(i.scrollingElement))return n.push(i.scrollingElement),n;if(!jv(i)||uue(i)||n.includes(i))return n;const o=Is(e).getComputedStyle(i);return i!==e&&Rmt(i,o)&&n.push(i),Mmt(i,o)?n:r(i.parentNode)}return e?r(e):n}function yue(e){const[t]=M8(e,1);return t??null}function WA(e){return!T8||!e?null:j0(e)?e:vj(e)?xj(e)||e===P0(e).scrollingElement?window:jv(e)?e:null:null}function bue(e){return j0(e)?e.scrollX:e.scrollLeft}function vue(e){return j0(e)?e.scrollY:e.scrollTop}function ZO(e){return{x:bue(e),y:vue(e)}}var ro;(function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"})(ro||(ro={}));function xue(e){return!T8||!e?!1:e===document.scrollingElement}function Sue(e){const t={x:0,y:0},n=xue(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,o=e.scrollLeft<=t.x,s=e.scrollTop>=r.y,a=e.scrollLeft>=r.x;return{isTop:i,isLeft:o,isBottom:s,isRight:a,maxScroll:r,minScroll:t}}const Imt={x:.2,y:.2};function jmt(e,t,n,r,i){let{top:o,left:s,right:a,bottom:l}=n;r===void 0&&(r=10),i===void 0&&(i=Imt);const{isTop:c,isBottom:u,isLeft:d,isRight:p}=Sue(e),g={x:0,y:0},y={x:0,y:0},b={height:t.height*i.y,width:t.width*i.x};return!c&&o<=t.top+b.height?(g.y=ro.Backward,y.y=r*Math.abs((t.top+b.height-o)/b.height)):!u&&l>=t.bottom-b.height&&(g.y=ro.Forward,y.y=r*Math.abs((t.bottom-b.height-l)/b.height)),!p&&a>=t.right-b.width?(g.x=ro.Forward,y.x=r*Math.abs((t.right-b.width-a)/b.width)):!d&&s<=t.left+b.width&&(g.x=ro.Backward,y.x=r*Math.abs((t.left+b.width-s)/b.width)),{direction:g,speed:y}}function Pmt(e){if(e===document.scrollingElement){const{innerWidth:o,innerHeight:s}=window;return{top:0,left:0,right:o,bottom:s,width:o,height:s}}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 wue(e){return e.reduce((t,n)=>Cg(t,ZO(n)),kl)}function $mt(e){return e.reduce((t,n)=>t+bue(n),0)}function Lmt(e){return e.reduce((t,n)=>t+vue(n),0)}function Nmt(e,t){if(t===void 0&&(t=$0),!e)return;const{top:n,left:r,bottom:i,right:o}=t(e);yue(e)&&(i<=0||o<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}const Fmt=[["x",["left","right"],$mt],["y",["top","bottom"],Lmt]];class Cj{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=M8(n),i=wue(r);this.rect={...t},this.width=t.width,this.height=t.height;for(const[o,s,a]of Fmt)for(const l of s)Object.defineProperty(this,l,{get:()=>{const c=a(r),u=i[o]-c;return this.rect[l]+u},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class sb{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 Bmt(e){const{EventTarget:t}=Is(e);return e instanceof t?e:P0(e)}function qA(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 Ea;(function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"})(Ea||(Ea={}));function QY(e){e.preventDefault()}function zmt(e){e.stopPropagation()}var Gn;(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"})(Gn||(Gn={}));const Cue={start:[Gn.Space,Gn.Enter],cancel:[Gn.Esc],end:[Gn.Space,Gn.Enter,Gn.Tab]},Hmt=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case Gn.Right:return{...n,x:n.x+25};case Gn.Left:return{...n,x:n.x-25};case Gn.Down:return{...n,y:n.y+25};case Gn.Up:return{...n,y:n.y-25}}};class Ej{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 sb(P0(n)),this.windowListeners=new sb(Is(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(Ea.Resize,this.handleCancel),this.windowListeners.add(Ea.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(Ea.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:t,onStart:n}=this.props,r=t.node.current;r&&Nmt(r),n(kl)}handleKeyDown(t){if(wj(t)){const{active:n,context:r,options:i}=this.props,{keyboardCodes:o=Cue,coordinateGetter:s=Hmt,scrollBehavior:a="smooth"}=i,{code:l}=t;if(o.end.includes(l)){this.handleEnd(t);return}if(o.cancel.includes(l)){this.handleCancel(t);return}const{collisionRect:c}=r.current,u=c?{x:c.left,y:c.top}:kl;this.referenceCoordinates||(this.referenceCoordinates=u);const d=s(t,{active:n,context:r.current,currentCoordinates:u});if(d){const p=_2(d,u),g={x:0,y:0},{scrollableAncestors:y}=r.current;for(const b of y){const v=t.code,{isTop:S,isRight:C,isLeft:w,isBottom:k,maxScroll:E,minScroll:O}=Sue(b),_=Pmt(b),T={x:Math.min(v===Gn.Right?_.right-_.width/2:_.right,Math.max(v===Gn.Right?_.left:_.left+_.width/2,d.x)),y:Math.min(v===Gn.Down?_.bottom-_.height/2:_.bottom,Math.max(v===Gn.Down?_.top:_.top+_.height/2,d.y))},I=v===Gn.Right&&!C||v===Gn.Left&&!w,P=v===Gn.Down&&!k||v===Gn.Up&&!S;if(I&&T.x!==d.x){const L=b.scrollLeft+p.x,M=v===Gn.Right&&L<=E.x||v===Gn.Left&&L>=O.x;if(M&&!p.y){b.scrollTo({left:L,behavior:a});return}M?g.x=b.scrollLeft-L:g.x=v===Gn.Right?b.scrollLeft-E.x:b.scrollLeft-O.x,g.x&&b.scrollBy({left:-g.x,behavior:a});break}else if(P&&T.y!==d.y){const L=b.scrollTop+p.y,M=v===Gn.Down&&L<=E.y||v===Gn.Up&&L>=O.y;if(M&&!p.x){b.scrollTo({top:L,behavior:a});return}M?g.y=b.scrollTop-L:g.y=v===Gn.Down?b.scrollTop-E.y:b.scrollTop-O.y,g.y&&b.scrollBy({top:-g.y,behavior:a});break}}this.handleMove(t,Cg(_2(d,this.referenceCoordinates),g))}}}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()}}Ej.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:r=Cue,onActivation:i}=t,{active:o}=n;const{code:s}=e.nativeEvent;if(r.start.includes(s)){const a=o.activatorNode.current;return a&&e.target!==a?!1:(e.preventDefault(),i?.({event:e.nativeEvent}),!0)}return!1}}];function eJ(e){return!!(e&&"distance"in e)}function tJ(e){return!!(e&&"delay"in e)}class kj{constructor(t,n,r){var i;r===void 0&&(r=Bmt(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:o}=t,{target:s}=o;this.props=t,this.events=n,this.document=P0(s),this.documentListeners=new sb(this.document),this.listeners=new sb(r),this.windowListeners=new sb(Is(s)),this.initialCoordinates=(i=XO(o))!=null?i:kl,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(Ea.Resize,this.handleCancel),this.windowListeners.add(Ea.DragStart,QY),this.windowListeners.add(Ea.VisibilityChange,this.handleCancel),this.windowListeners.add(Ea.ContextMenu,QY),this.documentListeners.add(Ea.Keydown,this.handleKeydown),n){if(r!=null&&r({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(tJ(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(eJ(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(Ea.Click,zmt,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(Ea.SelectionChange,this.removeTextSelection),n(t))}handleMove(t){var n;const{activated:r,initialCoordinates:i,props:o}=this,{onMove:s,options:{activationConstraint:a}}=o;if(!i)return;const l=(n=XO(t))!=null?n:kl,c=_2(i,l);if(!r&&a){if(eJ(a)){if(a.tolerance!=null&&qA(c,a.tolerance))return this.handleCancel();if(qA(c,a.distance))return this.handleStart()}if(tJ(a)&&qA(c,a.tolerance))return this.handleCancel();this.handlePending(a,c);return}t.cancelable&&t.preventDefault(),s(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===Gn.Esc&&this.handleCancel()}removeTextSelection(){var t;(t=this.document.getSelection())==null||t.removeAllRanges()}}const Umt={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class Aj extends kj{constructor(t){const{event:n}=t,r=P0(n.target);super(t,Umt,r)}}Aj.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r?.({event:n}),!0)}}];const Vmt={move:{name:"mousemove"},end:{name:"mouseup"}};var QO;(function(e){e[e.RightClick=2]="RightClick"})(QO||(QO={}));class Wmt extends kj{constructor(t){super(t,Vmt,P0(t.event.target))}}Wmt.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button===QO.RightClick?!1:(r?.({event:n}),!0)}}];const GA={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class qmt extends kj{constructor(t){super(t,GA)}static setup(){return window.addEventListener(GA.move.name,t,{capture:!1,passive:!1}),function(){window.removeEventListener(GA.move.name,t)};function t(){}}}qmt.activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;const{touches:i}=n;return i.length>1?!1:(r?.({event:n}),!0)}}];var ab;(function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"})(ab||(ab={}));var aw;(function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"})(aw||(aw={}));function Gmt(e){let{acceleration:t,activator:n=ab.Pointer,canScroll:r,draggingRect:i,enabled:o,interval:s=5,order:a=aw.TreeOrder,pointerCoordinates:l,scrollableAncestors:c,scrollableAncestorRects:u,delta:d,threshold:p}=e;const g=Ymt({delta:d,disabled:!o}),[y,b]=omt(),v=A.useRef({x:0,y:0}),S=A.useRef({x:0,y:0}),C=A.useMemo(()=>{switch(n){case ab.Pointer:return l?{top:l.y,bottom:l.y,left:l.x,right:l.x}:null;case ab.DraggableRect:return i}},[n,i,l]),w=A.useRef(null),k=A.useCallback(()=>{const O=w.current;if(!O)return;const _=v.current.x*S.current.x,T=v.current.y*S.current.y;O.scrollBy(_,T)},[]),E=A.useMemo(()=>a===aw.TreeOrder?[...c].reverse():c,[a,c]);A.useEffect(()=>{if(!o||!c.length||!C){b();return}for(const O of E){if(r?.(O)===!1)continue;const _=c.indexOf(O),T=u[_];if(!T)continue;const{direction:I,speed:P}=jmt(O,T,C,t,p);for(const L of["x","y"])g[L][I[L]]||(P[L]=0,I[L]=0);if(P.x>0||P.y>0){b(),w.current=O,y(k,s),v.current=P,S.current=I;return}}v.current={x:0,y:0},S.current={x:0,y:0},b()},[t,k,r,b,o,s,JSON.stringify(C),JSON.stringify(g),y,c,E,u,JSON.stringify(p)])}const Kmt={x:{[ro.Backward]:!1,[ro.Forward]:!1},y:{[ro.Backward]:!1,[ro.Forward]:!1}};function Ymt(e){let{delta:t,disabled:n}=e;const r=JO(t);return Pv(i=>{if(n||!r||!i)return Kmt;const o={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[ro.Backward]:i.x[ro.Backward]||o.x===-1,[ro.Forward]:i.x[ro.Forward]||o.x===1},y:{[ro.Backward]:i.y[ro.Backward]||o.y===-1,[ro.Forward]:i.y[ro.Forward]||o.y===1}}},[n,t,r])}function Jmt(e,t){const n=t!=null?e.get(t):void 0,r=n?n.node.current:null;return Pv(i=>{var o;return t==null?null:(o=r??i)!=null?o:null},[r,t])}function Xmt(e,t){return A.useMemo(()=>e.reduce((n,r)=>{const{sensor:i}=r,o=i.activators.map(s=>({eventName:s.eventName,handler:t(s.handler,r)}));return[...n,...o]},[]),[e,t])}var T2;(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(T2||(T2={}));var eT;(function(e){e.Optimized="optimized"})(eT||(eT={}));const nJ=new Map;function Zmt(e,t){let{dragging:n,dependencies:r,config:i}=t;const[o,s]=A.useState(null),{frequency:a,measure:l,strategy:c}=i,u=A.useRef(e),d=v(),p=D2(d),g=A.useCallback(function(S){S===void 0&&(S=[]),!p.current&&s(C=>C===null?S:C.concat(S.filter(w=>!C.includes(w))))},[p]),y=A.useRef(null),b=Pv(S=>{if(d&&!n)return nJ;if(!S||S===nJ||u.current!==e||o!=null){const C=new Map;for(let w of e){if(!w)continue;if(o&&o.length>0&&!o.includes(w.id)&&w.rect.current){C.set(w.id,w.rect.current);continue}const k=w.node.current,E=k?new Cj(l(k),k):null;w.rect.current=E,E&&C.set(w.id,E)}return C}return S},[e,o,n,d,l]);return A.useEffect(()=>{u.current=e},[e]),A.useEffect(()=>{d||g()},[n,d]),A.useEffect(()=>{o&&o.length>0&&s(null)},[JSON.stringify(o)]),A.useEffect(()=>{d||typeof a!="number"||y.current!==null||(y.current=setTimeout(()=>{g(),y.current=null},a))},[a,d,g,...r]),{droppableRects:b,measureDroppableContainers:g,measuringScheduled:o!=null};function v(){switch(c){case T2.Always:return!1;case T2.BeforeDragging:return n;default:return!n}}}function Eue(e,t){return Pv(n=>e?n||(typeof t=="function"?t(e):e):null,[t,e])}function Qmt(e,t){return Eue(e,t)}function egt(e){let{callback:t,disabled:n}=e;const r=Sj(t),i=A.useMemo(()=>{if(n||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:o}=window;return new o(r)},[r,n]);return A.useEffect(()=>()=>i?.disconnect(),[i]),i}function R8(e){let{callback:t,disabled:n}=e;const r=Sj(t),i=A.useMemo(()=>{if(n||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:o}=window;return new o(r)},[n]);return A.useEffect(()=>()=>i?.disconnect(),[i]),i}function tgt(e){return new Cj($0(e),e)}function rJ(e,t,n){t===void 0&&(t=tgt);const[r,i]=A.useState(null);function o(){i(l=>{if(!e)return null;if(e.isConnected===!1){var c;return(c=l??n)!=null?c:null}const u=t(e);return JSON.stringify(l)===JSON.stringify(u)?l:u})}const s=egt({callback(l){if(e)for(const c of l){const{type:u,target:d}=c;if(u==="childList"&&d instanceof HTMLElement&&d.contains(e)){o();break}}}}),a=R8({callback:o});return Ic(()=>{o(),e?(a?.observe(e),s?.observe(document.body,{childList:!0,subtree:!0})):(a?.disconnect(),s?.disconnect())},[e]),r}function ngt(e){const t=Eue(e);return gue(e,t)}const iJ=[];function rgt(e){const t=A.useRef(e),n=Pv(r=>e?r&&r!==iJ&&e&&t.current&&e.parentNode===t.current.parentNode?r:M8(e):iJ,[e]);return A.useEffect(()=>{t.current=e},[e]),n}function igt(e){const[t,n]=A.useState(null),r=A.useRef(e),i=A.useCallback(o=>{const s=WA(o.target);s&&n(a=>a?(a.set(s,ZO(s)),new Map(a)):null)},[]);return A.useEffect(()=>{const o=r.current;if(e!==o){s(o);const a=e.map(l=>{const c=WA(l);return c?(c.addEventListener("scroll",i,{passive:!0}),[c,ZO(c)]):null}).filter(l=>l!=null);n(a.length?new Map(a):null),r.current=e}return()=>{s(e),s(o)};function s(a){a.forEach(l=>{const c=WA(l);c?.removeEventListener("scroll",i)})}},[i,e]),A.useMemo(()=>e.length?t?Array.from(t.values()).reduce((o,s)=>Cg(o,s),kl):wue(e):kl,[e,t])}function oJ(e,t){t===void 0&&(t=[]);const n=A.useRef(null);return A.useEffect(()=>{n.current=null},t),A.useEffect(()=>{const r=e!==kl;r&&!n.current&&(n.current=e),!r&&n.current&&(n.current=null)},[e]),n.current?_2(e,n.current):kl}function ogt(e){A.useEffect(()=>{if(!T8)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?.()}},e.map(t=>{let{sensor:n}=t;return n}))}function sgt(e,t){return A.useMemo(()=>e.reduce((n,r)=>{let{eventName:i,handler:o}=r;return n[i]=s=>{o(s,t)},n},{}),[e,t])}function kue(e){return A.useMemo(()=>e?Tmt(e):null,[e])}const sJ=[];function agt(e,t){t===void 0&&(t=$0);const[n]=e,r=kue(n?Is(n):null),[i,o]=A.useState(sJ);function s(){o(()=>e.length?e.map(l=>xue(l)?r:new Cj(t(l),l)):sJ)}const a=R8({callback:s});return Ic(()=>{a?.disconnect(),s(),e.forEach(l=>a?.observe(l))},[e]),i}function lgt(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return jv(t)?t:e}function cgt(e){let{measure:t}=e;const[n,r]=A.useState(null),i=A.useCallback(c=>{for(const{target:u}of c)if(jv(u)){r(d=>{const p=t(u);return d?{...d,width:p.width,height:p.height}:p});break}},[t]),o=R8({callback:i}),s=A.useCallback(c=>{const u=lgt(c);o?.disconnect(),u&&o?.observe(u),r(u?t(u):null)},[t,o]),[a,l]=ow(s);return A.useMemo(()=>({nodeRef:a,rect:n,setRef:l}),[n,a,l])}const ugt=[{sensor:Aj,options:{}},{sensor:Ej,options:{}}],dgt={current:{}},iS={draggable:{measure:ZY},droppable:{measure:ZY,strategy:T2.WhileDragging,frequency:eT.Optimized},dragOverlay:{measure:$0}};class lb 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 fgt={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new lb,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:sw},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:iS,measureDroppableContainers:sw,windowRect:null,measuringScheduled:!1},hgt={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:sw,draggableNodes:new Map,over:null,measureDroppableContainers:sw},I8=A.createContext(hgt),Aue=A.createContext(fgt);function pgt(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new lb}}}function mgt(e,t){switch(t.type){case Vi.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case Vi.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 Vi.DragEnd:case Vi.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case Vi.RegisterDroppable:{const{element:n}=t,{id:r}=n,i=new lb(e.droppable.containers);return i.set(r,n),{...e,droppable:{...e.droppable,containers:i}}}case Vi.SetDroppableDisabled:{const{id:n,key:r,disabled:i}=t,o=e.droppable.containers.get(n);if(!o||r!==o.key)return e;const s=new lb(e.droppable.containers);return s.set(n,{...o,disabled:i}),{...e,droppable:{...e.droppable,containers:s}}}case Vi.UnregisterDroppable:{const{id:n,key:r}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;const o=new lb(e.droppable.containers);return o.delete(n),{...e,droppable:{...e.droppable,containers:o}}}default:return e}}function ggt(e){let{disabled:t}=e;const{active:n,activatorEvent:r,draggableNodes:i}=A.useContext(I8),o=JO(r),s=JO(n?.id);return A.useEffect(()=>{if(!t&&!r&&o&&s!=null){if(!wj(o)||document.activeElement===o.target)return;const a=i.get(s);if(!a)return;const{activatorNode:l,node:c}=a;if(!l.current&&!c.current)return;requestAnimationFrame(()=>{for(const u of[l.current,c.current]){if(!u)continue;const d=lmt(u);if(d){d.focus();break}}})}},[r,t,i,s,o]),null}function ygt(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((i,o)=>o({transform:i,...r}),n):n}function bgt(e){return A.useMemo(()=>({draggable:{...iS.draggable,...e?.draggable},droppable:{...iS.droppable,...e?.droppable},dragOverlay:{...iS.dragOverlay,...e?.dragOverlay}}),[e?.draggable,e?.droppable,e?.dragOverlay])}function vgt(e){let{activeNode:t,measure:n,initialRect:r,config:i=!0}=e;const o=A.useRef(!1),{x:s,y:a}=typeof i=="boolean"?{x:i,y:i}:i;Ic(()=>{if(!s&&!a||!t){o.current=!1;return}if(o.current||!r)return;const c=t?.node.current;if(!c||c.isConnected===!1)return;const u=n(c),d=gue(u,r);if(s||(d.x=0),a||(d.y=0),o.current=!0,Math.abs(d.x)>0||Math.abs(d.y)>0){const p=yue(c);p&&p.scrollBy({top:d.y,left:d.x})}},[t,s,a,r,n])}const Due=A.createContext({...kl,scaleX:1,scaleY:1});var $d;(function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"})($d||($d={}));const xgt=A.memo(function(t){var n,r,i,o;let{id:s,accessibility:a,autoScroll:l=!0,children:c,sensors:u=ugt,collisionDetection:d=Cmt,measuring:p,modifiers:g,...y}=t;const b=A.useReducer(mgt,void 0,pgt),[v,S]=b,[C,w]=pmt(),[k,E]=A.useState($d.Uninitialized),O=k===$d.Initialized,{draggable:{active:_,nodes:T,translate:I},droppable:{containers:P}}=v,L=_!=null?T.get(_):null,M=A.useRef({initial:null,translated:null}),$=A.useMemo(()=>{var jt;return _!=null?{id:_,data:(jt=L?.data)!=null?jt:dgt,rect:M}:null},[_,L]),N=A.useRef(null),[z,F]=A.useState(null),[W,V]=A.useState(null),q=D2(y,Object.values(y)),J=$v("DndDescribedBy",s),B=A.useMemo(()=>P.getEnabled(),[P]),U=bgt(p),{droppableRects:Y,measureDroppableContainers:H,measuringScheduled:G}=Zmt(B,{dragging:O,dependencies:[I.x,I.y],config:U.droppable}),Z=Jmt(T,_),oe=A.useMemo(()=>W?XO(W):null,[W]),ee=pr(),ie=Qmt(Z,U.draggable.measure);vgt({activeNode:_!=null?T.get(_):null,config:ee.layoutShiftCompensation,initialRect:ie,measure:U.draggable.measure});const te=rJ(Z,U.draggable.measure,ie),X=rJ(Z?Z.parentElement:null),Q=A.useRef({activatorEvent:null,active:null,activeNode:Z,collisionRect:null,collisions:null,droppableRects:Y,draggableNodes:T,draggingNode:null,draggingNodeRect:null,droppableContainers:P,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),se=P.getNodeFor((n=Q.current.over)==null?void 0:n.id),le=cgt({measure:U.dragOverlay.measure}),he=(r=le.nodeRef.current)!=null?r:Z,ye=O?(i=le.rect)!=null?i:te:null,Me=!!(le.nodeRef.current&&le.rect),ue=ngt(Me?null:te),ke=kue(he?Is(he):null),_e=rgt(O?se??Z:null),Ue=agt(_e),He=ygt(g,{transform:{x:I.x-ue.x,y:I.y-ue.y,scaleX:1,scaleY:1},activatorEvent:W,active:$,activeNodeRect:te,containerNodeRect:X,draggingNodeRect:ye,over:Q.current.over,overlayNodeRect:le.rect,scrollableAncestors:_e,scrollableAncestorRects:Ue,windowRect:ke}),Dt=oe?Cg(oe,I):null,yt=igt(_e),Be=oJ(yt),Re=oJ(yt,[te]),Ve=Cg(He,Be),Qe=ye?Amt(ye,He):null,ot=$&&Qe?d({active:$,collisionRect:Qe,droppableRects:Y,droppableContainers:B,pointerCoordinates:Dt}):null,lt=mue(ot,"id"),[Xe,$t]=A.useState(null),Pe=Me?He:Cg(He,Re),Ge=Emt(Pe,(o=Xe?.rect)!=null?o:null,te),mt=A.useRef(null),Ct=A.useCallback((jt,Ht)=>{let{sensor:sn,options:Rn}=Ht;if(N.current==null)return;const un=T.get(N.current);if(!un)return;const _t=jt.nativeEvent,yn=new sn({active:N.current,activeNode:un,event:_t,options:Rn,context:Q,onAbort(gt){if(!T.get(gt))return;const{onDragAbort:ce}=q.current,pe={id:gt};ce?.(pe),C({type:"onDragAbort",event:pe})},onPending(gt,Gt,ce,pe){if(!T.get(gt))return;const{onDragPending:$e}=q.current,We={id:gt,constraint:Gt,initialCoordinates:ce,offset:pe};$e?.(We),C({type:"onDragPending",event:We})},onStart(gt){const Gt=N.current;if(Gt==null)return;const ce=T.get(Gt);if(!ce)return;const{onDragStart:pe}=q.current,xe={activatorEvent:_t,active:{id:Gt,data:ce.data,rect:M}};Vd.unstable_batchedUpdates(()=>{pe?.(xe),E($d.Initializing),S({type:Vi.DragStart,initialCoordinates:gt,active:Gt}),C({type:"onDragStart",event:xe}),F(mt.current),V(_t)})},onMove(gt){S({type:Vi.DragMove,coordinates:gt})},onEnd:ct(Vi.DragEnd),onCancel:ct(Vi.DragCancel)});mt.current=yn;function ct(gt){return async function(){const{active:ce,collisions:pe,over:xe,scrollAdjustedTranslate:$e}=Q.current;let We=null;if(ce&&$e){const{cancelDrop:St}=q.current;We={activatorEvent:_t,active:ce,collisions:pe,delta:$e,over:xe},gt===Vi.DragEnd&&typeof St=="function"&&await Promise.resolve(St(We))&&(gt=Vi.DragCancel)}N.current=null,Vd.unstable_batchedUpdates(()=>{S({type:gt}),E($d.Uninitialized),$t(null),F(null),V(null),mt.current=null;const St=gt===Vi.DragEnd?"onDragEnd":"onDragCancel";if(We){const st=q.current[St];st?.(We),C({type:St,event:We})}})}}},[T]),ht=A.useCallback((jt,Ht)=>(sn,Rn)=>{const un=sn.nativeEvent,_t=T.get(Rn);if(N.current!==null||!_t||un.dndKit||un.defaultPrevented)return;const yn={active:_t};jt(sn,Ht.options,yn)===!0&&(un.dndKit={capturedBy:Ht.sensor},N.current=Rn,Ct(sn,Ht))},[T,Ct]),Jt=Xmt(u,ht);ogt(u),Ic(()=>{te&&k===$d.Initializing&&E($d.Initialized)},[te,k]),A.useEffect(()=>{const{onDragMove:jt}=q.current,{active:Ht,activatorEvent:sn,collisions:Rn,over:un}=Q.current;if(!Ht||!sn)return;const _t={active:Ht,activatorEvent:sn,collisions:Rn,delta:{x:Ve.x,y:Ve.y},over:un};Vd.unstable_batchedUpdates(()=>{jt?.(_t),C({type:"onDragMove",event:_t})})},[Ve.x,Ve.y]),A.useEffect(()=>{const{active:jt,activatorEvent:Ht,collisions:sn,droppableContainers:Rn,scrollAdjustedTranslate:un}=Q.current;if(!jt||N.current==null||!Ht||!un)return;const{onDragOver:_t}=q.current,yn=Rn.get(lt),ct=yn&&yn.rect.current?{id:yn.id,rect:yn.rect.current,data:yn.data,disabled:yn.disabled}:null,gt={active:jt,activatorEvent:Ht,collisions:sn,delta:{x:un.x,y:un.y},over:ct};Vd.unstable_batchedUpdates(()=>{$t(ct),_t?.(gt),C({type:"onDragOver",event:gt})})},[lt]),Ic(()=>{Q.current={activatorEvent:W,active:$,activeNode:Z,collisionRect:Qe,collisions:ot,droppableRects:Y,draggableNodes:T,draggingNode:he,draggingNodeRect:ye,droppableContainers:P,over:Xe,scrollableAncestors:_e,scrollAdjustedTranslate:Ve},M.current={initial:ye,translated:Qe}},[$,Z,ot,Qe,T,he,ye,Y,P,Xe,_e,Ve]),Gmt({...ee,delta:I,draggingRect:Qe,pointerCoordinates:Dt,scrollableAncestors:_e,scrollableAncestorRects:Ue});const fn=A.useMemo(()=>({active:$,activeNode:Z,activeNodeRect:te,activatorEvent:W,collisions:ot,containerNodeRect:X,dragOverlay:le,draggableNodes:T,droppableContainers:P,droppableRects:Y,over:Xe,measureDroppableContainers:H,scrollableAncestors:_e,scrollableAncestorRects:Ue,measuringConfiguration:U,measuringScheduled:G,windowRect:ke}),[$,Z,te,W,ot,X,le,T,P,Y,Xe,H,_e,Ue,U,G,ke]),Jn=A.useMemo(()=>({activatorEvent:W,activators:Jt,active:$,activeNodeRect:te,ariaDescribedById:{draggable:J},dispatch:S,draggableNodes:T,over:Xe,measureDroppableContainers:H}),[W,Jt,$,te,S,J,T,Xe,H]);return nn.createElement(fue.Provider,{value:w},nn.createElement(I8.Provider,{value:Jn},nn.createElement(Aue.Provider,{value:fn},nn.createElement(Due.Provider,{value:Ge},c)),nn.createElement(ggt,{disabled:a?.restoreFocus===!1})),nn.createElement(ymt,{...a,hiddenTextDescribedById:J}));function pr(){const jt=z?.autoScrollEnabled===!1,Ht=typeof l=="object"?l.enabled===!1:l===!1,sn=O&&!jt&&!Ht;return typeof l=="object"?{...l,enabled:sn}:{enabled:sn}}}),Sgt=A.createContext(null),aJ="button",wgt="Draggable";function Cgt(e){let{id:t,data:n,disabled:r=!1,attributes:i}=e;const o=$v(wgt),{activators:s,activatorEvent:a,active:l,activeNodeRect:c,ariaDescribedById:u,draggableNodes:d,over:p}=A.useContext(I8),{role:g=aJ,roleDescription:y="draggable",tabIndex:b=0}=i??{},v=l?.id===t,S=A.useContext(v?Due:Sgt),[C,w]=ow(),[k,E]=ow(),O=sgt(s,t),_=D2(n);Ic(()=>(d.set(t,{id:t,key:o,node:C,activatorNode:k,data:_}),()=>{const I=d.get(t);I&&I.key===o&&d.delete(t)}),[d,t]);const T=A.useMemo(()=>({role:g,tabIndex:b,"aria-disabled":r,"aria-pressed":v&&g===aJ?!0:void 0,"aria-roledescription":y,"aria-describedby":u.draggable}),[r,g,b,v,y,u.draggable]);return{active:l,activatorEvent:a,activeNodeRect:c,attributes:T,isDragging:v,listeners:r?void 0:O,node:C,over:p,setNodeRef:w,setActivatorNodeRef:E,transform:S}}function Egt(){return A.useContext(Aue)}const kgt="Droppable",Agt={timeout:25};function Dgt(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:i}=e;const o=$v(kgt),{active:s,dispatch:a,over:l,measureDroppableContainers:c}=A.useContext(I8),u=A.useRef({disabled:n}),d=A.useRef(!1),p=A.useRef(null),g=A.useRef(null),{disabled:y,updateMeasurementsFor:b,timeout:v}={...Agt,...i},S=D2(b??r),C=A.useCallback(()=>{if(!d.current){d.current=!0;return}g.current!=null&&clearTimeout(g.current),g.current=setTimeout(()=>{c(Array.isArray(S.current)?S.current:[S.current]),g.current=null},v)},[v]),w=R8({callback:C,disabled:y||!s}),k=A.useCallback((T,I)=>{w&&(I&&(w.unobserve(I),d.current=!1),T&&w.observe(T))},[w]),[E,O]=ow(k),_=D2(t);return A.useEffect(()=>{!w||!E.current||(w.disconnect(),d.current=!1,w.observe(E.current))},[E,w]),A.useEffect(()=>(a({type:Vi.RegisterDroppable,element:{id:r,key:o,disabled:n,node:E,rect:p,data:_}}),()=>a({type:Vi.UnregisterDroppable,key:o,id:r})),[r]),A.useEffect(()=>{n!==u.current.disabled&&(a({type:Vi.SetDroppableDisabled,id:r,key:o,disabled:n}),u.current.disabled=n)},[r,o,n,a]),{active:s,rect:p,isOver:l?.id===r,node:E,over:l,setNodeRef:O}}function Dj(e,t,n){const r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function _gt(e,t){return e.reduce((n,r,i)=>{const o=t.get(r);return o&&(n[i]=o),n},Array(e.length))}function n4(e){return e!==null&&e>=0}function Ogt(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 Tgt(e){return typeof e=="boolean"?{draggable:e,droppable:e}:e}const _ue=e=>{let{rects:t,activeIndex:n,overIndex:r,index:i}=e;const o=Dj(t,r,n),s=t[i],a=o[i];return!a||!s?null:{x:a.left-s.left,y:a.top-s.top,scaleX:a.width/s.width,scaleY:a.height/s.height}},r4={scaleX:1,scaleY:1},Mgt=e=>{var t;let{activeIndex:n,activeNodeRect:r,index:i,rects:o,overIndex:s}=e;const a=(t=o[n])!=null?t:r;if(!a)return null;if(i===n){const c=o[s];return c?{x:0,y:n<s?c.top+c.height-(a.top+a.height):c.top-a.top,...r4}:null}const l=Rgt(o,i,n);return i>n&&i<=s?{x:0,y:-a.height-l,...r4}:i<n&&i>=s?{x:0,y:a.height+l,...r4}:{x:0,y:0,...r4}};function Rgt(e,t,n){const r=e[t],i=e[t-1],o=e[t+1];return r?n<t?i?r.top-(i.top+i.height):o?o.top-(r.top+r.height):0:o?o.top-(r.top+r.height):i?r.top-(i.top+i.height):0:0}const Oue="Sortable",Tue=nn.createContext({activeIndex:-1,containerId:Oue,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:_ue,disabled:{draggable:!1,droppable:!1}});function Igt(e){let{children:t,id:n,items:r,strategy:i=_ue,disabled:o=!1}=e;const{active:s,dragOverlay:a,droppableRects:l,over:c,measureDroppableContainers:u}=Egt(),d=$v(Oue,n),p=a.rect!==null,g=A.useMemo(()=>r.map(O=>typeof O=="object"&&"id"in O?O.id:O),[r]),y=s!=null,b=s?g.indexOf(s.id):-1,v=c?g.indexOf(c.id):-1,S=A.useRef(g),C=!Ogt(g,S.current),w=v!==-1&&b===-1||C,k=Tgt(o);Ic(()=>{C&&y&&u(g)},[C,g,y,u]),A.useEffect(()=>{S.current=g},[g]);const E=A.useMemo(()=>({activeIndex:b,containerId:d,disabled:k,disableTransforms:w,items:g,overIndex:v,useDragOverlay:p,sortedRects:_gt(g,l),strategy:i}),[b,d,k.draggable,k.droppable,w,g,v,l,p,i]);return nn.createElement(Tue.Provider,{value:E},t)}const jgt=e=>{let{id:t,items:n,activeIndex:r,overIndex:i}=e;return Dj(n,r,i).indexOf(t)},Pgt=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:i,items:o,newIndex:s,previousItems:a,previousContainerId:l,transition:c}=e;return!c||!r||a!==o&&i===s?!1:n?!0:s!==i&&t===l},$gt={duration:200,easing:"ease"},Mue="transform",Lgt=O2.Transition.toString({property:Mue,duration:0,easing:"linear"}),Ngt={roleDescription:"sortable"};function Fgt(e){let{disabled:t,index:n,node:r,rect:i}=e;const[o,s]=A.useState(null),a=A.useRef(n);return Ic(()=>{if(!t&&n!==a.current&&r.current){const l=i.current;if(l){const c=$0(r.current,{ignoreTransform:!0}),u={x:l.left-c.left,y:l.top-c.top,scaleX:l.width/c.width,scaleY:l.height/c.height};(u.x||u.y)&&s(u)}}n!==a.current&&(a.current=n)},[t,n,r,i]),A.useEffect(()=>{o&&s(null)},[o]),o}function Bgt(e){let{animateLayoutChanges:t=Pgt,attributes:n,disabled:r,data:i,getNewIndex:o=jgt,id:s,strategy:a,resizeObserverConfig:l,transition:c=$gt}=e;const{items:u,containerId:d,activeIndex:p,disabled:g,disableTransforms:y,sortedRects:b,overIndex:v,useDragOverlay:S,strategy:C}=A.useContext(Tue),w=zgt(r,g),k=u.indexOf(s),E=A.useMemo(()=>({sortable:{containerId:d,index:k,items:u},...i}),[d,i,k,u]),O=A.useMemo(()=>u.slice(u.indexOf(s)),[u,s]),{rect:_,node:T,isOver:I,setNodeRef:P}=Dgt({id:s,data:E,disabled:w.droppable,resizeObserverConfig:{updateMeasurementsFor:O,...l}}),{active:L,activatorEvent:M,activeNodeRect:$,attributes:N,setNodeRef:z,listeners:F,isDragging:W,over:V,setActivatorNodeRef:q,transform:J}=Cgt({id:s,data:E,attributes:{...Ngt,...n},disabled:w.draggable}),B=imt(P,z),U=!!L,Y=U&&!y&&n4(p)&&n4(v),H=!S&&W,G=H&&Y?J:null,oe=Y?G??(a??C)({rects:b,activeNodeRect:$,activeIndex:p,overIndex:v,index:k}):null,ee=n4(p)&&n4(v)?o({id:s,items:u,activeIndex:p,overIndex:v}):k,ie=L?.id,te=A.useRef({activeId:ie,items:u,newIndex:ee,containerId:d}),X=u!==te.current.items,Q=t({active:L,containerId:d,isDragging:W,isSorting:U,id:s,index:k,items:u,newIndex:te.current.newIndex,previousItems:te.current.items,previousContainerId:te.current.containerId,transition:c,wasDragging:te.current.activeId!=null}),se=Fgt({disabled:!Q,index:k,node:T,rect:_});return A.useEffect(()=>{U&&te.current.newIndex!==ee&&(te.current.newIndex=ee),d!==te.current.containerId&&(te.current.containerId=d),u!==te.current.items&&(te.current.items=u)},[U,ee,d,u]),A.useEffect(()=>{if(ie===te.current.activeId)return;if(ie!=null&&te.current.activeId==null){te.current.activeId=ie;return}const he=setTimeout(()=>{te.current.activeId=ie},50);return()=>clearTimeout(he)},[ie]),{active:L,activeIndex:p,attributes:N,data:E,rect:_,index:k,newIndex:ee,items:u,isOver:I,isSorting:U,isDragging:W,listeners:F,node:T,overIndex:v,over:V,setNodeRef:B,setActivatorNodeRef:q,setDroppableNodeRef:P,setDraggableNodeRef:z,transform:se??oe,transition:le()};function le(){if(se||X&&te.current.newIndex===k)return Lgt;if(!(H&&!wj(M)||!c)&&(U||Q))return O2.Transition.toString({...c,property:Mue})}}function zgt(e,t){var n,r;return typeof e=="boolean"?{draggable:e,droppable:!1}:{draggable:(n=e?.draggable)!=null?n:t.draggable,droppable:(r=e?.droppable)!=null?r:t.droppable}}function lw(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 Hgt=[Gn.Down,Gn.Right,Gn.Up,Gn.Left],Ugt=(e,t)=>{let{context:{active:n,collisionRect:r,droppableRects:i,droppableContainers:o,over:s,scrollableAncestors:a}}=t;if(Hgt.includes(e.code)){if(e.preventDefault(),!n||!r)return;const l=[];o.getEnabled().forEach(d=>{if(!d||d!=null&&d.disabled)return;const p=i.get(d.id);if(p)switch(e.code){case Gn.Down:r.top<p.top&&l.push(d);break;case Gn.Up:r.top>p.top&&l.push(d);break;case Gn.Left:r.left>p.left&&l.push(d);break;case Gn.Right:r.left<p.left&&l.push(d);break}});const c=Smt({collisionRect:r,droppableRects:i,droppableContainers:l});let u=mue(c,"id");if(u===s?.id&&c.length>1&&(u=c[1].id),u!=null){const d=o.get(n.id),p=o.get(u),g=p?i.get(p.id):null,y=p?.node.current;if(y&&g&&d&&p){const v=M8(y).some((O,_)=>a[_]!==O),S=Rue(d,p),C=Vgt(d,p),w=v||!S?{x:0,y:0}:{x:C?r.width-g.width:0,y:C?r.height-g.height:0},k={x:g.left,y:g.top};return w.x&&w.y?k:_2(k,w)}}}};function Rue(e,t){return!lw(e)||!lw(t)?!1:e.data.current.sortable.containerId===t.data.current.sortable.containerId}function Vgt(e,t){return!lw(e)||!lw(t)||!Rue(e,t)?!1:e.data.current.sortable.index<t.data.current.sortable.index}const Wgt=({bridge:e,index:t})=>{const{attributes:n,listeners:r,setNodeRef:i,transform:o,transition:s,isDragging:a}=Bgt({id:e.id}),[l,c]=A.useState(!1);A.useEffect(()=>{dC(e.id).then(c)},[e.id]);const u={transform:O2.Transform.toString(o),transition:s,opacity:a?.5:1};return h.jsx(On,{ref:i,style:u,variant:"outlined",sx:{cursor:"grab","&:active":{cursor:"grabbing"},bgcolor:a?"action.selected":"background.paper",width:"fit-content"},children:h.jsxs(Yn,{sx:{display:"flex",alignItems:"center",gap:1.5,py:1,"&:last-child":{pb:1}},children:[h.jsx(ae,{...n,...r,sx:{display:"flex",alignItems:"center",color:"text.secondary"},children:h.jsx($De,{})}),h.jsx(ft,{label:t+1,size:"small",color:"primary",sx:{minWidth:32,fontWeight:"bold"}}),l?h.jsx(ae,{component:"img",src:Db(e.id),alt:e.name,sx:{width:40,height:40,borderRadius:"50%",objectFit:"cover",boxShadow:2}}):h.jsx(wl,{sx:{bgcolor:RM(e),width:40,height:40,boxShadow:2},children:(()=>{const d=MM(e);return h.jsx(d,{sx:{fontSize:24}})})()}),h.jsxs(ae,{sx:{flex:1},children:[h.jsx(re,{variant:"subtitle1",fontWeight:500,children:e.name}),h.jsxs(re,{variant:"caption",color:"text.secondary",children:["Port: ",e.port," • Priority: ",e.priority??100]})]})]})})},qgt=()=>{const{t:e}=on(),t=$c(),{content:n,isLoading:r}=h0(),i=rDe(),[o,s]=A.useState([]),[a,l]=A.useState(!1);A.useEffect(()=>{if(n){const g=[...n].sort((y,b)=>{const v=y.priority??100,S=b.priority??100;return v-S});s(g),l(!1)}},[n]);const c=bmt(YY(Aj),YY(Ej,{coordinateGetter:Ugt})),u=A.useCallback(g=>{const{active:y,over:b}=g;b&&y.id!==b.id&&(s(v=>{const S=v.findIndex(w=>w.id===y.id),C=v.findIndex(w=>w.id===b.id);return Dj(v,S,C)}),l(!0))},[]),d=A.useCallback(async()=>{const g=o.map((y,b)=>({id:y.id,priority:(b+1)*10}));try{await i(g),t.show({message:e("startup.saveSuccess"),severity:"success"}),l(!1)}catch(y){t.show({message:y instanceof Error?y.message:e("startup.saveFailed"),severity:"error"})}},[o,i,t,e]),p=A.useMemo(()=>o.map(g=>g.id),[o]);return r?h.jsxs(re,{children:[e("common.loading"),"..."]}):h.jsxs(Vt,{spacing:3,children:[h.jsx(W2,{items:[{name:e("nav.bridges"),to:Tt.bridges},{name:e("startup.title"),to:Tt.startup}]}),h.jsxs(ae,{display:"flex",alignItems:"center",gap:2,children:[h.jsx(c0,{color:"primary",fontSize:"large"}),h.jsxs(ae,{children:[h.jsx(re,{variant:"h5",fontWeight:600,children:e("startup.title")}),h.jsx(re,{variant:"body2",color:"text.secondary",children:e("startup.description")})]})]}),a&&h.jsx(zt,{severity:"info",action:h.jsx(qe,{color:"inherit",size:"small",startIcon:h.jsx(LS,{}),onClick:d,children:e("startup.saveChanges")}),children:e("startup.unsavedChanges")}),h.jsx(xgt,{sensors:c,collisionDetection:xmt,onDragEnd:u,children:h.jsx(Igt,{items:p,strategy:Mgt,children:h.jsx(Vt,{spacing:1,children:o.map((g,y)=>h.jsx(Wgt,{bridge:g,index:y},g.id))})})}),o.length===0&&h.jsx(re,{color:"text.secondary",textAlign:"center",py:4,children:e("startup.noBridges")}),a&&o.length>0&&h.jsx(ae,{display:"flex",justifyContent:"flex-end",children:h.jsx(qe,{variant:"contained",startIcon:h.jsx(LS,{}),onClick:d,children:e("startup.saveOrder")})})]})},KA="https://riddix.github.io/home-assistant-matter-hub",Tt={dashboard:"/",bridges:"/bridges",bridge:e=>`/bridges/${e}`,createBridge:"/bridges/create",areaSetup:"/bridges/area-setup",editBridge:e=>`/bridges/${e}/edit`,devices:"/devices",networkMap:"/network-map",health:"/health",labels:"/labels",lockCredentials:"/lock-credentials",plugins:"/plugins",settings:"/settings",startup:"/startup",githubRepository:"https://github.com/riddix/home-assistant-matter-hub/",documentation:KA,faq:{multiFabric:`${KA}/connect-multiple-fabrics`,bridgeConfig:`${KA}/bridge-configuration`}},Ggt=[{path:"",element:h.jsx(nSe,{}),children:[{path:"",element:h.jsx(eOe,{})},{path:Tt.bridges,element:h.jsx(K_e,{})},{path:Tt.createBridge,element:h.jsx(Vst,{})},{path:Tt.areaSetup,element:h.jsx(R6e,{})},{path:Tt.bridge(":bridgeId"),element:h.jsx(vDe,{})},{path:Tt.editBridge(":bridgeId"),element:h.jsx(Wst,{})},{path:Tt.devices,element:h.jsx(bOe,{})},{path:Tt.networkMap,element:h.jsx(Opt,{})},{path:Tt.health,element:h.jsx(lat,{})},{path:Tt.labels,element:h.jsx(fat,{})},{path:Tt.lockCredentials,element:h.jsx(bat,{})},{path:Tt.plugins,element:h.jsx(Zpt,{})},{path:Tt.settings,element:h.jsx(rmt,{})},{path:Tt.startup,element:h.jsx(qgt,{})},{path:"*",element:h.jsx(vat,{})}]}],Kgt={items:{isInitialized:!1,isLoading:!1}},Ygt=FT(Kgt,e=>{e.addCase(No.pending,t=>{t.items.isLoading=!0}).addCase(No.rejected,(t,n)=>{t.items.isInitialized=!0,t.items.isLoading=!1,t.items.content=void 0,t.items.error=n.error}).addCase(No.fulfilled,(t,n)=>{t.items.isInitialized=!0,t.items.isLoading=!1,t.items.content=n.payload,t.items.error=void 0}).addCase(kZ.fulfilled,(t,n)=>{t.items.content?.push(n.payload)}).addCase(DZ.fulfilled,(t,n)=>{const r=t.items.content?.findIndex(i=>i.id===n.payload.id)??-1;r!==-1&&(t.items.content[r]=n.payload)}).addCase(_Z.fulfilled,(t,n)=>{const r=t.items.content?.findIndex(i=>i.id===n.payload.id)??-1;r!==-1&&(t.items.content[r]=n.payload)}).addCase(AZ.fulfilled,(t,n)=>{if(t.items.content){const r=t.items.content.findIndex(i=>i.id===n.meta.arg);r!==-1&&t.items.content.splice(r,1)}}).addCase(OZ,(t,n)=>{t.items.isInitialized=!0,t.items.isLoading=!1,t.items.content=n.payload,t.items.error=void 0}).addCase(TZ,(t,n)=>{if(t.items.content){const r=t.items.content.findIndex(i=>i.id===n.payload.id);r!==-1?t.items.content[r]=n.payload:t.items.content.push(n.payload)}})}),Jgt={byBridge:{}},Xgt=FT(Jgt,e=>{e.addCase(Mu.pending,(t,n)=>{t.byBridge[n.meta.arg]=YA(t.byBridge[n.meta.arg],n)}).addCase(Mu.rejected,(t,n)=>{t.byBridge[n.meta.arg]=YA(t.byBridge[n.meta.arg],n)}).addCase(Mu.fulfilled,(t,n)=>{t.byBridge[n.meta.arg]=YA(t.byBridge[n.meta.arg],n)})}),Zgt={isInitialized:!1,isLoading:!1,content:void 0,error:void 0},YA=FT(Zgt,e=>{e.addCase(Mu.pending,t=>{t.isLoading=!0}).addCase(Mu.rejected,(t,n)=>{t.isInitialized=!0,t.isLoading=!1,t.content=void 0,t.error=n.error}).addCase(Mu.fulfilled,(t,n)=>{t.isInitialized=!0,t.isLoading=!1,t.content=n.payload,t.error=void 0})}),Qgt=L4e({reducer:{bridges:Ygt,devices:Xgt}}),_j=Sxe({createStyledComponent:ge("div",{name:"MuiContainer",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[`maxWidth${ve(String(n.maxWidth))}`],n.fixed&&t.fixed,n.disableGutters&&t.disableGutters]}}),useThemeProps:e=>at({props:e,name:"MuiContainer"})});function e0t(e){return et("MuiToolbar",e)}it("MuiToolbar",["root","gutters","regular","dense"]);const t0t=e=>{const{classes:t,disableGutters:n,variant:r}=e;return tt({root:["root",!n&&"gutters",r]},e0t,t)},n0t=ge("div",{name:"MuiToolbar",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,!n.disableGutters&&t.gutters,t[n.variant]]}})(Ke(({theme:e})=>({position:"relative",display:"flex",alignItems:"center",variants:[{props:({ownerState:t})=>!t.disableGutters,style:{paddingLeft:e.spacing(2),paddingRight:e.spacing(2),[e.breakpoints.up("sm")]:{paddingLeft:e.spacing(3),paddingRight:e.spacing(3)}}},{props:{variant:"dense"},style:{minHeight:48}},{props:{variant:"regular"},style:e.mixins.toolbar}]}))),Iue=A.forwardRef(function(t,n){const r=at({props:t,name:"MuiToolbar"}),{className:i,component:o="div",disableGutters:s=!1,variant:a="regular",...l}=r,c={...r,component:o,disableGutters:s,variant:a},u=t0t(c);return h.jsx(n0t,{as:o,className:Oe(u.root,i),ref:n,ownerState:c,...l})});class r0t extends A.Component{constructor(t){super(t),this.state={hasError:!1,error:null}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,n){console.error("ErrorBoundary caught:",t,n.componentStack)}render(){return this.state.hasError?h.jsxs(ae,{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",minHeight:"60vh",gap:2,p:4,children:[h.jsx(QT,{color:"error",sx:{fontSize:64}}),h.jsx(re,{variant:"h5",fontWeight:600,children:pi.t("errorBoundary.title")}),h.jsx(re,{variant:"body2",color:"text.secondary",textAlign:"center",maxWidth:480,children:this.state.error?.message??pi.t("errorBoundary.fallbackMessage")}),h.jsx(qe,{variant:"contained",onClick:()=>{this.setState({hasError:!1,error:null}),window.location.reload()},children:pi.t("errorBoundary.reload")})]}):this.props.children}}function i0t(e){return et("MuiFab",e)}const lJ=it("MuiFab",["root","primary","secondary","extended","circular","focusVisible","disabled","colorInherit","sizeSmall","sizeMedium","sizeLarge","info","error","warning","success"]),o0t=e=>{const{color:t,variant:n,classes:r,size:i}=e,o={root:["root",n,`size${ve(i)}`,t==="inherit"?"colorInherit":t]},s=tt(o,i0t,r);return{...r,...s}},s0t=ge(os,{name:"MuiFab",slot:"Root",shouldForwardProp:e=>Li(e)||e==="classes",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.variant],t[`size${ve(n.size)}`],n.color==="inherit"&&t.colorInherit,t[ve(n.size)],t[n.color]]}})(Ke(({theme:e})=>({...e.typography.button,minHeight:36,transition:e.transitions.create(["background-color","box-shadow","border-color"],{duration:e.transitions.duration.short}),borderRadius:"50%",padding:0,minWidth:0,width:56,height:56,zIndex:(e.vars||e).zIndex.fab,boxShadow:(e.vars||e).shadows[6],"&:active":{boxShadow:(e.vars||e).shadows[12]},color:e.vars?e.vars.palette.grey[900]:e.palette.getContrastText?.(e.palette.grey[300]),backgroundColor:(e.vars||e).palette.grey[300],"&:hover":{backgroundColor:(e.vars||e).palette.grey.A100,"@media (hover: none)":{backgroundColor:(e.vars||e).palette.grey[300]},textDecoration:"none"},[`&.${lJ.focusVisible}`]:{boxShadow:(e.vars||e).shadows[6]},variants:[{props:{size:"small"},style:{width:40,height:40}},{props:{size:"medium"},style:{width:48,height:48}},{props:{variant:"extended"},style:{borderRadius:48/2,padding:"0 16px",width:"auto",minHeight:"auto",minWidth:48,height:48}},{props:{variant:"extended",size:"small"},style:{width:"auto",padding:"0 8px",borderRadius:34/2,minWidth:34,height:34}},{props:{variant:"extended",size:"medium"},style:{width:"auto",padding:"0 16px",borderRadius:40/2,minWidth:40,height:40}},{props:{color:"inherit"},style:{color:"inherit"}}]})),Ke(({theme:e})=>({variants:[...Object.entries(e.palette).filter(Wn(["dark","contrastText"])).map(([t])=>({props:{color:t},style:{color:(e.vars||e).palette[t].contrastText,backgroundColor:(e.vars||e).palette[t].main,"&:hover":{backgroundColor:(e.vars||e).palette[t].dark,"@media (hover: none)":{backgroundColor:(e.vars||e).palette[t].main}}}}))]})),Ke(({theme:e})=>({[`&.${lJ.disabled}`]:{color:(e.vars||e).palette.action.disabled,boxShadow:(e.vars||e).shadows[0],backgroundColor:(e.vars||e).palette.action.disabledBackground}}))),a0t=A.forwardRef(function(t,n){const r=at({props:t,name:"MuiFab"}),{children:i,className:o,color:s="default",component:a="button",disabled:l=!1,disableFocusRipple:c=!1,focusVisibleClassName:u,size:d="large",variant:p="circular",...g}=r,y={...r,color:s,component:a,disabled:l,disableFocusRipple:c,size:d,variant:p},b=o0t(y);return h.jsx(s0t,{className:Oe(b.root,o),component:a,disabled:l,focusRipple:!c,focusVisibleClassName:Oe(b.focusVisible,u),ownerState:y,ref:n,...g,classes:b,children:i})}),l0t=[{code:"en",flag:"🇬🇧",name:"English"},{code:"de",flag:"🇩🇪",name:"Deutsch"},{code:"fr",flag:"🇫🇷",name:"Français"},{code:"es",flag:"🇪🇸",name:"Español"},{code:"it",flag:"🇮🇹",name:"Italiano"},{code:"zh",flag:"🇨🇳",name:"中文"},{code:"th",flag:"🇹🇭",name:"ไทย"},{code:"sv",flag:"🇸🇪",name:"Svenska"},{code:"tr",flag:"🇹🇷",name:"Türkçe"},{code:"ru",flag:"🇷🇺",name:"Русский"}],c0t="hamh-custom-languages";function u0t(){try{const e=localStorage.getItem(c0t);return e?JSON.parse(e).map(n=>({code:n.code,flag:"🌐",name:n.name})):[]}catch{return[]}}const d0t="https://github.com/RiDDiX/home-assistant-matter-hub/issues/new?labels=translation&title=Translation+improvement";function f0t(){const{t:e,i18n:t}=on(),[n,r]=A.useState(!1),i=A.useRef(null),o=A.useMemo(()=>[...l0t,...u0t()],[]),s=t.language?.split("-")[0]??"en",a=A.useCallback(()=>{r(u=>!u)},[]),l=A.useCallback(u=>{t.changeLanguage(u),r(!1)},[t]),c=A.useCallback(()=>{r(!1)},[]);return h.jsx(nZ,{onClickAway:c,children:h.jsxs(ae,{children:[h.jsx(a0t,{ref:i,size:"small",color:"primary",onClick:a,"aria-label":"Change language",sx:{position:"fixed",bottom:24,right:24,zIndex:1300},children:h.jsx(UDe,{})}),h.jsx(K2,{open:n,anchorEl:i.current,placement:"top-end",transition:!0,sx:{zIndex:1300},children:({TransitionProps:u})=>h.jsx(OS,{...u,timeout:200,children:h.jsxs(Gr,{elevation:8,sx:{mb:1,py:.5,minWidth:160,borderRadius:2,overflow:"hidden"},children:[o.map(d=>h.jsxs(ae,{onClick:()=>l(d.code),sx:{display:"flex",alignItems:"center",gap:1.5,px:2,py:1,cursor:"pointer",bgcolor:s===d.code?"action.selected":"transparent","&:hover":{bgcolor:"action.hover"},transition:"background-color 0.15s"},children:[h.jsx(re,{sx:{fontSize:"1.4rem",lineHeight:1,userSelect:"none"},children:d.flag}),h.jsx(re,{variant:"body2",fontWeight:s===d.code?600:400,children:d.name})]},d.code)),h.jsx(Dr,{}),h.jsxs(ae,{sx:{display:"flex",alignItems:"flex-start",gap:.75,px:2,py:1},children:[h.jsx(VT,{sx:{fontSize:14,mt:.25,color:"text.secondary"}}),h.jsxs(re,{variant:"caption",color:"text.secondary",sx:{lineHeight:1.4},children:[e("languageSwitcher.disclaimer")," ",h.jsx(V2,{href:d0t,target:"_blank",rel:"noopener",sx:{fontSize:"inherit"},children:e("languageSwitcher.contribute")})]})]})]})})})]})})}const h0t="home-assistant-matter-hub",p0t={name:h0t};function jue(){const e="2.1.0-alpha.535",[t,n]=A.useState(null);A.useEffect(()=>{fetch("api/health").then(i=>i.ok?i.json():null).then(i=>{i?.version&&n(i.version)}).catch(()=>{})},[]);const r=A.useMemo(()=>!t||e==="0.0.0-dev"?!1:e!==t,[t]);return A.useMemo(()=>({name:p0t.name,version:t??e,frontendVersion:e,backendVersion:t,versionMismatch:r}),[t,r])}const m0t=()=>{const{t:e}=on(),t=[{name:e("footer.github"),url:Tt.githubRepository},{name:e("footer.documentation"),url:Tt.documentation}];return h.jsxs(_j,{sx:{mt:16,mb:4},children:[h.jsx(Dr,{sx:{mt:4,mb:4}}),h.jsx(dt,{container:!0,spacing:2,justifyContent:"center",children:t.map((n,r)=>h.jsx(dt,{size:{xs:12,sm:"auto"},children:h.jsx(qe,{fullWidth:!0,size:"small",variant:"outlined",component:V2,href:n.url,target:"_blank",children:n.name})},r.toString()))})]})};function g0t(e){return et("MuiAppBar",e)}it("MuiAppBar",["root","positionFixed","positionAbsolute","positionSticky","positionStatic","positionRelative","colorDefault","colorPrimary","colorSecondary","colorInherit","colorTransparent","colorError","colorInfo","colorSuccess","colorWarning"]);const y0t=e=>{const{color:t,position:n,classes:r}=e,i={root:["root",`color${ve(t)}`,`position${ve(n)}`]};return tt(i,g0t,r)},cJ=(e,t)=>e?`${e.replace(")","")}, ${t})`:t,b0t=ge(Gr,{name:"MuiAppBar",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[`position${ve(n.position)}`],t[`color${ve(n.color)}`]]}})(Ke(({theme:e})=>({display:"flex",flexDirection:"column",width:"100%",boxSizing:"border-box",flexShrink:0,variants:[{props:{position:"fixed"},style:{position:"fixed",zIndex:(e.vars||e).zIndex.appBar,top:0,left:"auto",right:0,"@media print":{position:"absolute"}}},{props:{position:"absolute"},style:{position:"absolute",zIndex:(e.vars||e).zIndex.appBar,top:0,left:"auto",right:0}},{props:{position:"sticky"},style:{position:"sticky",zIndex:(e.vars||e).zIndex.appBar,top:0,left:"auto",right:0}},{props:{position:"static"},style:{position:"static"}},{props:{position:"relative"},style:{position:"relative"}},{props:{color:"inherit"},style:{"--AppBar-color":"inherit",color:"var(--AppBar-color)"}},{props:{color:"default"},style:{"--AppBar-background":e.vars?e.vars.palette.AppBar.defaultBg:e.palette.grey[100],"--AppBar-color":e.vars?e.vars.palette.text.primary:e.palette.getContrastText(e.palette.grey[100]),...e.applyStyles("dark",{"--AppBar-background":e.vars?e.vars.palette.AppBar.defaultBg:e.palette.grey[900],"--AppBar-color":e.vars?e.vars.palette.text.primary:e.palette.getContrastText(e.palette.grey[900])})}},...Object.entries(e.palette).filter(Wn(["contrastText"])).map(([t])=>({props:{color:t},style:{"--AppBar-background":(e.vars??e).palette[t].main,"--AppBar-color":(e.vars??e).palette[t].contrastText}})),{props:t=>t.enableColorOnDark===!0&&!["inherit","transparent"].includes(t.color),style:{backgroundColor:"var(--AppBar-background)",color:"var(--AppBar-color)"}},{props:t=>t.enableColorOnDark===!1&&!["inherit","transparent"].includes(t.color),style:{backgroundColor:"var(--AppBar-background)",color:"var(--AppBar-color)",...e.applyStyles("dark",{backgroundColor:e.vars?cJ(e.vars.palette.AppBar.darkBg,"var(--AppBar-background)"):null,color:e.vars?cJ(e.vars.palette.AppBar.darkColor,"var(--AppBar-color)"):null})}},{props:{color:"transparent"},style:{"--AppBar-background":"transparent","--AppBar-color":"inherit",backgroundColor:"var(--AppBar-background)",color:"var(--AppBar-color)",...e.applyStyles("dark",{backgroundImage:"none"})}}]}))),v0t=A.forwardRef(function(t,n){const r=at({props:t,name:"MuiAppBar"}),{className:i,color:o="primary",enableColorOnDark:s=!1,position:a="fixed",...l}=r,c={...r,color:o,position:a,enableColorOnDark:s},u=y0t(c);return h.jsx(b0t,{square:!0,component:"header",ownerState:c,elevation:4,className:Oe(u.root,i,a==="fixed"&&"mui-fixed"),ref:n,...l})});function x0t(e,t,n){const r=t.getBoundingClientRect(),i=n&&n.getBoundingClientRect(),o=oa(t);let s;if(t.fakeTransform)s=t.fakeTransform;else{const c=o.getComputedStyle(t);s=c.getPropertyValue("-webkit-transform")||c.getPropertyValue("transform")}let a=0,l=0;if(s&&s!=="none"&&typeof s=="string"){const c=s.split("(")[1].split(")")[0].split(",");a=parseInt(c[4],10),l=parseInt(c[5],10)}return e==="left"?i?`translateX(${i.right+a-r.left}px)`:`translateX(${o.innerWidth+a-r.left}px)`:e==="right"?i?`translateX(-${r.right-i.left-a}px)`:`translateX(-${r.left+r.width-a}px)`:e==="up"?i?`translateY(${i.bottom+l-r.top}px)`:`translateY(${o.innerHeight+l-r.top}px)`:i?`translateY(-${r.top-i.top+r.height-l}px)`:`translateY(-${r.top+r.height-l}px)`}function S0t(e){return typeof e=="function"?e():e}function i4(e,t,n){const r=S0t(n),i=x0t(e,t,r);i&&(t.style.webkitTransform=i,t.style.transform=i)}const w0t=A.forwardRef(function(t,n){const r=qi(),i={enter:r.transitions.easing.easeOut,exit:r.transitions.easing.sharp},o={enter:r.transitions.duration.enteringScreen,exit:r.transitions.duration.leavingScreen},{addEndListener:s,appear:a=!0,children:l,container:c,direction:u="down",easing:d=i,in:p,onEnter:g,onEntered:y,onEntering:b,onExit:v,onExited:S,onExiting:C,style:w,timeout:k=o,TransitionComponent:E=Ja,...O}=t,_=A.useRef(null),T=Br(Mf(l),_,n),I=V=>q=>{V&&(q===void 0?V(_.current):V(_.current,q))},P=I((V,q)=>{i4(u,V,c),jT(V),g&&g(V,q)}),L=I((V,q)=>{const J=mf({timeout:k,style:w,easing:d},{mode:"enter"});V.style.webkitTransition=r.transitions.create("-webkit-transform",{...J}),V.style.transition=r.transitions.create("transform",{...J}),V.style.webkitTransform="none",V.style.transform="none",b&&b(V,q)}),M=I(y),$=I(C),N=I(V=>{const q=mf({timeout:k,style:w,easing:d},{mode:"exit"});V.style.webkitTransition=r.transitions.create("-webkit-transform",q),V.style.transition=r.transitions.create("transform",q),i4(u,V,c),v&&v(V)}),z=I(V=>{V.style.webkitTransition="",V.style.transition="",S&&S(V)}),F=V=>{s&&s(_.current,V)},W=A.useCallback(()=>{_.current&&i4(u,_.current,c)},[u,c]);return A.useEffect(()=>{if(p||u==="down"||u==="right")return;const V=H2(()=>{_.current&&i4(u,_.current,c)}),q=oa(_.current);return q.addEventListener("resize",V),()=>{V.clear(),q.removeEventListener("resize",V)}},[u,p,c]),A.useEffect(()=>{p||W()},[p,W]),h.jsx(E,{nodeRef:_,onEnter:P,onEntered:M,onEntering:L,onExit:N,onExited:z,onExiting:$,addEndListener:F,appear:a,in:p,timeout:k,...O,children:(V,{ownerState:q,...J})=>A.cloneElement(l,{ref:T,style:{visibility:V==="exited"&&!p?"hidden":void 0,...w,...l.props.style},...J})})});function C0t(e){return et("MuiDrawer",e)}it("MuiDrawer",["root","docked","paper","anchorLeft","anchorRight","anchorTop","anchorBottom","paperAnchorLeft","paperAnchorRight","paperAnchorTop","paperAnchorBottom","paperAnchorDockedLeft","paperAnchorDockedRight","paperAnchorDockedTop","paperAnchorDockedBottom","modal"]);const Pue=(e,t)=>{const{ownerState:n}=e;return[t.root,(n.variant==="permanent"||n.variant==="persistent")&&t.docked,n.variant==="temporary"&&t.modal]},E0t=e=>{const{classes:t,anchor:n,variant:r}=e,i={root:["root",`anchor${ve(n)}`],docked:[(r==="permanent"||r==="persistent")&&"docked"],modal:["modal"],paper:["paper",`paperAnchor${ve(n)}`,r!=="temporary"&&`paperAnchorDocked${ve(n)}`]};return tt(i,C0t,t)},k0t=ge(nM,{name:"MuiDrawer",slot:"Root",overridesResolver:Pue})(Ke(({theme:e})=>({zIndex:(e.vars||e).zIndex.drawer}))),A0t=ge("div",{shouldForwardProp:Li,name:"MuiDrawer",slot:"Docked",skipVariantsResolver:!1,overridesResolver:Pue})({flex:"0 0 auto"}),D0t=ge(Gr,{name:"MuiDrawer",slot:"Paper",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.paper,t[`paperAnchor${ve(n.anchor)}`],n.variant!=="temporary"&&t[`paperAnchorDocked${ve(n.anchor)}`]]}})(Ke(({theme:e})=>({overflowY:"auto",display:"flex",flexDirection:"column",height:"100%",flex:"1 0 auto",zIndex:(e.vars||e).zIndex.drawer,WebkitOverflowScrolling:"touch",position:"fixed",top:0,outline:0,variants:[{props:{anchor:"left"},style:{left:0}},{props:{anchor:"top"},style:{top:0,left:0,right:0,height:"auto",maxHeight:"100%"}},{props:{anchor:"right"},style:{right:0}},{props:{anchor:"bottom"},style:{top:"auto",left:0,bottom:0,right:0,height:"auto",maxHeight:"100%"}},{props:({ownerState:t})=>t.anchor==="left"&&t.variant!=="temporary",style:{borderRight:`1px solid ${(e.vars||e).palette.divider}`}},{props:({ownerState:t})=>t.anchor==="top"&&t.variant!=="temporary",style:{borderBottom:`1px solid ${(e.vars||e).palette.divider}`}},{props:({ownerState:t})=>t.anchor==="right"&&t.variant!=="temporary",style:{borderLeft:`1px solid ${(e.vars||e).palette.divider}`}},{props:({ownerState:t})=>t.anchor==="bottom"&&t.variant!=="temporary",style:{borderTop:`1px solid ${(e.vars||e).palette.divider}`}}]}))),$ue={left:"right",right:"left",top:"down",bottom:"up"};function _0t(e){return["left","right"].includes(e)}function O0t({direction:e},t){return e==="rtl"&&_0t(t)?$ue[t]:t}const T0t=A.forwardRef(function(t,n){const r=at({props:t,name:"MuiDrawer"}),i=qi(),o=Pc(),s={enter:i.transitions.duration.enteringScreen,exit:i.transitions.duration.leavingScreen},{anchor:a="left",BackdropProps:l,children:c,className:u,elevation:d=16,hideBackdrop:p=!1,ModalProps:{BackdropProps:g,...y}={},onClose:b,open:v=!1,PaperProps:S={},SlideProps:C,TransitionComponent:w,transitionDuration:k=s,variant:E="temporary",slots:O={},slotProps:_={},...T}=r,I=A.useRef(!1);A.useEffect(()=>{I.current=!0},[]);const P=O0t({direction:o?"rtl":"ltr"},a),M={...r,anchor:a,elevation:d,open:v,variant:E,...T},$=E0t(M),N={slots:{transition:w,...O},slotProps:{paper:S,transition:C,..._,backdrop:MT(_.backdrop||{...l,...g},{transitionDuration:k})}},[z,F]=ut("root",{ref:n,elementType:k0t,className:Oe($.root,$.modal,u),shouldForwardComponentProp:!0,ownerState:M,externalForwardedProps:{...N,...T,...y},additionalProps:{open:v,onClose:b,hideBackdrop:p,slots:{backdrop:N.slots.backdrop},slotProps:{backdrop:N.slotProps.backdrop}}}),[W,V]=ut("paper",{elementType:D0t,shouldForwardComponentProp:!0,className:Oe($.paper,S.className),ownerState:M,externalForwardedProps:N,additionalProps:{elevation:E==="temporary"?d:0,square:!0,...E==="temporary"&&{role:"dialog","aria-modal":"true"}}}),[q,J]=ut("docked",{elementType:A0t,ref:n,className:Oe($.root,$.docked,u),ownerState:M,externalForwardedProps:N,additionalProps:T}),[B,U]=ut("transition",{elementType:w0t,ownerState:M,externalForwardedProps:N,additionalProps:{in:v,direction:$ue[P],timeout:k,appear:I.current}}),Y=h.jsx(W,{...V,children:c});if(E==="permanent")return h.jsx(q,{...J,children:Y});const H=h.jsx(B,{...U,children:Y});return E==="persistent"?h.jsx(q,{...J,children:H}):h.jsx(z,{...F,children:H})}),M0t=jX({themeId:Ra}),R0t={error:jf,warn:u0,info:eM,debug:cC},I0t=({open:e,onClose:t})=>{const{t:n}=on(),r=qi(),i=A.useMemo(()=>({error:r.palette.error.main,warn:r.palette.warning.main,info:r.palette.info.main,debug:r.palette.secondary.main}),[r]),[o,s]=A.useState([]),[a,l]=A.useState(!0),[c,u]=A.useState("error,warn,info".split(",")),[d,p]=A.useState(""),[g,y]=A.useState(!0),b=A.useCallback(async()=>{try{const k=new URLSearchParams({level:c.join(","),limit:"500",...d&&{search:d}}),E=await fetch(`api/logs?${k}`);if(E.ok){const O=await E.json();s(O.entries)}}catch(k){console.error("Failed to fetch logs:",k)}finally{l(!1)}},[c,d]);A.useEffect(()=>{e&&b()},[e,b]),A.useEffect(()=>{if(!g||!e)return;const k=setInterval(b,5e3);return()=>clearInterval(k)},[g,e,b]);const v=k=>{u(Array.isArray(k.target.value)?k.target.value:[k.target.value])},S=k=>{p(k.target.value)},C=async()=>{try{await fetch("api/logs",{method:"DELETE"}),s([])}catch(k){console.error("Failed to clear logs:",k)}},w=k=>{const E=R0t[k]||eM;return h.jsx(E,{sx:{fontSize:16,color:i[k]}})};return h.jsxs(Po,{open:e,onClose:t,maxWidth:"lg",fullWidth:!0,children:[h.jsxs(Lo,{sx:{display:"flex",alignItems:"center",gap:1},children:[h.jsx(cC,{}),n("logs.title"),h.jsx(ae,{sx:{flexGrow:1}}),h.jsx(Nt,{title:n("logs.autoRefresh"),children:h.jsx(ft,{label:g?"Auto":"Manual",color:g?"success":"default",size:"small",onClick:()=>y(!g),sx:{cursor:"pointer"}})}),h.jsx(Wt,{onClick:t,children:h.jsx($S,{})})]}),h.jsxs($o,{children:[h.jsx(Vt,{spacing:2,sx:{mb:2},children:h.jsxs(Vt,{direction:"row",spacing:2,alignItems:"center",children:[h.jsxs(rs,{size:"small",sx:{minWidth:200},children:[h.jsx(ja,{children:n("logs.logLevel")}),h.jsxs(ts,{value:c,label:n("logs.logLevel"),onChange:v,multiple:!0,renderValue:k=>h.jsx(ae,{sx:{display:"flex",flexWrap:"wrap",gap:.5},children:(Array.isArray(k)?k:[k]).map(E=>h.jsx(ft,{label:E.toUpperCase(),size:"small",sx:{backgroundColor:i[E],color:"white"}},E))}),children:[h.jsx(Nn,{value:"error",children:n("logs.error")}),h.jsx(Nn,{value:"warn",children:n("logs.warning")}),h.jsx(Nn,{value:"info",children:n("logs.info")}),h.jsx(Nn,{value:"debug",children:n("logs.debug")})]})]}),h.jsx(Zn,{size:"small",placeholder:n("logs.searchPlaceholder"),value:d,onChange:S,sx:{flexGrow:1}}),h.jsx(qe,{variant:"outlined",onClick:b,children:n("common.refresh")}),h.jsx(qe,{variant:"outlined",color:"error",onClick:C,children:n("common.delete")})]})}),h.jsx(ae,{sx:{height:400,overflow:"auto",backgroundColor:"background.paper",border:1,borderColor:"divider",borderRadius:1,p:1},children:a?h.jsx(ae,{sx:{display:"flex",justifyContent:"center",p:4},children:h.jsxs(re,{children:[n("common.loading"),"..."]})}):o.length===0?h.jsx(ae,{sx:{display:"flex",justifyContent:"center",p:4},children:h.jsx(re,{color:"text.secondary",children:n("logs.noResults")})}):h.jsx(Vt,{spacing:1,children:o.map((k,E)=>h.jsxs(ae,{sx:{p:1,borderRadius:1,backgroundColor:"action.hover",fontFamily:"monospace",fontSize:"0.875rem",wordBreak:"break-all"},children:[h.jsxs(ae,{sx:{display:"flex",alignItems:"center",gap:1,mb:.5},children:[w(k.level),h.jsx(re,{variant:"caption",color:"text.secondary",children:new Date(k.timestamp).toLocaleString()}),h.jsx(ft,{label:k.level.toUpperCase(),size:"small",sx:{backgroundColor:i[k.level],color:r.palette.getContrastText(i[k.level]??r.palette.grey[500]),fontSize:"0.7rem",height:20}})]}),h.jsx(re,{sx:{ml:3},children:k.message}),k.context&&h.jsx(re,{sx:{ml:3,color:"text.secondary",fontSize:"0.8rem"},children:JSON.stringify(k.context,null,2)})]},`${k.timestamp}-${k.level}-${E}`))})})]}),h.jsx(es,{children:h.jsx(qe,{onClick:t,children:n("common.close")})})]})};function uJ(){const{t:e}=on(),{isConnected:t}=RZ(),[n,r]=A.useState(null),[i,o]=A.useState(!1);A.useEffect(()=>{const b=async()=>{try{const S=await fetch("api/health");if(S.ok){const C=await S.json();r(C),o(!1)}else o(!0)}catch{o(!0)}};b();const v=setInterval(b,3e4);return()=>clearInterval(v)},[]);const s=b=>{const v=Math.floor(b/3600),S=Math.floor(b%3600/60);return v>0?`${v}h ${S}m`:`${S}m`},a=n?.status==="healthy"&&!i,l=n?.services?.bridges,c=l&&l.total>0&&l.running===l.total,u=l&&l.total===0,d=n?h.jsxs(ae,{sx:{p:.5},children:[h.jsxs("div",{children:[h.jsxs("strong",{children:[e("health.version"),":"]})," ",n.version??e("status.unknown")]}),h.jsxs("div",{children:[h.jsxs("strong",{children:[e("health.uptime"),":"]})," ",s(n.uptime??0)]}),n.services?.bridges&&h.jsxs("div",{children:[h.jsxs("strong",{children:[e("nav.bridges"),":"]})," ",n.services.bridges.running??0,"/",n.services.bridges.total??0," ",e("common.running").toLowerCase(),(n.services.bridges.stopped??0)>0&&` (${n.services.bridges.stopped} ${e("common.stopped").toLowerCase()})`]}),n.services?.homeAssistant&&h.jsxs("div",{children:[h.jsxs("strong",{children:[e("health.homeAssistant"),":"]})," ",n.services.homeAssistant.connected?e("health.connected"):e("health.disconnected")]}),h.jsxs("div",{children:[h.jsx("strong",{children:"WebSocket:"})," ",e(t?"health.connected":"health.disconnected")]})]}):e("status.loadingHealth"),p=()=>i||!a?h.jsx(jf,{fontSize:"small"}):c?h.jsx(Xa,{fontSize:"small"}):h.jsx(Gw,{fontSize:"small"}),g=()=>i||!a?"error":!c||!t?"warning":"success",y=()=>e(i?"status.error":a?t?u?"status.noBridges":c?"common.online":"common.starting":"common.offline":"status.unhealthy");return h.jsx(Nt,{title:d,arrow:!0,children:h.jsx(ft,{icon:p(),label:y(),color:g(),size:"small",variant:"filled",sx:{borderRadius:1,fontWeight:600,"& .MuiChip-icon":{color:"inherit"}}})})}const j0t=e=>A.createElement("svg",{viewBox:"0 0 91 89",xmlSpace:"preserve",xmlns:"http://www.w3.org/2000/svg",...e},A.createElement("g",{style:{display:"inline"}},A.createElement("path",{style:{fill:"#18bcf2",fillOpacity:1,strokeWidth:.266194},d:"m 49.149143,1.473171 38.513568,38.536435 c 0,0 1.248354,1.186052 2.207681,3.092371 0.959329,1.906323 1.10864,4.600698 1.10864,4.600698 v 36.786372 c 0,0 -0.01549,1.748506 -1.49842,3.050572 -1.482931,1.302064 -3.333077,1.362947 -3.333077,1.362947 l -81.325658,7.7e-5 c 0,0 -1.7523855,-0.0091 -3.17112,-1.352526 C -0.07808495,85.913164 0.05953025,84.487808 0.05953025,84.487808 V 47.704546 c 0,0 -0.0018381,-2.218618 0.95921785,-4.315832 0.9610554,-2.097209 2.3010618,-3.355005 2.3010618,-3.355005 L 41.545959,1.4719546 c 0,0 1.465224,-1.46837077 3.753488,-1.46837077 2.288268,0 3.849696,1.46958717 3.849696,1.46958717 z"}),A.createElement("path",{style:{fill:"#ffffff",fillOpacity:1,strokeWidth:.175841},d:"m 31.689717,32.051124 c 2.813363,2.331095 6.157331,3.89845 9.721813,4.556421 V 17.180647 l 3.873694,-2.282955 3.870527,2.282955 V 36.60772 c 3.565364,-0.658847 6.910387,-2.226204 9.725159,-4.556417 l 7.032345,4.154609 c -11.437354,11.557779 -29.852321,11.557779 -41.290025,0 z m 8.546732,49.60988 C 44.314996,65.760441 35.09933,49.470196 19.574984,45.139543 v 8.312381 c 3.383916,1.32244 6.386113,3.496288 8.728705,6.320026 L 11.83076,69.485301 v 4.56907 l 3.873697,2.270836 16.469936,-9.713534 c 1.224356,3.48294 1.56683,7.225375 0.996449,10.879778 z M 70.977694,45.139543 c -15.515726,4.34014 -24.72189,20.626696 -20.643519,36.521461 l 7.047658,-4.15742 c -0.569325,-3.654411 -0.2265,-7.3965 0.996449,-10.87979 l 16.457611,9.701233 3.870711,-2.283125 v -4.55677 L 62.233673,59.77195 c 2.342772,-2.822684 5.34497,-4.996533 8.728708,-6.320026 z"}))),P0t=e=>{const t=jue();return h.jsxs(ae,{component:Dc,to:Tt.dashboard,sx:{display:"flex",alignItems:"center",justifyContent:e.large?"flex-start":"center",flexGrow:1,textDecoration:"none",color:"inherit"},children:[h.jsx(j0t,{style:{height:"40px"}}),h.jsx(re,{variant:"inherit",component:"span",sx:{mr:1,ml:1},children:t.name.split("-").map(ve).join("-")}),e.large&&h.jsx(re,{variant:"caption",component:"span",children:t.version})]})},$0t=()=>{const e=M0t("(min-width:600px)"),{mode:t,setMode:n}=Rw(),[r,i]=A.useState(!1),[o,s]=A.useState(!1),a=jc(),l=Gu(),c=y=>y?y==="/"?l.pathname==="/":l.pathname.startsWith(y):!1,u=()=>{n(t==="dark"?"light":"dark")},{t:d}=on(),p=[{label:d("dashboard.title"),icon:h.jsx(EM,{}),to:Tt.dashboard},{label:d("nav.bridges"),icon:h.jsx(Ny,{}),to:Tt.bridges},{label:d("nav.devices"),icon:h.jsx(aa,{}),to:Tt.devices},{label:d("nav.networkMap"),icon:h.jsx(SM,{}),to:Tt.networkMap},{label:d("nav.startupOrder"),icon:h.jsx(c0,{}),to:Tt.startup},{label:d("nav.lockCredentials"),icon:h.jsx(Tu,{}),to:Tt.lockCredentials},{label:d("nav.filterReference"),icon:h.jsx(kM,{}),to:Tt.labels},{label:"Plugins",icon:h.jsx(Ly,{}),to:Tt.plugins},{label:d("nav.settings"),icon:h.jsx(f0,{}),to:Tt.settings},{label:d(t==="dark"?"nav.lightMode":"nav.darkMode"),icon:t==="dark"?h.jsx(WDe,{}):h.jsx(IDe,{}),onClick:u},{label:d("nav.systemLogs"),icon:h.jsx(cC,{}),onClick:()=>i(!0)},{label:d("nav.health"),icon:h.jsx(iM,{}),to:Tt.health}],g=y=>{s(!1),y.onClick?y.onClick():y.to&&a(y.to)};return h.jsxs(ae,{children:[h.jsx(v0t,{sx:{height:"72px"},children:h.jsx(Iue,{sx:{paddingLeft:"0 !important",paddingRight:"0 !important"},children:h.jsxs(_j,{sx:{padding:2,height:"100%",display:"flex",justifyContent:"space-between",alignItems:"center"},children:[h.jsx(P0t,{large:e}),e?h.jsxs(ae,{sx:{display:"flex",alignItems:"center",gap:1},children:[p.map(y=>y.to?h.jsx(Nt,{title:y.label,children:h.jsx(Wt,{component:Dc,to:y.to,sx:{color:"inherit",bgcolor:c(y.to)?"rgba(255,255,255,0.15)":"transparent",borderRadius:1},children:y.icon})},y.label):h.jsx(Nt,{title:y.label,children:h.jsx(Wt,{onClick:y.onClick,sx:{color:"inherit"},children:y.icon})},y.label)),h.jsx(uJ,{})]}):h.jsxs(ae,{sx:{display:"flex",alignItems:"center",gap:.5},children:[h.jsx(uJ,{}),h.jsx(Wt,{onClick:()=>s(!0),sx:{color:"inherit"},children:h.jsx(qDe,{})})]})]})})}),h.jsx(T0t,{anchor:"right",open:o,onClose:()=>s(!1),children:h.jsx(Fo,{sx:{width:250},children:p.map(y=>h.jsxs(Y6e,{selected:c(y.to),onClick:()=>g(y),children:[h.jsx(jo,{children:y.icon}),h.jsx(so,{primary:y.label})]},y.label))})}),h.jsx(I0t,{open:r,onClose:()=>i(!1)})]})},L0t=()=>{const{versionMismatch:e,frontendVersion:t,backendVersion:n}=jue(),{isConnected:r}=RZ();return h.jsxs(ae,{children:[h.jsx($0t,{}),h.jsx(Iue,{}),e&&h.jsxs(zt,{severity:"warning",variant:"filled",sx:{borderRadius:0},action:h.jsx(qe,{color:"inherit",size:"small",onClick:()=>window.location.reload(),children:"Reload"}),children:["Version mismatch: frontend ",t,", backend ",n,". Please reload to get the latest UI."]}),!r&&h.jsx(zt,{severity:"error",variant:"filled",sx:{borderRadius:0},children:"Connection lost — data may be outdated. Reconnecting…"}),h.jsx(_j,{sx:{p:2},children:h.jsx(r0t,{children:h.jsx(zJ,{})})}),h.jsx(m0t,{}),h.jsx(f0t,{})]})},N0t=Ow({colorSchemes:{light:{palette:{primary:{main:"#1976d2",light:"#42a5f5",dark:"#1565c0"},secondary:{main:"#9c27b0",light:"#ba68c8",dark:"#7b1fa2"},background:{default:"#f5f5f5",paper:"#ffffff"}}},dark:{palette:{primary:{main:"#90caf9",light:"#e3f2fd",dark:"#42a5f5"},secondary:{main:"#ce93d8",light:"#f3e5f5",dark:"#ab47bc"},background:{default:"#121212",paper:"#1e1e1e"}}}},typography:{fontFamily:'"Roboto", "Helvetica", "Arial", sans-serif',h1:{fontSize:"2.5rem",fontWeight:500},h2:{fontSize:"2rem",fontWeight:500},h3:{fontSize:"1.75rem",fontWeight:500},h4:{fontSize:"1.5rem",fontWeight:500},h5:{fontSize:"1.25rem",fontWeight:500},h6:{fontSize:"1rem",fontWeight:500}},shape:{borderRadius:8},components:{MuiCard:{styleOverrides:{root:{transition:"transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out","&:hover":{transform:"translateY(-2px)",boxShadow:"0 4px 20px rgba(0,0,0,0.12)"}}}},MuiButton:{styleOverrides:{root:{textTransform:"none",fontWeight:500}}},MuiChip:{styleOverrides:{root:{fontWeight:500}}},MuiAppBar:{styleOverrides:{root:{backgroundImage:"none"}}}}});let oS=document.getElementsByTagName("base")[0]?.href?.replace(/\/$/,"");oS?.startsWith("http")&&(oS=new URL(oS).pathname);const F0t=jme([{path:"/",element:h.jsx(L0t,{}),children:Ggt}],{basename:oS});Xfe.createRoot(document.getElementById("root")).render(h.jsx(A.StrictMode,{children:h.jsx(phe,{store:Qgt,children:h.jsxs(R3e,{theme:N0t,children:[h.jsx(D3e,{}),h.jsx(YX,{styles:{".rjsf-field-array > .MuiFormControl-root > .MuiPaper-root > .MuiBox-root > .MuiGrid-root > .MuiGrid-root:has(> .MuiBox-root > .MuiPaper-root > .MuiBox-root > .rjsf-field)":{overflow:"initial !important",flexGrow:1}}}),h.jsx(tSe,{children:h.jsx(q5e,{children:h.jsx(Gme,{router:F0t})})})]})})}));
|
|
499
|
+
`},gmt={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 ymt(e){let{announcements:t=gmt,container:n,hiddenTextDescribedById:r,screenReaderInstructions:i=mmt}=e;const{announce:o,announcement:s}=fmt(),a=$v("DndLiveRegion"),[l,c]=A.useState(!1);if(A.useEffect(()=>{c(!0)},[]),hmt(A.useMemo(()=>({onDragStart(d){let{active:p}=d;o(t.onDragStart({active:p}))},onDragMove(d){let{active:p,over:g}=d;t.onDragMove&&o(t.onDragMove({active:p,over:g}))},onDragOver(d){let{active:p,over:g}=d;o(t.onDragOver({active:p,over:g}))},onDragEnd(d){let{active:p,over:g}=d;o(t.onDragEnd({active:p,over:g}))},onDragCancel(d){let{active:p,over:g}=d;o(t.onDragCancel({active:p,over:g}))}}),[o,t])),!l)return null;const u=nn.createElement(nn.Fragment,null,nn.createElement(umt,{id:r,value:i.draggable}),nn.createElement(dmt,{id:a,announcement:s}));return n?Vd.createPortal(u,n):u}var Vi;(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"})(Vi||(Vi={}));function sw(){}function YY(e,t){return A.useMemo(()=>({sensor:e,options:t??{}}),[e,t])}function bmt(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return A.useMemo(()=>[...t].filter(r=>r!=null),[...t])}const kl=Object.freeze({x:0,y:0});function hue(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function pue(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function vmt(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function JY(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 mue(e,t){if(!e||e.length===0)return null;const[n]=e;return n[t]}function XY(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 xmt=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const i=XY(t,t.left,t.top),o=[];for(const s of r){const{id:a}=s,l=n.get(a);if(l){const c=hue(XY(l),i);o.push({id:a,data:{droppableContainer:s,value:c}})}}return o.sort(pue)},Smt=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const i=JY(t),o=[];for(const s of r){const{id:a}=s,l=n.get(a);if(l){const c=JY(l),u=i.reduce((p,g,y)=>p+hue(c[y],g),0),d=Number((u/4).toFixed(4));o.push({id:a,data:{droppableContainer:s,value:d}})}}return o.sort(pue)};function wmt(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),o=Math.min(t.top+t.height,e.top+e.height),s=i-r,a=o-n;if(r<i&&n<o){const l=t.width*t.height,c=e.width*e.height,u=s*a,d=u/(l+c-u);return Number(d.toFixed(4))}return 0}const Cmt=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const i=[];for(const o of r){const{id:s}=o,a=n.get(s);if(a){const l=wmt(a,t);l>0&&i.push({id:s,data:{droppableContainer:o,value:l}})}}return i.sort(vmt)};function Emt(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function gue(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:kl}function kmt(e){return function(n){for(var r=arguments.length,i=new Array(r>1?r-1:0),o=1;o<r;o++)i[o-1]=arguments[o];return i.reduce((s,a)=>({...s,top:s.top+e*a.y,bottom:s.bottom+e*a.y,left:s.left+e*a.x,right:s.right+e*a.x}),{...n})}}const Amt=kmt(1);function Dmt(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 _mt(e,t,n){const r=Dmt(t);if(!r)return e;const{scaleX:i,scaleY:o,x:s,y:a}=r,l=e.left-s-(1-i)*parseFloat(n),c=e.top-a-(1-o)*parseFloat(n.slice(n.indexOf(" ")+1)),u=i?e.width/i:e.width,d=o?e.height/o:e.height;return{width:u,height:d,top:c,right:l+u,bottom:c+d,left:l}}const Omt={ignoreTransform:!1};function $0(e,t){t===void 0&&(t=Omt);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:c,transformOrigin:u}=Is(e).getComputedStyle(e);c&&(n=_mt(n,c,u))}const{top:r,left:i,width:o,height:s,bottom:a,right:l}=n;return{top:r,left:i,width:o,height:s,bottom:a,right:l}}function ZY(e){return $0(e,{ignoreTransform:!0})}function Tmt(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function Mmt(e,t){return t===void 0&&(t=Is(e).getComputedStyle(e)),t.position==="fixed"}function Rmt(e,t){t===void 0&&(t=Is(e).getComputedStyle(e));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(i=>{const o=t[i];return typeof o=="string"?n.test(o):!1})}function M8(e,t){const n=[];function r(i){if(t!=null&&n.length>=t||!i)return n;if(xj(i)&&i.scrollingElement!=null&&!n.includes(i.scrollingElement))return n.push(i.scrollingElement),n;if(!jv(i)||uue(i)||n.includes(i))return n;const o=Is(e).getComputedStyle(i);return i!==e&&Rmt(i,o)&&n.push(i),Mmt(i,o)?n:r(i.parentNode)}return e?r(e):n}function yue(e){const[t]=M8(e,1);return t??null}function WA(e){return!T8||!e?null:j0(e)?e:vj(e)?xj(e)||e===P0(e).scrollingElement?window:jv(e)?e:null:null}function bue(e){return j0(e)?e.scrollX:e.scrollLeft}function vue(e){return j0(e)?e.scrollY:e.scrollTop}function ZO(e){return{x:bue(e),y:vue(e)}}var ro;(function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"})(ro||(ro={}));function xue(e){return!T8||!e?!1:e===document.scrollingElement}function Sue(e){const t={x:0,y:0},n=xue(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,o=e.scrollLeft<=t.x,s=e.scrollTop>=r.y,a=e.scrollLeft>=r.x;return{isTop:i,isLeft:o,isBottom:s,isRight:a,maxScroll:r,minScroll:t}}const Imt={x:.2,y:.2};function jmt(e,t,n,r,i){let{top:o,left:s,right:a,bottom:l}=n;r===void 0&&(r=10),i===void 0&&(i=Imt);const{isTop:c,isBottom:u,isLeft:d,isRight:p}=Sue(e),g={x:0,y:0},y={x:0,y:0},b={height:t.height*i.y,width:t.width*i.x};return!c&&o<=t.top+b.height?(g.y=ro.Backward,y.y=r*Math.abs((t.top+b.height-o)/b.height)):!u&&l>=t.bottom-b.height&&(g.y=ro.Forward,y.y=r*Math.abs((t.bottom-b.height-l)/b.height)),!p&&a>=t.right-b.width?(g.x=ro.Forward,y.x=r*Math.abs((t.right-b.width-a)/b.width)):!d&&s<=t.left+b.width&&(g.x=ro.Backward,y.x=r*Math.abs((t.left+b.width-s)/b.width)),{direction:g,speed:y}}function Pmt(e){if(e===document.scrollingElement){const{innerWidth:o,innerHeight:s}=window;return{top:0,left:0,right:o,bottom:s,width:o,height:s}}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 wue(e){return e.reduce((t,n)=>Cg(t,ZO(n)),kl)}function $mt(e){return e.reduce((t,n)=>t+bue(n),0)}function Lmt(e){return e.reduce((t,n)=>t+vue(n),0)}function Nmt(e,t){if(t===void 0&&(t=$0),!e)return;const{top:n,left:r,bottom:i,right:o}=t(e);yue(e)&&(i<=0||o<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}const Fmt=[["x",["left","right"],$mt],["y",["top","bottom"],Lmt]];class Cj{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=M8(n),i=wue(r);this.rect={...t},this.width=t.width,this.height=t.height;for(const[o,s,a]of Fmt)for(const l of s)Object.defineProperty(this,l,{get:()=>{const c=a(r),u=i[o]-c;return this.rect[l]+u},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class sb{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 Bmt(e){const{EventTarget:t}=Is(e);return e instanceof t?e:P0(e)}function qA(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 Ea;(function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"})(Ea||(Ea={}));function QY(e){e.preventDefault()}function zmt(e){e.stopPropagation()}var Gn;(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"})(Gn||(Gn={}));const Cue={start:[Gn.Space,Gn.Enter],cancel:[Gn.Esc],end:[Gn.Space,Gn.Enter,Gn.Tab]},Hmt=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case Gn.Right:return{...n,x:n.x+25};case Gn.Left:return{...n,x:n.x-25};case Gn.Down:return{...n,y:n.y+25};case Gn.Up:return{...n,y:n.y-25}}};class Ej{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 sb(P0(n)),this.windowListeners=new sb(Is(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(Ea.Resize,this.handleCancel),this.windowListeners.add(Ea.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(Ea.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:t,onStart:n}=this.props,r=t.node.current;r&&Nmt(r),n(kl)}handleKeyDown(t){if(wj(t)){const{active:n,context:r,options:i}=this.props,{keyboardCodes:o=Cue,coordinateGetter:s=Hmt,scrollBehavior:a="smooth"}=i,{code:l}=t;if(o.end.includes(l)){this.handleEnd(t);return}if(o.cancel.includes(l)){this.handleCancel(t);return}const{collisionRect:c}=r.current,u=c?{x:c.left,y:c.top}:kl;this.referenceCoordinates||(this.referenceCoordinates=u);const d=s(t,{active:n,context:r.current,currentCoordinates:u});if(d){const p=_2(d,u),g={x:0,y:0},{scrollableAncestors:y}=r.current;for(const b of y){const v=t.code,{isTop:S,isRight:C,isLeft:w,isBottom:k,maxScroll:E,minScroll:O}=Sue(b),_=Pmt(b),T={x:Math.min(v===Gn.Right?_.right-_.width/2:_.right,Math.max(v===Gn.Right?_.left:_.left+_.width/2,d.x)),y:Math.min(v===Gn.Down?_.bottom-_.height/2:_.bottom,Math.max(v===Gn.Down?_.top:_.top+_.height/2,d.y))},I=v===Gn.Right&&!C||v===Gn.Left&&!w,P=v===Gn.Down&&!k||v===Gn.Up&&!S;if(I&&T.x!==d.x){const L=b.scrollLeft+p.x,M=v===Gn.Right&&L<=E.x||v===Gn.Left&&L>=O.x;if(M&&!p.y){b.scrollTo({left:L,behavior:a});return}M?g.x=b.scrollLeft-L:g.x=v===Gn.Right?b.scrollLeft-E.x:b.scrollLeft-O.x,g.x&&b.scrollBy({left:-g.x,behavior:a});break}else if(P&&T.y!==d.y){const L=b.scrollTop+p.y,M=v===Gn.Down&&L<=E.y||v===Gn.Up&&L>=O.y;if(M&&!p.x){b.scrollTo({top:L,behavior:a});return}M?g.y=b.scrollTop-L:g.y=v===Gn.Down?b.scrollTop-E.y:b.scrollTop-O.y,g.y&&b.scrollBy({top:-g.y,behavior:a});break}}this.handleMove(t,Cg(_2(d,this.referenceCoordinates),g))}}}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()}}Ej.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:r=Cue,onActivation:i}=t,{active:o}=n;const{code:s}=e.nativeEvent;if(r.start.includes(s)){const a=o.activatorNode.current;return a&&e.target!==a?!1:(e.preventDefault(),i?.({event:e.nativeEvent}),!0)}return!1}}];function eJ(e){return!!(e&&"distance"in e)}function tJ(e){return!!(e&&"delay"in e)}class kj{constructor(t,n,r){var i;r===void 0&&(r=Bmt(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:o}=t,{target:s}=o;this.props=t,this.events=n,this.document=P0(s),this.documentListeners=new sb(this.document),this.listeners=new sb(r),this.windowListeners=new sb(Is(s)),this.initialCoordinates=(i=XO(o))!=null?i:kl,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(Ea.Resize,this.handleCancel),this.windowListeners.add(Ea.DragStart,QY),this.windowListeners.add(Ea.VisibilityChange,this.handleCancel),this.windowListeners.add(Ea.ContextMenu,QY),this.documentListeners.add(Ea.Keydown,this.handleKeydown),n){if(r!=null&&r({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(tJ(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(eJ(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(Ea.Click,zmt,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(Ea.SelectionChange,this.removeTextSelection),n(t))}handleMove(t){var n;const{activated:r,initialCoordinates:i,props:o}=this,{onMove:s,options:{activationConstraint:a}}=o;if(!i)return;const l=(n=XO(t))!=null?n:kl,c=_2(i,l);if(!r&&a){if(eJ(a)){if(a.tolerance!=null&&qA(c,a.tolerance))return this.handleCancel();if(qA(c,a.distance))return this.handleStart()}if(tJ(a)&&qA(c,a.tolerance))return this.handleCancel();this.handlePending(a,c);return}t.cancelable&&t.preventDefault(),s(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===Gn.Esc&&this.handleCancel()}removeTextSelection(){var t;(t=this.document.getSelection())==null||t.removeAllRanges()}}const Umt={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class Aj extends kj{constructor(t){const{event:n}=t,r=P0(n.target);super(t,Umt,r)}}Aj.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r?.({event:n}),!0)}}];const Vmt={move:{name:"mousemove"},end:{name:"mouseup"}};var QO;(function(e){e[e.RightClick=2]="RightClick"})(QO||(QO={}));class Wmt extends kj{constructor(t){super(t,Vmt,P0(t.event.target))}}Wmt.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button===QO.RightClick?!1:(r?.({event:n}),!0)}}];const GA={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class qmt extends kj{constructor(t){super(t,GA)}static setup(){return window.addEventListener(GA.move.name,t,{capture:!1,passive:!1}),function(){window.removeEventListener(GA.move.name,t)};function t(){}}}qmt.activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;const{touches:i}=n;return i.length>1?!1:(r?.({event:n}),!0)}}];var ab;(function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"})(ab||(ab={}));var aw;(function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"})(aw||(aw={}));function Gmt(e){let{acceleration:t,activator:n=ab.Pointer,canScroll:r,draggingRect:i,enabled:o,interval:s=5,order:a=aw.TreeOrder,pointerCoordinates:l,scrollableAncestors:c,scrollableAncestorRects:u,delta:d,threshold:p}=e;const g=Ymt({delta:d,disabled:!o}),[y,b]=omt(),v=A.useRef({x:0,y:0}),S=A.useRef({x:0,y:0}),C=A.useMemo(()=>{switch(n){case ab.Pointer:return l?{top:l.y,bottom:l.y,left:l.x,right:l.x}:null;case ab.DraggableRect:return i}},[n,i,l]),w=A.useRef(null),k=A.useCallback(()=>{const O=w.current;if(!O)return;const _=v.current.x*S.current.x,T=v.current.y*S.current.y;O.scrollBy(_,T)},[]),E=A.useMemo(()=>a===aw.TreeOrder?[...c].reverse():c,[a,c]);A.useEffect(()=>{if(!o||!c.length||!C){b();return}for(const O of E){if(r?.(O)===!1)continue;const _=c.indexOf(O),T=u[_];if(!T)continue;const{direction:I,speed:P}=jmt(O,T,C,t,p);for(const L of["x","y"])g[L][I[L]]||(P[L]=0,I[L]=0);if(P.x>0||P.y>0){b(),w.current=O,y(k,s),v.current=P,S.current=I;return}}v.current={x:0,y:0},S.current={x:0,y:0},b()},[t,k,r,b,o,s,JSON.stringify(C),JSON.stringify(g),y,c,E,u,JSON.stringify(p)])}const Kmt={x:{[ro.Backward]:!1,[ro.Forward]:!1},y:{[ro.Backward]:!1,[ro.Forward]:!1}};function Ymt(e){let{delta:t,disabled:n}=e;const r=JO(t);return Pv(i=>{if(n||!r||!i)return Kmt;const o={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[ro.Backward]:i.x[ro.Backward]||o.x===-1,[ro.Forward]:i.x[ro.Forward]||o.x===1},y:{[ro.Backward]:i.y[ro.Backward]||o.y===-1,[ro.Forward]:i.y[ro.Forward]||o.y===1}}},[n,t,r])}function Jmt(e,t){const n=t!=null?e.get(t):void 0,r=n?n.node.current:null;return Pv(i=>{var o;return t==null?null:(o=r??i)!=null?o:null},[r,t])}function Xmt(e,t){return A.useMemo(()=>e.reduce((n,r)=>{const{sensor:i}=r,o=i.activators.map(s=>({eventName:s.eventName,handler:t(s.handler,r)}));return[...n,...o]},[]),[e,t])}var T2;(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(T2||(T2={}));var eT;(function(e){e.Optimized="optimized"})(eT||(eT={}));const nJ=new Map;function Zmt(e,t){let{dragging:n,dependencies:r,config:i}=t;const[o,s]=A.useState(null),{frequency:a,measure:l,strategy:c}=i,u=A.useRef(e),d=v(),p=D2(d),g=A.useCallback(function(S){S===void 0&&(S=[]),!p.current&&s(C=>C===null?S:C.concat(S.filter(w=>!C.includes(w))))},[p]),y=A.useRef(null),b=Pv(S=>{if(d&&!n)return nJ;if(!S||S===nJ||u.current!==e||o!=null){const C=new Map;for(let w of e){if(!w)continue;if(o&&o.length>0&&!o.includes(w.id)&&w.rect.current){C.set(w.id,w.rect.current);continue}const k=w.node.current,E=k?new Cj(l(k),k):null;w.rect.current=E,E&&C.set(w.id,E)}return C}return S},[e,o,n,d,l]);return A.useEffect(()=>{u.current=e},[e]),A.useEffect(()=>{d||g()},[n,d]),A.useEffect(()=>{o&&o.length>0&&s(null)},[JSON.stringify(o)]),A.useEffect(()=>{d||typeof a!="number"||y.current!==null||(y.current=setTimeout(()=>{g(),y.current=null},a))},[a,d,g,...r]),{droppableRects:b,measureDroppableContainers:g,measuringScheduled:o!=null};function v(){switch(c){case T2.Always:return!1;case T2.BeforeDragging:return n;default:return!n}}}function Eue(e,t){return Pv(n=>e?n||(typeof t=="function"?t(e):e):null,[t,e])}function Qmt(e,t){return Eue(e,t)}function egt(e){let{callback:t,disabled:n}=e;const r=Sj(t),i=A.useMemo(()=>{if(n||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:o}=window;return new o(r)},[r,n]);return A.useEffect(()=>()=>i?.disconnect(),[i]),i}function R8(e){let{callback:t,disabled:n}=e;const r=Sj(t),i=A.useMemo(()=>{if(n||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:o}=window;return new o(r)},[n]);return A.useEffect(()=>()=>i?.disconnect(),[i]),i}function tgt(e){return new Cj($0(e),e)}function rJ(e,t,n){t===void 0&&(t=tgt);const[r,i]=A.useState(null);function o(){i(l=>{if(!e)return null;if(e.isConnected===!1){var c;return(c=l??n)!=null?c:null}const u=t(e);return JSON.stringify(l)===JSON.stringify(u)?l:u})}const s=egt({callback(l){if(e)for(const c of l){const{type:u,target:d}=c;if(u==="childList"&&d instanceof HTMLElement&&d.contains(e)){o();break}}}}),a=R8({callback:o});return Ic(()=>{o(),e?(a?.observe(e),s?.observe(document.body,{childList:!0,subtree:!0})):(a?.disconnect(),s?.disconnect())},[e]),r}function ngt(e){const t=Eue(e);return gue(e,t)}const iJ=[];function rgt(e){const t=A.useRef(e),n=Pv(r=>e?r&&r!==iJ&&e&&t.current&&e.parentNode===t.current.parentNode?r:M8(e):iJ,[e]);return A.useEffect(()=>{t.current=e},[e]),n}function igt(e){const[t,n]=A.useState(null),r=A.useRef(e),i=A.useCallback(o=>{const s=WA(o.target);s&&n(a=>a?(a.set(s,ZO(s)),new Map(a)):null)},[]);return A.useEffect(()=>{const o=r.current;if(e!==o){s(o);const a=e.map(l=>{const c=WA(l);return c?(c.addEventListener("scroll",i,{passive:!0}),[c,ZO(c)]):null}).filter(l=>l!=null);n(a.length?new Map(a):null),r.current=e}return()=>{s(e),s(o)};function s(a){a.forEach(l=>{const c=WA(l);c?.removeEventListener("scroll",i)})}},[i,e]),A.useMemo(()=>e.length?t?Array.from(t.values()).reduce((o,s)=>Cg(o,s),kl):wue(e):kl,[e,t])}function oJ(e,t){t===void 0&&(t=[]);const n=A.useRef(null);return A.useEffect(()=>{n.current=null},t),A.useEffect(()=>{const r=e!==kl;r&&!n.current&&(n.current=e),!r&&n.current&&(n.current=null)},[e]),n.current?_2(e,n.current):kl}function ogt(e){A.useEffect(()=>{if(!T8)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?.()}},e.map(t=>{let{sensor:n}=t;return n}))}function sgt(e,t){return A.useMemo(()=>e.reduce((n,r)=>{let{eventName:i,handler:o}=r;return n[i]=s=>{o(s,t)},n},{}),[e,t])}function kue(e){return A.useMemo(()=>e?Tmt(e):null,[e])}const sJ=[];function agt(e,t){t===void 0&&(t=$0);const[n]=e,r=kue(n?Is(n):null),[i,o]=A.useState(sJ);function s(){o(()=>e.length?e.map(l=>xue(l)?r:new Cj(t(l),l)):sJ)}const a=R8({callback:s});return Ic(()=>{a?.disconnect(),s(),e.forEach(l=>a?.observe(l))},[e]),i}function lgt(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return jv(t)?t:e}function cgt(e){let{measure:t}=e;const[n,r]=A.useState(null),i=A.useCallback(c=>{for(const{target:u}of c)if(jv(u)){r(d=>{const p=t(u);return d?{...d,width:p.width,height:p.height}:p});break}},[t]),o=R8({callback:i}),s=A.useCallback(c=>{const u=lgt(c);o?.disconnect(),u&&o?.observe(u),r(u?t(u):null)},[t,o]),[a,l]=ow(s);return A.useMemo(()=>({nodeRef:a,rect:n,setRef:l}),[n,a,l])}const ugt=[{sensor:Aj,options:{}},{sensor:Ej,options:{}}],dgt={current:{}},iS={draggable:{measure:ZY},droppable:{measure:ZY,strategy:T2.WhileDragging,frequency:eT.Optimized},dragOverlay:{measure:$0}};class lb 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 fgt={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new lb,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:sw},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:iS,measureDroppableContainers:sw,windowRect:null,measuringScheduled:!1},hgt={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:sw,draggableNodes:new Map,over:null,measureDroppableContainers:sw},I8=A.createContext(hgt),Aue=A.createContext(fgt);function pgt(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new lb}}}function mgt(e,t){switch(t.type){case Vi.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case Vi.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 Vi.DragEnd:case Vi.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case Vi.RegisterDroppable:{const{element:n}=t,{id:r}=n,i=new lb(e.droppable.containers);return i.set(r,n),{...e,droppable:{...e.droppable,containers:i}}}case Vi.SetDroppableDisabled:{const{id:n,key:r,disabled:i}=t,o=e.droppable.containers.get(n);if(!o||r!==o.key)return e;const s=new lb(e.droppable.containers);return s.set(n,{...o,disabled:i}),{...e,droppable:{...e.droppable,containers:s}}}case Vi.UnregisterDroppable:{const{id:n,key:r}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;const o=new lb(e.droppable.containers);return o.delete(n),{...e,droppable:{...e.droppable,containers:o}}}default:return e}}function ggt(e){let{disabled:t}=e;const{active:n,activatorEvent:r,draggableNodes:i}=A.useContext(I8),o=JO(r),s=JO(n?.id);return A.useEffect(()=>{if(!t&&!r&&o&&s!=null){if(!wj(o)||document.activeElement===o.target)return;const a=i.get(s);if(!a)return;const{activatorNode:l,node:c}=a;if(!l.current&&!c.current)return;requestAnimationFrame(()=>{for(const u of[l.current,c.current]){if(!u)continue;const d=lmt(u);if(d){d.focus();break}}})}},[r,t,i,s,o]),null}function ygt(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((i,o)=>o({transform:i,...r}),n):n}function bgt(e){return A.useMemo(()=>({draggable:{...iS.draggable,...e?.draggable},droppable:{...iS.droppable,...e?.droppable},dragOverlay:{...iS.dragOverlay,...e?.dragOverlay}}),[e?.draggable,e?.droppable,e?.dragOverlay])}function vgt(e){let{activeNode:t,measure:n,initialRect:r,config:i=!0}=e;const o=A.useRef(!1),{x:s,y:a}=typeof i=="boolean"?{x:i,y:i}:i;Ic(()=>{if(!s&&!a||!t){o.current=!1;return}if(o.current||!r)return;const c=t?.node.current;if(!c||c.isConnected===!1)return;const u=n(c),d=gue(u,r);if(s||(d.x=0),a||(d.y=0),o.current=!0,Math.abs(d.x)>0||Math.abs(d.y)>0){const p=yue(c);p&&p.scrollBy({top:d.y,left:d.x})}},[t,s,a,r,n])}const Due=A.createContext({...kl,scaleX:1,scaleY:1});var $d;(function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"})($d||($d={}));const xgt=A.memo(function(t){var n,r,i,o;let{id:s,accessibility:a,autoScroll:l=!0,children:c,sensors:u=ugt,collisionDetection:d=Cmt,measuring:p,modifiers:g,...y}=t;const b=A.useReducer(mgt,void 0,pgt),[v,S]=b,[C,w]=pmt(),[k,E]=A.useState($d.Uninitialized),O=k===$d.Initialized,{draggable:{active:_,nodes:T,translate:I},droppable:{containers:P}}=v,L=_!=null?T.get(_):null,M=A.useRef({initial:null,translated:null}),$=A.useMemo(()=>{var jt;return _!=null?{id:_,data:(jt=L?.data)!=null?jt:dgt,rect:M}:null},[_,L]),N=A.useRef(null),[z,F]=A.useState(null),[W,V]=A.useState(null),q=D2(y,Object.values(y)),J=$v("DndDescribedBy",s),B=A.useMemo(()=>P.getEnabled(),[P]),U=bgt(p),{droppableRects:Y,measureDroppableContainers:H,measuringScheduled:G}=Zmt(B,{dragging:O,dependencies:[I.x,I.y],config:U.droppable}),Z=Jmt(T,_),oe=A.useMemo(()=>W?XO(W):null,[W]),ee=pr(),ie=Qmt(Z,U.draggable.measure);vgt({activeNode:_!=null?T.get(_):null,config:ee.layoutShiftCompensation,initialRect:ie,measure:U.draggable.measure});const te=rJ(Z,U.draggable.measure,ie),X=rJ(Z?Z.parentElement:null),Q=A.useRef({activatorEvent:null,active:null,activeNode:Z,collisionRect:null,collisions:null,droppableRects:Y,draggableNodes:T,draggingNode:null,draggingNodeRect:null,droppableContainers:P,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),se=P.getNodeFor((n=Q.current.over)==null?void 0:n.id),le=cgt({measure:U.dragOverlay.measure}),he=(r=le.nodeRef.current)!=null?r:Z,ye=O?(i=le.rect)!=null?i:te:null,Me=!!(le.nodeRef.current&&le.rect),ue=ngt(Me?null:te),ke=kue(he?Is(he):null),_e=rgt(O?se??Z:null),Ue=agt(_e),He=ygt(g,{transform:{x:I.x-ue.x,y:I.y-ue.y,scaleX:1,scaleY:1},activatorEvent:W,active:$,activeNodeRect:te,containerNodeRect:X,draggingNodeRect:ye,over:Q.current.over,overlayNodeRect:le.rect,scrollableAncestors:_e,scrollableAncestorRects:Ue,windowRect:ke}),Dt=oe?Cg(oe,I):null,yt=igt(_e),Be=oJ(yt),Re=oJ(yt,[te]),Ve=Cg(He,Be),Qe=ye?Amt(ye,He):null,ot=$&&Qe?d({active:$,collisionRect:Qe,droppableRects:Y,droppableContainers:B,pointerCoordinates:Dt}):null,lt=mue(ot,"id"),[Xe,$t]=A.useState(null),Pe=Me?He:Cg(He,Re),Ge=Emt(Pe,(o=Xe?.rect)!=null?o:null,te),mt=A.useRef(null),Ct=A.useCallback((jt,Ht)=>{let{sensor:sn,options:Rn}=Ht;if(N.current==null)return;const un=T.get(N.current);if(!un)return;const _t=jt.nativeEvent,yn=new sn({active:N.current,activeNode:un,event:_t,options:Rn,context:Q,onAbort(gt){if(!T.get(gt))return;const{onDragAbort:ce}=q.current,pe={id:gt};ce?.(pe),C({type:"onDragAbort",event:pe})},onPending(gt,Gt,ce,pe){if(!T.get(gt))return;const{onDragPending:$e}=q.current,We={id:gt,constraint:Gt,initialCoordinates:ce,offset:pe};$e?.(We),C({type:"onDragPending",event:We})},onStart(gt){const Gt=N.current;if(Gt==null)return;const ce=T.get(Gt);if(!ce)return;const{onDragStart:pe}=q.current,xe={activatorEvent:_t,active:{id:Gt,data:ce.data,rect:M}};Vd.unstable_batchedUpdates(()=>{pe?.(xe),E($d.Initializing),S({type:Vi.DragStart,initialCoordinates:gt,active:Gt}),C({type:"onDragStart",event:xe}),F(mt.current),V(_t)})},onMove(gt){S({type:Vi.DragMove,coordinates:gt})},onEnd:ct(Vi.DragEnd),onCancel:ct(Vi.DragCancel)});mt.current=yn;function ct(gt){return async function(){const{active:ce,collisions:pe,over:xe,scrollAdjustedTranslate:$e}=Q.current;let We=null;if(ce&&$e){const{cancelDrop:St}=q.current;We={activatorEvent:_t,active:ce,collisions:pe,delta:$e,over:xe},gt===Vi.DragEnd&&typeof St=="function"&&await Promise.resolve(St(We))&&(gt=Vi.DragCancel)}N.current=null,Vd.unstable_batchedUpdates(()=>{S({type:gt}),E($d.Uninitialized),$t(null),F(null),V(null),mt.current=null;const St=gt===Vi.DragEnd?"onDragEnd":"onDragCancel";if(We){const st=q.current[St];st?.(We),C({type:St,event:We})}})}}},[T]),ht=A.useCallback((jt,Ht)=>(sn,Rn)=>{const un=sn.nativeEvent,_t=T.get(Rn);if(N.current!==null||!_t||un.dndKit||un.defaultPrevented)return;const yn={active:_t};jt(sn,Ht.options,yn)===!0&&(un.dndKit={capturedBy:Ht.sensor},N.current=Rn,Ct(sn,Ht))},[T,Ct]),Jt=Xmt(u,ht);ogt(u),Ic(()=>{te&&k===$d.Initializing&&E($d.Initialized)},[te,k]),A.useEffect(()=>{const{onDragMove:jt}=q.current,{active:Ht,activatorEvent:sn,collisions:Rn,over:un}=Q.current;if(!Ht||!sn)return;const _t={active:Ht,activatorEvent:sn,collisions:Rn,delta:{x:Ve.x,y:Ve.y},over:un};Vd.unstable_batchedUpdates(()=>{jt?.(_t),C({type:"onDragMove",event:_t})})},[Ve.x,Ve.y]),A.useEffect(()=>{const{active:jt,activatorEvent:Ht,collisions:sn,droppableContainers:Rn,scrollAdjustedTranslate:un}=Q.current;if(!jt||N.current==null||!Ht||!un)return;const{onDragOver:_t}=q.current,yn=Rn.get(lt),ct=yn&&yn.rect.current?{id:yn.id,rect:yn.rect.current,data:yn.data,disabled:yn.disabled}:null,gt={active:jt,activatorEvent:Ht,collisions:sn,delta:{x:un.x,y:un.y},over:ct};Vd.unstable_batchedUpdates(()=>{$t(ct),_t?.(gt),C({type:"onDragOver",event:gt})})},[lt]),Ic(()=>{Q.current={activatorEvent:W,active:$,activeNode:Z,collisionRect:Qe,collisions:ot,droppableRects:Y,draggableNodes:T,draggingNode:he,draggingNodeRect:ye,droppableContainers:P,over:Xe,scrollableAncestors:_e,scrollAdjustedTranslate:Ve},M.current={initial:ye,translated:Qe}},[$,Z,ot,Qe,T,he,ye,Y,P,Xe,_e,Ve]),Gmt({...ee,delta:I,draggingRect:Qe,pointerCoordinates:Dt,scrollableAncestors:_e,scrollableAncestorRects:Ue});const fn=A.useMemo(()=>({active:$,activeNode:Z,activeNodeRect:te,activatorEvent:W,collisions:ot,containerNodeRect:X,dragOverlay:le,draggableNodes:T,droppableContainers:P,droppableRects:Y,over:Xe,measureDroppableContainers:H,scrollableAncestors:_e,scrollableAncestorRects:Ue,measuringConfiguration:U,measuringScheduled:G,windowRect:ke}),[$,Z,te,W,ot,X,le,T,P,Y,Xe,H,_e,Ue,U,G,ke]),Jn=A.useMemo(()=>({activatorEvent:W,activators:Jt,active:$,activeNodeRect:te,ariaDescribedById:{draggable:J},dispatch:S,draggableNodes:T,over:Xe,measureDroppableContainers:H}),[W,Jt,$,te,S,J,T,Xe,H]);return nn.createElement(fue.Provider,{value:w},nn.createElement(I8.Provider,{value:Jn},nn.createElement(Aue.Provider,{value:fn},nn.createElement(Due.Provider,{value:Ge},c)),nn.createElement(ggt,{disabled:a?.restoreFocus===!1})),nn.createElement(ymt,{...a,hiddenTextDescribedById:J}));function pr(){const jt=z?.autoScrollEnabled===!1,Ht=typeof l=="object"?l.enabled===!1:l===!1,sn=O&&!jt&&!Ht;return typeof l=="object"?{...l,enabled:sn}:{enabled:sn}}}),Sgt=A.createContext(null),aJ="button",wgt="Draggable";function Cgt(e){let{id:t,data:n,disabled:r=!1,attributes:i}=e;const o=$v(wgt),{activators:s,activatorEvent:a,active:l,activeNodeRect:c,ariaDescribedById:u,draggableNodes:d,over:p}=A.useContext(I8),{role:g=aJ,roleDescription:y="draggable",tabIndex:b=0}=i??{},v=l?.id===t,S=A.useContext(v?Due:Sgt),[C,w]=ow(),[k,E]=ow(),O=sgt(s,t),_=D2(n);Ic(()=>(d.set(t,{id:t,key:o,node:C,activatorNode:k,data:_}),()=>{const I=d.get(t);I&&I.key===o&&d.delete(t)}),[d,t]);const T=A.useMemo(()=>({role:g,tabIndex:b,"aria-disabled":r,"aria-pressed":v&&g===aJ?!0:void 0,"aria-roledescription":y,"aria-describedby":u.draggable}),[r,g,b,v,y,u.draggable]);return{active:l,activatorEvent:a,activeNodeRect:c,attributes:T,isDragging:v,listeners:r?void 0:O,node:C,over:p,setNodeRef:w,setActivatorNodeRef:E,transform:S}}function Egt(){return A.useContext(Aue)}const kgt="Droppable",Agt={timeout:25};function Dgt(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:i}=e;const o=$v(kgt),{active:s,dispatch:a,over:l,measureDroppableContainers:c}=A.useContext(I8),u=A.useRef({disabled:n}),d=A.useRef(!1),p=A.useRef(null),g=A.useRef(null),{disabled:y,updateMeasurementsFor:b,timeout:v}={...Agt,...i},S=D2(b??r),C=A.useCallback(()=>{if(!d.current){d.current=!0;return}g.current!=null&&clearTimeout(g.current),g.current=setTimeout(()=>{c(Array.isArray(S.current)?S.current:[S.current]),g.current=null},v)},[v]),w=R8({callback:C,disabled:y||!s}),k=A.useCallback((T,I)=>{w&&(I&&(w.unobserve(I),d.current=!1),T&&w.observe(T))},[w]),[E,O]=ow(k),_=D2(t);return A.useEffect(()=>{!w||!E.current||(w.disconnect(),d.current=!1,w.observe(E.current))},[E,w]),A.useEffect(()=>(a({type:Vi.RegisterDroppable,element:{id:r,key:o,disabled:n,node:E,rect:p,data:_}}),()=>a({type:Vi.UnregisterDroppable,key:o,id:r})),[r]),A.useEffect(()=>{n!==u.current.disabled&&(a({type:Vi.SetDroppableDisabled,id:r,key:o,disabled:n}),u.current.disabled=n)},[r,o,n,a]),{active:s,rect:p,isOver:l?.id===r,node:E,over:l,setNodeRef:O}}function Dj(e,t,n){const r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function _gt(e,t){return e.reduce((n,r,i)=>{const o=t.get(r);return o&&(n[i]=o),n},Array(e.length))}function n4(e){return e!==null&&e>=0}function Ogt(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 Tgt(e){return typeof e=="boolean"?{draggable:e,droppable:e}:e}const _ue=e=>{let{rects:t,activeIndex:n,overIndex:r,index:i}=e;const o=Dj(t,r,n),s=t[i],a=o[i];return!a||!s?null:{x:a.left-s.left,y:a.top-s.top,scaleX:a.width/s.width,scaleY:a.height/s.height}},r4={scaleX:1,scaleY:1},Mgt=e=>{var t;let{activeIndex:n,activeNodeRect:r,index:i,rects:o,overIndex:s}=e;const a=(t=o[n])!=null?t:r;if(!a)return null;if(i===n){const c=o[s];return c?{x:0,y:n<s?c.top+c.height-(a.top+a.height):c.top-a.top,...r4}:null}const l=Rgt(o,i,n);return i>n&&i<=s?{x:0,y:-a.height-l,...r4}:i<n&&i>=s?{x:0,y:a.height+l,...r4}:{x:0,y:0,...r4}};function Rgt(e,t,n){const r=e[t],i=e[t-1],o=e[t+1];return r?n<t?i?r.top-(i.top+i.height):o?o.top-(r.top+r.height):0:o?o.top-(r.top+r.height):i?r.top-(i.top+i.height):0:0}const Oue="Sortable",Tue=nn.createContext({activeIndex:-1,containerId:Oue,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:_ue,disabled:{draggable:!1,droppable:!1}});function Igt(e){let{children:t,id:n,items:r,strategy:i=_ue,disabled:o=!1}=e;const{active:s,dragOverlay:a,droppableRects:l,over:c,measureDroppableContainers:u}=Egt(),d=$v(Oue,n),p=a.rect!==null,g=A.useMemo(()=>r.map(O=>typeof O=="object"&&"id"in O?O.id:O),[r]),y=s!=null,b=s?g.indexOf(s.id):-1,v=c?g.indexOf(c.id):-1,S=A.useRef(g),C=!Ogt(g,S.current),w=v!==-1&&b===-1||C,k=Tgt(o);Ic(()=>{C&&y&&u(g)},[C,g,y,u]),A.useEffect(()=>{S.current=g},[g]);const E=A.useMemo(()=>({activeIndex:b,containerId:d,disabled:k,disableTransforms:w,items:g,overIndex:v,useDragOverlay:p,sortedRects:_gt(g,l),strategy:i}),[b,d,k.draggable,k.droppable,w,g,v,l,p,i]);return nn.createElement(Tue.Provider,{value:E},t)}const jgt=e=>{let{id:t,items:n,activeIndex:r,overIndex:i}=e;return Dj(n,r,i).indexOf(t)},Pgt=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:i,items:o,newIndex:s,previousItems:a,previousContainerId:l,transition:c}=e;return!c||!r||a!==o&&i===s?!1:n?!0:s!==i&&t===l},$gt={duration:200,easing:"ease"},Mue="transform",Lgt=O2.Transition.toString({property:Mue,duration:0,easing:"linear"}),Ngt={roleDescription:"sortable"};function Fgt(e){let{disabled:t,index:n,node:r,rect:i}=e;const[o,s]=A.useState(null),a=A.useRef(n);return Ic(()=>{if(!t&&n!==a.current&&r.current){const l=i.current;if(l){const c=$0(r.current,{ignoreTransform:!0}),u={x:l.left-c.left,y:l.top-c.top,scaleX:l.width/c.width,scaleY:l.height/c.height};(u.x||u.y)&&s(u)}}n!==a.current&&(a.current=n)},[t,n,r,i]),A.useEffect(()=>{o&&s(null)},[o]),o}function Bgt(e){let{animateLayoutChanges:t=Pgt,attributes:n,disabled:r,data:i,getNewIndex:o=jgt,id:s,strategy:a,resizeObserverConfig:l,transition:c=$gt}=e;const{items:u,containerId:d,activeIndex:p,disabled:g,disableTransforms:y,sortedRects:b,overIndex:v,useDragOverlay:S,strategy:C}=A.useContext(Tue),w=zgt(r,g),k=u.indexOf(s),E=A.useMemo(()=>({sortable:{containerId:d,index:k,items:u},...i}),[d,i,k,u]),O=A.useMemo(()=>u.slice(u.indexOf(s)),[u,s]),{rect:_,node:T,isOver:I,setNodeRef:P}=Dgt({id:s,data:E,disabled:w.droppable,resizeObserverConfig:{updateMeasurementsFor:O,...l}}),{active:L,activatorEvent:M,activeNodeRect:$,attributes:N,setNodeRef:z,listeners:F,isDragging:W,over:V,setActivatorNodeRef:q,transform:J}=Cgt({id:s,data:E,attributes:{...Ngt,...n},disabled:w.draggable}),B=imt(P,z),U=!!L,Y=U&&!y&&n4(p)&&n4(v),H=!S&&W,G=H&&Y?J:null,oe=Y?G??(a??C)({rects:b,activeNodeRect:$,activeIndex:p,overIndex:v,index:k}):null,ee=n4(p)&&n4(v)?o({id:s,items:u,activeIndex:p,overIndex:v}):k,ie=L?.id,te=A.useRef({activeId:ie,items:u,newIndex:ee,containerId:d}),X=u!==te.current.items,Q=t({active:L,containerId:d,isDragging:W,isSorting:U,id:s,index:k,items:u,newIndex:te.current.newIndex,previousItems:te.current.items,previousContainerId:te.current.containerId,transition:c,wasDragging:te.current.activeId!=null}),se=Fgt({disabled:!Q,index:k,node:T,rect:_});return A.useEffect(()=>{U&&te.current.newIndex!==ee&&(te.current.newIndex=ee),d!==te.current.containerId&&(te.current.containerId=d),u!==te.current.items&&(te.current.items=u)},[U,ee,d,u]),A.useEffect(()=>{if(ie===te.current.activeId)return;if(ie!=null&&te.current.activeId==null){te.current.activeId=ie;return}const he=setTimeout(()=>{te.current.activeId=ie},50);return()=>clearTimeout(he)},[ie]),{active:L,activeIndex:p,attributes:N,data:E,rect:_,index:k,newIndex:ee,items:u,isOver:I,isSorting:U,isDragging:W,listeners:F,node:T,overIndex:v,over:V,setNodeRef:B,setActivatorNodeRef:q,setDroppableNodeRef:P,setDraggableNodeRef:z,transform:se??oe,transition:le()};function le(){if(se||X&&te.current.newIndex===k)return Lgt;if(!(H&&!wj(M)||!c)&&(U||Q))return O2.Transition.toString({...c,property:Mue})}}function zgt(e,t){var n,r;return typeof e=="boolean"?{draggable:e,droppable:!1}:{draggable:(n=e?.draggable)!=null?n:t.draggable,droppable:(r=e?.droppable)!=null?r:t.droppable}}function lw(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 Hgt=[Gn.Down,Gn.Right,Gn.Up,Gn.Left],Ugt=(e,t)=>{let{context:{active:n,collisionRect:r,droppableRects:i,droppableContainers:o,over:s,scrollableAncestors:a}}=t;if(Hgt.includes(e.code)){if(e.preventDefault(),!n||!r)return;const l=[];o.getEnabled().forEach(d=>{if(!d||d!=null&&d.disabled)return;const p=i.get(d.id);if(p)switch(e.code){case Gn.Down:r.top<p.top&&l.push(d);break;case Gn.Up:r.top>p.top&&l.push(d);break;case Gn.Left:r.left>p.left&&l.push(d);break;case Gn.Right:r.left<p.left&&l.push(d);break}});const c=Smt({collisionRect:r,droppableRects:i,droppableContainers:l});let u=mue(c,"id");if(u===s?.id&&c.length>1&&(u=c[1].id),u!=null){const d=o.get(n.id),p=o.get(u),g=p?i.get(p.id):null,y=p?.node.current;if(y&&g&&d&&p){const v=M8(y).some((O,_)=>a[_]!==O),S=Rue(d,p),C=Vgt(d,p),w=v||!S?{x:0,y:0}:{x:C?r.width-g.width:0,y:C?r.height-g.height:0},k={x:g.left,y:g.top};return w.x&&w.y?k:_2(k,w)}}}};function Rue(e,t){return!lw(e)||!lw(t)?!1:e.data.current.sortable.containerId===t.data.current.sortable.containerId}function Vgt(e,t){return!lw(e)||!lw(t)||!Rue(e,t)?!1:e.data.current.sortable.index<t.data.current.sortable.index}const Wgt=({bridge:e,index:t})=>{const{attributes:n,listeners:r,setNodeRef:i,transform:o,transition:s,isDragging:a}=Bgt({id:e.id}),[l,c]=A.useState(!1);A.useEffect(()=>{dC(e.id).then(c)},[e.id]);const u={transform:O2.Transform.toString(o),transition:s,opacity:a?.5:1};return h.jsx(On,{ref:i,style:u,variant:"outlined",sx:{cursor:"grab","&:active":{cursor:"grabbing"},bgcolor:a?"action.selected":"background.paper",width:"fit-content"},children:h.jsxs(Yn,{sx:{display:"flex",alignItems:"center",gap:1.5,py:1,"&:last-child":{pb:1}},children:[h.jsx(ae,{...n,...r,sx:{display:"flex",alignItems:"center",color:"text.secondary"},children:h.jsx($De,{})}),h.jsx(ft,{label:t+1,size:"small",color:"primary",sx:{minWidth:32,fontWeight:"bold"}}),l?h.jsx(ae,{component:"img",src:Db(e.id),alt:e.name,sx:{width:40,height:40,borderRadius:"50%",objectFit:"cover",boxShadow:2}}):h.jsx(wl,{sx:{bgcolor:RM(e),width:40,height:40,boxShadow:2},children:(()=>{const d=MM(e);return h.jsx(d,{sx:{fontSize:24}})})()}),h.jsxs(ae,{sx:{flex:1},children:[h.jsx(re,{variant:"subtitle1",fontWeight:500,children:e.name}),h.jsxs(re,{variant:"caption",color:"text.secondary",children:["Port: ",e.port," • Priority: ",e.priority??100]})]})]})})},qgt=()=>{const{t:e}=on(),t=$c(),{content:n,isLoading:r}=h0(),i=rDe(),[o,s]=A.useState([]),[a,l]=A.useState(!1);A.useEffect(()=>{if(n){const g=[...n].sort((y,b)=>{const v=y.priority??100,S=b.priority??100;return v-S});s(g),l(!1)}},[n]);const c=bmt(YY(Aj),YY(Ej,{coordinateGetter:Ugt})),u=A.useCallback(g=>{const{active:y,over:b}=g;b&&y.id!==b.id&&(s(v=>{const S=v.findIndex(w=>w.id===y.id),C=v.findIndex(w=>w.id===b.id);return Dj(v,S,C)}),l(!0))},[]),d=A.useCallback(async()=>{const g=o.map((y,b)=>({id:y.id,priority:(b+1)*10}));try{await i(g),t.show({message:e("startup.saveSuccess"),severity:"success"}),l(!1)}catch(y){t.show({message:y instanceof Error?y.message:e("startup.saveFailed"),severity:"error"})}},[o,i,t,e]),p=A.useMemo(()=>o.map(g=>g.id),[o]);return r?h.jsxs(re,{children:[e("common.loading"),"..."]}):h.jsxs(Vt,{spacing:3,children:[h.jsx(W2,{items:[{name:e("nav.bridges"),to:Tt.bridges},{name:e("startup.title"),to:Tt.startup}]}),h.jsxs(ae,{display:"flex",alignItems:"center",gap:2,children:[h.jsx(c0,{color:"primary",fontSize:"large"}),h.jsxs(ae,{children:[h.jsx(re,{variant:"h5",fontWeight:600,children:e("startup.title")}),h.jsx(re,{variant:"body2",color:"text.secondary",children:e("startup.description")})]})]}),a&&h.jsx(zt,{severity:"info",action:h.jsx(qe,{color:"inherit",size:"small",startIcon:h.jsx(LS,{}),onClick:d,children:e("startup.saveChanges")}),children:e("startup.unsavedChanges")}),h.jsx(xgt,{sensors:c,collisionDetection:xmt,onDragEnd:u,children:h.jsx(Igt,{items:p,strategy:Mgt,children:h.jsx(Vt,{spacing:1,children:o.map((g,y)=>h.jsx(Wgt,{bridge:g,index:y},g.id))})})}),o.length===0&&h.jsx(re,{color:"text.secondary",textAlign:"center",py:4,children:e("startup.noBridges")}),a&&o.length>0&&h.jsx(ae,{display:"flex",justifyContent:"flex-end",children:h.jsx(qe,{variant:"contained",startIcon:h.jsx(LS,{}),onClick:d,children:e("startup.saveOrder")})})]})},KA="https://riddix.github.io/home-assistant-matter-hub",Tt={dashboard:"/",bridges:"/bridges",bridge:e=>`/bridges/${e}`,createBridge:"/bridges/create",areaSetup:"/bridges/area-setup",editBridge:e=>`/bridges/${e}/edit`,devices:"/devices",networkMap:"/network-map",health:"/health",labels:"/labels",lockCredentials:"/lock-credentials",plugins:"/plugins",settings:"/settings",startup:"/startup",githubRepository:"https://github.com/riddix/home-assistant-matter-hub/",documentation:KA,faq:{multiFabric:`${KA}/connect-multiple-fabrics`,bridgeConfig:`${KA}/bridge-configuration`}},Ggt=[{path:"",element:h.jsx(nSe,{}),children:[{path:"",element:h.jsx(eOe,{})},{path:Tt.bridges,element:h.jsx(K_e,{})},{path:Tt.createBridge,element:h.jsx(Vst,{})},{path:Tt.areaSetup,element:h.jsx(R6e,{})},{path:Tt.bridge(":bridgeId"),element:h.jsx(vDe,{})},{path:Tt.editBridge(":bridgeId"),element:h.jsx(Wst,{})},{path:Tt.devices,element:h.jsx(bOe,{})},{path:Tt.networkMap,element:h.jsx(Opt,{})},{path:Tt.health,element:h.jsx(lat,{})},{path:Tt.labels,element:h.jsx(fat,{})},{path:Tt.lockCredentials,element:h.jsx(bat,{})},{path:Tt.plugins,element:h.jsx(Zpt,{})},{path:Tt.settings,element:h.jsx(rmt,{})},{path:Tt.startup,element:h.jsx(qgt,{})},{path:"*",element:h.jsx(vat,{})}]}],Kgt={items:{isInitialized:!1,isLoading:!1}},Ygt=FT(Kgt,e=>{e.addCase(No.pending,t=>{t.items.isLoading=!0}).addCase(No.rejected,(t,n)=>{t.items.isInitialized=!0,t.items.isLoading=!1,t.items.content=void 0,t.items.error=n.error}).addCase(No.fulfilled,(t,n)=>{t.items.isInitialized=!0,t.items.isLoading=!1,t.items.content=n.payload,t.items.error=void 0}).addCase(kZ.fulfilled,(t,n)=>{t.items.content?.push(n.payload)}).addCase(DZ.fulfilled,(t,n)=>{const r=t.items.content?.findIndex(i=>i.id===n.payload.id)??-1;r!==-1&&(t.items.content[r]=n.payload)}).addCase(_Z.fulfilled,(t,n)=>{const r=t.items.content?.findIndex(i=>i.id===n.payload.id)??-1;r!==-1&&(t.items.content[r]=n.payload)}).addCase(AZ.fulfilled,(t,n)=>{if(t.items.content){const r=t.items.content.findIndex(i=>i.id===n.meta.arg);r!==-1&&t.items.content.splice(r,1)}}).addCase(OZ,(t,n)=>{t.items.isInitialized=!0,t.items.isLoading=!1,t.items.content=n.payload,t.items.error=void 0}).addCase(TZ,(t,n)=>{if(t.items.content){const r=t.items.content.findIndex(i=>i.id===n.payload.id);r!==-1?t.items.content[r]=n.payload:t.items.content.push(n.payload)}})}),Jgt={byBridge:{}},Xgt=FT(Jgt,e=>{e.addCase(Mu.pending,(t,n)=>{t.byBridge[n.meta.arg]=YA(t.byBridge[n.meta.arg],n)}).addCase(Mu.rejected,(t,n)=>{t.byBridge[n.meta.arg]=YA(t.byBridge[n.meta.arg],n)}).addCase(Mu.fulfilled,(t,n)=>{t.byBridge[n.meta.arg]=YA(t.byBridge[n.meta.arg],n)})}),Zgt={isInitialized:!1,isLoading:!1,content:void 0,error:void 0},YA=FT(Zgt,e=>{e.addCase(Mu.pending,t=>{t.isLoading=!0}).addCase(Mu.rejected,(t,n)=>{t.isInitialized=!0,t.isLoading=!1,t.content=void 0,t.error=n.error}).addCase(Mu.fulfilled,(t,n)=>{t.isInitialized=!0,t.isLoading=!1,t.content=n.payload,t.error=void 0})}),Qgt=L4e({reducer:{bridges:Ygt,devices:Xgt}}),_j=Sxe({createStyledComponent:ge("div",{name:"MuiContainer",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[`maxWidth${ve(String(n.maxWidth))}`],n.fixed&&t.fixed,n.disableGutters&&t.disableGutters]}}),useThemeProps:e=>at({props:e,name:"MuiContainer"})});function e0t(e){return et("MuiToolbar",e)}it("MuiToolbar",["root","gutters","regular","dense"]);const t0t=e=>{const{classes:t,disableGutters:n,variant:r}=e;return tt({root:["root",!n&&"gutters",r]},e0t,t)},n0t=ge("div",{name:"MuiToolbar",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,!n.disableGutters&&t.gutters,t[n.variant]]}})(Ke(({theme:e})=>({position:"relative",display:"flex",alignItems:"center",variants:[{props:({ownerState:t})=>!t.disableGutters,style:{paddingLeft:e.spacing(2),paddingRight:e.spacing(2),[e.breakpoints.up("sm")]:{paddingLeft:e.spacing(3),paddingRight:e.spacing(3)}}},{props:{variant:"dense"},style:{minHeight:48}},{props:{variant:"regular"},style:e.mixins.toolbar}]}))),Iue=A.forwardRef(function(t,n){const r=at({props:t,name:"MuiToolbar"}),{className:i,component:o="div",disableGutters:s=!1,variant:a="regular",...l}=r,c={...r,component:o,disableGutters:s,variant:a},u=t0t(c);return h.jsx(n0t,{as:o,className:Oe(u.root,i),ref:n,ownerState:c,...l})});class r0t extends A.Component{constructor(t){super(t),this.state={hasError:!1,error:null}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,n){console.error("ErrorBoundary caught:",t,n.componentStack)}render(){return this.state.hasError?h.jsxs(ae,{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",minHeight:"60vh",gap:2,p:4,children:[h.jsx(QT,{color:"error",sx:{fontSize:64}}),h.jsx(re,{variant:"h5",fontWeight:600,children:pi.t("errorBoundary.title")}),h.jsx(re,{variant:"body2",color:"text.secondary",textAlign:"center",maxWidth:480,children:this.state.error?.message??pi.t("errorBoundary.fallbackMessage")}),h.jsx(qe,{variant:"contained",onClick:()=>{this.setState({hasError:!1,error:null}),window.location.reload()},children:pi.t("errorBoundary.reload")})]}):this.props.children}}function i0t(e){return et("MuiFab",e)}const lJ=it("MuiFab",["root","primary","secondary","extended","circular","focusVisible","disabled","colorInherit","sizeSmall","sizeMedium","sizeLarge","info","error","warning","success"]),o0t=e=>{const{color:t,variant:n,classes:r,size:i}=e,o={root:["root",n,`size${ve(i)}`,t==="inherit"?"colorInherit":t]},s=tt(o,i0t,r);return{...r,...s}},s0t=ge(os,{name:"MuiFab",slot:"Root",shouldForwardProp:e=>Li(e)||e==="classes",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.variant],t[`size${ve(n.size)}`],n.color==="inherit"&&t.colorInherit,t[ve(n.size)],t[n.color]]}})(Ke(({theme:e})=>({...e.typography.button,minHeight:36,transition:e.transitions.create(["background-color","box-shadow","border-color"],{duration:e.transitions.duration.short}),borderRadius:"50%",padding:0,minWidth:0,width:56,height:56,zIndex:(e.vars||e).zIndex.fab,boxShadow:(e.vars||e).shadows[6],"&:active":{boxShadow:(e.vars||e).shadows[12]},color:e.vars?e.vars.palette.grey[900]:e.palette.getContrastText?.(e.palette.grey[300]),backgroundColor:(e.vars||e).palette.grey[300],"&:hover":{backgroundColor:(e.vars||e).palette.grey.A100,"@media (hover: none)":{backgroundColor:(e.vars||e).palette.grey[300]},textDecoration:"none"},[`&.${lJ.focusVisible}`]:{boxShadow:(e.vars||e).shadows[6]},variants:[{props:{size:"small"},style:{width:40,height:40}},{props:{size:"medium"},style:{width:48,height:48}},{props:{variant:"extended"},style:{borderRadius:48/2,padding:"0 16px",width:"auto",minHeight:"auto",minWidth:48,height:48}},{props:{variant:"extended",size:"small"},style:{width:"auto",padding:"0 8px",borderRadius:34/2,minWidth:34,height:34}},{props:{variant:"extended",size:"medium"},style:{width:"auto",padding:"0 16px",borderRadius:40/2,minWidth:40,height:40}},{props:{color:"inherit"},style:{color:"inherit"}}]})),Ke(({theme:e})=>({variants:[...Object.entries(e.palette).filter(Wn(["dark","contrastText"])).map(([t])=>({props:{color:t},style:{color:(e.vars||e).palette[t].contrastText,backgroundColor:(e.vars||e).palette[t].main,"&:hover":{backgroundColor:(e.vars||e).palette[t].dark,"@media (hover: none)":{backgroundColor:(e.vars||e).palette[t].main}}}}))]})),Ke(({theme:e})=>({[`&.${lJ.disabled}`]:{color:(e.vars||e).palette.action.disabled,boxShadow:(e.vars||e).shadows[0],backgroundColor:(e.vars||e).palette.action.disabledBackground}}))),a0t=A.forwardRef(function(t,n){const r=at({props:t,name:"MuiFab"}),{children:i,className:o,color:s="default",component:a="button",disabled:l=!1,disableFocusRipple:c=!1,focusVisibleClassName:u,size:d="large",variant:p="circular",...g}=r,y={...r,color:s,component:a,disabled:l,disableFocusRipple:c,size:d,variant:p},b=o0t(y);return h.jsx(s0t,{className:Oe(b.root,o),component:a,disabled:l,focusRipple:!c,focusVisibleClassName:Oe(b.focusVisible,u),ownerState:y,ref:n,...g,classes:b,children:i})}),l0t=[{code:"en",flag:"🇬🇧",name:"English"},{code:"de",flag:"🇩🇪",name:"Deutsch"},{code:"fr",flag:"🇫🇷",name:"Français"},{code:"es",flag:"🇪🇸",name:"Español"},{code:"it",flag:"🇮🇹",name:"Italiano"},{code:"zh",flag:"🇨🇳",name:"中文"},{code:"th",flag:"🇹🇭",name:"ไทย"},{code:"sv",flag:"🇸🇪",name:"Svenska"},{code:"tr",flag:"🇹🇷",name:"Türkçe"},{code:"ru",flag:"🇷🇺",name:"Русский"}],c0t="hamh-custom-languages";function u0t(){try{const e=localStorage.getItem(c0t);return e?JSON.parse(e).map(n=>({code:n.code,flag:"🌐",name:n.name})):[]}catch{return[]}}const d0t="https://github.com/RiDDiX/home-assistant-matter-hub/issues/new?labels=translation&title=Translation+improvement";function f0t(){const{t:e,i18n:t}=on(),[n,r]=A.useState(!1),i=A.useRef(null),o=A.useMemo(()=>[...l0t,...u0t()],[]),s=t.language?.split("-")[0]??"en",a=A.useCallback(()=>{r(u=>!u)},[]),l=A.useCallback(u=>{t.changeLanguage(u),r(!1)},[t]),c=A.useCallback(()=>{r(!1)},[]);return h.jsx(nZ,{onClickAway:c,children:h.jsxs(ae,{children:[h.jsx(a0t,{ref:i,size:"small",color:"primary",onClick:a,"aria-label":"Change language",sx:{position:"fixed",bottom:24,right:24,zIndex:1300},children:h.jsx(UDe,{})}),h.jsx(K2,{open:n,anchorEl:i.current,placement:"top-end",transition:!0,sx:{zIndex:1300},children:({TransitionProps:u})=>h.jsx(OS,{...u,timeout:200,children:h.jsxs(Gr,{elevation:8,sx:{mb:1,py:.5,minWidth:160,borderRadius:2,overflow:"hidden"},children:[o.map(d=>h.jsxs(ae,{onClick:()=>l(d.code),sx:{display:"flex",alignItems:"center",gap:1.5,px:2,py:1,cursor:"pointer",bgcolor:s===d.code?"action.selected":"transparent","&:hover":{bgcolor:"action.hover"},transition:"background-color 0.15s"},children:[h.jsx(re,{sx:{fontSize:"1.4rem",lineHeight:1,userSelect:"none"},children:d.flag}),h.jsx(re,{variant:"body2",fontWeight:s===d.code?600:400,children:d.name})]},d.code)),h.jsx(Dr,{}),h.jsxs(ae,{sx:{display:"flex",alignItems:"flex-start",gap:.75,px:2,py:1},children:[h.jsx(VT,{sx:{fontSize:14,mt:.25,color:"text.secondary"}}),h.jsxs(re,{variant:"caption",color:"text.secondary",sx:{lineHeight:1.4},children:[e("languageSwitcher.disclaimer")," ",h.jsx(V2,{href:d0t,target:"_blank",rel:"noopener",sx:{fontSize:"inherit"},children:e("languageSwitcher.contribute")})]})]})]})})})]})})}const h0t="home-assistant-matter-hub",p0t={name:h0t};function jue(){const e="2.1.0-alpha.536",[t,n]=A.useState(null);A.useEffect(()=>{fetch("api/health").then(i=>i.ok?i.json():null).then(i=>{i?.version&&n(i.version)}).catch(()=>{})},[]);const r=A.useMemo(()=>!t||e==="0.0.0-dev"?!1:e!==t,[t]);return A.useMemo(()=>({name:p0t.name,version:t??e,frontendVersion:e,backendVersion:t,versionMismatch:r}),[t,r])}const m0t=()=>{const{t:e}=on(),t=[{name:e("footer.github"),url:Tt.githubRepository},{name:e("footer.documentation"),url:Tt.documentation}];return h.jsxs(_j,{sx:{mt:16,mb:4},children:[h.jsx(Dr,{sx:{mt:4,mb:4}}),h.jsx(dt,{container:!0,spacing:2,justifyContent:"center",children:t.map((n,r)=>h.jsx(dt,{size:{xs:12,sm:"auto"},children:h.jsx(qe,{fullWidth:!0,size:"small",variant:"outlined",component:V2,href:n.url,target:"_blank",children:n.name})},r.toString()))})]})};function g0t(e){return et("MuiAppBar",e)}it("MuiAppBar",["root","positionFixed","positionAbsolute","positionSticky","positionStatic","positionRelative","colorDefault","colorPrimary","colorSecondary","colorInherit","colorTransparent","colorError","colorInfo","colorSuccess","colorWarning"]);const y0t=e=>{const{color:t,position:n,classes:r}=e,i={root:["root",`color${ve(t)}`,`position${ve(n)}`]};return tt(i,g0t,r)},cJ=(e,t)=>e?`${e.replace(")","")}, ${t})`:t,b0t=ge(Gr,{name:"MuiAppBar",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[`position${ve(n.position)}`],t[`color${ve(n.color)}`]]}})(Ke(({theme:e})=>({display:"flex",flexDirection:"column",width:"100%",boxSizing:"border-box",flexShrink:0,variants:[{props:{position:"fixed"},style:{position:"fixed",zIndex:(e.vars||e).zIndex.appBar,top:0,left:"auto",right:0,"@media print":{position:"absolute"}}},{props:{position:"absolute"},style:{position:"absolute",zIndex:(e.vars||e).zIndex.appBar,top:0,left:"auto",right:0}},{props:{position:"sticky"},style:{position:"sticky",zIndex:(e.vars||e).zIndex.appBar,top:0,left:"auto",right:0}},{props:{position:"static"},style:{position:"static"}},{props:{position:"relative"},style:{position:"relative"}},{props:{color:"inherit"},style:{"--AppBar-color":"inherit",color:"var(--AppBar-color)"}},{props:{color:"default"},style:{"--AppBar-background":e.vars?e.vars.palette.AppBar.defaultBg:e.palette.grey[100],"--AppBar-color":e.vars?e.vars.palette.text.primary:e.palette.getContrastText(e.palette.grey[100]),...e.applyStyles("dark",{"--AppBar-background":e.vars?e.vars.palette.AppBar.defaultBg:e.palette.grey[900],"--AppBar-color":e.vars?e.vars.palette.text.primary:e.palette.getContrastText(e.palette.grey[900])})}},...Object.entries(e.palette).filter(Wn(["contrastText"])).map(([t])=>({props:{color:t},style:{"--AppBar-background":(e.vars??e).palette[t].main,"--AppBar-color":(e.vars??e).palette[t].contrastText}})),{props:t=>t.enableColorOnDark===!0&&!["inherit","transparent"].includes(t.color),style:{backgroundColor:"var(--AppBar-background)",color:"var(--AppBar-color)"}},{props:t=>t.enableColorOnDark===!1&&!["inherit","transparent"].includes(t.color),style:{backgroundColor:"var(--AppBar-background)",color:"var(--AppBar-color)",...e.applyStyles("dark",{backgroundColor:e.vars?cJ(e.vars.palette.AppBar.darkBg,"var(--AppBar-background)"):null,color:e.vars?cJ(e.vars.palette.AppBar.darkColor,"var(--AppBar-color)"):null})}},{props:{color:"transparent"},style:{"--AppBar-background":"transparent","--AppBar-color":"inherit",backgroundColor:"var(--AppBar-background)",color:"var(--AppBar-color)",...e.applyStyles("dark",{backgroundImage:"none"})}}]}))),v0t=A.forwardRef(function(t,n){const r=at({props:t,name:"MuiAppBar"}),{className:i,color:o="primary",enableColorOnDark:s=!1,position:a="fixed",...l}=r,c={...r,color:o,position:a,enableColorOnDark:s},u=y0t(c);return h.jsx(b0t,{square:!0,component:"header",ownerState:c,elevation:4,className:Oe(u.root,i,a==="fixed"&&"mui-fixed"),ref:n,...l})});function x0t(e,t,n){const r=t.getBoundingClientRect(),i=n&&n.getBoundingClientRect(),o=oa(t);let s;if(t.fakeTransform)s=t.fakeTransform;else{const c=o.getComputedStyle(t);s=c.getPropertyValue("-webkit-transform")||c.getPropertyValue("transform")}let a=0,l=0;if(s&&s!=="none"&&typeof s=="string"){const c=s.split("(")[1].split(")")[0].split(",");a=parseInt(c[4],10),l=parseInt(c[5],10)}return e==="left"?i?`translateX(${i.right+a-r.left}px)`:`translateX(${o.innerWidth+a-r.left}px)`:e==="right"?i?`translateX(-${r.right-i.left-a}px)`:`translateX(-${r.left+r.width-a}px)`:e==="up"?i?`translateY(${i.bottom+l-r.top}px)`:`translateY(${o.innerHeight+l-r.top}px)`:i?`translateY(-${r.top-i.top+r.height-l}px)`:`translateY(-${r.top+r.height-l}px)`}function S0t(e){return typeof e=="function"?e():e}function i4(e,t,n){const r=S0t(n),i=x0t(e,t,r);i&&(t.style.webkitTransform=i,t.style.transform=i)}const w0t=A.forwardRef(function(t,n){const r=qi(),i={enter:r.transitions.easing.easeOut,exit:r.transitions.easing.sharp},o={enter:r.transitions.duration.enteringScreen,exit:r.transitions.duration.leavingScreen},{addEndListener:s,appear:a=!0,children:l,container:c,direction:u="down",easing:d=i,in:p,onEnter:g,onEntered:y,onEntering:b,onExit:v,onExited:S,onExiting:C,style:w,timeout:k=o,TransitionComponent:E=Ja,...O}=t,_=A.useRef(null),T=Br(Mf(l),_,n),I=V=>q=>{V&&(q===void 0?V(_.current):V(_.current,q))},P=I((V,q)=>{i4(u,V,c),jT(V),g&&g(V,q)}),L=I((V,q)=>{const J=mf({timeout:k,style:w,easing:d},{mode:"enter"});V.style.webkitTransition=r.transitions.create("-webkit-transform",{...J}),V.style.transition=r.transitions.create("transform",{...J}),V.style.webkitTransform="none",V.style.transform="none",b&&b(V,q)}),M=I(y),$=I(C),N=I(V=>{const q=mf({timeout:k,style:w,easing:d},{mode:"exit"});V.style.webkitTransition=r.transitions.create("-webkit-transform",q),V.style.transition=r.transitions.create("transform",q),i4(u,V,c),v&&v(V)}),z=I(V=>{V.style.webkitTransition="",V.style.transition="",S&&S(V)}),F=V=>{s&&s(_.current,V)},W=A.useCallback(()=>{_.current&&i4(u,_.current,c)},[u,c]);return A.useEffect(()=>{if(p||u==="down"||u==="right")return;const V=H2(()=>{_.current&&i4(u,_.current,c)}),q=oa(_.current);return q.addEventListener("resize",V),()=>{V.clear(),q.removeEventListener("resize",V)}},[u,p,c]),A.useEffect(()=>{p||W()},[p,W]),h.jsx(E,{nodeRef:_,onEnter:P,onEntered:M,onEntering:L,onExit:N,onExited:z,onExiting:$,addEndListener:F,appear:a,in:p,timeout:k,...O,children:(V,{ownerState:q,...J})=>A.cloneElement(l,{ref:T,style:{visibility:V==="exited"&&!p?"hidden":void 0,...w,...l.props.style},...J})})});function C0t(e){return et("MuiDrawer",e)}it("MuiDrawer",["root","docked","paper","anchorLeft","anchorRight","anchorTop","anchorBottom","paperAnchorLeft","paperAnchorRight","paperAnchorTop","paperAnchorBottom","paperAnchorDockedLeft","paperAnchorDockedRight","paperAnchorDockedTop","paperAnchorDockedBottom","modal"]);const Pue=(e,t)=>{const{ownerState:n}=e;return[t.root,(n.variant==="permanent"||n.variant==="persistent")&&t.docked,n.variant==="temporary"&&t.modal]},E0t=e=>{const{classes:t,anchor:n,variant:r}=e,i={root:["root",`anchor${ve(n)}`],docked:[(r==="permanent"||r==="persistent")&&"docked"],modal:["modal"],paper:["paper",`paperAnchor${ve(n)}`,r!=="temporary"&&`paperAnchorDocked${ve(n)}`]};return tt(i,C0t,t)},k0t=ge(nM,{name:"MuiDrawer",slot:"Root",overridesResolver:Pue})(Ke(({theme:e})=>({zIndex:(e.vars||e).zIndex.drawer}))),A0t=ge("div",{shouldForwardProp:Li,name:"MuiDrawer",slot:"Docked",skipVariantsResolver:!1,overridesResolver:Pue})({flex:"0 0 auto"}),D0t=ge(Gr,{name:"MuiDrawer",slot:"Paper",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.paper,t[`paperAnchor${ve(n.anchor)}`],n.variant!=="temporary"&&t[`paperAnchorDocked${ve(n.anchor)}`]]}})(Ke(({theme:e})=>({overflowY:"auto",display:"flex",flexDirection:"column",height:"100%",flex:"1 0 auto",zIndex:(e.vars||e).zIndex.drawer,WebkitOverflowScrolling:"touch",position:"fixed",top:0,outline:0,variants:[{props:{anchor:"left"},style:{left:0}},{props:{anchor:"top"},style:{top:0,left:0,right:0,height:"auto",maxHeight:"100%"}},{props:{anchor:"right"},style:{right:0}},{props:{anchor:"bottom"},style:{top:"auto",left:0,bottom:0,right:0,height:"auto",maxHeight:"100%"}},{props:({ownerState:t})=>t.anchor==="left"&&t.variant!=="temporary",style:{borderRight:`1px solid ${(e.vars||e).palette.divider}`}},{props:({ownerState:t})=>t.anchor==="top"&&t.variant!=="temporary",style:{borderBottom:`1px solid ${(e.vars||e).palette.divider}`}},{props:({ownerState:t})=>t.anchor==="right"&&t.variant!=="temporary",style:{borderLeft:`1px solid ${(e.vars||e).palette.divider}`}},{props:({ownerState:t})=>t.anchor==="bottom"&&t.variant!=="temporary",style:{borderTop:`1px solid ${(e.vars||e).palette.divider}`}}]}))),$ue={left:"right",right:"left",top:"down",bottom:"up"};function _0t(e){return["left","right"].includes(e)}function O0t({direction:e},t){return e==="rtl"&&_0t(t)?$ue[t]:t}const T0t=A.forwardRef(function(t,n){const r=at({props:t,name:"MuiDrawer"}),i=qi(),o=Pc(),s={enter:i.transitions.duration.enteringScreen,exit:i.transitions.duration.leavingScreen},{anchor:a="left",BackdropProps:l,children:c,className:u,elevation:d=16,hideBackdrop:p=!1,ModalProps:{BackdropProps:g,...y}={},onClose:b,open:v=!1,PaperProps:S={},SlideProps:C,TransitionComponent:w,transitionDuration:k=s,variant:E="temporary",slots:O={},slotProps:_={},...T}=r,I=A.useRef(!1);A.useEffect(()=>{I.current=!0},[]);const P=O0t({direction:o?"rtl":"ltr"},a),M={...r,anchor:a,elevation:d,open:v,variant:E,...T},$=E0t(M),N={slots:{transition:w,...O},slotProps:{paper:S,transition:C,..._,backdrop:MT(_.backdrop||{...l,...g},{transitionDuration:k})}},[z,F]=ut("root",{ref:n,elementType:k0t,className:Oe($.root,$.modal,u),shouldForwardComponentProp:!0,ownerState:M,externalForwardedProps:{...N,...T,...y},additionalProps:{open:v,onClose:b,hideBackdrop:p,slots:{backdrop:N.slots.backdrop},slotProps:{backdrop:N.slotProps.backdrop}}}),[W,V]=ut("paper",{elementType:D0t,shouldForwardComponentProp:!0,className:Oe($.paper,S.className),ownerState:M,externalForwardedProps:N,additionalProps:{elevation:E==="temporary"?d:0,square:!0,...E==="temporary"&&{role:"dialog","aria-modal":"true"}}}),[q,J]=ut("docked",{elementType:A0t,ref:n,className:Oe($.root,$.docked,u),ownerState:M,externalForwardedProps:N,additionalProps:T}),[B,U]=ut("transition",{elementType:w0t,ownerState:M,externalForwardedProps:N,additionalProps:{in:v,direction:$ue[P],timeout:k,appear:I.current}}),Y=h.jsx(W,{...V,children:c});if(E==="permanent")return h.jsx(q,{...J,children:Y});const H=h.jsx(B,{...U,children:Y});return E==="persistent"?h.jsx(q,{...J,children:H}):h.jsx(z,{...F,children:H})}),M0t=jX({themeId:Ra}),R0t={error:jf,warn:u0,info:eM,debug:cC},I0t=({open:e,onClose:t})=>{const{t:n}=on(),r=qi(),i=A.useMemo(()=>({error:r.palette.error.main,warn:r.palette.warning.main,info:r.palette.info.main,debug:r.palette.secondary.main}),[r]),[o,s]=A.useState([]),[a,l]=A.useState(!0),[c,u]=A.useState("error,warn,info".split(",")),[d,p]=A.useState(""),[g,y]=A.useState(!0),b=A.useCallback(async()=>{try{const k=new URLSearchParams({level:c.join(","),limit:"500",...d&&{search:d}}),E=await fetch(`api/logs?${k}`);if(E.ok){const O=await E.json();s(O.entries)}}catch(k){console.error("Failed to fetch logs:",k)}finally{l(!1)}},[c,d]);A.useEffect(()=>{e&&b()},[e,b]),A.useEffect(()=>{if(!g||!e)return;const k=setInterval(b,5e3);return()=>clearInterval(k)},[g,e,b]);const v=k=>{u(Array.isArray(k.target.value)?k.target.value:[k.target.value])},S=k=>{p(k.target.value)},C=async()=>{try{await fetch("api/logs",{method:"DELETE"}),s([])}catch(k){console.error("Failed to clear logs:",k)}},w=k=>{const E=R0t[k]||eM;return h.jsx(E,{sx:{fontSize:16,color:i[k]}})};return h.jsxs(Po,{open:e,onClose:t,maxWidth:"lg",fullWidth:!0,children:[h.jsxs(Lo,{sx:{display:"flex",alignItems:"center",gap:1},children:[h.jsx(cC,{}),n("logs.title"),h.jsx(ae,{sx:{flexGrow:1}}),h.jsx(Nt,{title:n("logs.autoRefresh"),children:h.jsx(ft,{label:g?"Auto":"Manual",color:g?"success":"default",size:"small",onClick:()=>y(!g),sx:{cursor:"pointer"}})}),h.jsx(Wt,{onClick:t,children:h.jsx($S,{})})]}),h.jsxs($o,{children:[h.jsx(Vt,{spacing:2,sx:{mb:2},children:h.jsxs(Vt,{direction:"row",spacing:2,alignItems:"center",children:[h.jsxs(rs,{size:"small",sx:{minWidth:200},children:[h.jsx(ja,{children:n("logs.logLevel")}),h.jsxs(ts,{value:c,label:n("logs.logLevel"),onChange:v,multiple:!0,renderValue:k=>h.jsx(ae,{sx:{display:"flex",flexWrap:"wrap",gap:.5},children:(Array.isArray(k)?k:[k]).map(E=>h.jsx(ft,{label:E.toUpperCase(),size:"small",sx:{backgroundColor:i[E],color:"white"}},E))}),children:[h.jsx(Nn,{value:"error",children:n("logs.error")}),h.jsx(Nn,{value:"warn",children:n("logs.warning")}),h.jsx(Nn,{value:"info",children:n("logs.info")}),h.jsx(Nn,{value:"debug",children:n("logs.debug")})]})]}),h.jsx(Zn,{size:"small",placeholder:n("logs.searchPlaceholder"),value:d,onChange:S,sx:{flexGrow:1}}),h.jsx(qe,{variant:"outlined",onClick:b,children:n("common.refresh")}),h.jsx(qe,{variant:"outlined",color:"error",onClick:C,children:n("common.delete")})]})}),h.jsx(ae,{sx:{height:400,overflow:"auto",backgroundColor:"background.paper",border:1,borderColor:"divider",borderRadius:1,p:1},children:a?h.jsx(ae,{sx:{display:"flex",justifyContent:"center",p:4},children:h.jsxs(re,{children:[n("common.loading"),"..."]})}):o.length===0?h.jsx(ae,{sx:{display:"flex",justifyContent:"center",p:4},children:h.jsx(re,{color:"text.secondary",children:n("logs.noResults")})}):h.jsx(Vt,{spacing:1,children:o.map((k,E)=>h.jsxs(ae,{sx:{p:1,borderRadius:1,backgroundColor:"action.hover",fontFamily:"monospace",fontSize:"0.875rem",wordBreak:"break-all"},children:[h.jsxs(ae,{sx:{display:"flex",alignItems:"center",gap:1,mb:.5},children:[w(k.level),h.jsx(re,{variant:"caption",color:"text.secondary",children:new Date(k.timestamp).toLocaleString()}),h.jsx(ft,{label:k.level.toUpperCase(),size:"small",sx:{backgroundColor:i[k.level],color:r.palette.getContrastText(i[k.level]??r.palette.grey[500]),fontSize:"0.7rem",height:20}})]}),h.jsx(re,{sx:{ml:3},children:k.message}),k.context&&h.jsx(re,{sx:{ml:3,color:"text.secondary",fontSize:"0.8rem"},children:JSON.stringify(k.context,null,2)})]},`${k.timestamp}-${k.level}-${E}`))})})]}),h.jsx(es,{children:h.jsx(qe,{onClick:t,children:n("common.close")})})]})};function uJ(){const{t:e}=on(),{isConnected:t}=RZ(),[n,r]=A.useState(null),[i,o]=A.useState(!1);A.useEffect(()=>{const b=async()=>{try{const S=await fetch("api/health");if(S.ok){const C=await S.json();r(C),o(!1)}else o(!0)}catch{o(!0)}};b();const v=setInterval(b,3e4);return()=>clearInterval(v)},[]);const s=b=>{const v=Math.floor(b/3600),S=Math.floor(b%3600/60);return v>0?`${v}h ${S}m`:`${S}m`},a=n?.status==="healthy"&&!i,l=n?.services?.bridges,c=l&&l.total>0&&l.running===l.total,u=l&&l.total===0,d=n?h.jsxs(ae,{sx:{p:.5},children:[h.jsxs("div",{children:[h.jsxs("strong",{children:[e("health.version"),":"]})," ",n.version??e("status.unknown")]}),h.jsxs("div",{children:[h.jsxs("strong",{children:[e("health.uptime"),":"]})," ",s(n.uptime??0)]}),n.services?.bridges&&h.jsxs("div",{children:[h.jsxs("strong",{children:[e("nav.bridges"),":"]})," ",n.services.bridges.running??0,"/",n.services.bridges.total??0," ",e("common.running").toLowerCase(),(n.services.bridges.stopped??0)>0&&` (${n.services.bridges.stopped} ${e("common.stopped").toLowerCase()})`]}),n.services?.homeAssistant&&h.jsxs("div",{children:[h.jsxs("strong",{children:[e("health.homeAssistant"),":"]})," ",n.services.homeAssistant.connected?e("health.connected"):e("health.disconnected")]}),h.jsxs("div",{children:[h.jsx("strong",{children:"WebSocket:"})," ",e(t?"health.connected":"health.disconnected")]})]}):e("status.loadingHealth"),p=()=>i||!a?h.jsx(jf,{fontSize:"small"}):c?h.jsx(Xa,{fontSize:"small"}):h.jsx(Gw,{fontSize:"small"}),g=()=>i||!a?"error":!c||!t?"warning":"success",y=()=>e(i?"status.error":a?t?u?"status.noBridges":c?"common.online":"common.starting":"common.offline":"status.unhealthy");return h.jsx(Nt,{title:d,arrow:!0,children:h.jsx(ft,{icon:p(),label:y(),color:g(),size:"small",variant:"filled",sx:{borderRadius:1,fontWeight:600,"& .MuiChip-icon":{color:"inherit"}}})})}const j0t=e=>A.createElement("svg",{viewBox:"0 0 91 89",xmlSpace:"preserve",xmlns:"http://www.w3.org/2000/svg",...e},A.createElement("g",{style:{display:"inline"}},A.createElement("path",{style:{fill:"#18bcf2",fillOpacity:1,strokeWidth:.266194},d:"m 49.149143,1.473171 38.513568,38.536435 c 0,0 1.248354,1.186052 2.207681,3.092371 0.959329,1.906323 1.10864,4.600698 1.10864,4.600698 v 36.786372 c 0,0 -0.01549,1.748506 -1.49842,3.050572 -1.482931,1.302064 -3.333077,1.362947 -3.333077,1.362947 l -81.325658,7.7e-5 c 0,0 -1.7523855,-0.0091 -3.17112,-1.352526 C -0.07808495,85.913164 0.05953025,84.487808 0.05953025,84.487808 V 47.704546 c 0,0 -0.0018381,-2.218618 0.95921785,-4.315832 0.9610554,-2.097209 2.3010618,-3.355005 2.3010618,-3.355005 L 41.545959,1.4719546 c 0,0 1.465224,-1.46837077 3.753488,-1.46837077 2.288268,0 3.849696,1.46958717 3.849696,1.46958717 z"}),A.createElement("path",{style:{fill:"#ffffff",fillOpacity:1,strokeWidth:.175841},d:"m 31.689717,32.051124 c 2.813363,2.331095 6.157331,3.89845 9.721813,4.556421 V 17.180647 l 3.873694,-2.282955 3.870527,2.282955 V 36.60772 c 3.565364,-0.658847 6.910387,-2.226204 9.725159,-4.556417 l 7.032345,4.154609 c -11.437354,11.557779 -29.852321,11.557779 -41.290025,0 z m 8.546732,49.60988 C 44.314996,65.760441 35.09933,49.470196 19.574984,45.139543 v 8.312381 c 3.383916,1.32244 6.386113,3.496288 8.728705,6.320026 L 11.83076,69.485301 v 4.56907 l 3.873697,2.270836 16.469936,-9.713534 c 1.224356,3.48294 1.56683,7.225375 0.996449,10.879778 z M 70.977694,45.139543 c -15.515726,4.34014 -24.72189,20.626696 -20.643519,36.521461 l 7.047658,-4.15742 c -0.569325,-3.654411 -0.2265,-7.3965 0.996449,-10.87979 l 16.457611,9.701233 3.870711,-2.283125 v -4.55677 L 62.233673,59.77195 c 2.342772,-2.822684 5.34497,-4.996533 8.728708,-6.320026 z"}))),P0t=e=>{const t=jue();return h.jsxs(ae,{component:Dc,to:Tt.dashboard,sx:{display:"flex",alignItems:"center",justifyContent:e.large?"flex-start":"center",flexGrow:1,textDecoration:"none",color:"inherit"},children:[h.jsx(j0t,{style:{height:"40px"}}),h.jsx(re,{variant:"inherit",component:"span",sx:{mr:1,ml:1},children:t.name.split("-").map(ve).join("-")}),e.large&&h.jsx(re,{variant:"caption",component:"span",children:t.version})]})},$0t=()=>{const e=M0t("(min-width:600px)"),{mode:t,setMode:n}=Rw(),[r,i]=A.useState(!1),[o,s]=A.useState(!1),a=jc(),l=Gu(),c=y=>y?y==="/"?l.pathname==="/":l.pathname.startsWith(y):!1,u=()=>{n(t==="dark"?"light":"dark")},{t:d}=on(),p=[{label:d("dashboard.title"),icon:h.jsx(EM,{}),to:Tt.dashboard},{label:d("nav.bridges"),icon:h.jsx(Ny,{}),to:Tt.bridges},{label:d("nav.devices"),icon:h.jsx(aa,{}),to:Tt.devices},{label:d("nav.networkMap"),icon:h.jsx(SM,{}),to:Tt.networkMap},{label:d("nav.startupOrder"),icon:h.jsx(c0,{}),to:Tt.startup},{label:d("nav.lockCredentials"),icon:h.jsx(Tu,{}),to:Tt.lockCredentials},{label:d("nav.filterReference"),icon:h.jsx(kM,{}),to:Tt.labels},{label:"Plugins",icon:h.jsx(Ly,{}),to:Tt.plugins},{label:d("nav.settings"),icon:h.jsx(f0,{}),to:Tt.settings},{label:d(t==="dark"?"nav.lightMode":"nav.darkMode"),icon:t==="dark"?h.jsx(WDe,{}):h.jsx(IDe,{}),onClick:u},{label:d("nav.systemLogs"),icon:h.jsx(cC,{}),onClick:()=>i(!0)},{label:d("nav.health"),icon:h.jsx(iM,{}),to:Tt.health}],g=y=>{s(!1),y.onClick?y.onClick():y.to&&a(y.to)};return h.jsxs(ae,{children:[h.jsx(v0t,{sx:{height:"72px"},children:h.jsx(Iue,{sx:{paddingLeft:"0 !important",paddingRight:"0 !important"},children:h.jsxs(_j,{sx:{padding:2,height:"100%",display:"flex",justifyContent:"space-between",alignItems:"center"},children:[h.jsx(P0t,{large:e}),e?h.jsxs(ae,{sx:{display:"flex",alignItems:"center",gap:1},children:[p.map(y=>y.to?h.jsx(Nt,{title:y.label,children:h.jsx(Wt,{component:Dc,to:y.to,sx:{color:"inherit",bgcolor:c(y.to)?"rgba(255,255,255,0.15)":"transparent",borderRadius:1},children:y.icon})},y.label):h.jsx(Nt,{title:y.label,children:h.jsx(Wt,{onClick:y.onClick,sx:{color:"inherit"},children:y.icon})},y.label)),h.jsx(uJ,{})]}):h.jsxs(ae,{sx:{display:"flex",alignItems:"center",gap:.5},children:[h.jsx(uJ,{}),h.jsx(Wt,{onClick:()=>s(!0),sx:{color:"inherit"},children:h.jsx(qDe,{})})]})]})})}),h.jsx(T0t,{anchor:"right",open:o,onClose:()=>s(!1),children:h.jsx(Fo,{sx:{width:250},children:p.map(y=>h.jsxs(Y6e,{selected:c(y.to),onClick:()=>g(y),children:[h.jsx(jo,{children:y.icon}),h.jsx(so,{primary:y.label})]},y.label))})}),h.jsx(I0t,{open:r,onClose:()=>i(!1)})]})},L0t=()=>{const{versionMismatch:e,frontendVersion:t,backendVersion:n}=jue(),{isConnected:r}=RZ();return h.jsxs(ae,{children:[h.jsx($0t,{}),h.jsx(Iue,{}),e&&h.jsxs(zt,{severity:"warning",variant:"filled",sx:{borderRadius:0},action:h.jsx(qe,{color:"inherit",size:"small",onClick:()=>window.location.reload(),children:"Reload"}),children:["Version mismatch: frontend ",t,", backend ",n,". Please reload to get the latest UI."]}),!r&&h.jsx(zt,{severity:"error",variant:"filled",sx:{borderRadius:0},children:"Connection lost — data may be outdated. Reconnecting…"}),h.jsx(_j,{sx:{p:2},children:h.jsx(r0t,{children:h.jsx(zJ,{})})}),h.jsx(m0t,{}),h.jsx(f0t,{})]})},N0t=Ow({colorSchemes:{light:{palette:{primary:{main:"#1976d2",light:"#42a5f5",dark:"#1565c0"},secondary:{main:"#9c27b0",light:"#ba68c8",dark:"#7b1fa2"},background:{default:"#f5f5f5",paper:"#ffffff"}}},dark:{palette:{primary:{main:"#90caf9",light:"#e3f2fd",dark:"#42a5f5"},secondary:{main:"#ce93d8",light:"#f3e5f5",dark:"#ab47bc"},background:{default:"#121212",paper:"#1e1e1e"}}}},typography:{fontFamily:'"Roboto", "Helvetica", "Arial", sans-serif',h1:{fontSize:"2.5rem",fontWeight:500},h2:{fontSize:"2rem",fontWeight:500},h3:{fontSize:"1.75rem",fontWeight:500},h4:{fontSize:"1.5rem",fontWeight:500},h5:{fontSize:"1.25rem",fontWeight:500},h6:{fontSize:"1rem",fontWeight:500}},shape:{borderRadius:8},components:{MuiCard:{styleOverrides:{root:{transition:"transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out","&:hover":{transform:"translateY(-2px)",boxShadow:"0 4px 20px rgba(0,0,0,0.12)"}}}},MuiButton:{styleOverrides:{root:{textTransform:"none",fontWeight:500}}},MuiChip:{styleOverrides:{root:{fontWeight:500}}},MuiAppBar:{styleOverrides:{root:{backgroundImage:"none"}}}}});let oS=document.getElementsByTagName("base")[0]?.href?.replace(/\/$/,"");oS?.startsWith("http")&&(oS=new URL(oS).pathname);const F0t=jme([{path:"/",element:h.jsx(L0t,{}),children:Ggt}],{basename:oS});Xfe.createRoot(document.getElementById("root")).render(h.jsx(A.StrictMode,{children:h.jsx(phe,{store:Qgt,children:h.jsxs(R3e,{theme:N0t,children:[h.jsx(D3e,{}),h.jsx(YX,{styles:{".rjsf-field-array > .MuiFormControl-root > .MuiPaper-root > .MuiBox-root > .MuiGrid-root > .MuiGrid-root:has(> .MuiBox-root > .MuiPaper-root > .MuiBox-root > .rjsf-field)":{overflow:"initial !important",flexGrow:1}}}),h.jsx(tSe,{children:h.jsx(q5e,{children:h.jsx(Gme,{router:F0t})})})]})})}));
|
package/dist/frontend/index.html
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<!-- BASE -->
|
|
9
9
|
<base href="/" />
|
|
10
10
|
<!-- /BASE -->
|
|
11
|
-
<script type="module" crossorigin src="./assets/index-
|
|
11
|
+
<script type="module" crossorigin src="./assets/index-CP_viOoW.js"></script>
|
|
12
12
|
<link rel="stylesheet" crossorigin href="./assets/index-BNdBOwwe.css">
|
|
13
13
|
</head>
|
|
14
14
|
<body>
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@riddix/hamh",
|
|
3
3
|
"description": "",
|
|
4
|
-
"version": "2.1.0-alpha.
|
|
4
|
+
"version": "2.1.0-alpha.536",
|
|
5
5
|
"private": false,
|
|
6
6
|
"type": "module",
|
|
7
7
|
"bin": {
|
|
@@ -57,9 +57,9 @@
|
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"@types/lodash-es": "^4.17.12",
|
|
60
|
-
"@home-assistant-matter-hub/backend": "2.1.0-alpha.
|
|
61
|
-
"@home-assistant-matter-hub/
|
|
62
|
-
"@home-assistant-matter-hub/
|
|
60
|
+
"@home-assistant-matter-hub/backend": "2.1.0-alpha.536",
|
|
61
|
+
"@home-assistant-matter-hub/frontend": "2.1.0-alpha.536",
|
|
62
|
+
"@home-assistant-matter-hub/common": "2.1.0-alpha.536"
|
|
63
63
|
},
|
|
64
64
|
"nx": {
|
|
65
65
|
"targets": {
|