@miravo/cli-linux-x64 0.14.0 → 0.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/console-dist/assets/api-Bp-mG9Rs.js +1 -0
- package/console-dist/assets/{api-GfuYYI6q.js → api-CtMmjN9m.js} +1 -1
- package/console-dist/assets/{asset-detail-CbRJwcZg.js → asset-detail-JDx-26wg.js} +1 -1
- package/console-dist/assets/{asset-detail-actions-Ceb1_r18.js → asset-detail-actions-BrLTJCzY.js} +1 -1
- package/console-dist/assets/{backup-power-qtHJlSI4.js → backup-power-B1THpfxc.js} +1 -1
- package/console-dist/assets/{by-path-CKZo157c.js → by-path-CGbqDnvK.js} +1 -1
- package/console-dist/assets/catalog-B3KfEJkB.js +1 -0
- package/console-dist/assets/{catalog-Lt1tguKF.js → catalog-Whukru3I.js} +1 -1
- package/console-dist/assets/{catalog-template-icons-DvKspieo.js → catalog-template-icons-GGQGFjA8.js} +1 -1
- package/console-dist/assets/{commercial-building-Bk4sBQtx.js → commercial-building-BeGD1bPV.js} +1 -1
- package/console-dist/assets/{console-panel-DOt0r_Oz.js → console-panel-DXk4doxV.js} +1 -1
- package/console-dist/assets/control-BeyuTMD5.js +1 -0
- package/console-dist/assets/{control-89sOxkPx.js → control-HoYOjLyM.js} +1 -1
- package/console-dist/assets/{district-heating-BofEIyfg.js → district-heating-MuLRna9G.js} +1 -1
- package/console-dist/assets/events-C2Q9HRYG.js +1 -0
- package/console-dist/assets/{events-NZs3OoQw.js → events-Cb1faGh2.js} +1 -1
- package/console-dist/assets/{export-tab-R8Oac9J5.js → export-tab-CtH28h1G.js} +1 -1
- package/console-dist/assets/{factory-BYX8AmsW.js → factory-Boh-9Tjz.js} +1 -1
- package/console-dist/assets/factory-CpziAEBj.js +1 -0
- package/console-dist/assets/{floor-page-CiS52QbQ.js → floor-page-Bxq5t8Yi.js} +1 -1
- package/console-dist/assets/{get-error-message-DJGhcwLn.js → get-error-message-D800c4Uu.js} +1 -1
- package/console-dist/assets/{index-B8B-S-lq.js → index-CHgd8U-y.js} +3 -3
- package/console-dist/assets/{integration-api-B5s7_LWo.js → integration-api-DnCoHAoa.js} +1 -1
- package/console-dist/assets/integrations-DYDSuhVG.js +1 -0
- package/console-dist/assets/{integrations-Bg7xzjIj.js → integrations-DlVDmGqI.js} +1 -1
- package/console-dist/assets/{login-Dq1AJRqO.js → login-D6-swZqz.js} +1 -1
- package/console-dist/assets/models-C1sVJK7p.js +1 -0
- package/console-dist/assets/{models-BYr_QK_5.js → models-CDGbNOUr.js} +1 -1
- package/console-dist/assets/{pharma-cleanroom-oxgPn6h6.js → pharma-cleanroom-DnxAzkeg.js} +1 -1
- package/console-dist/assets/{protocol-card-1DCkgN_l.js → protocol-card-Bf06qKjE.js} +1 -1
- package/console-dist/assets/{registry-BqqyCPJz.js → registry-BKilgP4M.js} +2 -2
- package/console-dist/assets/{status-kit-Darp7bPB.js → status-kit-eQF95zN0.js} +1 -1
- package/console-dist/assets/tags-BPR9ZiaM.js +1 -0
- package/console-dist/assets/{tags-r7Fx_0yG.js → tags-DtfR_AgF.js} +1 -1
- package/console-dist/assets/{transition-nav-link-DIx78Lol.js → transition-nav-link-ZpTbW2Hm.js} +1 -1
- package/console-dist/assets/{use-engine-command-mutation-CTbPh58S.js → use-engine-command-mutation-5q_LI_xT.js} +1 -1
- package/console-dist/assets/{use-transition-navigate-aOjMH_eS.js → use-transition-navigate-5-QJHk2I.js} +2 -2
- package/console-dist/assets/{useQuery-BfWNkVkT.js → useQuery-Dxp3WSXF.js} +1 -1
- package/console-dist/assets/{validation-DSsZ8qyt.js → validation-BSQDilvJ.js} +1 -1
- package/console-dist/assets/{water-treatment-COXMW4qC.js → water-treatment-CAxvQSI-.js} +1 -1
- package/console-dist/index.html +23 -23
- package/miravo +1 -1
- package/package.json +1 -1
- package/console-dist/assets/api-DEoRnScz.js +0 -1
- package/console-dist/assets/catalog-CshTwzQu.js +0 -1
- package/console-dist/assets/control-BBMXQRSU.js +0 -1
- package/console-dist/assets/events-DFkG5maw.js +0 -1
- package/console-dist/assets/factory-Cp52pnAL.js +0 -1
- package/console-dist/assets/integrations-CG1fPcwM.js +0 -1
- package/console-dist/assets/models-jmRXhSoh.js +0 -1
- package/console-dist/assets/tags-DlnWXo4p.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-COnpUsM8.js";import{c as t}from"./vendor-charts-95ykyDlI.js";import{ot as n}from"./vendor-ui-D8j69UH4.js";import{Pt as r,S as i,jt as a,kt as o,o as s,v as c,vt as l,wt as u,y as d,zt as f}from"./api-GfuYYI6q.js";import{a as p,c as m,f as h,i as g,l as _,o as v,p as y,r as b,s as x,t as S,u as C}from"./useQuery-BfWNkVkT.js";import{i as w}from"./dist-xY0pK9Wy.js";import{l as T,n as E}from"./chunk-OE4NN4TA-DBWZidbW.js";import{C as D,d as O,g as k,w as A}from"./format-Bx7DF-TB.js";import{n as j,t as M}from"./utils-XFKvwlFT.js";import{t as ee}from"./arrow-up-right-CwPw_2U1.js";import{i as te,n as ne,r as re}from"./registry-BqqyCPJz.js";import{t as ie}from"./minus-CaT9UaQx.js";import{t as ae}from"./pause-CqW7v5Dc.js";import{l as oe,t as se}from"./use-engine-command-mutation-CTbPh58S.js";import{t as ce}from"./plus-Cl4Ay5Ry.js";import{i as le,n as ue,t as de}from"./tooltip-B3vOB1Vu.js";import{a as fe,i as pe,n as me,o as he,r as ge,t as _e}from"./status-kit-Darp7bPB.js";import{i as ve,n as ye,r as be,t as xe}from"./tabs-Ch_VG8_S.js";import{a as Se,c as Ce,i as we,o as Te,t as Ee}from"./events-format-C5HTkIsC.js";import{I as De,i as Oe,n as ke,r as Ae,u as je}from"./dom-CQuChC3G.js";function Me(e,t){let n=new Set(t);return e.filter(e=>!n.has(e))}function Ne(e,t,n){let r=e.slice(0);return r[t]=n,r}var Pe=class extends f{#e;#t;#n;#r;#i;#a;#o;#s;#c;#l=[];constructor(e,t,n){super(),this.#e=e,this.#r=n,this.#n=[],this.#i=[],this.#t=[],this.setQueries(t)}onSubscribe(){this.listeners.size===1&&this.#i.forEach(e=>{e.subscribe(t=>{this.#p(e,t)})})}onUnsubscribe(){this.listeners.size||this.destroy()}destroy(){this.listeners=new Set,this.#i.forEach(e=>{e.destroy()})}setQueries(e,t){this.#n=e,this.#r=t,u.batch(()=>{let e=this.#i,t=this.#f(this.#n);t.forEach(e=>e.observer.setOptions(e.defaultedQueryOptions));let n=t.map(e=>e.observer),i=n.map(e=>e.getCurrentResult()),a=e.length!==n.length,o=n.some((t,n)=>t!==e[n]),s=a||o,c=s?!0:i.some((e,t)=>{let n=this.#t[t];return!n||!r(e,n)});!s&&!c||(s&&(this.#l=t,this.#i=n),this.#t=i,this.hasListeners()&&(s&&(Me(e,n).forEach(e=>{e.destroy()}),Me(n,e).forEach(e=>{e.subscribe(t=>{this.#p(e,t)})})),this.#m()))})}getCurrentResult(){return this.#t}getQueries(){return this.#i.map(e=>e.getCurrentQuery())}getObservers(){return this.#i}getOptimisticResult(e,t){let n=this.#f(e),r=n.map(e=>e.observer.getOptimisticResult(e.defaultedQueryOptions)),i=n.map(e=>e.defaultedQueryOptions.queryHash);return[r,e=>this.#d(e??r,t,i),()=>this.#u(r,n)]}#u(e,t){return t.map((n,r)=>{let i=e[r];return n.defaultedQueryOptions.notifyOnChangeProps?i:n.observer.trackResult(i,e=>{t.forEach(t=>{t.observer.trackProp(e)})})})}#d(e,t,n){if(t){let r=this.#c,i=n!==void 0&&r!==void 0&&(r.length!==n.length||n.some((e,t)=>e!==r[t]));return(!this.#a||this.#t!==this.#s||i||t!==this.#o)&&(this.#o=t,this.#s=this.#t,n!==void 0&&(this.#c=n),this.#a=a(this.#a,t(e))),this.#a}return e}#f(e){let t=new Map;this.#i.forEach(e=>{let n=e.options.queryHash;if(!n)return;let r=t.get(n);r?r.push(e):t.set(n,[e])});let n=[];return e.forEach(e=>{let r=this.#e.defaultQueryOptions(e),i=t.get(r.queryHash)?.shift()??new y(this.#e,r);n.push({defaultedQueryOptions:r,observer:i})}),n}#p(e,t){let n=this.#i.indexOf(e);n!==-1&&(this.#t=Ne(this.#t,n,t),this.#m())}#m(){if(this.hasListeners()){let e=this.#a,t=this.#u(this.#t,this.#l);e!==this.#d(t,this.#r?.combine)&&u.batch(()=>{this.listeners.forEach(e=>{e(this.#t)})})}}},N=e(t(),1);function Fe({queries:e,...t},n){let r=h(n),i=C(),a=_(),s=N.useMemo(()=>e.map(e=>{let t=r.defaultQueryOptions(e);return t._optimisticResults=i?`isRestoring`:`optimistic`,t}),[e,r,i]);s.forEach(e=>{b(e),v(e,a,r.getQueryCache().get(e.queryHash))}),m(a);let[c]=N.useState(()=>new Pe(r,s,t)),[l,d,f]=c.getOptimisticResult(s,t.combine),S=!i&&t.subscribed!==!1;N.useSyncExternalStore(N.useCallback(e=>S?c.subscribe(u.batchCalls(e)):o,[c,S]),()=>c.getCurrentResult(),()=>c.getCurrentResult()),N.useEffect(()=>{c.setQueries(s,t)},[s,t,c]);let w=l.some((e,t)=>p(s[t],e))?l.flatMap((e,t)=>{let n=s[t];return n&&p(n,e)?g(n,new y(r,n),a):[]}):[];if(w.length>0)throw Promise.all(w);let T=l.find((e,t)=>{let n=s[t];return n&&x({result:e,errorResetBoundary:a,throwOnError:n.throwOnError,query:r.getQueryCache().get(n.queryHash),suspense:n.suspense})});if(T?.error)throw T.error;return d(f())}var Ie=j(`arrow-left`,[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]),Le=j(`maximize`,[[`path`,{d:`M8 3H5a2 2 0 0 0-2 2v3`,key:`1dcmit`}],[`path`,{d:`M21 8V5a2 2 0 0 0-2-2h-3`,key:`1e4gt3`}],[`path`,{d:`M3 16v3a2 2 0 0 0 2 2h3`,key:`wsl5sc`}],[`path`,{d:`M16 21h3a2 2 0 0 0 2-2v-3`,key:`18trek`}]]),Re=j(`panel-right-close`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M15 3v18`,key:`14nvp0`}],[`path`,{d:`m8 9 3 3-3 3`,key:`12hl5m`}]]),ze=j(`panel-right-open`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M15 3v18`,key:`14nvp0`}],[`path`,{d:`m10 15-3-3 3-3`,key:`1pgupc`}]]),Be=6,Ve=.9,He=.035,Ue=e=>1-(1-e)**3;function We(e,t){let{svg:n,P:r}=e,i=ke(n,`[data-intro]`).map(e=>({g:e,i:+(e.dataset.intro??0)})),a=e.reducedMotion();return{lampTest:()=>!1,done:()=>a,draw(e){if(a)return;let n=(e-t)/1e3,o=!1;for(let{g:e,i:t}of i){let i=(n-t*He)/Ve;if(i>=1){e.hasAttribute(`transform`)&&(e.removeAttribute(`transform`),e.style.opacity=``);continue}o=!0;let a=Ue(Math.max(0,i));e.setAttribute(`transform`,De(r,[0,0,Be*(1-a)])),e.style.opacity=String(a)}a=!o}}}var Ge=`data-floor-keys`,Ke=6,qe=1.6;function Je(e,t,n={}){let r=t.width,i=t.height,a=n.keyTarget===void 0?e.parentElement:n.keyTarget,o=()=>n.reducedMotion?.()??!1,s=0,c=0,l=r,u=i;function d(){let t=e.getBoundingClientRect(),n=t.width/Math.max(1,t.height);!t.width||!t.height||(n>r/i?(l=i*n,u=i):(l=r,u=r/n),s=(r-l)/2,c=(i-u)/2)}d();let f={x:s,y:c,s:1,tx:s,ty:c,ts:1},p=new Set,m=!1,h=``,g=()=>({scale:f.ts,x:f.x,y:f.y,width:l/f.s,height:u/f.s,panning:m});function _(){let e=g();n.onViewChange?.(e);for(let t of p)t(e)}function v(e){e.ts=Math.max(1,Math.min(Ke,e.ts));let t=l/e.ts,n=u/e.ts;e.tx=Math.max(s,Math.min(s+l-t,e.tx)),e.ty=Math.max(c,Math.min(c+u-n,e.ty))}function y(e,t,n){let r=Math.max(1,Math.min(Ke,f.ts*e));f.tx=t-(t-f.tx)*f.ts/r,f.ty=n-(n-f.ty)*f.ts/r,f.ts=r,v(f)}let b=(t,n)=>{let r=e.getBoundingClientRect();return[f.x+(t-r.left)/r.width*(l/f.s),f.y+(n-r.top)/r.height*(u/f.s)]},x=()=>[f.tx+l/f.ts/2,f.ty+u/f.ts/2],S=()=>{f.tx=s,f.ty=c,f.ts=1};function C(t){let n=ke(e,`[data-asset="${t}"]`);if(!n.length)return;let r=1/0,i=1/0,a=-1/0,o=-1/0,s=e.getScreenCTM()?.inverse();for(let e of n){let t=e,n=t.getBBox();if(!n.width&&!n.height)continue;let c=s&&t.getScreenCTM()?s.multiply(t.getScreenCTM()):null;for(let[e,t]of[[n.x,n.y],[n.x+n.width,n.y],[n.x,n.y+n.height],[n.x+n.width,n.y+n.height]]){let n=c?new DOMPoint(e,t).matrixTransform(c):{x:e,y:t};r=Math.min(r,n.x),i=Math.min(i,n.y),a=Math.max(a,n.x),o=Math.max(o,n.y)}}let c=a-r+52,d=o-i+52;f.ts=Math.min(l/c,u/d,4),f.tx=(r+a)/2-l/f.ts/2,f.ty=(i+o)/2-u/f.ts/2,v(f)}let w=new ResizeObserver(()=>{let e=f.ts;d(),e<=1.01?(S(),f.x=s,f.y=c):v(f)});w.observe(e);let T=e=>{if(!e.ctrlKey&&!e.metaKey)return;e.preventDefault();let[t,n]=b(e.clientX,e.clientY);y(Math.exp(-e.deltaY*.012),t,n)},E=new Map,D=null,O=null,k=t=>{if(E.set(t.pointerId,[t.clientX,t.clientY]),E.size===2){let[e,t]=[...E.values()];O={d:Math.hypot(e[0]-t[0],e[1]-t[1]),s:f.ts},D=null;return}f.ts>1.01&&(D={x:t.clientX,y:t.clientY,tx:f.tx,ty:f.ty,moved:!1},e.setPointerCapture(t.pointerId))},A=t=>{if(E.has(t.pointerId)&&E.set(t.pointerId,[t.clientX,t.clientY]),O&&E.size===2){let[e,t]=[...E.values()],[n,r]=b((e[0]+t[0])/2,(e[1]+t[1])/2);y(O.s*Math.hypot(e[0]-t[0],e[1]-t[1])/O.d/f.ts,n,r);return}if(!D)return;let n=e.getBoundingClientRect(),r=l/f.s/n.width;f.tx=D.tx-(t.clientX-D.x)*r,f.ty=D.ty-(t.clientY-D.y)*r,Math.hypot(t.clientX-D.x,t.clientY-D.y)>3&&(D.moved=!0,m=!0,a?.setAttribute(`data-panning`,``)),v(f),f.x=f.tx,f.y=f.ty},j=e=>{E.delete(e.pointerId),E.size<2&&(O=null),D=null,m=!1,a?.removeAttribute(`data-panning`)},M=e=>{let t=n.assetAt?.(e.clientX,e.clientY)??null;t?C(t):S()},ee=e=>{if(e.target instanceof Element&&e.target.closest(`input,textarea`)||e.key.startsWith(`Arrow`)&&e.target instanceof Element&&e.target.closest(`[data-floor-keys]`))return;let[t,n]=x(),r=40/f.ts,i=new Map([[`+`,()=>y(qe,t,n)],[`=`,()=>y(qe,t,n)],[`-`,()=>y(1/qe,t,n)],[`0`,S],[`ArrowLeft`,()=>{f.tx-=r,v(f)}],[`ArrowRight`,()=>{f.tx+=r,v(f)}],[`ArrowUp`,()=>{f.ty-=r,v(f)}],[`ArrowDown`,()=>{f.ty+=r,v(f)}]]).get(e.key);i&&(e.preventDefault(),i())};e.addEventListener(`wheel`,T,{passive:!1}),e.addEventListener(`pointerdown`,k),e.addEventListener(`pointermove`,A),e.addEventListener(`pointerup`,j),e.addEventListener(`pointercancel`,j),e.addEventListener(`dblclick`,M),a?.addEventListener(`keydown`,ee);let te=a?.hasAttribute(`tabindex`)??!0;return a&&!te&&a.setAttribute(`tabindex`,`0`),{zoomIn:()=>y(qe,...x()),zoomOut:()=>y(1/qe,...x()),fit:S,flyTo:C,zoomAt:y,scale:()=>f.s,subscribe(e){return p.add(e),()=>p.delete(e)},step(t){let n=o()||D?1:1-Math.exp(-t/.12);f.x+=(f.tx-f.x)*n,f.y+=(f.ty-f.y)*n,f.s+=(f.ts-f.s)*n,Math.abs(f.s-f.ts)<1e-4&&(f.s=f.ts);let r=`${f.x.toFixed(2)} ${f.y.toFixed(2)} ${(l/f.s).toFixed(2)} ${(u/f.s).toFixed(2)}`,i=`${f.ts>1.01}|${m}`;(e.getAttribute(`viewBox`)!==r||i!==h)&&(e.setAttribute(`viewBox`,r),f.ts>1.01?a?.setAttribute(`data-zoomed`,``):a?.removeAttribute(`data-zoomed`),h=i,_())},state:f,dispose(){w.disconnect(),e.removeEventListener(`wheel`,T),e.removeEventListener(`pointerdown`,k),e.removeEventListener(`pointermove`,A),e.removeEventListener(`pointerup`,j),e.removeEventListener(`pointercancel`,j),e.removeEventListener(`dblclick`,M),a?.removeEventListener(`keydown`,ee),a&&!te&&a.removeAttribute(`tabindex`),a?.removeAttribute(`data-zoomed`),a?.removeAttribute(`data-panning`),p.clear()}}}function Ye(e){return null}var Xe=250,Ze=2;function Qe(e,t){let{svg:n,feed:r}=e,i=We(e,performance.now()),a=t(e),o=(e,t)=>Oe(n,e,t),s=Je(n,e.size,{reducedMotion:e.reducedMotion,assetAt:o}),c=!1,l=0,u=0,d=0,f=0,p=0;function m(t){l=0;let n=u?Math.min((t-u)/1e3,1/20):1/60;u=t,i.draw(t),t-d>Xe&&(a.data(i.lampTest()),d=t);let o=r.engineState()===`paused`,h=o?0:n;f+=h,p=o?p+n:0,(!i.done()||p<Ze)&&a.draw({dt:n,sdt:h,t:f,still:e.reducedMotion(),introDone:i.done()}),s.step(n),c&&(l=requestAnimationFrame(m))}let h=()=>{if(document.hidden){l&&cancelAnimationFrame(l),l=0;return}u=0,c&&!l&&(l=requestAnimationFrame(m))};document.addEventListener(`visibilitychange`,h);function g(){c=!1,l&&cancelAnimationFrame(l),l=0}return{start(){c||(c=!0,u=0,document.hidden||(l=requestAnimationFrame(m)))},stop:g,resync:a.resync,dispose(){g(),document.removeEventListener(`visibilitychange`,h),s.dispose();for(let e of ke(n,`[${Ae}]`))e.remove()},view:s,assetAt:o,status:a.status}}var P=n(),$e={ArrowRight:1,ArrowDown:1,ArrowLeft:-1,ArrowUp:-1};function et({things:e,selected:t,label:n,onFocusMachine:r,onActivate:i}){let[a,o]=(0,N.useState)(0),s=(0,N.useRef)([]);(0,N.useEffect)(()=>{let n=e.findIndex(e=>e.key===t);n>=0&&o(n)},[t,e]);let c=t=>{let n=(t+e.length)%e.length;o(n),s.current[n]?.focus()},l=(e,t)=>{let n=$e[e.key],r=n===void 0?void 0:t+n;e.key===`Home`&&(r=0),e.key===`End`&&(r=-1),r!==void 0&&(e.preventDefault(),c(r))};return(0,P.jsx)(`div`,{role:`toolbar`,"aria-label":`Machines`,[Ge]:``,className:`sr-only`,children:e.map((e,c)=>(0,P.jsx)(`button`,{ref:e=>{s.current[c]=e},type:`button`,tabIndex:c===a?0:-1,"aria-label":n(e),"aria-pressed":e.key===t,onFocus:()=>{o(c),r(e.key)},onBlur:()=>r(null),onKeyDown:e=>l(e,c),onClick:t=>{t.stopPropagation(),i(e.key)}},e.key))})}var tt=4,nt=400,rt={g:`bg-success`,a:`bg-warning`,r:`bg-destructive`,"":`bg-muted-foreground/50`};function it(e,t,n){let r=e.getBoundingClientRect(),i=1/0,a=-1/0,o=1/0,s=-1/0;for(let e of t.querySelectorAll(`[data-asset="${CSS.escape(n)}"]`)){let t=e.getBoundingClientRect();t.width&&(i=Math.min(i,t.left),a=Math.max(a,t.right),o=Math.min(o,t.top),s=Math.max(s,t.bottom))}return Number.isFinite(i)?{id:n,x:Math.max(72,Math.min(r.width-72,(i+a)/2-r.left)),y:Math.max(40,o-r.top-10),box:{left:i-r.left,top:o-r.top,width:a-i,height:s-o}}:null}function at(e,t,n){for(let n of e.querySelectorAll(`[${t}]`))n.removeAttribute(t);if(n)for(let r of e.querySelectorAll(`[data-asset="${CSS.escape(n)}"]`))r.setAttribute(t,``)}function ot({layout:e,ids:t,caption:n,feed:r,things:i,selected:a,onSelect:o,onRuntime:s}){let c=(0,N.useRef)(null),u=(0,N.useRef)(null),[d,f]=(0,N.useState)(null),[p,m]=(0,N.useState)(null),[h,g]=(0,N.useState)(null),[_,v]=(0,N.useState)(1),[,y]=(0,N.useState)(0),b=(0,N.useRef)({onSelect:o,onRuntime:s});b.current={onSelect:o,onRuntime:s},(0,N.useLayoutEffect)(()=>{let n=u.current;if(!n)return;let i=matchMedia(`(prefers-reduced-motion: reduce)`),a=Qe({svg:n,size:{width:e.width,height:e.height},P:e.kit.P,feed:r,flows:e.flows,ids:t,reducedMotion:()=>i.matches},e.compose);a.start(),f(a),b.current.onRuntime(a);let o=a.view.subscribe(e=>{v(e.scale),e.panning?m(null):m(e=>e&&c.current?it(c.current,n,e.id):e)}),s=Ye(a),l=window;return s&&(l.__sf={...s,joints:e.joints,select:e=>b.current.onSelect(e),showTag:e=>c.current&&m(it(c.current,n,e))}),()=>{o(),a.dispose(),b.current.onRuntime(null),s&&delete l.__sf}},[e,t,r]),(0,N.useEffect)(()=>{let e=u.current;e&&at(e,`data-selected`,a)},[a]),(0,N.useEffect)(()=>{let e=u.current;if(e&&at(e,`data-hover`,p?.id??null),!p)return;let t=setInterval(()=>y(e=>e+1),nt);return()=>clearInterval(t)},[p?.id,p]);let x=(0,N.useRef)(null),S=p?i.find(e=>e.key===p.id):void 0,[C,w]=p&&d?d.status(p.id):[``,``],T=l(e=>e.assets),E=i.flatMap(e=>(T.find(t=>t.id===e.assetId)?.activeFaults??[]).map(t=>({thing:e,fault:t})));return(0,P.jsxs)(`section`,{ref:c,"aria-label":`Factory floor`,className:`floor-scene @container relative min-h-0 overflow-hidden bg-background outline-none [background-image:linear-gradient(color-mix(in_srgb,var(--border)_45%,transparent)_1px,transparent_1px),linear-gradient(90deg,color-mix(in_srgb,var(--border)_45%,transparent)_1px,transparent_1px)] [background-size:48px_48px] focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset`,onPointerMove:e=>{let t=c.current,n=u.current;if(!d||!t||!n||t.hasAttribute(`data-panning`))return;let r=d.assetAt(e.clientX,e.clientY);r!==(p?.id??null)&&m(r?it(t,n,r):null)},onPointerLeave:()=>m(null),onPointerDown:e=>{x.current=[e.clientX,e.clientY]},onClick:e=>{let t=x.current;t&&Math.hypot(e.clientX-t[0],e.clientY-t[1])>tt||o(d?.assetAt(e.clientX,e.clientY)??null)},onKeyDown:e=>{e.key===`Escape`&&a&&o(null)},children:[(0,P.jsx)(`svg`,{ref:u,className:`iso-svg floor-svg`,viewBox:`0 0 ${e.width} ${e.height}`,role:`img`,"aria-label":e.label,children:(0,P.jsx)(je,{value:e.kit,children:(0,P.jsx)(e.Scene,{ids:t})})}),(0,P.jsxs)(`div`,{className:`pointer-events-none absolute inset-x-3 top-3 flex flex-wrap items-start justify-between gap-x-3 gap-y-2`,children:[(0,P.jsxs)(`p`,{className:`pt-1 pl-1 text-[11px] font-semibold uppercase tracking-[0.14em] text-muted-foreground`,children:[`Floor `,(0,P.jsx)(`span`,{className:`text-primary`,children:`·`}),` `,n]}),E.length>0?(0,P.jsx)(`ul`,{className:`pointer-events-auto ml-auto flex max-w-full flex-col items-end gap-1.5`,children:E.map(({thing:e,fault:t})=>(0,P.jsx)(`li`,{children:(0,P.jsxs)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),o(e.key)},className:`flex max-w-full items-center gap-2 rounded-[var(--miravo-radius-pill)] border border-destructive/40 bg-background/90 px-2.5 py-1 text-[11px] text-destructive outline-none transition-colors hover:border-destructive/70 focus-visible:ring-2 focus-visible:ring-ring`,children:[(0,P.jsx)(`span`,{className:`size-1.5 shrink-0 animate-pulse rounded-full bg-destructive`}),(0,P.jsx)(`span`,{className:`shrink-0 font-medium`,children:e.name}),(0,P.jsx)(`span`,{className:`min-w-0 truncate font-mono text-[10px] opacity-80`,children:t.replace(/_/g,` `)})]})},`${e.key}:${t}`))}):null]}),p?(0,P.jsxs)(`div`,{role:`status`,className:`pointer-events-none absolute z-10 flex -translate-x-1/2 -translate-y-full items-center gap-2 whitespace-nowrap rounded-[var(--miravo-radius-pill)] border border-border/80 bg-background/95 px-2.5 py-1 shadow-[0_14px_40px_-20px_#000]`,style:{left:p.x,top:p.y},children:[(0,P.jsx)(`span`,{className:M(`size-1.5 rounded-full`,rt[w]??rt[``])}),(0,P.jsx)(`span`,{className:`text-xs font-medium`,children:S?.name??p.id}),(0,P.jsx)(`span`,{className:`font-mono text-[10px] uppercase tracking-[0.08em] text-muted-foreground`,children:fe(C)})]}):null,h&&p?.id===h?(0,P.jsx)(`div`,{"aria-hidden":!0,className:`pointer-events-none absolute rounded-[var(--miravo-radius-tight)] ring-2 ring-ring ring-offset-2 ring-offset-background`,style:{left:p.box.left-4,top:p.box.top-4,width:p.box.width+8,height:p.box.height+8}}):null,(0,P.jsx)(et,{things:i,selected:a,label:e=>`${e.name}, ${fe(d?d.status(e.key)[0]:``)}`,onFocusMachine:e=>{g(e);let t=c.current,n=u.current;m(e&&t&&n?it(t,n,e):null)},onActivate:e=>{o(e),d?.view.flyTo(e)}}),(0,P.jsx)(`p`,{className:`pointer-events-none absolute bottom-3 left-4 hidden text-[10px] text-muted-foreground/80 @3xl:block`,children:`Drag to pan · Ctrl/⌘ + scroll to zoom · Double-click a machine, or Tab to it and press Enter, to fly to it`}),(0,P.jsxs)(`div`,{className:`absolute right-3 bottom-3 flex items-center gap-0.5 rounded-[var(--miravo-radius-stadium-sm)] border border-border/70 bg-background/90 p-0.5`,children:[(0,P.jsx)(st,{label:`Zoom out`,onClick:()=>d?.view.zoomOut(),children:(0,P.jsx)(ie,{className:`size-3.5`,"aria-hidden":!0})}),(0,P.jsxs)(`span`,{className:`min-w-10 text-center font-mono text-[10px] tabular-nums text-muted-foreground`,children:[_.toFixed(1),`×`]}),(0,P.jsx)(st,{label:`Zoom in`,onClick:()=>d?.view.zoomIn(),children:(0,P.jsx)(ce,{className:`size-3.5`,"aria-hidden":!0})}),(0,P.jsx)(st,{label:`Fit floor`,onClick:()=>d?.view.fit(),children:(0,P.jsx)(Le,{className:`size-3.5`,"aria-hidden":!0})})]})]})}function st({label:e,onClick:t,children:n}){return(0,P.jsx)(`button`,{type:`button`,"aria-label":e,title:e,onClick:e=>{e.stopPropagation(),t()},className:`grid size-7 place-items-center rounded-[var(--miravo-radius-tight)] text-muted-foreground outline-none transition-colors hover:bg-muted/50 hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring`,children:n})}var ct=3e3;function lt(e){return e.type===`fault:triggered`?`bg-destructive`:e.type===`fault:cleared`?`bg-success`:`bg-muted-foreground/50`}function ut({assetIds:e,nameOf:t,onSelect:n}){let r=S({queryKey:c.events(`all`,``),queryFn:()=>s(Ee(`all`,``,null),i.events),refetchInterval:ct}),a=new Date,o=(r.data?.events??[]).filter(t=>{if(Ce(t))return!1;let n=Te(t);return n===void 0||e.has(n)});return(0,P.jsxs)(`div`,{className:`flex flex-col`,children:[o.length===0?(0,P.jsx)(`p`,{className:`px-4 py-6 text-xs text-muted-foreground`,children:r.isPending?`Loading events…`:`No events yet. Inject a fault to see one here.`}):(0,P.jsx)(`ol`,{className:`flex flex-col px-2 py-2`,children:o.map(e=>{let r=Te(e),i=we(e);return(0,P.jsx)(`li`,{children:(0,P.jsxs)(`button`,{type:`button`,disabled:!r,onClick:()=>r&&n(r),className:`flex w-full items-start gap-2.5 rounded-[var(--miravo-radius-tight)] px-2 py-2 text-left outline-none transition-colors enabled:hover:bg-muted/40 focus-visible:ring-2 focus-visible:ring-ring`,children:[(0,P.jsx)(`span`,{className:M(`mt-1.5 size-1.5 shrink-0 rounded-full`,lt(e))}),(0,P.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col gap-0.5`,children:[(0,P.jsxs)(`span`,{className:`truncate text-xs`,children:[(0,P.jsx)(`span`,{className:`text-foreground`,children:r?t(r):`Engine`}),(0,P.jsxs)(`span`,{className:`text-muted-foreground`,children:[` `,k(e.type.replace(/[:-]/g,`_`))]})]}),i?(0,P.jsx)(`span`,{className:`truncate font-mono text-[11px] text-muted-foreground`,children:i}):null]}),(0,P.jsx)(`time`,{className:`shrink-0 font-mono text-[10px] text-muted-foreground tabular-nums`,children:Se(e.timestamp,a)})]})},e.id)})}),(0,P.jsx)(`div`,{className:`border-t border-border/50 px-4 py-3`,children:(0,P.jsxs)(E,{to:`/events`,className:A({size:`sm`,variant:`ghost`,className:`-ml-2 gap-1`}),children:[`All events`,(0,P.jsx)(ee,{className:`size-3.5`,"aria-hidden":!0})]})})]})}function dt(e){return(typeof e==`number`||typeof e==`string`)&&e!==``}function ft(e){let t=(0,N.useId)();return dt(e)?`${e}`:t}var F=typeof window<`u`?N.useLayoutEffect:N.useEffect;function I(e){let t=(0,N.useRef)(e);return F(()=>{t.current=e},[e]),(0,N.useCallback)((...e)=>t.current?.(...e),[t])}function pt(...e){return I(t=>{e.forEach(e=>{if(e)switch(typeof e){case`function`:e(t);break;case`object`:e.current=t;break}})})}function mt(e,t){let n=e?.[`data-testid`];return dt(n)?`${n}`:dt(t)?`${t}`:void 0}function ht(e,t){return t?e*2+1:e+1}function gt(e,t){return t?e*2-1:e}function _t(e,t,n){let r=ht(e,n);return t===void 0?`${r} / -1`:`${r} / span ${gt(t,n)}`}function vt(e){return`${e*2} / span 1`}function yt({crossCount:e,crossSpan:t,crossStart:n,hasGutters:r}){let i=t===void 0?e:n+t;if(n===0&&i===e)return`1 / -1`;let a=ht(n,r),o=ht(i-1,r)+1;return r&&(n>0&&a--,i<e&&o++),`${a} / ${o}`}function bt(e,t){return Number.isInteger(e)&&e>=1&&e<t}function L(e,t=`Assertion error`){if(!e)throw Error(t)}var xt=(0,N.createContext)(null);function St(){let e=(0,N.useContext)(xt);return L(e,`Grid Context not found; did you render a Cell or Gridline outside of a Grid?`),e}function Ct({children:e,className:t,column:n,columnSpan:r=1,elementRef:i,id:a,row:o,rowSpan:s=1,style:c,...l}){let u=ft(a),{gutters:d,registerCell:f}=St(),p=(0,N.useRef)(null),m=pt(p,i);return F(()=>{let e=p.current;if(e!==null)return f({column:n,columnSpan:r,element:e,id:u,row:o,rowSpan:s})},[n,r,u,f,o,s]),(0,P.jsx)(`div`,{...l,className:t,"data-cell":!0,"data-testid":mt(l,a),id:u,ref:m,style:{overflow:`auto`,...c,minHeight:0,minWidth:0,gridColumn:_t(n,r,d.column),gridRow:_t(o,s,d.row)},children:e})}Ct.displayName=`Cell`;var wt;function Tt(){return wt===void 0&&(wt=typeof matchMedia==`function`?!!matchMedia(`(pointer:coarse)`).matches:!1),wt}function Et({expandHitTargets:e,axis:t,rect:n}){let r=e?Tt()?t.resizeTargetMinimumSize.coarse:t.resizeTargetMinimumSize.fine:0;if(n.width<r){let e=r-n.width;n=new DOMRect(n.x-e/2,n.y,n.width+e,n.height)}if(n.height<r){let e=r-n.height;n=new DOMRect(n.x,n.y-e/2,n.width,n.height+e)}return n}function Dt({axis:e,cells:t,index:n,rect:r}){let i=[r];for(let r of t){let t=e===`column`?r.column:r.row,a=e===`column`?r.columnSpan:r.rowSpan;if(t>=n||t+a<=n)continue;let o=r.element.getBoundingClientRect(),s=e===`column`?o.top:o.left,c=e===`column`?o.bottom:o.right;c<=s||(i=i.flatMap(t=>{let n=e===`column`?t.top:t.left,r=e===`column`?t.bottom:t.right;if(s>=r||c<=n)return[t];let i=[],a=(n,r)=>{i.push(e===`column`?new DOMRect(t.x,n,t.width,r-n):new DOMRect(n,t.y,r-n,t.height))};return n<s&&a(n,s),r>c&&a(c,r),i}))}return i}function Ot({axis:e,cells:t,crossTrackCount:n,expandHitTargets:r,resizeAxis:i,axisSize:a,includeDisabled:o,separatorPlacements:s}){let{items:c,separators:l}=i,u=c.length,d=-1,f=-1,p=0;if(c.forEach((e,t)=>{e.constraintProps.disabled||(p++,d===-1&&(d=t),f=t)}),!o&&p<2)return[];let m=e=>o||e>d&&e<=f,h=[],g=(e,t,n)=>({axis:i,axisSize:a,items:[c[e-1],c[e]],rect:t,separator:n}),_=(n,r)=>{let i;for(let a of t){let t=e===`column`?a.row:a.column,o=e===`column`?a.rowSpan:a.columnSpan;if(r===`start`?t===n:t+o-1===n){let t=a.element.getBoundingClientRect();if(r===`start`){let n=e===`column`?t.top:t.left;i=i===void 0?n:Math.min(i,n)}else{let n=e===`column`?t.bottom:t.right;i=i===void 0?n:Math.max(i,n)}}}return i},v=new Set;for(let a of l){let c=s.get(a);if(!c||c.index<1||c.index>=u||(v.add(c.index),!o&&(a.disabled||a.element.hasAttribute(`aria-disabled`)))||!m(c.index))continue;let l=a.element.getBoundingClientRect(),{crossSpan:d,crossStart:f}=c,p=d===void 0?n:f+d,y=e===`column`?l.top:l.left,b=e===`column`?l.bottom:l.right;if(f>0){let e=_(f-1,`end`);e!==void 0&&e<y&&(y=e)}if(p<n){let e=_(p,`start`);e!==void 0&&e>b&&(b=e)}l=e===`column`?new DOMRect(l.x,y,l.width,b-y):new DOMRect(y,l.y,b-y,l.height),l=Et({expandHitTargets:r,axis:i,rect:l}),o?h.push(g(c.index,l,a)):Dt({axis:e,cells:t,index:c.index,rect:l}).forEach(e=>{h.push(g(c.index,e,a))})}let y=(n,a)=>{Dt({axis:e,cells:t,index:n,rect:Et({expandHitTargets:r,axis:i,rect:a})}).forEach(e=>{h.push(g(n,e))})},b=Array.from({length:n},()=>Array(u));for(let r of t){let[t,i,a,o]=e===`column`?[r.column,r.columnSpan,r.row,r.rowSpan]:[r.row,r.rowSpan,r.column,r.columnSpan];for(let e=Math.max(0,a);e<Math.min(n,a+o);e++)for(let n=Math.max(0,t);n<Math.min(u,t+i);n++)b[e][n]??=r}let x=new Map,S=t=>{let n=x.get(t);if(!n){let r=t.element.getBoundingClientRect();n=e===`column`?{crossEnd:r.bottom,crossStart:r.top,end:r.right,start:r.left}:{crossEnd:r.right,crossStart:r.left,end:r.bottom,start:r.top},x.set(t,n)}return n},C=({crossEnd:t,crossStart:n,end:r,start:i})=>e===`column`?new DOMRect(i,n,r-i,t-n):new DOMRect(n,i,t-n,r-i);for(let e=1;e<u;e++){if(v.has(e)||!m(e))continue;let t;for(let r=0;r<n;r++){let n=b[r][e-1],i=b[r][e],a;if((n||i)&&n!==i){let e=n?S(n):void 0,t=i?S(i):void 0,r=e?.end??t.start,o=t?.start??e.end,s=Math.max(e?.crossStart??-1/0,t?.crossStart??-1/0),c=Math.min(e?.crossEnd??1/0,t?.crossEnd??1/0);a={crossEnd:Math.max(s,c),crossStart:s,end:Math.max(r,o),start:Math.min(r,o)}}a?t=t?{crossEnd:Math.max(t.crossEnd,a.crossEnd),crossStart:Math.min(t.crossStart,a.crossStart),end:Math.max(t.end,a.end),start:Math.min(t.start,a.start)}:a:t&&=(y(e,C(t)),void 0)}t&&y(e,C(t))}return h}function R(e){let t=parseFloat(e??``);return Number.isFinite(t)?t:0}function kt({axis:e,element:t,gutterSizes:n,hasGutters:r,layout:i,trackIds:a}){let o=a.length,s=r?o*2-1:o,c=t.ownerDocument.defaultView?.getComputedStyle(t),l=e===`column`?c?.gridTemplateColumns:c?.gridTemplateRows;if(l){let e=l.trim().split(/\s+/);if(e.length===s&&e.every(e=>/^-?[\d.]+px$/.test(e))){let t=a.map((t,n)=>R(e[r?n*2:n]));return{availableSize:t.reduce((e,t)=>e+t,0),trackSizes:t}}}let u=e===`column`?t.offsetWidth:t.offsetHeight,d=e===`column`?R(c?.paddingLeft)+R(c?.paddingRight)+R(c?.borderLeftWidth)+R(c?.borderRightWidth):R(c?.paddingTop)+R(c?.paddingBottom)+R(c?.borderTopWidth)+R(c?.borderBottomWidth),f=R(e===`column`?c?.columnGap:c?.rowGap),p=n.reduce((e,t)=>e+t,0),m=Math.max(0,u-d-f*Math.max(0,s-1)-p);return{availableSize:m,trackSizes:a.map(e=>i&&i[e]!==void 0?i[e]/100*m:m/o)}}function At(e){switch(typeof e){case`number`:return[e,`px`];case`string`:{let t=parseFloat(e);return e.endsWith(`%`)?[t,`%`]:e.endsWith(`px`)?[t,`px`]:e.endsWith(`rem`)?[t,`rem`]:e.endsWith(`em`)?[t,`em`]:e.endsWith(`vh`)?[t,`vh`]:e.endsWith(`vw`)?[t,`vw`]:[t,`%`]}}}var jt=class{#e={};addListener(e,t){let n=this.#e[e];return n===void 0?this.#e[e]=[t]:n.includes(t)||n.push(t),()=>{this.removeListener(e,t)}}emit(e,t){let n=this.#e[e];if(n!==void 0){if(n.length===1){n[0].call(null,t);return}let e,r=Array.from(n);for(let n=0;n<r.length;n++){let i=r[n];try{i.call(null,t)}catch(t){e??={error:t}}}if(e)throw e.error}}removeAllListeners(){this.#e={}}removeListener(e,t){let n=this.#e[e];if(n!==void 0){let e=n.indexOf(t);e>=0&&n.splice(e,1)}}},z={cursorFlags:0,state:`inactive`},Mt=new jt;function B(){return z}function Nt(e){return Mt.addListener(`change`,e)}function Pt(e,t=[],n,r=!1){let i=z,a={...z};a.cursorFlags=e,a.state===`active`&&(a.didPointerMove||=r,a.previews=t,n&&(a.previewLayoutMap=n)),z=a,Mt.emit(`change`,{prev:i,next:a})}function V(e){let t=z;z=e,t.state===`active`&&e.state!==`active`&&t.didPointerMove&&t.hitRegions.forEach(({separator:e})=>{e&&e.element.ownerDocument.activeElement===e.element&&e.element.blur()}),Mt.emit(`change`,{prev:t,next:e})}function Ft(e){z.state!==`active`||!z.previews.some(t=>t.separator===e)||V({...z,previews:z.previews.map(t=>t.separator===e?{...t}:t)})}function It(e){if(z.state===`inactive`)return;let t=z.hitRegions.filter(t=>t.axis!==e),n=z.state===`active`&&z.previews.some(t=>t.axis===e);if(!(t.length===z.hitRegions.length&&!n))if(t.length===0)V({cursorFlags:0,state:`inactive`});else if(z.state===`active`){let n=new Map(z.initialLayoutMap),r=new Map(z.previewLayoutMap);n.delete(e),r.delete(e),V({...z,cursorFlags:0,hitRegions:t,initialLayoutMap:n,previewLayoutMap:r,previews:z.previews.filter(t=>t.axis!==e)})}else V({...z,hitRegions:t})}var Lt=e=>e,Rt=()=>{},zt=1,Bt=2,Vt=4,Ht=8,Ut=3,Wt=12,Gt;function Kt(){return Gt===void 0&&(Gt=!1,typeof window<`u`&&(window.navigator.userAgent.includes(`Chrome`)||window.navigator.userAgent.includes(`Firefox`))&&(Gt=!0)),Gt}function qt({cursorFlags:e,axes:t,state:n}){let r=0,i=0;switch(n){case`active`:case`hover`:t.forEach(e=>{if(!e.mutableState.disableCursor)switch(e.orientation){case`horizontal`:r++;break;case`vertical`:i++;break}})}if(!(r===0&&i===0)){switch(n){case`active`:if(e&&Kt()){let t=(e&zt)!==0,n=(e&Bt)!==0,r=(e&Vt)!==0,i=(e&Ht)!==0;if(t)return r?`se-resize`:i?`ne-resize`:`e-resize`;if(n)return r?`sw-resize`:i?`nw-resize`:`w-resize`;if(r)return`s-resize`;if(i)return`n-resize`}break}return Kt()?r>0&&i>0?`move`:r>0?`ew-resize`:`ns-resize`:r>0&&i>0?`grab`:r>0?`col-resize`:`row-resize`}}var Jt=new WeakMap;function Yt(e){if(!e.defaultView||!e.adoptedStyleSheets)return;let{prevStyle:t,styleSheet:n}=Jt.get(e)??{};n===void 0&&(n=new e.defaultView.CSSStyleSheet,e.adoptedStyleSheets&&(Object.isExtensible(e.adoptedStyleSheets)?e.adoptedStyleSheets.push(n):e.adoptedStyleSheets=[...e.adoptedStyleSheets,n]));let r=B();switch(r.state!==`inactive`&&r.ownerDocument!==e&&(r={cursorFlags:0,state:`inactive`}),r.state){case`active`:case`hover`:{let e=qt({cursorFlags:r.cursorFlags,axes:r.hitRegions.map(e=>e.axis),state:r.state}),i=`*, *:hover {cursor: ${e} !important; }`;if(t===i)return;t=i,e?n.cssRules.length===0?n.insertRule(i):n.replaceSync(i):n.cssRules.length===1&&n.deleteRule(0);break}case`inactive`:t=void 0,n.cssRules.length===1&&n.deleteRule(0);break}Jt.set(e,{prevStyle:t,styleSheet:n})}function Xt(e){return e.state===`inactive`?void 0:e.ownerDocument}function Zt({next:e,prev:t}){let n=Xt(t),r=Xt(e);n&&n!==r&&Yt(n),r&&Yt(r)}function H({axis:e}){let{layoutStrategy:t,orientation:n,items:r}=e;return t?t.calculateAvailableSize():r.reduce((e,t)=>(e+=n===`horizontal`?t.element.offsetWidth:t.element.offsetHeight,e),0)}function Qt(e,t){let n=e.compareDocumentPosition(t);return n&Node.DOCUMENT_POSITION_DISCONNECTED?0:n&Node.DOCUMENT_POSITION_FOLLOWING?-1:n&Node.DOCUMENT_POSITION_PRECEDING?1:0}function $t(e,t){return Array.from(t).sort((t,n)=>{let r=e===`horizontal`?en(t,n):tn(t,n);return r===0?Qt(t.element,n.element):r})}function en(e,t){let n=e.element.offsetLeft-t.element.offsetLeft;return n===0?e.element.offsetWidth-t.element.offsetWidth:n}function tn(e,t){let n=e.element.offsetTop-t.element.offsetTop;return n===0?e.element.offsetHeight-t.element.offsetHeight:n}function nn(e){return typeof e==`object`&&!!e&&`nodeType`in e&&e.nodeType===Node.ELEMENT_NODE}function rn(e,t){return{x:e.x>=t.left&&e.x<=t.right?0:Math.min(Math.abs(e.x-t.left),Math.abs(e.x-t.right)),y:e.y>=t.top&&e.y<=t.bottom?0:Math.min(Math.abs(e.y-t.top),Math.abs(e.y-t.bottom))}}function an({orientation:e,rects:t,targetRect:n}){let r={x:n.x+n.width/2,y:n.y+n.height/2},i,a=Number.MAX_VALUE;for(let n of t){let{x:t,y:o}=rn(r,n),s=e===`horizontal`?t:o;s<a&&(a=s,i=n)}return L(i,`No rect found`),i}function on({expandHitTargets:e=!0,axis:t,includeDisabled:n=!1}){if(t.layoutStrategy)return t.layoutStrategy.calculateHitRegions({expandHitTargets:e,axis:t,includeDisabled:n});let{element:r,orientation:i,items:a,separators:o}=t,s=$t(i,Array.from(r.children).filter(nn).filter(e=>!e.hasAttribute(`data-resize-preview`)).map(e=>({element:e}))).map(({element:e})=>e),c=[],l=!1,u=!1,d=-1,f,p=-1,m=0,h,g=[];{let e=-1;for(let t of s)t.hasAttribute(`data-panel`)&&(e++,t.hasAttribute(`data-disabled`)||(m++,d===-1&&(d=e),p=e))}if(n||m>1){let r=-1;for(let m of s)if(m.hasAttribute(`data-panel`)){r++;let o=a.find(e=>e.element===m);if(o){if(h){let a=h.element.getBoundingClientRect(),s=m.getBoundingClientRect(),_;if(u){let e=i===`horizontal`?new DOMRect(a.right,a.top,0,a.height):new DOMRect(a.left,a.bottom,a.width,0),t=i===`horizontal`?new DOMRect(s.left,s.top,0,s.height):new DOMRect(s.left,s.top,s.width,0);switch(g.length){case 0:_=[e,t];break;case 1:{let n=g[0];_=[n,an({orientation:i,rects:[a,s],targetRect:n.element.getBoundingClientRect()})===a?t:e];break}default:_=g;break}}else _=g.length?g:[i===`horizontal`?new DOMRect(a.right,s.top,s.left-a.right,s.height):new DOMRect(s.left,a.bottom,s.width,s.top-a.bottom)];for(let i of _){let a=Et({expandHitTargets:e,axis:t,rect:`width`in i?i:i.element.getBoundingClientRect()});(n||!l&&!(r<=d||r>p))&&(f??=H({axis:t}),c.push({axis:t,axisSize:f,items:[h,o],separator:`width`in i?void 0:i,rect:a})),l=!1}}u=!1,h=o,g=[]}}else if(m.hasAttribute(`data-separator`)){m.ariaDisabled!==null&&(l=!0);let e=o.find(e=>e.element===m);e?g.push(e):(h=void 0,g=[])}else u=!0}return c}function sn(e,t){let n=getComputedStyle(e);return t*parseFloat(n.fontSize)}function cn(e,t){let n=getComputedStyle(e.ownerDocument.documentElement);return t*parseFloat(n.fontSize)}function ln(e){return e/100*window.innerHeight}function un(e){return e/100*window.innerWidth}function U({axisSize:e,itemElement:t,styleProp:n}){let r,[i,a]=At(n);switch(a){case`%`:r=i/100*e;break;case`px`:r=i;break;case`rem`:r=cn(t,i);break;case`em`:r=sn(t,i);break;case`vh`:r=ln(i);break;case`vw`:r=un(i);break}return r}function W(e){return parseFloat(e.toFixed(3))}function dn(e){let{items:t}=e,n=H({axis:e});return n===0?t.map(e=>({groupResizeBehavior:e.constraintProps.groupResizeBehavior,collapsedSize:0,collapsible:e.constraintProps.collapsible===!0,defaultSize:void 0,disabled:e.constraintProps.disabled,minSize:0,maxSize:100,itemId:e.id})):t.map(e=>{let{element:t,constraintProps:r}=e,i=0;r.collapsedSize!==void 0&&(i=W(U({axisSize:n,itemElement:t,styleProp:r.collapsedSize})/n*100));let a;r.collapsedThreshold!==void 0&&(a=W(U({axisSize:n,itemElement:t,styleProp:r.collapsedThreshold})/n*100));let o;r.defaultSize!==void 0&&(o=W(U({axisSize:n,itemElement:t,styleProp:r.defaultSize})/n*100));let s=0;r.minSize!==void 0&&(s=W(U({axisSize:n,itemElement:t,styleProp:r.minSize})/n*100));let c=100;return r.maxSize!==void 0&&(c=W(U({axisSize:n,itemElement:t,styleProp:r.maxSize})/n*100)),{groupResizeBehavior:r.groupResizeBehavior,collapsedSize:i,collapsedThreshold:a,collapsible:r.collapsible===!0,defaultSize:o,disabled:r.disabled,minSize:s,maxSize:c,itemId:e.id}})}var G=new Map,fn=new jt,pn=0,mn=[],hn;function gn(){pn++}function _n(){for(let e=0;e<mn.length;e++)try{fn.emit(`axisChange`,mn[e])}catch(e){hn??={error:e}}mn.length=0}function vn(){if(pn===1&&_n(),pn--,pn===0&&hn){let{error:e}=hn;throw hn=void 0,e}}function yn(e){G=new Map(G),G.delete(e)}function bn(e,t){for(let[t]of G)if(t.id===e)return t}function K(e,t){for(let[t,n]of G)if(t.id===e)return n;if(t)throw Error(`Could not find data for Group with id ${e}`)}function q(){return G}function xn(e,t){return fn.addListener(`axisChange`,n=>{n.axis.id===e&&t(n)})}function J(e,t,n){let r=G.get(e);G=new Map(G),G.set(e,t);let i={axis:e,isUserInteraction:n?.isUserInteraction===!0,prev:r,next:t};pn>0?mn.push(i):fn.emit(`axisChange`,i)}function Sn(e,{pointerId:t,pointerType:n}){return t===e.pointerId||n===`pen`&&e.pointerType===`pen`}function Cn(e,t,n={}){return e.ownerDocument===t&&(n.pointerId===void 0||Sn(e,n))}function wn(e,t){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 Y(e,t,n=0){return Math.abs(W(e)-W(t))<=n}function X(e,t){return Y(e,t)?0:e>t?1:-1}function Tn({overrideDisabledItems:e,itemConstraints:t,prevSize:n,size:r}){let{collapsedSize:i=0,collapsedThreshold:a,collapsible:o,disabled:s,maxSize:c=100,minSize:l=0}=t;if(s&&!e)return n;if(X(r,l)<0)if(o){let e=a??(l-i)/2,t=X(n,i)<=0,o=t?i+e:l-e,s=X(r,o);r=X(r,i)<=0||s<0||a!==void 0&&t&&s===0?i:l}else r=l;return r=Math.min(c,r),r=W(r),r}function En({delta:e,initialLayout:t,itemConstraints:n,pivotIndices:r,prevLayout:i,trigger:a}){if(Y(e,0))return t;let o=a===`imperative-api`,s=n.map(({itemId:e})=>t[e]),c=n.map(({itemId:e})=>i[e]),l=[...s],[u,d]=r;L(u!=null,`Invalid first pivot index`),L(d!=null,`Invalid second pivot index`);let f=0;switch(a){case`keyboard`:{let t=e<0?d:u,r=n[t];L(r,`Panel constraints not found for index ${t}`);let{collapsedSize:i=0,collapsible:a,minSize:o=0}=r;if(a){let n=s[t];if(L(n!=null,`Previous layout not found for panel index ${t}`),Y(n,i)){let t=o-n;X(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}{let t=e<0?u:d,r=n[t];L(r,`No panel constraints found for index ${t}`);let{collapsedSize:i=0,collapsible:a,minSize:o=0}=r;if(a){let n=s[t];if(L(n!=null,`Previous layout not found for panel index ${t}`),Y(n,o)){let t=n-i;X(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}break;default:{let t=e<0?d:u,r=n[t];L(r,`Panel constraints not found for index ${t}`);let i=s[t],{collapsedSize:a,collapsedThreshold:o,collapsible:c,minSize:l}=r;if(c&&X(i,l)<0){let t=l-a,n=o??t/2;if(X(i+Math.abs(e),l)<0){let r=X(Math.abs(e),n);e=r>0||r===0&&o===void 0&&e<0?e<0?-t:t:0}}break}}{let t=e<0?1:-1,r=e<0?d:u,i=0;for(;;){let e=s[r];L(e!=null,`Previous layout not found for panel index ${r}`);let a=Tn({overrideDisabledItems:o,itemConstraints:n[r],prevSize:e,size:100})-e;if(i+=a,r+=t,r<0||r>=n.length)break}let a=Math.min(Math.abs(e),Math.abs(i));e=e<0?0-a:a}{let t=e<0?u:d;for(;t>=0&&t<n.length;){let r=Math.abs(e)-Math.abs(f),i=s[t];L(i!=null,`Previous layout not found for panel index ${t}`);let a=i-r,c=Tn({overrideDisabledItems:o,itemConstraints:n[t],prevSize:i,size:a});if(!Y(i,c)&&(f+=i-c,l[t]=c,f.toFixed(3).localeCompare(Math.abs(e).toFixed(3),void 0,{numeric:!0})>=0))break;e<0?t--:t++}}if(wn(c,l))return i;{let t=e<0?d:u,r=s[t];L(r!=null,`Previous layout not found for panel index ${t}`);let i=r+f,a=Tn({overrideDisabledItems:o,itemConstraints:n[t],prevSize:r,size:i});if(l[t]=a,!Y(a,i)){let t=i-a,r=e<0?d:u;for(;r>=0&&r<n.length;){let i=l[r];L(i!=null,`Previous layout not found for panel index ${r}`);let a=i+t,s=Tn({overrideDisabledItems:o,itemConstraints:n[r],prevSize:i,size:a});if(Y(i,s)||(t-=s-i,l[r]=s),Y(t,0))break;e>0?r--:r++}}}return Y(Object.values(l).reduce((e,t)=>t+e,0),100,.1)?l.reduce((e,t,r)=>(e[n[r].itemId]=t,e),{}):i}function Z(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(t[n]===void 0||X(e[n],t[n])!==0)return!1;return!0}function Dn(e){gn();try{On(e)}finally{vn()}}function On({commit:e,event:t,hitRegions:n,initialLayoutMap:r,mountedAxes:i,pointerDownAtPoint:a,prevCursorFlags:o}){let s=0,c=B(),l=c.state===`active`?c.previews:[],u=new Map(c.state===`active`?c.previewLayoutMap:void 0);n.forEach(n=>{let{axis:o,axisSize:c}=n,{orientation:d,items:f}=o;if(e&&o.resizePreviewMode!==`separator`)return;let{disableCursor:p}=o.mutableState,m=0;m=a?d===`horizontal`?(t.clientX-a.x)/c*100:(t.clientY-a.y)/c*100:d===`horizontal`?t.clientX<0?-100:100:t.clientY<0?-100:100;let h=r.get(o),g=i.get(o);if(!h||!g)return;let{defaultLayoutDeferred:_,derivedItemConstraints:v,axisSize:y,layout:b,separatorToItems:x}=g;if(v&&b&&x){let t=o.resizePreviewMode===`separator`?u.get(o)??b:b,r=En({delta:m,initialLayout:h,itemConstraints:v,pivotIndices:n.items.map(e=>f.indexOf(e)),prevLayout:t,trigger:`mouse-or-touch`});if(o.resizePreviewMode===`separator`&&!e&&!Z(r,t)){u.set(o,r);let e=0,t=f.map(t=>(e+=r[t.id]-h[t.id],c/100*e));l=l.map(e=>{if(e.axis!==o)return e;let n=t[e.itemIndex];return n===e.offset?e:{...e,offset:n}})}if(Z(r,t)&&m!==0&&!p)switch(d){case`horizontal`:s|=m<0?zt:Bt;break;case`vertical`:s|=m<0?Vt:Ht;break}(o.resizePreviewMode!==`separator`||e)&&!Z(r,b)&&J(n.axis,{defaultLayoutDeferred:_,derivedItemConstraints:v,axisSize:y,layout:r,requestedAxisSize:y,requestedLayout:r,separatorToItems:x})}});let d=0;t.movementX===0?d|=o&Ut:d|=s&Ut,t.movementY===0?d|=o&Wt:d|=s&Wt;let f=c.state===`active`&&(t.clientX!==c.pointerDownAtPoint.x||t.clientY!==c.pointerDownAtPoint.y);Pt(d,l,u,f)}function kn(e,t){let n=B();if(n.state!==`active`||!Cn(n,e,t))return;let r=q();gn();try{Dn({commit:!0,event:t,hitRegions:n.hitRegions,initialLayoutMap:n.initialLayoutMap,mountedAxes:r,pointerDownAtPoint:n.pointerDownAtPoint,prevCursorFlags:n.cursorFlags}),_n(),V({cursorFlags:0,state:`inactive`}),n.hitRegions.length>0&&(t.preventDefault?.(),n.hitRegions.forEach(e=>{if(!r.has(e.axis))return;let t=K(e.axis.id,!0);J(e.axis,t,{isUserInteraction:!0})}))}finally{vn()}}function An(e){if(e.defaultPrevented)return;let{clientX:t,clientY:n,movementX:r,movementY:i}=e;kn(e.currentTarget,{clientX:t,clientY:n,movementX:r,movementY:i})}function jn(e,t,n){let r,i={x:1/0,y:1/0};for(let a of t){let t=rn(n,a.rect);switch(e){case`horizontal`:(t.x<i.x||t.x===i.x&&t.y<=i.y)&&(r=a,i=t);break;case`vertical`:(t.y<i.y||t.y===i.y&&t.x<=i.x)&&(r=a,i=t);break}}return r?{distance:i,hitRegion:r}:void 0}function Mn(e){return typeof e==`object`&&!!e&&`nodeType`in e&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE}function Nn(e,t){if(e===t)throw Error(`Cannot compare node with itself`);let n={a:zn(e),b:zn(t)},r;for(;n.a.at(-1)===n.b.at(-1);)r=n.a.pop(),n.b.pop();L(r,`Stacking order can only be calculated for elements with a common ancestor`);let i={a:Rn(Ln(n.a)),b:Rn(Ln(n.b))};if(i.a===i.b){let e=r.childNodes,t={a:n.a.at(-1),b:n.b.at(-1)},i=e.length;for(;i--;){let n=e[i];if(n===t.a)return 1;if(n===t.b)return-1}}return Math.sign(i.a-i.b)}var Pn=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function Fn(e){let t=getComputedStyle(Bn(e)??e).display;return t===`flex`||t===`inline-flex`}function In(e){let t=getComputedStyle(e);return!!(t.position===`fixed`||t.zIndex!==`auto`&&(t.position!==`static`||Fn(e))||+t.opacity<1||`transform`in t&&t.transform!==`none`||`webkitTransform`in t&&t.webkitTransform!==`none`||`mixBlendMode`in t&&t.mixBlendMode!==`normal`||`filter`in t&&t.filter!==`none`||`webkitFilter`in t&&t.webkitFilter!==`none`||`isolation`in t&&t.isolation===`isolate`||Pn.test(t.willChange)||t.webkitOverflowScrolling===`touch`)}function Ln(e){let t=e.length;for(;t--;){let n=e[t];if(L(n,`Missing node`),In(n))return n}return null}function Rn(e){return e&&Number(getComputedStyle(e).zIndex)||0}function zn(e){let t=[];for(;e;)t.push(e),e=Bn(e);return t}function Bn(e){let{parentNode:t}=e;return Mn(t)?t.host:t}function Vn(e,t){return e.x<t.x+t.width&&e.x+e.width>t.x&&e.y<t.y+t.height&&e.y+e.height>t.y}function Hn(e){try{return e.matches(`:modal`)}catch{return!1}}function Un({axisElement:e,hitRegion:t,pointerEventTarget:n}){if(nn(n)){let t=n.closest(`dialog`);if(t&&!t.contains(e)&&Hn(t))return!1}if(!nn(n)||n.contains(e)||e.contains(n))return!0;if(Nn(n,e)>0){let r=n;for(;r;){if(r.contains(e))return!0;if(Vn(r.getBoundingClientRect(),t))return!1;r=r.parentElement}}return!0}function Wn(e,t,n){let r=[];return t.forEach((t,i)=>{if(i.disabled||i.element.ownerDocument!==n)return;let a=on({axis:i}),o=jn(i.orientation,a,{x:e.clientX,y:e.clientY});o&&o.distance.x<=0&&o.distance.y<=0&&Un({axisElement:i.element,hitRegion:o.hitRegion.rect,pointerEventTarget:e.target})&&r.push(o.hitRegion)}),r}function Q({layout:e,itemConstraints:t}){let n=t.map(({itemId:t})=>e[t]),r=[...n],i=r.reduce((e,t)=>e+t,0);if(Object.keys(e).length!==t.length)throw Error(`Invalid ${t.length} panel layout: ${Object.values(e).map(e=>`${e}%`).join(`, `)}`);if(!Y(i,100)&&r.length>0)for(let e=0;e<t.length;e++){let t=r[e];L(t!=null,`No layout data found for index ${e}`),r[e]=100/i*t}let a=0;for(let e=0;e<t.length;e++){let i=n[e];L(i!=null,`No layout data found for index ${e}`);let o=r[e];L(o!=null,`No layout data found for index ${e}`);let s=Tn({overrideDisabledItems:!0,itemConstraints:t[e],prevSize:i,size:o});o!=s&&(a+=o-s,r[e]=s)}if(!Y(a,0))for(let e=0;e<t.length;e++){let n=r[e];L(n!=null,`No layout data found for index ${e}`);let i=n+a,o=Tn({overrideDisabledItems:!0,itemConstraints:t[e],prevSize:n,size:i});if(n!==o&&(a-=o-n,r[e]=o,Y(a,0)))break}return r.reduce((e,n,r)=>(e[t[r].itemId]=n,e),{})}function Gn({axisId:e,itemId:t}){let n=()=>{let t=q();for(let[n,{defaultLayoutDeferred:r,derivedItemConstraints:i,layout:a,axisSize:o,separatorToItems:s}]of t)if(n.id===e)return{defaultLayoutDeferred:r,derivedItemConstraints:i,axis:n,axisSize:o,layout:a,separatorToItems:s};throw Error(`Group ${e} not found`)},r=()=>{let e=n().derivedItemConstraints.find(e=>e.itemId===t);if(e!==void 0)return e;throw Error(`Panel constraints not found for Panel ${t}`)},i=()=>{let e=n().axis.items.find(e=>e.id===t);if(e!==void 0)return e;throw Error(`Layout not found for Panel ${t}`)},a=()=>{let e=n().layout[t];if(e!==void 0)return e;throw Error(`Layout not found for Panel ${t}`)},o=({nextSize:e,items:n,prevLayout:r,derivedItemConstraints:i})=>{let o=a(),s=n.findIndex(e=>e.id===t),c=s===0,l=s===n.length-1;if(l&&e<o&&(c||n.slice(0,s).every((e,t)=>{let n=i[t];return n?.collapsible&&Y(n.collapsedSize,r[n.itemId])}))){let e=n.slice(0,s).reduce((e,t)=>e+r[t.id],0);return{...r,[t]:W(100-e)}}return En({delta:l?o-e:e-o,initialLayout:r,itemConstraints:i,pivotIndices:l?[s-1,s]:[s,s+1],prevLayout:r,trigger:`imperative-api`})},s=e=>{if(e===a())return;let{defaultLayoutDeferred:t,derivedItemConstraints:r,axis:i,axisSize:s,layout:c,separatorToItems:l}=n(),u=Q({layout:o({nextSize:e,items:i.items,prevLayout:c,derivedItemConstraints:r}),itemConstraints:r});Z(c,u)||J(i,{defaultLayoutDeferred:t,derivedItemConstraints:r,axisSize:s,layout:u,requestedAxisSize:s,requestedLayout:u,separatorToItems:l})};return{collapse:()=>{let{collapsible:e,collapsedSize:t}=r(),{mutableValues:n}=i(),o=a();e&&o!==t&&(n.expandToSize=o,s(t))},expand:()=>{let{collapsible:e,collapsedSize:t,minSize:n}=r(),{mutableValues:o}=i(),c=a();if(e&&c===t){let e=o.expandToSize??n;e===0&&(e=1),s(e)}},getSize:()=>{let{axis:e}=n(),r=a(),{element:o}=i();return{asPercentage:r,inPixels:e.layoutStrategy?e.layoutStrategy.getItemSizeInPixels(t):e.orientation===`horizontal`?o.offsetWidth:o.offsetHeight}},isCollapsed:()=>{let{collapsible:e,collapsedSize:t}=r(),n=a();return e&&Y(t,n)},resize:e=>{let{axis:t}=n(),{element:r}=i(),a=H({axis:t});s(W(U({axisSize:a,itemElement:r,styleProp:e})/a*100))}}}function Kn(e){e.defaultPrevented||Wn(e,q(),e.currentTarget).forEach(t=>{if(t.separator&&!t.separator.disableDoubleClick){let n=t.items.find(e=>e.constraintProps.defaultSize!==void 0);if(n){let r=n.constraintProps.defaultSize,i=Gn({axisId:t.axis.id,itemId:n.id});i&&r!==void 0&&(i.resize(r),e.preventDefault())}}})}function qn(e){let t=q();for(let[n]of t)if(n.separators.some(t=>t.element===e))return n;throw Error(`Could not find parent Group for separator element`)}function Jn({axisId:e}){let t=()=>{let t=q();for(let[n,r]of t)if(n.id===e)return{axis:n,...r};throw Error(`Could not find Group with id "${e}"`)};return{getLayout(){let{defaultLayoutDeferred:e,layout:n}=t();return e?{}:n},setLayout(e){let{defaultLayoutDeferred:n,derivedItemConstraints:r,axis:i,axisSize:a,layout:o,separatorToItems:s}=t(),c=Q({layout:e,itemConstraints:r});return n?o:(Z(o,c)||J(i,{defaultLayoutDeferred:n,derivedItemConstraints:r,axisSize:a,layout:c,requestedAxisSize:a,requestedLayout:c,separatorToItems:s}),c)}}}function $(e,t){let n=qn(e),r=K(n.id,!0),i=n.separators.find(t=>t.element===e);L(i,`Matching separator not found`);let a=r.separatorToItems.get(i);L(a,`Matching panels not found`);let o=a.map(e=>n.items.indexOf(e)),s=Jn({axisId:n.id}).getLayout(),c=Q({layout:En({delta:t,initialLayout:s,itemConstraints:r.derivedItemConstraints,pivotIndices:o,prevLayout:s,trigger:`keyboard`}),itemConstraints:r.derivedItemConstraints});Z(s,c)||J(n,{defaultLayoutDeferred:r.defaultLayoutDeferred,derivedItemConstraints:r.derivedItemConstraints,axisSize:r.axisSize,layout:c,requestedAxisSize:r.axisSize,requestedLayout:c,separatorToItems:r.separatorToItems},{isUserInteraction:!0})}function Yn(e){if(e.defaultPrevented)return;let t=e.currentTarget,n=qn(t);if(!(n.disabled||n.separators.find(e=>e.element===t)?.disabled))switch(e.key){case`ArrowDown`:e.preventDefault(),n.orientation===`vertical`&&$(t,5);break;case`ArrowLeft`:e.preventDefault(),n.orientation===`horizontal`&&$(t,-5);break;case`ArrowRight`:e.preventDefault(),n.orientation===`horizontal`&&$(t,5);break;case`ArrowUp`:e.preventDefault(),n.orientation===`vertical`&&$(t,-5);break;case`End`:e.preventDefault(),$(t,100);break;case`Enter`:{e.preventDefault();let{derivedItemConstraints:r,layout:i,separatorToItems:a}=K(n.id,!0),o=n.separators.find(e=>e.element===t);L(o,`Matching separator not found`);let s=a.get(o);L(s,`Matching panels not found`);let c=s[0],l=r.find(e=>e.itemId===c.id);if(L(l,`Panel metadata not found`),l.collapsible){let e=i[c.id];$(t,(l.collapsedSize===e?n.mutableState.expandedItemSizes[c.id]??l.minSize:l.collapsedSize)-e)}break}case`F6`:{e.preventDefault();let t=n.separators.map(e=>e.element),r=Array.from(t).findIndex(t=>t===e.currentTarget);L(r!==null,`Index not found`),t[e.shiftKey?r>0?r-1:t.length-1:r+1<t.length?r+1:0].focus({preventScroll:!0});break}case`Home`:e.preventDefault(),$(t,-100);break}}function Xn(e,t){let n=B();if(n.state!==`active`||!Cn(n,e,t))return!1;let r=q();gn();try{n.previewLayoutMap.forEach((e,t)=>{let n=r.get(t);t.resizePreviewMode===`separator`&&n&&!Z(e,n.layout)&&J(t,{...n,layout:e,requestedAxisSize:n.axisSize,requestedLayout:e})}),_n(),V({cursorFlags:0,state:`inactive`}),n.hitRegions.forEach(e=>{if(!r.has(e.axis))return;let t=K(e.axis.id,!0);J(e.axis,t,{isUserInteraction:!0})})}finally{vn()}return!0}function Zn(e){let t=B();if(t.state!==`active`)return;let n=t.hitRegions.flatMap(({separator:e})=>e?[e.element]:[]);!n.some(t=>t===e.target)||n.some(t=>t.hasPointerCapture?.(e.pointerId))||Xn(e.currentTarget,e)}function Qn(e){Xn(e.currentTarget,e)}function $n(e,t){let{element:n,orientation:r,items:i}=e,a=n.getBoundingClientRect(),o=r===`horizontal`;return on({expandHitTargets:!1,axis:e,includeDisabled:!0}).map(({items:r,rect:s,separator:c},l)=>{let u=i.indexOf(r[0]),d=o?s.left+s.width/2:s.top+s.height/2;return{active:t.some(t=>t.axis!==e||t.items[0]!==r[0]?!1:c||t.separator?t.separator===c:Y(d,o?t.rect.left+t.rect.width/2:t.rect.top+t.rect.height/2)),axis:e,key:c?`separator-${c.id}`:`panel-${r[0].id}-${l}`,offset:0,itemIndex:u,rect:new DOMRect((o&&!c?d:s.left)-a.left-n.clientLeft+n.scrollLeft,(!o&&!c?d:s.top)-a.top-n.clientTop+n.scrollTop,o&&!c?0:s.width,!o&&!c?0:s.height),separator:c}})}function er(e){if(e.defaultPrevented||e.pointerType===`mouse`&&e.button>0)return;let t=B();if(t.state===`active`){Sn(t,e)&&Xn(t.ownerDocument,t);return}let n=q(),r=Wn(e,n,e.currentTarget);if(r.length===0)return;let i=new Map,a=!1;r.forEach(e=>{e.separator&&(a||(a=!0,e.separator.element.focus({focusVisible:!1,preventScroll:!0})));let t=n.get(e.axis);t&&i.set(e.axis,t.layout)});let o=Array.from(i.keys()).flatMap(e=>e.resizePreviewMode===`separator`?$n(e,r):[]);V({cursorFlags:0,didPointerMove:!1,hitRegions:r,initialLayoutMap:i,ownerDocument:e.currentTarget,pointerDownAtPoint:{x:e.clientX,y:e.clientY},pointerId:e.pointerId,pointerType:e.pointerType,previewLayoutMap:new Map(i),previews:o,state:`active`}),e.preventDefault()}function tr(e){let t=e.currentTarget,n=q(),r=B();switch(r.state){case`active`:if(!Cn(r,t,e))return;Dn({commit:!1,event:e,hitRegions:r.hitRegions,initialLayoutMap:r.initialLayoutMap,mountedAxes:n,prevCursorFlags:r.cursorFlags})}}function nr(e){if(e.defaultPrevented)return;let t=e.currentTarget,n=B(),r=q();switch(n.state){case`active`:if(!Cn(n,t,e))return;if(e.buttons===0){Xn(t,e);return}for(let t of n.hitRegions)if(t.separator){let{element:n}=t.separator;n.isConnected&&!n.hasPointerCapture?.(e.pointerId)&&n.setPointerCapture?.(e.pointerId)}Dn({commit:!1,event:e,hitRegions:n.hitRegions,initialLayoutMap:n.initialLayoutMap,mountedAxes:r,pointerDownAtPoint:n.pointerDownAtPoint,prevCursorFlags:n.cursorFlags});break;default:{let i=Wn(e,r,t);i.length===0?n.state!==`inactive`&&V({cursorFlags:0,state:`inactive`}):V({cursorFlags:0,hitRegions:i,ownerDocument:t,state:`hover`});break}}}function rr(e){if(e.relatedTarget instanceof HTMLIFrameElement){let t=B();switch(t.state){case`hover`:t.ownerDocument===e.currentTarget&&V({cursorFlags:0,state:`inactive`})}}}function ir(e){e.defaultPrevented||e.pointerType===`mouse`&&e.button>0||kn(e.currentTarget,e)}function ar(e){e.target===e.currentTarget&&Xn(e.currentTarget.document)}function or(e){Xn(e.currentTarget.document)}function sr(e){let t=0,n=0,r={};for(let i of e)if(i.defaultSize!==void 0){t++;let e=W(i.defaultSize);n+=e,r[i.itemId]=e}else r[i.itemId]=void 0;let i=e.length-t;if(i!==0){let t=W((100-n)/i);for(let n of e)n.defaultSize===void 0&&(r[n.itemId]=t)}return r}function cr(e,t){let n=e.map(e=>e.id),r=Object.keys(t);if(n.length!==r.length)return!1;for(let e of n)if(!r.includes(e))return!1;return!0}function lr({axis:e,itemConstraints:t}){let n=e.items.map(({id:e})=>e).join(`,`),r=e.mutableState.defaultLayout;return e.mutableState.layouts[n]??(r&&cr(e.items,r)?r:sr(t))}function ur({itemIds:e,layout:t}){return Q({layout:t,itemConstraints:e.map(e=>({collapsedSize:0,collapsible:!1,defaultSize:void 0,disabled:void 0,itemId:e,maxSize:100,minSize:0}))})}function dr(e,t,n){if(!n[0])return;let r=e.items.find(e=>e.element===t);if(!r||!r.onResize)return;let i=H({axis:e}),a=e.orientation===`horizontal`?r.element.offsetWidth:r.element.offsetHeight,o=r.mutableValues.prevSize,s={asPercentage:W(a/i*100),inPixels:a};r.mutableValues.prevSize=s,r.onResize(s,r.id,o)}function fr(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(e[n]!==t[n])return!1;return!0}function pr(e,t){return e.length===t.length?e.every((e,n)=>fr(e,t[n])):!1}function mr({axis:e,nextAxisSize:t,prevAxisSize:n,prevLayout:r}){if(n<=0||t<=0||n===t)return r;let i=0,a=0,o=!1,s=new Map,c=[];for(let l of e.items){let e=r[l.id]??0;switch(l.constraintProps.groupResizeBehavior){case`preserve-pixel-size`:{o=!0;let r=W(e/100*n/t*100);s.set(l.id,r),i+=r;break}default:c.push(l.id),a+=e;break}}if(!o||c.length===0)return r;let l=100-i,u={...r};if(s.forEach((e,t)=>{u[t]=e}),a>0)for(let e of c)u[e]=W((r[e]??0)/a*l);else{let e=W(l/c.length);for(let t of c)u[t]=e}return u}var hr=new Map,gr=!1;function _r(e){let t=!0;L(e.element.ownerDocument.defaultView,`Cannot register an unmounted Group`);let n=e.element.ownerDocument.defaultView.ResizeObserver,r=new Set,i=new Set,a=new n(n=>{let r;gn();try{for(let i of n){let{borderBoxSize:n,target:a}=i;if(a===e.element){if(t){let t=H({axis:e});if(t===0)break;let n=K(e.id);if(!n)break;let r=dn(e),i=n.requestedAxisSize,a=n.requestedLayout;n.defaultLayoutDeferred&&(i=t,a=ur({itemIds:e.items.map(({id:e})=>e),layout:lr({axis:e,itemConstraints:r})}));let o=Q({layout:mr({axis:e,nextAxisSize:t,prevAxisSize:i,prevLayout:a}),itemConstraints:r});if(!n.defaultLayoutDeferred&&Z(n.layout,o)&&pr(n.derivedItemConstraints,r)&&n.axisSize===t)continue;J(e,{defaultLayoutDeferred:!1,derivedItemConstraints:r,axisSize:t,layout:o,requestedAxisSize:i,requestedLayout:a,separatorToItems:n.separatorToItems})}}else try{dr(e,a,n)}catch(e){r??={error:e}}}}finally{vn()}if(r)throw r.error});a.observe(e.element),e.items.forEach(e=>{L(!r.has(e.id),`Panel ids must be unique; id "${e.id}" was used more than once`),r.add(e.id),e.onResize&&a.observe(e.element)});let o=H({axis:e}),s=dn(e),c=lr({axis:e,itemConstraints:s}),l=Q({layout:c,itemConstraints:s}),u=e.element.ownerDocument,d=u.defaultView;hr.set(u,(hr.get(u)??0)+1);let f=new Map;return on({axis:e,includeDisabled:!0}).forEach(e=>{e.separator&&f.set(e.separator,e.items)}),J(e,{defaultLayoutDeferred:o===0,derivedItemConstraints:s,axisSize:o,layout:l,requestedAxisSize:o,requestedLayout:ur({itemIds:e.items.map(({id:e})=>e),layout:c}),separatorToItems:f}),e.separators.forEach(e=>{L(!i.has(e.id),`Separator ids must be unique; id "${e.id}" was used more than once`),i.add(e.id),e.element.addEventListener(`keydown`,Yn)}),gr||(gr=!0,Nt(Zt)),hr.get(u)===1&&(u.addEventListener(`contextmenu`,An,!0),u.addEventListener(`dblclick`,Kn,!0),u.addEventListener(`lostpointercapture`,Zn,!0),u.addEventListener(`pointercancel`,Qn,!0),u.addEventListener(`pointerdown`,er,!0),u.addEventListener(`pointerleave`,tr),u.addEventListener(`pointermove`,nr),u.addEventListener(`pointerout`,rr),u.addEventListener(`pointerup`,ir,!0),d?.addEventListener(`blur`,ar),d?.addEventListener(`pagehide`,or)),function(){t=!1,hr.set(u,Math.max(0,(hr.get(u)??0)-1)),yn(e),It(e),e.separators.forEach(e=>{e.element.removeEventListener(`keydown`,Yn)}),hr.get(u)||(u.removeEventListener(`contextmenu`,An,!0),u.removeEventListener(`dblclick`,Kn,!0),u.removeEventListener(`lostpointercapture`,Zn,!0),u.removeEventListener(`pointercancel`,Qn,!0),u.removeEventListener(`pointerdown`,er,!0),u.removeEventListener(`pointerleave`,tr),u.removeEventListener(`pointermove`,nr),u.removeEventListener(`pointerout`,rr),u.removeEventListener(`pointerup`,ir,!0),d?.removeEventListener(`blur`,ar),d?.removeEventListener(`pagehide`,or)),a.disconnect()}}function vr({derivedItemConstraints:e,axis:t,layout:n,prevLayout:r,requestedLayout:i}){let a=t.items.map(({id:e})=>e).join(`,`);t.mutableState.layouts[a]=i,r&&e.forEach(e=>{if(e.collapsible){let i=Y(e.collapsedSize,n[e.itemId]),a=Y(e.collapsedSize,r[e.itemId]);i&&!a&&(t.mutableState.expandedItemSizes[e.itemId]=r[e.itemId])}})}function yr(){let[e,t]=(0,N.useState)({});return[e,(0,N.useCallback)(()=>t({}),[])]}function br(e){let t=(0,N.useRef)({...e});return F(()=>{for(let n in e)t.current[n]=e[n]},[e]),t.current}var xr=(0,N.createContext)(null);function Sr({layout:e,itemConstraints:t,itemId:n,itemIndex:r}){let i,a,o=e[n],s=t.find(e=>e.itemId===n);if(s){let c=s.maxSize,l=s.collapsible?s.collapsedSize:s.minSize,u=[r,r+1];a=Q({layout:En({delta:l-o,initialLayout:e,itemConstraints:t,pivotIndices:u,prevLayout:e}),itemConstraints:t})[n],i=Q({layout:En({delta:c-o,initialLayout:e,itemConstraints:t,pivotIndices:u,prevLayout:e}),itemConstraints:t})[n]}return{valueControls:n,valueMax:i,valueMin:a,valueNow:o}}function Cr({attributes:e,axisId:t,axisOrientation:n,children:r,className:i,"data-testid":a,disableCursor:o,disabled:s,disableDoubleClick:c,elementRef:l,id:u,isSharedHitRegion:d,preview:f,registerSeparator:p,requiredStyle:m,style:h,styleDefaults:g,tabIndex:_=0,updateSeparatorProps:v}){let y=br({disabled:s,disableDoubleClick:c,children:r,className:i,preview:f,style:h}),[b,x]=(0,N.useState)({}),[S,C]=(0,N.useState)(`inactive`),[w,T]=(0,N.useState)(!1),E=(0,N.useRef)(null),D=(0,N.useRef)(null),O=pt(E,l),k=n===`horizontal`?`vertical`:`horizontal`;F(()=>{let e=E.current;if(e!==null){let n={disabled:y.disabled,disableDoubleClick:y.disableDoubleClick,element:e,id:u,get children(){return y.children},get className(){return y.className},get preview(){return y.preview},get style(){return y.style}};D.current=n;let r=p(n),i=Nt(e=>{C(e.next.state!==`inactive`&&e.next.hitRegions.some(e=>e.separator===n||(d?.(e)??!1))?e.next.state:`inactive`)}),a=xn(t,e=>{let{derivedItemConstraints:t,layout:r,separatorToItems:i}=e.next,a=i.get(n);if(a){let n=a[0],i=t.findIndex(e=>e.itemId===n.id),{layoutStrategy:o}=e.axis;x({...Sr({layout:r,itemConstraints:t,itemId:n.id,itemIndex:i}),...o?.getItemAriaControls&&{valueControls:o.getItemAriaControls(n.id)}})}});return()=>{D.current=null,i(),a(),r()}}},[t,u,d,p,y]),F(()=>{let e=D.current;e&&Ft(e)},[f]),(0,N.useEffect)(()=>{v(u,{disabled:s,disableDoubleClick:c})},[s,c,u,v]);let A;s&&!o&&(A=`not-allowed`);let j;if(s)j=`disabled`;else switch(S){case`active`:j=`active`;break;default:j=w?`focus`:S}return(0,P.jsx)(`div`,{...e,"aria-controls":b.valueControls,"aria-disabled":s||void 0,"aria-orientation":k,"aria-valuemax":b.valueMax,"aria-valuemin":b.valueMin,"aria-valuenow":b.valueNow,children:r,className:i,"data-separator":j,"data-testid":a,id:u,onBlur:()=>T(!1),onFocus:()=>T(!0),ref:O,role:`separator`,style:{...g,cursor:A,...h,...m,touchAction:`none`},tabIndex:s?void 0:_})}function wr({axis:e,children:t,className:n,crossSpan:r,crossStart:i,disabled:a,elementRef:o,index:s,style:c}){let l=ft(void 0),{getDisableCursor:u,getResizeAxisId:d,gutters:f,registerSeparator:p,separatorPlacements:m,trackCounts:h,updateSeparatorProps:g}=St(),_=d(e),v=e===`column`?`row`:`column`,y=h[v],b=!!a||!bt(s,h[e]),x=!0;for(let t of m.values())if(t.axis===e&&t.index===s&&!t.disabled&&t.crossStart<i){x=!1;break}let S=(0,N.useCallback)(e=>e.axis.id===_&&e.axis.items.indexOf(e.items[1])===s,[_,s]),C=(0,N.useCallback)(t=>p({axis:e,crossSpan:r,crossStart:i,disabled:!!a,index:s},t),[e,r,i,a,s,p]),w=vt(s),T=yt({crossCount:y,crossSpan:r,crossStart:i,hasGutters:f[v]});return(0,P.jsx)(Cr,{axisId:_,axisOrientation:e===`column`?`horizontal`:`vertical`,className:n,disableCursor:u(),disabled:b,disableDoubleClick:void 0,elementRef:o,id:l,isSharedHitRegion:S,registerSeparator:C,requiredStyle:{gridColumn:e===`column`?w:T,gridRow:e===`row`?w:T},style:c,tabIndex:x?0:-1,updateSeparatorProps:g,children:t})}function Tr(e){let{children:t,className:n,disabled:r,elementRef:i,style:a}=e;return e.type===`column`?(0,P.jsx)(wr,{axis:`column`,className:n,crossSpan:e.rowSpan,crossStart:e.row??0,disabled:r,elementRef:i,index:e.column,style:a,children:t}):(0,P.jsx)(wr,{axis:`row`,className:n,crossSpan:e.columnSpan,crossStart:e.column??0,disabled:r,elementRef:i,index:e.row,style:a,children:t})}Tr.displayName=`Gridline`;var Er=[`column`,`row`],Dr={columns:{},rows:{}};function Or({children:e,className:t,columns:n,defaultLayout:r,disableCursor:i,disabled:a,elementRef:o,gridRef:s,id:c,onLayoutChange:l,onLayoutChanged:u,resizeTargetMinimumSize:d={coarse:20,fine:10},rows:f,style:p,...m}){let h=ft(c),g=(0,N.useCallback)(e=>e===`column`?`${h}:columns`:`${h}:rows`,[h]),_=kr(n,`columns`),v=kr(f,`rows`),y=e=>e===`column`?_:v,b=(0,N.useRef)({onLayoutChange:Dr,onLayoutChanged:Dr}),x=I(e=>{Nr(b.current.onLayoutChange,e)||(b.current.onLayoutChange=e,l?.(e))}),S=I((e,t,n)=>{Nr(b.current.onLayoutChanged,e)||(b.current.onLayoutChanged=e,u?.(e,{isUserInteraction:t,requestedLayout:n}))}),C=(0,N.useRef)(null),w=pt(C,o),[T,E]=yr(),D=(0,N.useRef)({cells:[],column:{expandedItemSizes:{},layouts:{}},loggedErrors:new Set,row:{expandedItemSizes:{},layouts:{}},separators:new Map}),O={column:!1,row:!1};for(let e of D.current.separators.values())O[e.axis]=!0;Ar(e,O);let k=br({defaultLayout:r,disableCursor:i,resizeTargetMinimumSize:d}),A=I(()=>!!k.disableCursor),j=(0,N.useCallback)(e=>{let t=D.current;return t.cells=[...t.cells,e],E(),()=>{t.cells=t.cells.filter(t=>t!==e),E()}},[E]),M=(0,N.useCallback)((e,t)=>{let n=D.current;return n.separators=new Map(n.separators),n.separators.set(t,e),E(),()=>{n.separators=new Map(n.separators),n.separators.delete(t),E()}},[E]),ee=(0,N.useCallback)((e,{disabled:t,disableDoubleClick:n})=>{for(let r of D.current.separators.keys())r.id===e&&(r.disabled=t,r.disableDoubleClick=n)},[]),te=D.current.separators,ne=(0,N.useMemo)(()=>({getDisableCursor:A,getResizeAxisId:g,gutters:{column:O.column,row:O.row},id:h,registerCell:j,registerSeparator:M,separatorPlacements:te,trackCounts:{column:_.length,row:v.length},updateSeparatorProps:ee}),[_.length,A,g,O.column,O.row,h,j,M,v.length,te,ee]),re=(0,N.useRef)([]);F(()=>{let e=C.current;if(e===null)return;let t=D.current,n=Mr({cells:t.cells,separatorPlacements:t.separators,trackCounts:{column:_.length,row:v.length}});n.forEach(e=>{t.loggedErrors.has(e)||console.error(e)}),t.loggedErrors=new Set(n);let r=e=>Array.from(t.separators.entries()).filter(([,t])=>t.axis===e).sort(([,e],[,t])=>e.index-t.index).map(([e])=>e),i=Er.map(n=>{let i=n===`column`?_:v,o=n===`column`?v:_,s=i.map(e=>e.id),c=g(n),l=r(n),u=l.length>0,d=i.map(({id:t,...n},r)=>({element:e,id:s[r],idIsStable:!0,mutableValues:{expandToSize:void 0,prevSize:void 0},onResize:void 0,constraintProps:n})),f=()=>{let r=[];if(u){for(let[e,a]of t.separators)if(a.axis===n&&bt(a.index,i.length)){let t=e.element.getBoundingClientRect();r[a.index]=Math.max(r[a.index]??0,n===`column`?t.width:t.height)}}return kt({axis:n,element:e,gutterSizes:r.filter(e=>e!==void 0),hasGutters:u,layout:K(c)?.layout,trackIds:s})},p,m=k.defaultLayout?.[n===`column`?`columns`:`rows`];if(m!==void 0&&Object.keys(m).length===s.length){p={};for(let e of s){let t=m[e];t!==void 0&&(p[e]=t)}}return{disabled:!!a,element:e,id:c,layoutStrategy:{getItemAriaControls:e=>{let r=s.indexOf(e);return t.cells.filter(e=>{let t=n===`column`?e.column:e.row,i=n===`column`?e.columnSpan:e.rowSpan;return t<=r&&r<t+i}).map(e=>e.element.id).filter(Boolean).join(` `)||void 0},calculateAvailableSize:()=>f().availableSize,calculateHitRegions:({expandHitTargets:e,axis:r,includeDisabled:i})=>Ot({axis:n,cells:t.cells,crossTrackCount:o.length,expandHitTargets:e,resizeAxis:r,axisSize:f().availableSize,includeDisabled:i,separatorPlacements:t.separators}),getItemSizeInPixels:e=>f().trackSizes[s.indexOf(e)]??0},mutableState:{defaultLayout:p,disableCursor:!!k.disableCursor,expandedItemSizes:t[n].expandedItemSizes,layouts:t[n].layouts},orientation:n===`column`?`horizontal`:`vertical`,items:d,resizePreviewMode:`panel`,get resizeTargetMinimumSize(){return k.resizeTargetMinimumSize},separators:l}});re.current=i;let o=i.map(e=>_r(e)),s=()=>{let[e,t]=i.map(e=>K(e.id));if(!(!e||!t||e.defaultLayoutDeferred||t.defaultLayoutDeferred))return{layout:{columns:e.layout,rows:t.layout},requestedLayout:{columns:e.requestedLayout,rows:t.requestedLayout}}};{let e=s();if(e)try{try{x(e.layout)}finally{S(e.layout,!1,e.requestedLayout)}}catch(e){throw re.current=[],o.forEach(e=>e()),e}}let c=i.map(e=>xn(e.id,t=>{let{defaultLayoutDeferred:n,derivedItemConstraints:r,layout:a,requestedLayout:o}=t.next;if(n||r.length===0)return;vr({derivedItemConstraints:r,axis:e,layout:a,prevLayout:t.prev?.layout,requestedLayout:o});let c=s();if(c){let e=B(),n=e.state!==`active`||!e.hitRegions.some(e=>i.includes(e.axis));try{x(c.layout)}finally{n&&S(c.layout,t.isUserInteraction,c.requestedLayout)}}}));return()=>{re.current=[],o.forEach(e=>e()),c.forEach(e=>e())}},[_,a,g,h,S,x,v,T,k]),(0,N.useEffect)(()=>{re.current.forEach(e=>{e.mutableState.defaultLayout=r?.[e.orientation===`horizontal`?`columns`:`rows`],e.mutableState.disableCursor=!!i})}),(0,N.useImperativeHandle)(s,()=>{let e=()=>{let[e,t]=Er.map(g);return!bn(e)||!bn(t)?{columns:{},rows:{}}:{columns:Jn({axisId:e}).getLayout(),rows:Jn({axisId:t}).getLayout()}},t=e=>e.map(e=>`"${e}"`).join(`, `),n=(e,n)=>{let r=g(e),i=()=>{let i=bn(r);return L(i,`Grid "${h}" has not been mounted`),L(i.items.some(e=>e.id===n),`Grid "${h}" no longer contains a ${e} with id "${n}"; ${e} ids are ${t(i.items.map(e=>e.id))}`),Gn({axisId:r,itemId:n})};return{collapse:()=>i().collapse(),expand:()=>i().expand(),getSize:()=>i().getSize(),isCollapsed:()=>i().isCollapsed(),resize:e=>i().resize(e)}};return{getLayout:e,getTrackById:(e,r)=>{let i=e===`column`?_:v,a=`${r}`;return L(i.some(e=>e.id===a),`Grid "${h}" does not contain a ${e} with id "${a}"; ${e} ids are ${t(i.map(e=>e.id))}`),n(e,a)},getTrackByIndex:(e,t)=>{let r=e===`column`?_:v,i=Number.isInteger(t)?r[t]:void 0;return L(i,`Grid "${h}" does not contain a ${e} at index ${t}; it has ${r.length} ${e}s`),n(e,i.id)},setLayout:t=>(Er.forEach(e=>{let n=t[e===`column`?`columns`:`rows`],r=g(e);n&&bn(r)&&Jn({axisId:r}).setLayout(n)}),e())}},[_,g,h,v]);let ie=()=>Er.map(e=>{let t=K(g(e)),n=y(e);return(t&&!t.defaultLayoutDeferred?n.map(e=>`minmax(0, ${t.layout[e.id]??1}fr)`):jr(n,r?.[e===`column`?`columns`:`rows`])).join(O[e]?` auto `:` `)}).join(`|`),[ae,oe]=(0,N.useSyncExternalStore)((0,N.useCallback)(e=>{let t=Er.map(t=>xn(g(t),e));return()=>t.forEach(e=>e())},[g]),ie,ie).split(`|`);return(0,P.jsx)(xt.Provider,{value:ne,children:(0,P.jsx)(`div`,{...m,className:t,"data-grid":!0,"data-testid":mt(m,c),id:h,ref:w,style:{height:`100%`,width:`100%`,overflow:`hidden`,...p,display:`grid`,gridTemplateColumns:ae,gridTemplateRows:oe,touchAction:`none`},children:(0,P.jsx)(xr.Provider,{value:null,children:e})})})}Or.displayName=`Grid`;function kr(e,t){let n=JSON.stringify(e);return(0,N.useMemo)(()=>{let r=typeof e==`number`?Array.from({length:e},(e,t)=>({id:`${t}`})):e.map((e,t)=>({...e,id:`${e.id??t}`}));return L(r.length>0,`Grid must have at least one track; "${t}" is ${n}`),r},[n])}function Ar(e,t){N.Children.forEach(e,e=>{if((0,N.isValidElement)(e))if(e.type===Tr){let{type:n}=e.props;n===`column`?t.column=!0:n===`row`&&(t.row=!0)}else typeof e.type==`symbol`&&e.props!==null&&typeof e.props==`object`&&`children`in e.props&&Ar(e.props.children,t)})}function jr(e,t){if(t)return e.map(e=>`minmax(0, ${t[e.id]??1}fr)`);let n=e.map(e=>e.defaultSize===void 0?void 0:At(e.defaultSize)),r=100,i=0;return n.forEach(e=>{e===void 0?i++:e[1]===`%`&&(r-=e[0])}),n.map(e=>{if(e===void 0)return`minmax(0, ${Math.max(0,r)/Math.max(1,i)}fr)`;let[t,n]=e;return n===`%`?`minmax(0, ${t}fr)`:`${t}${n}`})}function Mr({cells:e,separatorPlacements:t,trackCounts:n}){let r=[];for(let t of e)Er.forEach(e=>{let[i,a]=e===`column`?[t.column,t.columnSpan]:[t.row,t.rowSpan],o=n[e];(!Number.isInteger(i)||!Number.isInteger(a)||i<0||a<1||i+a>o)&&r.push(`Invalid Cell ${e} placement (${e}: ${i}, ${e}Span: ${a}); Grid has ${o} ${e}s`)});let i=({axis:e,crossSpan:t,crossStart:n,disabled:r,index:i})=>{let a=e===`column`?`row`:`column`,o=`type="${e}" ${e}={${i}}`;return(n!==0||t!==void 0)&&(o+=` ${a}={${n}}`),t!==void 0&&(o+=` ${a}Span={${t}}`),r&&(o+=` disabled`),`<Gridline ${o} />`},a=Array.from(t.values()).filter(e=>{let{axis:t,crossSpan:i,crossStart:a,index:o}=e,s=t===`column`?`row`:`column`,c=n[t],l=n[s],u=!0;return bt(o,c)||(r.push(`Invalid ${t} Gridline ${t} (${o}); must be between 1 and ${c-1}`),u=!1),!Number.isInteger(a)||a<0||a>=l?(r.push(`Invalid ${t} Gridline ${s} (${a}); must be between 0 and ${l-1}`),u=!1):i!==void 0&&(!Number.isInteger(i)||i<1||a+i>l)&&(r.push(`Invalid ${t} Gridline ${s}Span (${i}); Grid has ${l} ${s}s`),u=!1),u}),o=e=>{let t=n[e.axis===`column`?`row`:`column`];return[e.crossStart,e.crossSpan===void 0?t:e.crossStart+e.crossSpan]};return a.forEach((t,n)=>{let{axis:s,index:c}=t,[l,u]=o(t);for(let n of e){let[e,a,o,d]=s===`column`?[n.column,n.columnSpan,n.row,n.rowSpan]:[n.row,n.rowSpan,n.column,n.columnSpan];if(e<c&&c<e+a&&o<u&&l<o+d){let n=s===`column`?`row`:`column`;r.push(`${i(t)} overlaps a Cell that spans across it (${s}: ${e}, ${s}Span: ${a}, ${n}: ${o}, ${n}Span: ${d}); use the ${n} and ${n}Span props to render gridlines beside the Cell instead`)}}for(let e of a.slice(n+1))if(e.axis===s&&e.index===c){let[n,a]=o(e);n<u&&l<a&&r.push(`${i(t)} overlaps ${i(e)}`)}}),r}function Nr(e,t){return Z(e.columns,t.columns)&&Z(e.rows,t.rows)}function Pr(e){for(let t=1;t<e.length;t++)if(Qt(e[t-1],e[t])>0)return!1;return!0}function Fr({separator:e}){let{element:t}=e,n=(0,N.useRef)(null);return F(()=>{let e=t.cloneNode(!0),r=[t,...t.querySelectorAll(`*`)],i=[e,...e.querySelectorAll(`*`)],a=t.ownerDocument.defaultView;return r.forEach((e,t)=>{let n=i[t];if(n instanceof a.HTMLElement||n instanceof a.SVGElement){let t=a.getComputedStyle(e);for(let e=0;e<t.length;e++){let r=t.item(e);n.style.setProperty(r,t.getPropertyValue(r))}}n.removeAttribute(`data-testid`),n.removeAttribute(`id`)}),Object.assign(e.style,{boxSizing:`border-box`,height:`100%`,margin:`0`,position:`static`,transform:`none`,width:`100%`}),n.current.appendChild(e),()=>e.remove()},[t]),(0,P.jsx)(`div`,{ref:n,style:{height:`100%`,opacity:.65,pointerEvents:`none`,width:`100%`}})}function Ir(){let e=(0,N.useContext)(xr);return L(e,`Group Context not found; did you render a Panel or Separator outside of a Group?`),e}function Lr(e){let{registerOverlay:t}=Ir(),n=(0,N.useRef)(e);fr(n.current,e)||(n.current=e);let r=n.current;return F(()=>t(r),[t,r]),null}Lr.displayName=`SeparatorOverlay`;function Rr({active:e,orientation:t,style:n,...r}){let i;switch(t){case`horizontal`:i={height:`100%`,minWidth:`1px`};break;case`vertical`:i={minHeight:`1px`,width:`100%`};break}return(0,P.jsx)(`div`,{...r,"data-separator-overlay":e?`active`:`inactive`,style:{...i,...n,flexShrink:0,pointerEvents:`none`}})}function zr({overlay:e,preview:t}){let{axis:n,offset:r,rect:i,separator:a}=t,o=n.orientation===`horizontal`,s=a?.preview,c=e;return(0,N.isValidElement)(s)&&s.type===Lr&&(c=s.props,s=void 0),s??(c?s=(0,P.jsx)(Rr,{...c,active:t.active,orientation:n.orientation}):a&&(s=(0,P.jsx)(Fr,{separator:a}))),(0,P.jsx)(`div`,{"aria-hidden":`true`,"data-resize-preview":!0,inert:!0,style:{height:i.height,left:i.left,pointerEvents:`none`,position:`absolute`,top:i.top,transform:o?`translateX(${r}px)`:`translateY(${r}px)`,width:i.width},children:s})}function Br(e){return Array.from(e).sort(Qt)}function Vr(e,t){let n=(0,N.useRef)({getLayout:()=>({}),setLayout:Lt});(0,N.useImperativeHandle)(t,()=>n.current,[]),F(()=>{Object.assign(n.current,Jn({axisId:e}))})}function Hr({groupId:e,resizePreviewMode:t}){let[n,r]=(0,N.useState)([]),i=(0,N.useRef)(n);return F(()=>{let n=n=>{let a=bn(e),o=t===`separator`&&n.state===`active`?n.previews.filter(e=>e.axis===a&&(e.active||!Y(e.offset,0))):[],s=i.current;s.length===o.length&&o.every((e,t)=>e===s[t])||(i.current=o,r(o))};if(t!==`separator`){n(B());return}let a=Nt(({next:e})=>n(e));return n(B()),a},[e,t]),n}function Ur({children:e,className:t,defaultLayout:n,disableCursor:r,disabled:i,elementRef:a,groupRef:o,id:s,onLayoutChange:c,onLayoutChanged:l,orientation:u=`horizontal`,resizePreviewMode:d=`panel`,resizeTargetMinimumSize:f={coarse:20,fine:10},style:p,...m}){let h=(0,N.useRef)({onLayoutChange:{},onLayoutChanged:{}}),g=I(e=>{Z(h.current.onLayoutChange,e)||(h.current.onLayoutChange=e,c?.(e))}),_=I((e,t,n)=>{Z(h.current.onLayoutChanged,e)||(h.current.onLayoutChanged=e,l?.(e,{isUserInteraction:t,requestedLayout:n}))}),v=ft(s),[y,b]=(0,N.useState)(),x=Hr({groupId:v,resizePreviewMode:d}),S=(0,N.useRef)(null),[C,w]=yr(),T=(0,N.useRef)([]),E=(0,N.useRef)({lastExpandedPanelSizes:{},layouts:{},panels:[],separators:[]}),D=pt(S,a);Vr(v,o);let O=I((e,t)=>{let r=K(e);if(r)return{flexGrow:r.layout[t]??1};if(n?.[t])return{flexGrow:n?.[t]}}),k=br({defaultLayout:n,disableCursor:r,resizeTargetMinimumSize:f}),A=(0,N.useMemo)(()=>({get disableCursor(){return!!k.disableCursor},getPanelStyles:O,id:v,orientation:u,registerPanel:e=>{let t=E.current;return t.panels=$t(u,[...t.panels,e]),w(),()=>{t.panels=t.panels.filter(t=>t!==e),w()}},registerOverlay:e=>(b(e),()=>{b(void 0)}),registerSeparator:e=>{let t=E.current;return t.separators=$t(u,[...t.separators,e]),w(),()=>{t.separators=t.separators.filter(t=>t!==e),w()}},updatePanelProps:(e,{disabled:t})=>{let n=E.current.panels.find(t=>t.id===e);n&&(n.constraintProps.disabled=t);let r=bn(v),i=K(v);r&&i&&J(r,{...i,derivedItemConstraints:dn(r)})},updateSeparatorProps:(e,{disabled:t,disableDoubleClick:n})=>{let r=E.current.separators.find(t=>t.id===e);r&&(r.disabled=t,r.disableDoubleClick=n)}}),[O,v,w,u,k]),j=(0,N.useRef)(null);return F(()=>{let e=S.current;if(e===null)return;let t=E.current;t.panels=$t(u,t.panels),t.separators=$t(u,t.separators),T.current=Br([...t.panels.map(({element:e})=>e),...t.separators.map(({element:e})=>e)]);let n;if(k.defaultLayout!==void 0&&Object.keys(k.defaultLayout).length===t.panels.length){n={};for(let e of t.panels){let t=k.defaultLayout[e.id];t!==void 0&&(n[e.id]=t)}}let r={disabled:!!i,element:e,id:v,mutableState:{defaultLayout:n,disableCursor:!!k.disableCursor,expandedItemSizes:E.current.lastExpandedPanelSizes,layouts:E.current.layouts},orientation:u,items:t.panels,resizePreviewMode:d,get resizeTargetMinimumSize(){return k.resizeTargetMinimumSize},separators:t.separators};j.current=r;let a=_r(r),{defaultLayoutDeferred:o,derivedItemConstraints:s,layout:c,requestedLayout:l}=K(r.id,!0);if(!o&&s.length>0)try{try{g(c)}finally{_(c,!1,l)}}catch(e){throw j.current=null,a(),e}let f=xn(v,e=>{let{defaultLayoutDeferred:t,derivedItemConstraints:n,layout:i,requestedLayout:a}=e.next;if(t||n.length===0)return;vr({derivedItemConstraints:n,axis:r,layout:i,prevLayout:e.prev?.layout,requestedLayout:a});let o=B(),s=o.state!==`active`||!o.hitRegions.some(e=>e.axis===r);try{g(i)}finally{s&&_(i,e.isUserInteraction,a)}});return()=>{j.current=null,a(),f()}},[i,v,_,g,u,C,d,k]),F(()=>{Pr(T.current)||w()}),(0,N.useEffect)(()=>{let e=j.current;e&&(e.mutableState.defaultLayout=n,e.mutableState.disableCursor=!!r)}),(0,P.jsx)(xr.Provider,{value:A,children:(0,P.jsxs)(`div`,{...m,className:t,"data-group":!0,"data-testid":mt(m,s),id:v,ref:D,style:{height:`100%`,width:`100%`,overflow:`hidden`,position:d===`separator`?`relative`:void 0,...p,display:`flex`,flexDirection:u===`horizontal`?`row`:`column`,flexWrap:`nowrap`,touchAction:u===`horizontal`?`pan-y`:`pan-x`},children:[e,x.map(e=>(0,P.jsx)(zr,{overlay:y,preview:e},e.key))]})})}Ur.displayName=`Group`;function Wr(e,t){return`react-resizable-panels:${[e,...t].join(`:`)}`}function Gr({id:e,panelIds:t,storage:n}){let r=Wr(e,[]),i=n.getItem(r);if(i)try{let e=JSON.parse(i);if(t){let n=e[t.join(`,`)];if(n&&Array.isArray(n.layout)&&t.length===n.layout.length){let e={};for(let r=0;r<t.length;r++)e[t[r]]=n.layout[r];return e}}else{let t=Object.keys(e);if(t.length===1){let n=e[t[0]];if(n&&Array.isArray(n.layout)){let e=t[0].split(`,`);if(e.length===n.layout.length){let t={};for(let r=0;r<e.length;r++)t[e[r]]=n.layout[r];return t}}}}}catch{}}function Kr({debounceSaveMs:e=100,onlySaveAfterUserInteractions:t,panelIds:n,storage:r=localStorage,...i}){let a=n!==void 0,o=`id`in i?i.id:i.groupId,s=Wr(o,n??[]),c=(0,N.useSyncExternalStore)(qr,()=>r.getItem(s),()=>r.getItem(s)),l=(0,N.useMemo)(()=>{if(c){let e=JSON.parse(c),t=Object.values(e);if(Array.from(t).every(e=>typeof e==`number`))return e}},[c]),u=(0,N.useMemo)(()=>{if(!l)return Gr({id:o,panelIds:n,storage:r})},[l,o,n,r]),d=l??u,f=(0,N.useRef)(null),p=(0,N.useCallback)(()=>{let e=f.current;e&&(f.current=null,clearTimeout(e))},[]);(0,N.useLayoutEffect)(()=>()=>{p()},[p]);let m=(0,N.useCallback)((e,n)=>{if(t&&!n.isUserInteraction)return;p();let i=n.requestedLayout??e,s;s=a?Wr(o,Object.keys(i)):Wr(o,[]);try{r.setItem(s,JSON.stringify(i))}catch(e){console.error(e)}},[p,a,o,t,r]);return{defaultLayout:d,onLayoutChange:(0,N.useCallback)(t=>{p(),e===0?m(t,{isUserInteraction:!1}):f.current=setTimeout(()=>{m(t,{isUserInteraction:!1})},e)},[p,e,m]),onLayoutChanged:m}}function qr(){return function(){}}function Jr(e,t){let{id:n}=Ir(),r=(0,N.useRef)({collapse:Rt,expand:Rt,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:Rt});(0,N.useImperativeHandle)(t,()=>r.current,[]),F(()=>{Object.assign(r.current,Gn({axisId:n,itemId:e}))})}function Yr({children:e,className:t,collapsedSize:n=`0%`,collapsedThreshold:r,collapsible:i=!1,defaultSize:a,disabled:o,elementRef:s,groupResizeBehavior:c=`preserve-relative-size`,id:l,maxSize:u=`100%`,minSize:d=`0%`,onResize:f,panelRef:p,style:m,...h}){let g=dt(l),_=ft(l),v=br({disabled:o}),y=(0,N.useRef)(null),b=pt(y,s),{getPanelStyles:x,id:S,orientation:C,registerPanel:w,updatePanelProps:T}=Ir(),E=f!==null,D=I((e,t,n)=>{f?.(e,l,n)});F(()=>{let e=y.current;if(e!==null)return w({element:e,id:_,idIsStable:g,mutableValues:{expandToSize:void 0,prevSize:void 0},onResize:E?D:void 0,constraintProps:{groupResizeBehavior:c,collapsedSize:n,collapsedThreshold:r,collapsible:i,defaultSize:a,disabled:v.disabled,maxSize:u,minSize:d}})},[c,n,r,i,a,E,_,g,u,d,D,w,v]),(0,N.useEffect)(()=>{T(_,{disabled:o})},[o,_,T]),Jr(_,p);let O=()=>{let e=x(S,_);if(e)return JSON.stringify(e)},k=(0,N.useSyncExternalStore)(e=>xn(S,e),O,O),A;return A=k?JSON.parse(k):a===void 0?{flexGrow:1}:{flexGrow:void 0,flexShrink:void 0,flexBasis:a},(0,P.jsx)(`div`,{...h,"data-disabled":o||void 0,"data-panel":!0,"data-testid":mt(h,l),id:_,ref:b,style:{...Xr,display:`flex`,flexBasis:0,flexShrink:1,overflow:`visible`,...A},children:(0,P.jsx)(`div`,{className:t,style:{maxHeight:`100%`,maxWidth:`100%`,flexGrow:1,overflow:`auto`,...m,touchAction:C===`horizontal`?`pan-y`:`pan-x`},children:e})})}Yr.displayName=`Panel`;var Xr={minHeight:0,maxHeight:`100%`,height:`auto`,minWidth:0,maxWidth:`100%`,width:`auto`,border:`none`,borderWidth:0,padding:0,margin:0};function Zr(){return(0,N.useRef)(null)}var Qr={flexBasis:`auto`},$r={flexGrow:0,flexShrink:0};function ei({children:e,className:t,disabled:n,disableDoubleClick:r,elementRef:i,id:a,preview:o,style:s,...c}){let l=ft(a),{disableCursor:u,id:d,orientation:f,registerSeparator:p,updateSeparatorProps:m}=Ir();return(0,P.jsx)(Cr,{attributes:c,axisId:d,axisOrientation:f,className:t,"data-testid":mt(c,a),disableCursor:u,disabled:n,disableDoubleClick:r,elementRef:i,id:l,preview:o,registerSeparator:p,requiredStyle:$r,style:s,styleDefaults:Qr,updateSeparatorProps:m,children:e})}ei.displayName=`Separator`;function ti({className:e,...t}){return(0,P.jsx)(Ur,{"data-slot":`resizable-panel-group`,className:M(`flex h-full w-full aria-[orientation=vertical]:flex-col`,e),...t})}function ni({...e}){return(0,P.jsx)(Yr,{"data-slot":`resizable-panel`,...e})}function ri({withHandle:e,className:t,...n}){return(0,P.jsx)(ei,{"data-slot":`resizable-handle`,className:M(`relative flex w-px items-center justify-center bg-border ring-offset-background after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-ring focus-visible:outline-hidden aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:after:left-0 aria-[orientation=horizontal]:after:h-1 aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:translate-x-0 aria-[orientation=horizontal]:after:-translate-y-1/2 [&[aria-orientation=horizontal]>div]:rotate-90`,t),...n,children:e&&(0,P.jsx)(`div`,{className:`z-10 flex h-6 w-1 shrink-0 rounded-lg bg-border`})})}var ii=`(min-width: 64rem)`,ai=`]`;function oi(){let[e,t]=(0,N.useState)(()=>matchMedia(ii).matches);return(0,N.useEffect)(()=>{let e=matchMedia(ii),n=()=>t(e.matches);return e.addEventListener(`change`,n),()=>e.removeEventListener(`change`,n)},[]),e}function si(e){return e instanceof HTMLElement&&(e.isContentEditable||[`INPUT`,`TEXTAREA`,`SELECT`].includes(e.tagName))}function ci(){let e=Zr(),[t,n]=(0,N.useState)(!1),r=(0,N.useCallback)(()=>{let t=e.current;t&&(t.isCollapsed()?t.expand():t.collapse())},[e]),i=(0,N.useCallback)(()=>{e.current?.isCollapsed()&&e.current.expand()},[e]);return(0,N.useEffect)(()=>{let e=e=>{e.key!==ai||e.metaKey||e.ctrlKey||e.altKey||si(e.target)||(e.preventDefault(),r())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[r]),{panelRef:e,collapsed:t,setCollapsed:n,toggle:r,expand:i}}function li({panel:e}){let t=e.collapsed?`Show inspector`:`Hide inspector`,n=e.collapsed?ze:Re;return(0,P.jsxs)(de,{children:[(0,P.jsx)(le,{render:(0,P.jsx)(D,{size:`icon-sm`,variant:`ghost`,"aria-label":t,"aria-pressed":!e.collapsed,className:`max-lg:hidden`,onClick:e.toggle}),children:(0,P.jsx)(n,{className:`size-4`,"aria-hidden":!0})}),(0,P.jsxs)(ue,{children:[t,` `,(0,P.jsx)(`kbd`,{className:`ml-1 font-mono text-[10px] text-muted-foreground`,children:ai})]})]})}function ui({panel:e,canvas:t,inspector:n}){let r=oi(),i=Kr({id:`miravo:floor-split`,storage:localStorage});return r?(0,P.jsxs)(ti,{id:`floor-split`,className:`min-h-0 flex-1`,defaultLayout:i.defaultLayout,onLayoutChanged:i.onLayoutChanged,children:[(0,P.jsx)(ni,{id:`canvas`,minSize:`40`,className:`grid overflow-hidden!`,children:t}),(0,P.jsx)(ri,{disableDoubleClick:!0,onDoubleClick:e.toggle,className:`w-px bg-border/50 transition-colors after:w-2 hover:bg-primary/40 data-[separator=active]:bg-primary/60`}),(0,P.jsx)(ni,{id:`inspector`,panelRef:e.panelRef,defaultSize:368,minSize:288,maxSize:640,collapsible:!0,onResize:t=>e.setCollapsed(t.inPixels===0),className:`flex flex-col`,children:n})]}):(0,P.jsxs)(`div`,{className:`grid min-w-0 flex-1 grid-cols-[minmax(0,1fr)] grid-rows-[clamp(18rem,68vw,34rem)_auto]`,children:[t,n]})}var di=[[`station`,`Stations`,`flow order`],[`utility`,`Utilities`,`shared services`]];function fi({things:e,line:t,onSelect:n}){let r=l(e=>e.assets),i=new Map(r.map(e=>[e.id,e.activeFaults.length])),a=new Map(t?.stations.map(e=>[e.id,e])),o=t?.stations.at(-1)?.good??0,s=t?.stations.reduce((e,t)=>e+t.scrap,0)??0,c=e.filter(e=>(i.get(e.assetId)??0)>0).length;return(0,P.jsxs)(P.Fragment,{children:[(0,P.jsxs)(`div`,{className:`grid grid-cols-3 gap-3 px-4 pt-4 pb-5`,children:[(0,P.jsx)(_e,{label:`Shipped`,value:O(o)}),(0,P.jsx)(_e,{label:`Yield`,value:o+s>0?`${(o/(o+s)*100).toFixed(1)}%`:`–`}),(0,P.jsx)(_e,{label:`Faulted`,value:String(c)})]}),di.map(([t,r,o])=>(0,P.jsx)(pe,{title:r,note:o,children:(0,P.jsx)(`ul`,{className:`-mx-2 flex flex-col`,children:e.filter(e=>e.kind===t).map(e=>{let t=a.get(e.assetId),r=(i.get(e.assetId)??0)>0;return(0,P.jsx)(me,{tone:e.kind===`utility`?r?`fault`:`live`:he(t?.state,r),name:e.name,note:r?`fault`:t?`${fe(t.state)} · ${O(t.good)}`:e.assetId,onSelect:()=>n(e.key)},e.key)})})},t))]})}var pi=[1,2,5,10];function mi({speed:e}){let t=l(e=>e.engineState),n=se(),r=t===`paused`,i=pi.includes(e),a=t=>{t!==e&&n.mutateAsync({type:`setSpeed`,multiplier:t}).then(()=>d.invalidateQueries({queryKey:c.floor.state()})).catch(()=>{})};return(0,P.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,P.jsxs)(D,{size:`sm`,variant:`outline`,disabled:n.isPending||t!==`running`&&!r,onClick:()=>n.mutate({type:r?`resume`:`pause`}),className:`w-24 gap-1.5`,children:[r?(0,P.jsx)(oe,{className:`size-3.5`,"aria-hidden":!0}):(0,P.jsx)(ae,{className:`size-3.5`,"aria-hidden":!0}),r?`Resume`:`Pause`]}),(0,P.jsxs)(`fieldset`,{"aria-label":`Simulation speed`,className:`flex h-8 items-center gap-0.5 rounded-[var(--miravo-radius-stadium-sm)] border border-border/70 p-0.5`,children:[pi.map(t=>(0,P.jsx)(hi,{value:t,active:t===e,onSelect:a},t)),i?null:(0,P.jsx)(hi,{value:e,active:!0,onSelect:a})]})]})}function hi({value:e,active:t,onSelect:n}){return(0,P.jsxs)(`button`,{type:`button`,"aria-pressed":t,onClick:()=>n(e),className:M(`h-full min-w-9 rounded-[var(--miravo-radius-tight)] px-2 font-mono text-[11px] tabular-nums outline-none transition-colors`,`text-muted-foreground hover:bg-muted/50 hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring`,t&&`bg-secondary text-foreground`),children:[e,`×`]})}var gi=1500;function _i(e,t){return e?.find(e=>e.stations.some(e=>t.has(e.id)))}function vi(e){let t=S({queryKey:c.floor.state(),queryFn:()=>s(`/state`,i.state),refetchInterval:gi}),n=Fe({queries:e.assetIds.map(e=>({queryKey:c.assets.detail(e),queryFn:()=>s(`/assets/${e}`,i.assetDetail),staleTime:1/0}))}),r=(0,N.useMemo)(()=>new Set(e.assetIds),[e.assetIds]),a=_i(t.data?.lines,r),o=(0,N.useRef)({line:a,speed:t.data?.config.timeMultiplier,details:n});o.current={line:a,speed:t.data?.config.timeMultiplier,details:n};let u=(0,N.useMemo)(()=>{let e=(e,t)=>{let n=l.getState().memberValues.get(e)?.get(t)?.value;return n===void 0?(o.current.details.find(t=>t.data?.id===e)?.data)?.members[t]?.value??void 0:n};return{num(t,n,r=0){let i=e(t,n);return typeof i==`number`?i:typeof i==`boolean`?Number(i):r},param(e,t,n=0){let r=o.current.details.find(t=>t.data?.id===e)?.data?.parameters[t]?.value;return typeof r==`number`?r:n},text(t,n){let r=e(t,n);return typeof r==`string`?r:void 0},station(t){let n=o.current.line?.stations.find(e=>e.id===t);if(!n)return;let r=e(t,`state_label`),i=e(t,`good_count`),a=e(t,`scrap_count`);return{state:typeof r==`string`?r:n.state,good:typeof i==`number`?Math.max(i,n.good):n.good,scrap:typeof a==`number`?Math.max(a,n.scrap):n.scrap}},buffers(){return o.current.line?.buffers??[]},faults(e){return l.getState().assets.find(t=>t.id===e)?.activeFaults??[]},engineState(){return l.getState().engineState},simSpeed(){return o.current.speed??l.getState().speedMultiplier},simTime(){return l.getState().simulationTime}}},[]),d=l(e=>e.speedMultiplier);return{feed:u,line:a,speed:t.data?.config.timeMultiplier??d}}var yi={running:`bg-success`,paused:`bg-warning`,stopped:`bg-destructive`},bi=500;function xi({title:e,body:t}){return(0,P.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-3 p-8 text-center`,children:[(0,P.jsx)(te,{className:`size-6 text-muted-foreground`,"aria-hidden":!0}),(0,P.jsx)(`h1`,{className:`font-heading text-lg font-medium tracking-tight`,children:e}),(0,P.jsx)(`p`,{className:`max-w-sm text-sm text-muted-foreground`,children:t}),(0,P.jsx)(E,{to:`/`,className:A({size:`sm`,variant:`outline`}),children:`Back to Factory`})]})}function Si(){let{templateId:e=``}=T(),t=l(t=>t.templates.find(t=>t.templateId===e));return ne(e)?t?(0,P.jsx)(Ci,{template:t,entry:(0,N.use)(re(e))}):(0,P.jsx)(xi,{title:`Template not running`,body:`Load it from the Catalog, then open its floor from the Factory page.`}):(0,P.jsx)(xi,{title:`No floor for this template`,body:`Only templates with a hand-placed layout have a floor view.`})}function Ci({template:e,entry:t}){let{feed:n,line:r,speed:i}=vi(e),a=l(e=>e.assets),o=l(e=>e.engineState),s=t.resolve({template:e,assets:a,line:r}),c=s.status===`ready`?JSON.stringify(s.ids):``,u=(0,N.useMemo)(()=>c?JSON.parse(c):null,[c]),d=(0,N.useMemo)(()=>u?t.things(u):[],[t,u]),[f,p]=w(`asset`),[m,h]=(0,N.useState)(`inspect`),[g,_]=(0,N.useState)(null),v=d.find(e=>e.key===f)??null,[,y]=(0,N.useState)(0),b=v===null;(0,N.useEffect)(()=>{if(!b)return;let e=setInterval(()=>y(e=>e+1),bi);return()=>clearInterval(e)},[b]);let x=e=>{p(e),h(`inspect`)},S=(0,N.useRef)(null),C=ci();return(0,P.jsxs)(`div`,{className:`flex min-h-full flex-col lg:h-full lg:min-h-0`,children:[(0,P.jsxs)(`header`,{className:`flex flex-wrap items-center justify-between gap-x-4 gap-y-3 border-b border-border/50 px-4 py-3 sm:px-5`,children:[(0,P.jsxs)(`nav`,{"aria-label":`Breadcrumb`,className:`flex min-w-0 items-center gap-2.5`,children:[(0,P.jsxs)(E,{to:`/#template-${e.templateId}`,className:`group/back -mx-1.5 inline-flex shrink-0 items-center gap-1.5 rounded-[var(--miravo-radius-tight)] px-1.5 py-1 text-sm text-muted-foreground outline-none transition-colors hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring`,children:[(0,P.jsx)(Ie,{className:`size-3.5 transition-transform group-hover/back:-translate-x-0.5`,"aria-hidden":!0}),`Factory`]}),(0,P.jsx)(`span`,{"aria-hidden":!0,className:`text-sm text-muted-foreground/40`,children:`/`}),(0,P.jsx)(`h1`,{"aria-current":`page`,title:e.templateId,className:`truncate font-heading text-base font-medium tracking-tight`,children:e.templateName}),(0,P.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1.5 pl-1 max-sm:hidden`,children:[(0,P.jsx)(`span`,{"aria-hidden":!0,className:M(`size-1.5 rounded-full`,yi[o]??`bg-muted-foreground/50`)}),(0,P.jsx)(`span`,{className:`text-[10px] uppercase tracking-[0.14em] text-muted-foreground`,children:o})]})]}),(0,P.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,P.jsx)(mi,{speed:i}),u!==null&&(0,P.jsx)(li,{panel:C})]})]}),u===null?s.status===`pending`?(0,P.jsx)(`div`,{className:`flex-1`}):(0,P.jsx)(xi,{title:`Layout does not match`,body:t.mismatch}):(0,P.jsx)(ui,{panel:C,canvas:(0,P.jsx)(ot,{layout:t.layout,ids:u,caption:t.caption,feed:n,things:d,selected:v?.key??null,onSelect:e=>{x(e),e&&(C.expand(),matchMedia(`(max-width: 63.999rem)`).matches&&S.current?.scrollIntoView({behavior:`smooth`,block:`start`}))},onRuntime:_}),inspector:(0,P.jsx)(`aside`,{ref:S,className:`flex min-w-0 flex-1 scroll-mt-2 flex-col border-border/50 border-t lg:min-h-0 lg:border-t-0`,children:(0,P.jsxs)(xe,{value:m,onValueChange:e=>h(e),className:`flex flex-1 flex-col gap-0 lg:min-h-0`,children:[(0,P.jsxs)(be,{variant:`line`,className:`sticky top-0 z-10 h-10! w-full shrink-0 justify-start gap-0.5 border-b border-border/50 bg-background px-3 lg:static`,children:[(0,P.jsx)(ve,{value:`inspect`,className:`px-2.5 text-xs`,children:v?`Inspector`:t.tab??`Line`}),(0,P.jsx)(ve,{value:`activity`,className:`px-2.5 text-xs`,children:`Activity`})]}),(0,P.jsx)(ye,{value:`inspect`,className:`flex-1 lg:min-h-0 lg:overflow-y-auto`,children:v===null?t.Overview?(0,P.jsx)(t.Overview,{things:d,status:e=>g?.status(e)??[`--`,``],onSelect:e=>x(e)}):(0,P.jsx)(fi,{things:d,line:r,onSelect:e=>x(e)}):(0,P.jsx)(ge,{thing:v,assetId:v.assetId,line:r,basis:t.statusBasis,onBack:()=>x(null)},v.key)}),(0,P.jsx)(ye,{value:`activity`,className:`flex-1 lg:min-h-0 lg:overflow-y-auto`,children:(0,P.jsx)(ut,{assetIds:new Set(e.assetIds),nameOf:e=>d.find(t=>t.assetId===e)?.name??e,onSelect:e=>x(e)})})]})})})]})}export{Si as FloorPage};
|
|
1
|
+
import{a as e}from"./rolldown-runtime-COnpUsM8.js";import{c as t}from"./vendor-charts-95ykyDlI.js";import{ot as n}from"./vendor-ui-D8j69UH4.js";import{Pt as r,S as i,jt as a,kt as o,o as s,v as c,vt as l,wt as u,y as d,zt as f}from"./api-CtMmjN9m.js";import{a as p,c as m,f as h,i as g,l as _,o as v,p as y,r as b,s as x,t as S,u as C}from"./useQuery-Dxp3WSXF.js";import{i as w}from"./dist-xY0pK9Wy.js";import{l as T,n as E}from"./chunk-OE4NN4TA-DBWZidbW.js";import{C as D,d as O,g as k,w as A}from"./format-Bx7DF-TB.js";import{n as j,t as M}from"./utils-XFKvwlFT.js";import{t as ee}from"./arrow-up-right-CwPw_2U1.js";import{i as te,n as ne,r as re}from"./registry-BKilgP4M.js";import{t as ie}from"./minus-CaT9UaQx.js";import{t as ae}from"./pause-CqW7v5Dc.js";import{l as oe,t as se}from"./use-engine-command-mutation-5q_LI_xT.js";import{t as ce}from"./plus-Cl4Ay5Ry.js";import{i as le,n as ue,t as de}from"./tooltip-B3vOB1Vu.js";import{a as fe,i as pe,n as me,o as he,r as ge,t as _e}from"./status-kit-eQF95zN0.js";import{i as ve,n as ye,r as be,t as xe}from"./tabs-Ch_VG8_S.js";import{a as Se,c as Ce,i as we,o as Te,t as Ee}from"./events-format-C5HTkIsC.js";import{I as De,i as Oe,n as ke,r as Ae,u as je}from"./dom-CQuChC3G.js";function Me(e,t){let n=new Set(t);return e.filter(e=>!n.has(e))}function Ne(e,t,n){let r=e.slice(0);return r[t]=n,r}var Pe=class extends f{#e;#t;#n;#r;#i;#a;#o;#s;#c;#l=[];constructor(e,t,n){super(),this.#e=e,this.#r=n,this.#n=[],this.#i=[],this.#t=[],this.setQueries(t)}onSubscribe(){this.listeners.size===1&&this.#i.forEach(e=>{e.subscribe(t=>{this.#p(e,t)})})}onUnsubscribe(){this.listeners.size||this.destroy()}destroy(){this.listeners=new Set,this.#i.forEach(e=>{e.destroy()})}setQueries(e,t){this.#n=e,this.#r=t,u.batch(()=>{let e=this.#i,t=this.#f(this.#n);t.forEach(e=>e.observer.setOptions(e.defaultedQueryOptions));let n=t.map(e=>e.observer),i=n.map(e=>e.getCurrentResult()),a=e.length!==n.length,o=n.some((t,n)=>t!==e[n]),s=a||o,c=s?!0:i.some((e,t)=>{let n=this.#t[t];return!n||!r(e,n)});!s&&!c||(s&&(this.#l=t,this.#i=n),this.#t=i,this.hasListeners()&&(s&&(Me(e,n).forEach(e=>{e.destroy()}),Me(n,e).forEach(e=>{e.subscribe(t=>{this.#p(e,t)})})),this.#m()))})}getCurrentResult(){return this.#t}getQueries(){return this.#i.map(e=>e.getCurrentQuery())}getObservers(){return this.#i}getOptimisticResult(e,t){let n=this.#f(e),r=n.map(e=>e.observer.getOptimisticResult(e.defaultedQueryOptions)),i=n.map(e=>e.defaultedQueryOptions.queryHash);return[r,e=>this.#d(e??r,t,i),()=>this.#u(r,n)]}#u(e,t){return t.map((n,r)=>{let i=e[r];return n.defaultedQueryOptions.notifyOnChangeProps?i:n.observer.trackResult(i,e=>{t.forEach(t=>{t.observer.trackProp(e)})})})}#d(e,t,n){if(t){let r=this.#c,i=n!==void 0&&r!==void 0&&(r.length!==n.length||n.some((e,t)=>e!==r[t]));return(!this.#a||this.#t!==this.#s||i||t!==this.#o)&&(this.#o=t,this.#s=this.#t,n!==void 0&&(this.#c=n),this.#a=a(this.#a,t(e))),this.#a}return e}#f(e){let t=new Map;this.#i.forEach(e=>{let n=e.options.queryHash;if(!n)return;let r=t.get(n);r?r.push(e):t.set(n,[e])});let n=[];return e.forEach(e=>{let r=this.#e.defaultQueryOptions(e),i=t.get(r.queryHash)?.shift()??new y(this.#e,r);n.push({defaultedQueryOptions:r,observer:i})}),n}#p(e,t){let n=this.#i.indexOf(e);n!==-1&&(this.#t=Ne(this.#t,n,t),this.#m())}#m(){if(this.hasListeners()){let e=this.#a,t=this.#u(this.#t,this.#l);e!==this.#d(t,this.#r?.combine)&&u.batch(()=>{this.listeners.forEach(e=>{e(this.#t)})})}}},N=e(t(),1);function Fe({queries:e,...t},n){let r=h(n),i=C(),a=_(),s=N.useMemo(()=>e.map(e=>{let t=r.defaultQueryOptions(e);return t._optimisticResults=i?`isRestoring`:`optimistic`,t}),[e,r,i]);s.forEach(e=>{b(e),v(e,a,r.getQueryCache().get(e.queryHash))}),m(a);let[c]=N.useState(()=>new Pe(r,s,t)),[l,d,f]=c.getOptimisticResult(s,t.combine),S=!i&&t.subscribed!==!1;N.useSyncExternalStore(N.useCallback(e=>S?c.subscribe(u.batchCalls(e)):o,[c,S]),()=>c.getCurrentResult(),()=>c.getCurrentResult()),N.useEffect(()=>{c.setQueries(s,t)},[s,t,c]);let w=l.some((e,t)=>p(s[t],e))?l.flatMap((e,t)=>{let n=s[t];return n&&p(n,e)?g(n,new y(r,n),a):[]}):[];if(w.length>0)throw Promise.all(w);let T=l.find((e,t)=>{let n=s[t];return n&&x({result:e,errorResetBoundary:a,throwOnError:n.throwOnError,query:r.getQueryCache().get(n.queryHash),suspense:n.suspense})});if(T?.error)throw T.error;return d(f())}var Ie=j(`arrow-left`,[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]),Le=j(`maximize`,[[`path`,{d:`M8 3H5a2 2 0 0 0-2 2v3`,key:`1dcmit`}],[`path`,{d:`M21 8V5a2 2 0 0 0-2-2h-3`,key:`1e4gt3`}],[`path`,{d:`M3 16v3a2 2 0 0 0 2 2h3`,key:`wsl5sc`}],[`path`,{d:`M16 21h3a2 2 0 0 0 2-2v-3`,key:`18trek`}]]),Re=j(`panel-right-close`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M15 3v18`,key:`14nvp0`}],[`path`,{d:`m8 9 3 3-3 3`,key:`12hl5m`}]]),ze=j(`panel-right-open`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M15 3v18`,key:`14nvp0`}],[`path`,{d:`m10 15-3-3 3-3`,key:`1pgupc`}]]),Be=6,Ve=.9,He=.035,Ue=e=>1-(1-e)**3;function We(e,t){let{svg:n,P:r}=e,i=ke(n,`[data-intro]`).map(e=>({g:e,i:+(e.dataset.intro??0)})),a=e.reducedMotion();return{lampTest:()=>!1,done:()=>a,draw(e){if(a)return;let n=(e-t)/1e3,o=!1;for(let{g:e,i:t}of i){let i=(n-t*He)/Ve;if(i>=1){e.hasAttribute(`transform`)&&(e.removeAttribute(`transform`),e.style.opacity=``);continue}o=!0;let a=Ue(Math.max(0,i));e.setAttribute(`transform`,De(r,[0,0,Be*(1-a)])),e.style.opacity=String(a)}a=!o}}}var Ge=`data-floor-keys`,Ke=6,qe=1.6;function Je(e,t,n={}){let r=t.width,i=t.height,a=n.keyTarget===void 0?e.parentElement:n.keyTarget,o=()=>n.reducedMotion?.()??!1,s=0,c=0,l=r,u=i;function d(){let t=e.getBoundingClientRect(),n=t.width/Math.max(1,t.height);!t.width||!t.height||(n>r/i?(l=i*n,u=i):(l=r,u=r/n),s=(r-l)/2,c=(i-u)/2)}d();let f={x:s,y:c,s:1,tx:s,ty:c,ts:1},p=new Set,m=!1,h=``,g=()=>({scale:f.ts,x:f.x,y:f.y,width:l/f.s,height:u/f.s,panning:m});function _(){let e=g();n.onViewChange?.(e);for(let t of p)t(e)}function v(e){e.ts=Math.max(1,Math.min(Ke,e.ts));let t=l/e.ts,n=u/e.ts;e.tx=Math.max(s,Math.min(s+l-t,e.tx)),e.ty=Math.max(c,Math.min(c+u-n,e.ty))}function y(e,t,n){let r=Math.max(1,Math.min(Ke,f.ts*e));f.tx=t-(t-f.tx)*f.ts/r,f.ty=n-(n-f.ty)*f.ts/r,f.ts=r,v(f)}let b=(t,n)=>{let r=e.getBoundingClientRect();return[f.x+(t-r.left)/r.width*(l/f.s),f.y+(n-r.top)/r.height*(u/f.s)]},x=()=>[f.tx+l/f.ts/2,f.ty+u/f.ts/2],S=()=>{f.tx=s,f.ty=c,f.ts=1};function C(t){let n=ke(e,`[data-asset="${t}"]`);if(!n.length)return;let r=1/0,i=1/0,a=-1/0,o=-1/0,s=e.getScreenCTM()?.inverse();for(let e of n){let t=e,n=t.getBBox();if(!n.width&&!n.height)continue;let c=s&&t.getScreenCTM()?s.multiply(t.getScreenCTM()):null;for(let[e,t]of[[n.x,n.y],[n.x+n.width,n.y],[n.x,n.y+n.height],[n.x+n.width,n.y+n.height]]){let n=c?new DOMPoint(e,t).matrixTransform(c):{x:e,y:t};r=Math.min(r,n.x),i=Math.min(i,n.y),a=Math.max(a,n.x),o=Math.max(o,n.y)}}let c=a-r+52,d=o-i+52;f.ts=Math.min(l/c,u/d,4),f.tx=(r+a)/2-l/f.ts/2,f.ty=(i+o)/2-u/f.ts/2,v(f)}let w=new ResizeObserver(()=>{let e=f.ts;d(),e<=1.01?(S(),f.x=s,f.y=c):v(f)});w.observe(e);let T=e=>{if(!e.ctrlKey&&!e.metaKey)return;e.preventDefault();let[t,n]=b(e.clientX,e.clientY);y(Math.exp(-e.deltaY*.012),t,n)},E=new Map,D=null,O=null,k=t=>{if(E.set(t.pointerId,[t.clientX,t.clientY]),E.size===2){let[e,t]=[...E.values()];O={d:Math.hypot(e[0]-t[0],e[1]-t[1]),s:f.ts},D=null;return}f.ts>1.01&&(D={x:t.clientX,y:t.clientY,tx:f.tx,ty:f.ty,moved:!1},e.setPointerCapture(t.pointerId))},A=t=>{if(E.has(t.pointerId)&&E.set(t.pointerId,[t.clientX,t.clientY]),O&&E.size===2){let[e,t]=[...E.values()],[n,r]=b((e[0]+t[0])/2,(e[1]+t[1])/2);y(O.s*Math.hypot(e[0]-t[0],e[1]-t[1])/O.d/f.ts,n,r);return}if(!D)return;let n=e.getBoundingClientRect(),r=l/f.s/n.width;f.tx=D.tx-(t.clientX-D.x)*r,f.ty=D.ty-(t.clientY-D.y)*r,Math.hypot(t.clientX-D.x,t.clientY-D.y)>3&&(D.moved=!0,m=!0,a?.setAttribute(`data-panning`,``)),v(f),f.x=f.tx,f.y=f.ty},j=e=>{E.delete(e.pointerId),E.size<2&&(O=null),D=null,m=!1,a?.removeAttribute(`data-panning`)},M=e=>{let t=n.assetAt?.(e.clientX,e.clientY)??null;t?C(t):S()},ee=e=>{if(e.target instanceof Element&&e.target.closest(`input,textarea`)||e.key.startsWith(`Arrow`)&&e.target instanceof Element&&e.target.closest(`[data-floor-keys]`))return;let[t,n]=x(),r=40/f.ts,i=new Map([[`+`,()=>y(qe,t,n)],[`=`,()=>y(qe,t,n)],[`-`,()=>y(1/qe,t,n)],[`0`,S],[`ArrowLeft`,()=>{f.tx-=r,v(f)}],[`ArrowRight`,()=>{f.tx+=r,v(f)}],[`ArrowUp`,()=>{f.ty-=r,v(f)}],[`ArrowDown`,()=>{f.ty+=r,v(f)}]]).get(e.key);i&&(e.preventDefault(),i())};e.addEventListener(`wheel`,T,{passive:!1}),e.addEventListener(`pointerdown`,k),e.addEventListener(`pointermove`,A),e.addEventListener(`pointerup`,j),e.addEventListener(`pointercancel`,j),e.addEventListener(`dblclick`,M),a?.addEventListener(`keydown`,ee);let te=a?.hasAttribute(`tabindex`)??!0;return a&&!te&&a.setAttribute(`tabindex`,`0`),{zoomIn:()=>y(qe,...x()),zoomOut:()=>y(1/qe,...x()),fit:S,flyTo:C,zoomAt:y,scale:()=>f.s,subscribe(e){return p.add(e),()=>p.delete(e)},step(t){let n=o()||D?1:1-Math.exp(-t/.12);f.x+=(f.tx-f.x)*n,f.y+=(f.ty-f.y)*n,f.s+=(f.ts-f.s)*n,Math.abs(f.s-f.ts)<1e-4&&(f.s=f.ts);let r=`${f.x.toFixed(2)} ${f.y.toFixed(2)} ${(l/f.s).toFixed(2)} ${(u/f.s).toFixed(2)}`,i=`${f.ts>1.01}|${m}`;(e.getAttribute(`viewBox`)!==r||i!==h)&&(e.setAttribute(`viewBox`,r),f.ts>1.01?a?.setAttribute(`data-zoomed`,``):a?.removeAttribute(`data-zoomed`),h=i,_())},state:f,dispose(){w.disconnect(),e.removeEventListener(`wheel`,T),e.removeEventListener(`pointerdown`,k),e.removeEventListener(`pointermove`,A),e.removeEventListener(`pointerup`,j),e.removeEventListener(`pointercancel`,j),e.removeEventListener(`dblclick`,M),a?.removeEventListener(`keydown`,ee),a&&!te&&a.removeAttribute(`tabindex`),a?.removeAttribute(`data-zoomed`),a?.removeAttribute(`data-panning`),p.clear()}}}function Ye(e){return null}var Xe=250,Ze=2;function Qe(e,t){let{svg:n,feed:r}=e,i=We(e,performance.now()),a=t(e),o=(e,t)=>Oe(n,e,t),s=Je(n,e.size,{reducedMotion:e.reducedMotion,assetAt:o}),c=!1,l=0,u=0,d=0,f=0,p=0;function m(t){l=0;let n=u?Math.min((t-u)/1e3,1/20):1/60;u=t,i.draw(t),t-d>Xe&&(a.data(i.lampTest()),d=t);let o=r.engineState()===`paused`,h=o?0:n;f+=h,p=o?p+n:0,(!i.done()||p<Ze)&&a.draw({dt:n,sdt:h,t:f,still:e.reducedMotion(),introDone:i.done()}),s.step(n),c&&(l=requestAnimationFrame(m))}let h=()=>{if(document.hidden){l&&cancelAnimationFrame(l),l=0;return}u=0,c&&!l&&(l=requestAnimationFrame(m))};document.addEventListener(`visibilitychange`,h);function g(){c=!1,l&&cancelAnimationFrame(l),l=0}return{start(){c||(c=!0,u=0,document.hidden||(l=requestAnimationFrame(m)))},stop:g,resync:a.resync,dispose(){g(),document.removeEventListener(`visibilitychange`,h),s.dispose();for(let e of ke(n,`[${Ae}]`))e.remove()},view:s,assetAt:o,status:a.status}}var P=n(),$e={ArrowRight:1,ArrowDown:1,ArrowLeft:-1,ArrowUp:-1};function et({things:e,selected:t,label:n,onFocusMachine:r,onActivate:i}){let[a,o]=(0,N.useState)(0),s=(0,N.useRef)([]);(0,N.useEffect)(()=>{let n=e.findIndex(e=>e.key===t);n>=0&&o(n)},[t,e]);let c=t=>{let n=(t+e.length)%e.length;o(n),s.current[n]?.focus()},l=(e,t)=>{let n=$e[e.key],r=n===void 0?void 0:t+n;e.key===`Home`&&(r=0),e.key===`End`&&(r=-1),r!==void 0&&(e.preventDefault(),c(r))};return(0,P.jsx)(`div`,{role:`toolbar`,"aria-label":`Machines`,[Ge]:``,className:`sr-only`,children:e.map((e,c)=>(0,P.jsx)(`button`,{ref:e=>{s.current[c]=e},type:`button`,tabIndex:c===a?0:-1,"aria-label":n(e),"aria-pressed":e.key===t,onFocus:()=>{o(c),r(e.key)},onBlur:()=>r(null),onKeyDown:e=>l(e,c),onClick:t=>{t.stopPropagation(),i(e.key)}},e.key))})}var tt=4,nt=400,rt={g:`bg-success`,a:`bg-warning`,r:`bg-destructive`,"":`bg-muted-foreground/50`};function it(e,t,n){let r=e.getBoundingClientRect(),i=1/0,a=-1/0,o=1/0,s=-1/0;for(let e of t.querySelectorAll(`[data-asset="${CSS.escape(n)}"]`)){let t=e.getBoundingClientRect();t.width&&(i=Math.min(i,t.left),a=Math.max(a,t.right),o=Math.min(o,t.top),s=Math.max(s,t.bottom))}return Number.isFinite(i)?{id:n,x:Math.max(72,Math.min(r.width-72,(i+a)/2-r.left)),y:Math.max(40,o-r.top-10),box:{left:i-r.left,top:o-r.top,width:a-i,height:s-o}}:null}function at(e,t,n){for(let n of e.querySelectorAll(`[${t}]`))n.removeAttribute(t);if(n)for(let r of e.querySelectorAll(`[data-asset="${CSS.escape(n)}"]`))r.setAttribute(t,``)}function ot({layout:e,ids:t,caption:n,feed:r,things:i,selected:a,onSelect:o,onRuntime:s}){let c=(0,N.useRef)(null),u=(0,N.useRef)(null),[d,f]=(0,N.useState)(null),[p,m]=(0,N.useState)(null),[h,g]=(0,N.useState)(null),[_,v]=(0,N.useState)(1),[,y]=(0,N.useState)(0),b=(0,N.useRef)({onSelect:o,onRuntime:s});b.current={onSelect:o,onRuntime:s},(0,N.useLayoutEffect)(()=>{let n=u.current;if(!n)return;let i=matchMedia(`(prefers-reduced-motion: reduce)`),a=Qe({svg:n,size:{width:e.width,height:e.height},P:e.kit.P,feed:r,flows:e.flows,ids:t,reducedMotion:()=>i.matches},e.compose);a.start(),f(a),b.current.onRuntime(a);let o=a.view.subscribe(e=>{v(e.scale),e.panning?m(null):m(e=>e&&c.current?it(c.current,n,e.id):e)}),s=Ye(a),l=window;return s&&(l.__sf={...s,joints:e.joints,select:e=>b.current.onSelect(e),showTag:e=>c.current&&m(it(c.current,n,e))}),()=>{o(),a.dispose(),b.current.onRuntime(null),s&&delete l.__sf}},[e,t,r]),(0,N.useEffect)(()=>{let e=u.current;e&&at(e,`data-selected`,a)},[a]),(0,N.useEffect)(()=>{let e=u.current;if(e&&at(e,`data-hover`,p?.id??null),!p)return;let t=setInterval(()=>y(e=>e+1),nt);return()=>clearInterval(t)},[p?.id,p]);let x=(0,N.useRef)(null),S=p?i.find(e=>e.key===p.id):void 0,[C,w]=p&&d?d.status(p.id):[``,``],T=l(e=>e.assets),E=i.flatMap(e=>(T.find(t=>t.id===e.assetId)?.activeFaults??[]).map(t=>({thing:e,fault:t})));return(0,P.jsxs)(`section`,{ref:c,"aria-label":`Factory floor`,className:`floor-scene @container relative min-h-0 overflow-hidden bg-background outline-none [background-image:linear-gradient(color-mix(in_srgb,var(--border)_45%,transparent)_1px,transparent_1px),linear-gradient(90deg,color-mix(in_srgb,var(--border)_45%,transparent)_1px,transparent_1px)] [background-size:48px_48px] focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset`,onPointerMove:e=>{let t=c.current,n=u.current;if(!d||!t||!n||t.hasAttribute(`data-panning`))return;let r=d.assetAt(e.clientX,e.clientY);r!==(p?.id??null)&&m(r?it(t,n,r):null)},onPointerLeave:()=>m(null),onPointerDown:e=>{x.current=[e.clientX,e.clientY]},onClick:e=>{let t=x.current;t&&Math.hypot(e.clientX-t[0],e.clientY-t[1])>tt||o(d?.assetAt(e.clientX,e.clientY)??null)},onKeyDown:e=>{e.key===`Escape`&&a&&o(null)},children:[(0,P.jsx)(`svg`,{ref:u,className:`iso-svg floor-svg`,viewBox:`0 0 ${e.width} ${e.height}`,role:`img`,"aria-label":e.label,children:(0,P.jsx)(je,{value:e.kit,children:(0,P.jsx)(e.Scene,{ids:t})})}),(0,P.jsxs)(`div`,{className:`pointer-events-none absolute inset-x-3 top-3 flex flex-wrap items-start justify-between gap-x-3 gap-y-2`,children:[(0,P.jsxs)(`p`,{className:`pt-1 pl-1 text-[11px] font-semibold uppercase tracking-[0.14em] text-muted-foreground`,children:[`Floor `,(0,P.jsx)(`span`,{className:`text-primary`,children:`·`}),` `,n]}),E.length>0?(0,P.jsx)(`ul`,{className:`pointer-events-auto ml-auto flex max-w-full flex-col items-end gap-1.5`,children:E.map(({thing:e,fault:t})=>(0,P.jsx)(`li`,{children:(0,P.jsxs)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),o(e.key)},className:`flex max-w-full items-center gap-2 rounded-[var(--miravo-radius-pill)] border border-destructive/40 bg-background/90 px-2.5 py-1 text-[11px] text-destructive outline-none transition-colors hover:border-destructive/70 focus-visible:ring-2 focus-visible:ring-ring`,children:[(0,P.jsx)(`span`,{className:`size-1.5 shrink-0 animate-pulse rounded-full bg-destructive`}),(0,P.jsx)(`span`,{className:`shrink-0 font-medium`,children:e.name}),(0,P.jsx)(`span`,{className:`min-w-0 truncate font-mono text-[10px] opacity-80`,children:t.replace(/_/g,` `)})]})},`${e.key}:${t}`))}):null]}),p?(0,P.jsxs)(`div`,{role:`status`,className:`pointer-events-none absolute z-10 flex -translate-x-1/2 -translate-y-full items-center gap-2 whitespace-nowrap rounded-[var(--miravo-radius-pill)] border border-border/80 bg-background/95 px-2.5 py-1 shadow-[0_14px_40px_-20px_#000]`,style:{left:p.x,top:p.y},children:[(0,P.jsx)(`span`,{className:M(`size-1.5 rounded-full`,rt[w]??rt[``])}),(0,P.jsx)(`span`,{className:`text-xs font-medium`,children:S?.name??p.id}),(0,P.jsx)(`span`,{className:`font-mono text-[10px] uppercase tracking-[0.08em] text-muted-foreground`,children:fe(C)})]}):null,h&&p?.id===h?(0,P.jsx)(`div`,{"aria-hidden":!0,className:`pointer-events-none absolute rounded-[var(--miravo-radius-tight)] ring-2 ring-ring ring-offset-2 ring-offset-background`,style:{left:p.box.left-4,top:p.box.top-4,width:p.box.width+8,height:p.box.height+8}}):null,(0,P.jsx)(et,{things:i,selected:a,label:e=>`${e.name}, ${fe(d?d.status(e.key)[0]:``)}`,onFocusMachine:e=>{g(e);let t=c.current,n=u.current;m(e&&t&&n?it(t,n,e):null)},onActivate:e=>{o(e),d?.view.flyTo(e)}}),(0,P.jsx)(`p`,{className:`pointer-events-none absolute bottom-3 left-4 hidden text-[10px] text-muted-foreground/80 @3xl:block`,children:`Drag to pan · Ctrl/⌘ + scroll to zoom · Double-click a machine, or Tab to it and press Enter, to fly to it`}),(0,P.jsxs)(`div`,{className:`absolute right-3 bottom-3 flex items-center gap-0.5 rounded-[var(--miravo-radius-stadium-sm)] border border-border/70 bg-background/90 p-0.5`,children:[(0,P.jsx)(st,{label:`Zoom out`,onClick:()=>d?.view.zoomOut(),children:(0,P.jsx)(ie,{className:`size-3.5`,"aria-hidden":!0})}),(0,P.jsxs)(`span`,{className:`min-w-10 text-center font-mono text-[10px] tabular-nums text-muted-foreground`,children:[_.toFixed(1),`×`]}),(0,P.jsx)(st,{label:`Zoom in`,onClick:()=>d?.view.zoomIn(),children:(0,P.jsx)(ce,{className:`size-3.5`,"aria-hidden":!0})}),(0,P.jsx)(st,{label:`Fit floor`,onClick:()=>d?.view.fit(),children:(0,P.jsx)(Le,{className:`size-3.5`,"aria-hidden":!0})})]})]})}function st({label:e,onClick:t,children:n}){return(0,P.jsx)(`button`,{type:`button`,"aria-label":e,title:e,onClick:e=>{e.stopPropagation(),t()},className:`grid size-7 place-items-center rounded-[var(--miravo-radius-tight)] text-muted-foreground outline-none transition-colors hover:bg-muted/50 hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring`,children:n})}var ct=3e3;function lt(e){return e.type===`fault:triggered`?`bg-destructive`:e.type===`fault:cleared`?`bg-success`:`bg-muted-foreground/50`}function ut({assetIds:e,nameOf:t,onSelect:n}){let r=S({queryKey:c.events(`all`,``),queryFn:()=>s(Ee(`all`,``,null),i.events),refetchInterval:ct}),a=new Date,o=(r.data?.events??[]).filter(t=>{if(Ce(t))return!1;let n=Te(t);return n===void 0||e.has(n)});return(0,P.jsxs)(`div`,{className:`flex flex-col`,children:[o.length===0?(0,P.jsx)(`p`,{className:`px-4 py-6 text-xs text-muted-foreground`,children:r.isPending?`Loading events…`:`No events yet. Inject a fault to see one here.`}):(0,P.jsx)(`ol`,{className:`flex flex-col px-2 py-2`,children:o.map(e=>{let r=Te(e),i=we(e);return(0,P.jsx)(`li`,{children:(0,P.jsxs)(`button`,{type:`button`,disabled:!r,onClick:()=>r&&n(r),className:`flex w-full items-start gap-2.5 rounded-[var(--miravo-radius-tight)] px-2 py-2 text-left outline-none transition-colors enabled:hover:bg-muted/40 focus-visible:ring-2 focus-visible:ring-ring`,children:[(0,P.jsx)(`span`,{className:M(`mt-1.5 size-1.5 shrink-0 rounded-full`,lt(e))}),(0,P.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col gap-0.5`,children:[(0,P.jsxs)(`span`,{className:`truncate text-xs`,children:[(0,P.jsx)(`span`,{className:`text-foreground`,children:r?t(r):`Engine`}),(0,P.jsxs)(`span`,{className:`text-muted-foreground`,children:[` `,k(e.type.replace(/[:-]/g,`_`))]})]}),i?(0,P.jsx)(`span`,{className:`truncate font-mono text-[11px] text-muted-foreground`,children:i}):null]}),(0,P.jsx)(`time`,{className:`shrink-0 font-mono text-[10px] text-muted-foreground tabular-nums`,children:Se(e.timestamp,a)})]})},e.id)})}),(0,P.jsx)(`div`,{className:`border-t border-border/50 px-4 py-3`,children:(0,P.jsxs)(E,{to:`/events`,className:A({size:`sm`,variant:`ghost`,className:`-ml-2 gap-1`}),children:[`All events`,(0,P.jsx)(ee,{className:`size-3.5`,"aria-hidden":!0})]})})]})}function dt(e){return(typeof e==`number`||typeof e==`string`)&&e!==``}function ft(e){let t=(0,N.useId)();return dt(e)?`${e}`:t}var F=typeof window<`u`?N.useLayoutEffect:N.useEffect;function I(e){let t=(0,N.useRef)(e);return F(()=>{t.current=e},[e]),(0,N.useCallback)((...e)=>t.current?.(...e),[t])}function pt(...e){return I(t=>{e.forEach(e=>{if(e)switch(typeof e){case`function`:e(t);break;case`object`:e.current=t;break}})})}function mt(e,t){let n=e?.[`data-testid`];return dt(n)?`${n}`:dt(t)?`${t}`:void 0}function ht(e,t){return t?e*2+1:e+1}function gt(e,t){return t?e*2-1:e}function _t(e,t,n){let r=ht(e,n);return t===void 0?`${r} / -1`:`${r} / span ${gt(t,n)}`}function vt(e){return`${e*2} / span 1`}function yt({crossCount:e,crossSpan:t,crossStart:n,hasGutters:r}){let i=t===void 0?e:n+t;if(n===0&&i===e)return`1 / -1`;let a=ht(n,r),o=ht(i-1,r)+1;return r&&(n>0&&a--,i<e&&o++),`${a} / ${o}`}function bt(e,t){return Number.isInteger(e)&&e>=1&&e<t}function L(e,t=`Assertion error`){if(!e)throw Error(t)}var xt=(0,N.createContext)(null);function St(){let e=(0,N.useContext)(xt);return L(e,`Grid Context not found; did you render a Cell or Gridline outside of a Grid?`),e}function Ct({children:e,className:t,column:n,columnSpan:r=1,elementRef:i,id:a,row:o,rowSpan:s=1,style:c,...l}){let u=ft(a),{gutters:d,registerCell:f}=St(),p=(0,N.useRef)(null),m=pt(p,i);return F(()=>{let e=p.current;if(e!==null)return f({column:n,columnSpan:r,element:e,id:u,row:o,rowSpan:s})},[n,r,u,f,o,s]),(0,P.jsx)(`div`,{...l,className:t,"data-cell":!0,"data-testid":mt(l,a),id:u,ref:m,style:{overflow:`auto`,...c,minHeight:0,minWidth:0,gridColumn:_t(n,r,d.column),gridRow:_t(o,s,d.row)},children:e})}Ct.displayName=`Cell`;var wt;function Tt(){return wt===void 0&&(wt=typeof matchMedia==`function`?!!matchMedia(`(pointer:coarse)`).matches:!1),wt}function Et({expandHitTargets:e,axis:t,rect:n}){let r=e?Tt()?t.resizeTargetMinimumSize.coarse:t.resizeTargetMinimumSize.fine:0;if(n.width<r){let e=r-n.width;n=new DOMRect(n.x-e/2,n.y,n.width+e,n.height)}if(n.height<r){let e=r-n.height;n=new DOMRect(n.x,n.y-e/2,n.width,n.height+e)}return n}function Dt({axis:e,cells:t,index:n,rect:r}){let i=[r];for(let r of t){let t=e===`column`?r.column:r.row,a=e===`column`?r.columnSpan:r.rowSpan;if(t>=n||t+a<=n)continue;let o=r.element.getBoundingClientRect(),s=e===`column`?o.top:o.left,c=e===`column`?o.bottom:o.right;c<=s||(i=i.flatMap(t=>{let n=e===`column`?t.top:t.left,r=e===`column`?t.bottom:t.right;if(s>=r||c<=n)return[t];let i=[],a=(n,r)=>{i.push(e===`column`?new DOMRect(t.x,n,t.width,r-n):new DOMRect(n,t.y,r-n,t.height))};return n<s&&a(n,s),r>c&&a(c,r),i}))}return i}function Ot({axis:e,cells:t,crossTrackCount:n,expandHitTargets:r,resizeAxis:i,axisSize:a,includeDisabled:o,separatorPlacements:s}){let{items:c,separators:l}=i,u=c.length,d=-1,f=-1,p=0;if(c.forEach((e,t)=>{e.constraintProps.disabled||(p++,d===-1&&(d=t),f=t)}),!o&&p<2)return[];let m=e=>o||e>d&&e<=f,h=[],g=(e,t,n)=>({axis:i,axisSize:a,items:[c[e-1],c[e]],rect:t,separator:n}),_=(n,r)=>{let i;for(let a of t){let t=e===`column`?a.row:a.column,o=e===`column`?a.rowSpan:a.columnSpan;if(r===`start`?t===n:t+o-1===n){let t=a.element.getBoundingClientRect();if(r===`start`){let n=e===`column`?t.top:t.left;i=i===void 0?n:Math.min(i,n)}else{let n=e===`column`?t.bottom:t.right;i=i===void 0?n:Math.max(i,n)}}}return i},v=new Set;for(let a of l){let c=s.get(a);if(!c||c.index<1||c.index>=u||(v.add(c.index),!o&&(a.disabled||a.element.hasAttribute(`aria-disabled`)))||!m(c.index))continue;let l=a.element.getBoundingClientRect(),{crossSpan:d,crossStart:f}=c,p=d===void 0?n:f+d,y=e===`column`?l.top:l.left,b=e===`column`?l.bottom:l.right;if(f>0){let e=_(f-1,`end`);e!==void 0&&e<y&&(y=e)}if(p<n){let e=_(p,`start`);e!==void 0&&e>b&&(b=e)}l=e===`column`?new DOMRect(l.x,y,l.width,b-y):new DOMRect(y,l.y,b-y,l.height),l=Et({expandHitTargets:r,axis:i,rect:l}),o?h.push(g(c.index,l,a)):Dt({axis:e,cells:t,index:c.index,rect:l}).forEach(e=>{h.push(g(c.index,e,a))})}let y=(n,a)=>{Dt({axis:e,cells:t,index:n,rect:Et({expandHitTargets:r,axis:i,rect:a})}).forEach(e=>{h.push(g(n,e))})},b=Array.from({length:n},()=>Array(u));for(let r of t){let[t,i,a,o]=e===`column`?[r.column,r.columnSpan,r.row,r.rowSpan]:[r.row,r.rowSpan,r.column,r.columnSpan];for(let e=Math.max(0,a);e<Math.min(n,a+o);e++)for(let n=Math.max(0,t);n<Math.min(u,t+i);n++)b[e][n]??=r}let x=new Map,S=t=>{let n=x.get(t);if(!n){let r=t.element.getBoundingClientRect();n=e===`column`?{crossEnd:r.bottom,crossStart:r.top,end:r.right,start:r.left}:{crossEnd:r.right,crossStart:r.left,end:r.bottom,start:r.top},x.set(t,n)}return n},C=({crossEnd:t,crossStart:n,end:r,start:i})=>e===`column`?new DOMRect(i,n,r-i,t-n):new DOMRect(n,i,t-n,r-i);for(let e=1;e<u;e++){if(v.has(e)||!m(e))continue;let t;for(let r=0;r<n;r++){let n=b[r][e-1],i=b[r][e],a;if((n||i)&&n!==i){let e=n?S(n):void 0,t=i?S(i):void 0,r=e?.end??t.start,o=t?.start??e.end,s=Math.max(e?.crossStart??-1/0,t?.crossStart??-1/0),c=Math.min(e?.crossEnd??1/0,t?.crossEnd??1/0);a={crossEnd:Math.max(s,c),crossStart:s,end:Math.max(r,o),start:Math.min(r,o)}}a?t=t?{crossEnd:Math.max(t.crossEnd,a.crossEnd),crossStart:Math.min(t.crossStart,a.crossStart),end:Math.max(t.end,a.end),start:Math.min(t.start,a.start)}:a:t&&=(y(e,C(t)),void 0)}t&&y(e,C(t))}return h}function R(e){let t=parseFloat(e??``);return Number.isFinite(t)?t:0}function kt({axis:e,element:t,gutterSizes:n,hasGutters:r,layout:i,trackIds:a}){let o=a.length,s=r?o*2-1:o,c=t.ownerDocument.defaultView?.getComputedStyle(t),l=e===`column`?c?.gridTemplateColumns:c?.gridTemplateRows;if(l){let e=l.trim().split(/\s+/);if(e.length===s&&e.every(e=>/^-?[\d.]+px$/.test(e))){let t=a.map((t,n)=>R(e[r?n*2:n]));return{availableSize:t.reduce((e,t)=>e+t,0),trackSizes:t}}}let u=e===`column`?t.offsetWidth:t.offsetHeight,d=e===`column`?R(c?.paddingLeft)+R(c?.paddingRight)+R(c?.borderLeftWidth)+R(c?.borderRightWidth):R(c?.paddingTop)+R(c?.paddingBottom)+R(c?.borderTopWidth)+R(c?.borderBottomWidth),f=R(e===`column`?c?.columnGap:c?.rowGap),p=n.reduce((e,t)=>e+t,0),m=Math.max(0,u-d-f*Math.max(0,s-1)-p);return{availableSize:m,trackSizes:a.map(e=>i&&i[e]!==void 0?i[e]/100*m:m/o)}}function At(e){switch(typeof e){case`number`:return[e,`px`];case`string`:{let t=parseFloat(e);return e.endsWith(`%`)?[t,`%`]:e.endsWith(`px`)?[t,`px`]:e.endsWith(`rem`)?[t,`rem`]:e.endsWith(`em`)?[t,`em`]:e.endsWith(`vh`)?[t,`vh`]:e.endsWith(`vw`)?[t,`vw`]:[t,`%`]}}}var jt=class{#e={};addListener(e,t){let n=this.#e[e];return n===void 0?this.#e[e]=[t]:n.includes(t)||n.push(t),()=>{this.removeListener(e,t)}}emit(e,t){let n=this.#e[e];if(n!==void 0){if(n.length===1){n[0].call(null,t);return}let e,r=Array.from(n);for(let n=0;n<r.length;n++){let i=r[n];try{i.call(null,t)}catch(t){e??={error:t}}}if(e)throw e.error}}removeAllListeners(){this.#e={}}removeListener(e,t){let n=this.#e[e];if(n!==void 0){let e=n.indexOf(t);e>=0&&n.splice(e,1)}}},z={cursorFlags:0,state:`inactive`},Mt=new jt;function B(){return z}function Nt(e){return Mt.addListener(`change`,e)}function Pt(e,t=[],n,r=!1){let i=z,a={...z};a.cursorFlags=e,a.state===`active`&&(a.didPointerMove||=r,a.previews=t,n&&(a.previewLayoutMap=n)),z=a,Mt.emit(`change`,{prev:i,next:a})}function V(e){let t=z;z=e,t.state===`active`&&e.state!==`active`&&t.didPointerMove&&t.hitRegions.forEach(({separator:e})=>{e&&e.element.ownerDocument.activeElement===e.element&&e.element.blur()}),Mt.emit(`change`,{prev:t,next:e})}function Ft(e){z.state!==`active`||!z.previews.some(t=>t.separator===e)||V({...z,previews:z.previews.map(t=>t.separator===e?{...t}:t)})}function It(e){if(z.state===`inactive`)return;let t=z.hitRegions.filter(t=>t.axis!==e),n=z.state===`active`&&z.previews.some(t=>t.axis===e);if(!(t.length===z.hitRegions.length&&!n))if(t.length===0)V({cursorFlags:0,state:`inactive`});else if(z.state===`active`){let n=new Map(z.initialLayoutMap),r=new Map(z.previewLayoutMap);n.delete(e),r.delete(e),V({...z,cursorFlags:0,hitRegions:t,initialLayoutMap:n,previewLayoutMap:r,previews:z.previews.filter(t=>t.axis!==e)})}else V({...z,hitRegions:t})}var Lt=e=>e,Rt=()=>{},zt=1,Bt=2,Vt=4,Ht=8,Ut=3,Wt=12,Gt;function Kt(){return Gt===void 0&&(Gt=!1,typeof window<`u`&&(window.navigator.userAgent.includes(`Chrome`)||window.navigator.userAgent.includes(`Firefox`))&&(Gt=!0)),Gt}function qt({cursorFlags:e,axes:t,state:n}){let r=0,i=0;switch(n){case`active`:case`hover`:t.forEach(e=>{if(!e.mutableState.disableCursor)switch(e.orientation){case`horizontal`:r++;break;case`vertical`:i++;break}})}if(!(r===0&&i===0)){switch(n){case`active`:if(e&&Kt()){let t=(e&zt)!==0,n=(e&Bt)!==0,r=(e&Vt)!==0,i=(e&Ht)!==0;if(t)return r?`se-resize`:i?`ne-resize`:`e-resize`;if(n)return r?`sw-resize`:i?`nw-resize`:`w-resize`;if(r)return`s-resize`;if(i)return`n-resize`}break}return Kt()?r>0&&i>0?`move`:r>0?`ew-resize`:`ns-resize`:r>0&&i>0?`grab`:r>0?`col-resize`:`row-resize`}}var Jt=new WeakMap;function Yt(e){if(!e.defaultView||!e.adoptedStyleSheets)return;let{prevStyle:t,styleSheet:n}=Jt.get(e)??{};n===void 0&&(n=new e.defaultView.CSSStyleSheet,e.adoptedStyleSheets&&(Object.isExtensible(e.adoptedStyleSheets)?e.adoptedStyleSheets.push(n):e.adoptedStyleSheets=[...e.adoptedStyleSheets,n]));let r=B();switch(r.state!==`inactive`&&r.ownerDocument!==e&&(r={cursorFlags:0,state:`inactive`}),r.state){case`active`:case`hover`:{let e=qt({cursorFlags:r.cursorFlags,axes:r.hitRegions.map(e=>e.axis),state:r.state}),i=`*, *:hover {cursor: ${e} !important; }`;if(t===i)return;t=i,e?n.cssRules.length===0?n.insertRule(i):n.replaceSync(i):n.cssRules.length===1&&n.deleteRule(0);break}case`inactive`:t=void 0,n.cssRules.length===1&&n.deleteRule(0);break}Jt.set(e,{prevStyle:t,styleSheet:n})}function Xt(e){return e.state===`inactive`?void 0:e.ownerDocument}function Zt({next:e,prev:t}){let n=Xt(t),r=Xt(e);n&&n!==r&&Yt(n),r&&Yt(r)}function H({axis:e}){let{layoutStrategy:t,orientation:n,items:r}=e;return t?t.calculateAvailableSize():r.reduce((e,t)=>(e+=n===`horizontal`?t.element.offsetWidth:t.element.offsetHeight,e),0)}function Qt(e,t){let n=e.compareDocumentPosition(t);return n&Node.DOCUMENT_POSITION_DISCONNECTED?0:n&Node.DOCUMENT_POSITION_FOLLOWING?-1:n&Node.DOCUMENT_POSITION_PRECEDING?1:0}function $t(e,t){return Array.from(t).sort((t,n)=>{let r=e===`horizontal`?en(t,n):tn(t,n);return r===0?Qt(t.element,n.element):r})}function en(e,t){let n=e.element.offsetLeft-t.element.offsetLeft;return n===0?e.element.offsetWidth-t.element.offsetWidth:n}function tn(e,t){let n=e.element.offsetTop-t.element.offsetTop;return n===0?e.element.offsetHeight-t.element.offsetHeight:n}function nn(e){return typeof e==`object`&&!!e&&`nodeType`in e&&e.nodeType===Node.ELEMENT_NODE}function rn(e,t){return{x:e.x>=t.left&&e.x<=t.right?0:Math.min(Math.abs(e.x-t.left),Math.abs(e.x-t.right)),y:e.y>=t.top&&e.y<=t.bottom?0:Math.min(Math.abs(e.y-t.top),Math.abs(e.y-t.bottom))}}function an({orientation:e,rects:t,targetRect:n}){let r={x:n.x+n.width/2,y:n.y+n.height/2},i,a=Number.MAX_VALUE;for(let n of t){let{x:t,y:o}=rn(r,n),s=e===`horizontal`?t:o;s<a&&(a=s,i=n)}return L(i,`No rect found`),i}function on({expandHitTargets:e=!0,axis:t,includeDisabled:n=!1}){if(t.layoutStrategy)return t.layoutStrategy.calculateHitRegions({expandHitTargets:e,axis:t,includeDisabled:n});let{element:r,orientation:i,items:a,separators:o}=t,s=$t(i,Array.from(r.children).filter(nn).filter(e=>!e.hasAttribute(`data-resize-preview`)).map(e=>({element:e}))).map(({element:e})=>e),c=[],l=!1,u=!1,d=-1,f,p=-1,m=0,h,g=[];{let e=-1;for(let t of s)t.hasAttribute(`data-panel`)&&(e++,t.hasAttribute(`data-disabled`)||(m++,d===-1&&(d=e),p=e))}if(n||m>1){let r=-1;for(let m of s)if(m.hasAttribute(`data-panel`)){r++;let o=a.find(e=>e.element===m);if(o){if(h){let a=h.element.getBoundingClientRect(),s=m.getBoundingClientRect(),_;if(u){let e=i===`horizontal`?new DOMRect(a.right,a.top,0,a.height):new DOMRect(a.left,a.bottom,a.width,0),t=i===`horizontal`?new DOMRect(s.left,s.top,0,s.height):new DOMRect(s.left,s.top,s.width,0);switch(g.length){case 0:_=[e,t];break;case 1:{let n=g[0];_=[n,an({orientation:i,rects:[a,s],targetRect:n.element.getBoundingClientRect()})===a?t:e];break}default:_=g;break}}else _=g.length?g:[i===`horizontal`?new DOMRect(a.right,s.top,s.left-a.right,s.height):new DOMRect(s.left,a.bottom,s.width,s.top-a.bottom)];for(let i of _){let a=Et({expandHitTargets:e,axis:t,rect:`width`in i?i:i.element.getBoundingClientRect()});(n||!l&&!(r<=d||r>p))&&(f??=H({axis:t}),c.push({axis:t,axisSize:f,items:[h,o],separator:`width`in i?void 0:i,rect:a})),l=!1}}u=!1,h=o,g=[]}}else if(m.hasAttribute(`data-separator`)){m.ariaDisabled!==null&&(l=!0);let e=o.find(e=>e.element===m);e?g.push(e):(h=void 0,g=[])}else u=!0}return c}function sn(e,t){let n=getComputedStyle(e);return t*parseFloat(n.fontSize)}function cn(e,t){let n=getComputedStyle(e.ownerDocument.documentElement);return t*parseFloat(n.fontSize)}function ln(e){return e/100*window.innerHeight}function un(e){return e/100*window.innerWidth}function U({axisSize:e,itemElement:t,styleProp:n}){let r,[i,a]=At(n);switch(a){case`%`:r=i/100*e;break;case`px`:r=i;break;case`rem`:r=cn(t,i);break;case`em`:r=sn(t,i);break;case`vh`:r=ln(i);break;case`vw`:r=un(i);break}return r}function W(e){return parseFloat(e.toFixed(3))}function dn(e){let{items:t}=e,n=H({axis:e});return n===0?t.map(e=>({groupResizeBehavior:e.constraintProps.groupResizeBehavior,collapsedSize:0,collapsible:e.constraintProps.collapsible===!0,defaultSize:void 0,disabled:e.constraintProps.disabled,minSize:0,maxSize:100,itemId:e.id})):t.map(e=>{let{element:t,constraintProps:r}=e,i=0;r.collapsedSize!==void 0&&(i=W(U({axisSize:n,itemElement:t,styleProp:r.collapsedSize})/n*100));let a;r.collapsedThreshold!==void 0&&(a=W(U({axisSize:n,itemElement:t,styleProp:r.collapsedThreshold})/n*100));let o;r.defaultSize!==void 0&&(o=W(U({axisSize:n,itemElement:t,styleProp:r.defaultSize})/n*100));let s=0;r.minSize!==void 0&&(s=W(U({axisSize:n,itemElement:t,styleProp:r.minSize})/n*100));let c=100;return r.maxSize!==void 0&&(c=W(U({axisSize:n,itemElement:t,styleProp:r.maxSize})/n*100)),{groupResizeBehavior:r.groupResizeBehavior,collapsedSize:i,collapsedThreshold:a,collapsible:r.collapsible===!0,defaultSize:o,disabled:r.disabled,minSize:s,maxSize:c,itemId:e.id}})}var G=new Map,fn=new jt,pn=0,mn=[],hn;function gn(){pn++}function _n(){for(let e=0;e<mn.length;e++)try{fn.emit(`axisChange`,mn[e])}catch(e){hn??={error:e}}mn.length=0}function vn(){if(pn===1&&_n(),pn--,pn===0&&hn){let{error:e}=hn;throw hn=void 0,e}}function yn(e){G=new Map(G),G.delete(e)}function bn(e,t){for(let[t]of G)if(t.id===e)return t}function K(e,t){for(let[t,n]of G)if(t.id===e)return n;if(t)throw Error(`Could not find data for Group with id ${e}`)}function q(){return G}function xn(e,t){return fn.addListener(`axisChange`,n=>{n.axis.id===e&&t(n)})}function J(e,t,n){let r=G.get(e);G=new Map(G),G.set(e,t);let i={axis:e,isUserInteraction:n?.isUserInteraction===!0,prev:r,next:t};pn>0?mn.push(i):fn.emit(`axisChange`,i)}function Sn(e,{pointerId:t,pointerType:n}){return t===e.pointerId||n===`pen`&&e.pointerType===`pen`}function Cn(e,t,n={}){return e.ownerDocument===t&&(n.pointerId===void 0||Sn(e,n))}function wn(e,t){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 Y(e,t,n=0){return Math.abs(W(e)-W(t))<=n}function X(e,t){return Y(e,t)?0:e>t?1:-1}function Tn({overrideDisabledItems:e,itemConstraints:t,prevSize:n,size:r}){let{collapsedSize:i=0,collapsedThreshold:a,collapsible:o,disabled:s,maxSize:c=100,minSize:l=0}=t;if(s&&!e)return n;if(X(r,l)<0)if(o){let e=a??(l-i)/2,t=X(n,i)<=0,o=t?i+e:l-e,s=X(r,o);r=X(r,i)<=0||s<0||a!==void 0&&t&&s===0?i:l}else r=l;return r=Math.min(c,r),r=W(r),r}function En({delta:e,initialLayout:t,itemConstraints:n,pivotIndices:r,prevLayout:i,trigger:a}){if(Y(e,0))return t;let o=a===`imperative-api`,s=n.map(({itemId:e})=>t[e]),c=n.map(({itemId:e})=>i[e]),l=[...s],[u,d]=r;L(u!=null,`Invalid first pivot index`),L(d!=null,`Invalid second pivot index`);let f=0;switch(a){case`keyboard`:{let t=e<0?d:u,r=n[t];L(r,`Panel constraints not found for index ${t}`);let{collapsedSize:i=0,collapsible:a,minSize:o=0}=r;if(a){let n=s[t];if(L(n!=null,`Previous layout not found for panel index ${t}`),Y(n,i)){let t=o-n;X(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}{let t=e<0?u:d,r=n[t];L(r,`No panel constraints found for index ${t}`);let{collapsedSize:i=0,collapsible:a,minSize:o=0}=r;if(a){let n=s[t];if(L(n!=null,`Previous layout not found for panel index ${t}`),Y(n,o)){let t=n-i;X(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}break;default:{let t=e<0?d:u,r=n[t];L(r,`Panel constraints not found for index ${t}`);let i=s[t],{collapsedSize:a,collapsedThreshold:o,collapsible:c,minSize:l}=r;if(c&&X(i,l)<0){let t=l-a,n=o??t/2;if(X(i+Math.abs(e),l)<0){let r=X(Math.abs(e),n);e=r>0||r===0&&o===void 0&&e<0?e<0?-t:t:0}}break}}{let t=e<0?1:-1,r=e<0?d:u,i=0;for(;;){let e=s[r];L(e!=null,`Previous layout not found for panel index ${r}`);let a=Tn({overrideDisabledItems:o,itemConstraints:n[r],prevSize:e,size:100})-e;if(i+=a,r+=t,r<0||r>=n.length)break}let a=Math.min(Math.abs(e),Math.abs(i));e=e<0?0-a:a}{let t=e<0?u:d;for(;t>=0&&t<n.length;){let r=Math.abs(e)-Math.abs(f),i=s[t];L(i!=null,`Previous layout not found for panel index ${t}`);let a=i-r,c=Tn({overrideDisabledItems:o,itemConstraints:n[t],prevSize:i,size:a});if(!Y(i,c)&&(f+=i-c,l[t]=c,f.toFixed(3).localeCompare(Math.abs(e).toFixed(3),void 0,{numeric:!0})>=0))break;e<0?t--:t++}}if(wn(c,l))return i;{let t=e<0?d:u,r=s[t];L(r!=null,`Previous layout not found for panel index ${t}`);let i=r+f,a=Tn({overrideDisabledItems:o,itemConstraints:n[t],prevSize:r,size:i});if(l[t]=a,!Y(a,i)){let t=i-a,r=e<0?d:u;for(;r>=0&&r<n.length;){let i=l[r];L(i!=null,`Previous layout not found for panel index ${r}`);let a=i+t,s=Tn({overrideDisabledItems:o,itemConstraints:n[r],prevSize:i,size:a});if(Y(i,s)||(t-=s-i,l[r]=s),Y(t,0))break;e>0?r--:r++}}}return Y(Object.values(l).reduce((e,t)=>t+e,0),100,.1)?l.reduce((e,t,r)=>(e[n[r].itemId]=t,e),{}):i}function Z(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(t[n]===void 0||X(e[n],t[n])!==0)return!1;return!0}function Dn(e){gn();try{On(e)}finally{vn()}}function On({commit:e,event:t,hitRegions:n,initialLayoutMap:r,mountedAxes:i,pointerDownAtPoint:a,prevCursorFlags:o}){let s=0,c=B(),l=c.state===`active`?c.previews:[],u=new Map(c.state===`active`?c.previewLayoutMap:void 0);n.forEach(n=>{let{axis:o,axisSize:c}=n,{orientation:d,items:f}=o;if(e&&o.resizePreviewMode!==`separator`)return;let{disableCursor:p}=o.mutableState,m=0;m=a?d===`horizontal`?(t.clientX-a.x)/c*100:(t.clientY-a.y)/c*100:d===`horizontal`?t.clientX<0?-100:100:t.clientY<0?-100:100;let h=r.get(o),g=i.get(o);if(!h||!g)return;let{defaultLayoutDeferred:_,derivedItemConstraints:v,axisSize:y,layout:b,separatorToItems:x}=g;if(v&&b&&x){let t=o.resizePreviewMode===`separator`?u.get(o)??b:b,r=En({delta:m,initialLayout:h,itemConstraints:v,pivotIndices:n.items.map(e=>f.indexOf(e)),prevLayout:t,trigger:`mouse-or-touch`});if(o.resizePreviewMode===`separator`&&!e&&!Z(r,t)){u.set(o,r);let e=0,t=f.map(t=>(e+=r[t.id]-h[t.id],c/100*e));l=l.map(e=>{if(e.axis!==o)return e;let n=t[e.itemIndex];return n===e.offset?e:{...e,offset:n}})}if(Z(r,t)&&m!==0&&!p)switch(d){case`horizontal`:s|=m<0?zt:Bt;break;case`vertical`:s|=m<0?Vt:Ht;break}(o.resizePreviewMode!==`separator`||e)&&!Z(r,b)&&J(n.axis,{defaultLayoutDeferred:_,derivedItemConstraints:v,axisSize:y,layout:r,requestedAxisSize:y,requestedLayout:r,separatorToItems:x})}});let d=0;t.movementX===0?d|=o&Ut:d|=s&Ut,t.movementY===0?d|=o&Wt:d|=s&Wt;let f=c.state===`active`&&(t.clientX!==c.pointerDownAtPoint.x||t.clientY!==c.pointerDownAtPoint.y);Pt(d,l,u,f)}function kn(e,t){let n=B();if(n.state!==`active`||!Cn(n,e,t))return;let r=q();gn();try{Dn({commit:!0,event:t,hitRegions:n.hitRegions,initialLayoutMap:n.initialLayoutMap,mountedAxes:r,pointerDownAtPoint:n.pointerDownAtPoint,prevCursorFlags:n.cursorFlags}),_n(),V({cursorFlags:0,state:`inactive`}),n.hitRegions.length>0&&(t.preventDefault?.(),n.hitRegions.forEach(e=>{if(!r.has(e.axis))return;let t=K(e.axis.id,!0);J(e.axis,t,{isUserInteraction:!0})}))}finally{vn()}}function An(e){if(e.defaultPrevented)return;let{clientX:t,clientY:n,movementX:r,movementY:i}=e;kn(e.currentTarget,{clientX:t,clientY:n,movementX:r,movementY:i})}function jn(e,t,n){let r,i={x:1/0,y:1/0};for(let a of t){let t=rn(n,a.rect);switch(e){case`horizontal`:(t.x<i.x||t.x===i.x&&t.y<=i.y)&&(r=a,i=t);break;case`vertical`:(t.y<i.y||t.y===i.y&&t.x<=i.x)&&(r=a,i=t);break}}return r?{distance:i,hitRegion:r}:void 0}function Mn(e){return typeof e==`object`&&!!e&&`nodeType`in e&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE}function Nn(e,t){if(e===t)throw Error(`Cannot compare node with itself`);let n={a:zn(e),b:zn(t)},r;for(;n.a.at(-1)===n.b.at(-1);)r=n.a.pop(),n.b.pop();L(r,`Stacking order can only be calculated for elements with a common ancestor`);let i={a:Rn(Ln(n.a)),b:Rn(Ln(n.b))};if(i.a===i.b){let e=r.childNodes,t={a:n.a.at(-1),b:n.b.at(-1)},i=e.length;for(;i--;){let n=e[i];if(n===t.a)return 1;if(n===t.b)return-1}}return Math.sign(i.a-i.b)}var Pn=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function Fn(e){let t=getComputedStyle(Bn(e)??e).display;return t===`flex`||t===`inline-flex`}function In(e){let t=getComputedStyle(e);return!!(t.position===`fixed`||t.zIndex!==`auto`&&(t.position!==`static`||Fn(e))||+t.opacity<1||`transform`in t&&t.transform!==`none`||`webkitTransform`in t&&t.webkitTransform!==`none`||`mixBlendMode`in t&&t.mixBlendMode!==`normal`||`filter`in t&&t.filter!==`none`||`webkitFilter`in t&&t.webkitFilter!==`none`||`isolation`in t&&t.isolation===`isolate`||Pn.test(t.willChange)||t.webkitOverflowScrolling===`touch`)}function Ln(e){let t=e.length;for(;t--;){let n=e[t];if(L(n,`Missing node`),In(n))return n}return null}function Rn(e){return e&&Number(getComputedStyle(e).zIndex)||0}function zn(e){let t=[];for(;e;)t.push(e),e=Bn(e);return t}function Bn(e){let{parentNode:t}=e;return Mn(t)?t.host:t}function Vn(e,t){return e.x<t.x+t.width&&e.x+e.width>t.x&&e.y<t.y+t.height&&e.y+e.height>t.y}function Hn(e){try{return e.matches(`:modal`)}catch{return!1}}function Un({axisElement:e,hitRegion:t,pointerEventTarget:n}){if(nn(n)){let t=n.closest(`dialog`);if(t&&!t.contains(e)&&Hn(t))return!1}if(!nn(n)||n.contains(e)||e.contains(n))return!0;if(Nn(n,e)>0){let r=n;for(;r;){if(r.contains(e))return!0;if(Vn(r.getBoundingClientRect(),t))return!1;r=r.parentElement}}return!0}function Wn(e,t,n){let r=[];return t.forEach((t,i)=>{if(i.disabled||i.element.ownerDocument!==n)return;let a=on({axis:i}),o=jn(i.orientation,a,{x:e.clientX,y:e.clientY});o&&o.distance.x<=0&&o.distance.y<=0&&Un({axisElement:i.element,hitRegion:o.hitRegion.rect,pointerEventTarget:e.target})&&r.push(o.hitRegion)}),r}function Q({layout:e,itemConstraints:t}){let n=t.map(({itemId:t})=>e[t]),r=[...n],i=r.reduce((e,t)=>e+t,0);if(Object.keys(e).length!==t.length)throw Error(`Invalid ${t.length} panel layout: ${Object.values(e).map(e=>`${e}%`).join(`, `)}`);if(!Y(i,100)&&r.length>0)for(let e=0;e<t.length;e++){let t=r[e];L(t!=null,`No layout data found for index ${e}`),r[e]=100/i*t}let a=0;for(let e=0;e<t.length;e++){let i=n[e];L(i!=null,`No layout data found for index ${e}`);let o=r[e];L(o!=null,`No layout data found for index ${e}`);let s=Tn({overrideDisabledItems:!0,itemConstraints:t[e],prevSize:i,size:o});o!=s&&(a+=o-s,r[e]=s)}if(!Y(a,0))for(let e=0;e<t.length;e++){let n=r[e];L(n!=null,`No layout data found for index ${e}`);let i=n+a,o=Tn({overrideDisabledItems:!0,itemConstraints:t[e],prevSize:n,size:i});if(n!==o&&(a-=o-n,r[e]=o,Y(a,0)))break}return r.reduce((e,n,r)=>(e[t[r].itemId]=n,e),{})}function Gn({axisId:e,itemId:t}){let n=()=>{let t=q();for(let[n,{defaultLayoutDeferred:r,derivedItemConstraints:i,layout:a,axisSize:o,separatorToItems:s}]of t)if(n.id===e)return{defaultLayoutDeferred:r,derivedItemConstraints:i,axis:n,axisSize:o,layout:a,separatorToItems:s};throw Error(`Group ${e} not found`)},r=()=>{let e=n().derivedItemConstraints.find(e=>e.itemId===t);if(e!==void 0)return e;throw Error(`Panel constraints not found for Panel ${t}`)},i=()=>{let e=n().axis.items.find(e=>e.id===t);if(e!==void 0)return e;throw Error(`Layout not found for Panel ${t}`)},a=()=>{let e=n().layout[t];if(e!==void 0)return e;throw Error(`Layout not found for Panel ${t}`)},o=({nextSize:e,items:n,prevLayout:r,derivedItemConstraints:i})=>{let o=a(),s=n.findIndex(e=>e.id===t),c=s===0,l=s===n.length-1;if(l&&e<o&&(c||n.slice(0,s).every((e,t)=>{let n=i[t];return n?.collapsible&&Y(n.collapsedSize,r[n.itemId])}))){let e=n.slice(0,s).reduce((e,t)=>e+r[t.id],0);return{...r,[t]:W(100-e)}}return En({delta:l?o-e:e-o,initialLayout:r,itemConstraints:i,pivotIndices:l?[s-1,s]:[s,s+1],prevLayout:r,trigger:`imperative-api`})},s=e=>{if(e===a())return;let{defaultLayoutDeferred:t,derivedItemConstraints:r,axis:i,axisSize:s,layout:c,separatorToItems:l}=n(),u=Q({layout:o({nextSize:e,items:i.items,prevLayout:c,derivedItemConstraints:r}),itemConstraints:r});Z(c,u)||J(i,{defaultLayoutDeferred:t,derivedItemConstraints:r,axisSize:s,layout:u,requestedAxisSize:s,requestedLayout:u,separatorToItems:l})};return{collapse:()=>{let{collapsible:e,collapsedSize:t}=r(),{mutableValues:n}=i(),o=a();e&&o!==t&&(n.expandToSize=o,s(t))},expand:()=>{let{collapsible:e,collapsedSize:t,minSize:n}=r(),{mutableValues:o}=i(),c=a();if(e&&c===t){let e=o.expandToSize??n;e===0&&(e=1),s(e)}},getSize:()=>{let{axis:e}=n(),r=a(),{element:o}=i();return{asPercentage:r,inPixels:e.layoutStrategy?e.layoutStrategy.getItemSizeInPixels(t):e.orientation===`horizontal`?o.offsetWidth:o.offsetHeight}},isCollapsed:()=>{let{collapsible:e,collapsedSize:t}=r(),n=a();return e&&Y(t,n)},resize:e=>{let{axis:t}=n(),{element:r}=i(),a=H({axis:t});s(W(U({axisSize:a,itemElement:r,styleProp:e})/a*100))}}}function Kn(e){e.defaultPrevented||Wn(e,q(),e.currentTarget).forEach(t=>{if(t.separator&&!t.separator.disableDoubleClick){let n=t.items.find(e=>e.constraintProps.defaultSize!==void 0);if(n){let r=n.constraintProps.defaultSize,i=Gn({axisId:t.axis.id,itemId:n.id});i&&r!==void 0&&(i.resize(r),e.preventDefault())}}})}function qn(e){let t=q();for(let[n]of t)if(n.separators.some(t=>t.element===e))return n;throw Error(`Could not find parent Group for separator element`)}function Jn({axisId:e}){let t=()=>{let t=q();for(let[n,r]of t)if(n.id===e)return{axis:n,...r};throw Error(`Could not find Group with id "${e}"`)};return{getLayout(){let{defaultLayoutDeferred:e,layout:n}=t();return e?{}:n},setLayout(e){let{defaultLayoutDeferred:n,derivedItemConstraints:r,axis:i,axisSize:a,layout:o,separatorToItems:s}=t(),c=Q({layout:e,itemConstraints:r});return n?o:(Z(o,c)||J(i,{defaultLayoutDeferred:n,derivedItemConstraints:r,axisSize:a,layout:c,requestedAxisSize:a,requestedLayout:c,separatorToItems:s}),c)}}}function $(e,t){let n=qn(e),r=K(n.id,!0),i=n.separators.find(t=>t.element===e);L(i,`Matching separator not found`);let a=r.separatorToItems.get(i);L(a,`Matching panels not found`);let o=a.map(e=>n.items.indexOf(e)),s=Jn({axisId:n.id}).getLayout(),c=Q({layout:En({delta:t,initialLayout:s,itemConstraints:r.derivedItemConstraints,pivotIndices:o,prevLayout:s,trigger:`keyboard`}),itemConstraints:r.derivedItemConstraints});Z(s,c)||J(n,{defaultLayoutDeferred:r.defaultLayoutDeferred,derivedItemConstraints:r.derivedItemConstraints,axisSize:r.axisSize,layout:c,requestedAxisSize:r.axisSize,requestedLayout:c,separatorToItems:r.separatorToItems},{isUserInteraction:!0})}function Yn(e){if(e.defaultPrevented)return;let t=e.currentTarget,n=qn(t);if(!(n.disabled||n.separators.find(e=>e.element===t)?.disabled))switch(e.key){case`ArrowDown`:e.preventDefault(),n.orientation===`vertical`&&$(t,5);break;case`ArrowLeft`:e.preventDefault(),n.orientation===`horizontal`&&$(t,-5);break;case`ArrowRight`:e.preventDefault(),n.orientation===`horizontal`&&$(t,5);break;case`ArrowUp`:e.preventDefault(),n.orientation===`vertical`&&$(t,-5);break;case`End`:e.preventDefault(),$(t,100);break;case`Enter`:{e.preventDefault();let{derivedItemConstraints:r,layout:i,separatorToItems:a}=K(n.id,!0),o=n.separators.find(e=>e.element===t);L(o,`Matching separator not found`);let s=a.get(o);L(s,`Matching panels not found`);let c=s[0],l=r.find(e=>e.itemId===c.id);if(L(l,`Panel metadata not found`),l.collapsible){let e=i[c.id];$(t,(l.collapsedSize===e?n.mutableState.expandedItemSizes[c.id]??l.minSize:l.collapsedSize)-e)}break}case`F6`:{e.preventDefault();let t=n.separators.map(e=>e.element),r=Array.from(t).findIndex(t=>t===e.currentTarget);L(r!==null,`Index not found`),t[e.shiftKey?r>0?r-1:t.length-1:r+1<t.length?r+1:0].focus({preventScroll:!0});break}case`Home`:e.preventDefault(),$(t,-100);break}}function Xn(e,t){let n=B();if(n.state!==`active`||!Cn(n,e,t))return!1;let r=q();gn();try{n.previewLayoutMap.forEach((e,t)=>{let n=r.get(t);t.resizePreviewMode===`separator`&&n&&!Z(e,n.layout)&&J(t,{...n,layout:e,requestedAxisSize:n.axisSize,requestedLayout:e})}),_n(),V({cursorFlags:0,state:`inactive`}),n.hitRegions.forEach(e=>{if(!r.has(e.axis))return;let t=K(e.axis.id,!0);J(e.axis,t,{isUserInteraction:!0})})}finally{vn()}return!0}function Zn(e){let t=B();if(t.state!==`active`)return;let n=t.hitRegions.flatMap(({separator:e})=>e?[e.element]:[]);!n.some(t=>t===e.target)||n.some(t=>t.hasPointerCapture?.(e.pointerId))||Xn(e.currentTarget,e)}function Qn(e){Xn(e.currentTarget,e)}function $n(e,t){let{element:n,orientation:r,items:i}=e,a=n.getBoundingClientRect(),o=r===`horizontal`;return on({expandHitTargets:!1,axis:e,includeDisabled:!0}).map(({items:r,rect:s,separator:c},l)=>{let u=i.indexOf(r[0]),d=o?s.left+s.width/2:s.top+s.height/2;return{active:t.some(t=>t.axis!==e||t.items[0]!==r[0]?!1:c||t.separator?t.separator===c:Y(d,o?t.rect.left+t.rect.width/2:t.rect.top+t.rect.height/2)),axis:e,key:c?`separator-${c.id}`:`panel-${r[0].id}-${l}`,offset:0,itemIndex:u,rect:new DOMRect((o&&!c?d:s.left)-a.left-n.clientLeft+n.scrollLeft,(!o&&!c?d:s.top)-a.top-n.clientTop+n.scrollTop,o&&!c?0:s.width,!o&&!c?0:s.height),separator:c}})}function er(e){if(e.defaultPrevented||e.pointerType===`mouse`&&e.button>0)return;let t=B();if(t.state===`active`){Sn(t,e)&&Xn(t.ownerDocument,t);return}let n=q(),r=Wn(e,n,e.currentTarget);if(r.length===0)return;let i=new Map,a=!1;r.forEach(e=>{e.separator&&(a||(a=!0,e.separator.element.focus({focusVisible:!1,preventScroll:!0})));let t=n.get(e.axis);t&&i.set(e.axis,t.layout)});let o=Array.from(i.keys()).flatMap(e=>e.resizePreviewMode===`separator`?$n(e,r):[]);V({cursorFlags:0,didPointerMove:!1,hitRegions:r,initialLayoutMap:i,ownerDocument:e.currentTarget,pointerDownAtPoint:{x:e.clientX,y:e.clientY},pointerId:e.pointerId,pointerType:e.pointerType,previewLayoutMap:new Map(i),previews:o,state:`active`}),e.preventDefault()}function tr(e){let t=e.currentTarget,n=q(),r=B();switch(r.state){case`active`:if(!Cn(r,t,e))return;Dn({commit:!1,event:e,hitRegions:r.hitRegions,initialLayoutMap:r.initialLayoutMap,mountedAxes:n,prevCursorFlags:r.cursorFlags})}}function nr(e){if(e.defaultPrevented)return;let t=e.currentTarget,n=B(),r=q();switch(n.state){case`active`:if(!Cn(n,t,e))return;if(e.buttons===0){Xn(t,e);return}for(let t of n.hitRegions)if(t.separator){let{element:n}=t.separator;n.isConnected&&!n.hasPointerCapture?.(e.pointerId)&&n.setPointerCapture?.(e.pointerId)}Dn({commit:!1,event:e,hitRegions:n.hitRegions,initialLayoutMap:n.initialLayoutMap,mountedAxes:r,pointerDownAtPoint:n.pointerDownAtPoint,prevCursorFlags:n.cursorFlags});break;default:{let i=Wn(e,r,t);i.length===0?n.state!==`inactive`&&V({cursorFlags:0,state:`inactive`}):V({cursorFlags:0,hitRegions:i,ownerDocument:t,state:`hover`});break}}}function rr(e){if(e.relatedTarget instanceof HTMLIFrameElement){let t=B();switch(t.state){case`hover`:t.ownerDocument===e.currentTarget&&V({cursorFlags:0,state:`inactive`})}}}function ir(e){e.defaultPrevented||e.pointerType===`mouse`&&e.button>0||kn(e.currentTarget,e)}function ar(e){e.target===e.currentTarget&&Xn(e.currentTarget.document)}function or(e){Xn(e.currentTarget.document)}function sr(e){let t=0,n=0,r={};for(let i of e)if(i.defaultSize!==void 0){t++;let e=W(i.defaultSize);n+=e,r[i.itemId]=e}else r[i.itemId]=void 0;let i=e.length-t;if(i!==0){let t=W((100-n)/i);for(let n of e)n.defaultSize===void 0&&(r[n.itemId]=t)}return r}function cr(e,t){let n=e.map(e=>e.id),r=Object.keys(t);if(n.length!==r.length)return!1;for(let e of n)if(!r.includes(e))return!1;return!0}function lr({axis:e,itemConstraints:t}){let n=e.items.map(({id:e})=>e).join(`,`),r=e.mutableState.defaultLayout;return e.mutableState.layouts[n]??(r&&cr(e.items,r)?r:sr(t))}function ur({itemIds:e,layout:t}){return Q({layout:t,itemConstraints:e.map(e=>({collapsedSize:0,collapsible:!1,defaultSize:void 0,disabled:void 0,itemId:e,maxSize:100,minSize:0}))})}function dr(e,t,n){if(!n[0])return;let r=e.items.find(e=>e.element===t);if(!r||!r.onResize)return;let i=H({axis:e}),a=e.orientation===`horizontal`?r.element.offsetWidth:r.element.offsetHeight,o=r.mutableValues.prevSize,s={asPercentage:W(a/i*100),inPixels:a};r.mutableValues.prevSize=s,r.onResize(s,r.id,o)}function fr(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(e[n]!==t[n])return!1;return!0}function pr(e,t){return e.length===t.length?e.every((e,n)=>fr(e,t[n])):!1}function mr({axis:e,nextAxisSize:t,prevAxisSize:n,prevLayout:r}){if(n<=0||t<=0||n===t)return r;let i=0,a=0,o=!1,s=new Map,c=[];for(let l of e.items){let e=r[l.id]??0;switch(l.constraintProps.groupResizeBehavior){case`preserve-pixel-size`:{o=!0;let r=W(e/100*n/t*100);s.set(l.id,r),i+=r;break}default:c.push(l.id),a+=e;break}}if(!o||c.length===0)return r;let l=100-i,u={...r};if(s.forEach((e,t)=>{u[t]=e}),a>0)for(let e of c)u[e]=W((r[e]??0)/a*l);else{let e=W(l/c.length);for(let t of c)u[t]=e}return u}var hr=new Map,gr=!1;function _r(e){let t=!0;L(e.element.ownerDocument.defaultView,`Cannot register an unmounted Group`);let n=e.element.ownerDocument.defaultView.ResizeObserver,r=new Set,i=new Set,a=new n(n=>{let r;gn();try{for(let i of n){let{borderBoxSize:n,target:a}=i;if(a===e.element){if(t){let t=H({axis:e});if(t===0)break;let n=K(e.id);if(!n)break;let r=dn(e),i=n.requestedAxisSize,a=n.requestedLayout;n.defaultLayoutDeferred&&(i=t,a=ur({itemIds:e.items.map(({id:e})=>e),layout:lr({axis:e,itemConstraints:r})}));let o=Q({layout:mr({axis:e,nextAxisSize:t,prevAxisSize:i,prevLayout:a}),itemConstraints:r});if(!n.defaultLayoutDeferred&&Z(n.layout,o)&&pr(n.derivedItemConstraints,r)&&n.axisSize===t)continue;J(e,{defaultLayoutDeferred:!1,derivedItemConstraints:r,axisSize:t,layout:o,requestedAxisSize:i,requestedLayout:a,separatorToItems:n.separatorToItems})}}else try{dr(e,a,n)}catch(e){r??={error:e}}}}finally{vn()}if(r)throw r.error});a.observe(e.element),e.items.forEach(e=>{L(!r.has(e.id),`Panel ids must be unique; id "${e.id}" was used more than once`),r.add(e.id),e.onResize&&a.observe(e.element)});let o=H({axis:e}),s=dn(e),c=lr({axis:e,itemConstraints:s}),l=Q({layout:c,itemConstraints:s}),u=e.element.ownerDocument,d=u.defaultView;hr.set(u,(hr.get(u)??0)+1);let f=new Map;return on({axis:e,includeDisabled:!0}).forEach(e=>{e.separator&&f.set(e.separator,e.items)}),J(e,{defaultLayoutDeferred:o===0,derivedItemConstraints:s,axisSize:o,layout:l,requestedAxisSize:o,requestedLayout:ur({itemIds:e.items.map(({id:e})=>e),layout:c}),separatorToItems:f}),e.separators.forEach(e=>{L(!i.has(e.id),`Separator ids must be unique; id "${e.id}" was used more than once`),i.add(e.id),e.element.addEventListener(`keydown`,Yn)}),gr||(gr=!0,Nt(Zt)),hr.get(u)===1&&(u.addEventListener(`contextmenu`,An,!0),u.addEventListener(`dblclick`,Kn,!0),u.addEventListener(`lostpointercapture`,Zn,!0),u.addEventListener(`pointercancel`,Qn,!0),u.addEventListener(`pointerdown`,er,!0),u.addEventListener(`pointerleave`,tr),u.addEventListener(`pointermove`,nr),u.addEventListener(`pointerout`,rr),u.addEventListener(`pointerup`,ir,!0),d?.addEventListener(`blur`,ar),d?.addEventListener(`pagehide`,or)),function(){t=!1,hr.set(u,Math.max(0,(hr.get(u)??0)-1)),yn(e),It(e),e.separators.forEach(e=>{e.element.removeEventListener(`keydown`,Yn)}),hr.get(u)||(u.removeEventListener(`contextmenu`,An,!0),u.removeEventListener(`dblclick`,Kn,!0),u.removeEventListener(`lostpointercapture`,Zn,!0),u.removeEventListener(`pointercancel`,Qn,!0),u.removeEventListener(`pointerdown`,er,!0),u.removeEventListener(`pointerleave`,tr),u.removeEventListener(`pointermove`,nr),u.removeEventListener(`pointerout`,rr),u.removeEventListener(`pointerup`,ir,!0),d?.removeEventListener(`blur`,ar),d?.removeEventListener(`pagehide`,or)),a.disconnect()}}function vr({derivedItemConstraints:e,axis:t,layout:n,prevLayout:r,requestedLayout:i}){let a=t.items.map(({id:e})=>e).join(`,`);t.mutableState.layouts[a]=i,r&&e.forEach(e=>{if(e.collapsible){let i=Y(e.collapsedSize,n[e.itemId]),a=Y(e.collapsedSize,r[e.itemId]);i&&!a&&(t.mutableState.expandedItemSizes[e.itemId]=r[e.itemId])}})}function yr(){let[e,t]=(0,N.useState)({});return[e,(0,N.useCallback)(()=>t({}),[])]}function br(e){let t=(0,N.useRef)({...e});return F(()=>{for(let n in e)t.current[n]=e[n]},[e]),t.current}var xr=(0,N.createContext)(null);function Sr({layout:e,itemConstraints:t,itemId:n,itemIndex:r}){let i,a,o=e[n],s=t.find(e=>e.itemId===n);if(s){let c=s.maxSize,l=s.collapsible?s.collapsedSize:s.minSize,u=[r,r+1];a=Q({layout:En({delta:l-o,initialLayout:e,itemConstraints:t,pivotIndices:u,prevLayout:e}),itemConstraints:t})[n],i=Q({layout:En({delta:c-o,initialLayout:e,itemConstraints:t,pivotIndices:u,prevLayout:e}),itemConstraints:t})[n]}return{valueControls:n,valueMax:i,valueMin:a,valueNow:o}}function Cr({attributes:e,axisId:t,axisOrientation:n,children:r,className:i,"data-testid":a,disableCursor:o,disabled:s,disableDoubleClick:c,elementRef:l,id:u,isSharedHitRegion:d,preview:f,registerSeparator:p,requiredStyle:m,style:h,styleDefaults:g,tabIndex:_=0,updateSeparatorProps:v}){let y=br({disabled:s,disableDoubleClick:c,children:r,className:i,preview:f,style:h}),[b,x]=(0,N.useState)({}),[S,C]=(0,N.useState)(`inactive`),[w,T]=(0,N.useState)(!1),E=(0,N.useRef)(null),D=(0,N.useRef)(null),O=pt(E,l),k=n===`horizontal`?`vertical`:`horizontal`;F(()=>{let e=E.current;if(e!==null){let n={disabled:y.disabled,disableDoubleClick:y.disableDoubleClick,element:e,id:u,get children(){return y.children},get className(){return y.className},get preview(){return y.preview},get style(){return y.style}};D.current=n;let r=p(n),i=Nt(e=>{C(e.next.state!==`inactive`&&e.next.hitRegions.some(e=>e.separator===n||(d?.(e)??!1))?e.next.state:`inactive`)}),a=xn(t,e=>{let{derivedItemConstraints:t,layout:r,separatorToItems:i}=e.next,a=i.get(n);if(a){let n=a[0],i=t.findIndex(e=>e.itemId===n.id),{layoutStrategy:o}=e.axis;x({...Sr({layout:r,itemConstraints:t,itemId:n.id,itemIndex:i}),...o?.getItemAriaControls&&{valueControls:o.getItemAriaControls(n.id)}})}});return()=>{D.current=null,i(),a(),r()}}},[t,u,d,p,y]),F(()=>{let e=D.current;e&&Ft(e)},[f]),(0,N.useEffect)(()=>{v(u,{disabled:s,disableDoubleClick:c})},[s,c,u,v]);let A;s&&!o&&(A=`not-allowed`);let j;if(s)j=`disabled`;else switch(S){case`active`:j=`active`;break;default:j=w?`focus`:S}return(0,P.jsx)(`div`,{...e,"aria-controls":b.valueControls,"aria-disabled":s||void 0,"aria-orientation":k,"aria-valuemax":b.valueMax,"aria-valuemin":b.valueMin,"aria-valuenow":b.valueNow,children:r,className:i,"data-separator":j,"data-testid":a,id:u,onBlur:()=>T(!1),onFocus:()=>T(!0),ref:O,role:`separator`,style:{...g,cursor:A,...h,...m,touchAction:`none`},tabIndex:s?void 0:_})}function wr({axis:e,children:t,className:n,crossSpan:r,crossStart:i,disabled:a,elementRef:o,index:s,style:c}){let l=ft(void 0),{getDisableCursor:u,getResizeAxisId:d,gutters:f,registerSeparator:p,separatorPlacements:m,trackCounts:h,updateSeparatorProps:g}=St(),_=d(e),v=e===`column`?`row`:`column`,y=h[v],b=!!a||!bt(s,h[e]),x=!0;for(let t of m.values())if(t.axis===e&&t.index===s&&!t.disabled&&t.crossStart<i){x=!1;break}let S=(0,N.useCallback)(e=>e.axis.id===_&&e.axis.items.indexOf(e.items[1])===s,[_,s]),C=(0,N.useCallback)(t=>p({axis:e,crossSpan:r,crossStart:i,disabled:!!a,index:s},t),[e,r,i,a,s,p]),w=vt(s),T=yt({crossCount:y,crossSpan:r,crossStart:i,hasGutters:f[v]});return(0,P.jsx)(Cr,{axisId:_,axisOrientation:e===`column`?`horizontal`:`vertical`,className:n,disableCursor:u(),disabled:b,disableDoubleClick:void 0,elementRef:o,id:l,isSharedHitRegion:S,registerSeparator:C,requiredStyle:{gridColumn:e===`column`?w:T,gridRow:e===`row`?w:T},style:c,tabIndex:x?0:-1,updateSeparatorProps:g,children:t})}function Tr(e){let{children:t,className:n,disabled:r,elementRef:i,style:a}=e;return e.type===`column`?(0,P.jsx)(wr,{axis:`column`,className:n,crossSpan:e.rowSpan,crossStart:e.row??0,disabled:r,elementRef:i,index:e.column,style:a,children:t}):(0,P.jsx)(wr,{axis:`row`,className:n,crossSpan:e.columnSpan,crossStart:e.column??0,disabled:r,elementRef:i,index:e.row,style:a,children:t})}Tr.displayName=`Gridline`;var Er=[`column`,`row`],Dr={columns:{},rows:{}};function Or({children:e,className:t,columns:n,defaultLayout:r,disableCursor:i,disabled:a,elementRef:o,gridRef:s,id:c,onLayoutChange:l,onLayoutChanged:u,resizeTargetMinimumSize:d={coarse:20,fine:10},rows:f,style:p,...m}){let h=ft(c),g=(0,N.useCallback)(e=>e===`column`?`${h}:columns`:`${h}:rows`,[h]),_=kr(n,`columns`),v=kr(f,`rows`),y=e=>e===`column`?_:v,b=(0,N.useRef)({onLayoutChange:Dr,onLayoutChanged:Dr}),x=I(e=>{Nr(b.current.onLayoutChange,e)||(b.current.onLayoutChange=e,l?.(e))}),S=I((e,t,n)=>{Nr(b.current.onLayoutChanged,e)||(b.current.onLayoutChanged=e,u?.(e,{isUserInteraction:t,requestedLayout:n}))}),C=(0,N.useRef)(null),w=pt(C,o),[T,E]=yr(),D=(0,N.useRef)({cells:[],column:{expandedItemSizes:{},layouts:{}},loggedErrors:new Set,row:{expandedItemSizes:{},layouts:{}},separators:new Map}),O={column:!1,row:!1};for(let e of D.current.separators.values())O[e.axis]=!0;Ar(e,O);let k=br({defaultLayout:r,disableCursor:i,resizeTargetMinimumSize:d}),A=I(()=>!!k.disableCursor),j=(0,N.useCallback)(e=>{let t=D.current;return t.cells=[...t.cells,e],E(),()=>{t.cells=t.cells.filter(t=>t!==e),E()}},[E]),M=(0,N.useCallback)((e,t)=>{let n=D.current;return n.separators=new Map(n.separators),n.separators.set(t,e),E(),()=>{n.separators=new Map(n.separators),n.separators.delete(t),E()}},[E]),ee=(0,N.useCallback)((e,{disabled:t,disableDoubleClick:n})=>{for(let r of D.current.separators.keys())r.id===e&&(r.disabled=t,r.disableDoubleClick=n)},[]),te=D.current.separators,ne=(0,N.useMemo)(()=>({getDisableCursor:A,getResizeAxisId:g,gutters:{column:O.column,row:O.row},id:h,registerCell:j,registerSeparator:M,separatorPlacements:te,trackCounts:{column:_.length,row:v.length},updateSeparatorProps:ee}),[_.length,A,g,O.column,O.row,h,j,M,v.length,te,ee]),re=(0,N.useRef)([]);F(()=>{let e=C.current;if(e===null)return;let t=D.current,n=Mr({cells:t.cells,separatorPlacements:t.separators,trackCounts:{column:_.length,row:v.length}});n.forEach(e=>{t.loggedErrors.has(e)||console.error(e)}),t.loggedErrors=new Set(n);let r=e=>Array.from(t.separators.entries()).filter(([,t])=>t.axis===e).sort(([,e],[,t])=>e.index-t.index).map(([e])=>e),i=Er.map(n=>{let i=n===`column`?_:v,o=n===`column`?v:_,s=i.map(e=>e.id),c=g(n),l=r(n),u=l.length>0,d=i.map(({id:t,...n},r)=>({element:e,id:s[r],idIsStable:!0,mutableValues:{expandToSize:void 0,prevSize:void 0},onResize:void 0,constraintProps:n})),f=()=>{let r=[];if(u){for(let[e,a]of t.separators)if(a.axis===n&&bt(a.index,i.length)){let t=e.element.getBoundingClientRect();r[a.index]=Math.max(r[a.index]??0,n===`column`?t.width:t.height)}}return kt({axis:n,element:e,gutterSizes:r.filter(e=>e!==void 0),hasGutters:u,layout:K(c)?.layout,trackIds:s})},p,m=k.defaultLayout?.[n===`column`?`columns`:`rows`];if(m!==void 0&&Object.keys(m).length===s.length){p={};for(let e of s){let t=m[e];t!==void 0&&(p[e]=t)}}return{disabled:!!a,element:e,id:c,layoutStrategy:{getItemAriaControls:e=>{let r=s.indexOf(e);return t.cells.filter(e=>{let t=n===`column`?e.column:e.row,i=n===`column`?e.columnSpan:e.rowSpan;return t<=r&&r<t+i}).map(e=>e.element.id).filter(Boolean).join(` `)||void 0},calculateAvailableSize:()=>f().availableSize,calculateHitRegions:({expandHitTargets:e,axis:r,includeDisabled:i})=>Ot({axis:n,cells:t.cells,crossTrackCount:o.length,expandHitTargets:e,resizeAxis:r,axisSize:f().availableSize,includeDisabled:i,separatorPlacements:t.separators}),getItemSizeInPixels:e=>f().trackSizes[s.indexOf(e)]??0},mutableState:{defaultLayout:p,disableCursor:!!k.disableCursor,expandedItemSizes:t[n].expandedItemSizes,layouts:t[n].layouts},orientation:n===`column`?`horizontal`:`vertical`,items:d,resizePreviewMode:`panel`,get resizeTargetMinimumSize(){return k.resizeTargetMinimumSize},separators:l}});re.current=i;let o=i.map(e=>_r(e)),s=()=>{let[e,t]=i.map(e=>K(e.id));if(!(!e||!t||e.defaultLayoutDeferred||t.defaultLayoutDeferred))return{layout:{columns:e.layout,rows:t.layout},requestedLayout:{columns:e.requestedLayout,rows:t.requestedLayout}}};{let e=s();if(e)try{try{x(e.layout)}finally{S(e.layout,!1,e.requestedLayout)}}catch(e){throw re.current=[],o.forEach(e=>e()),e}}let c=i.map(e=>xn(e.id,t=>{let{defaultLayoutDeferred:n,derivedItemConstraints:r,layout:a,requestedLayout:o}=t.next;if(n||r.length===0)return;vr({derivedItemConstraints:r,axis:e,layout:a,prevLayout:t.prev?.layout,requestedLayout:o});let c=s();if(c){let e=B(),n=e.state!==`active`||!e.hitRegions.some(e=>i.includes(e.axis));try{x(c.layout)}finally{n&&S(c.layout,t.isUserInteraction,c.requestedLayout)}}}));return()=>{re.current=[],o.forEach(e=>e()),c.forEach(e=>e())}},[_,a,g,h,S,x,v,T,k]),(0,N.useEffect)(()=>{re.current.forEach(e=>{e.mutableState.defaultLayout=r?.[e.orientation===`horizontal`?`columns`:`rows`],e.mutableState.disableCursor=!!i})}),(0,N.useImperativeHandle)(s,()=>{let e=()=>{let[e,t]=Er.map(g);return!bn(e)||!bn(t)?{columns:{},rows:{}}:{columns:Jn({axisId:e}).getLayout(),rows:Jn({axisId:t}).getLayout()}},t=e=>e.map(e=>`"${e}"`).join(`, `),n=(e,n)=>{let r=g(e),i=()=>{let i=bn(r);return L(i,`Grid "${h}" has not been mounted`),L(i.items.some(e=>e.id===n),`Grid "${h}" no longer contains a ${e} with id "${n}"; ${e} ids are ${t(i.items.map(e=>e.id))}`),Gn({axisId:r,itemId:n})};return{collapse:()=>i().collapse(),expand:()=>i().expand(),getSize:()=>i().getSize(),isCollapsed:()=>i().isCollapsed(),resize:e=>i().resize(e)}};return{getLayout:e,getTrackById:(e,r)=>{let i=e===`column`?_:v,a=`${r}`;return L(i.some(e=>e.id===a),`Grid "${h}" does not contain a ${e} with id "${a}"; ${e} ids are ${t(i.map(e=>e.id))}`),n(e,a)},getTrackByIndex:(e,t)=>{let r=e===`column`?_:v,i=Number.isInteger(t)?r[t]:void 0;return L(i,`Grid "${h}" does not contain a ${e} at index ${t}; it has ${r.length} ${e}s`),n(e,i.id)},setLayout:t=>(Er.forEach(e=>{let n=t[e===`column`?`columns`:`rows`],r=g(e);n&&bn(r)&&Jn({axisId:r}).setLayout(n)}),e())}},[_,g,h,v]);let ie=()=>Er.map(e=>{let t=K(g(e)),n=y(e);return(t&&!t.defaultLayoutDeferred?n.map(e=>`minmax(0, ${t.layout[e.id]??1}fr)`):jr(n,r?.[e===`column`?`columns`:`rows`])).join(O[e]?` auto `:` `)}).join(`|`),[ae,oe]=(0,N.useSyncExternalStore)((0,N.useCallback)(e=>{let t=Er.map(t=>xn(g(t),e));return()=>t.forEach(e=>e())},[g]),ie,ie).split(`|`);return(0,P.jsx)(xt.Provider,{value:ne,children:(0,P.jsx)(`div`,{...m,className:t,"data-grid":!0,"data-testid":mt(m,c),id:h,ref:w,style:{height:`100%`,width:`100%`,overflow:`hidden`,...p,display:`grid`,gridTemplateColumns:ae,gridTemplateRows:oe,touchAction:`none`},children:(0,P.jsx)(xr.Provider,{value:null,children:e})})})}Or.displayName=`Grid`;function kr(e,t){let n=JSON.stringify(e);return(0,N.useMemo)(()=>{let r=typeof e==`number`?Array.from({length:e},(e,t)=>({id:`${t}`})):e.map((e,t)=>({...e,id:`${e.id??t}`}));return L(r.length>0,`Grid must have at least one track; "${t}" is ${n}`),r},[n])}function Ar(e,t){N.Children.forEach(e,e=>{if((0,N.isValidElement)(e))if(e.type===Tr){let{type:n}=e.props;n===`column`?t.column=!0:n===`row`&&(t.row=!0)}else typeof e.type==`symbol`&&e.props!==null&&typeof e.props==`object`&&`children`in e.props&&Ar(e.props.children,t)})}function jr(e,t){if(t)return e.map(e=>`minmax(0, ${t[e.id]??1}fr)`);let n=e.map(e=>e.defaultSize===void 0?void 0:At(e.defaultSize)),r=100,i=0;return n.forEach(e=>{e===void 0?i++:e[1]===`%`&&(r-=e[0])}),n.map(e=>{if(e===void 0)return`minmax(0, ${Math.max(0,r)/Math.max(1,i)}fr)`;let[t,n]=e;return n===`%`?`minmax(0, ${t}fr)`:`${t}${n}`})}function Mr({cells:e,separatorPlacements:t,trackCounts:n}){let r=[];for(let t of e)Er.forEach(e=>{let[i,a]=e===`column`?[t.column,t.columnSpan]:[t.row,t.rowSpan],o=n[e];(!Number.isInteger(i)||!Number.isInteger(a)||i<0||a<1||i+a>o)&&r.push(`Invalid Cell ${e} placement (${e}: ${i}, ${e}Span: ${a}); Grid has ${o} ${e}s`)});let i=({axis:e,crossSpan:t,crossStart:n,disabled:r,index:i})=>{let a=e===`column`?`row`:`column`,o=`type="${e}" ${e}={${i}}`;return(n!==0||t!==void 0)&&(o+=` ${a}={${n}}`),t!==void 0&&(o+=` ${a}Span={${t}}`),r&&(o+=` disabled`),`<Gridline ${o} />`},a=Array.from(t.values()).filter(e=>{let{axis:t,crossSpan:i,crossStart:a,index:o}=e,s=t===`column`?`row`:`column`,c=n[t],l=n[s],u=!0;return bt(o,c)||(r.push(`Invalid ${t} Gridline ${t} (${o}); must be between 1 and ${c-1}`),u=!1),!Number.isInteger(a)||a<0||a>=l?(r.push(`Invalid ${t} Gridline ${s} (${a}); must be between 0 and ${l-1}`),u=!1):i!==void 0&&(!Number.isInteger(i)||i<1||a+i>l)&&(r.push(`Invalid ${t} Gridline ${s}Span (${i}); Grid has ${l} ${s}s`),u=!1),u}),o=e=>{let t=n[e.axis===`column`?`row`:`column`];return[e.crossStart,e.crossSpan===void 0?t:e.crossStart+e.crossSpan]};return a.forEach((t,n)=>{let{axis:s,index:c}=t,[l,u]=o(t);for(let n of e){let[e,a,o,d]=s===`column`?[n.column,n.columnSpan,n.row,n.rowSpan]:[n.row,n.rowSpan,n.column,n.columnSpan];if(e<c&&c<e+a&&o<u&&l<o+d){let n=s===`column`?`row`:`column`;r.push(`${i(t)} overlaps a Cell that spans across it (${s}: ${e}, ${s}Span: ${a}, ${n}: ${o}, ${n}Span: ${d}); use the ${n} and ${n}Span props to render gridlines beside the Cell instead`)}}for(let e of a.slice(n+1))if(e.axis===s&&e.index===c){let[n,a]=o(e);n<u&&l<a&&r.push(`${i(t)} overlaps ${i(e)}`)}}),r}function Nr(e,t){return Z(e.columns,t.columns)&&Z(e.rows,t.rows)}function Pr(e){for(let t=1;t<e.length;t++)if(Qt(e[t-1],e[t])>0)return!1;return!0}function Fr({separator:e}){let{element:t}=e,n=(0,N.useRef)(null);return F(()=>{let e=t.cloneNode(!0),r=[t,...t.querySelectorAll(`*`)],i=[e,...e.querySelectorAll(`*`)],a=t.ownerDocument.defaultView;return r.forEach((e,t)=>{let n=i[t];if(n instanceof a.HTMLElement||n instanceof a.SVGElement){let t=a.getComputedStyle(e);for(let e=0;e<t.length;e++){let r=t.item(e);n.style.setProperty(r,t.getPropertyValue(r))}}n.removeAttribute(`data-testid`),n.removeAttribute(`id`)}),Object.assign(e.style,{boxSizing:`border-box`,height:`100%`,margin:`0`,position:`static`,transform:`none`,width:`100%`}),n.current.appendChild(e),()=>e.remove()},[t]),(0,P.jsx)(`div`,{ref:n,style:{height:`100%`,opacity:.65,pointerEvents:`none`,width:`100%`}})}function Ir(){let e=(0,N.useContext)(xr);return L(e,`Group Context not found; did you render a Panel or Separator outside of a Group?`),e}function Lr(e){let{registerOverlay:t}=Ir(),n=(0,N.useRef)(e);fr(n.current,e)||(n.current=e);let r=n.current;return F(()=>t(r),[t,r]),null}Lr.displayName=`SeparatorOverlay`;function Rr({active:e,orientation:t,style:n,...r}){let i;switch(t){case`horizontal`:i={height:`100%`,minWidth:`1px`};break;case`vertical`:i={minHeight:`1px`,width:`100%`};break}return(0,P.jsx)(`div`,{...r,"data-separator-overlay":e?`active`:`inactive`,style:{...i,...n,flexShrink:0,pointerEvents:`none`}})}function zr({overlay:e,preview:t}){let{axis:n,offset:r,rect:i,separator:a}=t,o=n.orientation===`horizontal`,s=a?.preview,c=e;return(0,N.isValidElement)(s)&&s.type===Lr&&(c=s.props,s=void 0),s??(c?s=(0,P.jsx)(Rr,{...c,active:t.active,orientation:n.orientation}):a&&(s=(0,P.jsx)(Fr,{separator:a}))),(0,P.jsx)(`div`,{"aria-hidden":`true`,"data-resize-preview":!0,inert:!0,style:{height:i.height,left:i.left,pointerEvents:`none`,position:`absolute`,top:i.top,transform:o?`translateX(${r}px)`:`translateY(${r}px)`,width:i.width},children:s})}function Br(e){return Array.from(e).sort(Qt)}function Vr(e,t){let n=(0,N.useRef)({getLayout:()=>({}),setLayout:Lt});(0,N.useImperativeHandle)(t,()=>n.current,[]),F(()=>{Object.assign(n.current,Jn({axisId:e}))})}function Hr({groupId:e,resizePreviewMode:t}){let[n,r]=(0,N.useState)([]),i=(0,N.useRef)(n);return F(()=>{let n=n=>{let a=bn(e),o=t===`separator`&&n.state===`active`?n.previews.filter(e=>e.axis===a&&(e.active||!Y(e.offset,0))):[],s=i.current;s.length===o.length&&o.every((e,t)=>e===s[t])||(i.current=o,r(o))};if(t!==`separator`){n(B());return}let a=Nt(({next:e})=>n(e));return n(B()),a},[e,t]),n}function Ur({children:e,className:t,defaultLayout:n,disableCursor:r,disabled:i,elementRef:a,groupRef:o,id:s,onLayoutChange:c,onLayoutChanged:l,orientation:u=`horizontal`,resizePreviewMode:d=`panel`,resizeTargetMinimumSize:f={coarse:20,fine:10},style:p,...m}){let h=(0,N.useRef)({onLayoutChange:{},onLayoutChanged:{}}),g=I(e=>{Z(h.current.onLayoutChange,e)||(h.current.onLayoutChange=e,c?.(e))}),_=I((e,t,n)=>{Z(h.current.onLayoutChanged,e)||(h.current.onLayoutChanged=e,l?.(e,{isUserInteraction:t,requestedLayout:n}))}),v=ft(s),[y,b]=(0,N.useState)(),x=Hr({groupId:v,resizePreviewMode:d}),S=(0,N.useRef)(null),[C,w]=yr(),T=(0,N.useRef)([]),E=(0,N.useRef)({lastExpandedPanelSizes:{},layouts:{},panels:[],separators:[]}),D=pt(S,a);Vr(v,o);let O=I((e,t)=>{let r=K(e);if(r)return{flexGrow:r.layout[t]??1};if(n?.[t])return{flexGrow:n?.[t]}}),k=br({defaultLayout:n,disableCursor:r,resizeTargetMinimumSize:f}),A=(0,N.useMemo)(()=>({get disableCursor(){return!!k.disableCursor},getPanelStyles:O,id:v,orientation:u,registerPanel:e=>{let t=E.current;return t.panels=$t(u,[...t.panels,e]),w(),()=>{t.panels=t.panels.filter(t=>t!==e),w()}},registerOverlay:e=>(b(e),()=>{b(void 0)}),registerSeparator:e=>{let t=E.current;return t.separators=$t(u,[...t.separators,e]),w(),()=>{t.separators=t.separators.filter(t=>t!==e),w()}},updatePanelProps:(e,{disabled:t})=>{let n=E.current.panels.find(t=>t.id===e);n&&(n.constraintProps.disabled=t);let r=bn(v),i=K(v);r&&i&&J(r,{...i,derivedItemConstraints:dn(r)})},updateSeparatorProps:(e,{disabled:t,disableDoubleClick:n})=>{let r=E.current.separators.find(t=>t.id===e);r&&(r.disabled=t,r.disableDoubleClick=n)}}),[O,v,w,u,k]),j=(0,N.useRef)(null);return F(()=>{let e=S.current;if(e===null)return;let t=E.current;t.panels=$t(u,t.panels),t.separators=$t(u,t.separators),T.current=Br([...t.panels.map(({element:e})=>e),...t.separators.map(({element:e})=>e)]);let n;if(k.defaultLayout!==void 0&&Object.keys(k.defaultLayout).length===t.panels.length){n={};for(let e of t.panels){let t=k.defaultLayout[e.id];t!==void 0&&(n[e.id]=t)}}let r={disabled:!!i,element:e,id:v,mutableState:{defaultLayout:n,disableCursor:!!k.disableCursor,expandedItemSizes:E.current.lastExpandedPanelSizes,layouts:E.current.layouts},orientation:u,items:t.panels,resizePreviewMode:d,get resizeTargetMinimumSize(){return k.resizeTargetMinimumSize},separators:t.separators};j.current=r;let a=_r(r),{defaultLayoutDeferred:o,derivedItemConstraints:s,layout:c,requestedLayout:l}=K(r.id,!0);if(!o&&s.length>0)try{try{g(c)}finally{_(c,!1,l)}}catch(e){throw j.current=null,a(),e}let f=xn(v,e=>{let{defaultLayoutDeferred:t,derivedItemConstraints:n,layout:i,requestedLayout:a}=e.next;if(t||n.length===0)return;vr({derivedItemConstraints:n,axis:r,layout:i,prevLayout:e.prev?.layout,requestedLayout:a});let o=B(),s=o.state!==`active`||!o.hitRegions.some(e=>e.axis===r);try{g(i)}finally{s&&_(i,e.isUserInteraction,a)}});return()=>{j.current=null,a(),f()}},[i,v,_,g,u,C,d,k]),F(()=>{Pr(T.current)||w()}),(0,N.useEffect)(()=>{let e=j.current;e&&(e.mutableState.defaultLayout=n,e.mutableState.disableCursor=!!r)}),(0,P.jsx)(xr.Provider,{value:A,children:(0,P.jsxs)(`div`,{...m,className:t,"data-group":!0,"data-testid":mt(m,s),id:v,ref:D,style:{height:`100%`,width:`100%`,overflow:`hidden`,position:d===`separator`?`relative`:void 0,...p,display:`flex`,flexDirection:u===`horizontal`?`row`:`column`,flexWrap:`nowrap`,touchAction:u===`horizontal`?`pan-y`:`pan-x`},children:[e,x.map(e=>(0,P.jsx)(zr,{overlay:y,preview:e},e.key))]})})}Ur.displayName=`Group`;function Wr(e,t){return`react-resizable-panels:${[e,...t].join(`:`)}`}function Gr({id:e,panelIds:t,storage:n}){let r=Wr(e,[]),i=n.getItem(r);if(i)try{let e=JSON.parse(i);if(t){let n=e[t.join(`,`)];if(n&&Array.isArray(n.layout)&&t.length===n.layout.length){let e={};for(let r=0;r<t.length;r++)e[t[r]]=n.layout[r];return e}}else{let t=Object.keys(e);if(t.length===1){let n=e[t[0]];if(n&&Array.isArray(n.layout)){let e=t[0].split(`,`);if(e.length===n.layout.length){let t={};for(let r=0;r<e.length;r++)t[e[r]]=n.layout[r];return t}}}}}catch{}}function Kr({debounceSaveMs:e=100,onlySaveAfterUserInteractions:t,panelIds:n,storage:r=localStorage,...i}){let a=n!==void 0,o=`id`in i?i.id:i.groupId,s=Wr(o,n??[]),c=(0,N.useSyncExternalStore)(qr,()=>r.getItem(s),()=>r.getItem(s)),l=(0,N.useMemo)(()=>{if(c){let e=JSON.parse(c),t=Object.values(e);if(Array.from(t).every(e=>typeof e==`number`))return e}},[c]),u=(0,N.useMemo)(()=>{if(!l)return Gr({id:o,panelIds:n,storage:r})},[l,o,n,r]),d=l??u,f=(0,N.useRef)(null),p=(0,N.useCallback)(()=>{let e=f.current;e&&(f.current=null,clearTimeout(e))},[]);(0,N.useLayoutEffect)(()=>()=>{p()},[p]);let m=(0,N.useCallback)((e,n)=>{if(t&&!n.isUserInteraction)return;p();let i=n.requestedLayout??e,s;s=a?Wr(o,Object.keys(i)):Wr(o,[]);try{r.setItem(s,JSON.stringify(i))}catch(e){console.error(e)}},[p,a,o,t,r]);return{defaultLayout:d,onLayoutChange:(0,N.useCallback)(t=>{p(),e===0?m(t,{isUserInteraction:!1}):f.current=setTimeout(()=>{m(t,{isUserInteraction:!1})},e)},[p,e,m]),onLayoutChanged:m}}function qr(){return function(){}}function Jr(e,t){let{id:n}=Ir(),r=(0,N.useRef)({collapse:Rt,expand:Rt,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:Rt});(0,N.useImperativeHandle)(t,()=>r.current,[]),F(()=>{Object.assign(r.current,Gn({axisId:n,itemId:e}))})}function Yr({children:e,className:t,collapsedSize:n=`0%`,collapsedThreshold:r,collapsible:i=!1,defaultSize:a,disabled:o,elementRef:s,groupResizeBehavior:c=`preserve-relative-size`,id:l,maxSize:u=`100%`,minSize:d=`0%`,onResize:f,panelRef:p,style:m,...h}){let g=dt(l),_=ft(l),v=br({disabled:o}),y=(0,N.useRef)(null),b=pt(y,s),{getPanelStyles:x,id:S,orientation:C,registerPanel:w,updatePanelProps:T}=Ir(),E=f!==null,D=I((e,t,n)=>{f?.(e,l,n)});F(()=>{let e=y.current;if(e!==null)return w({element:e,id:_,idIsStable:g,mutableValues:{expandToSize:void 0,prevSize:void 0},onResize:E?D:void 0,constraintProps:{groupResizeBehavior:c,collapsedSize:n,collapsedThreshold:r,collapsible:i,defaultSize:a,disabled:v.disabled,maxSize:u,minSize:d}})},[c,n,r,i,a,E,_,g,u,d,D,w,v]),(0,N.useEffect)(()=>{T(_,{disabled:o})},[o,_,T]),Jr(_,p);let O=()=>{let e=x(S,_);if(e)return JSON.stringify(e)},k=(0,N.useSyncExternalStore)(e=>xn(S,e),O,O),A;return A=k?JSON.parse(k):a===void 0?{flexGrow:1}:{flexGrow:void 0,flexShrink:void 0,flexBasis:a},(0,P.jsx)(`div`,{...h,"data-disabled":o||void 0,"data-panel":!0,"data-testid":mt(h,l),id:_,ref:b,style:{...Xr,display:`flex`,flexBasis:0,flexShrink:1,overflow:`visible`,...A},children:(0,P.jsx)(`div`,{className:t,style:{maxHeight:`100%`,maxWidth:`100%`,flexGrow:1,overflow:`auto`,...m,touchAction:C===`horizontal`?`pan-y`:`pan-x`},children:e})})}Yr.displayName=`Panel`;var Xr={minHeight:0,maxHeight:`100%`,height:`auto`,minWidth:0,maxWidth:`100%`,width:`auto`,border:`none`,borderWidth:0,padding:0,margin:0};function Zr(){return(0,N.useRef)(null)}var Qr={flexBasis:`auto`},$r={flexGrow:0,flexShrink:0};function ei({children:e,className:t,disabled:n,disableDoubleClick:r,elementRef:i,id:a,preview:o,style:s,...c}){let l=ft(a),{disableCursor:u,id:d,orientation:f,registerSeparator:p,updateSeparatorProps:m}=Ir();return(0,P.jsx)(Cr,{attributes:c,axisId:d,axisOrientation:f,className:t,"data-testid":mt(c,a),disableCursor:u,disabled:n,disableDoubleClick:r,elementRef:i,id:l,preview:o,registerSeparator:p,requiredStyle:$r,style:s,styleDefaults:Qr,updateSeparatorProps:m,children:e})}ei.displayName=`Separator`;function ti({className:e,...t}){return(0,P.jsx)(Ur,{"data-slot":`resizable-panel-group`,className:M(`flex h-full w-full aria-[orientation=vertical]:flex-col`,e),...t})}function ni({...e}){return(0,P.jsx)(Yr,{"data-slot":`resizable-panel`,...e})}function ri({withHandle:e,className:t,...n}){return(0,P.jsx)(ei,{"data-slot":`resizable-handle`,className:M(`relative flex w-px items-center justify-center bg-border ring-offset-background after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-ring focus-visible:outline-hidden aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:after:left-0 aria-[orientation=horizontal]:after:h-1 aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:translate-x-0 aria-[orientation=horizontal]:after:-translate-y-1/2 [&[aria-orientation=horizontal]>div]:rotate-90`,t),...n,children:e&&(0,P.jsx)(`div`,{className:`z-10 flex h-6 w-1 shrink-0 rounded-lg bg-border`})})}var ii=`(min-width: 64rem)`,ai=`]`;function oi(){let[e,t]=(0,N.useState)(()=>matchMedia(ii).matches);return(0,N.useEffect)(()=>{let e=matchMedia(ii),n=()=>t(e.matches);return e.addEventListener(`change`,n),()=>e.removeEventListener(`change`,n)},[]),e}function si(e){return e instanceof HTMLElement&&(e.isContentEditable||[`INPUT`,`TEXTAREA`,`SELECT`].includes(e.tagName))}function ci(){let e=Zr(),[t,n]=(0,N.useState)(!1),r=(0,N.useCallback)(()=>{let t=e.current;t&&(t.isCollapsed()?t.expand():t.collapse())},[e]),i=(0,N.useCallback)(()=>{e.current?.isCollapsed()&&e.current.expand()},[e]);return(0,N.useEffect)(()=>{let e=e=>{e.key!==ai||e.metaKey||e.ctrlKey||e.altKey||si(e.target)||(e.preventDefault(),r())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[r]),{panelRef:e,collapsed:t,setCollapsed:n,toggle:r,expand:i}}function li({panel:e}){let t=e.collapsed?`Show inspector`:`Hide inspector`,n=e.collapsed?ze:Re;return(0,P.jsxs)(de,{children:[(0,P.jsx)(le,{render:(0,P.jsx)(D,{size:`icon-sm`,variant:`ghost`,"aria-label":t,"aria-pressed":!e.collapsed,className:`max-lg:hidden`,onClick:e.toggle}),children:(0,P.jsx)(n,{className:`size-4`,"aria-hidden":!0})}),(0,P.jsxs)(ue,{children:[t,` `,(0,P.jsx)(`kbd`,{className:`ml-1 font-mono text-[10px] text-muted-foreground`,children:ai})]})]})}function ui({panel:e,canvas:t,inspector:n}){let r=oi(),i=Kr({id:`miravo:floor-split`,storage:localStorage});return r?(0,P.jsxs)(ti,{id:`floor-split`,className:`min-h-0 flex-1`,defaultLayout:i.defaultLayout,onLayoutChanged:i.onLayoutChanged,children:[(0,P.jsx)(ni,{id:`canvas`,minSize:`40`,className:`grid overflow-hidden!`,children:t}),(0,P.jsx)(ri,{disableDoubleClick:!0,onDoubleClick:e.toggle,className:`w-px bg-border/50 transition-colors after:w-2 hover:bg-primary/40 data-[separator=active]:bg-primary/60`}),(0,P.jsx)(ni,{id:`inspector`,panelRef:e.panelRef,defaultSize:368,minSize:288,maxSize:640,collapsible:!0,onResize:t=>e.setCollapsed(t.inPixels===0),className:`flex flex-col`,children:n})]}):(0,P.jsxs)(`div`,{className:`grid min-w-0 flex-1 grid-cols-[minmax(0,1fr)] grid-rows-[clamp(18rem,68vw,34rem)_auto]`,children:[t,n]})}var di=[[`station`,`Stations`,`flow order`],[`utility`,`Utilities`,`shared services`]];function fi({things:e,line:t,onSelect:n}){let r=l(e=>e.assets),i=new Map(r.map(e=>[e.id,e.activeFaults.length])),a=new Map(t?.stations.map(e=>[e.id,e])),o=t?.stations.at(-1)?.good??0,s=t?.stations.reduce((e,t)=>e+t.scrap,0)??0,c=e.filter(e=>(i.get(e.assetId)??0)>0).length;return(0,P.jsxs)(P.Fragment,{children:[(0,P.jsxs)(`div`,{className:`grid grid-cols-3 gap-3 px-4 pt-4 pb-5`,children:[(0,P.jsx)(_e,{label:`Shipped`,value:O(o)}),(0,P.jsx)(_e,{label:`Yield`,value:o+s>0?`${(o/(o+s)*100).toFixed(1)}%`:`–`}),(0,P.jsx)(_e,{label:`Faulted`,value:String(c)})]}),di.map(([t,r,o])=>(0,P.jsx)(pe,{title:r,note:o,children:(0,P.jsx)(`ul`,{className:`-mx-2 flex flex-col`,children:e.filter(e=>e.kind===t).map(e=>{let t=a.get(e.assetId),r=(i.get(e.assetId)??0)>0;return(0,P.jsx)(me,{tone:e.kind===`utility`?r?`fault`:`live`:he(t?.state,r),name:e.name,note:r?`fault`:t?`${fe(t.state)} · ${O(t.good)}`:e.assetId,onSelect:()=>n(e.key)},e.key)})})},t))]})}var pi=[1,2,5,10];function mi({speed:e}){let t=l(e=>e.engineState),n=se(),r=t===`paused`,i=pi.includes(e),a=t=>{t!==e&&n.mutateAsync({type:`setSpeed`,multiplier:t}).then(()=>d.invalidateQueries({queryKey:c.floor.state()})).catch(()=>{})};return(0,P.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,P.jsxs)(D,{size:`sm`,variant:`outline`,disabled:n.isPending||t!==`running`&&!r,onClick:()=>n.mutate({type:r?`resume`:`pause`}),className:`w-24 gap-1.5`,children:[r?(0,P.jsx)(oe,{className:`size-3.5`,"aria-hidden":!0}):(0,P.jsx)(ae,{className:`size-3.5`,"aria-hidden":!0}),r?`Resume`:`Pause`]}),(0,P.jsxs)(`fieldset`,{"aria-label":`Simulation speed`,className:`flex h-8 items-center gap-0.5 rounded-[var(--miravo-radius-stadium-sm)] border border-border/70 p-0.5`,children:[pi.map(t=>(0,P.jsx)(hi,{value:t,active:t===e,onSelect:a},t)),i?null:(0,P.jsx)(hi,{value:e,active:!0,onSelect:a})]})]})}function hi({value:e,active:t,onSelect:n}){return(0,P.jsxs)(`button`,{type:`button`,"aria-pressed":t,onClick:()=>n(e),className:M(`h-full min-w-9 rounded-[var(--miravo-radius-tight)] px-2 font-mono text-[11px] tabular-nums outline-none transition-colors`,`text-muted-foreground hover:bg-muted/50 hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring`,t&&`bg-secondary text-foreground`),children:[e,`×`]})}var gi=1500;function _i(e,t){return e?.find(e=>e.stations.some(e=>t.has(e.id)))}function vi(e){let t=S({queryKey:c.floor.state(),queryFn:()=>s(`/state`,i.state),refetchInterval:gi}),n=Fe({queries:e.assetIds.map(e=>({queryKey:c.assets.detail(e),queryFn:()=>s(`/assets/${e}`,i.assetDetail),staleTime:1/0}))}),r=(0,N.useMemo)(()=>new Set(e.assetIds),[e.assetIds]),a=_i(t.data?.lines,r),o=(0,N.useRef)({line:a,speed:t.data?.config.timeMultiplier,details:n});o.current={line:a,speed:t.data?.config.timeMultiplier,details:n};let u=(0,N.useMemo)(()=>{let e=(e,t)=>{let n=l.getState().memberValues.get(e)?.get(t)?.value;return n===void 0?(o.current.details.find(t=>t.data?.id===e)?.data)?.members[t]?.value??void 0:n};return{num(t,n,r=0){let i=e(t,n);return typeof i==`number`?i:typeof i==`boolean`?Number(i):r},param(e,t,n=0){let r=o.current.details.find(t=>t.data?.id===e)?.data?.parameters[t]?.value;return typeof r==`number`?r:n},text(t,n){let r=e(t,n);return typeof r==`string`?r:void 0},station(t){let n=o.current.line?.stations.find(e=>e.id===t);if(!n)return;let r=e(t,`state_label`),i=e(t,`good_count`),a=e(t,`scrap_count`);return{state:typeof r==`string`?r:n.state,good:typeof i==`number`?Math.max(i,n.good):n.good,scrap:typeof a==`number`?Math.max(a,n.scrap):n.scrap}},buffers(){return o.current.line?.buffers??[]},faults(e){return l.getState().assets.find(t=>t.id===e)?.activeFaults??[]},engineState(){return l.getState().engineState},simSpeed(){return o.current.speed??l.getState().speedMultiplier},simTime(){return l.getState().simulationTime}}},[]),d=l(e=>e.speedMultiplier);return{feed:u,line:a,speed:t.data?.config.timeMultiplier??d}}var yi={running:`bg-success`,paused:`bg-warning`,stopped:`bg-destructive`},bi=500;function xi({title:e,body:t}){return(0,P.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-3 p-8 text-center`,children:[(0,P.jsx)(te,{className:`size-6 text-muted-foreground`,"aria-hidden":!0}),(0,P.jsx)(`h1`,{className:`font-heading text-lg font-medium tracking-tight`,children:e}),(0,P.jsx)(`p`,{className:`max-w-sm text-sm text-muted-foreground`,children:t}),(0,P.jsx)(E,{to:`/`,className:A({size:`sm`,variant:`outline`}),children:`Back to Factory`})]})}function Si(){let{templateId:e=``}=T(),t=l(t=>t.templates.find(t=>t.templateId===e));return ne(e)?t?(0,P.jsx)(Ci,{template:t,entry:(0,N.use)(re(e))}):(0,P.jsx)(xi,{title:`Template not running`,body:`Load it from the Catalog, then open its floor from the Factory page.`}):(0,P.jsx)(xi,{title:`No floor for this template`,body:`Only templates with a hand-placed layout have a floor view.`})}function Ci({template:e,entry:t}){let{feed:n,line:r,speed:i}=vi(e),a=l(e=>e.assets),o=l(e=>e.engineState),s=t.resolve({template:e,assets:a,line:r}),c=s.status===`ready`?JSON.stringify(s.ids):``,u=(0,N.useMemo)(()=>c?JSON.parse(c):null,[c]),d=(0,N.useMemo)(()=>u?t.things(u):[],[t,u]),[f,p]=w(`asset`),[m,h]=(0,N.useState)(`inspect`),[g,_]=(0,N.useState)(null),v=d.find(e=>e.key===f)??null,[,y]=(0,N.useState)(0),b=v===null;(0,N.useEffect)(()=>{if(!b)return;let e=setInterval(()=>y(e=>e+1),bi);return()=>clearInterval(e)},[b]);let x=e=>{p(e),h(`inspect`)},S=(0,N.useRef)(null),C=ci();return(0,P.jsxs)(`div`,{className:`flex min-h-full flex-col lg:h-full lg:min-h-0`,children:[(0,P.jsxs)(`header`,{className:`flex flex-wrap items-center justify-between gap-x-4 gap-y-3 border-b border-border/50 px-4 py-3 sm:px-5`,children:[(0,P.jsxs)(`nav`,{"aria-label":`Breadcrumb`,className:`flex min-w-0 items-center gap-2.5`,children:[(0,P.jsxs)(E,{to:`/#template-${e.templateId}`,className:`group/back -mx-1.5 inline-flex shrink-0 items-center gap-1.5 rounded-[var(--miravo-radius-tight)] px-1.5 py-1 text-sm text-muted-foreground outline-none transition-colors hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring`,children:[(0,P.jsx)(Ie,{className:`size-3.5 transition-transform group-hover/back:-translate-x-0.5`,"aria-hidden":!0}),`Factory`]}),(0,P.jsx)(`span`,{"aria-hidden":!0,className:`text-sm text-muted-foreground/40`,children:`/`}),(0,P.jsx)(`h1`,{"aria-current":`page`,title:e.templateId,className:`truncate font-heading text-base font-medium tracking-tight`,children:e.templateName}),(0,P.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1.5 pl-1 max-sm:hidden`,children:[(0,P.jsx)(`span`,{"aria-hidden":!0,className:M(`size-1.5 rounded-full`,yi[o]??`bg-muted-foreground/50`)}),(0,P.jsx)(`span`,{className:`text-[10px] uppercase tracking-[0.14em] text-muted-foreground`,children:o})]})]}),(0,P.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,P.jsx)(mi,{speed:i}),u!==null&&(0,P.jsx)(li,{panel:C})]})]}),u===null?s.status===`pending`?(0,P.jsx)(`div`,{className:`flex-1`}):(0,P.jsx)(xi,{title:`Layout does not match`,body:t.mismatch}):(0,P.jsx)(ui,{panel:C,canvas:(0,P.jsx)(ot,{layout:t.layout,ids:u,caption:t.caption,feed:n,things:d,selected:v?.key??null,onSelect:e=>{x(e),e&&(C.expand(),matchMedia(`(max-width: 63.999rem)`).matches&&S.current?.scrollIntoView({behavior:`smooth`,block:`start`}))},onRuntime:_}),inspector:(0,P.jsx)(`aside`,{ref:S,className:`flex min-w-0 flex-1 scroll-mt-2 flex-col border-border/50 border-t lg:min-h-0 lg:border-t-0`,children:(0,P.jsxs)(xe,{value:m,onValueChange:e=>h(e),className:`flex flex-1 flex-col gap-0 lg:min-h-0`,children:[(0,P.jsxs)(be,{variant:`line`,className:`sticky top-0 z-10 h-10! w-full shrink-0 justify-start gap-0.5 border-b border-border/50 bg-background px-3 lg:static`,children:[(0,P.jsx)(ve,{value:`inspect`,className:`px-2.5 text-xs`,children:v?`Inspector`:t.tab??`Line`}),(0,P.jsx)(ve,{value:`activity`,className:`px-2.5 text-xs`,children:`Activity`})]}),(0,P.jsx)(ye,{value:`inspect`,className:`flex-1 lg:min-h-0 lg:overflow-y-auto`,children:v===null?t.Overview?(0,P.jsx)(t.Overview,{things:d,status:e=>g?.status(e)??[`--`,``],onSelect:e=>x(e)}):(0,P.jsx)(fi,{things:d,line:r,onSelect:e=>x(e)}):(0,P.jsx)(ge,{thing:v,assetId:v.assetId,line:r,basis:t.statusBasis,onBack:()=>x(null)},v.key)}),(0,P.jsx)(ye,{value:`activity`,className:`flex-1 lg:min-h-0 lg:overflow-y-auto`,children:(0,P.jsx)(ut,{assetIds:new Set(e.assetIds),nameOf:e=>d.find(t=>t.assetId===e)?.name??e,onSelect:e=>x(e)})})]})})})]})}export{Si as FloorPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as e}from"./api-
|
|
1
|
+
import{C as e}from"./api-CtMmjN9m.js";function t(e,t){return e instanceof Error&&e.message.trim().length>0?e.message:typeof e==`string`&&e.trim().length>0?e:t}function n(t){if(e.is(t)&&t.hint?.trim())return t.hint}export{t as n,n as t};
|