@gbasin/agentboard-linux-x64 0.35.0 → 0.35.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.
|
@@ -0,0 +1 @@
|
|
|
1
|
+
*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:JetBrains Mono,SF Mono,Fira Code,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media (width>=640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (width>=768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (width>=1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (width>=1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (width>=1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.btn{background:var(--bg-surface);border:1px solid var(--border);color:var(--text-secondary);justify-content:center;align-items:center;gap:.375rem;padding:.375rem .75rem;font-size:.75rem;font-weight:500;line-height:1rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1);display:inline-flex}.btn:hover{background:var(--bg-hover);color:var(--text-primary)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:#2563eb;border-color:#2563eb}.btn-danger{color:var(--danger);border-color:var(--danger);background:0 0}.btn-danger:hover{background:var(--danger);color:#fff}.input{background:var(--bg-base);border:1px solid var(--border);width:100%;color:var(--text-primary);padding:.5rem .75rem;font-size:16px}.input:focus{border-color:var(--accent);outline:none}.input::placeholder{color:var(--text-muted)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.-bottom-1{bottom:-.25rem}.-bottom-px{bottom:-1px}.-right-1{right:-.25rem}.-right-1\.5{right:-.375rem}.-top-1\.5{top:-.375rem}.-top-px{top:-1px}.bottom-0{bottom:0}.bottom-14{bottom:3.5rem}.bottom-16{bottom:4rem}.bottom-20{bottom:5rem}.bottom-4{bottom:1rem}.bottom-8{bottom:2rem}.bottom-full{bottom:100%}.left-0{left:0}.left-1\/2{left:50%}.left-2{left:.5rem}.left-3{left:.75rem}.right-0{right:0}.right-2{right:.5rem}.right-3{right:.75rem}.right-4{right:1rem}.top-0{top:0}.top-1\/2{top:50%}.top-2{top:.5rem}.top-full{top:100%}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[60\]{z-index:60}.m-1{margin:.25rem}.m-2{margin:.5rem}.m-4{margin:1rem}.-mx-4{margin-left:-1rem;margin-right:-1rem}.-mx-\[6px\]{margin-left:-6px;margin-right:-6px}.-my-1{margin-top:-.25rem;margin-bottom:-.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-top:0;margin-bottom:0}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-1\.5{margin-top:.375rem;margin-bottom:.375rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.-ml-1{margin-left:-.25rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.ml-1{margin-left:.25rem}.ml-auto{margin-left:auto}.mr-1\.5{margin-right:.375rem}.mr-2{margin-right:.5rem}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.\!block{display:block!important}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.size-4{width:1rem;height:1rem}.size-\[32px\]{width:32px;height:32px}.size-\[44px\]{width:44px;height:44px}.h-0\.5{height:.125rem}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-\[26px\]{height:26px}.h-\[32px\]{height:32px}.h-\[44px\]{height:44px}.h-\[48px\]{height:48px}.h-\[52px\]{height:52px}.h-\[56px\]{height:56px}.h-\[600px\]{height:600px}.h-\[6px\]{height:6px}.h-full{height:100%}.max-h-28{max-height:7rem}.max-h-32{max-height:8rem}.max-h-60{max-height:15rem}.max-h-72{max-height:18rem}.max-h-80{max-height:20rem}.max-h-\[60vh\]{max-height:60vh}.max-h-\[80vh\]{max-height:80vh}.max-h-\[min\(26rem\,calc\(100dvh-7rem\)\)\]{max-height:min(26rem,100dvh - 7rem)}.max-h-full{max-height:100%}.min-h-0{min-height:0}.min-h-\[30px\]{min-height:30px}.min-h-\[44px\]{min-height:44px}.min-h-\[52px\]{min-height:52px}.min-h-full{min-height:100%}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-1\/2{width:50%}.w-10{width:2.5rem}.w-14{width:3.5rem}.w-2{width:.5rem}.w-20{width:5rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-4{width:1rem}.w-40{width:10rem}.w-44{width:11rem}.w-5{width:1.25rem}.w-60{width:15rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-\[11ch\]{width:11ch}.w-\[14px\]{width:14px}.w-\[192px\]{width:192px}.w-\[32px\]{width:32px}.w-\[44px\]{width:44px}.w-\[56px\]{width:56px}.w-\[6px\]{width:6px}.w-\[760px\]{width:760px}.w-\[calc\(100\%_-_2rem\)\]{width:calc(100% - 2rem)}.w-\[min\(560px\,calc\(100\%-1\.5rem\)\)\]{width:min(560px,100% - 1.5rem)}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.min-w-0{min-width:0}.min-w-3\.5{min-width:.875rem}.min-w-\[140px\]{min-width:140px}.min-w-\[160px\]{min-width:160px}.min-w-\[180px\]{min-width:180px}.min-w-\[44px\]{min-width:44px}.min-w-\[72px\]{min-width:72px}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-48{max-width:12rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-72{max-width:18rem}.max-w-\[112px\]{max-width:112px}.max-w-\[12rem\]{max-width:12rem}.max-w-\[8rem\]{max-width:8rem}.max-w-\[90vw\]{max-width:90vw}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.basis-0{flex-basis:0}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-1{--tw-translate-x:.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-95{--tw-scale-x:.95;--tw-scale-y:.95;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-pointer{cursor:pointer}.touch-manipulation{touch-action:manipulation}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}.resize{resize:both}.snap-x{scroll-snap-type:x var(--tw-scroll-snap-strictness)}.snap-mandatory{--tw-scroll-snap-strictness:mandatory}.snap-start{scroll-snap-align:start}.scroll-pb-10{scroll-padding-bottom:2.5rem}.scroll-pe-4{scroll-padding-inline-end:1rem}.scroll-pt-10{scroll-padding-top:2.5rem}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.appearance-none{appearance:none}.auto-cols-\[44px\]{grid-auto-columns:44px}.grid-flow-col{grid-auto-flow:column}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\[5\.75rem_minmax\(0\,1fr\)\]{grid-template-columns:5.75rem minmax(0,1fr)}.grid-cols-\[56px_92px_minmax\(0\,0\.8fr\)_minmax\(0\,1\.3fr\)_auto\]{grid-template-columns:56px 92px minmax(0,.8fr) minmax(0,1.3fr) auto}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-\[3px\]{gap:3px}.gap-\[4px\]{gap:4px}.gap-\[6px\]{gap:6px}.gap-\[7px\]{gap:7px}.gap-px{gap:1px}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-0\.5{row-gap:.125rem}.gap-y-1{row-gap:.25rem}.gap-y-3{row-gap:.75rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-border>:not([hidden])~:not([hidden]){border-color:var(--border)}.divide-border-subtle>:not([hidden])~:not([hidden]){border-color:var(--border-subtle)}.self-stretch{align-self:stretch}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overscroll-contain{overscroll-behavior:contain}.scroll-smooth{scroll-behavior:smooth}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-balance{text-wrap:balance}.text-pretty{text-wrap:pretty}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-2{border-top-width:2px}.border-dashed{border-style:dashed}.border-accent{border-color:var(--accent)}.border-accent\/40{border-color:color-mix(in srgb, var(--accent) calc(.4 * 100%), transparent)}.border-amber-400\/25{border-color:#fbbf2440}.border-amber-400\/35{border-color:#fbbf2459}.border-approval\/50{border-color:color-mix(in srgb, var(--approval) calc(.5 * 100%), transparent)}.border-border{border-color:var(--border)}.border-border\/60{border-color:color-mix(in srgb, var(--border) calc(.6 * 100%), transparent)}.border-border\/70{border-color:color-mix(in srgb, var(--border) calc(.7 * 100%), transparent)}.border-danger{border-color:var(--danger)}.border-danger\/30{border-color:color-mix(in srgb, var(--danger) calc(.3 * 100%), transparent)}.border-danger\/40{border-color:color-mix(in srgb, var(--danger) calc(.4 * 100%), transparent)}.border-danger\/50{border-color:color-mix(in srgb, var(--danger) calc(.5 * 100%), transparent)}.border-primary{border-color:var(--text-primary)}.border-transparent{border-color:#0000}.border-white\/20{border-color:#fff3}.bg-accent{background-color:var(--accent)}.bg-accent\/15{background-color:color-mix(in srgb, var(--accent) calc(.15 * 100%), transparent)}.bg-accent\/20{background-color:color-mix(in srgb, var(--accent) calc(.2 * 100%), transparent)}.bg-amber-400{background-color:#fbbf24}.bg-amber-500\/15{background-color:#f59e0b26}.bg-amber-500\/20{background-color:#f59e0b33}.bg-amber-500\/35{background-color:#f59e0b59}.bg-approval{background-color:var(--approval)}.bg-approval\/10{background-color:color-mix(in srgb, var(--approval) calc(.1 * 100%), transparent)}.bg-base{background-color:var(--bg-base)}.bg-black\/20{background-color:#0003}.bg-black\/30{background-color:#0000004d}.bg-black\/40{background-color:#0006}.bg-black\/50{background-color:#00000080}.bg-black\/60{background-color:#0009}.bg-black\/70{background-color:#000000b3}.bg-blue-500\/15{background-color:#3b82f626}.bg-blue-500\/35{background-color:#3b82f659}.bg-blue-600\/90{background-color:#2563ebe6}.bg-border{background-color:var(--border)}.bg-danger{background-color:var(--danger)}.bg-danger\/10{background-color:color-mix(in srgb, var(--danger) calc(.1 * 100%), transparent)}.bg-elevated{background-color:var(--bg-elevated)}.bg-elevated\/90{background-color:color-mix(in srgb, var(--bg-elevated) calc(.9 * 100%), transparent)}.bg-elevated\/95{background-color:color-mix(in srgb, var(--bg-elevated) calc(.95 * 100%), transparent)}.bg-gray-500\/35{background-color:#6b728059}.bg-green-500\/20{background-color:#22c55e33}.bg-green-500\/35{background-color:#22c55e59}.bg-hover{background-color:var(--bg-hover)}.bg-muted{background-color:var(--text-muted)}.bg-surface{background-color:var(--bg-surface)}.bg-surface\/20{background-color:color-mix(in srgb, var(--bg-surface) calc(.2 * 100%), transparent)}.bg-surface\/35{background-color:color-mix(in srgb, var(--bg-surface) calc(.35 * 100%), transparent)}.bg-surface\/40{background-color:color-mix(in srgb, var(--bg-surface) calc(.4 * 100%), transparent)}.bg-surface\/50{background-color:color-mix(in srgb, var(--bg-surface) calc(.5 * 100%), transparent)}.bg-transparent{background-color:#0000}.bg-waiting{background-color:var(--waiting)}.bg-white{background-color:#fff}.bg-white\/90{background-color:#ffffffe6}.bg-working{background-color:var(--working)}.bg-zinc-500\/20{background-color:#71717a33}.bg-gradient-to-l{background-image:linear-gradient(to left, var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right, var(--tw-gradient-stops))}.from-elevated{--tw-gradient-from:var(--bg-elevated) var(--tw-gradient-from-position);--tw-gradient-to:color-mix(in srgb, var(--bg-elevated) calc(0 * 100%), transparent) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.to-transparent{--tw-gradient-to:transparent var(--tw-gradient-to-position)}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-\[2px\]{padding:2px}.p-\[4px\]{padding:4px}.p-\[6px\]{padding:6px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-\[6px\]{padding-left:6px;padding-right:6px}.px-\[8px\]{padding-left:8px;padding-right:8px}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-\[5px\]{padding-top:5px;padding-bottom:5px}.py-px{padding-top:1px;padding-bottom:1px}.pb-1{padding-bottom:.25rem}.pb-1\.5{padding-bottom:.375rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pl-0\.5{padding-left:.125rem}.pl-1{padding-left:.25rem}.pl-2{padding-left:.5rem}.pl-2\.5{padding-left:.625rem}.pl-3{padding-left:.75rem}.pl-5{padding-left:1.25rem}.pl-\[1\.375rem\]{padding-left:1.375rem}.pr-2{padding-right:.5rem}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-1\.5{padding-top:.375rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-top{vertical-align:top}.font-mono{font-family:JetBrains Mono,SF Mono,Fira Code,monospace}.text-\[0\.9em\]{font-size:.9em}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[16px\]{font-size:16px}.text-\[18px\]{font-size:18px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-6{line-height:1.5rem}.leading-\[12px\]{line-height:12px}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-normal{letter-spacing:0}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.text-accent{color:var(--accent)}.text-amber-100{color:#fef3c7}.text-amber-400{color:#fbbf24}.text-amber-500{color:#f59e0b}.text-amber-600{color:#d97706}.text-approval{color:var(--approval)}.text-approval\/70{color:color-mix(in srgb, var(--approval) calc(.7 * 100%), transparent)}.text-base{color:var(--bg-base)}.text-blue-400{color:#60a5fa}.text-blue-500{color:#3b82f6}.text-danger{color:var(--danger)}.text-emerald-400{color:#34d399}.text-gray-800{color:#1f2937}.text-green-600{color:#16a34a}.text-muted{color:var(--text-muted)}.text-pr-closed{color:var(--pr-closed)}.text-pr-merged{color:var(--pr-merged)}.text-pr-open{color:var(--pr-open)}.text-pr-pending{color:var(--pr-pending)}.text-primary{color:var(--text-primary)}.text-red-500{color:#ef4444}.text-secondary{color:var(--text-secondary)}.text-waiting{color:var(--waiting)}.text-white{color:#fff}.text-white\/80{color:#fffc}.text-white\/90{color:#ffffffe6}.text-working{color:var(--working)}.text-yellow-400{color:#facc15}.text-zinc-400{color:#a1a1aa}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.accent-accent{accent-color:var(--accent)}.accent-approval{accent-color:var(--approval)}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.shadow{--tw-shadow:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px #00000040;--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-\[inset_0_0_0_1px_var\(--border\)\]{--tw-shadow:inset 0 0 0 1px var(--border);--tw-shadow-colored:inset 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.outline-none{outline-offset:2px;outline:2px solid #0000}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.ring-accent\/30{--tw-ring-color:color-mix(in srgb, var(--accent) calc(.3 * 100%), transparent)}.ring-elevated{--tw-ring-color:var(--bg-elevated)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-md{--tw-backdrop-blur:blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-property:transform;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.duration-75{transition-duration:75ms}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.\[agentboard\:settings\]{agentboard:settings}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono-latin-wght-normal.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono-latin-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono-cyrillic-wght-normal.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono-cyrillic-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono-greek-wght-normal.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono-vietnamese-wght-normal.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}:root,[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-base:#0a0a0a;--bg-elevated:#111;--bg-surface:#161616;--bg-hover:#1c1c1c;--text-primary:#e5e5e5;--text-secondary:#a3a3a3;--text-muted:#737373;--border:#262626;--border-subtle:#1a1a1a;--working:#22c55e;--approval:#f59e0b;--waiting:#3b82f6;--danger:#ef4444;--pr-open:#22c55e;--pr-merged:#a855f7;--pr-closed:#ef4444;--pr-pending:#eab308;--accent:#3b82f6}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-base:#fafafa;--bg-elevated:#fff;--bg-surface:#f5f5f5;--bg-hover:#e5e5e5;--text-primary:#171717;--text-secondary:#525252;--text-muted:#737373;--border:#e5e5e5;--border-subtle:#f0f0f0;--working:#16a34a;--approval:#d97706;--waiting:#2563eb;--danger:#dc2626;--pr-open:#16a34a;--pr-merged:#9333ea;--pr-closed:#dc2626;--pr-pending:#a16207;--accent:#2563eb}*{box-sizing:border-box}html,body{height:100dvh;color:var(--text-primary);background:var(--bg-base);-webkit-font-smoothing:antialiased;margin:0;font-family:JetBrains Mono Variable,JetBrains Mono,SF Mono,Fira Code,ui-monospace,monospace;font-size:13px;overflow:hidden}#root{flex-direction:column;height:100dvh;display:flex;overflow:hidden}@media (width<=767px){.ios #root{width:var(--visual-viewport-width,100vw);height:var(--visual-viewport-height,100dvh);transform:translate3d(var(--viewport-offset-left,0px), var(--viewport-offset-top,0px), 0);transform-origin:0 0;position:fixed;top:0;left:0}}:root{--keyboard-inset:0px;--viewport-offset-top:0px;--viewport-offset-left:0px;--visual-viewport-height:100dvh;--visual-viewport-width:100vw}::selection{background:#3b82f64d}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.status-bar{width:6px;position:absolute;top:0;bottom:0;left:0}.status-bar-working{background:var(--working)}.status-bar-approval{background:var(--approval)}.status-bar-waiting{background:var(--waiting)}@keyframes pulse-approval{0%,to{opacity:1;box-shadow:0 0 8px var(--approval)}50%{opacity:.3;box-shadow:0 0 0px var(--approval)}}.pulse-approval{animation:1.5s ease-in-out infinite pulse-approval}@keyframes pulse-complete{0%,20%,40%,60%,80%,to{opacity:1;box-shadow:0 0 8px var(--waiting)}10%,30%,50%,70%,90%{opacity:.3;box-shadow:0 0 0px var(--waiting)}}.pulse-complete{animation:5s ease-out pulse-complete}@keyframes media-attention{0%,to{box-shadow:0 0 #0000}50%{box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 30%, transparent)}}.media-attention{border-color:var(--accent);animation:.8s ease-in-out 2 media-attention}.xterm{padding:8px;font-family:JetBrains Mono Variable,JetBrains Mono,SF Mono,Fira Code,ui-monospace,monospace}.ios-native-term-selection .xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre;font-family:inherit;font-size:var(--xterm-font-size,13px);line-height:var(--xterm-cell-height,18px);letter-spacing:var(--xterm-a11y-letter-spacing,0px);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;font-variant-ligatures:none;font-kerning:none}.ios-native-term-selection .xterm .xterm-accessibility-tree>div{line-height:var(--xterm-cell-height,18px)}.ios-native-term-selection .xterm-helper-textarea{opacity:0;caret-color:#0000;pointer-events:none;-webkit-user-select:text;user-select:text;width:1px;height:1px;font-size:16px;line-height:16px;transform:translate(-50%,-50%);position:absolute!important;top:50%!important;left:50%!important}@media (hover:none) and (pointer:coarse){.ios-native-term-selection .xterm .xterm-accessibility:not(.debug),.ios-native-term-selection .xterm-helper-textarea{pointer-events:auto}}.xterm .xterm-viewport{scrollbar-color:var(--border) transparent;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background-color:#0000!important}.xterm .xterm-viewport::-webkit-scrollbar{width:8px}.xterm .xterm-viewport::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.session-row{transition:background-color .1s;position:relative}.session-row:hover{background:var(--bg-hover)}.session-row.selected{background:var(--bg-hover);box-shadow:inset 0 1px var(--text-muted), inset 0 -1px var(--text-muted);border-top:0;border-bottom:0}.session-row.selected:hover{background:var(--bg-hover)}.shortcut-badge{background:var(--bg-base);border:1px solid var(--border-subtle);color:var(--text-muted);border-radius:5px;justify-content:center;align-items:center;gap:2px;min-width:18px;height:18px;padding:0 6px;font-size:10px;line-height:1;display:inline-flex}.shortcut-badge svg{opacity:.7}.shortcut-badge .shortcut-plus{opacity:.6}@media (width<=767px){.terminal-mobile-overlay{z-index:30;background:var(--bg-base);flex-direction:column;max-width:100vw;height:100%;transition:height .1s ease-out;display:flex;position:relative;overflow:hidden}}.session-drawer-backdrop,.session-drawer{display:none}@media (width<=767px){.session-drawer-backdrop{z-index:40;opacity:0;pointer-events:none;background:#00000080;transition:opacity .2s ease-out;display:block;position:fixed;inset:0}.session-drawer-backdrop.open{opacity:1;pointer-events:auto}.session-drawer{z-index:50;width:75vw;max-width:300px;padding-top:env(safe-area-inset-top,0px);background:var(--bg-elevated);border-right:1px solid var(--border);outline:none;flex-direction:column;transition:transform .2s ease-out;display:flex;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.session-drawer.open{transform:translate(0)}}.terminal-controls{z-index:40;flex-shrink:0;position:relative}.terminal-key{-webkit-tap-highlight-color:transparent}.terminal-key:active{background:var(--bg-hover)}.ios:not(.keyboard-visible) #root{padding-bottom:env(safe-area-inset-bottom,0px)}.ios .terminal-mobile-overlay{height:var(--visual-viewport-height,100dvh)}.ios-pwa .terminal-mobile-overlay{height:100%}.ios:not(.keyboard-visible) .terminal-mobile-overlay{padding-bottom:env(safe-area-inset-bottom,0px)}.project-badge{background-color:oklch(.7 .12 var(--badge-hue) / .22);color:oklch(.85 .07 var(--badge-hue))}[data-theme=light] .project-badge{background-color:oklch(.7 .12 var(--badge-hue) / .18);color:oklch(.5 .13 var(--badge-hue))}.scrollbar-none{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-none::-webkit-scrollbar{display:none}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.pulse-approval,.pulse-complete,.media-attention{animation:none}}.placeholder\:italic::placeholder{font-style:italic}.placeholder\:text-muted::placeholder{color:var(--text-muted)}.backdrop\:bg-black\/50::backdrop{background-color:#00000080}.first\:mt-0:first-child{margin-top:0}.first\:border-t-0:first-child{border-top-width:0}.first\:pt-0:first-child{padding-top:0}.last\:mb-0:last-child{margin-bottom:0}.hover\:border-accent\/50:hover{border-color:color-mix(in srgb, var(--accent) calc(.5 * 100%), transparent)}.hover\:bg-accent\/30:hover{background-color:color-mix(in srgb, var(--accent) calc(.3 * 100%), transparent)}.hover\:bg-accent\/90:hover{background-color:color-mix(in srgb, var(--accent) calc(.9 * 100%), transparent)}.hover\:bg-amber-500\/30:hover{background-color:#f59e0b4d}.hover\:bg-blue-600:hover{background-color:#2563eb}.hover\:bg-danger\/10:hover{background-color:color-mix(in srgb, var(--danger) calc(.1 * 100%), transparent)}.hover\:bg-danger\/20:hover{background-color:color-mix(in srgb, var(--danger) calc(.2 * 100%), transparent)}.hover\:bg-hover:hover{background-color:var(--bg-hover)}.hover\:bg-white\/10:hover{background-color:#ffffff1a}.hover\:text-accent:hover{color:var(--accent)}.hover\:text-approval:hover{color:var(--approval)}.hover\:text-danger:hover{color:var(--danger)}.hover\:text-primary:hover{color:var(--text-primary)}.focus\:border-accent:focus{border-color:var(--accent)}.focus\:outline-none:focus{outline-offset:2px;outline:2px solid #0000}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus\:ring-primary:focus{--tw-ring-color:var(--text-primary)}.focus-visible\:bg-hover:focus-visible{background-color:var(--bg-hover)}.focus-visible\:outline-none:focus-visible{outline-offset:2px;outline:2px solid #0000}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-inset:focus-visible{--tw-ring-inset:inset}.focus-visible\:ring-accent:focus-visible{--tw-ring-color:var(--accent)}.focus-visible\:ring-accent\/40:focus-visible{--tw-ring-color:color-mix(in srgb, var(--accent) calc(.4 * 100%), transparent)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.active\:scale-95:active{--tw-scale-x:.95;--tw-scale-y:.95;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:bg-hover:active{background-color:var(--bg-hover)}.active\:bg-white\/20:active{background-color:#fff3}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:cursor-wait:disabled{cursor:wait}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:pr-4{padding-right:1rem}.group:hover .group-hover\:text-accent{color:var(--accent)}.group:hover .group-hover\:opacity-100{opacity:1}.aria-\[invalid\=true\]\:border-danger[aria-invalid=true]{border-color:var(--danger)}.data-\[ending-style\]\:translate-x-\[var\(--toast-swipe-end-x\)\][data-ending-style]{--tw-translate-x:var(--toast-swipe-end-x);transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[starting-style\]\:translate-y-2[data-starting-style]{--tw-translate-y:.5rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=move\]\:translate-x-\[var\(--toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x:var(--toast-swipe-move-x);transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[checked\]\:bg-accent[data-checked]{background-color:var(--accent)}.data-\[ending-style\]\:opacity-0[data-ending-style],.data-\[starting-style\]\:opacity-0[data-starting-style]{opacity:0}.group[data-checked] .group-data-\[checked\]\:translate-x-5{--tw-translate-x:1.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@media not all and (width>=768px){.max-md\:order-3{order:3}.max-md\:order-4{order:4}.max-md\:order-5{order:5}.max-md\:col-span-3{grid-column:span 3/span 3}.max-md\:flex{display:flex}.max-md\:hidden{display:none}.max-md\:size-\[44px\]{width:44px;height:44px}.max-md\:h-\[38px\]{height:38px}.max-md\:h-\[44px\]{height:44px}.max-md\:min-h-\[44px\]{min-height:44px}.max-md\:w-36{width:9rem}.max-md\:w-\[44px\]{width:44px}.max-md\:w-full{width:100%}.max-md\:grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,auto\)_auto\]{grid-template-columns:minmax(0,1fr) minmax(0,auto) auto}.max-md\:flex-col{flex-direction:column}.max-md\:items-stretch{align-items:stretch}.max-md\:justify-center{justify-content:center}.max-md\:gap-y-2{row-gap:.5rem}.max-md\:text-\[16px\]{font-size:16px}}@media (width>=360px){.min-\[360px\]\:flex{display:flex}}@media (width>=640px){.sm\:grid-cols-\[6\.75rem_minmax\(0\,1fr\)\]{grid-template-columns:6.75rem minmax(0,1fr)}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}}@media (width>=768px){.md\:relative{position:relative}.md\:inset-auto{inset:auto}.md\:block{display:block}.md\:inline{display:inline}.md\:flex{display:flex}.md\:inline-flex{display:inline-flex}.md\:hidden{display:none}.md\:h-\[16px\]{height:16px}.md\:min-h-\[30px\]{min-height:30px}.md\:w-\[16px\]{width:16px}.md\:max-w-\[18rem\]{max-width:18rem}.md\:shrink-0{flex-shrink:0}.md\:flex-row{flex-direction:row}.md\:items-start{align-items:flex-start}.md\:justify-center{justify-content:center}.md\:justify-between{justify-content:space-between}.md\:gap-\[6px\]{gap:6px}.md\:p-6{padding:1.5rem}.md\:px-\[12px\]{padding-left:12px;padding-right:12px}.md\:py-\[5px\]{padding-top:5px;padding-bottom:5px}.md\:text-\[12px\]{font-size:12px}.md\:leading-\[18px\]{line-height:18px}}@media (pointer:coarse){.\[\@media\(pointer\:coarse\)\]\:h-\[44px\]{height:44px}.\[\@media\(pointer\:coarse\)\]\:min-h-\[44px\]{min-height:44px}.\[\@media\(pointer\:coarse\)\]\:min-w-\[44px\]{min-width:44px}.\[\@media\(pointer\:coarse\)\]\:items-center{align-items:center}.\[\@media\(pointer\:coarse\)\]\:gap-\[22px\]{gap:22px}.\[\@media\(pointer\:coarse\)\]\:text-\[16px\]{font-size:16px}.\[\@media\(pointer\:coarse\)\]\:before\:absolute:before{content:var(--tw-content);position:absolute}.\[\@media\(pointer\:coarse\)\]\:before\:inset-\[calc\(50\%-22px\)\]:before{content:var(--tw-content);inset:calc(50% - 22px)}.\[\@media\(pointer\:coarse\)\]\:before\:content-\[\'\'\]:before{--tw-content:"";content:var(--tw-content)}}.xterm{cursor:text;-webkit-user-select:none;user-select:none;position:relative}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{z-index:5;position:absolute;top:0}.xterm .xterm-helper-textarea{opacity:0;z-index:-5;white-space:nowrap;resize:none;border:0;width:0;height:0;margin:0;padding:0;position:absolute;top:0;left:-9999em;overflow:hidden}.xterm .composition-view{color:#fff;white-space:nowrap;z-index:1;background:#000;display:none;position:absolute}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{cursor:default;background-color:#000;position:absolute;inset:0;overflow-y:scroll}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;top:0;left:0}.xterm-char-measure-element{visibility:hidden;line-height:normal;display:inline-block;position:absolute;top:0;left:-9999em}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{z-index:10;color:#0000;pointer-events:none;position:absolute;inset:0}.xterm .xterm-accessibility-tree:not(.debug) ::-moz-selection{color:#0000}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:#0000}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre;font-family:monospace}.xterm .xterm-accessibility-tree>div{transform-origin:0;width:fit-content}.xterm .live-region{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:underline double;text-decoration:underline double}.xterm-underline-3{-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.xterm-underline-4{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.xterm-underline-5{-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:underline overline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;pointer-events:none;position:absolute;top:0;right:0}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;z-index:11;background:0 0;transition:opacity .1s linear}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{display:none;position:absolute}.xterm .xterm-scrollable-element>.shadow.top{width:100%;height:3px;box-shadow:var(--vscode-scrollbar-shadow,#000) 0 6px 6px -6px inset;display:block;top:0;left:3px}.xterm .xterm-scrollable-element>.shadow.left{width:3px;height:100%;box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset;display:block;top:3px;left:0}.xterm .xterm-scrollable-element>.shadow.top-left-corner{width:3px;height:3px;display:block;top:0;left:0}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset}
|
|
@@ -296,11 +296,11 @@ ${s.join(`
|
|
|
296
296
|
select-none touch-manipulation
|
|
297
297
|
text-secondary
|
|
298
298
|
${r?`opacity-50`:``}
|
|
299
|
-
`,onMouseDown:e=>e.preventDefault(),onTouchEnd:D(T),onClick:O(T),disabled:r,children:uq})]}),(0,k.jsx)(aq,{...p,allowFiles:s})]})}var xq=12*1024*1024;function Sq(e){return e<1024?`${e} B`:e<1024*1024?`${Math.round(e/1024)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function Cq(e){return[e.label,e.mediaType,e.bytes==null?null:Sq(e.bytes)].filter(Boolean).join(` · `)}function wq({media:e,onOpen:t}){let n=Cq(e);if(e.kind===`link`)return(0,k.jsxs)(`a`,{href:e.url,target:`_blank`,rel:`noreferrer noopener`,title:n||e.url,className:`flex h-14 shrink-0 items-center gap-1.5 rounded-md border border-border bg-surface px-2.5 text-xs text-secondary hover:border-accent/50 hover:text-primary`,children:[(0,k.jsx)(we,{width:W.primary,height:W.primary}),(0,k.jsx)(`span`,{className:`max-w-[10rem] truncate`,children:e.label??`Link`})]});let r=e.kind===`image`,i=e.bytes!=null&&e.bytes>xq;return r&&!i?(0,k.jsx)(`button`,{type:`button`,"data-testid":`media-thumb`,onClick:()=>t(e),title:n||`Image`,className:`h-14 w-14 shrink-0 overflow-hidden rounded-md border border-border bg-surface hover:border-accent/50`,children:(0,k.jsx)(`img`,{src:e.url,alt:n||`session image`,loading:`lazy`,className:`h-full w-full object-cover`})}):(0,k.jsxs)(`button`,{type:`button`,"data-testid":`media-chip`,onClick:()=>window.open(e.url,`_blank`,`noopener`),title:n||e.kind,className:`flex h-14 shrink-0 items-center gap-1.5 rounded-md border border-border bg-surface px-2.5 text-xs text-secondary hover:border-accent/50 hover:text-primary`,children:[r?(0,k.jsx)(Se,{width:W.primary,height:W.primary}):(0,k.jsx)(be,{width:W.primary,height:W.primary}),(0,k.jsx)(`span`,{className:`max-w-[10rem] truncate`,children:e.label??(r?`Image`:`Document`)}),e.bytes!=null&&(0,k.jsx)(`span`,{className:`text-muted`,children:Sq(e.bytes)})]})}function Tq({session:e}){let t=JSON.stringify([e.id,e.agentSessionId,e.logFilePath,e.remote]);return(0,k.jsx)(Eq,{session:e},t)}function Eq({session:e}){let[t,n]=(0,y.useState)(!1),[r,i]=(0,y.useState)(null),[a,o]=(0,y.useState)(`idle`),s=(0,y.useRef)(new Set(e.media?.map(e=>e.url)));(0,y.useEffect)(()=>{let n=new Set(e.media?.map(e=>e.url)),r=[...n].some(e=>!s.current.has(e));for(let e of n)s.current.add(e);n.size===0?o(`idle`):r&&!t&&!e.remote&&o(`pulsing`)},[e.media,e.remote,t]),(0,y.useEffect)(()=>{if(a!==`pulsing`)return;let e=setTimeout(()=>o(`unread`),1600);return()=>clearTimeout(e)},[a]),(0,y.useEffect)(()=>{if(!r)return;let e=e=>{e.key===`Escape`&&(e.stopPropagation(),i(null))};return window.addEventListener(`keydown`,e,!0),()=>window.removeEventListener(`keydown`,e,!0)},[r]);let c=e.media;if(e.remote||!c?.length)return null;let l=c.filter(e=>e.kind===`image`).length,u=c.length-l;return(0,k.jsxs)(k.Fragment,{children:[t?(0,k.jsxs)(`div`,{"data-testid":`media-rail`,className:`absolute top-2 right-2 z-40 w-[min(560px,calc(100%-1.5rem))] rounded-xl border border-border bg-elevated/95 shadow-xl backdrop-blur`,children:[(0,k.jsxs)(`div`,{className:`flex items-center justify-between border-b border-border/60 px-3 py-2`,children:[(0,k.jsxs)(`span`,{className:`text-xs text-muted`,children:[`Media · `,c.length]}),(0,k.jsx)(`button`,{type:`button`,"aria-label":`Collapse media rail`,onClick:()=>n(!1),className:`text-muted hover:text-primary`,children:(0,k.jsx)(it,{width:W.default,height:W.default})})]}),(0,k.jsx)(`div`,{className:`scrollbar-none flex gap-2 overflow-x-auto px-3 py-2`,children:c.map((e,t)=>(0,k.jsx)(wq,{media:e,onOpen:i},`${e.url}:${t}`))})]}):(0,k.jsxs)(`button`,{type:`button`,"data-testid":`media-rail-pill`,"aria-expanded":!1,onClick:()=>{o(`idle`),n(!0)},"aria-label":`Open media: ${c.length} ${c.length===1?`item`:`items`}${a===`idle`?``:`, new media`}`,className:`absolute top-2 right-2 z-40 flex items-center gap-1.5 rounded-full border border-border bg-elevated/90 px-3 py-1.5 text-xs text-secondary shadow-lg backdrop-blur transition-colors hover:text-primary md:min-h-[30px] md:gap-[6px] md:px-[12px] md:py-[5px] md:text-[12px] md:leading-[18px] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent ${a===`pulsing`?`media-attention`:``} ${Ht}`,children:[(0,k.jsx)(Se,{width:W.pill,height:W.pill,className:`md:h-[16px] md:w-[16px]`}),(0,k.jsx)(`span`,{className:`hidden md:inline`,children:`Media`}),(0,k.jsx)(`span`,{className:`tabular-nums`,children:l}),u>0&&(0,k.jsxs)(`span`,{className:`text-muted tabular-nums`,children:[`+`,u]}),a!==`idle`&&(0,k.jsx)(`span`,{"data-testid":`media-rail-new-dot`,"aria-hidden":`true`,className:`h-[6px] w-[6px] shrink-0 rounded-full bg-accent`})]}),r&&(0,k.jsx)(`div`,{"data-testid":`media-lightbox`,role:`dialog`,"aria-modal":`true`,"aria-label":`Media preview`,className:`fixed inset-0 z-[60] flex items-center justify-center bg-black/70 backdrop-blur-sm`,onClick:()=>i(null),children:(0,k.jsxs)(`figure`,{className:`flex max-w-[90vw] flex-col items-center gap-2`,onClick:e=>e.stopPropagation(),children:[(0,k.jsx)(`img`,{src:r.url,alt:Cq(r)||`session media`,className:`max-h-[80vh] max-w-full rounded-lg object-contain shadow-2xl`}),(0,k.jsxs)(`figcaption`,{className:`flex items-center gap-3 text-xs text-white/80`,children:[(0,k.jsx)(`span`,{children:Cq(r)||`Image`}),r.width!=null&&r.height!=null&&(0,k.jsxs)(`span`,{children:[r.width,`×`,r.height]}),(0,k.jsx)(`a`,{href:r.url,target:`_blank`,rel:`noreferrer noopener`,className:`text-accent underline underline-offset-2`,children:`Open original`})]})]})})]})}function Dq({isOpen:e,onClose:t,sessions:n,hibernatingSessions:r=[],historySessions:i=[],selectedSessionId:a,selectedHibernatingSessionId:o=null,onSelect:s,onSelectHibernating:c,onRename:l,onResume:u,onHibernate:d,onMoveToHistory:f,onNewSession:p,onOpenHistory:m,subscribe:h,loading:g,error:_}){let v=sf(),b=(0,y.useRef)(null),x=(0,y.useRef)(null);(0,y.useEffect)(()=>{if(!e||typeof document>`u`)return;let{body:t}=document,n=window.scrollY,r={position:t.style.position,top:t.style.top,width:t.style.width};return t.style.position=`fixed`,t.style.top=`-${n}px`,t.style.width=`100%`,()=>{t.style.position=r.position,t.style.top=r.top,t.style.width=r.width,window.scrollTo(0,n)}},[e]),(0,y.useEffect)(()=>{if(!e)return;let n=e=>{e.key===`Escape`&&(e.preventDefault(),t())};return document.addEventListener(`keydown`,n),()=>document.removeEventListener(`keydown`,n)},[e,t]),(0,y.useEffect)(()=>{e?(x.current=document.activeElement,b.current?.focus({preventScroll:!0})):x.current&&=(x.current.focus({preventScroll:!0}),null)},[e]),(0,y.useEffect)(()=>{if(!e)return;let n=b.current;if(!n)return;let r=0,i=0,a=e=>{let t=e.touches[0];r=t.clientX,i=t.clientY},o=e=>{let n=e.changedTouches[0],a=r-n.clientX,o=Math.abs(n.clientY-i);a>=50&&a>o*1.5&&(`vibrate`in navigator&&navigator.vibrate(10),t())};return n.addEventListener(`touchstart`,a,{passive:!0}),n.addEventListener(`touchend`,o,{passive:!0}),()=>{n.removeEventListener(`touchstart`,a),n.removeEventListener(`touchend`,o)}},[e,t]);let S=e=>{s(e),t()},C=e=>{c?.(e),t()},w=m?()=>{t(),m()}:void 0,T=v?{transition:`none`}:void 0;return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(`div`,{className:`session-drawer-backdrop ${e?`open`:``}`,style:T,onClick:t,"aria-hidden":`true`}),(0,k.jsxs)(`div`,{ref:b,className:`session-drawer ${e?`open`:``}`,style:T,role:`dialog`,"aria-modal":`true`,"aria-label":`Session list`,tabIndex:-1,children:[(0,k.jsx)(lk,{sessions:n,hibernatingSessions:r,historySessions:i,selectedSessionId:a,selectedHibernatingSessionId:o,onSelect:S,onSelectHibernating:C,onRename:l,onResume:u,onHibernate:d,onMoveToHistory:f,scrollSelectionActive:e,onNewSession:()=>{p()!==!1&&t()},loading:g,error:_,notice:w&&(0,k.jsx)(N,{onOpen:w,subscribe:h})}),(0,k.jsxs)(`div`,{className:`flex shrink-0 gap-2 border-t border-border px-2 pt-2`,style:{paddingBottom:`max(0.5rem, env(safe-area-inset-bottom, 0.5rem))`},children:[(0,k.jsx)(`button`,{onClick:()=>{p()!==!1&&t()},className:`btn btn-primary min-h-[44px] flex-1 py-2 text-sm`,children:`New Session`}),w&&(0,k.jsx)(`button`,{type:`button`,onClick:w,className:zt(`neutral`),title:`Session recovery`,"aria-label":`Session recovery`,children:(0,k.jsx)(ue,{width:W.primary,height:W.primary})})]})]})]})}var Oq={working:`bg-green-500/35 text-white`,waiting:`bg-blue-500/35 text-white`,permission:`bg-amber-500/35 text-white`,unknown:`bg-gray-500/35 text-white`},kq={working:`bg-working text-white`,waiting:`bg-waiting text-white`,permission:`bg-approval text-white`,unknown:`bg-muted text-white`};function Aq(){`vibrate`in navigator&&navigator.vibrate(10)}function jq({session:e,sessions:t,drawerSessions:n,hibernatingSession:r=null,hibernatingSessions:i=[],historySessions:a=[],connectionStatus:o,connectionEpoch:s=0,sendMessage:c,subscribe:l,onClose:u,onSelectSession:d,onSelectHibernatingSession:f,onNewSession:p,onKillSession:m,onRenameSession:h,onDuplicateSession:g,onResumeSession:_,onHibernateSession:v,onMoveToHistory:b,onOpenSettings:x,onOpenHistory:S,loading:C=!1,error:w=null}){let T=dK[lK()],E=U(e=>e.useWebGL),D=U(e=>e.fontSize),O=U(e=>e.lineHeight),A=U(e=>e.letterSpacing),j=yt(U(e=>e.fontOption),U(e=>e.customFontFamily)),M=Mt(At(U(e=>e.shortcutModifier))),N=Dt(),P=Yh(),[F,ee]=(0,y.useState)(!1),[L,z]=(0,y.useState)(!1),[B,te]=(0,y.useState)(!1),[V,ne]=(0,y.useState)(!1),[H,re]=(0,y.useState)(!1),[ie,ae]=(0,y.useState)(!1),[oe,se]=(0,y.useState)(``),le=(0,y.useRef)(!1),ue=(0,y.useRef)(null),de=(0,y.useRef)(null),fe=(0,y.useRef)(null);Jh(fe,e?.id??null);let pe=(0,y.useRef)(null),me=(0,y.useRef)(null),he=(0,y.useRef)(()=>{}),_e=(0,y.useRef)(()=>{}),ye=e?.remote===!0,be=Hh(e=>e.remoteAllowControl),xe=Hh(e=>e.remoteAllowAttach),Se=Hh(e=>e.preferWindowName),Ce=ye&&!xe,we=!ye||be&&e?.source===`managed`,Te=r?r.displayName||jh(r.projectPath)||r.sessionId.slice(0,8):``,Ee=r?jh(r.projectPath):``,De=r?Ah(r.lastActivityAt):``,Oe=!!e&&!!v&&e.source===`managed`&&!e.remote&&!!e.agentSessionId?.trim(),ke=(0,y.useMemo)(()=>{let e=new Set;for(let n of t)n.host?.trim()&&e.add(n.host.trim());for(let t of i)t.host?.trim()&&e.add(t.host.trim());return e.size>1},[t,i]),{containerRef:Ae,terminalRef:je,inTmuxCopyModeRef:Me,isTmuxCopyMode:Ne,appMouseRef:Pe,setTmuxCopyMode:Fe,isSwitching:Ie,isInputReady:Le,pendingClipboardOffer:Re,copyPendingClipboardOffer:ze,dismissPendingClipboardOffer:Ve}=tK({sessionId:e?.id??null,tmuxTarget:e?.tmuxWindow??null,agentType:e?.agentType,onPasteFiles:e=>he.current(e),onPasteError:e=>_e.current(e),allowAttach:!Ce,connectionStatus:o,connectionEpoch:s,sendMessage:c,subscribe:l,theme:T,fontSize:D,lineHeight:O,letterSpacing:A,fontFamily:j,useWebGL:E,onScrollChange:e=>{ee(!e)}}),He=(0,y.useCallback)(()=>{!e||Ce||(c({type:`tmux-cancel-copy-mode`,sessionId:e.id}),Fe(!1),je.current?.scrollToBottom())},[e,Ce,c,Fe,je]),Ue=(0,y.useCallback)(()=>{re(!0),Aq()},[]),Ge=iK({enabled:P||N,isOpen:H,onOpen:Ue});(0,y.useEffect)(()=>{!P&&!N&&H&&re(!1)},[H,P,N]),nK(de,V,(0,y.useCallback)(()=>ne(!1),[])),(0,y.useEffect)(()=>{ie&&pe.current&&(pe.current.focus(),pe.current.select())},[ie]),(0,y.useEffect)(()=>{B&&me.current&&me.current.focus()},[B]),rK(B,(0,y.useCallback)(()=>te(!1),[]));let Ke=()=>{e&&(m(e.id,`terminal_confirm_modal`),te(!1))},qe=()=>{!e||!Oe||(v?.(e.agentSessionId.trim()),ne(!1))},Je=()=>{e&&(se(e.agentSessionName||e.name),ae(!0),ne(!1))},Ye=()=>{if(!e)return;let t=oe.trim(),n=e.agentSessionName||e.name;t&&t!==n&&h(e.id,t),ae(!1)},Xe=e=>{e.key===`Enter`?(e.preventDefault(),Ye()):e.key===`Escape`&&(e.preventDefault(),ae(!1))};(0,y.useEffect)(()=>{if(!N||!e){z(!1);return}let t=Ae.current;if(!t)return;let n=e=>{let n=t.querySelector(`.xterm-accessibility-tree`);if(!n)return!1;let r=e.anchorNode,i=e.focusNode;return!!r&&n.contains(r)||!!i&&n.contains(i)},r=()=>{let e=t.querySelector(`.xterm-accessibility`),n=t.querySelector(`.xterm-accessibility-tree`);!e||!n||(e.style.setProperty(`opacity`,`0`),n.style.setProperty(`opacity`,`0`),e.style.setProperty(`-webkit-user-select`,`none`),e.style.setProperty(`user-select`,`none`),n.style.setProperty(`-webkit-user-select`,`none`),n.style.setProperty(`user-select`,`none`),e.offsetHeight,requestAnimationFrame(()=>{e.style.removeProperty(`opacity`),n.style.removeProperty(`opacity`),e.style.removeProperty(`-webkit-user-select`),e.style.removeProperty(`user-select`),n.style.removeProperty(`-webkit-user-select`),n.style.removeProperty(`user-select`)}))},i=()=>{le.current=!1;let e=window.getSelection();try{e?.removeAllRanges()}catch{}je.current?.clearSelection(),r(),z(!1)};ue.current=i;let a=()=>{let e=window.getSelection();if(!e||e.rangeCount===0||e.isCollapsed){le.current?i():z(e=>e&&!1);return}let t=n(e);if(!t&&le.current){i();return}le.current=t;let r=t;z(e=>e===r?e:r)},o=()=>{let e=window.getSelection();!e||e.isCollapsed||n(e)&&setTimeout(i,0)},s=null,c=!1,l=e=>{if(e.touches.length===1){let t=e.touches[0];s={x:t.clientX,y:t.clientY},c=!1}},u=e=>{if(c||!s||e.touches.length!==1)return;let t=e.touches[0],n=Math.abs(t.clientX-s.x),r=Math.abs(t.clientY-s.y);(n>10||r>10)&&(c=!0)},d=e=>{let r=c;s=null,c=!1;let a=window.getSelection();if(!a||a.rangeCount===0||a.isCollapsed){z(!1);return}let o=t.querySelector(`.xterm-accessibility-tree`);if(!o)return;if(!n(a)){z(!1);return}if(r)return;let l=e.target,u=l?o.contains(l):!1,d=!1;if(u&&l)try{d=a.containsNode(l,!0)}catch{d=!1}(!u||!d)&&setTimeout(i,0)};return document.addEventListener(`selectionchange`,a),document.addEventListener(`copy`,o),document.addEventListener(`touchstart`,l,{passive:!0}),document.addEventListener(`touchmove`,u,{passive:!0}),document.addEventListener(`touchend`,d,{passive:!0}),()=>{document.removeEventListener(`selectionchange`,a),document.removeEventListener(`copy`,o),document.removeEventListener(`touchstart`,l),document.removeEventListener(`touchmove`,u),document.removeEventListener(`touchend`,d),ue.current=null,le.current=!1}},[Ae,N,e?.id]),(0,y.useEffect)(()=>{if(!N)return;let t=Ae.current;if(!t)return;let n=null,r=()=>{let e=je.current,r=t.querySelector(`.xterm`);if(!e||!r)return;let i=r.querySelector(`.xterm-screen`),a=r.querySelector(`.xterm-accessibility`),o=r.querySelector(`.xterm-accessibility-tree`);if(!i||!a||!o)return;n||=yK(o);let s=r.getBoundingClientRect(),c=i.getBoundingClientRect(),l=c.left-s.left,u=c.top-s.top;Object.assign(a.style,{left:`${l}px`,top:`${u}px`,right:`auto`,bottom:`auto`,width:`${c.width}px`,height:`${c.height}px`});let d=c.width/e.cols,f=c.height/e.rows,p=document.createElement(`span`);p.textContent=`0`.repeat(200),p.style.cssText=`position:absolute;visibility:hidden;white-space:pre;pointer-events:none;letter-spacing:0px`,o.appendChild(p);let m=p.getBoundingClientRect().width/200;p.remove();let h=Math.max(-2,Math.min(2,d-m));t.style.setProperty(`--xterm-font-size`,`${e.options.fontSize}px`),t.style.setProperty(`--xterm-cell-height`,`${f}px`),t.style.setProperty(`--xterm-a11y-letter-spacing`,`${h}px`)},i=performance.now();r();let a=Math.round(performance.now()-i);a>10&&X(`switch_a11y_overlay`,{sessionId:e?.id,a11yMs:a});let o=window.requestAnimationFrame(r),s=window.setTimeout(r,100),c=()=>window.requestAnimationFrame(r);return window.visualViewport?.addEventListener(`resize`,c),window.addEventListener(`orientationchange`,c),()=>{window.cancelAnimationFrame(o),window.clearTimeout(s),window.visualViewport?.removeEventListener(`resize`,c),window.removeEventListener(`orientationchange`,c),n?.()}},[Ae,D,N,e?.id,je]);let Ze=(0,y.useRef)(L);(0,y.useEffect)(()=>{Ze.current=L},[L]);let $e=(0,y.useRef)(e?.id);(0,y.useEffect)(()=>{$e.current=e?.id},[e?.id]);let tt=(0,y.useRef)(c);(0,y.useEffect)(()=>{tt.current=c},[c]);let nt=(0,y.useRef)(!1),rt=(0,y.useRef)(`idle`);(0,y.useEffect)(()=>{if(!N)return;let e=Ae.current;if(!e)return;let t=null,n=()=>e.querySelector(`.xterm-helper-textarea`),r=e=>{e.target===n()&&(rt.current=`focused`)},i=e=>{e.target===n()&&(t!==null&&window.clearTimeout(t),t=window.setTimeout(()=>{t=null;let e=n(),r=typeof document.hasFocus!=`function`||document.hasFocus();document.activeElement!==e&&document.visibilityState!==`hidden`&&r&&(rt.current=`idle`)},0))},a=()=>{let e=n();(document.activeElement===e||rt.current===`focused`)&&(rt.current=`interrupted`)},o=()=>{rt.current===`interrupted`&&(rt.current=`armed`)},s=()=>{document.visibilityState===`hidden`?a():o()},c=e=>{e.persisted&&o()};return document.addEventListener(`focusin`,r),document.addEventListener(`focusout`,i),document.addEventListener(`visibilitychange`,s),window.addEventListener(`blur`,a),window.addEventListener(`focus`,o),window.addEventListener(`pageshow`,c),()=>{document.removeEventListener(`focusin`,r),document.removeEventListener(`focusout`,i),document.removeEventListener(`visibilitychange`,s),window.removeEventListener(`blur`,a),window.removeEventListener(`focus`,o),window.removeEventListener(`pageshow`,c),t!==null&&window.clearTimeout(t),rt.current=`idle`}},[Ae,N,e?.id]),(0,y.useEffect)(()=>{let t=Ae.current;if(!t||!e?.id||!P&&!N)return;let n={x:0,y:0},r=0,i=!1,a=null,o=0,s=0,c=0,l=Math.round(D*O),u=null,d=null,f=!1,p=null,m=()=>{let e=window.getComputedStyle(t).getPropertyValue(`--xterm-cell-height`).trim(),n=Number.parseFloat(e);return!Number.isNaN(n)&&n>0?n:Math.round(D*O)},h=()=>t.querySelector(`.xterm-helper-textarea`),g=e=>{let n=je.current;if(!n)return null;let r=(t.querySelector(`.xterm`)?.querySelector(`.xterm-screen`))?.getBoundingClientRect();if(!r||r.width<=0||r.height<=0)return null;let i=r.width/n.cols,a=r.height/n.rows;return i<=0||a<=0?null:{col:Math.min(n.cols,Math.max(1,Math.floor((e.clientX-r.left)/i)+1)),row:Math.min(n.rows,Math.max(1,Math.floor((e.clientY-r.top)/a)+1))}},_=()=>{let e=h();e&&document.activeElement!==e&&(e.disabled=!0)},v=()=>{let e=h();e&&(e.disabled=!1)};_();let y=()=>{if(Me.current)return;let e=h();e&&(e.disabled=!1,e.focus())},b=()=>{u!==null&&(cancelAnimationFrame(u),u=null),s=0},x=()=>{d!==null&&(clearTimeout(d),d=null)},S=(e,t,n)=>{let r=$e.current;return r?(tt.current({type:`terminal-input`,sessionId:r,data:`\x1b[<${e};${t.col};${t.row}${n}`}),!0):!1},C=e=>{let t=$e.current;if(!t||e===0)return!1;let n=je.current,r=n?.cols??80,i=n?.rows??24,a=Math.floor(r/2),o=Math.floor(i/2),s=e>0?65:64,c=Math.abs(e),l=e<0;for(let e=0;e<c;e++)tt.current({type:`terminal-input`,sessionId:t,data:`\x1b[<${s};${a};${o}M`});return l&&!Pe.current&&Fe(!0),l},w=e=>{let t=$e.current,n=g(e);return!t||!n?!1:(tt.current({type:`terminal-input`,sessionId:t,data:`\x1b[<0;${n.col};${n.row}M\x1b[<0;${n.col};${n.row}m`}),!0)},T=e=>{if(!N||!Pe.current)return!1;let t=g(e);return t?(f=!0,p=t,_(),Aq(),S(0,t,`M`)):!1},E=e=>{let t=g(e);return t?p&&p.col===t.col&&p.row===t.row?!0:(p=t,S(32,t,`M`)):!1},k=e=>{let t=e?g(e):p;return f=!1,p=null,t?S(0,t,`m`):!1},A=()=>{x(),f=!1,p=null,a=null,s=0,c=0},j=()=>{if(!N)return!1;let e=window.getSelection();if(!e||e.isCollapsed)return!1;let n=t.querySelector(`.xterm-accessibility-tree`);if(!n)return!1;let r=e.anchorNode,i=e.focusNode;return!!r&&n.contains(r)||!!i&&n.contains(i)},M=()=>{!N||!le.current||j()||ue.current?.()},F=e=>{if(b(),M(),Ge.current||H){A();return}if(Ze.current){A();return}if(rt.current===`armed`&&!Me.current&&(rt.current=`idle`,y()),e.touches.length===1){let t=e.touches[0];if(n={x:t.clientX,y:t.clientY},r=performance.now(),i=!1,a=t.clientY,o=r,s=0,c=0,l=m(),v(),N&&Pe.current){let e={clientX:t.clientX,clientY:t.clientY};d=setTimeout(()=>{d=null,!(i||Ge.current||H)&&(Ze.current||j()||T(e))},350)}}},ee=e=>{if(e.touches.length!==1||a===null)return;if(M(),Ge.current||H){A();return}let t=performance.now(),r=e.touches[0],u=r.clientX,d=r.clientY;if(f){e.preventDefault(),e.stopPropagation(),E(r),a=d,o=t;return}if(Ze.current||j()){A();return}e.preventDefault(),e.stopPropagation();let p=Math.abs(u-n.x),m=Math.abs(d-n.y);!i&&(p>6||m>6)&&(i=!0,x(),_());let h=a-d,g=t-o;if(a=d,o=t,g>0){let e=h/g;s=s*.7+e*.3}c+=h;let v=Math.max(6,l*.6),y=Math.trunc(c/v);y!==0&&(C(y),c-=y*v)},I=e=>{let t=s,n=performance.now()-r;if(x(),f){k(e.changedTouches[0]),A(),e.preventDefault(),e.stopPropagation();return}if(A(),Ge.current||H)return;let a=j();if(Ze.current&&!a&&ue.current?.(),Ze.current||a){Me.current&&(nt.current=!0);return}if(!i){if(N&&n>=350)return;if(Pe.current){let t=e.changedTouches[0];if(t&&w(t)){y(),e.preventDefault(),e.stopPropagation();return}}if(Me.current){e.preventDefault(),e.stopPropagation(),nt.current=!0;return}y();return}if(Math.abs(t)>.12){let e=t,n=performance.now(),r=()=>{let t=performance.now(),i=t-n;n=t;let a=e*i;c+=a;let o=Math.max(6,l*.6),s=Math.trunc(c/o);s!==0&&(C(s),c-=s*o),e*=.95**(i/16.67),u=Math.abs(e)>.02?requestAnimationFrame(r):null};u=requestAnimationFrame(r)}},L=e=>{nt.current&&=(e.preventDefault(),e.stopPropagation(),!1)},R={passive:!0,capture:!0},z={passive:!1,capture:!0},B={passive:!1,capture:!0},te={capture:!0};return t.addEventListener(`touchstart`,F,R),t.addEventListener(`touchmove`,ee,z),t.addEventListener(`touchend`,I,B),t.addEventListener(`mousedown`,L,te),()=>{t.removeEventListener(`touchstart`,F,R),t.removeEventListener(`touchmove`,ee,z),t.removeEventListener(`touchend`,I,B),t.removeEventListener(`mousedown`,L,te),x();let e=h();e&&(e.disabled=!1)}},[e?.id,Ae,je,N,P,H,D,O]);let ot=(0,y.useCallback)(t=>{!e||Ce||!Le||c({type:`terminal-input`,sessionId:e.id,data:t})},[e,Ce,Le,c]),st=(0,y.useCallback)(t=>{!e||Ce||!Le||(Me.current&&(c({type:`tmux-cancel-copy-mode`,sessionId:e.id}),Fe(!1)),c({type:`terminal-paste`,sessionId:e.id,data:t}))},[e,Ce,Le,c,Me,Fe]),ct=(0,y.useCallback)(t=>{!e||Ce||!Le||(Me.current&&(c({type:`tmux-cancel-copy-mode`,sessionId:e.id}),Fe(!1)),ot(t))},[e,Ce,Le,c,Me,Fe,ot]),lt=(0,y.useCallback)(()=>{let e=Ae.current;if(!e)return;let t=e.querySelector(`.xterm-helper-textarea`);t&&(t.removeAttribute(`disabled`),t.focus())},[Ae]),ut=sq({sessionId:e?.id??null,disabled:o!==`connected`||Ce||!Le,fileUploadsAllowed:!ye,agentType:e?.agentType,onPasteText:st,onPasteImage:ct,onRefocus:lt});he.current=ut.paste,_e.current=ut.fail;let dt=(0,y.useCallback)(()=>{if(!e||Ce||!Le)return;Me.current&&(c({type:`tmux-cancel-copy-mode`,sessionId:e.id}),Fe(!1));let t=Ae.current;if(!t)return;let n=t.querySelector(`.xterm-helper-textarea`);n&&(n.removeAttribute(`disabled`),n.focus())},[e,Ce,Le,c,Ae,Me,Fe]),ft=(0,y.useCallback)(()=>{if(typeof document>`u`)return!1;let e=Ae.current;if(!e)return!1;let t=e.querySelector(`.xterm-helper-textarea`);if(t&&document.activeElement===t)return!0;let n=document.activeElement,r=typeof HTMLInputElement<`u`&&n instanceof HTMLInputElement,i=typeof HTMLTextAreaElement<`u`&&n instanceof HTMLTextAreaElement;return r||i||n&&n.isContentEditable?!1:!!document.documentElement?.classList?.contains(`keyboard-visible`)},[Ae]);(0,y.useEffect)(()=>{if(!N)return;let e=Ae.current;if(!e)return;let t=e.querySelector(`.xterm-accessibility`),n=e.querySelector(`.xterm-accessibility-tree`);if(!t||!n)return;let r=()=>{let r=e.querySelector(`.xterm-helper-textarea`);r&&document.activeElement===r&&!Ze.current?(t.style.pointerEvents=`none`,n.style.pointerEvents=`none`):(t.style.removeProperty(`pointer-events`),n.style.removeProperty(`pointer-events`))};return r(),document.addEventListener(`focusin`,r),document.addEventListener(`focusout`,r),()=>{document.removeEventListener(`focusin`,r),document.removeEventListener(`focusout`,r)}},[Ae,N,L]),(0,y.useEffect)(()=>{let e=Ae.current;e&&(e.inert=!!r)},[Ae,r]);let pt=(0,y.useMemo)(()=>{if(!Se||t.length===0)return!1;let e=t.map(e=>e.name.trim()).filter(Boolean);return e.length===t.length&&new Set(e).size===t.length},[Se,t]);return(0,k.jsxs)(`section`,{className:`flex flex-1 flex-col bg-base terminal-mobile-overlay md:relative md:inset-auto ${N?`ios-native-term-selection`:``}`,"data-testid":`terminal-panel`,onDragOver:t=>{Array.from(t.dataTransfer.types).includes(`Files`)&&(t.preventDefault(),t.dataTransfer.dropEffect=e&&!Ce&&Le&&!ye&&o===`connected`?`copy`:`none`)},onDrop:t=>{if(!Array.from(t.dataTransfer.types).includes(`Files`)||(t.preventDefault(),t.stopPropagation(),!e||Ce||!Le||ye||o!==`connected`))return;let n=bG(t.dataTransfer);n.length&&ut.paste({text:``,files:n})},children:[(0,k.jsxs)(`div`,{className:`flex min-h-[52px] shrink-0 items-center justify-between border-b border-border bg-elevated px-[6px] md:hidden`,children:[(0,k.jsxs)(`div`,{className:`flex min-w-0 items-center gap-[7px]`,children:[(0,k.jsx)(`button`,{onClick:()=>re(!0),className:zt(`neutral`),"aria-label":`Open session menu`,children:(0,k.jsx)(Be,{width:W.primary,height:W.primary})}),e?(0,k.jsxs)(`div`,{className:`flex min-w-[72px] flex-col items-start gap-px leading-none`,children:[ie?(0,k.jsx)(`input`,{ref:pe,type:`text`,value:oe,onChange:e=>se(e.target.value),onBlur:Ye,onKeyDown:Xe,className:`w-full max-w-[112px] rounded border border-border bg-surface px-2 py-0.5 text-sm font-medium text-primary outline-none focus:border-accent`}):(0,k.jsx)(`span`,{className:`max-w-[112px] truncate text-sm font-medium text-primary`,children:e.agentSessionName||e.name}),(0,k.jsx)(`span`,{className:`shrink-0 text-[10px] ${o===`connected`?xK[e.status]:`text-approval`}`,children:o===`connected`?bK[e.status]:o})]}):r?(0,k.jsxs)(`div`,{className:`flex min-w-0 flex-col items-start gap-px leading-none`,children:[(0,k.jsx)(`span`,{className:`max-w-[112px] truncate text-sm font-medium text-primary`,children:Te}),(0,k.jsx)(`span`,{className:`text-[10px] font-medium text-blue-400`,children:`Hibernating`})]}):(0,k.jsx)(`span`,{className:`text-sm font-medium text-primary`,children:`Sessions`})]}),(0,k.jsxs)(`div`,{className:`flex shrink-0 items-center gap-[4px]`,children:[(0,k.jsx)(`button`,{onClick:p,className:zt(`primary`),title:`New session (${M}N)`,"aria-label":`New session`,children:(0,k.jsx)(Qe,{width:W.primary,height:W.primary})}),e&&we&&(0,k.jsx)(`button`,{disabled:Ie,onClick:()=>te(!0),className:zt(`danger`),title:`Kill session (${M}X)`,"aria-label":`Kill session`,children:(0,k.jsx)(it,{width:W.primary,height:W.primary})}),Oe&&(0,k.jsx)(`button`,{onClick:qe,className:`${zt(`neutral`,`hidden`)} min-[360px]:flex`,title:`Hibernate session`,"aria-label":`Hibernate session`,children:(0,k.jsx)(We,{width:W.primary,height:W.primary})}),r&&(0,k.jsx)(`button`,{onClick:()=>_(r.sessionId),className:`btn btn-primary h-[44px] px-3 text-xs`,children:`Wake`}),e&&(0,k.jsxs)(`div`,{className:`relative`,ref:de,children:[(0,k.jsx)(`button`,{onClick:()=>ne(!V),className:zt(`neutral`),title:`More options`,"aria-label":`More options`,children:(0,k.jsx)(ge,{width:W.primary,height:W.primary})}),V&&(0,k.jsxs)(`div`,{className:`absolute right-0 top-full mt-1 z-20 min-w-[140px] rounded-md border border-border bg-elevated shadow-lg py-1`,children:[we&&(0,k.jsxs)(`button`,{onClick:Je,className:`flex min-h-[44px] w-full items-center gap-2 px-3 py-2 text-left text-sm text-secondary hover:bg-hover hover:text-primary`,children:[(0,k.jsx)(ve,{width:W.default,height:W.default}),`Rename`]}),Oe&&(0,k.jsxs)(`button`,{onClick:qe,className:`flex min-h-[44px] w-full items-center gap-2 px-3 py-2 text-left text-sm text-secondary hover:bg-hover hover:text-primary`,children:[(0,k.jsx)(We,{width:W.default,height:W.default}),`Hibernate`]}),(0,k.jsxs)(`button`,{onClick:()=>{x(),ne(!1)},className:`flex min-h-[44px] w-full items-center gap-2 px-3 py-2 text-left text-sm text-secondary hover:bg-hover hover:text-primary`,children:[(0,k.jsx)(et,{width:W.default,height:W.default}),`Settings`]})]})]})]})]}),e&&t.length>1&&(0,k.jsxs)(`div`,{className:`relative overflow-hidden bg-elevated border-b border-border md:hidden`,children:[(0,k.jsx)(`div`,{className:`absolute right-0 top-0 bottom-0 w-4 bg-gradient-to-l from-elevated to-transparent z-10 pointer-events-none`}),(0,k.jsx)(`div`,{ref:fe,className:`flex items-center gap-[6px] overflow-x-auto scroll-pe-4 px-[8px] py-[5px] scrollbar-none snap-x snap-mandatory`,style:{WebkitOverflowScrolling:`touch`},children:t.map((t,n)=>{let r=t.id===e.id,i=pt?t.name.trim():n+1;return(0,k.jsx)(`button`,{type:`button`,"data-session-id":t.id,className:`
|
|
299
|
+
`,onMouseDown:e=>e.preventDefault(),onTouchEnd:D(T),onClick:O(T),disabled:r,children:uq})]}),(0,k.jsx)(aq,{...p,allowFiles:s})]})}var xq=12*1024*1024,Sq=`h-[56px] w-[56px] shrink-0 overflow-hidden rounded-md border border-border bg-surface hover:border-accent/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-accent`,Cq=`${Sq} flex flex-col items-center justify-center gap-[3px] p-[4px] text-center text-secondary hover:text-primary`,wq=`line-clamp-2 w-full break-words text-[10px] leading-[12px]`;function Tq(e){return e<1024?`${e} B`:e<1024*1024?`${Math.round(e/1024)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function Eq(e){return[e.label,e.mediaType,e.bytes==null?null:Tq(e.bytes)].filter(Boolean).join(` · `)}function Dq({media:e,onOpen:t}){let n=Eq(e);if(e.kind===`link`)return(0,k.jsxs)(`a`,{href:e.url,target:`_blank`,rel:`noreferrer noopener`,title:[n,e.url].filter(Boolean).join(` · `),"aria-label":e.label||e.url,className:Cq,children:[(0,k.jsx)(we,{width:W.primary,height:W.primary,className:`shrink-0`}),(0,k.jsx)(`span`,{className:wq,children:e.label||`Link`})]});let r=e.kind===`image`,i=e.bytes!=null&&e.bytes>xq;return r&&!i?(0,k.jsx)(`button`,{type:`button`,"data-testid":`media-thumb`,onClick:()=>t(e),title:n||`Image`,className:Sq,children:(0,k.jsx)(`img`,{src:e.url,alt:n||`session image`,loading:`lazy`,className:`h-full w-full object-cover`})}):(0,k.jsxs)(`button`,{type:`button`,"data-testid":`media-chip`,onClick:()=>window.open(e.url,`_blank`,`noopener`),title:n||e.kind,"aria-label":n||(r?`Image`:`Document`),className:Cq,children:[r?(0,k.jsx)(Se,{width:W.primary,height:W.primary,className:`shrink-0`}):(0,k.jsx)(be,{width:W.primary,height:W.primary,className:`shrink-0`}),(0,k.jsx)(`span`,{className:wq,children:e.label??(r?`Image`:`Document`)})]})}function Oq({session:e}){let t=JSON.stringify([e.id,e.agentSessionId,e.logFilePath,e.remote]);return(0,k.jsx)(kq,{session:e},t)}function kq({session:e}){let[t,n]=(0,y.useState)(!1),[r,i]=(0,y.useState)(null),[a,o]=(0,y.useState)(`idle`),s=(0,y.useRef)(new Set(e.media?.map(e=>e.url)));(0,y.useEffect)(()=>{let n=new Set(e.media?.map(e=>e.url)),r=[...n].some(e=>!s.current.has(e));for(let e of n)s.current.add(e);n.size===0?o(`idle`):r&&!t&&!e.remote&&o(`pulsing`)},[e.media,e.remote,t]),(0,y.useEffect)(()=>{if(a!==`pulsing`)return;let e=setTimeout(()=>o(`unread`),1600);return()=>clearTimeout(e)},[a]),(0,y.useEffect)(()=>{if(!r)return;let e=e=>{e.key===`Escape`&&(e.stopPropagation(),i(null))};return window.addEventListener(`keydown`,e,!0),()=>window.removeEventListener(`keydown`,e,!0)},[r]);let c=e.media;if(e.remote||!c?.length)return null;let l=c.filter(e=>e.kind===`image`).length,u=c.length-l;return(0,k.jsxs)(k.Fragment,{children:[t?(0,k.jsxs)(`div`,{"data-testid":`media-rail`,className:`absolute top-2 right-2 z-40 w-[min(560px,calc(100%-1.5rem))] rounded-xl border border-border bg-elevated/95 shadow-xl backdrop-blur`,children:[(0,k.jsxs)(`div`,{className:`flex items-center justify-between border-b border-border/60 px-3 py-2`,children:[(0,k.jsxs)(`span`,{className:`text-xs text-muted`,children:[`Media · `,c.length]}),(0,k.jsx)(`button`,{type:`button`,"aria-label":`Collapse media rail`,onClick:()=>n(!1),className:`text-muted hover:text-primary`,children:(0,k.jsx)(it,{width:W.default,height:W.default})})]}),(0,k.jsx)(`div`,{className:`scrollbar-none flex gap-2 overflow-x-auto px-3 py-2`,children:c.map((e,t)=>(0,k.jsx)(Dq,{media:e,onOpen:i},`${e.url}:${t}`))})]}):(0,k.jsxs)(`button`,{type:`button`,"data-testid":`media-rail-pill`,"aria-expanded":!1,onClick:()=>{o(`idle`),n(!0)},"aria-label":`Open media: ${c.length} ${c.length===1?`item`:`items`}${a===`idle`?``:`, new media`}`,className:`absolute top-2 right-2 z-40 flex items-center gap-1.5 rounded-full border border-border bg-elevated/90 px-3 py-1.5 text-xs text-secondary shadow-lg backdrop-blur transition-colors hover:text-primary md:min-h-[30px] md:gap-[6px] md:px-[12px] md:py-[5px] md:text-[12px] md:leading-[18px] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent ${a===`pulsing`?`media-attention`:``} ${Ht}`,children:[(0,k.jsx)(Se,{width:W.pill,height:W.pill,className:`md:h-[16px] md:w-[16px]`}),(0,k.jsx)(`span`,{className:`hidden md:inline`,children:`Media`}),(0,k.jsx)(`span`,{className:`tabular-nums`,children:l}),u>0&&(0,k.jsxs)(`span`,{className:`text-muted tabular-nums`,children:[`+`,u]}),a!==`idle`&&(0,k.jsx)(`span`,{"data-testid":`media-rail-new-dot`,"aria-hidden":`true`,className:`h-[6px] w-[6px] shrink-0 rounded-full bg-accent`})]}),r&&(0,k.jsx)(`div`,{"data-testid":`media-lightbox`,role:`dialog`,"aria-modal":`true`,"aria-label":`Media preview`,className:`fixed inset-0 z-[60] flex items-center justify-center bg-black/70 backdrop-blur-sm`,onClick:()=>i(null),children:(0,k.jsxs)(`figure`,{className:`flex max-w-[90vw] flex-col items-center gap-2`,onClick:e=>e.stopPropagation(),children:[(0,k.jsx)(`img`,{src:r.url,alt:Eq(r)||`session media`,className:`max-h-[80vh] max-w-full rounded-lg object-contain shadow-2xl`}),(0,k.jsxs)(`figcaption`,{className:`flex items-center gap-3 text-xs text-white/80`,children:[(0,k.jsx)(`span`,{children:Eq(r)||`Image`}),r.width!=null&&r.height!=null&&(0,k.jsxs)(`span`,{children:[r.width,`×`,r.height]}),(0,k.jsx)(`a`,{href:r.url,target:`_blank`,rel:`noreferrer noopener`,className:`text-accent underline underline-offset-2`,children:`Open original`})]})]})})]})}function Aq({isOpen:e,onClose:t,sessions:n,hibernatingSessions:r=[],historySessions:i=[],selectedSessionId:a,selectedHibernatingSessionId:o=null,onSelect:s,onSelectHibernating:c,onRename:l,onResume:u,onHibernate:d,onMoveToHistory:f,onNewSession:p,onOpenHistory:m,subscribe:h,loading:g,error:_}){let v=sf(),b=(0,y.useRef)(null),x=(0,y.useRef)(null);(0,y.useEffect)(()=>{if(!e||typeof document>`u`)return;let{body:t}=document,n=window.scrollY,r={position:t.style.position,top:t.style.top,width:t.style.width};return t.style.position=`fixed`,t.style.top=`-${n}px`,t.style.width=`100%`,()=>{t.style.position=r.position,t.style.top=r.top,t.style.width=r.width,window.scrollTo(0,n)}},[e]),(0,y.useEffect)(()=>{if(!e)return;let n=e=>{e.key===`Escape`&&(e.preventDefault(),t())};return document.addEventListener(`keydown`,n),()=>document.removeEventListener(`keydown`,n)},[e,t]),(0,y.useEffect)(()=>{e?(x.current=document.activeElement,b.current?.focus({preventScroll:!0})):x.current&&=(x.current.focus({preventScroll:!0}),null)},[e]),(0,y.useEffect)(()=>{if(!e)return;let n=b.current;if(!n)return;let r=0,i=0,a=e=>{let t=e.touches[0];r=t.clientX,i=t.clientY},o=e=>{let n=e.changedTouches[0],a=r-n.clientX,o=Math.abs(n.clientY-i);a>=50&&a>o*1.5&&(`vibrate`in navigator&&navigator.vibrate(10),t())};return n.addEventListener(`touchstart`,a,{passive:!0}),n.addEventListener(`touchend`,o,{passive:!0}),()=>{n.removeEventListener(`touchstart`,a),n.removeEventListener(`touchend`,o)}},[e,t]);let S=e=>{s(e),t()},C=e=>{c?.(e),t()},w=m?()=>{t(),m()}:void 0,T=v?{transition:`none`}:void 0;return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(`div`,{className:`session-drawer-backdrop ${e?`open`:``}`,style:T,onClick:t,"aria-hidden":`true`}),(0,k.jsxs)(`div`,{ref:b,className:`session-drawer ${e?`open`:``}`,style:T,role:`dialog`,"aria-modal":`true`,"aria-label":`Session list`,tabIndex:-1,children:[(0,k.jsx)(lk,{sessions:n,hibernatingSessions:r,historySessions:i,selectedSessionId:a,selectedHibernatingSessionId:o,onSelect:S,onSelectHibernating:C,onRename:l,onResume:u,onHibernate:d,onMoveToHistory:f,scrollSelectionActive:e,onNewSession:()=>{p()!==!1&&t()},loading:g,error:_,notice:w&&(0,k.jsx)(N,{onOpen:w,subscribe:h})}),(0,k.jsxs)(`div`,{className:`flex shrink-0 gap-2 border-t border-border px-2 pt-2`,style:{paddingBottom:`max(0.5rem, env(safe-area-inset-bottom, 0.5rem))`},children:[(0,k.jsx)(`button`,{onClick:()=>{p()!==!1&&t()},className:`btn btn-primary min-h-[44px] flex-1 py-2 text-sm`,children:`New Session`}),w&&(0,k.jsx)(`button`,{type:`button`,onClick:w,className:zt(`neutral`),title:`Session recovery`,"aria-label":`Session recovery`,children:(0,k.jsx)(ue,{width:W.primary,height:W.primary})})]})]})]})}var jq={working:`bg-green-500/35 text-white`,waiting:`bg-blue-500/35 text-white`,permission:`bg-amber-500/35 text-white`,unknown:`bg-gray-500/35 text-white`},Mq={working:`bg-working text-white`,waiting:`bg-waiting text-white`,permission:`bg-approval text-white`,unknown:`bg-muted text-white`};function Nq(){`vibrate`in navigator&&navigator.vibrate(10)}function Pq({session:e,sessions:t,drawerSessions:n,hibernatingSession:r=null,hibernatingSessions:i=[],historySessions:a=[],connectionStatus:o,connectionEpoch:s=0,sendMessage:c,subscribe:l,onClose:u,onSelectSession:d,onSelectHibernatingSession:f,onNewSession:p,onKillSession:m,onRenameSession:h,onDuplicateSession:g,onResumeSession:_,onHibernateSession:v,onMoveToHistory:b,onOpenSettings:x,onOpenHistory:S,loading:C=!1,error:w=null}){let T=dK[lK()],E=U(e=>e.useWebGL),D=U(e=>e.fontSize),O=U(e=>e.lineHeight),A=U(e=>e.letterSpacing),j=yt(U(e=>e.fontOption),U(e=>e.customFontFamily)),M=Mt(At(U(e=>e.shortcutModifier))),N=Dt(),P=Yh(),[F,ee]=(0,y.useState)(!1),[L,z]=(0,y.useState)(!1),[B,te]=(0,y.useState)(!1),[V,ne]=(0,y.useState)(!1),[H,re]=(0,y.useState)(!1),[ie,ae]=(0,y.useState)(!1),[oe,se]=(0,y.useState)(``),le=(0,y.useRef)(!1),ue=(0,y.useRef)(null),de=(0,y.useRef)(null),fe=(0,y.useRef)(null);Jh(fe,e?.id??null);let pe=(0,y.useRef)(null),me=(0,y.useRef)(null),he=(0,y.useRef)(()=>{}),_e=(0,y.useRef)(()=>{}),ye=e?.remote===!0,be=Hh(e=>e.remoteAllowControl),xe=Hh(e=>e.remoteAllowAttach),Se=Hh(e=>e.preferWindowName),Ce=ye&&!xe,we=!ye||be&&e?.source===`managed`,Te=r?r.displayName||jh(r.projectPath)||r.sessionId.slice(0,8):``,Ee=r?jh(r.projectPath):``,De=r?Ah(r.lastActivityAt):``,Oe=!!e&&!!v&&e.source===`managed`&&!e.remote&&!!e.agentSessionId?.trim(),ke=(0,y.useMemo)(()=>{let e=new Set;for(let n of t)n.host?.trim()&&e.add(n.host.trim());for(let t of i)t.host?.trim()&&e.add(t.host.trim());return e.size>1},[t,i]),{containerRef:Ae,terminalRef:je,inTmuxCopyModeRef:Me,isTmuxCopyMode:Ne,appMouseRef:Pe,setTmuxCopyMode:Fe,isSwitching:Ie,isInputReady:Le,pendingClipboardOffer:Re,copyPendingClipboardOffer:ze,dismissPendingClipboardOffer:Ve}=tK({sessionId:e?.id??null,tmuxTarget:e?.tmuxWindow??null,agentType:e?.agentType,onPasteFiles:e=>he.current(e),onPasteError:e=>_e.current(e),allowAttach:!Ce,connectionStatus:o,connectionEpoch:s,sendMessage:c,subscribe:l,theme:T,fontSize:D,lineHeight:O,letterSpacing:A,fontFamily:j,useWebGL:E,onScrollChange:e=>{ee(!e)}}),He=(0,y.useCallback)(()=>{!e||Ce||(c({type:`tmux-cancel-copy-mode`,sessionId:e.id}),Fe(!1),je.current?.scrollToBottom())},[e,Ce,c,Fe,je]),Ue=(0,y.useCallback)(()=>{re(!0),Nq()},[]),Ge=iK({enabled:P||N,isOpen:H,onOpen:Ue});(0,y.useEffect)(()=>{!P&&!N&&H&&re(!1)},[H,P,N]),nK(de,V,(0,y.useCallback)(()=>ne(!1),[])),(0,y.useEffect)(()=>{ie&&pe.current&&(pe.current.focus(),pe.current.select())},[ie]),(0,y.useEffect)(()=>{B&&me.current&&me.current.focus()},[B]),rK(B,(0,y.useCallback)(()=>te(!1),[]));let Ke=()=>{e&&(m(e.id,`terminal_confirm_modal`),te(!1))},qe=()=>{!e||!Oe||(v?.(e.agentSessionId.trim()),ne(!1))},Je=()=>{e&&(se(e.agentSessionName||e.name),ae(!0),ne(!1))},Ye=()=>{if(!e)return;let t=oe.trim(),n=e.agentSessionName||e.name;t&&t!==n&&h(e.id,t),ae(!1)},Xe=e=>{e.key===`Enter`?(e.preventDefault(),Ye()):e.key===`Escape`&&(e.preventDefault(),ae(!1))};(0,y.useEffect)(()=>{if(!N||!e){z(!1);return}let t=Ae.current;if(!t)return;let n=e=>{let n=t.querySelector(`.xterm-accessibility-tree`);if(!n)return!1;let r=e.anchorNode,i=e.focusNode;return!!r&&n.contains(r)||!!i&&n.contains(i)},r=()=>{let e=t.querySelector(`.xterm-accessibility`),n=t.querySelector(`.xterm-accessibility-tree`);!e||!n||(e.style.setProperty(`opacity`,`0`),n.style.setProperty(`opacity`,`0`),e.style.setProperty(`-webkit-user-select`,`none`),e.style.setProperty(`user-select`,`none`),n.style.setProperty(`-webkit-user-select`,`none`),n.style.setProperty(`user-select`,`none`),e.offsetHeight,requestAnimationFrame(()=>{e.style.removeProperty(`opacity`),n.style.removeProperty(`opacity`),e.style.removeProperty(`-webkit-user-select`),e.style.removeProperty(`user-select`),n.style.removeProperty(`-webkit-user-select`),n.style.removeProperty(`user-select`)}))},i=()=>{le.current=!1;let e=window.getSelection();try{e?.removeAllRanges()}catch{}je.current?.clearSelection(),r(),z(!1)};ue.current=i;let a=()=>{let e=window.getSelection();if(!e||e.rangeCount===0||e.isCollapsed){le.current?i():z(e=>e&&!1);return}let t=n(e);if(!t&&le.current){i();return}le.current=t;let r=t;z(e=>e===r?e:r)},o=()=>{let e=window.getSelection();!e||e.isCollapsed||n(e)&&setTimeout(i,0)},s=null,c=!1,l=e=>{if(e.touches.length===1){let t=e.touches[0];s={x:t.clientX,y:t.clientY},c=!1}},u=e=>{if(c||!s||e.touches.length!==1)return;let t=e.touches[0],n=Math.abs(t.clientX-s.x),r=Math.abs(t.clientY-s.y);(n>10||r>10)&&(c=!0)},d=e=>{let r=c;s=null,c=!1;let a=window.getSelection();if(!a||a.rangeCount===0||a.isCollapsed){z(!1);return}let o=t.querySelector(`.xterm-accessibility-tree`);if(!o)return;if(!n(a)){z(!1);return}if(r)return;let l=e.target,u=l?o.contains(l):!1,d=!1;if(u&&l)try{d=a.containsNode(l,!0)}catch{d=!1}(!u||!d)&&setTimeout(i,0)};return document.addEventListener(`selectionchange`,a),document.addEventListener(`copy`,o),document.addEventListener(`touchstart`,l,{passive:!0}),document.addEventListener(`touchmove`,u,{passive:!0}),document.addEventListener(`touchend`,d,{passive:!0}),()=>{document.removeEventListener(`selectionchange`,a),document.removeEventListener(`copy`,o),document.removeEventListener(`touchstart`,l),document.removeEventListener(`touchmove`,u),document.removeEventListener(`touchend`,d),ue.current=null,le.current=!1}},[Ae,N,e?.id]),(0,y.useEffect)(()=>{if(!N)return;let t=Ae.current;if(!t)return;let n=null,r=()=>{let e=je.current,r=t.querySelector(`.xterm`);if(!e||!r)return;let i=r.querySelector(`.xterm-screen`),a=r.querySelector(`.xterm-accessibility`),o=r.querySelector(`.xterm-accessibility-tree`);if(!i||!a||!o)return;n||=yK(o);let s=r.getBoundingClientRect(),c=i.getBoundingClientRect(),l=c.left-s.left,u=c.top-s.top;Object.assign(a.style,{left:`${l}px`,top:`${u}px`,right:`auto`,bottom:`auto`,width:`${c.width}px`,height:`${c.height}px`});let d=c.width/e.cols,f=c.height/e.rows,p=document.createElement(`span`);p.textContent=`0`.repeat(200),p.style.cssText=`position:absolute;visibility:hidden;white-space:pre;pointer-events:none;letter-spacing:0px`,o.appendChild(p);let m=p.getBoundingClientRect().width/200;p.remove();let h=Math.max(-2,Math.min(2,d-m));t.style.setProperty(`--xterm-font-size`,`${e.options.fontSize}px`),t.style.setProperty(`--xterm-cell-height`,`${f}px`),t.style.setProperty(`--xterm-a11y-letter-spacing`,`${h}px`)},i=performance.now();r();let a=Math.round(performance.now()-i);a>10&&X(`switch_a11y_overlay`,{sessionId:e?.id,a11yMs:a});let o=window.requestAnimationFrame(r),s=window.setTimeout(r,100),c=()=>window.requestAnimationFrame(r);return window.visualViewport?.addEventListener(`resize`,c),window.addEventListener(`orientationchange`,c),()=>{window.cancelAnimationFrame(o),window.clearTimeout(s),window.visualViewport?.removeEventListener(`resize`,c),window.removeEventListener(`orientationchange`,c),n?.()}},[Ae,D,N,e?.id,je]);let Ze=(0,y.useRef)(L);(0,y.useEffect)(()=>{Ze.current=L},[L]);let $e=(0,y.useRef)(e?.id);(0,y.useEffect)(()=>{$e.current=e?.id},[e?.id]);let tt=(0,y.useRef)(c);(0,y.useEffect)(()=>{tt.current=c},[c]);let nt=(0,y.useRef)(!1),rt=(0,y.useRef)(`idle`);(0,y.useEffect)(()=>{if(!N)return;let e=Ae.current;if(!e)return;let t=null,n=()=>e.querySelector(`.xterm-helper-textarea`),r=e=>{e.target===n()&&(rt.current=`focused`)},i=e=>{e.target===n()&&(t!==null&&window.clearTimeout(t),t=window.setTimeout(()=>{t=null;let e=n(),r=typeof document.hasFocus!=`function`||document.hasFocus();document.activeElement!==e&&document.visibilityState!==`hidden`&&r&&(rt.current=`idle`)},0))},a=()=>{let e=n();(document.activeElement===e||rt.current===`focused`)&&(rt.current=`interrupted`)},o=()=>{rt.current===`interrupted`&&(rt.current=`armed`)},s=()=>{document.visibilityState===`hidden`?a():o()},c=e=>{e.persisted&&o()};return document.addEventListener(`focusin`,r),document.addEventListener(`focusout`,i),document.addEventListener(`visibilitychange`,s),window.addEventListener(`blur`,a),window.addEventListener(`focus`,o),window.addEventListener(`pageshow`,c),()=>{document.removeEventListener(`focusin`,r),document.removeEventListener(`focusout`,i),document.removeEventListener(`visibilitychange`,s),window.removeEventListener(`blur`,a),window.removeEventListener(`focus`,o),window.removeEventListener(`pageshow`,c),t!==null&&window.clearTimeout(t),rt.current=`idle`}},[Ae,N,e?.id]),(0,y.useEffect)(()=>{let t=Ae.current;if(!t||!e?.id||!P&&!N)return;let n={x:0,y:0},r=0,i=!1,a=null,o=0,s=0,c=0,l=Math.round(D*O),u=null,d=null,f=!1,p=null,m=()=>{let e=window.getComputedStyle(t).getPropertyValue(`--xterm-cell-height`).trim(),n=Number.parseFloat(e);return!Number.isNaN(n)&&n>0?n:Math.round(D*O)},h=()=>t.querySelector(`.xterm-helper-textarea`),g=e=>{let n=je.current;if(!n)return null;let r=(t.querySelector(`.xterm`)?.querySelector(`.xterm-screen`))?.getBoundingClientRect();if(!r||r.width<=0||r.height<=0)return null;let i=r.width/n.cols,a=r.height/n.rows;return i<=0||a<=0?null:{col:Math.min(n.cols,Math.max(1,Math.floor((e.clientX-r.left)/i)+1)),row:Math.min(n.rows,Math.max(1,Math.floor((e.clientY-r.top)/a)+1))}},_=()=>{let e=h();e&&document.activeElement!==e&&(e.disabled=!0)},v=()=>{let e=h();e&&(e.disabled=!1)};_();let y=()=>{if(Me.current)return;let e=h();e&&(e.disabled=!1,e.focus())},b=()=>{u!==null&&(cancelAnimationFrame(u),u=null),s=0},x=()=>{d!==null&&(clearTimeout(d),d=null)},S=(e,t,n)=>{let r=$e.current;return r?(tt.current({type:`terminal-input`,sessionId:r,data:`\x1b[<${e};${t.col};${t.row}${n}`}),!0):!1},C=e=>{let t=$e.current;if(!t||e===0)return!1;let n=je.current,r=n?.cols??80,i=n?.rows??24,a=Math.floor(r/2),o=Math.floor(i/2),s=e>0?65:64,c=Math.abs(e),l=e<0;for(let e=0;e<c;e++)tt.current({type:`terminal-input`,sessionId:t,data:`\x1b[<${s};${a};${o}M`});return l&&!Pe.current&&Fe(!0),l},w=e=>{let t=$e.current,n=g(e);return!t||!n?!1:(tt.current({type:`terminal-input`,sessionId:t,data:`\x1b[<0;${n.col};${n.row}M\x1b[<0;${n.col};${n.row}m`}),!0)},T=e=>{if(!N||!Pe.current)return!1;let t=g(e);return t?(f=!0,p=t,_(),Nq(),S(0,t,`M`)):!1},E=e=>{let t=g(e);return t?p&&p.col===t.col&&p.row===t.row?!0:(p=t,S(32,t,`M`)):!1},k=e=>{let t=e?g(e):p;return f=!1,p=null,t?S(0,t,`m`):!1},A=()=>{x(),f=!1,p=null,a=null,s=0,c=0},j=()=>{if(!N)return!1;let e=window.getSelection();if(!e||e.isCollapsed)return!1;let n=t.querySelector(`.xterm-accessibility-tree`);if(!n)return!1;let r=e.anchorNode,i=e.focusNode;return!!r&&n.contains(r)||!!i&&n.contains(i)},M=()=>{!N||!le.current||j()||ue.current?.()},F=e=>{if(b(),M(),Ge.current||H){A();return}if(Ze.current){A();return}if(rt.current===`armed`&&!Me.current&&(rt.current=`idle`,y()),e.touches.length===1){let t=e.touches[0];if(n={x:t.clientX,y:t.clientY},r=performance.now(),i=!1,a=t.clientY,o=r,s=0,c=0,l=m(),v(),N&&Pe.current){let e={clientX:t.clientX,clientY:t.clientY};d=setTimeout(()=>{d=null,!(i||Ge.current||H)&&(Ze.current||j()||T(e))},350)}}},ee=e=>{if(e.touches.length!==1||a===null)return;if(M(),Ge.current||H){A();return}let t=performance.now(),r=e.touches[0],u=r.clientX,d=r.clientY;if(f){e.preventDefault(),e.stopPropagation(),E(r),a=d,o=t;return}if(Ze.current||j()){A();return}e.preventDefault(),e.stopPropagation();let p=Math.abs(u-n.x),m=Math.abs(d-n.y);!i&&(p>6||m>6)&&(i=!0,x(),_());let h=a-d,g=t-o;if(a=d,o=t,g>0){let e=h/g;s=s*.7+e*.3}c+=h;let v=Math.max(6,l*.6),y=Math.trunc(c/v);y!==0&&(C(y),c-=y*v)},I=e=>{let t=s,n=performance.now()-r;if(x(),f){k(e.changedTouches[0]),A(),e.preventDefault(),e.stopPropagation();return}if(A(),Ge.current||H)return;let a=j();if(Ze.current&&!a&&ue.current?.(),Ze.current||a){Me.current&&(nt.current=!0);return}if(!i){if(N&&n>=350)return;if(Pe.current){let t=e.changedTouches[0];if(t&&w(t)){y(),e.preventDefault(),e.stopPropagation();return}}if(Me.current){e.preventDefault(),e.stopPropagation(),nt.current=!0;return}y();return}if(Math.abs(t)>.12){let e=t,n=performance.now(),r=()=>{let t=performance.now(),i=t-n;n=t;let a=e*i;c+=a;let o=Math.max(6,l*.6),s=Math.trunc(c/o);s!==0&&(C(s),c-=s*o),e*=.95**(i/16.67),u=Math.abs(e)>.02?requestAnimationFrame(r):null};u=requestAnimationFrame(r)}},L=e=>{nt.current&&=(e.preventDefault(),e.stopPropagation(),!1)},R={passive:!0,capture:!0},z={passive:!1,capture:!0},B={passive:!1,capture:!0},te={capture:!0};return t.addEventListener(`touchstart`,F,R),t.addEventListener(`touchmove`,ee,z),t.addEventListener(`touchend`,I,B),t.addEventListener(`mousedown`,L,te),()=>{t.removeEventListener(`touchstart`,F,R),t.removeEventListener(`touchmove`,ee,z),t.removeEventListener(`touchend`,I,B),t.removeEventListener(`mousedown`,L,te),x();let e=h();e&&(e.disabled=!1)}},[e?.id,Ae,je,N,P,H,D,O]);let ot=(0,y.useCallback)(t=>{!e||Ce||!Le||c({type:`terminal-input`,sessionId:e.id,data:t})},[e,Ce,Le,c]),st=(0,y.useCallback)(t=>{!e||Ce||!Le||(Me.current&&(c({type:`tmux-cancel-copy-mode`,sessionId:e.id}),Fe(!1)),c({type:`terminal-paste`,sessionId:e.id,data:t}))},[e,Ce,Le,c,Me,Fe]),ct=(0,y.useCallback)(t=>{!e||Ce||!Le||(Me.current&&(c({type:`tmux-cancel-copy-mode`,sessionId:e.id}),Fe(!1)),ot(t))},[e,Ce,Le,c,Me,Fe,ot]),lt=(0,y.useCallback)(()=>{let e=Ae.current;if(!e)return;let t=e.querySelector(`.xterm-helper-textarea`);t&&(t.removeAttribute(`disabled`),t.focus())},[Ae]),ut=sq({sessionId:e?.id??null,disabled:o!==`connected`||Ce||!Le,fileUploadsAllowed:!ye,agentType:e?.agentType,onPasteText:st,onPasteImage:ct,onRefocus:lt});he.current=ut.paste,_e.current=ut.fail;let dt=(0,y.useCallback)(()=>{if(!e||Ce||!Le)return;Me.current&&(c({type:`tmux-cancel-copy-mode`,sessionId:e.id}),Fe(!1));let t=Ae.current;if(!t)return;let n=t.querySelector(`.xterm-helper-textarea`);n&&(n.removeAttribute(`disabled`),n.focus())},[e,Ce,Le,c,Ae,Me,Fe]),ft=(0,y.useCallback)(()=>{if(typeof document>`u`)return!1;let e=Ae.current;if(!e)return!1;let t=e.querySelector(`.xterm-helper-textarea`);if(t&&document.activeElement===t)return!0;let n=document.activeElement,r=typeof HTMLInputElement<`u`&&n instanceof HTMLInputElement,i=typeof HTMLTextAreaElement<`u`&&n instanceof HTMLTextAreaElement;return r||i||n&&n.isContentEditable?!1:!!document.documentElement?.classList?.contains(`keyboard-visible`)},[Ae]);(0,y.useEffect)(()=>{if(!N)return;let e=Ae.current;if(!e)return;let t=e.querySelector(`.xterm-accessibility`),n=e.querySelector(`.xterm-accessibility-tree`);if(!t||!n)return;let r=()=>{let r=e.querySelector(`.xterm-helper-textarea`);r&&document.activeElement===r&&!Ze.current?(t.style.pointerEvents=`none`,n.style.pointerEvents=`none`):(t.style.removeProperty(`pointer-events`),n.style.removeProperty(`pointer-events`))};return r(),document.addEventListener(`focusin`,r),document.addEventListener(`focusout`,r),()=>{document.removeEventListener(`focusin`,r),document.removeEventListener(`focusout`,r)}},[Ae,N,L]),(0,y.useEffect)(()=>{let e=Ae.current;e&&(e.inert=!!r)},[Ae,r]);let pt=(0,y.useMemo)(()=>{if(!Se||t.length===0)return!1;let e=t.map(e=>e.name.trim()).filter(Boolean);return e.length===t.length&&new Set(e).size===t.length},[Se,t]);return(0,k.jsxs)(`section`,{className:`flex flex-1 flex-col bg-base terminal-mobile-overlay md:relative md:inset-auto ${N?`ios-native-term-selection`:``}`,"data-testid":`terminal-panel`,onDragOver:t=>{Array.from(t.dataTransfer.types).includes(`Files`)&&(t.preventDefault(),t.dataTransfer.dropEffect=e&&!Ce&&Le&&!ye&&o===`connected`?`copy`:`none`)},onDrop:t=>{if(!Array.from(t.dataTransfer.types).includes(`Files`)||(t.preventDefault(),t.stopPropagation(),!e||Ce||!Le||ye||o!==`connected`))return;let n=bG(t.dataTransfer);n.length&&ut.paste({text:``,files:n})},children:[(0,k.jsxs)(`div`,{className:`flex min-h-[52px] shrink-0 items-center justify-between border-b border-border bg-elevated px-[6px] md:hidden`,children:[(0,k.jsxs)(`div`,{className:`flex min-w-0 items-center gap-[7px]`,children:[(0,k.jsx)(`button`,{onClick:()=>re(!0),className:zt(`neutral`),"aria-label":`Open session menu`,children:(0,k.jsx)(Be,{width:W.primary,height:W.primary})}),e?(0,k.jsxs)(`div`,{className:`flex min-w-[72px] flex-col items-start gap-px leading-none`,children:[ie?(0,k.jsx)(`input`,{ref:pe,type:`text`,value:oe,onChange:e=>se(e.target.value),onBlur:Ye,onKeyDown:Xe,className:`w-full max-w-[112px] rounded border border-border bg-surface px-2 py-0.5 text-sm font-medium text-primary outline-none focus:border-accent`}):(0,k.jsx)(`span`,{className:`max-w-[112px] truncate text-sm font-medium text-primary`,children:e.agentSessionName||e.name}),(0,k.jsx)(`span`,{className:`shrink-0 text-[10px] ${o===`connected`?xK[e.status]:`text-approval`}`,children:o===`connected`?bK[e.status]:o})]}):r?(0,k.jsxs)(`div`,{className:`flex min-w-0 flex-col items-start gap-px leading-none`,children:[(0,k.jsx)(`span`,{className:`max-w-[112px] truncate text-sm font-medium text-primary`,children:Te}),(0,k.jsx)(`span`,{className:`text-[10px] font-medium text-blue-400`,children:`Hibernating`})]}):(0,k.jsx)(`span`,{className:`text-sm font-medium text-primary`,children:`Sessions`})]}),(0,k.jsxs)(`div`,{className:`flex shrink-0 items-center gap-[4px]`,children:[(0,k.jsx)(`button`,{onClick:p,className:zt(`primary`),title:`New session (${M}N)`,"aria-label":`New session`,children:(0,k.jsx)(Qe,{width:W.primary,height:W.primary})}),e&&we&&(0,k.jsx)(`button`,{disabled:Ie,onClick:()=>te(!0),className:zt(`danger`),title:`Kill session (${M}X)`,"aria-label":`Kill session`,children:(0,k.jsx)(it,{width:W.primary,height:W.primary})}),Oe&&(0,k.jsx)(`button`,{onClick:qe,className:`${zt(`neutral`,`hidden`)} min-[360px]:flex`,title:`Hibernate session`,"aria-label":`Hibernate session`,children:(0,k.jsx)(We,{width:W.primary,height:W.primary})}),r&&(0,k.jsx)(`button`,{onClick:()=>_(r.sessionId),className:`btn btn-primary h-[44px] px-3 text-xs`,children:`Wake`}),e&&(0,k.jsxs)(`div`,{className:`relative`,ref:de,children:[(0,k.jsx)(`button`,{onClick:()=>ne(!V),className:zt(`neutral`),title:`More options`,"aria-label":`More options`,children:(0,k.jsx)(ge,{width:W.primary,height:W.primary})}),V&&(0,k.jsxs)(`div`,{className:`absolute right-0 top-full mt-1 z-20 min-w-[140px] rounded-md border border-border bg-elevated shadow-lg py-1`,children:[we&&(0,k.jsxs)(`button`,{onClick:Je,className:`flex min-h-[44px] w-full items-center gap-2 px-3 py-2 text-left text-sm text-secondary hover:bg-hover hover:text-primary`,children:[(0,k.jsx)(ve,{width:W.default,height:W.default}),`Rename`]}),Oe&&(0,k.jsxs)(`button`,{onClick:qe,className:`flex min-h-[44px] w-full items-center gap-2 px-3 py-2 text-left text-sm text-secondary hover:bg-hover hover:text-primary`,children:[(0,k.jsx)(We,{width:W.default,height:W.default}),`Hibernate`]}),(0,k.jsxs)(`button`,{onClick:()=>{x(),ne(!1)},className:`flex min-h-[44px] w-full items-center gap-2 px-3 py-2 text-left text-sm text-secondary hover:bg-hover hover:text-primary`,children:[(0,k.jsx)(et,{width:W.default,height:W.default}),`Settings`]})]})]})]})]}),e&&t.length>1&&(0,k.jsxs)(`div`,{className:`relative overflow-hidden bg-elevated border-b border-border md:hidden`,children:[(0,k.jsx)(`div`,{className:`absolute right-0 top-0 bottom-0 w-4 bg-gradient-to-l from-elevated to-transparent z-10 pointer-events-none`}),(0,k.jsx)(`div`,{ref:fe,className:`flex items-center gap-[6px] overflow-x-auto scroll-pe-4 px-[8px] py-[5px] scrollbar-none snap-x snap-mandatory`,style:{WebkitOverflowScrolling:`touch`},children:t.map((t,n)=>{let r=t.id===e.id,i=pt?t.name.trim():n+1;return(0,k.jsx)(`button`,{type:`button`,"data-session-id":t.id,className:`
|
|
300
300
|
flex items-center justify-center shrink-0 snap-start
|
|
301
301
|
h-[44px] ${pt?`min-w-[44px] px-2.5 max-w-[8rem] truncate`:`w-[44px]`}
|
|
302
302
|
text-sm font-extrabold rounded-lg
|
|
303
303
|
active:scale-95 transition-all duration-75
|
|
304
304
|
select-none touch-manipulation
|
|
305
|
-
${r?
|
|
306
|
-
`,onClick:()=>{Aq(),d(t.id)},title:pt?t.name:void 0,children:i},t.id)})})]}),(0,k.jsxs)(`div`,{className:`relative flex-1`,children:[(0,k.jsx)(`div`,{ref:Ae,className:`absolute inset-0`,style:{backgroundColor:T.background}}),Ie&&e&&(0,k.jsxs)(`div`,{role:`status`,"aria-live":`polite`,className:`absolute top-2 left-2 z-50 flex items-center gap-1.5 rounded-lg bg-black/60 px-2.5 py-1.5 text-xs text-white/90 shadow-lg backdrop-blur-md`,children:[(0,k.jsx)(at,{width:W.pill,height:W.pill,className:`animate-spin`}),`Loading`]}),Re&&e&&(0,k.jsxs)(`div`,{className:`absolute ${F&&!L?`bottom-20`:`bottom-8`} left-1/2 z-30 flex max-w-[calc(100%-2rem)] -translate-x-1/2 items-center gap-2 rounded-lg border border-border bg-elevated/95 px-2 py-2 shadow-lg backdrop-blur-sm md:hidden`,children:[(0,k.jsx)(`span`,{className:`max-w-[12rem] truncate text-xs text-secondary md:max-w-[18rem]`,children:`Selection ready`}),(0,k.jsxs)(`button`,{type:`button`,onClick:ze,className:`relative flex h-8 shrink-0 items-center justify-center gap-1.5 rounded bg-accent px-2.5 text-xs font-medium text-white hover:bg-accent/90 active:scale-95 transition-all [@media(pointer:coarse)]:before:absolute [@media(pointer:coarse)]:before:inset-[calc(50%-22px)] [@media(pointer:coarse)]:before:content-['']`,title:`Copy selection`,"aria-label":`Copy selection`,children:[(0,k.jsx)(ce,{width:W.default,height:W.default}),`Copy`]}),(0,k.jsx)(`button`,{type:`button`,onClick:Ve,className:`relative flex h-8 w-8 shrink-0 items-center justify-center rounded border border-border text-secondary hover:bg-hover hover:text-primary active:scale-95 transition-all [@media(pointer:coarse)]:before:absolute [@media(pointer:coarse)]:before:inset-[calc(50%-22px)] [@media(pointer:coarse)]:before:content-['']`,title:`Dismiss`,"aria-label":`Dismiss`,children:(0,k.jsx)(it,{width:W.default,height:W.default})})]}),e&&(0,k.jsx)(Tq,{session:e}),!e&&(0,k.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center text-sm text-muted`,children:r?null:`Select a session to view terminal`}),e&&Ce&&(0,k.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center text-center text-sm text-muted`,children:`Remote session (read-only). Use SSH to attach on the host.`}),r&&(0,k.jsx)(`div`,{className:`absolute inset-0 z-10 overflow-y-auto bg-base`,children:(0,k.jsxs)(`div`,{className:`mx-auto flex min-h-full w-full max-w-5xl flex-col gap-4 p-4 md:p-6`,children:[(0,k.jsx)(`div`,{className:`border-b border-border pb-4`,children:(0,k.jsxs)(`div`,{className:`flex flex-col gap-3 md:flex-row md:items-start md:justify-between`,children:[(0,k.jsxs)(`div`,{className:`min-w-0 space-y-2`,children:[(0,k.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-2 gap-y-1 text-sm`,children:[(0,k.jsx)(`h2`,{className:`min-w-0 truncate text-lg font-semibold text-primary`,children:Te}),(0,k.jsx)(`span`,{className:`rounded-full bg-blue-500/15 px-2 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-blue-400`,children:`Hibernating`}),Ee&&(0,k.jsx)(`span`,{className:`text-muted`,children:Ee}),(0,k.jsxs)(`span`,{className:`text-muted`,children:[`Last active `,De]})]}),r.lastResumeError&&(0,k.jsxs)(`div`,{className:`inline-flex items-center gap-1 rounded bg-amber-500/15 px-2 py-1 text-xs text-amber-400`,title:`Last wake failed: ${r.lastResumeError}`,children:[(0,k.jsx)(I,{width:W.pill,height:W.pill}),`Last wake failed`]}),r.lastUserMessage&&(0,k.jsx)(`p`,{className:`max-h-28 max-w-3xl overflow-y-auto whitespace-pre-wrap break-words pr-2 text-sm leading-6 text-secondary`,children:r.lastUserMessage})]}),(0,k.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[(0,k.jsx)(`button`,{type:`button`,onClick:()=>_(r.sessionId),className:`btn btn-primary hidden md:inline-flex`,children:`Wake`}),b&&(0,k.jsx)(`button`,{type:`button`,onClick:()=>b(r.sessionId),className:`btn btn-secondary`,children:`Move to History`})]})]})}),(0,k.jsx)(XO,{session:r})]})}),Ne&&e&&!L?(0,k.jsxs)(`button`,{type:`button`,onClick:He,className:`absolute bottom-14 left-1/2 z-20 flex h-10 items-center justify-center rounded-full border border-amber-400/35 bg-amber-500/20 text-amber-100 shadow-lg backdrop-blur-sm transition-all hover:bg-amber-500/30 active:scale-95 md:hidden ${Ht}`,style:{transform:`translateX(-50%)`},title:`Exit tmux copy mode and return to live output`,"aria-label":`Exit copy mode`,children:[(0,k.jsx)(`span`,{className:`px-3 text-[11px] font-semibold uppercase tracking-wide`,children:`Copy mode`}),(0,k.jsx)(`span`,{className:`self-stretch border-l border-amber-400/25`,"aria-hidden":`true`}),(0,k.jsx)(`span`,{className:`px-3 text-sm font-medium`,children:`Exit`})]}):F&&e&&!L?(0,k.jsxs)(`button`,{type:`button`,onClick:He,className:`absolute bottom-8 left-1/2 z-20 flex h-10 px-4 items-center justify-center gap-1.5 rounded-full bg-blue-600/90 text-white shadow-lg hover:bg-blue-600 active:scale-95 transition-all md:hidden ${Ht}`,style:{transform:`translateX(-50%)`},title:`Scroll to bottom`,"aria-label":`Scroll to bottom`,children:[(0,k.jsx)(R,{width:W.primary,height:W.primary}),(0,k.jsx)(`span`,{className:`text-sm font-medium`,children:`Jump to bottom`})]}):null]}),(0,k.jsx)(aq,{...ut}),(0,k.jsx)(AK,{session:e,hibernatingSession:r,hibernatingDisplayName:Te,showHostBadge:ke,sessionCount:t.length,connectionStatus:o,isSwitching:Ie,canControl:we,canHibernate:Oe,modDisplay:M,onKill:()=>te(!0),onHibernate:qe,onWake:()=>r&&_(r.sessionId),onRename:t=>{let n=e?.id??r?.sessionId;n&&h(n,t)},onDuplicate:e&&g?()=>g(e.id):void 0,onMoveToHistory:r&&b?()=>b(r.sessionId):void 0,isTmuxCopyMode:Ne,showJumpToBottom:F&&!L,onJumpToBottom:He,selectionReady:!!Re,onCopySelection:ze,onDismissSelection:Ve}),e&&(0,k.jsx)(bq,{onSendKey:ot,onPasteText:st,onPasteImage:ct,disabled:o!==`connected`||Ce||!Le,sessions:t.map(e=>({id:e.id,name:e.name,status:e.status})),currentSessionId:e.id,agentType:e.agentType,fileUploadsAllowed:!ye,onSelectSession:d,hideSessionSwitcher:!0,onRefocus:lt,isKeyboardVisible:ft,onEnterTextMode:dt}),(P||N)&&(0,k.jsx)(Dq,{isOpen:H,onClose:()=>re(!1),sessions:n??t,hibernatingSessions:i,historySessions:a,selectedSessionId:e?.id??null,selectedHibernatingSessionId:r?.sessionId??null,onSelect:d,onSelectHibernating:f,onRename:h,onResume:_,onHibernate:v,onMoveToHistory:b,onNewSession:p,onOpenHistory:S,subscribe:l,loading:C,error:w}),B&&e&&(0,k.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/50`,children:(0,k.jsxs)(`div`,{className:`mx-4 w-full max-w-sm rounded-lg border border-border bg-elevated p-4 shadow-xl`,children:[(0,k.jsx)(`h3`,{className:`text-base font-medium text-primary mb-2 text-balance`,children:`Kill Session`}),(0,k.jsxs)(`p`,{className:`text-sm text-secondary mb-4 text-pretty`,children:[`Kill "`,e.agentSessionName||e.name,`"? The process will be terminated. Conversation history is preserved in logs.`]}),(0,k.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,k.jsx)(`button`,{onClick:()=>te(!1),className:`btn py-1.5 px-3 text-sm`,children:`Cancel`}),(0,k.jsx)(`button`,{ref:me,onClick:Ke,className:`btn btn-danger py-1.5 px-3 text-sm`,children:`Kill Session`})]})]})})]})}function Mq({onSelect:e,onCancel:t,initialPath:n}){let[r,i]=(0,y.useState)(n||`~`),[a,o]=(0,y.useState)(null),[s,c]=(0,y.useState)(null),[l,u]=(0,y.useState)(!0),[d,f]=(0,y.useState)(-1),p=(0,y.useRef)(null),m=U(e=>e.recentPaths),h=(0,y.useCallback)(async e=>{p.current?.abort();let t=new AbortController;p.current=t;let{signal:n}=t;u(!0),c(null),o(null),f(-1),i(e);try{let r=await fetch(`/api/directories?path=${encodeURIComponent(e)}`,{signal:n});if(!r.ok){let e=await r.json();throw Error(e.message||`Failed to load directory`)}let a=await r.json();if(p.current!==t)return;o(a),i(a.path)}catch(e){if(p.current!==t)return;let n=e;n?.name!==`AbortError`&&c(n?.message||`Failed to load directory`)}finally{p.current===t&&u(!1)}},[]);(0,y.useEffect)(()=>(h(n||`~`),()=>{p.current?.abort()}),[h,n]);let g=a?.directories??[],_=a?.path||r,v=a?.parent;return(0,y.useEffect)(()=>{let n=n=>{if(n.key===`Escape`){n.preventDefault(),t();return}if(!l){if(n.key===`ArrowDown`){n.preventDefault(),f(e=>g.length===0?-1:e<0?0:Math.min(e+1,g.length-1));return}if(n.key===`ArrowUp`){n.preventDefault(),f(e=>g.length===0?-1:e<0?g.length-1:Math.max(e-1,0));return}if(n.key===`Enter`){n.preventDefault();let t=g[d];t?h(t.path):_&&e(_);return}n.key===`Backspace`&&v&&(n.preventDefault(),h(v))}};return window.addEventListener(`keydown`,n),()=>window.removeEventListener(`keydown`,n)},[g,_,h,d,l,t,e,v]),(0,k.jsx)(`div`,{role:`dialog`,"aria-modal":`true`,"aria-label":`Directory browser`,className:`fixed inset-0 z-[60] flex items-center justify-center bg-black/60 p-4`,onClick:e=>{e.target===e.currentTarget&&t()},"data-testid":`directory-browser`,children:(0,k.jsxs)(`div`,{className:`w-full max-w-lg border border-border bg-elevated p-4`,children:[(0,k.jsxs)(`div`,{className:`flex items-center gap-3 border-b border-border pb-2`,children:[(0,k.jsx)(`button`,{type:`button`,className:`btn`,onClick:()=>{v&&h(v)},disabled:!v||l,children:`Up`}),(0,k.jsx)(`div`,{className:`min-w-0 flex-1 truncate text-xs font-mono text-secondary`,title:_,"data-testid":`directory-current-path`,children:_})]}),(0,k.jsx)(`div`,{className:`mt-3 max-h-60 overflow-y-auto border border-border bg-surface`,children:l?(0,k.jsx)(`div`,{className:`px-3 py-4 text-xs text-muted`,"data-testid":`directory-loading`,children:`Loading directories...`}):s?(0,k.jsxs)(`div`,{className:`px-3 py-4 text-xs`,"data-testid":`directory-error`,children:[(0,k.jsx)(`p`,{className:`text-danger`,children:s}),(0,k.jsx)(`button`,{type:`button`,className:`btn mt-3`,onClick:()=>h(r),children:`Retry`})]}):g.length===0?(0,k.jsx)(`div`,{className:`px-3 py-4 text-xs text-muted`,"data-testid":`directory-empty`,children:`No subdirectories`}):(0,k.jsx)(`div`,{className:`py-1`,children:g.map((e,t)=>(0,k.jsxs)(`button`,{type:`button`,onClick:()=>h(e.path),onMouseEnter:()=>f(t),className:`flex w-full items-center gap-2 px-3 py-2 text-left text-xs ${t===d?`bg-hover text-primary`:`text-secondary`}`,"data-testid":`directory-entry`,"data-entry-name":e.name,"data-entry-path":e.path,children:[(0,k.jsx)(Oe,{width:W.default,height:W.default,className:`shrink-0 text-muted`,"aria-hidden":`true`}),(0,k.jsx)(`span`,{className:`truncate`,children:e.name})]},e.path))})}),a?.truncated?(0,k.jsx)(`p`,{className:`mt-2 text-[10px] text-muted`,children:`Showing first 200 directories.`}):null,(0,k.jsxs)(`div`,{className:`mt-4 border-t border-border pt-3`,children:[(0,k.jsx)(`div`,{className:`text-[10px] uppercase tracking-wider text-secondary`,children:`Recent`}),m.length===0?(0,k.jsx)(`p`,{className:`mt-2 text-xs text-muted`,children:`No recent paths yet.`}):(0,k.jsx)(`div`,{className:`mt-2 space-y-1`,children:m.map(e=>(0,k.jsx)(`button`,{type:`button`,className:`block w-full truncate text-left text-xs text-secondary hover:text-primary`,onClick:()=>h(e),title:e,"data-testid":`directory-recent`,"data-recent-path":e,children:e},e))})]}),(0,k.jsxs)(`div`,{className:`mt-4 flex justify-end gap-2`,children:[(0,k.jsx)(`button`,{type:`button`,onClick:t,className:`btn`,children:`Cancel`}),(0,k.jsx)(`button`,{type:`button`,onClick:()=>{_&&e(_)},className:`btn btn-primary`,disabled:l||!_,children:`Select`})]})]})})}function Nq(e){let t=e.trim();if(t.length>=2){let e=t[0],n=t[t.length-1];if(e===`'`&&n===`'`)return t.slice(1,-1).replace(/'\\''/g,`'`);if(e===`"`&&n===`"`)return t.slice(1,-1).replace(/\\"/g,`"`).replace(/\\\\/g,`\\`)}return t}function Pq(e){let t=e.trim(),n=t.search(/\s/);if(n===-1||t.slice(0,n).split(`/`).pop()!==`bash`)return null;let r=n;for(;r<t.length&&/\s/.test(t[r]);)r++;let i=!1,a=!1;for(;r<t.length;){let e=r;for(;r<t.length&&!/\s/.test(t[r]);)r++;let n=t.slice(e,r);for(;r<t.length&&/\s/.test(t[r]);)r++;if(!n.startsWith(`-`)||n===`-`)return null;if(n===`--`)break;if(n.startsWith(`--`)||!/^-[a-zA-Z]+$/.test(n))continue;let o=n.slice(1);if(o.includes(`l`)&&(i=!0),o.includes(`c`)){a=!0;break}}if(!i||!a)return null;let o=t.slice(r).trim();return o?Nq(o):null}function Fq(e){return e?e===`claude-rp`?`claude`:e:null}function Iq(e){let t=e.trim();if(!t)return``;let n=Nq(t);return Pq(n)??n}function Lq(e){if(e===`claude`)return`claude`;if(e===`codex`)return`codex`;if(e===`pi`)return`pi`;if(e===`devin`||e===`devin-cli`)return`devin`;if(e===`grok`||e.startsWith(`grok-`))return`grok`;if(e===`omp`)return`omp`}function Rq(e){let t=/\S+/g,n;for(;n=t.exec(e);){let e=n[0].toLowerCase().replace(/^["']+|["']+$/g,``);if([`npx`,`bunx`,`pnpm`,`yarn`,`env`].includes(e)||e.includes(`=`)||e.startsWith(`-`))continue;let t=e.includes(`@oh-my-pi/`)?`omp`:Lq(e.split(`/`).pop()||e);return t?{agentType:t,end:n.index+n[0].length}:void 0}}function zq(e){let t=Iq(e);if(t)return Rq(t.toLowerCase().trim().replace(/^["']|["']$/g,``))?.agentType}var Bq={claude:`--dangerously-skip-permissions`,codex:`--yolo`,grok:`--always-approve`,devin:`--permission-mode dangerous`,pi:null,omp:`--auto-approve`},Vq={claude:[`--dangerously-skip-permissions`,`--permission-mode bypassPermissions`,`--permission-mode=bypassPermissions`],codex:[`--yolo`,`--dangerously-bypass-approvals-and-sandbox`],grok:[`--always-approve`,`--yolo`,`--dangerously-skip-permissions`,`--permission-mode bypassPermissions`,`--permission-mode=bypassPermissions`],devin:[`--permission-mode dangerous`,`--permission-mode=dangerous`],pi:[],omp:[`--auto-approve`,`--approval-mode yolo`,`--approval-mode=yolo`]};function Hq(e){let t=Fq(e);return t?Bq[t]:null}function Uq(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function Wq(e){return RegExp(`(^|\\s)${Uq(e)}(?=\\s|$)`,`g`)}function Gq(e,t){return(t?[Fq(t)].filter(e=>e!==null):Object.keys(Vq)).some(t=>Vq[t].some(t=>Wq(t).test(e)))}function Kq(e,t){let n=Rq(e);return n?`${e.slice(0,n.end)} ${t}${e.slice(n.end)}`:null}function qq(e,t){let n=Hq(t);if(!n)return e;let r=e.trim();if(!r||Gq(r,t))return r;let i=Kq(r,n);if(i)return i;let a=Iq(r);if(a&&a!==r){let e=Kq(a,n);if(e)return`bash -lc '${e.replace(/'/g,`'\\''`)}'`}return`${r} ${n}`}function Jq(e,t){let n=Fq(t);if(!n||Gq(e,t))return null;if(n===`codex`){let t=/(^|\s)(--full-auto|--ask-for-approval|-a)(?=\s|=|$)/.exec(e);if(t)return`conflicts with ${t[2]}`}if(n===`omp`){let t=/(^|\s)--approval-mode(?:\s+|=)(always-ask|write)/.exec(e);if(t)return`conflicts with --approval-mode ${t[2]}`}let r=/(^|\s)--permission-mode(?:\s+|=)(\S+)/.exec(e);return r&&n!==`codex`?`conflicts with --permission-mode ${r[2]}`:null}function Yq(e,t){let n=Fq(t);if(!n)return e;let r=e;for(let e of Vq[n])r=r.replace(Wq(e),` `);return r.replace(/\s+/g,` `).trim()}function Xq({isOpen:e,onClose:t,onCreate:n,defaultProjectDir:r,commandPresets:i,defaultPresetId:a,lastProjectPath:o,activeProjectPath:s,remoteHosts:c=[],remoteAllowControl:l=!1,initialHost:u,initialPath:d,initialCommand:f}){let[p,m]=(0,y.useState)(``),[h,g]=(0,y.useState)(``),[_,v]=(0,y.useState)(null),[b,x]=(0,y.useState)(``),[S,C]=(0,y.useState)(!1),[w,T]=(0,y.useState)(``),E=U(e=>e.yoloMode),D=U(e=>e.setYoloMode),O=(0,y.useRef)(null),A=(0,y.useRef)(null),j=(0,y.useRef)(null),M=(0,y.useRef)(!1),N=l&&c.length>0,P=e=>{if(!E)return e;let t=zq(e);return t&&!Jq(e,t)?qq(e,t):e},F=e=>{let t=i.find(t=>t.id===e);t&&(v(e),x(P(Ct(t))))},ee=()=>{v(null),x(``)};if((0,y.useEffect)(()=>{let t=M.current;if(M.current=e,!e){m(``),g(``),v(null),x(``),C(!1),T(u??``),t&&setTimeout(()=>{if(typeof document>`u`||typeof document.querySelector!=`function`)return;let e=document.querySelector(`.xterm-helper-textarea`);e&&(e.removeAttribute(`disabled`),e.focus())},300);return}if(t)return;if(typeof document<`u`&&typeof document.querySelector==`function`){let e=document.querySelector(`.xterm-helper-textarea`);e&&typeof e.setAttribute==`function`&&(typeof e.blur==`function`&&e.blur(),e.setAttribute(`disabled`,`true`))}m(d?.trim()||s?.trim()||o||r||``),g(``),T(u??``);let n=f?.trim();if(n){let e=i.find(e=>Ct(e)===n);e?(v(e.id),x(Ct(e))):(v(null),x(n))}else{let e=i.find(e=>e.id===a);e?(v(a),x(P(Ct(e)))):i.length>0?(v(i[0].id),x(P(Ct(i[0])))):(v(null),x(``))}setTimeout(()=>{if(j.current?.focus(),A.current){let e=A.current;e.scrollLeft=e.scrollWidth}},50)},[s,i,a,r,e,o,u,d,f]),(0,y.useEffect)(()=>{if(!e||typeof window>`u`||typeof window.addEventListener!=`function`)return;let n=()=>O.current?Array.from(O.current.querySelectorAll(`input:not([disabled]), select:not([disabled]), button:not([disabled]):not([tabindex="-1"]), [tabindex="0"]`)):[],r=e=>{if(!S){if(e.key===`Escape`){typeof e.stopPropagation==`function`&&e.stopPropagation(),t();return}if(e.key===`Enter`){let t=document.activeElement;if(!t||t.tagName===`INPUT`||t.closest(`[data-testid="host-select"]`)||!t.closest(`[data-testid="command-select"]`))return;e.preventDefault(),typeof e.stopPropagation==`function`&&e.stopPropagation(),O.current?.requestSubmit();return}if(/^[0-9]$/.test(e.key)&&!e.metaKey&&!e.ctrlKey&&!e.altKey){let t=document.activeElement;if(t&&(t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.tagName===`SELECT`||t.isContentEditable))return;let n;if(e.key===`0`)n=i.length;else if(n=Number(e.key)-1,n>=i.length)return;e.preventDefault(),typeof e.stopPropagation==`function`&&e.stopPropagation(),n===i.length?ee():F(i[n].id),(O.current?.querySelectorAll?.(`[data-testid="command-select"] [role="radio"]`))?.[n]?.focus();return}if(e.key===`Tab`){e.preventDefault(),typeof e.stopPropagation==`function`&&e.stopPropagation();let t=n();if(t.length===0)return;let r=document.activeElement,i=t.indexOf(r),a;a=i===-1?e.shiftKey?t.length-1:0:e.shiftKey?i<=0?t.length-1:i-1:i>=t.length-1?0:i+1,t[a]?.focus()}}};return window.addEventListener(`keydown`,r),()=>window.removeEventListener(`keydown`,r)},[e,t,S,i,E]),!e)return null;let I=_===null,L=w!==``,R=zq(b),z=Hq(R)!==null,B=R?Gq(b,R):!1,te=R&&!B?Jq(b,R):null,V=!z||te!==null,ne=R?R===`pi`?`Pi has no permission prompts — nothing to enable`:te??`Append ${Hq(R)}`:`Enter a supported agent command (claude, codex, grok, devin)`,H=e=>{D(e),R&&x(e?qq(b,R):Yq(b,R))},re=e=>{e.preventDefault();let r=p.trim();if(!r)return;let i=b.trim();n(r,h.trim()||void 0,i||void 0,L?w:void 0),t()},ie=[...i.map(e=>({id:e.id,label:e.label,isCustom:!1,agentType:e.agentType,command:e.command})),{id:`custom`,label:`Custom`,isCustom:!0,agentType:void 0,command:void 0}],ae=[{id:``,label:`Local`,ok:!0,error:void 0},...c.map(e=>({id:e.host,label:e.host,ok:e.ok,error:e.error}))],oe=p.trim()||`~`;return(0,k.jsxs)(`div`,{role:`dialog`,"aria-modal":`true`,"aria-labelledby":`new-session-title`,"data-suspends-terminal":``,className:`fixed inset-0 z-50 flex items-center justify-center bg-black/60 p-4`,onClick:e=>{e.target===e.currentTarget&&t()},children:[(0,k.jsxs)(`form`,{ref:O,onSubmit:re,className:`w-full max-w-md border border-border bg-elevated p-6`,children:[(0,k.jsx)(`h2`,{id:`new-session-title`,className:`text-sm font-semibold uppercase tracking-wider text-primary text-balance`,children:`New Session`}),(0,k.jsxs)(`div`,{className:`mt-4 space-y-4`,children:[N&&(0,k.jsxs)(`div`,{children:[(0,k.jsx)(`label`,{className:`mb-1.5 block text-xs text-secondary`,children:`Host`}),(0,k.jsx)(`div`,{className:`flex flex-wrap gap-2`,role:`radiogroup`,"aria-label":`Host`,"data-testid":`host-select`,children:ae.map((e,t)=>{let n=w===e.id,r=!e.ok&&!n;return(0,k.jsx)(`button`,{type:`button`,role:`radio`,"aria-checked":n,"aria-label":e.label,title:e.ok?void 0:e.error||`Unreachable`,tabIndex:n?0:-1,onClick:()=>T(e.id),onKeyDown:e=>{let n=t;if(e.key===`ArrowRight`||e.key===`ArrowDown`)e.preventDefault(),n=(t+1)%ae.length;else if(e.key===`ArrowLeft`||e.key===`ArrowUp`)e.preventDefault(),n=(t-1+ae.length)%ae.length;else return;let r=ae[n];T(r.id),(e.currentTarget.parentElement?.querySelectorAll(`[role="radio"]`))?.[n]?.focus()},className:`btn text-xs focus:outline-none focus:ring-2 focus:ring-primary ${n?`btn-primary`:``} ${r?`opacity-60`:``}`,children:e.label},e.id||`local`)})})]}),(0,k.jsxs)(`div`,{children:[(0,k.jsx)(`label`,{className:`mb-1.5 block text-xs text-secondary`,children:`Command`}),(0,k.jsx)(`div`,{className:`flex flex-wrap gap-2`,role:`radiogroup`,"aria-label":`Command preset`,"data-testid":`command-select`,children:ie.map((e,t)=>{let n=e.isCustom?I:_===e.id,r=e.isCustom?`0`:t<9?String(t+1):null;return(0,k.jsxs)(`button`,{ref:n?j:void 0,type:`button`,role:`radio`,"aria-checked":n,"aria-keyshortcuts":r??void 0,tabIndex:n?0:-1,onClick:()=>{e.isCustom?ee():F(e.id)},onKeyDown:e=>{let n=t;if(e.key===`ArrowRight`||e.key===`ArrowDown`)e.preventDefault(),n=(t+1)%ie.length;else if(e.key===`ArrowLeft`||e.key===`ArrowUp`)e.preventDefault(),n=(t-1+ie.length)%ie.length;else return;let r=ie[n];r.isCustom?ee():F(r.id),(e.currentTarget.parentElement?.querySelectorAll(`[role="radio"]`))?.[n]?.focus()},className:`btn text-xs focus:outline-none focus:ring-2 focus:ring-primary ${n?`btn-primary`:``}`,children:[r&&(0,k.jsx)(`kbd`,{"aria-hidden":`true`,className:`shortcut-badge`,children:r}),(0,k.jsx)(sg,{agentType:e.agentType,command:e.command,className:`inline-block h-3.5 w-3.5 shrink-0`}),e.label]},e.id)})}),(0,k.jsx)(`input`,{value:b,onChange:e=>x(e.target.value),placeholder:`Enter command...`,className:`input mt-2 font-mono text-xs`}),(0,k.jsxs)(`label`,{className:`mt-2 flex items-center gap-2 text-xs ${V?`text-muted opacity-60`:`text-secondary`}`,title:ne,children:[(0,k.jsx)(`input`,{type:`checkbox`,checked:B,disabled:V,onChange:e=>H(e.target.checked)}),`yolo mode — skip permission prompts`]})]}),(0,k.jsxs)(`div`,{children:[(0,k.jsx)(`label`,{className:`mb-1.5 block text-xs text-secondary`,children:`Project Path`}),(0,k.jsxs)(`div`,{className:`flex gap-2`,children:[(0,k.jsx)(`input`,{ref:A,value:p,onChange:e=>m(e.target.value),placeholder:L?`/home/user/project`:s||o||r||`/Users/you/code/my-project`,className:`input flex-1 text-sm`}),!L&&(0,k.jsx)(`button`,{type:`button`,className:`btn`,onClick:()=>C(!0),children:`Browse`})]})]}),(0,k.jsxs)(`div`,{children:[(0,k.jsx)(`label`,{className:`mb-1.5 block text-xs text-secondary`,children:`Display Name`}),(0,k.jsx)(`input`,{value:h,onChange:e=>g(e.target.value),placeholder:`auto-generated`,className:`input text-sm placeholder:italic`})]})]}),(0,k.jsxs)(`div`,{className:`mt-6 flex justify-end gap-2`,children:[(0,k.jsx)(`button`,{type:`button`,onClick:t,className:`btn`,children:`Cancel`}),(0,k.jsx)(`button`,{type:`submit`,className:`btn btn-primary`,children:`Create`})]})]}),S&&!L&&(0,k.jsx)(Mq,{initialPath:oe,onSelect:e=>{m(e),C(!1)},onCancel:()=>C(!1)})]})}var Zq=[{id:`new-sessions`,label:`New sessions`},{id:`session-list`,label:`Session list`},{id:`appearance`,label:`Appearance`},{id:`terminal`,label:`Terminal`},{id:`notifications`,label:`Notifications`}];function Qq(e){return Zq.some(t=>t.id===e)}function $q(e){return Zq.find(t=>t.id===e)?.label??e}var eJ=`agentboard-settings-page`,tJ=`new-sessions`;function nJ(){let e=w.getItem(eJ);return Qq(e)?e:tJ}function rJ(e){w.setItem(eJ,e)}var iJ=`h-[32px] max-md:h-[44px]`,aJ=`${iJ} inline-flex shrink-0 items-center justify-center border text-[12px] transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:cursor-not-allowed disabled:opacity-50`,oJ=`${aJ} border-border bg-surface px-3 text-secondary hover:bg-hover hover:text-primary`,sJ=`${aJ} w-[32px] max-md:w-[44px] border-border bg-surface text-secondary hover:bg-hover hover:text-primary`,cJ=`input ${iJ} px-2 py-0 text-[13px] max-md:text-[16px] focus-visible:ring-2 focus-visible:ring-accent/40 disabled:opacity-50 aria-[invalid=true]:border-danger`;function lJ(e,t){let[n,r]=(0,y.useState)(null),[i,a]=(0,y.useState)(null),o=(0,y.useRef)({draft:n,stored:e,commit:t});o.current={draft:n,stored:e,commit:t},(0,y.useEffect)(()=>()=>{let{draft:e,stored:t,commit:n}=o.current;e!==null&&e!==t&&n(e)},[]);let s=()=>{if(n===null)return;if(n===e){r(null),a(null);return}let i=t(n);if(i){a(i);return}r(null),a(null)};return{value:n??e,error:i,dirty:n!==null,onChange:e=>{r(e.target.value),a(null)},onBlur:s,onKeyDown:e=>{e.key===`Enter`?(e.preventDefault(),s()):e.key===`Escape`&&n!==null&&(e.preventDefault(),r(null),a(null))}}}var uJ=(0,y.forwardRef)(function({value:e,onCommit:t,describedBy:n,id:r,className:i,wrapperClassName:a,...o},s){let c=lJ(e,t),l=r?`${r}-error`:void 0,u=[n,c.error?l:void 0].filter(Boolean).join(` `);return(0,k.jsxs)(`div`,{className:A_(`min-w-0`,a),children:[(0,k.jsx)(`input`,{...o,ref:s,id:r,value:c.value,onChange:c.onChange,onBlur:c.onBlur,onKeyDown:c.onKeyDown,"aria-invalid":c.error?!0:void 0,"aria-describedby":u||void 0,className:A_(cJ,i)}),c.error&&(0,k.jsx)(`p`,{id:l,className:A_(`text-[12px] leading-snug text-danger`,`mt-1`),role:`alert`,children:c.error})]})});function dJ(e,t,n){let r=e.trim();return/^-?\d+$/.test(r)?Math.min(n,Math.max(t,Number.parseInt(r,10))):null}function fJ({value:e,min:t,max:n,onChange:r,noun:i,labelledBy:a,describedBy:o}){return(0,k.jsxs)(`div`,{role:`group`,"aria-labelledby":a,"aria-describedby":o,className:`flex items-center`,children:[(0,k.jsx)(`button`,{type:`button`,className:sJ,"aria-label":`Decrease ${i}`,disabled:e<=t,onClick:()=>r(Math.max(t,e-1)),children:(0,k.jsx)(He,{width:W.default,height:W.default})}),(0,k.jsx)(`output`,{"aria-live":`polite`,className:A_(iJ,`flex w-10 items-center justify-center border-y border-border bg-base text-[13px] tabular-nums text-primary`),children:e}),(0,k.jsx)(`button`,{type:`button`,className:sJ,"aria-label":`Increase ${i}`,disabled:e>=n,onClick:()=>r(Math.min(n,e+1)),children:(0,k.jsx)(Qe,{width:W.default,height:W.default})})]})}function pJ({id:e,value:t,min:n,max:r,step:i,onChange:a,format:o,labelledBy:s,describedBy:c}){return(0,k.jsxs)(`div`,{className:A_(iJ,`flex items-center gap-3`),children:[(0,k.jsx)(`input`,{id:e,type:`range`,min:n,max:r,step:i,value:t,"aria-labelledby":s,"aria-describedby":c,"aria-valuetext":o(t),onChange:e=>{let t=Number.parseFloat(e.target.value);Number.isFinite(t)&&a(Math.min(r,Math.max(n,t)))},className:`h-1 w-28 max-md:w-36 cursor-pointer appearance-none bg-border accent-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`}),(0,k.jsx)(`span`,{className:`w-10 text-right text-[13px] tabular-nums text-secondary`,children:o(t)})]})}function mJ({options:e,value:t,onChange:n,labelledBy:r,describedBy:i,fill:a=!1}){let o=(0,y.useRef)([]),s=Math.max(0,e.findIndex(e=>e.value===t)),c=t=>{let r=e[t];r&&(n(r.value),o.current[t]?.focus())},l=(t,n)=>{let r=e.length-1,i=null;t.key===`ArrowRight`||t.key===`ArrowDown`?i=n===r?0:n+1:t.key===`ArrowLeft`||t.key===`ArrowUp`?i=n===0?r:n-1:t.key===`Home`?i=0:t.key===`End`&&(i=r),i!==null&&(t.preventDefault(),c(i))};return(0,k.jsx)(`div`,{role:`radiogroup`,"aria-labelledby":r,"aria-describedby":i,className:A_(`flex border border-border bg-base p-[2px]`,a?`w-full`:`w-max max-w-full`),children:e.map((e,t)=>{let n=t===s;return(0,k.jsx)(`button`,{ref:e=>{o.current[t]=e},type:`button`,role:`radio`,"aria-checked":n,tabIndex:n?0:-1,onClick:()=>c(t),onKeyDown:e=>l(e,t),className:A_(`h-[26px] max-md:h-[38px] min-w-0 whitespace-nowrap px-3 text-[12px] transition-colors`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,a&&`flex-1`,n?`bg-hover text-primary shadow-[inset_0_0_0_1px_var(--border)]`:`text-muted hover:text-primary`),children:e.label},e.value)})})}function hJ({ids:e}){return(0,k.jsx)(mJ,{options:[{value:`light`,label:`Light`},{value:`dark`,label:`Dark`},{value:`system`,label:`System`}],value:cK(e=>e.theme),onChange:cK(e=>e.setTheme),labelledBy:e.label,describedBy:e.description})}function gJ({ids:e}){let t=U(e=>e.fontOption),n=U(e=>e.setFontOption);return(0,k.jsx)(`select`,{id:e.control,value:t,"aria-describedby":e.description,onChange:e=>n(e.target.value),className:`${cJ} w-44 max-md:w-full`,children:vt.map(e=>(0,k.jsx)(`option`,{value:e.id,children:e.label},e.id))})}function _J({ids:e}){let t=U(e=>e.customFontFamily);return(0,k.jsx)(uJ,{id:e.control,value:t,placeholder:`"Fira Code", monospace`,describedBy:e.description,spellCheck:!1,autoCapitalize:`off`,autoCorrect:`off`,maxLength:256,wrapperClassName:`w-60 max-md:w-full`,onCommit:e=>(U.getState().setCustomFontFamily(e.trim()),null)})}function vJ({ids:e}){return(0,k.jsx)(fJ,{value:U(e=>e.fontSize),min:6,max:24,onChange:U(e=>e.setFontSize),noun:`font size`,labelledBy:e.label,describedBy:e.description})}function yJ({ids:e}){let t=U(e=>e.lineHeight),n=U(e=>e.setLineHeight);return(0,k.jsx)(pJ,{id:e.control,value:t,min:1,max:2,step:.1,onChange:e=>n(Math.round(e*10)/10),format:e=>e.toFixed(1),labelledBy:e.label,describedBy:e.description})}function bJ({ids:e}){let t=U(e=>e.letterSpacing),n=U(e=>e.setLetterSpacing);return(0,k.jsx)(pJ,{id:e.control,value:t,min:-3,max:3,step:1,onChange:e=>n(Math.round(e)),format:e=>`${e}px`,labelledBy:e.label,describedBy:e.description})}var xJ=[{id:`theme`,page:`appearance`,label:`Theme`,description:`Light, dark, or follow the system setting.`,keywords:[`dark mode`,`light mode`,`color`,`colour`,`system`],Control:hJ},{id:`font-family`,page:`appearance`,label:`Font family`,description:`Terminal typeface. Default JetBrains Mono.`,keywords:[`font`,`typeface`,`monospace`],tags:[`device`],Control:gJ},{id:`custom-font-family`,page:`appearance`,label:`Custom font family`,description:`A CSS font-family list. Empty falls back to JetBrains Mono.`,keywords:[`font`,`typeface`,`css`],tags:[`device`],layout:`wide`,visibleWhen:e=>e.fontOption===`custom`,Control:_J},{id:`font-size`,page:`appearance`,label:`Font size`,description:`Terminal text size in pixels (6–24). Default 13.`,keywords:[`font`,`text`,`zoom`,`size`],tags:[`device`],Control:vJ},{id:`line-height`,page:`appearance`,label:`Line height`,description:`Vertical spacing, 1.0 compact to 2.0 spacious. Default 1.0.`,keywords:[`spacing`,`leading`,`line`],tags:[`device`],Control:yJ},{id:`letter-spacing`,page:`appearance`,label:`Letter spacing`,description:`Extra space between characters in pixels (−3 to 3). Default 0.`,keywords:[`spacing`,`tracking`,`kerning`],tags:[`device`],Control:bJ}],SJ=1024,CJ=[{value:``,label:`Terminal`},{value:`claude`,label:`Claude`},{value:`codex`,label:`Codex`},{value:`pi`,label:`Pi`},{value:`devin`,label:`Devin`},{value:`grok`,label:`Grok`},{value:`omp`,label:`OMP`}];function wJ(e,t){let n=t.trim();return e===`label`?n?n.length>64?`Name is at most 64 characters`:null:`Name is required`:n?n.length>1024?`Command is at most ${SJ} characters`:null:`Command is required`}function TJ(e){return wJ(`label`,e.label)===null&&wJ(`command`,e.command)===null}function EJ(e,t,n){return e.map(e=>e.id===t?St({...e,...n}):e)}var DJ=`grid items-start gap-2 grid-cols-[56px_92px_minmax(0,0.8fr)_minmax(0,1.3fr)_auto] max-md:grid-cols-[minmax(0,1fr)_minmax(0,auto)_auto] max-md:gap-y-2`,OJ=4e3;function kJ({preset:e,index:t,isDefault:n,pending:r=!1,autoFocusName:i=!1,onSetDefault:a,onCommitField:o,onIconChange:s,onDelete:c}){let[l,u]=(0,y.useState)(!1),d=(0,y.useRef)(null),f=`settings-preset-${e.id}`,p=e.label.trim()||`preset ${t+1}`;return(0,y.useEffect)(()=>{i&&d.current?.focus()},[i]),(0,y.useEffect)(()=>{if(!l)return;let e=setTimeout(()=>u(!1),OJ);return()=>clearTimeout(e)},[l]),(0,k.jsxs)(`div`,{role:`listitem`,"data-preset-id":e.id,className:A_(DJ,`py-2`),children:[(0,k.jsxs)(`label`,{className:A_(iJ,`flex cursor-pointer items-center gap-2 md:justify-center`),children:[(0,k.jsx)(`input`,{type:`radio`,name:`settings-default-preset`,checked:n,disabled:r,onChange:a,"aria-label":`Default preset: ${p}`,className:`size-4 cursor-pointer accent-accent disabled:cursor-not-allowed`}),(0,k.jsx)(`span`,{"aria-hidden":`true`,className:`text-[12px] text-secondary md:hidden`,children:`Default`})]}),e.isBuiltIn?(0,k.jsxs)(`div`,{className:A_(iJ,`flex items-center gap-2 text-muted`),children:[(0,k.jsx)(sg,{agentType:e.agentType,command:e.command,className:`size-4`}),(0,k.jsx)(`span`,{className:`text-[11px]`,children:`Built-in`})]}):(0,k.jsx)(`select`,{id:`${f}-icon`,value:e.agentType??``,"aria-label":`Icon for ${p}`,onChange:e=>s(e.target.value||void 0),className:A_(cJ,`w-full px-1`),children:CJ.map(e=>(0,k.jsx)(`option`,{value:e.value,children:e.label},e.value))}),(0,k.jsx)(uJ,{ref:d,id:`${f}-label`,value:e.label,placeholder:`Name`,"aria-label":`Name of preset ${t+1}`,maxLength:64,onCommit:e=>o(`label`,e),wrapperClassName:`max-md:order-4 max-md:col-span-3`}),(0,k.jsx)(uJ,{id:`${f}-command`,value:e.command,placeholder:`command --flags`,"aria-label":`Command for ${p}`,maxLength:SJ,spellCheck:!1,autoCapitalize:`off`,autoCorrect:`off`,onCommit:e=>o(`command`,e),wrapperClassName:`max-md:order-5 max-md:col-span-3`}),e.isBuiltIn?(0,k.jsx)(`span`,{"aria-hidden":`true`,className:`w-[32px] max-md:order-3 max-md:w-[44px]`}):(0,k.jsx)(`button`,{type:`button`,onClick:()=>{if(r||l){c();return}u(!0)},onPointerDown:r?e=>e.preventDefault():void 0,onBlur:()=>u(!1),"aria-label":l?`Confirm delete ${p}`:r?`Discard new preset`:`Delete ${p}`,title:l?`Click again to delete`:void 0,className:A_(aJ,`max-md:order-3`,l?`border-danger bg-danger/10 px-2 text-danger hover:bg-danger/20`:`w-[32px] border-border bg-surface text-secondary hover:bg-hover hover:text-danger max-md:w-[44px]`),children:l?`Delete?`:(0,k.jsx)(me,{width:W.default,height:W.default})})]})}function AJ({ids:e}){let t=U(e=>e.commandPresets),n=U(e=>e.defaultPresetId),[r,i]=(0,y.useState)(null),a=(0,y.useRef)(null),o=(0,y.useRef)(null),s=(0,y.useRef)(!1);(0,y.useEffect)(()=>{if(!s.current)return;s.current=!1;let e=o.current;if(e&&!e.disabled){e.focus();return}let t=a.current?.id;t&&typeof document<`u`&&document.getElementById(`settings-preset-${t}-label`)?.focus()});let c=e=>{a.current=e,i(e)},l=!r&&t.length<50,u=r?[...t,r]:t,d=(e,t,n)=>{let r=wJ(t,n);if(r)return r;let{commandPresets:i,setCommandPresets:a}=U.getState();return a(EJ(i,e,{[t]:n})),null},f=(e,t)=>{let n=a.current;if(!n)return null;let r={...n,[e]:t},{commandPresets:i,setCommandPresets:o}=U.getState();return TJ(r)&&i.length<50?(o([...i,St(r)]),c(null)):c(r),null},p=(e,t)=>{if(r?.id===e){c({...r,agentType:t});return}let{commandPresets:n,setCommandPresets:i}=U.getState();i(EJ(n,e,{agentType:t}))},m=()=>{l&&c({id:wt(new Set(t.map(e=>e.id))),label:``,command:``,isBuiltIn:!1})},h=e=>{s.current=!0,a.current?.id===e?c(null):U.getState().removePreset(e)};return(0,k.jsxs)(`div`,{className:`w-full min-w-0`,children:[(0,k.jsxs)(`div`,{"aria-hidden":`true`,className:A_(DJ,`border-b border-border pb-1 text-[11px] uppercase tracking-wide text-muted max-md:hidden`),children:[(0,k.jsx)(`span`,{className:`text-center`,children:`Default`}),(0,k.jsx)(`span`,{children:`Icon`}),(0,k.jsx)(`span`,{children:`Name`}),(0,k.jsx)(`span`,{children:`Command`}),(0,k.jsx)(`span`,{className:`w-[32px]`})]}),(0,k.jsx)(`div`,{role:`list`,"aria-labelledby":e.label,"aria-describedby":e.description,className:`divide-y divide-border-subtle`,children:u.map((e,t)=>{let i=e.id===r?.id;return(0,k.jsx)(kJ,{preset:e,index:t,isDefault:e.id===n,pending:i,autoFocusName:i,onSetDefault:()=>U.getState().setDefaultPresetId(e.id),onCommitField:(t,n)=>i?f(t,n):d(e.id,t,n),onIconChange:t=>p(e.id,t),onDelete:()=>h(e.id)},e.id)})}),r&&(0,k.jsx)(`p`,{className:A_(`text-[12px] leading-snug text-muted`,`pb-2`),role:`status`,children:`Enter a name and a command to add the preset.`}),(0,k.jsxs)(`div`,{className:`mt-2 flex items-center gap-3`,children:[(0,k.jsxs)(`button`,{ref:o,type:`button`,className:oJ,onClick:m,disabled:!l,children:[(0,k.jsx)(Qe,{width:W.default,height:W.default,className:`mr-1.5`}),`Add preset`]}),t.length>=50&&(0,k.jsxs)(`span`,{className:`text-[12px] leading-snug text-muted`,children:[`Maximum of `,50,` presets.`]})]})]})}function jJ({ids:e}){let t=U(e=>e.defaultProjectDir);return(0,k.jsx)(uJ,{id:e.control,value:t,placeholder:ht,describedBy:e.description,spellCheck:!1,autoCapitalize:`off`,autoCorrect:`off`,maxLength:4096,wrapperClassName:`w-72 max-md:w-full`,onCommit:e=>(U.getState().setDefaultProjectDir(e.trim()||`~/Documents/GitHub`),null)})}var MJ=[{id:`default-project-dir`,page:`new-sessions`,label:`Default project directory`,description:`Folder the new session dialog starts in. Default ${ht}.`,keywords:[`path`,`folder`,`cwd`,`directory`],layout:`wide`,Control:jJ},{id:`command-presets`,page:`new-sessions`,label:`Command presets`,description:`Commands offered when creating a session. The default preset is pre-selected.`,keywords:[`preset`,`command`,`agent`,`claude`,`codex`,`default`,`icon`],layout:`block`,Control:AJ}],NJ=null,PJ=!1,FJ={},IJ=500;function LJ(){if(typeof window>`u`)return null;if(NJ?.state===`closed`&&(NJ=null),!NJ){let e=window.AudioContext??window.webkitAudioContext;if(!e)return null;NJ=new e}return NJ}function RJ(){NJ&&=(NJ.close().catch(()=>{}),null),LJ()}function zJ(){return PJ}function BJ(){NJ&&(RJ(),PJ=!0)}if(typeof window<`u`){window.addEventListener(`pageshow`,e=>{e.persisted&&BJ()}),document.addEventListener(`visibilitychange`,()=>{document.visibilityState===`visible`&&BJ()});let e=Date.now();setInterval(()=>{let t=Date.now();t-e>15e3&&BJ(),e=t},5e3)}async function VJ(){let e=LJ();e&&e.state===`suspended`&&await e.resume().catch(()=>{}),PJ=!1}async function HJ(e){e.state===`suspended`&&await e.resume().catch(()=>{})}async function UJ(e){let t=LJ();if(!t||(await HJ(t),t.state!==`running`))return;let{frequencies:n,durationMs:r,attackMs:i,peakGain:a,type:o=`sine`}=e,s=t.currentTime,c=r/1e3,l=i/1e3,u=t.createGain();u.connect(t.destination);let d=s+c*.7;u.gain.setValueAtTime(0,s),u.gain.linearRampToValueAtTime(a,s+l),u.gain.setValueAtTime(a,d),u.gain.linearRampToValueAtTime(0,s+c);let f=n.map(e=>{let n=t.createOscillator();return n.type=o,n.frequency.setValueAtTime(e,s),n.connect(u),n});for(let e of f)e.start(s),e.stop(s+c);let p=f[f.length-1];p.onended=()=>{for(let e of f)e.disconnect();u.disconnect()}}async function WJ(){let e=Date.now();if(!(e-(FJ.permission||0)<IJ)){FJ.permission=e;try{await UJ({frequencies:[880],durationMs:150,attackMs:5,peakGain:.15,type:`sine`})}catch{}}}async function GJ(){let e=Date.now();if(!(e-(FJ.idle||0)<IJ)){FJ.idle=e;try{await UJ({frequencies:[440,550],durationMs:300,attackMs:10,peakGain:.08,type:`sine`})}catch{}}}function KJ({controlled:e,default:t,name:n,state:r=`value`}){let{current:i}=y.useRef(e!==void 0),[a,o]=y.useState(t);return[i?e:a,y.useCallback(e=>{i||o(e)},[])]}var qJ={};function JJ(e,t){let n=y.useRef(qJ);return n.current===qJ&&(n.current=e(t)),n}var YJ=y[`useInsertionEffect${Math.random().toFixed(1)}`.slice(0,-3)],XJ=YJ&&YJ!==y.useLayoutEffect?YJ:e=>e();function ZJ(e){let t=JJ(QJ).current;return t.next=e,XJ(t.effect),t.trampoline}function QJ(){let e={next:void 0,callback:$J,trampoline:(...t)=>e.callback?.(...t),effect:()=>{e.callback=e.next}};return e}function $J(){}function eY(e,t,n,r){let i=JJ(nY).current;return rY(i,e,t,n,r)&&aY(i,[e,t,n,r]),i.callback}function tY(e){let t=JJ(nY).current;return iY(t,e)&&aY(t,e),t.callback}function nY(){return{callback:null,cleanup:null,refs:[]}}function rY(e,t,n,r,i){return e.refs[0]!==t||e.refs[1]!==n||e.refs[2]!==r||e.refs[3]!==i}function iY(e,t){return e.refs.length!==t.length||e.refs.some((e,n)=>e!==t[n])}function aY(e,t){if(e.refs=t,t.every(e=>e==null)){e.callback=null;return}e.callback=n=>{if(e.cleanup&&=(e.cleanup(),null),n!=null){let r=Array(t.length).fill(null);for(let e=0;e<t.length;e+=1){let i=t[e];if(i!=null)switch(typeof i){case`function`:{let t=i(n);typeof t==`function`&&(r[e]=t);break}case`object`:i.current=n;break;default:}}e.cleanup=()=>{for(let e=0;e<t.length;e+=1){let n=t[e];if(n!=null)switch(typeof n){case`function`:{let t=r[e];typeof t==`function`?t():n(null);break}case`object`:n.current=null;break;default:}}}}}}var oY=typeof document<`u`?y.useLayoutEffect:()=>{},sY={clipPath:`inset(50%)`,overflow:`hidden`,whiteSpace:`nowrap`,border:0,padding:0,width:1,height:1,margin:-1},cY={...sY,position:`fixed`,top:0,left:0},lY={...sY,position:`absolute`};function uY(){}Object.freeze([]);var dY=Object.freeze({});function fY(e,...t){let n=new URL(`https://base-ui.com/production-error`);return n.searchParams.set(`code`,e.toString()),t.forEach(e=>n.searchParams.append(`args[]`,e)),`Base UI error #${e}; visit ${n} for the full message.`}var pY=18;function mY(e){return pY>=e}function hY(e){if(!y.isValidElement(e))return null;let t=e,n=t.props;return(mY(19)?n?.ref:t.ref)??null}function gY(e,t){if(e&&!t)return e;if(!e&&t)return t;if(e||t)return{...e,...t}}function _Y(e,t){let n={};for(let r in e){let i=e[r];if(t?.hasOwnProperty(r)){let e=t[r](i);e!=null&&Object.assign(n,e);continue}i===!0?n[`data-${r.toLowerCase()}`]=``:i&&(n[`data-${r.toLowerCase()}`]=i.toString())}return n}function vY(e,t){return typeof e==`function`?e(t):e}function yY(e,t){return typeof e==`function`?e(t):e}var bY={};function xY(e,t,n,r,i){let a={...DY(e,bY)};return t&&(a=CY(a,t)),n&&(a=CY(a,n)),r&&(a=CY(a,r)),i&&(a=CY(a,i)),a}function SY(e){if(e.length===0)return bY;if(e.length===1)return DY(e[0],bY);let t={...DY(e[0],bY)};for(let n=1;n<e.length;n+=1)t=CY(t,e[n]);return t}function CY(e,t){return EY(t)?t(e):wY(e,t)}function wY(e,t){if(!t)return e;for(let n in t){let r=t[n];switch(n){case`style`:e[n]=gY(e.style,r);break;case`className`:e[n]=AY(e.className,r);break;default:TY(n,r)?e[n]=OY(e[n],r):e[n]=r}}return e}function TY(e,t){let n=e.charCodeAt(0),r=e.charCodeAt(1),i=e.charCodeAt(2);return n===111&&r===110&&i>=65&&i<=90&&(typeof t==`function`||t===void 0)}function EY(e){return typeof e==`function`}function DY(e,t){return EY(e)?e(t):e??bY}function OY(e,t){return t?e?n=>{if(jY(n)){let r=n;kY(r);let i=t(r);return r.baseUIHandlerPrevented||e?.(r),i}let r=t(n);return e?.(n),r}:t:e}function kY(e){return e.preventBaseUIHandler=()=>{e.baseUIHandlerPrevented=!0},e}function AY(e,t){return t?e?t+` `+e:t:e}function jY(e){return typeof e==`object`&&!!e&&`nativeEvent`in e}function MY(e,t,n={}){let r=t.render,i=NY(t,n);return n.enabled===!1?null:FY(e,r,i,n.state??dY)}function NY(e,t={}){let{className:n,style:r,render:i}=e,{state:a=dY,ref:o,props:s,stateAttributesMapping:c,enabled:l=!0}=t,u=l?vY(n,a):void 0,d=l?yY(r,a):void 0,f=l?_Y(a,c):dY,p=l?gY(f,Array.isArray(s)?SY(s):s)??dY:dY;return typeof document<`u`&&(l?Array.isArray(o)?p.ref=tY([p.ref,hY(i),...o]):p.ref=eY(p.ref,hY(i),o):eY(null,null)),l?(u!==void 0&&(p.className=AY(p.className,u)),d!==void 0&&(p.style=gY(p.style,d)),p):dY}var PY=Symbol.for(`react.lazy`);function FY(e,t,n,r){if(t){if(typeof t==`function`)return t(n,r);let e=xY(n,t.props);e.ref=n.ref;let i=t;return i?.$$typeof===PY&&(i=y.Children.toArray(t)[0]),y.cloneElement(i,e)}if(e&&typeof e==`string`)return IY(e,n);throw Error(fY(8))}function IY(e,t){return e===`button`?(0,y.createElement)(`button`,{type:`button`,...t,key:t.key}):e===`img`?(0,y.createElement)(`img`,{alt:``,...t,key:t.key}):y.createElement(e,t)}var LY={...y},RY=0;function zY(e,t=`mui`){let[n,r]=y.useState(e),i=e||n;return y.useEffect(()=>{n??(RY+=1,r(`${t}-${RY}`))},[n,t]),i}var BY=LY.useId;function VY(e,t){if(BY!==void 0){let n=BY();return e??(t?`${t}-${n}`:n)}return zY(e,t)}function HY(e){return VY(e,`base-ui`)}function UY(){return typeof window<`u`}function WY(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function GY(e){return UY()?e instanceof Element||e instanceof WY(e).Element:!1}function KY(e){return UY()?e instanceof HTMLElement||e instanceof WY(e).HTMLElement:!1}function qY(e){return!UY()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof WY(e).ShadowRoot}var JY=y.createContext(void 0);function YY(e=!1){let t=y.useContext(JY);if(t===void 0&&!e)throw Error(fY(16));return t}function XY(e){let{focusableWhenDisabled:t,disabled:n,composite:r=!1,tabIndex:i=0,isNativeButton:a}=e,o=r&&t!==!1,s=r&&t===!1;return{props:y.useMemo(()=>{let e={onKeyDown(e){n&&t&&e.key!==`Tab`&&e.preventDefault()}};return r||(e.tabIndex=i,!a&&n&&(e.tabIndex=t?i:-1)),(a&&(t||o)||!a&&n)&&(e[`aria-disabled`]=n),a&&(!t||s)&&(e.disabled=n),e},[r,n,t,o,s,a,i])}}function ZY(e={}){let{disabled:t=!1,focusableWhenDisabled:n,tabIndex:r=0,native:i=!0}=e,a=y.useRef(null),o=YY(!0)!==void 0,s=ZJ(()=>{let e=a.current;return!!(e?.tagName===`A`&&e?.href)}),{props:c}=XY({focusableWhenDisabled:n,disabled:t,composite:o,tabIndex:r,isNativeButton:i}),l=y.useCallback(()=>{let e=a.current;QY(e)&&o&&t&&c.disabled===void 0&&e.disabled&&(e.disabled=!1)},[t,c.disabled,o]);return oY(l,[l]),{getButtonProps:y.useCallback((e={})=>{let{onClick:n,onMouseDown:r,onKeyUp:a,onKeyDown:o,onPointerDown:l,...u}=e;return xY({type:i?`button`:void 0,onClick(e){if(t){e.preventDefault();return}n?.(e)},onMouseDown(e){t||r?.(e)},onKeyDown(e){if(t||(kY(e),o?.(e)),e.baseUIHandlerPrevented)return;let r=e.target===e.currentTarget&&!i&&!s()&&!t,a=e.key===`Enter`,c=e.key===` `;r&&((c||a)&&e.preventDefault(),a&&n?.(e))},onKeyUp(e){t||(kY(e),a?.(e)),!e.baseUIHandlerPrevented&&e.target===e.currentTarget&&!i&&!t&&e.key===` `&&n?.(e)},onPointerDown(e){if(t){e.preventDefault();return}l?.(e)}},i?void 0:{role:`button`},c,u)},[t,c,i,s]),buttonRef:ZJ(e=>{a.current=e,l()})}}function QY(e){return KY(e)&&e.tagName===`BUTTON`}var $Y=y.createContext(void 0);function eX(){let e=y.useContext($Y);if(e===void 0)throw Error(fY(63));return e}var tX=function(e){return e.disabled=`data-disabled`,e.valid=`data-valid`,e.invalid=`data-invalid`,e.touched=`data-touched`,e.dirty=`data-dirty`,e.filled=`data-filled`,e.focused=`data-focused`,e}({}),nX={badInput:!1,customError:!1,patternMismatch:!1,rangeOverflow:!1,rangeUnderflow:!1,stepMismatch:!1,tooLong:!1,tooShort:!1,typeMismatch:!1,valid:null,valueMissing:!1},rX={valid(e){return e===null?null:e?{[tX.valid]:``}:{[tX.invalid]:``}}},iX=function(e){return e.checked=`data-checked`,e.unchecked=`data-unchecked`,e.disabled=`data-disabled`,e.readonly=`data-readonly`,e.required=`data-required`,e.valid=`data-valid`,e.invalid=`data-invalid`,e.touched=`data-touched`,e.dirty=`data-dirty`,e.filled=`data-filled`,e.focused=`data-focused`,e}({}),aX={...rX,checked(e){return e?{[iX.checked]:``}:{[iX.unchecked]:``}}};function oX(e,t){return{...e,state:{...e.state,valid:!t&&e.state.valid}}}var sX=y.createContext({formRef:{current:{fields:new Map}},errors:{},clearErrors:uY,validationMode:`onSubmit`,submitAttemptedRef:{current:!1}});function cX(){return y.useContext(sX)}var lX=y.createContext({invalid:void 0,name:void 0,validityData:{state:nX,errors:[],error:``,value:``,initialValue:null},setValidityData:uY,disabled:void 0,touched:!1,setTouched:uY,dirty:!1,setDirty:uY,filled:!1,setFilled:uY,focused:!1,setFocused:uY,validate:()=>null,validationMode:`onSubmit`,validationDebounceTime:0,shouldValidateOnChange:()=>!1,state:{disabled:!1,valid:null,touched:!1,dirty:!1,filled:!1,focused:!1},markedDirtyRef:{current:!1},validation:{getValidationProps:(e=dY)=>e,getInputValidationProps:(e=dY)=>e,inputRef:{current:null},commit:async()=>{}}});function uX(e=!0){let t=y.useContext(lX);if(t.setValidityData===uY&&!e)throw Error(fY(28));return t}function dX(e){let{enabled:t=!0,value:n,id:r,name:i,controlRef:a,commit:o}=e,{formRef:s}=cX(),{invalid:c,markedDirtyRef:l,validityData:u,setValidityData:d}=uX(),f=ZJ(e.getValue);oY(()=>{if(!t)return;let e=n;e===void 0&&(e=f()),u.initialValue===null&&e!==null&&d(t=>({...t,initialValue:e}))},[t,d,n,u.initialValue,f]),oY(()=>{!t||!r||s.current.fields.set(r,{getValue:f,name:i,controlRef:a,validityData:oX(u,c),validate(e=!0){let t=n;t===void 0&&(t=f()),l.current=!0,e?cf.flushSync(()=>o(t)):o(t)}})},[o,a,t,s,f,r,c,l,i,u,n]),oY(()=>{let e=s.current.fields;return()=>{r&&e.delete(r)}},[s,r])}var fX=y.createContext({controlId:void 0,registerControlId:uY,labelId:void 0,setLabelId:uY,messageIds:[],setMessageIds:uY,getDescriptionProps:e=>e});function pX(){return y.useContext(fX)}function mX(e={}){let{id:t,implicit:n=!1,controlRef:r}=e,{controlId:i,registerControlId:a}=pX(),o=HY(t),s=n?i:void 0,c=JJ(()=>Symbol(`labelable-control`)),l=y.useRef(!1),u=y.useRef(t!=null),d=ZJ(()=>{!l.current||a===uY||(l.current=!1,a(c.current,void 0))});return oY(()=>{if(a===uY)return;let e;if(n){let n=r?.current;e=GY(n)&&n.closest(`label`)!=null?t??null:s??o}else if(t!=null)u.current=!0,e=t;else if(u.current)e=o;else{d();return}if(e===void 0){d();return}l.current=!0,a(c.current,e)},[t,r,s,a,n,o,c,d]),y.useEffect(()=>d,[d]),i??o}var hX=`none`;function gX(e,t,n,r){let i=!1,a=!1,o=r??dY;return{reason:e,event:t??new Event(`base-ui`),cancel(){i=!0},allowPropagation(){a=!0},get isCanceled(){return i},get isPropagationAllowed(){return a},trigger:n,...o}}function _X(e,t){let n=y.useRef(e),r=ZJ(t);oY(()=>{n.current!==e&&r(n.current)},[e,r]),oY(()=>{n.current=e},[e])}var vX=y.forwardRef(function(e,t){let{checked:n,className:r,defaultChecked:i,id:a,inputRef:o,name:s,nativeButton:c=!1,onCheckedChange:l,readOnly:u=!1,required:d=!1,disabled:f=!1,render:p,uncheckedValue:m,value:h,...g}=e,{clearErrors:_}=cX(),{state:v,setTouched:b,setDirty:x,validityData:S,setFilled:C,setFocused:w,shouldValidateOnChange:T,validationMode:E,disabled:D,name:O,validation:A}=uX(),{labelId:j}=pX(),M=D||f,N=O??s,P=ZJ(l),F=y.useRef(null),ee=eY(F,o,A.inputRef),I=y.useRef(null),L=HY(),R=mX({id:a,implicit:!1,controlRef:I}),z=c?void 0:R,[B,te]=KJ({controlled:n,default:!!i,name:`Switch`,state:`checked`});dX({id:L,commit:A.commit,value:B,controlRef:I,name:N,getValue:()=>B}),oY(()=>{F.current&&C(F.current.checked)},[F,C]),_X(B,()=>{_(N),x(B!==S.initialValue),C(B),T()?A.commit(B):A.commit(B,!0)});let{getButtonProps:V,buttonRef:ne}=ZY({disabled:M,native:c}),H={id:c?R:L,role:`switch`,"aria-checked":B,"aria-readonly":u||void 0,"aria-required":d||void 0,"aria-labelledby":j,onFocus(){M||w(!0)},onBlur(){let e=F.current;!e||M||(b(!0),w(!1),E===`onBlur`&&A.commit(e.checked))},onClick(e){u||M||(e.preventDefault(),F.current?.dispatchEvent(new PointerEvent(`click`,{bubbles:!0,shiftKey:e.shiftKey,ctrlKey:e.ctrlKey,altKey:e.altKey,metaKey:e.metaKey})))}},re=y.useMemo(()=>xY({checked:B,disabled:M,id:z,name:N,required:d,style:N?lY:cY,tabIndex:-1,type:`checkbox`,"aria-hidden":!0,ref:ee,onChange(e){if(e.nativeEvent.defaultPrevented)return;let t=e.target.checked,n=gX(hX,e.nativeEvent);P?.(t,n),!n.isCanceled&&te(t)},onFocus(){I.current?.focus()}},A.getInputValidationProps,h===void 0?dY:{value:h}),[B,M,ee,z,N,P,d,te,A,h]),ie=y.useMemo(()=>({...v,checked:B,disabled:M,readOnly:u,required:d}),[v,B,M,u,d]),ae=MY(`span`,e,{state:ie,ref:[t,I,ne],props:[H,A.getValidationProps,g,V],stateAttributesMapping:aX});return(0,k.jsxs)($Y.Provider,{value:ie,children:[ae,!B&&N&&m!==void 0&&(0,k.jsx)(`input`,{type:`hidden`,name:N,value:m}),(0,k.jsx)(`input`,{...re})]})}),yX=y.forwardRef(function(e,t){let{render:n,className:r,...i}=e,{state:a}=uX(),o=eX();return MY(`span`,e,{state:{...a,...o},ref:t,stateAttributesMapping:aX,props:i})});function bX({checked:e,onCheckedChange:t,disabled:n,className:r,ariaLabel:i,id:a,ariaLabelledBy:o,ariaDescribedBy:s}){return(0,k.jsx)(vX,{checked:e,onCheckedChange:t,disabled:n,"aria-label":i,id:a,"aria-labelledby":o,"aria-describedby":s,className:A_(`group relative inline-flex h-6 w-10 shrink-0 cursor-pointer items-center rounded-full transition-colors`,`bg-border data-[checked]:bg-accent`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-bg-base`,`disabled:cursor-not-allowed disabled:opacity-50`,r),children:(0,k.jsx)(yX,{className:A_(`pointer-events-none block size-4 rounded-full bg-white shadow-sm transition-transform`,`translate-x-1 group-data-[checked]:translate-x-5`)})})}function xX(e,t,n,r){return function({ids:i}){let a=U(t=>t[e]),o=U(e=>e[t]);return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(`button`,{type:`button`,className:oJ,"aria-label":`Test ${r}`,onClick:()=>void n(),children:`Test`}),(0,k.jsx)(bX,{className:Ht,id:i.control,checked:a,onCheckedChange:e=>{o(e),e&&VJ()},ariaLabelledBy:i.label,ariaDescribedBy:i.description})]})}}var SX=[{id:`sound-permission`,page:`notifications`,label:`Permission sound`,description:`Play a ping when any session needs permission.`,keywords:[`sound`,`audio`,`alert`,`ping`,`approval`],Control:xX(`soundOnPermission`,`setSoundOnPermission`,WJ,`permission sound`)},{id:`sound-idle`,page:`notifications`,label:`Idle sound`,description:`Play a chime when a session finishes working.`,keywords:[`sound`,`audio`,`alert`,`chime`,`done`,`finished`],Control:xX(`soundOnIdle`,`setSoundOnIdle`,GJ,`idle sound`)}];function CX(e,t,n){let r=`/api/settings/${e}`,[i,a]=(0,y.useState)(n),[o,s]=(0,y.useState)(!0),[c,l]=(0,y.useState)(!1),u=(0,y.useRef)(n),d=(0,y.useRef)(Promise.resolve()),f=(0,y.useRef)(0),p=(0,y.useRef)(!0),m=(0,y.useRef)(!1);return(0,y.useEffect)(()=>{p.current=!0;let e=!0;return fetch(r).then(e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);return e.json()}).then(n=>{if(!e)return;let r=n[t];f.current===0&&!m.current&&(u.current=r),m.current||a(r)}).catch(()=>{}).finally(()=>{e&&(l(!0),f.current===0&&s(!1))}),()=>{e=!1,p.current=!1}},[r,t]),{value:i,loading:o,loaded:c,set:(0,y.useCallback)(e=>{m.current=!0,f.current+=1,a(e),s(!0),d.current=d.current.then(()=>fetch(r,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({[t]:e})}).then(t=>{if(!t.ok)throw Error(`HTTP ${t.status}`);u.current=e}).catch(()=>{p.current&&f.current===1&&a(u.current)}).finally(()=>{--f.current,p.current&&f.current===0&&s(!1)}))},[r,t])}}function wX(e,t){return function({ids:n}){let r=U(t=>t[e]),i=U(e=>e[t]);return(0,k.jsx)(bX,{className:Ht,id:n.control,checked:r,onCheckedChange:i,ariaLabelledBy:n.label,ariaDescribedBy:n.description})}}function TX({ids:e}){return(0,k.jsx)(mJ,{options:[{value:`created`,label:`Created`},{value:`status`,label:`Status`},{value:`manual`,label:`Manual`}],value:U(e=>e.sessionSortMode),onChange:U(e=>e.setSessionSortMode),labelledBy:e.label,describedBy:e.description})}function EX(){let e=U(e=>e.sessionSortMode);return e===`status`?(0,k.jsx)(k.Fragment,{children:`Permission sessions come first; the rest sort by newest activity.`}):e===`manual`?(0,k.jsx)(k.Fragment,{children:`Drag sessions in the sidebar to reorder them.`}):(0,k.jsx)(k.Fragment,{children:`Sessions stay in the order they were created.`})}function DX({ids:e}){return(0,k.jsx)(mJ,{options:[{value:`desc`,label:`Newest first`},{value:`asc`,label:`Oldest first`}],value:U(e=>e.sessionSortDirection),onChange:U(e=>e.setSessionSortDirection),labelledBy:e.label,describedBy:e.description})}function OX({ids:e}){return(0,k.jsx)(mJ,{options:[{value:`top`,label:`Top`},{value:`bottom`,label:`Bottom`}],value:U(e=>e.sidebarAnchor),onChange:U(e=>e.setSidebarAnchor),labelledBy:e.label,describedBy:e.description})}function kX(){return U(e=>e.sidebarAnchor)===`bottom`?(0,k.jsx)(k.Fragment,{children:`The sidebar is mirrored: the first session sits at the bottom, next to the prompt.`}):(0,k.jsx)(k.Fragment,{children:`The first session sits at the top of the sidebar.`})}function AX({ids:e}){let{value:t,loaded:n,set:r}=CX(`history-max-age-hours`,`hours`,24);return(0,k.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,k.jsx)(uJ,{id:e.control,type:`text`,inputMode:`numeric`,value:String(t),disabled:!n,describedBy:e.description,wrapperClassName:`w-20`,className:`text-center tabular-nums`,onCommit:e=>{let n=dJ(e,1,168);return n===null?`Enter 1–168`:(n!==t&&r(n),null)}}),(0,k.jsx)(`span`,{className:`flex h-[32px] items-center text-[12px] text-muted max-md:h-[44px]`,children:`hours`})]})}function jX({ids:e}){let{value:t,loaded:n,set:r}=CX(`prefer-window-name`,`enabled`,!1);return(0,k.jsx)(bX,{className:Ht,id:e.control,checked:t,onCheckedChange:r,disabled:!n,ariaLabelledBy:e.label,ariaDescribedBy:e.description})}var MX=[{id:`sort-order`,page:`session-list`,label:`Sort order`,description:`Created keeps creation order, Status re-sorts by status, Manual lets you drag.`,keywords:[`sort`,`order`,`created`,`status`,`manual`,`drag`],layout:`wide`,Description:EX,Control:TX},{id:`sort-direction`,page:`session-list`,label:`Sort direction`,description:`Newest or oldest sessions first.`,keywords:[`sort`,`newest`,`oldest`,`ascending`,`descending`],layout:`wide`,visibleWhen:e=>e.sessionSortMode===`created`,Control:DX},{id:`sidebar-anchor`,page:`session-list`,label:`Sidebar anchor`,description:`Top lists the first session at the top; Bottom mirrors the sidebar.`,keywords:[`sidebar`,`mirror`,`top`,`bottom`],tags:[`desktop`],Description:kX,Control:OX},{id:`show-project-name`,page:`session-list`,label:`Project name`,description:`Show the project folder name under each session.`,keywords:[`folder`,`details`],Control:wX(`showProjectName`,`setShowProjectName`)},{id:`show-last-user-message`,page:`session-list`,label:`Last user message`,description:`Show the most recent prompt next to the project name.`,keywords:[`prompt`,`input`,`details`],Control:wX(`showLastUserMessage`,`setShowLastUserMessage`)},{id:`show-session-id-prefix`,page:`session-list`,label:`Session ID prefix`,description:`Show the first 5 characters of the agent session ID.`,keywords:[`id`,`uuid`,`details`],Control:wX(`showSessionIdPrefix`,`setShowSessionIdPrefix`)},{id:`history-lookback`,page:`session-list`,label:`History lookback`,description:`Show history sessions from the last N hours (1–168), up to the 100 most recent. Default 24.`,keywords:[`history`,`hours`,`age`,`inactive`,`past`],Control:AX},{id:`prefer-window-name`,page:`session-list`,label:`Prefer window names`,description:`Label discovered sessions with their tmux window name instead of the session name.`,keywords:[`tmux`,`window`,`name`,`title`],Control:jX}],NX=`1-9 [ ] N X ,`;function PX({ids:e}){let t=U(e=>e.useWebGL),n=U(e=>e.setUseWebGL);return(0,k.jsx)(bX,{className:Ht,id:e.control,checked:t,onCheckedChange:n,ariaLabelledBy:e.label,ariaDescribedBy:e.description})}function FX(e,t){return function({ids:n}){let{value:r,loaded:i,set:a}=CX(e,`enabled`,t);return(0,k.jsx)(bX,{className:Ht,id:n.control,checked:r,onCheckedChange:a,disabled:!i,ariaLabelledBy:n.label,ariaDescribedBy:n.description})}}var IX=[`auto`,`ctrl-option`,`ctrl-shift`,`cmd-option`,`cmd-shift`];function LX({ids:e}){let t=U(e=>e.shortcutModifier),n=U(e=>e.setShortcutModifier);return(0,k.jsx)(mJ,{options:IX.map(e=>({value:e,label:e===`auto`?`Auto`:Mt(e)})),value:t,onChange:n,labelledBy:e.label,describedBy:e.description})}function RX(){return(0,k.jsxs)(k.Fragment,{children:[`Shortcuts: `,Mt(At(U(e=>e.shortcutModifier))),` + `,NX,` (sessions, navigate, new, kill, settings).`]})}var zX=[{id:`webgl`,page:`terminal`,label:`WebGL acceleration`,description:`GPU rendering for better performance. Turn off if text looks fuzzy or flickers (common in Safari).`,keywords:[`gpu`,`renderer`,`canvas`,`blurry`,`performance`],tags:[`device`],Control:PX},{id:`mouse-mode`,page:`terminal`,label:`Mouse mode`,description:`tmux mouse mode for trackpad and scroll wheel support.`,keywords:[`tmux`,`scroll`,`trackpad`,`mouse`],Control:FX(`tmux-mouse-mode`,!0)},{id:`terminal-colors`,page:`terminal`,label:`Terminal colors`,description:`Preserve ANSI colors in terminal output. Hibernate then Wake running agents after changing this.`,keywords:[`ansi`,`color`,`colour`],Control:FX(`terminal-colors`,!0)},{id:`shortcut-modifier`,page:`terminal`,label:`Keyboard shortcut modifier`,description:`Modifier keys for the app shortcuts. Auto picks ⌃⌥ on macOS, ⌃⇧ elsewhere.`,keywords:[`keyboard`,`shortcut`,`hotkey`,`ctrl`,`cmd`,`option`,`shift`],tags:[`desktop`,`device`],layout:`wide`,Description:RX,Control:LX}],BX=[...MJ,...MX,...xJ,...zX,...SX];function VX(e,t=BX){return t.filter(t=>t.page===e)}function HX(e){return[e.label,e.description,...e.keywords??[]].join(` `).toLowerCase()}function UX(e,t=BX){let n=e.trim().toLowerCase().split(/\s+/).filter(Boolean);return n.length===0?[]:t.filter(e=>{let t=HX(e);return n.every(e=>t.includes(e))})}function WX(e){return Zq.map(t=>({page:t.id,label:t.label,rows:e.filter(e=>e.page===t.id)})).filter(e=>e.rows.length>0)}var GX={desktop:`Desktop`,device:`This device`},KX={desktop:`Only affects the desktop layout`,device:`Stored in this browser only; not synced to other devices`};function qX({tag:e}){return(0,k.jsx)(`span`,{title:KX[e],className:`shrink-0 border border-border px-1 py-px text-[10px] uppercase leading-none tracking-wide text-muted`,children:GX[e]})}function JX(e){let t=`settings-${e}`;return{control:`${t}-control`,label:`${t}-label`,description:`${t}-desc`}}function YX({row:e}){let t=JX(e.id),n=e.layout??`inline`,{Control:r,Description:i}=e;return(0,k.jsxs)(`div`,{"data-setting-row":e.id,className:A_(`flex gap-x-6 gap-y-3 py-4`,n===`block`&&`flex-col`,n===`wide`&&`items-center max-md:flex-col max-md:items-stretch`,n===`inline`&&`items-center`),children:[(0,k.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,k.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-2 gap-y-1`,children:[(0,k.jsx)(`label`,{id:t.label,htmlFor:t.control,className:`text-[14px] leading-snug text-primary`,children:e.label}),e.tags?.map(e=>(0,k.jsx)(qX,{tag:e},e))]}),(0,k.jsx)(`div`,{id:t.description,className:`mt-1 text-[12px] leading-snug text-muted text-pretty`,children:i?(0,k.jsx)(i,{}):e.description})]}),(0,k.jsx)(`div`,{className:A_(`flex min-w-0 items-center gap-2`,n===`inline`?`shrink-0`:`max-w-full`),children:(0,k.jsx)(r,{ids:t})})]})}function XX(e,t){return e.visibleWhen?e.visibleWhen(t):!0}function ZX({rows:e}){let t=U(t=>e.map(e=>XX(e,t)?`1`:`0`).join(``));return(0,k.jsx)(`div`,{className:`divide-y divide-border`,children:e.filter((e,n)=>t[n]===`1`).map(e=>(0,k.jsx)(YX,{row:e},e.id))})}function QX({page:e,showTitle:t}){let n=(0,y.useMemo)(()=>VX(e),[e]);return(0,k.jsxs)(`section`,{"aria-labelledby":t?`settings-page-${e}-title`:void 0,children:[t&&(0,k.jsx)(`h3`,{id:`settings-page-${e}-title`,className:`pb-1 text-[18px] font-semibold leading-tight text-primary`,children:$q(e)}),(0,k.jsx)(ZX,{rows:n})]})}function $X({query:e}){let t=(0,y.useMemo)(()=>UX(e),[e]),n=U(e=>t.some(t=>XX(t,e))),r=(0,y.useMemo)(()=>WX(t),[t]);return n?(0,k.jsx)(`div`,{className:`flex flex-col gap-6`,children:r.map(e=>(0,k.jsx)(eZ,{label:e.label,rows:e.rows},e.page))}):(0,k.jsxs)(`div`,{role:`status`,className:`flex flex-col items-center gap-1 py-16 text-center`,children:[(0,k.jsxs)(`p`,{className:`text-[14px] text-primary`,children:[`No settings match “`,e.trim(),`”`]}),(0,k.jsx)(`p`,{className:`text-[12px] text-muted`,children:`Try a different word, like “font” or “sound”.`})]})}function eZ({label:e,rows:t}){return U(e=>t.some(t=>XX(t,e)))?(0,k.jsxs)(`section`,{"aria-label":e,children:[(0,k.jsx)(`h3`,{className:`border-b border-border pb-1 text-[11px] font-medium uppercase tracking-wider text-muted`,children:e}),(0,k.jsx)(ZX,{rows:t})]}):null}function tZ(e){return`settings-tab-${e}`}function nZ(e,t,n){return e===`ArrowDown`?(t+1)%n:e===`ArrowUp`?(t-1+n)%n:e===`Home`?0:e===`End`?n-1:null}function rZ({variant:e,current:t,onSelect:n,panelId:r}){let i=(0,y.useRef)([]),a=Math.max(0,Zq.findIndex(e=>e.id===t)),o=(t,r)=>{let a=nZ(t.key,r,Zq.length);a!==null&&(t.preventDefault(),i.current[a]?.focus(),e===`tabs`&&n(Zq[a].id))};return e===`list`?(0,k.jsx)(`nav`,{"aria-label":`Settings pages`,children:(0,k.jsx)(`ul`,{className:`divide-y divide-border border-y border-border`,children:Zq.map((e,t)=>(0,k.jsx)(`li`,{children:(0,k.jsxs)(`button`,{ref:e=>{i.current[t]=e},type:`button`,"data-page-id":e.id,onClick:()=>n(e.id),onKeyDown:e=>o(e,t),className:`flex min-h-[52px] w-full items-center justify-between gap-3 px-4 text-left text-[15px] text-primary active:bg-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-accent`,children:[e.label,(0,k.jsx)(V,{width:W.primary,height:W.primary,className:`text-muted`,"aria-hidden":`true`})]})},e.id))})}):(0,k.jsx)(`div`,{role:`tablist`,"aria-orientation":`vertical`,"aria-label":`Settings pages`,className:`flex flex-col gap-px`,children:Zq.map((e,s)=>{let c=e.id===t;return(0,k.jsx)(`button`,{ref:e=>{i.current[s]=e},id:tZ(e.id),type:`button`,role:`tab`,"aria-selected":c,"aria-controls":r,tabIndex:s===a?0:-1,onClick:()=>n(e.id),onKeyDown:e=>o(e,s),className:A_(`flex h-[32px] w-full items-center border-l-2 px-3 text-left text-[13px] transition-colors`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-accent`,c?`border-primary bg-hover font-medium text-primary`:`border-transparent text-secondary hover:text-primary`),children:e.label},e.id)})})}var iZ=(0,y.forwardRef)(function({value:e,onChange:t,className:n},r){return(0,k.jsxs)(`div`,{className:n,children:[(0,k.jsx)(`label`,{htmlFor:`settings-search`,className:`sr-only`,children:`Search settings`}),(0,k.jsx)(`input`,{ref:r,id:`settings-search`,type:`search`,value:e,placeholder:`Search settings`,autoComplete:`off`,spellCheck:!1,onChange:e=>t(e.target.value),onKeyDown:n=>{n.key===`Escape`&&e&&(n.preventDefault(),t(``))},className:`input h-[32px] px-2 py-0 text-[13px] max-md:h-[44px] max-md:text-[16px] focus-visible:ring-2 focus-visible:ring-accent/40`})]})}),aZ=[`a[href]`,`button:not([disabled])`,`input:not([disabled]):not([type="hidden"])`,`select:not([disabled])`,`textarea:not([disabled])`,`[tabindex]:not([tabindex="-1"])`].join(`,`);function oZ(e){return Array.from(e.querySelectorAll(aZ)).filter(e=>e.getAttribute(`aria-hidden`)!==`true`&&e.tabIndex!==-1)}function sZ(e,t,n){if(e.length===0)return null;let r=e[0],i=e[e.length-1],a=t===null?-1:e.indexOf(t);return a===-1?n?i:r:n&&a===0?i:!n&&a===e.length-1?r:null}var cZ=`.xterm-helper-textarea`,lZ=300,uZ=`[data-suspends-terminal]`,dZ=null;function fZ(e){return!e||typeof document>`u`||e===document.body?null:typeof e.focus==`function`?e:null}function pZ(e,t){if(e.isConnected)return e;if(!t)return null;let n=t.replace(/["\\]/g,`\\$&`);return document.querySelector(`button[aria-label="${n}"]`)}function mZ(){(0,y.useEffect)(()=>{if(typeof document>`u`||typeof document.querySelector!=`function`)return;dZ&&=(clearTimeout(dZ),null);let e=fZ(document.activeElement),t=document.querySelector(cZ);t&&(t.blur(),t.setAttribute(`disabled`,`true`));let n=e?.getAttribute?.(`aria-label`)??null;return()=>{dZ=setTimeout(()=>{if(dZ=null,document.querySelector(uZ))return;let r=document.querySelector(cZ);if(r){r.removeAttribute(`disabled`),r.focus();return}(e&&e!==t?pZ(e,n):null)?.focus()},lZ)}},[])}function hZ(e,t){let n=(0,y.useRef)(t);n.current=t,(0,y.useEffect)(()=>{if(typeof document>`u`||typeof document.addEventListener!=`function`)return;let t=t=>{if(t.key===`Escape`){if(t.defaultPrevented)return;t.preventDefault(),t.stopPropagation(),n.current();return}if(t.key!==`Tab`)return;let r=e.current;if(!r)return;let i=document.activeElement,a=sZ(oZ(r),i,t.shiftKey);a&&(t.preventDefault(),a.focus())},r=t=>{let n=e.current,r=t.target;n&&r&&!n.contains(r)&&n.focus()};return document.addEventListener(`keydown`,t),document.addEventListener(`focusin`,r),()=>{document.removeEventListener(`keydown`,t),document.removeEventListener(`focusin`,r)}},[e])}function gZ({isOpen:e,onClose:t}){return e?(0,k.jsx)(yZ,{onClose:t}):null}var _Z=`settings-panel`,vZ=`flex shrink-0 items-center justify-center text-secondary transition-colors hover:bg-hover hover:text-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-accent`;function yZ({onClose:e}){let t=Yh(),[n,r]=(0,y.useState)(()=>t?null:nJ()),[i,a]=(0,y.useState)(``),o=(0,y.useRef)(null),s=(0,y.useRef)(null),c=(0,y.useRef)(null),l=(0,y.useRef)(!1),u=(0,y.useRef)(null);mZ(),hZ(o,e),(0,y.useEffect)(()=>{t?o.current?.focus():s.current?.focus()},[]),(0,y.useEffect)(()=>{if(t){if(n)c.current?.focus();else if(u.current){let e=o.current?.querySelector(`[data-page-id="${u.current}"]`);u.current=null,e?.focus()}}},[t,n]);let d=e=>{r(e),rJ(e),a(``)},f=i.trim().length>0,p=(0,k.jsx)(`button`,{type:`button`,onClick:e,"aria-label":`Close settings`,className:A_(vZ,`size-[32px] max-md:size-[44px]`),children:(0,k.jsx)(it,{width:W.primary,height:W.primary})});if(t)return(0,k.jsxs)(`div`,{ref:o,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`settings-title`,"data-suspends-terminal":``,tabIndex:-1,className:`fixed inset-0 z-50 flex flex-col bg-elevated outline-none`,style:{paddingTop:`env(safe-area-inset-top)`,paddingLeft:`env(safe-area-inset-left)`,paddingRight:`env(safe-area-inset-right)`},children:[(0,k.jsxs)(`header`,{className:`flex h-[52px] shrink-0 items-center gap-1 border-b border-border px-1`,children:[n?(0,k.jsx)(`button`,{ref:c,type:`button`,onClick:()=>{u.current=n,r(null)},"aria-label":`Back to settings`,className:A_(vZ,`size-[44px]`),children:(0,k.jsx)(V,{width:W.primary,height:W.primary,className:`rotate-180`})}):(0,k.jsx)(`span`,{"aria-hidden":`true`,className:`size-[44px] shrink-0`}),(0,k.jsx)(`h2`,{id:`settings-title`,className:`min-w-0 flex-1 truncate text-center text-[16px] font-semibold text-primary`,children:n?$q(n):`Settings`}),p]}),(0,k.jsx)(`div`,{id:_Z,className:`min-h-0 flex-1 overflow-y-auto overflow-x-hidden overscroll-contain px-4`,style:{paddingBottom:`calc(24px + env(safe-area-inset-bottom))`},children:n?(0,k.jsx)(QX,{page:n,showTitle:!1}):(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(iZ,{ref:s,value:i,onChange:a,className:`py-3`}),f?(0,k.jsx)($X,{query:i}):(0,k.jsx)(`div`,{className:`-mx-4`,children:(0,k.jsx)(rZ,{variant:`list`,current:null,onSelect:d})})]})})]});let m=n??nJ();return(0,k.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/30 p-4`,onMouseDown:e=>{l.current=e.target===e.currentTarget},onClick:t=>{l.current&&t.target===t.currentTarget&&e(),l.current=!1},children:(0,k.jsxs)(`div`,{ref:o,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`settings-title`,"data-suspends-terminal":``,tabIndex:-1,className:`flex h-[600px] max-h-full w-[760px] max-w-full flex-col border border-border bg-elevated shadow-2xl outline-none`,children:[(0,k.jsxs)(`header`,{className:`flex h-[48px] shrink-0 items-center justify-between border-b border-border pl-5 pr-2`,children:[(0,k.jsx)(`h2`,{id:`settings-title`,className:`text-[13px] font-semibold uppercase tracking-wider text-primary`,children:`Settings`}),p]}),(0,k.jsxs)(`div`,{className:`flex min-h-0 flex-1`,children:[(0,k.jsxs)(`div`,{className:`flex w-[192px] shrink-0 flex-col gap-3 border-r border-border p-3`,children:[(0,k.jsx)(iZ,{ref:s,value:i,onChange:a}),(0,k.jsx)(rZ,{variant:`tabs`,current:f?null:m,onSelect:d,panelId:_Z})]}),(0,k.jsx)(`div`,{id:_Z,role:f?`region`:`tabpanel`,"aria-label":f?`Search results`:void 0,"aria-labelledby":f?void 0:tZ(m),className:`min-w-0 flex-1 overflow-y-auto overflow-x-hidden px-6 py-5`,children:f?(0,k.jsx)($X,{query:i}):(0,k.jsx)(QX,{page:m,showTitle:!0})})]})]})})}var bZ=[];function xZ(e){y.useEffect(e,bZ)}var SZ=y.createContext(void 0);function CZ(){let e=y.useContext(SZ);if(!e)throw Error(fY(73));return e}var wZ=Symbol(`NOT_FOUND`);function TZ(e,t=`expected a function, instead received ${typeof e}`){if(typeof e!=`function`)throw TypeError(t)}function EZ(e,t=`expected an object, instead received ${typeof e}`){if(typeof e!=`object`)throw TypeError(t)}function DZ(e,t=`expected all items to be functions, instead received the following types: `){if(!e.every(e=>typeof e==`function`)){let n=e.map(e=>typeof e==`function`?`function ${e.name||`unnamed`}()`:typeof e).join(`, `);throw TypeError(`${t}[${n}]`)}}var OZ=e=>Array.isArray(e)?e:[e];function kZ(e){let t=Array.isArray(e[0])?e[0]:e;return DZ(t,`createSelector expects all input-selectors to be functions, but received the following types: `),t}function AZ(e,t){let n=[],{length:r}=e;for(let i=0;i<r;i++)n.push(e[i].apply(null,t));return n}function jZ(e){let t;return{get(n){return t&&e(t.key,n)?t.value:wZ},put(e,n){t={key:e,value:n}},getEntries(){return t?[t]:[]},clear(){t=void 0}}}function MZ(e,t){let n=[];function r(e){let r=n.findIndex(n=>t(e,n.key));if(r>-1){let e=n[r];return r>0&&(n.splice(r,1),n.unshift(e)),e.value}return wZ}function i(t,i){r(t)===wZ&&(n.unshift({key:t,value:i}),n.length>e&&n.pop())}function a(){return n}function o(){n=[]}return{get:r,put:i,getEntries:a,clear:o}}var NZ=(e,t)=>e===t;function PZ(e){return function(t,n){if(t===null||n===null||t.length!==n.length)return!1;let{length:r}=t;for(let i=0;i<r;i++)if(!e(t[i],n[i]))return!1;return!0}}function FZ(e,t){let{equalityCheck:n=NZ,maxSize:r=1,resultEqualityCheck:i}=typeof t==`object`?t:{equalityCheck:t},a=PZ(n),o=0,s=r<=1?jZ(a):MZ(r,a);function c(){let t=s.get(arguments);if(t===wZ){if(t=e.apply(null,arguments),o++,i){let e=s.getEntries().find(e=>i(e.value,t));e&&(t=e.value,o!==0&&o--)}s.put(arguments,t)}return t}return c.clearCache=()=>{s.clear(),c.resetResultsCount()},c.resultsCount=()=>o,c.resetResultsCount=()=>{o=0},c}var IZ=class{constructor(e){this.value=e}deref(){return this.value}},LZ=typeof WeakRef<`u`?WeakRef:IZ,RZ=0,zZ=1;function BZ(){return{s:RZ,v:void 0,o:null,p:null}}function VZ(e,t={}){let n=BZ(),{resultEqualityCheck:r}=t,i,a=0;function o(){let t=n,{length:o}=arguments;for(let e=0,n=o;e<n;e++){let n=arguments[e];if(typeof n==`function`||typeof n==`object`&&n){let e=t.o;e===null&&(t.o=e=new WeakMap);let r=e.get(n);r===void 0?(t=BZ(),e.set(n,t)):t=r}else{let e=t.p;e===null&&(t.p=e=new Map);let r=e.get(n);r===void 0?(t=BZ(),e.set(n,t)):t=r}}let s=t,c;if(t.s===zZ)c=t.v;else if(c=e.apply(null,arguments),a++,r){let e=i?.deref?.()??i;e!=null&&r(e,c)&&(c=e,a!==0&&a--),i=typeof c==`object`&&c||typeof c==`function`?new LZ(c):c}return s.s=zZ,s.v=c,c}return o.clearCache=()=>{n=BZ(),o.resetResultsCount()},o.resultsCount=()=>a,o.resetResultsCount=()=>{a=0},o}function HZ(e,...t){let n=typeof e==`function`?{memoize:e,memoizeOptions:t}:e,r=(...e)=>{let t=0,r=0,i,a={},o=e.pop();typeof o==`object`&&(a=o,o=e.pop()),TZ(o,`createSelector expects an output function after the inputs, but received: [${typeof o}]`);let{memoize:s,memoizeOptions:c=[],argsMemoize:l=VZ,argsMemoizeOptions:u=[],devModeChecks:d={}}={...n,...a},f=OZ(c),p=OZ(u),m=kZ(e),h=s(function(){return t++,o.apply(null,arguments)},...f),g=l(function(){r++;let e=AZ(m,arguments);return i=h.apply(null,e),i},...p);return Object.assign(g,{resultFunc:o,memoizedResultFunc:h,dependencies:m,dependencyRecomputations:()=>r,resetDependencyRecomputations:()=>{r=0},lastResult:()=>i,recomputations:()=>t,resetRecomputations:()=>{t=0},memoize:s,argsMemoize:l})};return Object.assign(r,{withTypes:()=>r}),r}var UZ=HZ(VZ),WZ=Object.assign((e,t=UZ)=>{EZ(e,`createStructuredSelector expects first argument to be an object where each property is a selector, instead received a ${typeof e}`);let n=Object.keys(e);return t(n.map(t=>e[t]),(...e)=>e.reduce((e,t,r)=>(e[n[r]]=t,e),{}))},{withTypes:()=>WZ}),GZ=HZ({memoize:FZ,memoizeOptions:{maxSize:1,equalityCheck:Object.is}}),KZ=(e,t,n,r,i,a,...o)=>{if(o.length>0)throw Error(fY(1));let s;if(e&&t&&n&&r&&i&&a)s=(o,s,c,l)=>a(e(o,s,c,l),t(o,s,c,l),n(o,s,c,l),r(o,s,c,l),i(o,s,c,l),s,c,l);else if(e&&t&&n&&r&&i)s=(a,o,s,c)=>i(e(a,o,s,c),t(a,o,s,c),n(a,o,s,c),r(a,o,s,c),o,s,c);else if(e&&t&&n&&r)s=(i,a,o,s)=>r(e(i,a,o,s),t(i,a,o,s),n(i,a,o,s),a,o,s);else if(e&&t&&n)s=(r,i,a,o)=>n(e(r,i,a,o),t(r,i,a,o),i,a,o);else if(e&&t)s=(n,r,i,a)=>t(e(n,r,i,a),r,i,a);else if(e)s=e;else throw Error(`Missing arguments`);return s},qZ=(...e)=>{let t=new WeakMap,n=1,r=e[e.length-1],i=e.length-1||1,a=r.length-i;if(a>3)throw Error(fY(2));return(i,o,s,c)=>{let l=i.__cacheKey__;l||(l={id:n},i.__cacheKey__=l,n+=1);let u=t.get(l);if(!u){let n=e,i=[void 0,void 0,void 0];switch(a){case 0:break;case 1:n=[...e.slice(0,-1),()=>i[0],r];break;case 2:n=[...e.slice(0,-1),()=>i[0],()=>i[1],r];break;case 3:n=[...e.slice(0,-1),()=>i[0],()=>i[1],()=>i[2],r];break;default:throw Error(fY(2))}u=GZ(...n),u.selectorArgs=i,t.set(l,u)}switch(u.selectorArgs[0]=o,u.selectorArgs[1]=s,u.selectorArgs[2]=c,a){case 0:return u(i);case 1:return u(i,o);case 2:return u(i,o,s);case 3:return u(i,o,s,c);default:throw Error(`unreachable`)}}},JZ=s((e=>{var t=p();function n(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var r=typeof Object.is==`function`?Object.is:n,i=t.useState,a=t.useEffect,o=t.useLayoutEffect,s=t.useDebugValue;function c(e,t){var n=t(),r=i({inst:{value:n,getSnapshot:t}}),c=r[0].inst,u=r[1];return o(function(){c.value=n,c.getSnapshot=t,l(c)&&u({inst:c})},[e,n,t]),a(function(){return l(c)&&u({inst:c}),e(function(){l(c)&&u({inst:c})})},[e]),s(n),n}function l(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch{return!0}}function u(e,t){return t()}var d=typeof window>`u`||window.document===void 0||window.document.createElement===void 0?u:c;e.useSyncExternalStore=t.useSyncExternalStore===void 0?d:t.useSyncExternalStore})),YZ=s(((e,t)=>{t.exports=JZ()})),XZ=s((e=>{var t=p(),n=YZ();function r(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var i=typeof Object.is==`function`?Object.is:r,a=n.useSyncExternalStore,o=t.useRef,s=t.useEffect,c=t.useMemo,l=t.useDebugValue;e.useSyncExternalStoreWithSelector=function(e,t,n,r,u){var d=o(null);if(d.current===null){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=c(function(){function e(e){if(!a){if(a=!0,o=e,e=r(e),u!==void 0&&f.hasValue){var t=f.value;if(u(t,e))return s=t}return s=e}if(t=s,i(o,e))return t;var n=r(e);return u!==void 0&&u(t,n)?(o=e,t):(o=e,s=n)}var a=!1,o,s,c=n===void 0?null:n;return[function(){return e(t())},c===null?void 0:function(){return e(c())}]},[t,n,r,u]);var p=a(e,d[0],d[1]);return s(function(){f.hasValue=!0,f.value=p},[p]),l(p),p}})),ZZ=s(((e,t)=>{t.exports=XZ()})),QZ=[],$Z=void 0;function eQ(){return $Z}function tQ(e){QZ.push(e)}var nQ=YZ(),rQ=ZZ(),iQ=mY(19)?sQ:cQ;function aQ(e,t,n,r,i){return iQ(e,t,n,r,i)}function oQ(e,t,n,r,i){let a=y.useCallback(()=>t(e.getSnapshot(),n,r,i),[e,t,n,r,i]);return(0,nQ.useSyncExternalStore)(e.subscribe,a,a)}tQ({before(e){e.syncIndex=0,e.didInitialize||(e.syncTick=1,e.syncHooks=[],e.didChangeStore=!0,e.getSnapshot=()=>{let t=!1;for(let n=0;n<e.syncHooks.length;n+=1){let r=e.syncHooks[n],i=r.selector(r.store.state,r.a1,r.a2,r.a3);(r.didChange||!Object.is(r.value,i))&&(t=!0,r.value=i,r.didChange=!1)}return t&&(e.syncTick+=1),e.syncTick})},after(e){e.syncHooks.length>0&&(e.didChangeStore&&(e.didChangeStore=!1,e.subscribe=t=>{let n=new Set;for(let t of e.syncHooks)n.add(t.store);let r=[];for(let e of n)r.push(e.subscribe(t));return()=>{for(let e of r)e()}}),(0,nQ.useSyncExternalStore)(e.subscribe,e.getSnapshot,e.getSnapshot))}});function sQ(e,t,n,r,i){let a=eQ();if(!a)return oQ(e,t,n,r,i);let o=a.syncIndex;a.syncIndex+=1;let s;return a.didInitialize?(s=a.syncHooks[o],(s.store!==e||s.selector!==t||!Object.is(s.a1,n)||!Object.is(s.a2,r)||!Object.is(s.a3,i))&&(s.store!==e&&(a.didChangeStore=!0),s.store=e,s.selector=t,s.a1=n,s.a2=r,s.a3=i,s.didChange=!0)):(s={store:e,selector:t,a1:n,a2:r,a3:i,value:t(e.getSnapshot(),n,r,i),didChange:!1},a.syncHooks.push(s)),s.value}function cQ(e,t,n,r,i){return(0,rQ.useSyncExternalStoreWithSelector)(e.subscribe,e.getSnapshot,e.getSnapshot,e=>t(e,n,r,i))}var lQ=class{constructor(e){this.state=e,this.listeners=new Set,this.updateTick=0}subscribe=e=>(this.listeners.add(e),()=>{this.listeners.delete(e)});getSnapshot=()=>this.state;setState(e){if(this.state===e)return;this.state=e,this.updateTick+=1;let t=this.updateTick;for(let n of this.listeners){if(t!==this.updateTick)return;n(e)}}update(e){for(let t in e)if(!Object.is(this.state[t],e[t])){this.setState({...this.state,...e});return}}set(e,t){Object.is(this.state[e],t)||this.setState({...this.state,[e]:t})}notifyAll(){let e={...this.state};this.setState(e)}use(e,t,n,r){return aQ(this,e,t,n,r)}},uQ=class extends lQ{constructor(e,t={},n){super(e),this.context=t,this.selectors=n}useSyncedValue(e,t){y.useDebugValue(e),oY(()=>{this.state[e]!==t&&this.set(e,t)},[e,t])}useSyncedValueWithCleanup(e,t){let n=this;oY(()=>(n.state[e]!==t&&n.set(e,t),()=>{n.set(e,void 0)}),[n,e,t])}useSyncedValues(e){let t=this;oY(()=>{t.update(e)},[t,...Object.values(e)])}useControlledProp(e,t){y.useDebugValue(e);let n=t!==void 0;oY(()=>{n&&!Object.is(this.state[e],t)&&super.setState({...this.state,[e]:t})},[e,t,n])}select(e,t,n,r){let i=this.selectors[e];return i(this.state,t,n,r)}useState(e,t,n,r){return y.useDebugValue(e),aQ(this,this.selectors[e],t,n,r)}useContextCallback(e,t){y.useDebugValue(e);let n=ZJ(t??uY);this.context[e]=n}useStateSetter(e){let t=y.useRef(void 0);return t.current===void 0&&(t.current=t=>{this.set(e,t)}),t.current}observe(e,t){let n;n=typeof e==`function`?e:this.selectors[e];let r=n(this.state);return t(r,r,this),this.subscribe(e=>{let i=n(e);if(!Object.is(r,i)){let e=r;r=i,t(i,e,this)}})}},dQ=null;globalThis.requestAnimationFrame;var fQ=new class{callbacks=[];callbacksCount=0;nextId=1;startId=1;isScheduled=!1;tick=e=>{this.isScheduled=!1;let t=this.callbacks,n=this.callbacksCount;if(this.callbacks=[],this.callbacksCount=0,this.startId=this.nextId,n>0)for(let n=0;n<t.length;n+=1)t[n]?.(e)};request(e){let t=this.nextId;return this.nextId+=1,this.callbacks.push(e),this.callbacksCount+=1,this.isScheduled||=(requestAnimationFrame(this.tick),!0),t}cancel(e){let t=e-this.startId;t<0||t>=this.callbacks.length||(this.callbacks[t]=null,--this.callbacksCount)}},pQ=class e{static create(){return new e}static request(e){return fQ.request(e)}static cancel(e){return fQ.cancel(e)}currentId=dQ;request(e){this.cancel(),this.currentId=fQ.request(()=>{this.currentId=dQ,e()})}cancel=()=>{this.currentId!==dQ&&(fQ.cancel(this.currentId),this.currentId=dQ)};disposeEffect=()=>this.cancel};function mQ(){let e=JJ(pQ.create).current;return xZ(e.disposeEffect),e}var hQ=0,gQ=class e{static create(){return new e}currentId=hQ;start(e,t){this.clear(),this.currentId=setTimeout(()=>{this.currentId=hQ,t()},e)}isStarted(){return this.currentId!==hQ}clear=()=>{this.currentId!==hQ&&(clearTimeout(this.currentId),this.currentId=hQ)};disposeEffect=()=>this.clear};function _Q(){let e=JJ(gQ.create).current;return xZ(e.disposeEffect),e}var vQ=0;function yQ(e){return vQ+=1,`${e}-${Math.random().toString(36).slice(2,6)}-${vQ}`}function bQ(e){return e?.ownerDocument||document}function xQ(e,t){if(typeof e==`string`)return{description:e};if(typeof e==`function`){let n=e(t);return typeof n==`string`?{description:n}:n}return e}var SQ=typeof navigator<`u`,CQ=OQ(),wQ=AQ(),TQ=kQ();typeof CSS>`u`||!CSS.supports||CSS.supports(`-webkit-backdrop-filter:none`),CQ.platform===`MacIntel`&&CQ.maxTouchPoints>1||/iP(hone|ad|od)|iOS/.test(CQ.platform),SQ&&/firefox/i.test(TQ);var EQ=SQ&&/apple/i.test(navigator.vendor);SQ&&/Edg/i.test(TQ),SQ&&/android/i.test(wQ)||/android/i.test(TQ),SQ&&wQ.toLowerCase().startsWith(`mac`)&&navigator.maxTouchPoints;var DQ=TQ.includes(`jsdom/`);function OQ(){if(!SQ)return{platform:``,maxTouchPoints:-1};let e=navigator.userAgentData;return e?.platform?{platform:e.platform,maxTouchPoints:navigator.maxTouchPoints}:{platform:navigator.platform??``,maxTouchPoints:navigator.maxTouchPoints??-1}}function kQ(){if(!SQ)return``;let e=navigator.userAgentData;return e&&Array.isArray(e.brands)?e.brands.map(({brand:e,version:t})=>`${e}/${t}`).join(` `):navigator.userAgent}function AQ(){if(!SQ)return``;let e=navigator.userAgentData;return e?.platform?e.platform:navigator.platform??``}function jQ(e){let t=e.activeElement;for(;t?.shadowRoot?.activeElement!=null;)t=t.shadowRoot.activeElement;return t}function MQ(e,t){if(!e||!t)return!1;let n=t.getRootNode?.();if(e.contains(t))return!0;if(n&&qY(n)){let n=t;for(;n;){if(e===n)return!0;n=n.parentNode||n.host}}return!1}function NQ(e){return`composedPath`in e?e.composedPath()[0]:e.target}function PQ(e){if(!e||DQ)return!0;try{return e.matches(`:focus-visible`)}catch{return!0}}var FQ=qZ(e=>e.toasts,e=>{let t=new Map,n=0,r=0;return e.forEach((e,i)=>{let a=e.transitionStatus===`ending`;t.set(e.id,{value:e,domIndex:i,visibleIndex:a?-1:n,offsetY:r}),r+=e.height||0,a||(n+=1)}),t}),IQ={toasts:KZ(e=>e.toasts),isEmpty:KZ(e=>e.toasts.length===0),toast:KZ(FQ,(e,t)=>e.get(t)?.value),toastIndex:KZ(FQ,(e,t)=>e.get(t)?.domIndex??-1),toastOffsetY:KZ(FQ,(e,t)=>e.get(t)?.offsetY??0),toastVisibleIndex:KZ(FQ,(e,t)=>e.get(t)?.visibleIndex??-1),hovering:KZ(e=>e.hovering),focused:KZ(e=>e.focused),expanded:KZ(e=>e.hovering||e.focused),expandedOrOutOfFocus:KZ(e=>e.hovering||e.focused||!e.isWindowFocused),prevFocusElement:KZ(e=>e.prevFocusElement)},LQ=class extends uQ{timers=new Map;areTimersPaused=!1;constructor(e){super(e,{},IQ)}setFocused(e){this.set(`focused`,e)}setHovering(e){this.set(`hovering`,e)}setIsWindowFocused(e){this.set(`isWindowFocused`,e)}setPrevFocusElement(e){this.set(`prevFocusElement`,e)}setViewport=e=>{this.set(`viewport`,e)};disposeEffect=()=>()=>{this.timers.forEach(e=>{e.timeout?.clear()}),this.timers.clear()};removeToast(e){let t=IQ.toastIndex(this.state,e);if(t===-1)return;this.state.toasts[t]?.onRemove?.();let n=[...this.state.toasts];n.splice(t,1),this.setToasts(n)}addToast=e=>{let{toasts:t,timeout:n,limit:r}=this.state,i=e.id||yQ(`toast`),a={...e,id:i,transitionStatus:`starting`},o=[a,...t],s=o.filter(e=>e.transitionStatus!==`ending`);if(s.length>r){let e=s.length-r,t=s.slice(-e),n=new Set(t.map(e=>e.id));this.setToasts(o.map(e=>{let t=n.has(e.id);return e.limited===t?e:{...e,limited:t}}))}else this.setToasts(o.map(e=>e.limited?{...e,limited:!1}:e));let c=a.timeout??n;return a.type!==`loading`&&c>0&&this.scheduleTimer(i,c,()=>this.closeToast(i)),IQ.expandedOrOutOfFocus(this.state)&&this.pauseTimers(),i};updateToast=(e,t)=>{this.updateToastInternal(e,t)};updateToastInternal=(e,t)=>{let{timeout:n,toasts:r}=this.state,i=IQ.toast(this.state,e)??null;if(!i||i.transitionStatus===`ending`)return;let a={...i,...t};this.setToasts(r.map(n=>n.id===e?{...n,...t}:n));let o=a.timeout??n,s=i?.timeout??n,c=Object.hasOwn(t,`timeout`),l=a.transitionStatus!==`ending`&&a.type!==`loading`&&o>0,u=this.timers.has(e),d=s!==o,f=i?.type===`loading`;if(!l&&u){this.timers.get(e)?.timeout?.clear(),this.timers.delete(e);return}if(l&&(!u||d||c||f)){let t=this.timers.get(e);t&&(t.timeout?.clear(),this.timers.delete(e)),this.scheduleTimer(e,o,()=>this.closeToast(e)),IQ.expandedOrOutOfFocus(this.state)&&this.pauseTimers()}};closeToast=e=>{IQ.toast(this.state,e)?.onClose?.();let{limit:t,toasts:n}=this.state,r=0,i=n.map(n=>{if(n.id===e)return{...n,transitionStatus:`ending`,height:0};if(n.transitionStatus===`ending`)return n;let i=r>=t;return r+=1,n.limited===i?n:{...n,limited:i}}),a=this.timers.get(e);a&&a.timeout&&(a.timeout.clear(),this.timers.delete(e)),this.handleFocusManagement(e),this.setToasts(i)};promiseToast=(e,t)=>{let n=xQ(t.loading),r=this.addToast({...n,type:`loading`}),i=e.then(e=>{let n=xQ(t.success,e);return this.updateToast(r,{...n,type:`success`,timeout:n.timeout}),e}).catch(e=>{let n=xQ(t.error,e);return this.updateToast(r,{...n,type:`error`,timeout:n.timeout}),Promise.reject(e)});return{}.hasOwnProperty.call(t,`setPromise`)&&t.setPromise(i),i};pauseTimers(){this.areTimersPaused||(this.areTimersPaused=!0,this.timers.forEach(e=>{if(e.timeout){e.timeout.clear();let t=Date.now()-e.start,n=e.delay-t;e.remaining=n>0?n:0}}))}resumeTimers(){this.areTimersPaused&&(this.areTimersPaused=!1,this.timers.forEach((e,t)=>{e.remaining=e.remaining>0?e.remaining:e.delay,e.timeout??=gQ.create(),e.timeout.start(e.remaining,()=>{this.timers.delete(t),e.callback()}),e.start=Date.now()}))}restoreFocusToPrevElement(){this.state.prevFocusElement?.focus({preventScroll:!0})}handleDocumentPointerDown=e=>{if(e.pointerType!==`touch`)return;let t=NQ(e);MQ(this.state.viewport,t)||(this.resumeTimers(),this.update({hovering:!1,focused:!1}))};scheduleTimer(e,t,n){let r=Date.now(),i=!IQ.expandedOrOutOfFocus(this.state),a=i?gQ.create():void 0;a?.start(t,()=>{this.timers.delete(e),n()}),this.timers.set(e,{timeout:a,start:i?r:0,delay:t,remaining:t,callback:n})}setToasts(e){let t={toasts:e};e.length===0&&(t.hovering=!1,t.focused=!1),this.update(t)}handleFocusManagement(e){let t=jQ(bQ(this.state.viewport));if(!this.state.viewport||!MQ(this.state.viewport,t)||!PQ(t))return;let n=IQ.toasts(this.state),r=IQ.toastIndex(this.state,e),i=null,a=r+1;for(;a<n.length;){if(n[a].transitionStatus!==`ending`){i=n[a];break}a+=1}if(!i)for(a=r-1;a>=0;){if(n[a].transitionStatus!==`ending`){i=n[a];break}--a}i?i.ref?.current?.focus():this.restoreFocusToPrevElement()}},RQ=function(e){let{children:t,timeout:n=5e3,limit:r=3,toastManager:i}=e,a=JJ(()=>new LQ({timeout:n,limit:r,viewport:null,toasts:[],hovering:!1,focused:!1,isWindowFocused:!0,prevFocusElement:null})).current;return xZ(a.disposeEffect),y.useEffect(function(){if(i)return i[` subscribe`](({action:e,options:t})=>{let n=t.id;e===`promise`&&t.promise?a.promiseToast(t.promise,t):e===`update`&&n?a.updateToast(n,t):e===`close`&&n?a.closeToast(n):a.addToast(t)})},[a,n,i]),a.useSyncedValues({timeout:n,limit:r}),(0,k.jsx)(SZ.Provider,{value:a,children:t})},zQ=y.forwardRef(function(e,t){let[n,r]=y.useState();oY(()=>{EQ&&r(`button`)},[]);let i={tabIndex:0,role:n};return(0,k.jsx)(`span`,{...e,ref:t,style:cY,"aria-hidden":n?void 0:!0,...i,"data-base-ui-focus-guard":``})}),BQ=function(e){return e.frontmostHeight=`--toast-frontmost-height`,e}({}),VQ=y.forwardRef(function(e,t){let{render:n,className:r,children:i,...a}=e,o=CZ(),s=_Q(),c=y.useRef(!1),l=y.useRef(!1),u=o.useState(`isEmpty`),d=o.useState(`toasts`),f=o.useState(`focused`),p=o.useState(`expanded`),m=o.useState(`prevFocusElement`),h=d[0]?.height??0,g=y.useMemo(()=>d.some(e=>e.transitionStatus===`ending`),[d]);y.useEffect(()=>{let e=o.state.viewport;if(!e)return;function t(t){u||t.key===`F6`&&t.target!==e&&(t.preventDefault(),o.setPrevFocusElement(jQ(bQ(e))),e?.focus({preventScroll:!0}),o.pauseTimers(),o.setFocused(!0))}let n=WY(e);return n.addEventListener(`keydown`,t),()=>{n.removeEventListener(`keydown`,t)}},[o,u]),y.useEffect(()=>{let e=o.state.viewport;if(!e||u)return;let t=WY(e);function n(e){e.target===t&&(o.setIsWindowFocused(!1),o.pauseTimers())}function r(n){if(n.relatedTarget||n.target===t)return;let r=NQ(n),i=jQ(bQ(e));(!MQ(e,r)||!PQ(i))&&o.resumeTimers(),s.start(0,()=>o.setIsWindowFocused(!0))}return t.addEventListener(`blur`,n,!0),t.addEventListener(`focus`,r,!0),()=>{t.removeEventListener(`blur`,n,!0),t.removeEventListener(`focus`,r,!0)}},[o,s,u]),y.useEffect(()=>{let e=o.state.viewport;if(!e||u)return;let t=bQ(e);return t.addEventListener(`pointerdown`,o.handleDocumentPointerDown,!0),()=>{t.removeEventListener(`pointerdown`,o.handleDocumentPointerDown,!0)}},[u,o]);function _(e){let t=o.state.viewport;t&&(c.current=!0,e.relatedTarget===t?d[0]?.ref?.current?.focus():o.restoreFocusToPrevElement())}function v(e){e.key===`Tab`&&e.shiftKey&&e.target===o.state.viewport&&(e.preventDefault(),o.restoreFocusToPrevElement(),o.resumeTimers())}y.useEffect(()=>{!o.state.isWindowFocused||g||!l.current||(o.resumeTimers(),o.setHovering(!1),l.current=!1)},[g,o]);function b(){o.pauseTimers(),o.setHovering(!0),l.current=!1}function x(){g?l.current=!0:(o.resumeTimers(),o.setHovering(!1))}function S(){if(c.current){c.current=!1;return}f||PQ(bQ(o.state.viewport).activeElement)&&(o.setFocused(!0),o.pauseTimers())}function C(e){!f||MQ(o.state.viewport,e.relatedTarget)||(o.setFocused(!1),o.resumeTimers())}let w={tabIndex:-1,role:`region`,"aria-live":`polite`,"aria-atomic":!1,"aria-relevant":`additions text`,"aria-label":`Notifications`,onMouseEnter:b,onMouseMove:b,onMouseLeave:x,onFocus:S,onBlur:C,onKeyDown:v,onClick:S},T={expanded:p},E=MY(`div`,e,{ref:[t,o.setViewport],state:T,props:[w,{style:{[BQ.frontmostHeight]:h?`${h}px`:void 0}},a,{children:(0,k.jsxs)(y.Fragment,{children:[!u&&m&&(0,k.jsx)(zQ,{onFocus:_}),i,!u&&m&&(0,k.jsx)(zQ,{onFocus:_})]})}]}),D=y.useMemo(()=>d.filter(e=>e.priority===`high`),[d]);return(0,k.jsxs)(y.Fragment,{children:[!u&&m&&(0,k.jsx)(zQ,{onFocus:_}),E,!f&&D.length>0&&(0,k.jsx)(`div`,{style:cY,children:D.map(e=>(0,k.jsxs)(`div`,{role:`alert`,"aria-atomic":!0,children:[(0,k.jsx)(`div`,{children:e.title}),(0,k.jsx)(`div`,{children:e.description})]},e.id))})]})});function HQ(e){return mY(19)?e:e?`true`:void 0}var UQ=y.createContext(void 0);function WQ(){let e=y.useContext(UQ);if(!e)throw Error(fY(66));return e}var GQ=function(e){return e.startingStyle=`data-starting-style`,e.endingStyle=`data-ending-style`,e}({}),KQ={[GQ.startingStyle]:``},qQ={[GQ.endingStyle]:``},JQ={transitionStatus(e){return e===`starting`?KQ:e===`ending`?qQ:null}};function YQ(e){return e==null?e:`current`in e?e.current:e}function XQ(e,t=!1,n=!0){let r=mQ();return ZJ((i,a=null)=>{r.cancel();function o(){cf.flushSync(i)}let s=YQ(e);if(s==null)return;let c=s;if(typeof c.getAnimations!=`function`||globalThis.BASE_UI_ANIMATIONS_DISABLED)i();else{function e(){let e=GQ.startingStyle;if(!c.hasAttribute(e)){r.request(i);return}let t=new MutationObserver(()=>{c.hasAttribute(e)||(t.disconnect(),i())});t.observe(c,{attributes:!0,attributeFilter:[e]}),a?.addEventListener(`abort`,()=>t.disconnect(),{once:!0})}function i(){Promise.all(c.getAnimations().map(e=>e.finished)).then(()=>{a?.aborted||o()}).catch(()=>{let e=c.getAnimations();if(n){if(a?.aborted)return;o()}else e.length>0&&e.some(e=>e.pending||e.playState!==`finished`)&&i()})}if(t){e();return}r.request(i)}})}function ZQ(e){let{enabled:t=!0,open:n,ref:r,onComplete:i}=e,a=ZJ(i),o=XQ(r,n,!1);y.useEffect(()=>{if(!t)return;let e=new AbortController;return o(a,e.signal),()=>{e.abort()}},[t,n,a,o])}var QQ=function(e){return e.index=`--toast-index`,e.offsetY=`--toast-offset-y`,e.height=`--toast-height`,e.swipeMovementX=`--toast-swipe-movement-x`,e.swipeMovementY=`--toast-swipe-movement-y`,e}({}),$Q={...JQ,swipeDirection(e){return e?{"data-swipe-direction":e}:null}},e$=40,t$=10,n$=.5,r$=1;function i$(e,t,n){switch(e){case`up`:return-n;case`down`:return n;case`left`:return-t;case`right`:return t;default:return 0}}function a$(e){let t=window.getComputedStyle(e).transform,n=0,r=0,i=1;if(t&&t!==`none`){let e=t.match(/matrix(?:3d)?\(([^)]+)\)/);if(e){let t=e[1].split(`, `).map(parseFloat);t.length===6?(n=t[4],r=t[5],i=Math.sqrt(t[0]*t[0]+t[1]*t[1])):t.length===16&&(n=t[12],r=t[13],i=t[0])}}return{x:n,y:r,scale:i}}var o$=y.forwardRef(function(e,t){let{toast:n,render:r,className:i,swipeDirection:a=[`down`,`right`],...o}=e,s=n.positionerProps?.anchor!==void 0,c=[];s||(c=Array.isArray(a)?a:[a]);let l=c.length>0,u=CZ(),[d,f]=y.useState(void 0),[p,m]=y.useState(!1),[h,g]=y.useState(!1),[_,v]=y.useState(!1),[b,x]=y.useState({x:0,y:0}),[S,C]=y.useState({x:0,y:0,scale:1}),[w,T]=y.useState(),[E,D]=y.useState(),[O,A]=y.useState(null),j=y.useRef(null),M=y.useRef({x:0,y:0}),N=y.useRef({x:0,y:0,scale:1}),P=y.useRef(void 0),F=y.useRef(0),ee=y.useRef(!1),I=y.useRef({x:0,y:0}),L=y.useRef(!1),R=u.useState(`toastIndex`,n.id),z=u.useState(`toastVisibleIndex`,n.id),B=u.useState(`toastOffsetY`,n.id),te=u.useState(`focused`),V=u.useState(`expanded`);ZQ({open:n.transitionStatus!==`ending`,ref:j,onComplete(){n.transitionStatus===`ending`&&u.removeToast(n.id)}});let ne=ZJ((e=!1)=>{let t=j.current;if(!t)return;let r=t.style.height;t.style.height=`auto`;let i=t.offsetHeight;t.style.height=r;function a(){u.updateToastInternal(n.id,{ref:j,height:i,...n.transitionStatus===`starting`?{transitionStatus:void 0}:{}})}e?cf.flushSync(a):a()});oY(ne,[ne]);function H(e,t){let n=e,r=t;return!c.includes(`left`)&&!c.includes(`right`)?n=e>0?e**n$:-(Math.abs(e)**n$):(!c.includes(`right`)&&e>0&&(n=e**n$),!c.includes(`left`)&&e<0&&(n=-(Math.abs(e)**n$))),!c.includes(`up`)&&!c.includes(`down`)?r=t>0?t**n$:-(Math.abs(t)**n$):(!c.includes(`down`)&&t>0&&(r=t**n$),!c.includes(`up`)&&t<0&&(r=-(Math.abs(t)**n$))),{x:n,y:r}}function re(e){if(e.button!==0)return;e.pointerType===`touch`&&u.pauseTimers();let t=NQ(e.nativeEvent);if(!(t&&t.closest(`button,a,input,textarea,[role="button"],[data-swipe-ignore]`))){if(ee.current=!1,P.current=void 0,F.current=0,M.current={x:e.clientX,y:e.clientY},I.current=M.current,j.current){let e=a$(j.current);N.current=e,C(e),x({x:e.x,y:e.y})}u.setHovering(!0),m(!0),g(!1),A(null),L.current=!0,j.current?.setPointerCapture(e.pointerId)}}function ie(e){if(!p)return;e.preventDefault(),L.current&&=(M.current={x:e.clientX,y:e.clientY},!1);let{clientY:t,clientX:n,movementX:r,movementY:i}=e;(i<0&&t>I.current.y||i>0&&t<I.current.y)&&(I.current={x:I.current.x,y:t}),(r<0&&n>I.current.x||r>0&&n<I.current.x)&&(I.current={x:n,y:I.current.y});let a=n-M.current.x,o=t-M.current.y,s=t-I.current.y,l=n-I.current.x;if(!h&&Math.sqrt(a*a+o*o)>=r$&&(g(!0),O===null)){let e=c.includes(`left`)||c.includes(`right`),t=c.includes(`up`)||c.includes(`down`);e&&t&&A(Math.abs(a)>Math.abs(o)?`horizontal`:`vertical`)}let u;if(!P.current)O===`vertical`?o>0?u=`down`:o<0&&(u=`up`):O===`horizontal`?a>0?u=`right`:a<0&&(u=`left`):u=Math.abs(a)>=Math.abs(o)?a>0?`right`:`left`:o>0?`down`:`up`,u&&c.includes(u)&&(P.current=u,F.current=i$(u,a,o),f(u));else{let e=P.current,t=i$(e,l,s);t>e$?(ee.current=!1,f(e)):!(c.includes(`left`)&&c.includes(`right`))&&!(c.includes(`up`)&&c.includes(`down`))&&F.current-t>=t$&&(ee.current=!0)}let d=H(a,o),m=N.current.x,_=N.current.y;O===`horizontal`?(c.includes(`left`)||c.includes(`right`))&&(m+=d.x):(O===`vertical`||(c.includes(`left`)||c.includes(`right`))&&(m+=d.x),(c.includes(`up`)||c.includes(`down`))&&(_+=d.y)),x({x:m,y:_})}function ae(e){if(!p)return;if(m(!1),g(!1),A(null),j.current?.releasePointerCapture(e.pointerId),ee.current){x({x:S.x,y:S.y}),f(void 0);return}let t=!1,r=b.x-S.x,i=b.y-S.y,a;for(let e of c){switch(e){case`right`:r>e$&&(t=!0,a=`right`);break;case`left`:r<-e$&&(t=!0,a=`left`);break;case`down`:i>e$&&(t=!0,a=`down`);break;case`up`:i<-e$&&(t=!0,a=`up`);break;default:break}if(t)break}t?(f(a),v(!0),u.closeToast(n.id)):(x({x:S.x,y:S.y}),f(void 0))}function oe(e){if(e.key===`Escape`){if(!j.current||!MQ(j.current,jQ(bQ(j.current))))return;u.closeToast(n.id)}}y.useEffect(()=>{if(!l)return;let e=j.current;if(!e)return;function t(t){MQ(e,t.target)&&t.preventDefault()}return e.addEventListener(`touchmove`,t,{passive:!1}),()=>{e.removeEventListener(`touchmove`,t)}},[l]);function se(){if(!p&&b.x===S.x&&b.y===S.y&&!_)return{[QQ.swipeMovementX]:`0px`,[QQ.swipeMovementY]:`0px`};let e=b.x-S.x,t=b.y-S.y;return{transition:p?`none`:void 0,transform:p?`translateX(${b.x}px) translateY(${b.y}px) scale(${S.scale})`:void 0,[QQ.swipeMovementX]:`${e}px`,[QQ.swipeMovementY]:`${t}px`}}let ce=n.priority===`high`,le={role:ce?`alertdialog`:`dialog`,tabIndex:0,"aria-modal":!1,"aria-labelledby":w,"aria-describedby":E,"aria-hidden":ce&&!te?!0:void 0,onPointerDown:l?re:void 0,onPointerMove:l?ie:void 0,onPointerUp:l?ae:void 0,onKeyDown:oe,inert:HQ(n.limited),style:{...se(),[QQ.index]:n.transitionStatus===`ending`?R:z,[QQ.offsetY]:`${B}px`,[QQ.height]:n.height?`${n.height}px`:void 0}},ue=y.useMemo(()=>({rootRef:j,toast:n,titleId:w,setTitleId:T,descriptionId:E,setDescriptionId:D,swiping:p,swipeDirection:d,recalculateHeight:ne,index:R,visibleIndex:z,expanded:V}),[n,w,E,p,d,ne,R,z,V]),de={transitionStatus:n.transitionStatus,expanded:V,limited:n.limited||!1,type:n.type,swiping:ue.swiping,swipeDirection:ue.swipeDirection},fe=MY(`div`,e,{ref:[t,ue.rootRef],state:de,stateAttributesMapping:$Q,props:[le,o]});return(0,k.jsx)(UQ.Provider,{value:ue,children:fe})}),s$=y.forwardRef(function(e,t){let{render:n,className:r,id:i,children:a,...o}=e,{toast:s,setDescriptionId:c}=WQ(),l=a??s.description,u=!!l,d=VY(i);oY(()=>{if(u)return c(d),()=>{c(void 0)}},[u,d,c]);let f=MY(`p`,e,{ref:t,state:{type:s.type},props:{...o,id:d,children:l}});return u?f:null}),c$=y.forwardRef(function(e,t){let{render:n,className:r,id:i,children:a,...o}=e,{toast:s,setTitleId:c}=WQ(),l=a??s.title,u=!!l,d=VY(i);oY(()=>{if(u)return c(d),()=>{c(void 0)}},[u,d,c]);let f=MY(`h2`,e,{ref:t,state:{type:s.type},props:{...o,id:d,children:l}});return u?f:null}),l$=y.forwardRef(function(e,t){let{render:n,className:r,disabled:i,nativeButton:a=!0,...o}=e,s=CZ(),{toast:c}=WQ(),l=s.useState(`expanded`),[u,d]=y.useState(!1),{getButtonProps:f,buttonRef:p}=ZY({disabled:i,native:a}),m={type:c.type};return MY(`button`,e,{ref:[t,p],state:m,props:[{"aria-hidden":!l&&!u,onClick(){s.closeToast(c.id)},onFocus(){d(!0)},onBlur(){d(!1)}},o,f]})});function u$(){let e=y.useContext(SZ);if(!e)throw Error(fY(73));let t=e.useState(`toasts`);return y.useMemo(()=>({toasts:t,add:e.addToast,close:e.closeToast,update:e.updateToast,promise:e.promiseToast}),[t,e])}function d$(){let e=new Set;function t(t){e.forEach(e=>e(t))}return{" subscribe":function(t){return e.add(t),()=>{e.delete(t)}},add(e){let n=e.id||yQ(`toast`);return t({action:`add`,options:{...e,id:n,transitionStatus:`starting`}}),n},close(e){t({action:`close`,options:{id:e}})},update(e,n){t({action:`update`,options:{...n,id:e}})},promise(e,n){let r=e;return t({action:`promise`,options:{...n,promise:e,setPromise(e){r=e}}}),r}}}var f$=5e3,p$=d$();function m$({toast:e}){return(0,k.jsxs)(o$,{toast:e,className:A_(`relative flex w-80 items-start gap-3 border bg-elevated p-4 shadow-lg`,`data-[swipe=move]:translate-x-[var(--toast-swipe-move-x)]`,`data-[ending-style]:translate-x-[var(--toast-swipe-end-x)]`,`data-[ending-style]:opacity-0`,`data-[starting-style]:translate-y-2 data-[starting-style]:opacity-0`,`transition-all duration-200`,e.type===`error`&&`border-danger/50`,e.type===`success`&&`border-approval/50`,(!e.type||e.type===`info`)&&`border-border`),children:[(0,k.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,k.jsx)(c$,{className:A_(`text-sm font-medium`,e.type===`error`&&`text-danger`,e.type===`success`&&`text-approval`,(!e.type||e.type===`info`)&&`text-primary`),children:e.title}),e.description&&(0,k.jsx)(s$,{className:`mt-1 text-xs text-muted line-clamp-2`,children:e.description})]}),(0,k.jsx)(l$,{className:`shrink-0 text-muted hover:text-primary transition-colors`,"aria-label":`Close`,children:(0,k.jsx)(it,{width:W.default,height:W.default})})]})}function h$(){let{toasts:e}=u$();return(0,k.jsx)(k.Fragment,{children:e.map(e=>(0,k.jsx)(m$,{toast:e},e.id))})}function g$(){return(0,k.jsxs)(RQ,{timeout:f$,toastManager:p$,children:[(0,k.jsx)(h$,{}),(0,k.jsx)(VQ,{className:`fixed bottom-4 right-4 z-[100] flex flex-col gap-2`})]})}var _$=[`CONNECTING`,`OPEN`,`CLOSING`,`CLOSED`],v$=3e3,y$=8e3,b$=15e3,x$=5e3,S$=2e4,C$=1e4,w$=1500,T$=5e3,E$=750,D$=4,O$=5e3,k$=new class{constructor(){this.ws=null,this.listeners=new Set,this.statusListeners=new Set,this.status=`connecting`,this.error=null,this.reconnectAttempts=0,this.reconnectTimer=null,this.connectTimer=null,this.manualClose=!1,this.lastTick=Date.now(),this.wakeCheckInterval=null,this.lifecycleStarted=!1,this.heartbeatTimer=null,this.pongTimer=null,this.lastForceReconnectTs=0,this.lastConnectTs=0,this.pingSeq=0,this.connectionEpoch=0,this.consecutiveFailures=0,this.stallCount=0,this.isResumeAttempt=!1,this.leakedSockets=new Set,this.verifyTimer=null,this.onVisibilityChange=()=>{if(X(`ws_visibility`,{state:document.visibilityState,...this.wsSnap()},`info`),document.visibilityState===`visible`){let e=Date.now(),t=e-this.lastTick;this.lastTick=e,X(`ws_resume`,{gapMs:t,...this.wsSnap()},`info`),this.ws?.readyState===WebSocket.OPEN?this.verifyConnection():this.forceReconnect(`visibilitychange`,!0)}else this.stopHeartbeat(),this.cancelVerify(),this.reconnectTimer&&=(window.clearTimeout(this.reconnectTimer),null)},this.onPageShow=e=>{X(`ws_pageshow`,{persisted:e.persisted,...this.wsSnap()},`info`),e.persisted&&(this.lastTick=Date.now(),this.forceReconnect(`pageshow`,!0))}}wsSnap(){return{status:this.status,ws:this.ws?_$[this.ws.readyState]:null,attempt:this.reconnectAttempts,failures:this.consecutiveFailures,stalls:this.stallCount,leaked:this.leakedSockets.size,online:typeof navigator<`u`?navigator.onLine:void 0,verifying:this.verifyTimer!==null,buffered:this.ws?this.ws.bufferedAmount:void 0}}connect(){if(this.ws){let e=this.ws.readyState===WebSocket.OPEN;if(e&&this.status===`connected`){X(`ws_connect_skip`,{reason:`already_open`,...this.wsSnap()});return}let t=Date.now();if(this.ws.readyState===WebSocket.CONNECTING&&t-this.lastConnectTs<200){X(`ws_connect_skip`,{reason:`already_connecting`,...this.wsSnap()});return}X(`ws_connect_destroy_zombie`,{reason:e?`open_desynced`:`not_open`,...this.wsSnap()}),this.destroySocket()}this.manualClose=!1,this.clearConnectTimer(),this.setStatus(`connecting`);let e=`${window.location.protocol===`https:`?`wss`:`ws`}://${window.location.host}/ws`;X(`ws_connect`,{url:e,resume:this.isResumeAttempt,...this.wsSnap()},`info`);let t=new WebSocket(e);this.ws=t,this.lastConnectTs=Date.now(),this.leakedSockets.add(t);let n=this.isResumeAttempt?y$:v$;this.isResumeAttempt=!1,this.connectTimer=window.setTimeout(()=>{this.ws===t&&(this.connectTimer=null,t.readyState===WebSocket.OPEN&&this.status===`connected`||(X(`ws_connect_timeout`,{wsState:_$[t.readyState],managerStatus:this.status,timeoutMs:n,...this.wsSnap()},`info`),this.consecutiveFailures+=1,this.destroySocket(),this.scheduleReconnect()))},n),t.onopen=()=>{if(this.ws!==t){X(`ws_onopen_stale`,this.wsSnap(),`info`);return}X(`ws_onopen`,this.wsSnap(),`info`),this.clearConnectTimer(),this.reconnectAttempts=0,this.consecutiveFailures=0,this.stallCount=0,this.connectionEpoch+=1,this.leakedSockets.delete(t),this.setStatus(`connected`),this.startHeartbeat()},t.onmessage=e=>{try{let t=e.data,n=performance.now(),r=JSON.parse(t),i=performance.now()-n,a=r;if(a._parseMs=Math.round(i),a._rawLength=t.length,r.type===`pong`){r.seq===this.pingSeq&&(this.clearPongTimer(),this.verifyTimer!==null&&(this.cancelVerify(),X(`ws_verify_ok`,this.wsSnap(),`info`),this.startHeartbeat(T$)));return}this.listeners.forEach(e=>e(r))}catch{}},t.onerror=()=>{this.ws===t&&(X(`ws_onerror`,this.wsSnap(),`info`),this.clearConnectTimer())},t.onclose=e=>{if(this.ws!==t){X(`ws_onclose_stale`,{code:e.code,...this.wsSnap()},`info`);return}X(`ws_onclose`,{code:e.code,reason:e.reason,clean:e.wasClean,...this.wsSnap()},`info`),this.clearConnectTimer(),this.cancelVerify(),this.consecutiveFailures+=1,this.ws=null,this.manualClose?this.setStatus(`disconnected`):this.scheduleReconnect()}}disconnect(){this.manualClose=!0,this.clearConnectTimer(),this.cancelVerify(),this.reconnectTimer&&=(window.clearTimeout(this.reconnectTimer),null),this.destroySocket(),this.setStatus(`disconnected`)}startLifecycleListeners(){this.lifecycleStarted||typeof document>`u`||typeof window>`u`||(this.lifecycleStarted=!0,document.addEventListener(`visibilitychange`,this.onVisibilityChange),window.addEventListener(`pageshow`,this.onPageShow),this.lastTick=Date.now(),this.wakeCheckInterval=window.setInterval(()=>{let e=Date.now(),t=e-this.lastTick;this.isHidden()||(t>b$&&(X(`ws_time_jump`,{gapMs:t,...this.wsSnap()},`info`),this.forceReconnect(`time_jump`,!0)),this.lastTick=e)},x$))}stopLifecycleListeners(){this.lifecycleStarted&&(this.lifecycleStarted=!1,document.removeEventListener(`visibilitychange`,this.onVisibilityChange),window.removeEventListener(`pageshow`,this.onPageShow),this.wakeCheckInterval!==null&&(window.clearInterval(this.wakeCheckInterval),this.wakeCheckInterval=null))}send(e){if(this.ws?.readyState!==WebSocket.OPEN)return!1;try{return this.ws.send(JSON.stringify(e)),!0}catch(t){return X(`ws_send_error`,{messageType:e.type,error:t instanceof Error?t.message:String(t),...this.wsSnap()},`info`),this.destroySocket(),this.scheduleReconnect(),!1}}subscribe(e){return this.listeners.add(e),()=>this.listeners.delete(e)}subscribeStatus(e){return this.statusListeners.add(e),e(this.status,this.error,this.connectionEpoch),()=>this.statusListeners.delete(e)}getStatus(){return this.status}getConnectionEpoch(){return this.connectionEpoch}verifyConnection(){this.cancelVerify(),this.stopHeartbeat(),this.pingSeq+=1;let e=this.pingSeq,t=this.ws;if(X(`ws_verify`,{seq:e,...this.wsSnap()},`info`),!this.send({type:`ping`,seq:e})){X(`ws_verify_send_fail`,this.wsSnap(),`info`),this.forceReconnect(`verify_send_fail`,!0);return}this.verifyTimer=window.setTimeout(()=>{this.verifyTimer=null,this.ws===t&&(X(`ws_verify_timeout`,this.wsSnap(),`info`),this.forceReconnect(`verify_timeout`,!0))},w$)}cancelVerify(){this.verifyTimer!==null&&(window.clearTimeout(this.verifyTimer),this.verifyTimer=null)}forceReconnect(e=`unknown`,t=!1){if(this.manualClose){X(`ws_force_skip`,{trigger:e,reason:`manual_close`});return}let n=Date.now(),r=t?200:500;if(n-this.lastForceReconnectTs<r){X(`ws_force_skip`,{trigger:e,reason:`debounce`,force:t});return}if(!t&&this.ws?.readyState===WebSocket.OPEN&&this.status===`connected`){X(`ws_force_skip`,{trigger:e,reason:`already_connected`});return}this.lastForceReconnectTs=n,X(`ws_force_reconnect`,{trigger:e,force:t,...this.wsSnap()},`info`),this.reconnectAttempts=0,this.consecutiveFailures=0,this.stallCount=0,this.reconnectTimer&&=(window.clearTimeout(this.reconnectTimer),null),this.destroySocket(),t?(this.purgeLeakedSockets(),this.isResumeAttempt=!0,this.setStatus(`reconnecting`),this.reconnectTimer=window.setTimeout(()=>{this.reconnectTimer=null,this.connect()},E$)):this.connect()}startHeartbeat(e){this.stopHeartbeat();let t=()=>{this.ws?.readyState===WebSocket.OPEN&&(this.pingSeq+=1,this.send({type:`ping`,seq:this.pingSeq})&&(this.clearPongTimer(),this.pongTimer=window.setTimeout(()=>{this.pongTimer=null,X(`ws_pong_timeout`,this.wsSnap(),`info`),this.destroySocket(),this.scheduleReconnect()},C$)))};e!==void 0&&e<S$?this.heartbeatTimer=window.setTimeout(()=>{t(),this.heartbeatTimer=window.setInterval(t,S$)},e):this.heartbeatTimer=window.setInterval(t,S$)}stopHeartbeat(){this.heartbeatTimer!==null&&(window.clearTimeout(this.heartbeatTimer),this.heartbeatTimer=null),this.clearPongTimer()}clearPongTimer(){this.pongTimer!==null&&(window.clearTimeout(this.pongTimer),this.pongTimer=null)}setStatus(e,t=null){this.status=e,this.error=t,this.statusListeners.forEach(n=>n(e,t,this.connectionEpoch))}scheduleReconnect(){if(this.stopHeartbeat(),this.isHidden()){X(`ws_schedule_skip`,{reason:`hidden`,...this.wsSnap()}),this.setStatus(`reconnecting`);return}if(this.consecutiveFailures>=D$){X(`ws_stall_detected`,this.wsSnap(),`info`),this.purgeLeakedSockets();let e=Math.min(O$*2**this.stallCount,3e4);this.stallCount+=1,this.consecutiveFailures=0,this.reconnectAttempts=0,this.isResumeAttempt=!0,this.setStatus(`reconnecting`),this.reconnectTimer=window.setTimeout(()=>{this.reconnectTimer=null,this.connect()},e);return}this.reconnectAttempts+=1;let e=Math.min(1e3*2**(this.reconnectAttempts-1),3e4);X(`ws_schedule_reconnect`,{delay:e,...this.wsSnap()}),this.setStatus(`reconnecting`),this.reconnectTimer&&window.clearTimeout(this.reconnectTimer),this.reconnectTimer=window.setTimeout(()=>{this.reconnectTimer=null,this.connect()},e)}isHidden(){return typeof document<`u`&&document.visibilityState===`hidden`}clearConnectTimer(){this.connectTimer&&=(window.clearTimeout(this.connectTimer),null)}destroySocket(){if(this.clearConnectTimer(),this.stopHeartbeat(),this.cancelVerify(),!this.ws)return;let e=this.ws;this.ws=null,this.leakedSockets.add(e),e.onopen=null,e.onmessage=null,e.onerror=null,e.onclose=null;try{e.close()}catch{}}purgeLeakedSockets(){if(this.leakedSockets.size!==0){X(`ws_purge_leaked`,{count:this.leakedSockets.size},`info`);for(let e of this.leakedSockets)try{e.onopen=null,e.onmessage=null,e.onerror=null,e.onclose=null,e.close()}catch{}this.leakedSockets.clear()}}};function A$(){let e=Hh(e=>e.setConnectionState);return(0,y.useEffect)(()=>{k$.connect(),k$.startLifecycleListeners();let t=k$.subscribeStatus((t,n,r)=>{e(t,n,r)});return()=>{t(),k$.stopLifecycleListeners()}},[e]),{sendMessage:(0,y.useMemo)(()=>e=>{k$.send(e)},[]),subscribe:(0,y.useMemo)(()=>k$.subscribe.bind(k$),[]),getConnectionEpoch:(0,y.useMemo)(()=>()=>k$.getConnectionEpoch(),[])}}var j$=100;function M$({viewport:e,win:t,doc:n}){if(!e)return!1;let r=Math.max(0,e.offsetTop||0),i=Math.max(0,e.offsetLeft||0),a=t.innerHeight-(e.height+r),o=Math.max(0,a),s=Math.max(0,e.height||0),c=Math.max(0,e.width||0);return n.documentElement.style.setProperty(`--keyboard-inset`,`${o}px`),n.documentElement.style.setProperty(`--viewport-offset-top`,`${r}px`),n.documentElement.style.setProperty(`--viewport-offset-left`,`${i}px`),n.documentElement.style.setProperty(`--visual-viewport-height`,`${s}px`),n.documentElement.style.setProperty(`--visual-viewport-width`,`${c}px`),o>j$?n.documentElement.classList.add(`keyboard-visible`):n.documentElement.classList.remove(`keyboard-visible`),!0}function N$(e){e.documentElement.style.removeProperty(`--keyboard-inset`),e.documentElement.style.removeProperty(`--viewport-offset-top`),e.documentElement.style.removeProperty(`--viewport-offset-left`),e.documentElement.style.removeProperty(`--visual-viewport-height`),e.documentElement.style.removeProperty(`--visual-viewport-width`),e.documentElement.classList.remove(`keyboard-visible`)}function P$(){(0,y.useEffect)(()=>{let e=window.visualViewport;if(!e)return;let t=null,n=null,r=()=>{let e=document.activeElement;if(!e)return!1;let t=e.tagName?.toLowerCase();return t===`input`||t===`textarea`?!0:!!e.isContentEditable},i=()=>{M$({viewport:e,win:window,doc:document})},a=()=>{if(typeof window.requestAnimationFrame!=`function`){i();return}t!==null&&window.cancelAnimationFrame(t);let e=performance.now(),n=()=>{i(),t=performance.now()-e<1500?window.requestAnimationFrame(n):null};t=window.requestAnimationFrame(n)},o=()=>{if(!r()){c();return}i()},s=()=>{n!==null||typeof window.setInterval!=`function`||(n=window.setInterval(o,250),o())},c=()=>{n===null||typeof window.clearInterval!=`function`||(window.clearInterval(n),n=null)},l=()=>{r()?(a(),s(),i()):c()},u=()=>{l()},d=()=>{l()},f=()=>{a()};return i(),l(),e.addEventListener(`resize`,i),e.addEventListener(`scroll`,i),typeof window.addEventListener==`function`&&(window.addEventListener(`resize`,i),window.addEventListener(`orientationchange`,f)),typeof document.addEventListener==`function`&&(document.addEventListener(`focusin`,u),document.addEventListener(`focusout`,d),document.addEventListener(`focus`,u,!0),document.addEventListener(`blur`,d,!0)),()=>{e.removeEventListener(`resize`,i),e.removeEventListener(`scroll`,i),typeof window.removeEventListener==`function`&&(window.removeEventListener(`resize`,i),window.removeEventListener(`orientationchange`,f)),typeof document.removeEventListener==`function`&&(document.removeEventListener(`focusin`,u),document.removeEventListener(`focusout`,d),document.removeEventListener(`focus`,u,!0),document.removeEventListener(`blur`,d,!0)),t!==null&&typeof window.cancelAnimationFrame==`function`&&window.cancelAnimationFrame(t),c(),N$(document)}},[])}var F$=[`theme`,`commandPresets`,`defaultPresetId`,`defaultProjectDir`,`lastProjectPath`,`recentPaths`,`sessionSortMode`,`sessionSortDirection`,`manualSessionOrder`,`sidebarAnchor`,`projectFilters`,`hostFilters`,`showProjectName`,`showLastUserMessage`,`showSessionIdPrefix`,`soundOnPermission`,`soundOnIdle`],I$=[`claude`,`claude-rp`,`codex`,`pi`,`devin`,`grok`,`omp`];function L$(e){return typeof e==`boolean`}function R$(e,t){return Array.isArray(e)&&e.length<=t&&e.every(e=>typeof e==`string`)}function z$(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.id==`string`&&t.id.length>=1&&t.id.length<=128&&typeof t.label==`string`&&t.label.trim().length>=1&&t.label.length<=64&&typeof t.command==`string`&&t.command.trim().length>=1&&t.command.length<=1024&&typeof t.isBuiltIn==`boolean`&&(t.agentType===void 0||I$.includes(t.agentType))}var B$={theme:e=>e===`dark`||e===`light`||e===`system`,commandPresets:e=>Array.isArray(e)&&e.length<=50&&e.every(z$),defaultPresetId:e=>typeof e==`string`&&e.length<=128,defaultProjectDir:e=>typeof e==`string`&&e.length<=4096,lastProjectPath:e=>e===null||typeof e==`string`&&e.length<=4096,recentPaths:e=>R$(e,50),sessionSortMode:e=>e===`status`||e===`created`||e===`manual`,sessionSortDirection:e=>e===`asc`||e===`desc`,manualSessionOrder:e=>R$(e,1e3),sidebarAnchor:e=>e===`top`||e===`bottom`,projectFilters:e=>R$(e,500),hostFilters:e=>R$(e,500),showProjectName:L$,showLastUserMessage:L$,showSessionIdPrefix:L$,soundOnPermission:L$,soundOnIdle:L$};function V$(e){return F$.includes(e)}function H$(e,t){return B$[e](t)}var U$=`agentboard-theme`,W$=`agentboard-settings`,G$=200,K$=new Map,q$=new Map,J$=new Set;function Y$(e){return q$.has(e)||J$.has(e)}var X$=null,Z$=!1;function Q$(e){return e===`theme`?cK.getState().theme:U.getState()[e]}function $$(e){let t=e===`theme`?U$:W$;return w.getItem(t)!==null}function e1(){if(X$=null,q$.size===0)return;let e={},t=new Map,n=new Map;for(let[r,i]of q$)e[r]=JSON.parse(i),t.set(r,i),n.set(r,K$.get(r)),K$.set(r,i),J$.add(r);q$.clear();let r=()=>{for(let[e,r]of t){if(K$.get(e)!==r)continue;let t=n.get(e);t===void 0?K$.delete(e):K$.set(e,t)}},i=e=>{for(let n of t.keys()){if(J$.delete(n),!e||q$.has(n))continue;let t=K$.get(n);t!==void 0&&t!==JSON.stringify(Q$(n))&&t1(n,JSON.parse(t))}},a=!1;try{fetch(`/api/settings/synced`,{method:`PUT`,headers:{"content-type":`application/json`},body:JSON.stringify({settings:e})}).then(e=>{a=e.ok,e.ok||(X(`synced_settings_push_rejected`,{status:e.status},`warn`),r())}).catch(e=>{X(`synced_settings_push_failed`,{message:e instanceof Error?e.message:String(e)},`warn`),r()}).finally(()=>i(a))}catch(e){r(),i(!1),X(`synced_settings_push_failed`,{message:e instanceof Error?e.message:String(e)},`warn`)}}function t1(e,t){e===`theme`?cK.setState({theme:t}):U.setState({[e]:t})}function n1(e,t){if(K$.get(e)===JSON.stringify(t)){q$.delete(e);return}r1(e,t)}function r1(e,t){q$.set(e,JSON.stringify(t)),!X$&&(X$=setTimeout(e1,G$))}function i1(e){let t=new Map;for(let e of F$)t.set(e,$$(e));let n={},r;for(let[t,i]of Object.entries(e))!V$(t)||!H$(t,i)||(K$.set(t,JSON.stringify(i)),!Y$(t)&&(t===`theme`?r=i:n[t]=i));r!==void 0&&cK.setState({theme:r}),Object.keys(n).length>0&&U.setState(n);for(let n of F$){if(n in e||!t.get(n))continue;let r=Q$(n);H$(n,r)&&K$.get(n)!==JSON.stringify(r)&&r1(n,r)}}function a1(){if(Z$)return()=>{};Z$=!0;let e=U.subscribe((e,t)=>{let n=e,r=t;for(let e of F$)e!==`theme`&&n[e]!==r[e]&&n1(e,n[e])}),t=cK.subscribe((e,t)=>{e.theme!==t.theme&&n1(`theme`,e.theme)});return()=>{e(),t(),Z$=!1,X$&&=(clearTimeout(X$),null),q$.clear(),J$.clear(),K$.clear()}}function o1(e,t,n){let r=e;return t.length>0&&(r=r.filter(e=>t.includes(e.projectPath))),n.length>0&&(r=r.filter(e=>n.includes(e.host??``))),r}function s1(){let[e,t]=(0,y.useState)(!1),[n,r]=(0,y.useState)(void 0),[i,a]=(0,y.useState)(void 0),[o,s]=(0,y.useState)(void 0),[c,l]=(0,y.useState)(!1),[u,d]=(0,y.useState)(!1),[f,p]=(0,y.useState)(null),[m,h]=(0,y.useState)(null),[g,_]=(0,y.useState)(null),v=Hh(e=>e.sessions),b=Hh(e=>e.agentSessions),S=Hh(e=>e.agentSessionsEpoch),C=Hh(e=>e.selectedSessionId),w=Hh(e=>e.selectedHibernatingSessionId),T=Hh(e=>e.setSessions),E=Hh(e=>e.setAgentSessions),D=Hh(e=>e.setActiveAgentSessions),O=Hh(e=>e.setHostStatuses),A=Hh(e=>e.updateSession),j=Hh(e=>e.setSelectedSessionId),M=Hh(e=>e.setSelectedHibernatingSessionId),P=Hh(e=>e.hasLoaded),ee=Hh(e=>e.connectionStatus),I=Hh(e=>e.connectionError),L=Hh(e=>e.clearExitingSession),R=Hh(e=>e.markSessionExiting),z=Hh(e=>e.setRemoteAllowControl),B=Hh(e=>e.setRemoteAllowAttach),te=Hh(e=>e.setHostLabel),V=Hh(e=>e.setPreferWindowName),ne=Hh(e=>e.hostStatuses),H=Hh(e=>e.remoteAllowControl),re=Hh(e=>e.hostLabel),ie=lK(),ae=Et(),oe=U(e=>e.defaultProjectDir),se=U(e=>e.commandPresets),ce=U(e=>e.defaultPresetId),le=U(e=>e.lastProjectPath),ue=U(e=>e.setLastProjectPath),de=U(e=>e.addRecentPath),fe=U(e=>e.shortcutModifier),pe=U(e=>e.sidebarWidth),me=U(e=>e.sidebarAnchor),he=U(e=>e.setSidebarWidth),ge=U(e=>e.projectFilters),_e=U(e=>e.hostFilters),ve=U(e=>e.soundOnPermission),ye=U(e=>e.soundOnIdle),be=Hh(e=>e.connectionEpoch),{sendMessage:xe,subscribe:Se,getConnectionEpoch:Ce}=A$();(0,y.useEffect)(()=>a1(),[]),P$(),(0,y.useEffect)(()=>{if(typeof document>`u`||!ve&&!ye)return;let e=!1,t=()=>{e&&!zJ()||(e=!0,VJ())};return document.addEventListener(`click`,t,{passive:!0}),document.addEventListener(`keydown`,t,{passive:!0}),document.addEventListener(`touchstart`,t,{passive:!0}),()=>{document.removeEventListener(`click`,t),document.removeEventListener(`keydown`,t),document.removeEventListener(`touchstart`,t)}},[ve,ye]);let we=(0,y.useRef)(!1),Te=(0,y.useCallback)(e=>{e.preventDefault(),we.current=!0,document.body.style.cursor=`col-resize`,document.body.style.userSelect=`none`},[]);(0,y.useEffect)(()=>{if(typeof document>`u`||typeof document.addEventListener!=`function`)return;let e=e=>{if(!we.current)return;let t=e.clientX;he(Math.max(180,Math.min(400,t)))},t=()=>{we.current&&(we.current=!1,document.body.style.cursor=``,document.body.style.userSelect=``)};return document.addEventListener(`mousemove`,e),document.addEventListener(`mouseup`,t),()=>{document.removeEventListener(`mousemove`,e),document.removeEventListener(`mouseup`,t)}},[he]),(0,y.useEffect)(()=>{let e=Se(e=>{if(e.type!==`terminal-output`){if(e.type===`sessions`){let t=Hh.getState().sessions,{soundOnPermission:n,soundOnIdle:r}=U.getState();if(n||r)for(let i of e.sessions){let e=t.find(e=>e.id===i.id);e&&e.status!==i.status&&(e.status!==`permission`&&i.status===`permission`&&n&&WJ(),e.status===`working`&&i.status===`waiting`&&r&&GJ())}if(Ve.current.size>0){let e=Ce();for(let[t,n]of Ve.current)n.epoch!==e&&Ve.current.delete(t)}let i=Ve.current.size>0?e.sessions.filter(e=>!Ve.current.has(e.id)):e.sessions,{selectedSessionId:a,selectedHibernatingSessionId:o}=Hh.getState(),s=a!==null&&o===null&&!i.some(e=>e.id===a)?t.find(e=>e.id===a)?.agentSessionId?.trim()??null:null;s&&(Le.current=s),T(i);let c=Re.current,{selectedSessionId:l,selectedHibernatingSessionId:u}=Hh.getState(),{projectFilters:d,hostFilters:f}=U.getState();if(c&&l===null&&u===null){let e=i.find(e=>!(e.agentSessionId?.trim()!==c||d.length>0&&!d.includes(e.projectPath)||f.length>0&&!f.includes(e.host??``)));e&&(Re.current=null,j(e.id))}}if(e.type===`host-status`&&O(e.hosts),e.type===`server-config`&&(z(e.remoteAllowControl),B(e.remoteAllowAttach),te(e.hostLabel),V(e.preferWindowName),e.clientLogLevel&&mk(e.clientLogLevel)),e.type===`synced-settings`&&i1(e.settings),e.type===`session-update`){let t=Hh.getState().sessions.find(t=>t.id===e.session.id)?.status,n=e.session.status;if(A(e.session),t){let{soundOnPermission:e,soundOnIdle:r}=U.getState();t!==`permission`&&n===`permission`&&e&&WJ(),t===`working`&&n===`waiting`&&r&&GJ()}}if(e.type===`session-created`){let t=Hh.getState().sessions;t.some(t=>t.id===e.session.id)||T([e.session,...t]),j(e.session.id),de(e.session.projectPath);let{projectFilters:n,setProjectFilters:r}=U.getState();n.length>0&&!n.includes(e.session.projectPath)&&r([...n,e.session.projectPath])}if(e.type===`session-removed`){DG(e.sessionId);let t=Hh.getState().sessions,n=t.filter(t=>t.id!==e.sessionId);n.length!==t.length&&T(n)}if(e.type===`agent-sessions`){let t=Array.isArray(e.active)?e.active:[],n=Array.isArray(e.hibernating)?e.hibernating:[],r=Array.isArray(e.history)?e.history:[],{selectedHibernatingSessionId:i}=Hh.getState(),a=Le.current;i&&!n.some(e=>e.sessionId===i)&&(Re.current=i),E(t,n,r),_(e=>e&&n.some(t=>t.sessionId===e.sessionId)?null:e),a&&n.some(e=>e.sessionId===a)?(Le.current=null,M(a)):a&&(Le.current=null)}if(e.type===`agent-sessions-active`&&D(Array.isArray(e.active)?e.active:[]),e.type===`session-orphaned`&&!e.supersededBy){let t=Hh.getState().sessions,n=t.filter(t=>t.agentSessionId?.trim()!==e.session.sessionId);n.length!==t.length&&T(n)}if(e.type===`session-activated`){let t=Hh.getState().sessions.find(t=>t.tmuxWindow===e.window);t&&A({...t,agentSessionId:e.session.sessionId,agentSessionName:e.session.displayName,logFilePath:e.session.logFilePath,isHibernating:e.session.isHibernating,lastUserMessage:e.session.lastUserMessage??t.lastUserMessage})}if(e.type===`session-wake-result`)if(e.ok&&e.session){_(t=>t?.sessionId===e.sessionId?null:t);let t=Hh.getState().sessions;t.some(t=>t.id===e.session.id)||T([e.session,...t]),j(e.session.id)}else e.ok||(p(`${e.error?.code}: ${e.error?.message}`),window.setTimeout(()=>p(null),6e3));if(e.type===`session-hibernate-result`&&(e.ok?(e.session&&_(e.session),M(e.sessionId)):(p(e.error??`Failed to hibernate session`),window.setTimeout(()=>p(null),6e3))),e.type===`terminal-error`&&(!e.sessionId||e.sessionId===C)&&(p(`${e.code}: ${e.message}`),window.setTimeout(()=>p(null),6e3)),e.type===`terminal-ready`&&e.sessionId===C&&p(null),e.type===`error`&&(p(e.message),window.setTimeout(()=>p(null),6e3)),e.type===`kill-failed`){let t=Ve.current.get(e.sessionId);if(t){let n=Hh.getState().sessions;n.some(t=>t.id===e.sessionId)||T([t.session,...n]),t.wasSelected&&j(e.sessionId),Ve.current.delete(e.sessionId)}L(e.sessionId),p(e.message),window.setTimeout(()=>p(null),6e3)}e.type===`session-move-to-history-result`&&!e.ok&&e.error&&(p(e.error),window.setTimeout(()=>p(null),6e3))}});return()=>{e()}},[C,w,de,L,xe,j,M,_,T,E,D,O,z,B,te,V,Se,A]);let Ee=(0,y.useMemo)(()=>v.find(e=>e.id===C)||null,[C,v]),De=b.hibernating??[],Oe=b.history??[],ke=(0,y.useMemo)(()=>o1(De,ge,_e),[De,ge,_e]),Ae=(0,y.useMemo)(()=>ke.find(e=>e.sessionId===w)||(g?.sessionId===w?g:null),[ke,g,w]);(0,y.useEffect)(()=>{Ee?.projectPath&&!Ee.remote&&ue(Ee.projectPath)},[Ee?.projectPath,Ee?.remote,ue]);let je=U(e=>e.sessionSortMode),Me=U(e=>e.sessionSortDirection),Ne=U(e=>e.manualSessionOrder),Pe=(0,y.useMemo)(()=>Eh(v,{mode:je,direction:Me,manualOrder:Ne}),[v,je,Me,Ne]),Fe=(0,y.useMemo)(()=>{let e=Pe;return ge.length>0&&(e=e.filter(e=>ge.includes(e.projectPath))),_e.length>0&&(e=e.filter(e=>_e.includes(e.host??``))),e},[Pe,ge,_e]),Ie=(0,y.useRef)(w),Le=(0,y.useRef)(null),Re=(0,y.useRef)(null),ze=(0,y.useRef)(be),Be=(0,y.useCallback)(()=>Fe.length>0?(j(Fe[0].id),!0):ke.length>0?(M(ke[0].sessionId),!0):!1,[Fe,ke,j,M]);(0,y.useEffect)(()=>{let e=Ie.current;e&&w===null&&!De.some(t=>t.sessionId===e)?Re.current=e:w!==null&&(Re.current=null),Ie.current=w},[De,w]),(0,y.useEffect)(()=>{g&&w!==g.sessionId&&_(null)},[g,w]),(0,y.useEffect)(()=>{ze.current!==be&&(ze.current=be,Le.current=null,Re.current=null,_(null))},[be]),(0,y.useEffect)(()=>{P&&(w||C&&(Fe.some(e=>e.id===C)||Be()||j(null)))},[P,C,w,Be,j]),(0,y.useEffect)(()=>{if(!w||g?.sessionId===w||S!==be||ke.some(e=>e.sessionId===w))return;let e=Fe.find(e=>e.agentSessionId?.trim()===w);if(e){j(e.id);return}Be()||M(null)},[ke,Fe,S,g,w,Be,j,M,be]),(0,y.useEffect)(()=>{let e=Re.current;if(!e)return;if(w!==null){Re.current=null;return}let t=Fe.find(t=>t.agentSessionId?.trim()===e);if(t){Re.current=null,j(t.id);return}if(C!==null){Re.current=null;return}Be()&&(Re.current=null)},[Fe,C,w,Be,j]),(0,y.useEffect)(()=>{window.matchMedia(`(max-width: 767px)`).matches&&P&&C===null&&w===null&&(Fe.length>0||ke.length>0)&&Be()},[ke.length,Fe.length,P,Be,C,w]);let Ve=(0,y.useRef)(new Map),He=(0,y.useCallback)((e,t=`unknown`)=>{DG(e);let{sessions:n,selectedSessionId:r}=Hh.getState(),i=n.find(t=>t.id===e);i&&Ve.current.set(e,{session:i,wasSelected:r===e,epoch:Ce()}),(0,cf.flushSync)(()=>{R(e),T(n.filter(t=>t.id!==e))}),xe({type:`session-kill`,sessionId:e,source:t})},[R,T,xe]);(0,y.useEffect)(()=>{let n=At(fe),r=r=>{if(r.defaultPrevented)return;let i=r.code,a=Nt(r,n);if(a&&(i===`BracketLeft`||i===`BracketRight`)){r.preventDefault();let e=me===`bottom`&&!window.matchMedia(`(max-width: 767px)`).matches,t=(i===`BracketLeft`?-1:1)*(e?-1:1),n=Fe;if(n.length===0){let e=ke;if(e.length===0)return;let n=e.findIndex(e=>e.sessionId===w);if(n===-1){M(e[0].sessionId);return}M(e[(n+t+e.length)%e.length].sessionId);return}let a=n.findIndex(e=>e.id===C);if(a===-1){j(n[0].id);return}j(n[(a+t+n.length)%n.length].id);return}if(a&&/^Digit[1-9]$/.test(i)){let e=Number(i.slice(5))-1;if(Fe.length>0){let t=Fe[e];if(!t)return;r.preventDefault(),j(t.id);return}let t=ke[e];if(!t)return;r.preventDefault(),M(t.sessionId);return}if(a&&i===`KeyN`){r.preventDefault(),!e&&!c&&ae&&t(!0);return}if(a&&i===`Comma`){r.preventDefault(),l(t=>t?!1:!e);return}if(a&&i===`KeyX`){r.preventDefault(),C&&!e&&!c&&He(C,`keyboard_shortcut`);return}};return window.addEventListener(`keydown`,r),()=>window.removeEventListener(`keydown`,r)},[e,c,C,w,j,M,Fe,ke,He,me,fe,ae]);let Ue=()=>ae?(r(void 0),a(void 0),s(void 0),t(!0),!0):!1,We=()=>l(!0),Ge=(e,t,n,r)=>{xe({type:`session-create`,operationId:x(),projectPath:e,name:t,command:n,host:r}),r||ue(e)},Ke=e=>{xe({type:`session-wake`,sessionId:e})},qe=(0,y.useCallback)(e=>{xe({type:`session-hibernate`,sessionId:e})},[xe]),Je=(e,t)=>{xe({type:`session-rename`,sessionId:e,newName:t})},Ye=(0,y.useCallback)(e=>{let t=v.find(t=>t.id===e);t&&xe({type:`session-create`,operationId:x(),projectPath:t.projectPath,command:t.command||void 0,host:t.remote&&t.host?t.host:void 0})},[v,xe]),Xe=(0,y.useCallback)(e=>{xe({type:`session-move-to-history`,sessionId:e})},[xe]);(0,y.useEffect)(()=>uK(),[]),(0,y.useEffect)(()=>{document.documentElement.setAttribute(`data-theme`,ie)},[ie]),(0,y.useEffect)(()=>{fetch(`/api/server-info`).then(e=>e.json()).then(e=>h(e)).catch(()=>{})},[]);let Ze=(0,y.useMemo)(()=>re?ne.filter(e=>e.host!==re):ne,[ne,re]);return(0,k.jsxs)(`div`,{className:`flex h-full overflow-hidden`,children:[(0,k.jsx)(`div`,{className:`hidden h-full flex-col md:flex md:shrink-0`,style:{width:pe},children:(0,k.jsx)(lk,{sessions:v,hibernatingSessions:De,historySessions:Oe,selectedSessionId:C,selectedHibernatingSessionId:w,onSelect:j,onSelectHibernating:M,onRename:Je,onResume:Ke,onHibernate:qe,onKill:He,onDuplicate:Ye,onMoveToHistory:Xe,onNewSession:Ue,loading:!P,error:I||f,anchor:me,showAnchorControl:!0,notice:(0,k.jsx)(N,{onOpen:()=>d(!0),subscribe:Se}),filterBarControls:(0,k.jsx)(Kt,{connectionStatus:ee,onNewSession:Ue,onOpenSettings:We,onOpenHistory:()=>d(!0),tailscaleIp:m?.tailscaleIp??null,placement:me===`bottom`?`up`:`down`})})}),(0,k.jsx)(`div`,{className:`hidden md:block w-1 shrink-0 cursor-col-resize bg-transparent transition-colors hover:bg-white/10 active:bg-white/20`,onMouseDown:Te}),(0,k.jsx)(jq,{session:Ee,sessions:Fe,drawerSessions:v,hibernatingSession:Ae,hibernatingSessions:De,connectionStatus:ee,connectionEpoch:be,sendMessage:xe,subscribe:Se,onClose:()=>j(null),onSelectSession:j,onSelectHibernatingSession:M,onNewSession:Ue,onKillSession:He,onRenameSession:Je,onDuplicateSession:Ye,onOpenSettings:We,onOpenHistory:()=>d(!0),onResumeSession:Ke,onHibernateSession:qe,onMoveToHistory:Xe,historySessions:Oe,loading:!P,error:I||f}),(0,k.jsx)(Xq,{isOpen:e,onClose:()=>t(!1),onCreate:Ge,defaultProjectDir:oe,commandPresets:se,defaultPresetId:ce,lastProjectPath:le,activeProjectPath:Ee&&!Ee.remote?Ee.projectPath:void 0,remoteHosts:Ze,remoteAllowControl:H,initialHost:n,initialPath:i,initialCommand:o}),(0,k.jsx)(gZ,{isOpen:c,onClose:()=>l(!1)}),(0,k.jsx)(F,{open:u,subscribe:Se,onClose:()=>d(!1),onOpenSession:e=>{T([e,...v.filter(t=>t.id!==e.id)]),M(null),j(e.id)}}),(0,k.jsx)(g$,{})]})}var c1=`modulepreload`,l1=function(e){return`/`+e},u1={},d1=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=l1(t,n),t in u1)return;u1[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:c1,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},f1=`true`,p1=`false`,m1=f1===`true`,h1=p1===`true`;function g1(e={}){let{immediate:t=!1,onNeedRefresh:n,onOfflineReady:r,onRegistered:i,onRegisteredSW:a,onRegisterError:o}=e,s,c,l,u=async(e=!0)=>{await c,m1||l?.()};async function d(){if(`serviceWorker`in navigator){if(s=await d1(async()=>{let{Workbox:e}=await import(`./workbox-window.prod.es5-Bq4GJJid.js`);return{Workbox:e}},[]).then(({Workbox:e})=>new e(`/sw.js`,{scope:`/`,type:`classic`})).catch(e=>{o?.(e)}),!s)return;if(l=()=>{s?.messageSkipWaiting()},!h1)if(m1)s.addEventListener(`activated`,e=>{(e.isUpdate||e.isExternal)&&window.location.reload()}),s.addEventListener(`installed`,e=>{e.isUpdate||r?.()});else{let e=!1,t=()=>{e=!0,s?.addEventListener(`controlling`,e=>{e.isUpdate&&window.location.reload()}),n?.()};s.addEventListener(`installed`,n=>{n.isUpdate===void 0?n.isExternal===void 0?!e&&r?.():n.isExternal?t():!e&&r?.():n.isUpdate||r?.()}),s.addEventListener(`waiting`,t)}s.register({immediate:t}).then(e=>{a?a(`/sw.js`,e):i?.(e)}).catch(e=>{o?.(e)})}}return c=d(),u}Dt()&&document.documentElement.classList.add(`ios`),Ot()&&document.documentElement.classList.add(`ios-pwa`),g1({immediate:!0,onRegisteredSW(e,t){t&&(setInterval(()=>{t.update()},300*1e3),document.addEventListener(`visibilitychange`,()=>{document.visibilityState===`visible`&&t.update()}))}});var _1=document.getElementById(`root`);if(!_1)throw Error(`Root element not found`);(0,b.createRoot)(_1).render((0,k.jsx)(y.StrictMode,{children:(0,k.jsx)(s1,{})}));
|
|
305
|
+
${r?Mq[t.status]:jq[t.status]}
|
|
306
|
+
`,onClick:()=>{Nq(),d(t.id)},title:pt?t.name:void 0,children:i},t.id)})})]}),(0,k.jsxs)(`div`,{className:`relative flex-1`,children:[(0,k.jsx)(`div`,{ref:Ae,className:`absolute inset-0`,style:{backgroundColor:T.background}}),Ie&&e&&(0,k.jsxs)(`div`,{role:`status`,"aria-live":`polite`,className:`absolute top-2 left-2 z-50 flex items-center gap-1.5 rounded-lg bg-black/60 px-2.5 py-1.5 text-xs text-white/90 shadow-lg backdrop-blur-md`,children:[(0,k.jsx)(at,{width:W.pill,height:W.pill,className:`animate-spin`}),`Loading`]}),Re&&e&&(0,k.jsxs)(`div`,{className:`absolute ${F&&!L?`bottom-20`:`bottom-8`} left-1/2 z-30 flex max-w-[calc(100%-2rem)] -translate-x-1/2 items-center gap-2 rounded-lg border border-border bg-elevated/95 px-2 py-2 shadow-lg backdrop-blur-sm md:hidden`,children:[(0,k.jsx)(`span`,{className:`max-w-[12rem] truncate text-xs text-secondary md:max-w-[18rem]`,children:`Selection ready`}),(0,k.jsxs)(`button`,{type:`button`,onClick:ze,className:`relative flex h-8 shrink-0 items-center justify-center gap-1.5 rounded bg-accent px-2.5 text-xs font-medium text-white hover:bg-accent/90 active:scale-95 transition-all [@media(pointer:coarse)]:before:absolute [@media(pointer:coarse)]:before:inset-[calc(50%-22px)] [@media(pointer:coarse)]:before:content-['']`,title:`Copy selection`,"aria-label":`Copy selection`,children:[(0,k.jsx)(ce,{width:W.default,height:W.default}),`Copy`]}),(0,k.jsx)(`button`,{type:`button`,onClick:Ve,className:`relative flex h-8 w-8 shrink-0 items-center justify-center rounded border border-border text-secondary hover:bg-hover hover:text-primary active:scale-95 transition-all [@media(pointer:coarse)]:before:absolute [@media(pointer:coarse)]:before:inset-[calc(50%-22px)] [@media(pointer:coarse)]:before:content-['']`,title:`Dismiss`,"aria-label":`Dismiss`,children:(0,k.jsx)(it,{width:W.default,height:W.default})})]}),e&&(0,k.jsx)(Oq,{session:e}),!e&&(0,k.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center text-sm text-muted`,children:r?null:`Select a session to view terminal`}),e&&Ce&&(0,k.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center text-center text-sm text-muted`,children:`Remote session (read-only). Use SSH to attach on the host.`}),r&&(0,k.jsx)(`div`,{className:`absolute inset-0 z-10 overflow-y-auto bg-base`,children:(0,k.jsxs)(`div`,{className:`mx-auto flex min-h-full w-full max-w-5xl flex-col gap-4 p-4 md:p-6`,children:[(0,k.jsx)(`div`,{className:`border-b border-border pb-4`,children:(0,k.jsxs)(`div`,{className:`flex flex-col gap-3 md:flex-row md:items-start md:justify-between`,children:[(0,k.jsxs)(`div`,{className:`min-w-0 space-y-2`,children:[(0,k.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-2 gap-y-1 text-sm`,children:[(0,k.jsx)(`h2`,{className:`min-w-0 truncate text-lg font-semibold text-primary`,children:Te}),(0,k.jsx)(`span`,{className:`rounded-full bg-blue-500/15 px-2 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-blue-400`,children:`Hibernating`}),Ee&&(0,k.jsx)(`span`,{className:`text-muted`,children:Ee}),(0,k.jsxs)(`span`,{className:`text-muted`,children:[`Last active `,De]})]}),r.lastResumeError&&(0,k.jsxs)(`div`,{className:`inline-flex items-center gap-1 rounded bg-amber-500/15 px-2 py-1 text-xs text-amber-400`,title:`Last wake failed: ${r.lastResumeError}`,children:[(0,k.jsx)(I,{width:W.pill,height:W.pill}),`Last wake failed`]}),r.lastUserMessage&&(0,k.jsx)(`p`,{className:`max-h-28 max-w-3xl overflow-y-auto whitespace-pre-wrap break-words pr-2 text-sm leading-6 text-secondary`,children:r.lastUserMessage})]}),(0,k.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[(0,k.jsx)(`button`,{type:`button`,onClick:()=>_(r.sessionId),className:`btn btn-primary hidden md:inline-flex`,children:`Wake`}),b&&(0,k.jsx)(`button`,{type:`button`,onClick:()=>b(r.sessionId),className:`btn btn-secondary`,children:`Move to History`})]})]})}),(0,k.jsx)(XO,{session:r})]})}),Ne&&e&&!L?(0,k.jsxs)(`button`,{type:`button`,onClick:He,className:`absolute bottom-14 left-1/2 z-20 flex h-10 items-center justify-center rounded-full border border-amber-400/35 bg-amber-500/20 text-amber-100 shadow-lg backdrop-blur-sm transition-all hover:bg-amber-500/30 active:scale-95 md:hidden ${Ht}`,style:{transform:`translateX(-50%)`},title:`Exit tmux copy mode and return to live output`,"aria-label":`Exit copy mode`,children:[(0,k.jsx)(`span`,{className:`px-3 text-[11px] font-semibold uppercase tracking-wide`,children:`Copy mode`}),(0,k.jsx)(`span`,{className:`self-stretch border-l border-amber-400/25`,"aria-hidden":`true`}),(0,k.jsx)(`span`,{className:`px-3 text-sm font-medium`,children:`Exit`})]}):F&&e&&!L?(0,k.jsxs)(`button`,{type:`button`,onClick:He,className:`absolute bottom-8 left-1/2 z-20 flex h-10 px-4 items-center justify-center gap-1.5 rounded-full bg-blue-600/90 text-white shadow-lg hover:bg-blue-600 active:scale-95 transition-all md:hidden ${Ht}`,style:{transform:`translateX(-50%)`},title:`Scroll to bottom`,"aria-label":`Scroll to bottom`,children:[(0,k.jsx)(R,{width:W.primary,height:W.primary}),(0,k.jsx)(`span`,{className:`text-sm font-medium`,children:`Jump to bottom`})]}):null]}),(0,k.jsx)(aq,{...ut}),(0,k.jsx)(AK,{session:e,hibernatingSession:r,hibernatingDisplayName:Te,showHostBadge:ke,sessionCount:t.length,connectionStatus:o,isSwitching:Ie,canControl:we,canHibernate:Oe,modDisplay:M,onKill:()=>te(!0),onHibernate:qe,onWake:()=>r&&_(r.sessionId),onRename:t=>{let n=e?.id??r?.sessionId;n&&h(n,t)},onDuplicate:e&&g?()=>g(e.id):void 0,onMoveToHistory:r&&b?()=>b(r.sessionId):void 0,isTmuxCopyMode:Ne,showJumpToBottom:F&&!L,onJumpToBottom:He,selectionReady:!!Re,onCopySelection:ze,onDismissSelection:Ve}),e&&(0,k.jsx)(bq,{onSendKey:ot,onPasteText:st,onPasteImage:ct,disabled:o!==`connected`||Ce||!Le,sessions:t.map(e=>({id:e.id,name:e.name,status:e.status})),currentSessionId:e.id,agentType:e.agentType,fileUploadsAllowed:!ye,onSelectSession:d,hideSessionSwitcher:!0,onRefocus:lt,isKeyboardVisible:ft,onEnterTextMode:dt}),(P||N)&&(0,k.jsx)(Aq,{isOpen:H,onClose:()=>re(!1),sessions:n??t,hibernatingSessions:i,historySessions:a,selectedSessionId:e?.id??null,selectedHibernatingSessionId:r?.sessionId??null,onSelect:d,onSelectHibernating:f,onRename:h,onResume:_,onHibernate:v,onMoveToHistory:b,onNewSession:p,onOpenHistory:S,subscribe:l,loading:C,error:w}),B&&e&&(0,k.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/50`,children:(0,k.jsxs)(`div`,{className:`mx-4 w-full max-w-sm rounded-lg border border-border bg-elevated p-4 shadow-xl`,children:[(0,k.jsx)(`h3`,{className:`text-base font-medium text-primary mb-2 text-balance`,children:`Kill Session`}),(0,k.jsxs)(`p`,{className:`text-sm text-secondary mb-4 text-pretty`,children:[`Kill "`,e.agentSessionName||e.name,`"? The process will be terminated. Conversation history is preserved in logs.`]}),(0,k.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,k.jsx)(`button`,{onClick:()=>te(!1),className:`btn py-1.5 px-3 text-sm`,children:`Cancel`}),(0,k.jsx)(`button`,{ref:me,onClick:Ke,className:`btn btn-danger py-1.5 px-3 text-sm`,children:`Kill Session`})]})]})})]})}function Fq({onSelect:e,onCancel:t,initialPath:n}){let[r,i]=(0,y.useState)(n||`~`),[a,o]=(0,y.useState)(null),[s,c]=(0,y.useState)(null),[l,u]=(0,y.useState)(!0),[d,f]=(0,y.useState)(-1),p=(0,y.useRef)(null),m=U(e=>e.recentPaths),h=(0,y.useCallback)(async e=>{p.current?.abort();let t=new AbortController;p.current=t;let{signal:n}=t;u(!0),c(null),o(null),f(-1),i(e);try{let r=await fetch(`/api/directories?path=${encodeURIComponent(e)}`,{signal:n});if(!r.ok){let e=await r.json();throw Error(e.message||`Failed to load directory`)}let a=await r.json();if(p.current!==t)return;o(a),i(a.path)}catch(e){if(p.current!==t)return;let n=e;n?.name!==`AbortError`&&c(n?.message||`Failed to load directory`)}finally{p.current===t&&u(!1)}},[]);(0,y.useEffect)(()=>(h(n||`~`),()=>{p.current?.abort()}),[h,n]);let g=a?.directories??[],_=a?.path||r,v=a?.parent;return(0,y.useEffect)(()=>{let n=n=>{if(n.key===`Escape`){n.preventDefault(),t();return}if(!l){if(n.key===`ArrowDown`){n.preventDefault(),f(e=>g.length===0?-1:e<0?0:Math.min(e+1,g.length-1));return}if(n.key===`ArrowUp`){n.preventDefault(),f(e=>g.length===0?-1:e<0?g.length-1:Math.max(e-1,0));return}if(n.key===`Enter`){n.preventDefault();let t=g[d];t?h(t.path):_&&e(_);return}n.key===`Backspace`&&v&&(n.preventDefault(),h(v))}};return window.addEventListener(`keydown`,n),()=>window.removeEventListener(`keydown`,n)},[g,_,h,d,l,t,e,v]),(0,k.jsx)(`div`,{role:`dialog`,"aria-modal":`true`,"aria-label":`Directory browser`,className:`fixed inset-0 z-[60] flex items-center justify-center bg-black/60 p-4`,onClick:e=>{e.target===e.currentTarget&&t()},"data-testid":`directory-browser`,children:(0,k.jsxs)(`div`,{className:`w-full max-w-lg border border-border bg-elevated p-4`,children:[(0,k.jsxs)(`div`,{className:`flex items-center gap-3 border-b border-border pb-2`,children:[(0,k.jsx)(`button`,{type:`button`,className:`btn`,onClick:()=>{v&&h(v)},disabled:!v||l,children:`Up`}),(0,k.jsx)(`div`,{className:`min-w-0 flex-1 truncate text-xs font-mono text-secondary`,title:_,"data-testid":`directory-current-path`,children:_})]}),(0,k.jsx)(`div`,{className:`mt-3 max-h-60 overflow-y-auto border border-border bg-surface`,children:l?(0,k.jsx)(`div`,{className:`px-3 py-4 text-xs text-muted`,"data-testid":`directory-loading`,children:`Loading directories...`}):s?(0,k.jsxs)(`div`,{className:`px-3 py-4 text-xs`,"data-testid":`directory-error`,children:[(0,k.jsx)(`p`,{className:`text-danger`,children:s}),(0,k.jsx)(`button`,{type:`button`,className:`btn mt-3`,onClick:()=>h(r),children:`Retry`})]}):g.length===0?(0,k.jsx)(`div`,{className:`px-3 py-4 text-xs text-muted`,"data-testid":`directory-empty`,children:`No subdirectories`}):(0,k.jsx)(`div`,{className:`py-1`,children:g.map((e,t)=>(0,k.jsxs)(`button`,{type:`button`,onClick:()=>h(e.path),onMouseEnter:()=>f(t),className:`flex w-full items-center gap-2 px-3 py-2 text-left text-xs ${t===d?`bg-hover text-primary`:`text-secondary`}`,"data-testid":`directory-entry`,"data-entry-name":e.name,"data-entry-path":e.path,children:[(0,k.jsx)(Oe,{width:W.default,height:W.default,className:`shrink-0 text-muted`,"aria-hidden":`true`}),(0,k.jsx)(`span`,{className:`truncate`,children:e.name})]},e.path))})}),a?.truncated?(0,k.jsx)(`p`,{className:`mt-2 text-[10px] text-muted`,children:`Showing first 200 directories.`}):null,(0,k.jsxs)(`div`,{className:`mt-4 border-t border-border pt-3`,children:[(0,k.jsx)(`div`,{className:`text-[10px] uppercase tracking-wider text-secondary`,children:`Recent`}),m.length===0?(0,k.jsx)(`p`,{className:`mt-2 text-xs text-muted`,children:`No recent paths yet.`}):(0,k.jsx)(`div`,{className:`mt-2 space-y-1`,children:m.map(e=>(0,k.jsx)(`button`,{type:`button`,className:`block w-full truncate text-left text-xs text-secondary hover:text-primary`,onClick:()=>h(e),title:e,"data-testid":`directory-recent`,"data-recent-path":e,children:e},e))})]}),(0,k.jsxs)(`div`,{className:`mt-4 flex justify-end gap-2`,children:[(0,k.jsx)(`button`,{type:`button`,onClick:t,className:`btn`,children:`Cancel`}),(0,k.jsx)(`button`,{type:`button`,onClick:()=>{_&&e(_)},className:`btn btn-primary`,disabled:l||!_,children:`Select`})]})]})})}function Iq(e){let t=e.trim();if(t.length>=2){let e=t[0],n=t[t.length-1];if(e===`'`&&n===`'`)return t.slice(1,-1).replace(/'\\''/g,`'`);if(e===`"`&&n===`"`)return t.slice(1,-1).replace(/\\"/g,`"`).replace(/\\\\/g,`\\`)}return t}function Lq(e){let t=e.trim(),n=t.search(/\s/);if(n===-1||t.slice(0,n).split(`/`).pop()!==`bash`)return null;let r=n;for(;r<t.length&&/\s/.test(t[r]);)r++;let i=!1,a=!1;for(;r<t.length;){let e=r;for(;r<t.length&&!/\s/.test(t[r]);)r++;let n=t.slice(e,r);for(;r<t.length&&/\s/.test(t[r]);)r++;if(!n.startsWith(`-`)||n===`-`)return null;if(n===`--`)break;if(n.startsWith(`--`)||!/^-[a-zA-Z]+$/.test(n))continue;let o=n.slice(1);if(o.includes(`l`)&&(i=!0),o.includes(`c`)){a=!0;break}}if(!i||!a)return null;let o=t.slice(r).trim();return o?Iq(o):null}function Rq(e){return e?e===`claude-rp`?`claude`:e:null}function zq(e){let t=e.trim();if(!t)return``;let n=Iq(t);return Lq(n)??n}function Bq(e){if(e===`claude`)return`claude`;if(e===`codex`)return`codex`;if(e===`pi`)return`pi`;if(e===`devin`||e===`devin-cli`)return`devin`;if(e===`grok`||e.startsWith(`grok-`))return`grok`;if(e===`omp`)return`omp`}function Vq(e){let t=/\S+/g,n;for(;n=t.exec(e);){let e=n[0].toLowerCase().replace(/^["']+|["']+$/g,``);if([`npx`,`bunx`,`pnpm`,`yarn`,`env`].includes(e)||e.includes(`=`)||e.startsWith(`-`))continue;let t=e.includes(`@oh-my-pi/`)?`omp`:Bq(e.split(`/`).pop()||e);return t?{agentType:t,end:n.index+n[0].length}:void 0}}function Hq(e){let t=zq(e);if(t)return Vq(t.toLowerCase().trim().replace(/^["']|["']$/g,``))?.agentType}var Uq={claude:`--dangerously-skip-permissions`,codex:`--yolo`,grok:`--always-approve`,devin:`--permission-mode dangerous`,pi:null,omp:`--auto-approve`},Wq={claude:[`--dangerously-skip-permissions`,`--permission-mode bypassPermissions`,`--permission-mode=bypassPermissions`],codex:[`--yolo`,`--dangerously-bypass-approvals-and-sandbox`],grok:[`--always-approve`,`--yolo`,`--dangerously-skip-permissions`,`--permission-mode bypassPermissions`,`--permission-mode=bypassPermissions`],devin:[`--permission-mode dangerous`,`--permission-mode=dangerous`],pi:[],omp:[`--auto-approve`,`--approval-mode yolo`,`--approval-mode=yolo`]};function Gq(e){let t=Rq(e);return t?Uq[t]:null}function Kq(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function qq(e){return RegExp(`(^|\\s)${Kq(e)}(?=\\s|$)`,`g`)}function Jq(e,t){return(t?[Rq(t)].filter(e=>e!==null):Object.keys(Wq)).some(t=>Wq[t].some(t=>qq(t).test(e)))}function Yq(e,t){let n=Vq(e);return n?`${e.slice(0,n.end)} ${t}${e.slice(n.end)}`:null}function Xq(e,t){let n=Gq(t);if(!n)return e;let r=e.trim();if(!r||Jq(r,t))return r;let i=Yq(r,n);if(i)return i;let a=zq(r);if(a&&a!==r){let e=Yq(a,n);if(e)return`bash -lc '${e.replace(/'/g,`'\\''`)}'`}return`${r} ${n}`}function Zq(e,t){let n=Rq(t);if(!n||Jq(e,t))return null;if(n===`codex`){let t=/(^|\s)(--full-auto|--ask-for-approval|-a)(?=\s|=|$)/.exec(e);if(t)return`conflicts with ${t[2]}`}if(n===`omp`){let t=/(^|\s)--approval-mode(?:\s+|=)(always-ask|write)/.exec(e);if(t)return`conflicts with --approval-mode ${t[2]}`}let r=/(^|\s)--permission-mode(?:\s+|=)(\S+)/.exec(e);return r&&n!==`codex`?`conflicts with --permission-mode ${r[2]}`:null}function Qq(e,t){let n=Rq(t);if(!n)return e;let r=e;for(let e of Wq[n])r=r.replace(qq(e),` `);return r.replace(/\s+/g,` `).trim()}function $q({isOpen:e,onClose:t,onCreate:n,defaultProjectDir:r,commandPresets:i,defaultPresetId:a,lastProjectPath:o,activeProjectPath:s,remoteHosts:c=[],remoteAllowControl:l=!1,initialHost:u,initialPath:d,initialCommand:f}){let[p,m]=(0,y.useState)(``),[h,g]=(0,y.useState)(``),[_,v]=(0,y.useState)(null),[b,x]=(0,y.useState)(``),[S,C]=(0,y.useState)(!1),[w,T]=(0,y.useState)(``),E=U(e=>e.yoloMode),D=U(e=>e.setYoloMode),O=(0,y.useRef)(null),A=(0,y.useRef)(null),j=(0,y.useRef)(null),M=(0,y.useRef)(!1),N=l&&c.length>0,P=e=>{if(!E)return e;let t=Hq(e);return t&&!Zq(e,t)?Xq(e,t):e},F=e=>{let t=i.find(t=>t.id===e);t&&(v(e),x(P(Ct(t))))},ee=()=>{v(null),x(``)};if((0,y.useEffect)(()=>{let t=M.current;if(M.current=e,!e){m(``),g(``),v(null),x(``),C(!1),T(u??``),t&&setTimeout(()=>{if(typeof document>`u`||typeof document.querySelector!=`function`)return;let e=document.querySelector(`.xterm-helper-textarea`);e&&(e.removeAttribute(`disabled`),e.focus())},300);return}if(t)return;if(typeof document<`u`&&typeof document.querySelector==`function`){let e=document.querySelector(`.xterm-helper-textarea`);e&&typeof e.setAttribute==`function`&&(typeof e.blur==`function`&&e.blur(),e.setAttribute(`disabled`,`true`))}m(d?.trim()||s?.trim()||o||r||``),g(``),T(u??``);let n=f?.trim();if(n){let e=i.find(e=>Ct(e)===n);e?(v(e.id),x(Ct(e))):(v(null),x(n))}else{let e=i.find(e=>e.id===a);e?(v(a),x(P(Ct(e)))):i.length>0?(v(i[0].id),x(P(Ct(i[0])))):(v(null),x(``))}setTimeout(()=>{if(j.current?.focus(),A.current){let e=A.current;e.scrollLeft=e.scrollWidth}},50)},[s,i,a,r,e,o,u,d,f]),(0,y.useEffect)(()=>{if(!e||typeof window>`u`||typeof window.addEventListener!=`function`)return;let n=()=>O.current?Array.from(O.current.querySelectorAll(`input:not([disabled]), select:not([disabled]), button:not([disabled]):not([tabindex="-1"]), [tabindex="0"]`)):[],r=e=>{if(!S){if(e.key===`Escape`){typeof e.stopPropagation==`function`&&e.stopPropagation(),t();return}if(e.key===`Enter`){let t=document.activeElement;if(!t||t.tagName===`INPUT`||t.closest(`[data-testid="host-select"]`)||!t.closest(`[data-testid="command-select"]`))return;e.preventDefault(),typeof e.stopPropagation==`function`&&e.stopPropagation(),O.current?.requestSubmit();return}if(/^[0-9]$/.test(e.key)&&!e.metaKey&&!e.ctrlKey&&!e.altKey){let t=document.activeElement;if(t&&(t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.tagName===`SELECT`||t.isContentEditable))return;let n;if(e.key===`0`)n=i.length;else if(n=Number(e.key)-1,n>=i.length)return;e.preventDefault(),typeof e.stopPropagation==`function`&&e.stopPropagation(),n===i.length?ee():F(i[n].id),(O.current?.querySelectorAll?.(`[data-testid="command-select"] [role="radio"]`))?.[n]?.focus();return}if(e.key===`Tab`){e.preventDefault(),typeof e.stopPropagation==`function`&&e.stopPropagation();let t=n();if(t.length===0)return;let r=document.activeElement,i=t.indexOf(r),a;a=i===-1?e.shiftKey?t.length-1:0:e.shiftKey?i<=0?t.length-1:i-1:i>=t.length-1?0:i+1,t[a]?.focus()}}};return window.addEventListener(`keydown`,r),()=>window.removeEventListener(`keydown`,r)},[e,t,S,i,E]),!e)return null;let I=_===null,L=w!==``,R=Hq(b),z=Gq(R)!==null,B=R?Jq(b,R):!1,te=R&&!B?Zq(b,R):null,V=!z||te!==null,ne=R?R===`pi`?`Pi has no permission prompts — nothing to enable`:te??`Append ${Gq(R)}`:`Enter a supported agent command (claude, codex, grok, devin)`,H=e=>{D(e),R&&x(e?Xq(b,R):Qq(b,R))},re=e=>{e.preventDefault();let r=p.trim();if(!r)return;let i=b.trim();n(r,h.trim()||void 0,i||void 0,L?w:void 0),t()},ie=[...i.map(e=>({id:e.id,label:e.label,isCustom:!1,agentType:e.agentType,command:e.command})),{id:`custom`,label:`Custom`,isCustom:!0,agentType:void 0,command:void 0}],ae=[{id:``,label:`Local`,ok:!0,error:void 0},...c.map(e=>({id:e.host,label:e.host,ok:e.ok,error:e.error}))],oe=p.trim()||`~`;return(0,k.jsxs)(`div`,{role:`dialog`,"aria-modal":`true`,"aria-labelledby":`new-session-title`,"data-suspends-terminal":``,className:`fixed inset-0 z-50 flex items-center justify-center bg-black/60 p-4`,onClick:e=>{e.target===e.currentTarget&&t()},children:[(0,k.jsxs)(`form`,{ref:O,onSubmit:re,className:`w-full max-w-md border border-border bg-elevated p-6`,children:[(0,k.jsx)(`h2`,{id:`new-session-title`,className:`text-sm font-semibold uppercase tracking-wider text-primary text-balance`,children:`New Session`}),(0,k.jsxs)(`div`,{className:`mt-4 space-y-4`,children:[N&&(0,k.jsxs)(`div`,{children:[(0,k.jsx)(`label`,{className:`mb-1.5 block text-xs text-secondary`,children:`Host`}),(0,k.jsx)(`div`,{className:`flex flex-wrap gap-2`,role:`radiogroup`,"aria-label":`Host`,"data-testid":`host-select`,children:ae.map((e,t)=>{let n=w===e.id,r=!e.ok&&!n;return(0,k.jsx)(`button`,{type:`button`,role:`radio`,"aria-checked":n,"aria-label":e.label,title:e.ok?void 0:e.error||`Unreachable`,tabIndex:n?0:-1,onClick:()=>T(e.id),onKeyDown:e=>{let n=t;if(e.key===`ArrowRight`||e.key===`ArrowDown`)e.preventDefault(),n=(t+1)%ae.length;else if(e.key===`ArrowLeft`||e.key===`ArrowUp`)e.preventDefault(),n=(t-1+ae.length)%ae.length;else return;let r=ae[n];T(r.id),(e.currentTarget.parentElement?.querySelectorAll(`[role="radio"]`))?.[n]?.focus()},className:`btn text-xs focus:outline-none focus:ring-2 focus:ring-primary ${n?`btn-primary`:``} ${r?`opacity-60`:``}`,children:e.label},e.id||`local`)})})]}),(0,k.jsxs)(`div`,{children:[(0,k.jsx)(`label`,{className:`mb-1.5 block text-xs text-secondary`,children:`Command`}),(0,k.jsx)(`div`,{className:`flex flex-wrap gap-2`,role:`radiogroup`,"aria-label":`Command preset`,"data-testid":`command-select`,children:ie.map((e,t)=>{let n=e.isCustom?I:_===e.id,r=e.isCustom?`0`:t<9?String(t+1):null;return(0,k.jsxs)(`button`,{ref:n?j:void 0,type:`button`,role:`radio`,"aria-checked":n,"aria-keyshortcuts":r??void 0,tabIndex:n?0:-1,onClick:()=>{e.isCustom?ee():F(e.id)},onKeyDown:e=>{let n=t;if(e.key===`ArrowRight`||e.key===`ArrowDown`)e.preventDefault(),n=(t+1)%ie.length;else if(e.key===`ArrowLeft`||e.key===`ArrowUp`)e.preventDefault(),n=(t-1+ie.length)%ie.length;else return;let r=ie[n];r.isCustom?ee():F(r.id),(e.currentTarget.parentElement?.querySelectorAll(`[role="radio"]`))?.[n]?.focus()},className:`btn text-xs focus:outline-none focus:ring-2 focus:ring-primary ${n?`btn-primary`:``}`,children:[r&&(0,k.jsx)(`kbd`,{"aria-hidden":`true`,className:`shortcut-badge`,children:r}),(0,k.jsx)(sg,{agentType:e.agentType,command:e.command,className:`inline-block h-3.5 w-3.5 shrink-0`}),e.label]},e.id)})}),(0,k.jsx)(`input`,{value:b,onChange:e=>x(e.target.value),placeholder:`Enter command...`,className:`input mt-2 font-mono text-xs`}),(0,k.jsxs)(`label`,{className:`mt-2 flex items-center gap-2 text-xs ${V?`text-muted opacity-60`:`text-secondary`}`,title:ne,children:[(0,k.jsx)(`input`,{type:`checkbox`,checked:B,disabled:V,onChange:e=>H(e.target.checked)}),`yolo mode — skip permission prompts`]})]}),(0,k.jsxs)(`div`,{children:[(0,k.jsx)(`label`,{className:`mb-1.5 block text-xs text-secondary`,children:`Project Path`}),(0,k.jsxs)(`div`,{className:`flex gap-2`,children:[(0,k.jsx)(`input`,{ref:A,value:p,onChange:e=>m(e.target.value),placeholder:L?`/home/user/project`:s||o||r||`/Users/you/code/my-project`,className:`input flex-1 text-sm`}),!L&&(0,k.jsx)(`button`,{type:`button`,className:`btn`,onClick:()=>C(!0),children:`Browse`})]})]}),(0,k.jsxs)(`div`,{children:[(0,k.jsx)(`label`,{className:`mb-1.5 block text-xs text-secondary`,children:`Display Name`}),(0,k.jsx)(`input`,{value:h,onChange:e=>g(e.target.value),placeholder:`auto-generated`,className:`input text-sm placeholder:italic`})]})]}),(0,k.jsxs)(`div`,{className:`mt-6 flex justify-end gap-2`,children:[(0,k.jsx)(`button`,{type:`button`,onClick:t,className:`btn`,children:`Cancel`}),(0,k.jsx)(`button`,{type:`submit`,className:`btn btn-primary`,children:`Create`})]})]}),S&&!L&&(0,k.jsx)(Fq,{initialPath:oe,onSelect:e=>{m(e),C(!1)},onCancel:()=>C(!1)})]})}var eJ=[{id:`new-sessions`,label:`New sessions`},{id:`session-list`,label:`Session list`},{id:`appearance`,label:`Appearance`},{id:`terminal`,label:`Terminal`},{id:`notifications`,label:`Notifications`}];function tJ(e){return eJ.some(t=>t.id===e)}function nJ(e){return eJ.find(t=>t.id===e)?.label??e}var rJ=`agentboard-settings-page`,iJ=`new-sessions`;function aJ(){let e=w.getItem(rJ);return tJ(e)?e:iJ}function oJ(e){w.setItem(rJ,e)}var sJ=`h-[32px] max-md:h-[44px]`,cJ=`${sJ} inline-flex shrink-0 items-center justify-center border text-[12px] transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:cursor-not-allowed disabled:opacity-50`,lJ=`${cJ} border-border bg-surface px-3 text-secondary hover:bg-hover hover:text-primary`,uJ=`${cJ} w-[32px] max-md:w-[44px] border-border bg-surface text-secondary hover:bg-hover hover:text-primary`,dJ=`input ${sJ} px-2 py-0 text-[13px] max-md:text-[16px] focus-visible:ring-2 focus-visible:ring-accent/40 disabled:opacity-50 aria-[invalid=true]:border-danger`;function fJ(e,t){let[n,r]=(0,y.useState)(null),[i,a]=(0,y.useState)(null),o=(0,y.useRef)({draft:n,stored:e,commit:t});o.current={draft:n,stored:e,commit:t},(0,y.useEffect)(()=>()=>{let{draft:e,stored:t,commit:n}=o.current;e!==null&&e!==t&&n(e)},[]);let s=()=>{if(n===null)return;if(n===e){r(null),a(null);return}let i=t(n);if(i){a(i);return}r(null),a(null)};return{value:n??e,error:i,dirty:n!==null,onChange:e=>{r(e.target.value),a(null)},onBlur:s,onKeyDown:e=>{e.key===`Enter`?(e.preventDefault(),s()):e.key===`Escape`&&n!==null&&(e.preventDefault(),r(null),a(null))}}}var pJ=(0,y.forwardRef)(function({value:e,onCommit:t,describedBy:n,id:r,className:i,wrapperClassName:a,...o},s){let c=fJ(e,t),l=r?`${r}-error`:void 0,u=[n,c.error?l:void 0].filter(Boolean).join(` `);return(0,k.jsxs)(`div`,{className:A_(`min-w-0`,a),children:[(0,k.jsx)(`input`,{...o,ref:s,id:r,value:c.value,onChange:c.onChange,onBlur:c.onBlur,onKeyDown:c.onKeyDown,"aria-invalid":c.error?!0:void 0,"aria-describedby":u||void 0,className:A_(dJ,i)}),c.error&&(0,k.jsx)(`p`,{id:l,className:A_(`text-[12px] leading-snug text-danger`,`mt-1`),role:`alert`,children:c.error})]})});function mJ(e,t,n){let r=e.trim();return/^-?\d+$/.test(r)?Math.min(n,Math.max(t,Number.parseInt(r,10))):null}function hJ({value:e,min:t,max:n,onChange:r,noun:i,labelledBy:a,describedBy:o}){return(0,k.jsxs)(`div`,{role:`group`,"aria-labelledby":a,"aria-describedby":o,className:`flex items-center`,children:[(0,k.jsx)(`button`,{type:`button`,className:uJ,"aria-label":`Decrease ${i}`,disabled:e<=t,onClick:()=>r(Math.max(t,e-1)),children:(0,k.jsx)(He,{width:W.default,height:W.default})}),(0,k.jsx)(`output`,{"aria-live":`polite`,className:A_(sJ,`flex w-10 items-center justify-center border-y border-border bg-base text-[13px] tabular-nums text-primary`),children:e}),(0,k.jsx)(`button`,{type:`button`,className:uJ,"aria-label":`Increase ${i}`,disabled:e>=n,onClick:()=>r(Math.min(n,e+1)),children:(0,k.jsx)(Qe,{width:W.default,height:W.default})})]})}function gJ({id:e,value:t,min:n,max:r,step:i,onChange:a,format:o,labelledBy:s,describedBy:c}){return(0,k.jsxs)(`div`,{className:A_(sJ,`flex items-center gap-3`),children:[(0,k.jsx)(`input`,{id:e,type:`range`,min:n,max:r,step:i,value:t,"aria-labelledby":s,"aria-describedby":c,"aria-valuetext":o(t),onChange:e=>{let t=Number.parseFloat(e.target.value);Number.isFinite(t)&&a(Math.min(r,Math.max(n,t)))},className:`h-1 w-28 max-md:w-36 cursor-pointer appearance-none bg-border accent-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`}),(0,k.jsx)(`span`,{className:`w-10 text-right text-[13px] tabular-nums text-secondary`,children:o(t)})]})}function _J({options:e,value:t,onChange:n,labelledBy:r,describedBy:i,fill:a=!1}){let o=(0,y.useRef)([]),s=Math.max(0,e.findIndex(e=>e.value===t)),c=t=>{let r=e[t];r&&(n(r.value),o.current[t]?.focus())},l=(t,n)=>{let r=e.length-1,i=null;t.key===`ArrowRight`||t.key===`ArrowDown`?i=n===r?0:n+1:t.key===`ArrowLeft`||t.key===`ArrowUp`?i=n===0?r:n-1:t.key===`Home`?i=0:t.key===`End`&&(i=r),i!==null&&(t.preventDefault(),c(i))};return(0,k.jsx)(`div`,{role:`radiogroup`,"aria-labelledby":r,"aria-describedby":i,className:A_(`flex border border-border bg-base p-[2px]`,a?`w-full`:`w-max max-w-full`),children:e.map((e,t)=>{let n=t===s;return(0,k.jsx)(`button`,{ref:e=>{o.current[t]=e},type:`button`,role:`radio`,"aria-checked":n,tabIndex:n?0:-1,onClick:()=>c(t),onKeyDown:e=>l(e,t),className:A_(`h-[26px] max-md:h-[38px] min-w-0 whitespace-nowrap px-3 text-[12px] transition-colors`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,a&&`flex-1`,n?`bg-hover text-primary shadow-[inset_0_0_0_1px_var(--border)]`:`text-muted hover:text-primary`),children:e.label},e.value)})})}function vJ({ids:e}){return(0,k.jsx)(_J,{options:[{value:`light`,label:`Light`},{value:`dark`,label:`Dark`},{value:`system`,label:`System`}],value:cK(e=>e.theme),onChange:cK(e=>e.setTheme),labelledBy:e.label,describedBy:e.description})}function yJ({ids:e}){let t=U(e=>e.fontOption),n=U(e=>e.setFontOption);return(0,k.jsx)(`select`,{id:e.control,value:t,"aria-describedby":e.description,onChange:e=>n(e.target.value),className:`${dJ} w-44 max-md:w-full`,children:vt.map(e=>(0,k.jsx)(`option`,{value:e.id,children:e.label},e.id))})}function bJ({ids:e}){let t=U(e=>e.customFontFamily);return(0,k.jsx)(pJ,{id:e.control,value:t,placeholder:`"Fira Code", monospace`,describedBy:e.description,spellCheck:!1,autoCapitalize:`off`,autoCorrect:`off`,maxLength:256,wrapperClassName:`w-60 max-md:w-full`,onCommit:e=>(U.getState().setCustomFontFamily(e.trim()),null)})}function xJ({ids:e}){return(0,k.jsx)(hJ,{value:U(e=>e.fontSize),min:6,max:24,onChange:U(e=>e.setFontSize),noun:`font size`,labelledBy:e.label,describedBy:e.description})}function SJ({ids:e}){let t=U(e=>e.lineHeight),n=U(e=>e.setLineHeight);return(0,k.jsx)(gJ,{id:e.control,value:t,min:1,max:2,step:.1,onChange:e=>n(Math.round(e*10)/10),format:e=>e.toFixed(1),labelledBy:e.label,describedBy:e.description})}function CJ({ids:e}){let t=U(e=>e.letterSpacing),n=U(e=>e.setLetterSpacing);return(0,k.jsx)(gJ,{id:e.control,value:t,min:-3,max:3,step:1,onChange:e=>n(Math.round(e)),format:e=>`${e}px`,labelledBy:e.label,describedBy:e.description})}var wJ=[{id:`theme`,page:`appearance`,label:`Theme`,description:`Light, dark, or follow the system setting.`,keywords:[`dark mode`,`light mode`,`color`,`colour`,`system`],Control:vJ},{id:`font-family`,page:`appearance`,label:`Font family`,description:`Terminal typeface. Default JetBrains Mono.`,keywords:[`font`,`typeface`,`monospace`],tags:[`device`],Control:yJ},{id:`custom-font-family`,page:`appearance`,label:`Custom font family`,description:`A CSS font-family list. Empty falls back to JetBrains Mono.`,keywords:[`font`,`typeface`,`css`],tags:[`device`],layout:`wide`,visibleWhen:e=>e.fontOption===`custom`,Control:bJ},{id:`font-size`,page:`appearance`,label:`Font size`,description:`Terminal text size in pixels (6–24). Default 13.`,keywords:[`font`,`text`,`zoom`,`size`],tags:[`device`],Control:xJ},{id:`line-height`,page:`appearance`,label:`Line height`,description:`Vertical spacing, 1.0 compact to 2.0 spacious. Default 1.0.`,keywords:[`spacing`,`leading`,`line`],tags:[`device`],Control:SJ},{id:`letter-spacing`,page:`appearance`,label:`Letter spacing`,description:`Extra space between characters in pixels (−3 to 3). Default 0.`,keywords:[`spacing`,`tracking`,`kerning`],tags:[`device`],Control:CJ}],TJ=1024,EJ=[{value:``,label:`Terminal`},{value:`claude`,label:`Claude`},{value:`codex`,label:`Codex`},{value:`pi`,label:`Pi`},{value:`devin`,label:`Devin`},{value:`grok`,label:`Grok`},{value:`omp`,label:`OMP`}];function DJ(e,t){let n=t.trim();return e===`label`?n?n.length>64?`Name is at most 64 characters`:null:`Name is required`:n?n.length>1024?`Command is at most ${TJ} characters`:null:`Command is required`}function OJ(e){return DJ(`label`,e.label)===null&&DJ(`command`,e.command)===null}function kJ(e,t,n){return e.map(e=>e.id===t?St({...e,...n}):e)}var AJ=`grid items-start gap-2 grid-cols-[56px_92px_minmax(0,0.8fr)_minmax(0,1.3fr)_auto] max-md:grid-cols-[minmax(0,1fr)_minmax(0,auto)_auto] max-md:gap-y-2`,jJ=4e3;function MJ({preset:e,index:t,isDefault:n,pending:r=!1,autoFocusName:i=!1,onSetDefault:a,onCommitField:o,onIconChange:s,onDelete:c}){let[l,u]=(0,y.useState)(!1),d=(0,y.useRef)(null),f=`settings-preset-${e.id}`,p=e.label.trim()||`preset ${t+1}`;return(0,y.useEffect)(()=>{i&&d.current?.focus()},[i]),(0,y.useEffect)(()=>{if(!l)return;let e=setTimeout(()=>u(!1),jJ);return()=>clearTimeout(e)},[l]),(0,k.jsxs)(`div`,{role:`listitem`,"data-preset-id":e.id,className:A_(AJ,`py-2`),children:[(0,k.jsxs)(`label`,{className:A_(sJ,`flex cursor-pointer items-center gap-2 md:justify-center`),children:[(0,k.jsx)(`input`,{type:`radio`,name:`settings-default-preset`,checked:n,disabled:r,onChange:a,"aria-label":`Default preset: ${p}`,className:`size-4 cursor-pointer accent-accent disabled:cursor-not-allowed`}),(0,k.jsx)(`span`,{"aria-hidden":`true`,className:`text-[12px] text-secondary md:hidden`,children:`Default`})]}),e.isBuiltIn?(0,k.jsxs)(`div`,{className:A_(sJ,`flex items-center gap-2 text-muted`),children:[(0,k.jsx)(sg,{agentType:e.agentType,command:e.command,className:`size-4`}),(0,k.jsx)(`span`,{className:`text-[11px]`,children:`Built-in`})]}):(0,k.jsx)(`select`,{id:`${f}-icon`,value:e.agentType??``,"aria-label":`Icon for ${p}`,onChange:e=>s(e.target.value||void 0),className:A_(dJ,`w-full px-1`),children:EJ.map(e=>(0,k.jsx)(`option`,{value:e.value,children:e.label},e.value))}),(0,k.jsx)(pJ,{ref:d,id:`${f}-label`,value:e.label,placeholder:`Name`,"aria-label":`Name of preset ${t+1}`,maxLength:64,onCommit:e=>o(`label`,e),wrapperClassName:`max-md:order-4 max-md:col-span-3`}),(0,k.jsx)(pJ,{id:`${f}-command`,value:e.command,placeholder:`command --flags`,"aria-label":`Command for ${p}`,maxLength:TJ,spellCheck:!1,autoCapitalize:`off`,autoCorrect:`off`,onCommit:e=>o(`command`,e),wrapperClassName:`max-md:order-5 max-md:col-span-3`}),e.isBuiltIn?(0,k.jsx)(`span`,{"aria-hidden":`true`,className:`w-[32px] max-md:order-3 max-md:w-[44px]`}):(0,k.jsx)(`button`,{type:`button`,onClick:()=>{if(r||l){c();return}u(!0)},onPointerDown:r?e=>e.preventDefault():void 0,onBlur:()=>u(!1),"aria-label":l?`Confirm delete ${p}`:r?`Discard new preset`:`Delete ${p}`,title:l?`Click again to delete`:void 0,className:A_(cJ,`max-md:order-3`,l?`border-danger bg-danger/10 px-2 text-danger hover:bg-danger/20`:`w-[32px] border-border bg-surface text-secondary hover:bg-hover hover:text-danger max-md:w-[44px]`),children:l?`Delete?`:(0,k.jsx)(me,{width:W.default,height:W.default})})]})}function NJ({ids:e}){let t=U(e=>e.commandPresets),n=U(e=>e.defaultPresetId),[r,i]=(0,y.useState)(null),a=(0,y.useRef)(null),o=(0,y.useRef)(null),s=(0,y.useRef)(!1);(0,y.useEffect)(()=>{if(!s.current)return;s.current=!1;let e=o.current;if(e&&!e.disabled){e.focus();return}let t=a.current?.id;t&&typeof document<`u`&&document.getElementById(`settings-preset-${t}-label`)?.focus()});let c=e=>{a.current=e,i(e)},l=!r&&t.length<50,u=r?[...t,r]:t,d=(e,t,n)=>{let r=DJ(t,n);if(r)return r;let{commandPresets:i,setCommandPresets:a}=U.getState();return a(kJ(i,e,{[t]:n})),null},f=(e,t)=>{let n=a.current;if(!n)return null;let r={...n,[e]:t},{commandPresets:i,setCommandPresets:o}=U.getState();return OJ(r)&&i.length<50?(o([...i,St(r)]),c(null)):c(r),null},p=(e,t)=>{if(r?.id===e){c({...r,agentType:t});return}let{commandPresets:n,setCommandPresets:i}=U.getState();i(kJ(n,e,{agentType:t}))},m=()=>{l&&c({id:wt(new Set(t.map(e=>e.id))),label:``,command:``,isBuiltIn:!1})},h=e=>{s.current=!0,a.current?.id===e?c(null):U.getState().removePreset(e)};return(0,k.jsxs)(`div`,{className:`w-full min-w-0`,children:[(0,k.jsxs)(`div`,{"aria-hidden":`true`,className:A_(AJ,`border-b border-border pb-1 text-[11px] uppercase tracking-wide text-muted max-md:hidden`),children:[(0,k.jsx)(`span`,{className:`text-center`,children:`Default`}),(0,k.jsx)(`span`,{children:`Icon`}),(0,k.jsx)(`span`,{children:`Name`}),(0,k.jsx)(`span`,{children:`Command`}),(0,k.jsx)(`span`,{className:`w-[32px]`})]}),(0,k.jsx)(`div`,{role:`list`,"aria-labelledby":e.label,"aria-describedby":e.description,className:`divide-y divide-border-subtle`,children:u.map((e,t)=>{let i=e.id===r?.id;return(0,k.jsx)(MJ,{preset:e,index:t,isDefault:e.id===n,pending:i,autoFocusName:i,onSetDefault:()=>U.getState().setDefaultPresetId(e.id),onCommitField:(t,n)=>i?f(t,n):d(e.id,t,n),onIconChange:t=>p(e.id,t),onDelete:()=>h(e.id)},e.id)})}),r&&(0,k.jsx)(`p`,{className:A_(`text-[12px] leading-snug text-muted`,`pb-2`),role:`status`,children:`Enter a name and a command to add the preset.`}),(0,k.jsxs)(`div`,{className:`mt-2 flex items-center gap-3`,children:[(0,k.jsxs)(`button`,{ref:o,type:`button`,className:lJ,onClick:m,disabled:!l,children:[(0,k.jsx)(Qe,{width:W.default,height:W.default,className:`mr-1.5`}),`Add preset`]}),t.length>=50&&(0,k.jsxs)(`span`,{className:`text-[12px] leading-snug text-muted`,children:[`Maximum of `,50,` presets.`]})]})]})}function PJ({ids:e}){let t=U(e=>e.defaultProjectDir);return(0,k.jsx)(pJ,{id:e.control,value:t,placeholder:ht,describedBy:e.description,spellCheck:!1,autoCapitalize:`off`,autoCorrect:`off`,maxLength:4096,wrapperClassName:`w-72 max-md:w-full`,onCommit:e=>(U.getState().setDefaultProjectDir(e.trim()||`~/Documents/GitHub`),null)})}var FJ=[{id:`default-project-dir`,page:`new-sessions`,label:`Default project directory`,description:`Folder the new session dialog starts in. Default ${ht}.`,keywords:[`path`,`folder`,`cwd`,`directory`],layout:`wide`,Control:PJ},{id:`command-presets`,page:`new-sessions`,label:`Command presets`,description:`Commands offered when creating a session. The default preset is pre-selected.`,keywords:[`preset`,`command`,`agent`,`claude`,`codex`,`default`,`icon`],layout:`block`,Control:NJ}],IJ=null,LJ=!1,RJ={},zJ=500;function BJ(){if(typeof window>`u`)return null;if(IJ?.state===`closed`&&(IJ=null),!IJ){let e=window.AudioContext??window.webkitAudioContext;if(!e)return null;IJ=new e}return IJ}function VJ(){IJ&&=(IJ.close().catch(()=>{}),null),BJ()}function HJ(){return LJ}function UJ(){IJ&&(VJ(),LJ=!0)}if(typeof window<`u`){window.addEventListener(`pageshow`,e=>{e.persisted&&UJ()}),document.addEventListener(`visibilitychange`,()=>{document.visibilityState===`visible`&&UJ()});let e=Date.now();setInterval(()=>{let t=Date.now();t-e>15e3&&UJ(),e=t},5e3)}async function WJ(){let e=BJ();e&&e.state===`suspended`&&await e.resume().catch(()=>{}),LJ=!1}async function GJ(e){e.state===`suspended`&&await e.resume().catch(()=>{})}async function KJ(e){let t=BJ();if(!t||(await GJ(t),t.state!==`running`))return;let{frequencies:n,durationMs:r,attackMs:i,peakGain:a,type:o=`sine`}=e,s=t.currentTime,c=r/1e3,l=i/1e3,u=t.createGain();u.connect(t.destination);let d=s+c*.7;u.gain.setValueAtTime(0,s),u.gain.linearRampToValueAtTime(a,s+l),u.gain.setValueAtTime(a,d),u.gain.linearRampToValueAtTime(0,s+c);let f=n.map(e=>{let n=t.createOscillator();return n.type=o,n.frequency.setValueAtTime(e,s),n.connect(u),n});for(let e of f)e.start(s),e.stop(s+c);let p=f[f.length-1];p.onended=()=>{for(let e of f)e.disconnect();u.disconnect()}}async function qJ(){let e=Date.now();if(!(e-(RJ.permission||0)<zJ)){RJ.permission=e;try{await KJ({frequencies:[880],durationMs:150,attackMs:5,peakGain:.15,type:`sine`})}catch{}}}async function JJ(){let e=Date.now();if(!(e-(RJ.idle||0)<zJ)){RJ.idle=e;try{await KJ({frequencies:[440,550],durationMs:300,attackMs:10,peakGain:.08,type:`sine`})}catch{}}}function YJ({controlled:e,default:t,name:n,state:r=`value`}){let{current:i}=y.useRef(e!==void 0),[a,o]=y.useState(t);return[i?e:a,y.useCallback(e=>{i||o(e)},[])]}var XJ={};function ZJ(e,t){let n=y.useRef(XJ);return n.current===XJ&&(n.current=e(t)),n}var QJ=y[`useInsertionEffect${Math.random().toFixed(1)}`.slice(0,-3)],$J=QJ&&QJ!==y.useLayoutEffect?QJ:e=>e();function eY(e){let t=ZJ(tY).current;return t.next=e,$J(t.effect),t.trampoline}function tY(){let e={next:void 0,callback:nY,trampoline:(...t)=>e.callback?.(...t),effect:()=>{e.callback=e.next}};return e}function nY(){}function rY(e,t,n,r){let i=ZJ(aY).current;return oY(i,e,t,n,r)&&cY(i,[e,t,n,r]),i.callback}function iY(e){let t=ZJ(aY).current;return sY(t,e)&&cY(t,e),t.callback}function aY(){return{callback:null,cleanup:null,refs:[]}}function oY(e,t,n,r,i){return e.refs[0]!==t||e.refs[1]!==n||e.refs[2]!==r||e.refs[3]!==i}function sY(e,t){return e.refs.length!==t.length||e.refs.some((e,n)=>e!==t[n])}function cY(e,t){if(e.refs=t,t.every(e=>e==null)){e.callback=null;return}e.callback=n=>{if(e.cleanup&&=(e.cleanup(),null),n!=null){let r=Array(t.length).fill(null);for(let e=0;e<t.length;e+=1){let i=t[e];if(i!=null)switch(typeof i){case`function`:{let t=i(n);typeof t==`function`&&(r[e]=t);break}case`object`:i.current=n;break;default:}}e.cleanup=()=>{for(let e=0;e<t.length;e+=1){let n=t[e];if(n!=null)switch(typeof n){case`function`:{let t=r[e];typeof t==`function`?t():n(null);break}case`object`:n.current=null;break;default:}}}}}}var lY=typeof document<`u`?y.useLayoutEffect:()=>{},uY={clipPath:`inset(50%)`,overflow:`hidden`,whiteSpace:`nowrap`,border:0,padding:0,width:1,height:1,margin:-1},dY={...uY,position:`fixed`,top:0,left:0},fY={...uY,position:`absolute`};function pY(){}Object.freeze([]);var mY=Object.freeze({});function hY(e,...t){let n=new URL(`https://base-ui.com/production-error`);return n.searchParams.set(`code`,e.toString()),t.forEach(e=>n.searchParams.append(`args[]`,e)),`Base UI error #${e}; visit ${n} for the full message.`}var gY=18;function _Y(e){return gY>=e}function vY(e){if(!y.isValidElement(e))return null;let t=e,n=t.props;return(_Y(19)?n?.ref:t.ref)??null}function yY(e,t){if(e&&!t)return e;if(!e&&t)return t;if(e||t)return{...e,...t}}function bY(e,t){let n={};for(let r in e){let i=e[r];if(t?.hasOwnProperty(r)){let e=t[r](i);e!=null&&Object.assign(n,e);continue}i===!0?n[`data-${r.toLowerCase()}`]=``:i&&(n[`data-${r.toLowerCase()}`]=i.toString())}return n}function xY(e,t){return typeof e==`function`?e(t):e}function SY(e,t){return typeof e==`function`?e(t):e}var CY={};function wY(e,t,n,r,i){let a={...AY(e,CY)};return t&&(a=EY(a,t)),n&&(a=EY(a,n)),r&&(a=EY(a,r)),i&&(a=EY(a,i)),a}function TY(e){if(e.length===0)return CY;if(e.length===1)return AY(e[0],CY);let t={...AY(e[0],CY)};for(let n=1;n<e.length;n+=1)t=EY(t,e[n]);return t}function EY(e,t){return kY(t)?t(e):DY(e,t)}function DY(e,t){if(!t)return e;for(let n in t){let r=t[n];switch(n){case`style`:e[n]=yY(e.style,r);break;case`className`:e[n]=NY(e.className,r);break;default:OY(n,r)?e[n]=jY(e[n],r):e[n]=r}}return e}function OY(e,t){let n=e.charCodeAt(0),r=e.charCodeAt(1),i=e.charCodeAt(2);return n===111&&r===110&&i>=65&&i<=90&&(typeof t==`function`||t===void 0)}function kY(e){return typeof e==`function`}function AY(e,t){return kY(e)?e(t):e??CY}function jY(e,t){return t?e?n=>{if(PY(n)){let r=n;MY(r);let i=t(r);return r.baseUIHandlerPrevented||e?.(r),i}let r=t(n);return e?.(n),r}:t:e}function MY(e){return e.preventBaseUIHandler=()=>{e.baseUIHandlerPrevented=!0},e}function NY(e,t){return t?e?t+` `+e:t:e}function PY(e){return typeof e==`object`&&!!e&&`nativeEvent`in e}function FY(e,t,n={}){let r=t.render,i=IY(t,n);return n.enabled===!1?null:RY(e,r,i,n.state??mY)}function IY(e,t={}){let{className:n,style:r,render:i}=e,{state:a=mY,ref:o,props:s,stateAttributesMapping:c,enabled:l=!0}=t,u=l?xY(n,a):void 0,d=l?SY(r,a):void 0,f=l?bY(a,c):mY,p=l?yY(f,Array.isArray(s)?TY(s):s)??mY:mY;return typeof document<`u`&&(l?Array.isArray(o)?p.ref=iY([p.ref,vY(i),...o]):p.ref=rY(p.ref,vY(i),o):rY(null,null)),l?(u!==void 0&&(p.className=NY(p.className,u)),d!==void 0&&(p.style=yY(p.style,d)),p):mY}var LY=Symbol.for(`react.lazy`);function RY(e,t,n,r){if(t){if(typeof t==`function`)return t(n,r);let e=wY(n,t.props);e.ref=n.ref;let i=t;return i?.$$typeof===LY&&(i=y.Children.toArray(t)[0]),y.cloneElement(i,e)}if(e&&typeof e==`string`)return zY(e,n);throw Error(hY(8))}function zY(e,t){return e===`button`?(0,y.createElement)(`button`,{type:`button`,...t,key:t.key}):e===`img`?(0,y.createElement)(`img`,{alt:``,...t,key:t.key}):y.createElement(e,t)}var BY={...y},VY=0;function HY(e,t=`mui`){let[n,r]=y.useState(e),i=e||n;return y.useEffect(()=>{n??(VY+=1,r(`${t}-${VY}`))},[n,t]),i}var UY=BY.useId;function WY(e,t){if(UY!==void 0){let n=UY();return e??(t?`${t}-${n}`:n)}return HY(e,t)}function GY(e){return WY(e,`base-ui`)}function KY(){return typeof window<`u`}function qY(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function JY(e){return KY()?e instanceof Element||e instanceof qY(e).Element:!1}function YY(e){return KY()?e instanceof HTMLElement||e instanceof qY(e).HTMLElement:!1}function XY(e){return!KY()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof qY(e).ShadowRoot}var ZY=y.createContext(void 0);function QY(e=!1){let t=y.useContext(ZY);if(t===void 0&&!e)throw Error(hY(16));return t}function $Y(e){let{focusableWhenDisabled:t,disabled:n,composite:r=!1,tabIndex:i=0,isNativeButton:a}=e,o=r&&t!==!1,s=r&&t===!1;return{props:y.useMemo(()=>{let e={onKeyDown(e){n&&t&&e.key!==`Tab`&&e.preventDefault()}};return r||(e.tabIndex=i,!a&&n&&(e.tabIndex=t?i:-1)),(a&&(t||o)||!a&&n)&&(e[`aria-disabled`]=n),a&&(!t||s)&&(e.disabled=n),e},[r,n,t,o,s,a,i])}}function eX(e={}){let{disabled:t=!1,focusableWhenDisabled:n,tabIndex:r=0,native:i=!0}=e,a=y.useRef(null),o=QY(!0)!==void 0,s=eY(()=>{let e=a.current;return!!(e?.tagName===`A`&&e?.href)}),{props:c}=$Y({focusableWhenDisabled:n,disabled:t,composite:o,tabIndex:r,isNativeButton:i}),l=y.useCallback(()=>{let e=a.current;tX(e)&&o&&t&&c.disabled===void 0&&e.disabled&&(e.disabled=!1)},[t,c.disabled,o]);return lY(l,[l]),{getButtonProps:y.useCallback((e={})=>{let{onClick:n,onMouseDown:r,onKeyUp:a,onKeyDown:o,onPointerDown:l,...u}=e;return wY({type:i?`button`:void 0,onClick(e){if(t){e.preventDefault();return}n?.(e)},onMouseDown(e){t||r?.(e)},onKeyDown(e){if(t||(MY(e),o?.(e)),e.baseUIHandlerPrevented)return;let r=e.target===e.currentTarget&&!i&&!s()&&!t,a=e.key===`Enter`,c=e.key===` `;r&&((c||a)&&e.preventDefault(),a&&n?.(e))},onKeyUp(e){t||(MY(e),a?.(e)),!e.baseUIHandlerPrevented&&e.target===e.currentTarget&&!i&&!t&&e.key===` `&&n?.(e)},onPointerDown(e){if(t){e.preventDefault();return}l?.(e)}},i?void 0:{role:`button`},c,u)},[t,c,i,s]),buttonRef:eY(e=>{a.current=e,l()})}}function tX(e){return YY(e)&&e.tagName===`BUTTON`}var nX=y.createContext(void 0);function rX(){let e=y.useContext(nX);if(e===void 0)throw Error(hY(63));return e}var iX=function(e){return e.disabled=`data-disabled`,e.valid=`data-valid`,e.invalid=`data-invalid`,e.touched=`data-touched`,e.dirty=`data-dirty`,e.filled=`data-filled`,e.focused=`data-focused`,e}({}),aX={badInput:!1,customError:!1,patternMismatch:!1,rangeOverflow:!1,rangeUnderflow:!1,stepMismatch:!1,tooLong:!1,tooShort:!1,typeMismatch:!1,valid:null,valueMissing:!1},oX={valid(e){return e===null?null:e?{[iX.valid]:``}:{[iX.invalid]:``}}},sX=function(e){return e.checked=`data-checked`,e.unchecked=`data-unchecked`,e.disabled=`data-disabled`,e.readonly=`data-readonly`,e.required=`data-required`,e.valid=`data-valid`,e.invalid=`data-invalid`,e.touched=`data-touched`,e.dirty=`data-dirty`,e.filled=`data-filled`,e.focused=`data-focused`,e}({}),cX={...oX,checked(e){return e?{[sX.checked]:``}:{[sX.unchecked]:``}}};function lX(e,t){return{...e,state:{...e.state,valid:!t&&e.state.valid}}}var uX=y.createContext({formRef:{current:{fields:new Map}},errors:{},clearErrors:pY,validationMode:`onSubmit`,submitAttemptedRef:{current:!1}});function dX(){return y.useContext(uX)}var fX=y.createContext({invalid:void 0,name:void 0,validityData:{state:aX,errors:[],error:``,value:``,initialValue:null},setValidityData:pY,disabled:void 0,touched:!1,setTouched:pY,dirty:!1,setDirty:pY,filled:!1,setFilled:pY,focused:!1,setFocused:pY,validate:()=>null,validationMode:`onSubmit`,validationDebounceTime:0,shouldValidateOnChange:()=>!1,state:{disabled:!1,valid:null,touched:!1,dirty:!1,filled:!1,focused:!1},markedDirtyRef:{current:!1},validation:{getValidationProps:(e=mY)=>e,getInputValidationProps:(e=mY)=>e,inputRef:{current:null},commit:async()=>{}}});function pX(e=!0){let t=y.useContext(fX);if(t.setValidityData===pY&&!e)throw Error(hY(28));return t}function mX(e){let{enabled:t=!0,value:n,id:r,name:i,controlRef:a,commit:o}=e,{formRef:s}=dX(),{invalid:c,markedDirtyRef:l,validityData:u,setValidityData:d}=pX(),f=eY(e.getValue);lY(()=>{if(!t)return;let e=n;e===void 0&&(e=f()),u.initialValue===null&&e!==null&&d(t=>({...t,initialValue:e}))},[t,d,n,u.initialValue,f]),lY(()=>{!t||!r||s.current.fields.set(r,{getValue:f,name:i,controlRef:a,validityData:lX(u,c),validate(e=!0){let t=n;t===void 0&&(t=f()),l.current=!0,e?cf.flushSync(()=>o(t)):o(t)}})},[o,a,t,s,f,r,c,l,i,u,n]),lY(()=>{let e=s.current.fields;return()=>{r&&e.delete(r)}},[s,r])}var hX=y.createContext({controlId:void 0,registerControlId:pY,labelId:void 0,setLabelId:pY,messageIds:[],setMessageIds:pY,getDescriptionProps:e=>e});function gX(){return y.useContext(hX)}function _X(e={}){let{id:t,implicit:n=!1,controlRef:r}=e,{controlId:i,registerControlId:a}=gX(),o=GY(t),s=n?i:void 0,c=ZJ(()=>Symbol(`labelable-control`)),l=y.useRef(!1),u=y.useRef(t!=null),d=eY(()=>{!l.current||a===pY||(l.current=!1,a(c.current,void 0))});return lY(()=>{if(a===pY)return;let e;if(n){let n=r?.current;e=JY(n)&&n.closest(`label`)!=null?t??null:s??o}else if(t!=null)u.current=!0,e=t;else if(u.current)e=o;else{d();return}if(e===void 0){d();return}l.current=!0,a(c.current,e)},[t,r,s,a,n,o,c,d]),y.useEffect(()=>d,[d]),i??o}var vX=`none`;function yX(e,t,n,r){let i=!1,a=!1,o=r??mY;return{reason:e,event:t??new Event(`base-ui`),cancel(){i=!0},allowPropagation(){a=!0},get isCanceled(){return i},get isPropagationAllowed(){return a},trigger:n,...o}}function bX(e,t){let n=y.useRef(e),r=eY(t);lY(()=>{n.current!==e&&r(n.current)},[e,r]),lY(()=>{n.current=e},[e])}var xX=y.forwardRef(function(e,t){let{checked:n,className:r,defaultChecked:i,id:a,inputRef:o,name:s,nativeButton:c=!1,onCheckedChange:l,readOnly:u=!1,required:d=!1,disabled:f=!1,render:p,uncheckedValue:m,value:h,...g}=e,{clearErrors:_}=dX(),{state:v,setTouched:b,setDirty:x,validityData:S,setFilled:C,setFocused:w,shouldValidateOnChange:T,validationMode:E,disabled:D,name:O,validation:A}=pX(),{labelId:j}=gX(),M=D||f,N=O??s,P=eY(l),F=y.useRef(null),ee=rY(F,o,A.inputRef),I=y.useRef(null),L=GY(),R=_X({id:a,implicit:!1,controlRef:I}),z=c?void 0:R,[B,te]=YJ({controlled:n,default:!!i,name:`Switch`,state:`checked`});mX({id:L,commit:A.commit,value:B,controlRef:I,name:N,getValue:()=>B}),lY(()=>{F.current&&C(F.current.checked)},[F,C]),bX(B,()=>{_(N),x(B!==S.initialValue),C(B),T()?A.commit(B):A.commit(B,!0)});let{getButtonProps:V,buttonRef:ne}=eX({disabled:M,native:c}),H={id:c?R:L,role:`switch`,"aria-checked":B,"aria-readonly":u||void 0,"aria-required":d||void 0,"aria-labelledby":j,onFocus(){M||w(!0)},onBlur(){let e=F.current;!e||M||(b(!0),w(!1),E===`onBlur`&&A.commit(e.checked))},onClick(e){u||M||(e.preventDefault(),F.current?.dispatchEvent(new PointerEvent(`click`,{bubbles:!0,shiftKey:e.shiftKey,ctrlKey:e.ctrlKey,altKey:e.altKey,metaKey:e.metaKey})))}},re=y.useMemo(()=>wY({checked:B,disabled:M,id:z,name:N,required:d,style:N?fY:dY,tabIndex:-1,type:`checkbox`,"aria-hidden":!0,ref:ee,onChange(e){if(e.nativeEvent.defaultPrevented)return;let t=e.target.checked,n=yX(vX,e.nativeEvent);P?.(t,n),!n.isCanceled&&te(t)},onFocus(){I.current?.focus()}},A.getInputValidationProps,h===void 0?mY:{value:h}),[B,M,ee,z,N,P,d,te,A,h]),ie=y.useMemo(()=>({...v,checked:B,disabled:M,readOnly:u,required:d}),[v,B,M,u,d]),ae=FY(`span`,e,{state:ie,ref:[t,I,ne],props:[H,A.getValidationProps,g,V],stateAttributesMapping:cX});return(0,k.jsxs)(nX.Provider,{value:ie,children:[ae,!B&&N&&m!==void 0&&(0,k.jsx)(`input`,{type:`hidden`,name:N,value:m}),(0,k.jsx)(`input`,{...re})]})}),SX=y.forwardRef(function(e,t){let{render:n,className:r,...i}=e,{state:a}=pX(),o=rX();return FY(`span`,e,{state:{...a,...o},ref:t,stateAttributesMapping:cX,props:i})});function CX({checked:e,onCheckedChange:t,disabled:n,className:r,ariaLabel:i,id:a,ariaLabelledBy:o,ariaDescribedBy:s}){return(0,k.jsx)(xX,{checked:e,onCheckedChange:t,disabled:n,"aria-label":i,id:a,"aria-labelledby":o,"aria-describedby":s,className:A_(`group relative inline-flex h-6 w-10 shrink-0 cursor-pointer items-center rounded-full transition-colors`,`bg-border data-[checked]:bg-accent`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-bg-base`,`disabled:cursor-not-allowed disabled:opacity-50`,r),children:(0,k.jsx)(SX,{className:A_(`pointer-events-none block size-4 rounded-full bg-white shadow-sm transition-transform`,`translate-x-1 group-data-[checked]:translate-x-5`)})})}function wX(e,t,n,r){return function({ids:i}){let a=U(t=>t[e]),o=U(e=>e[t]);return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(`button`,{type:`button`,className:lJ,"aria-label":`Test ${r}`,onClick:()=>void n(),children:`Test`}),(0,k.jsx)(CX,{className:Ht,id:i.control,checked:a,onCheckedChange:e=>{o(e),e&&WJ()},ariaLabelledBy:i.label,ariaDescribedBy:i.description})]})}}var TX=[{id:`sound-permission`,page:`notifications`,label:`Permission sound`,description:`Play a ping when any session needs permission.`,keywords:[`sound`,`audio`,`alert`,`ping`,`approval`],Control:wX(`soundOnPermission`,`setSoundOnPermission`,qJ,`permission sound`)},{id:`sound-idle`,page:`notifications`,label:`Idle sound`,description:`Play a chime when a session finishes working.`,keywords:[`sound`,`audio`,`alert`,`chime`,`done`,`finished`],Control:wX(`soundOnIdle`,`setSoundOnIdle`,JJ,`idle sound`)}];function EX(e,t,n){let r=`/api/settings/${e}`,[i,a]=(0,y.useState)(n),[o,s]=(0,y.useState)(!0),[c,l]=(0,y.useState)(!1),u=(0,y.useRef)(n),d=(0,y.useRef)(Promise.resolve()),f=(0,y.useRef)(0),p=(0,y.useRef)(!0),m=(0,y.useRef)(!1);return(0,y.useEffect)(()=>{p.current=!0;let e=!0;return fetch(r).then(e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);return e.json()}).then(n=>{if(!e)return;let r=n[t];f.current===0&&!m.current&&(u.current=r),m.current||a(r)}).catch(()=>{}).finally(()=>{e&&(l(!0),f.current===0&&s(!1))}),()=>{e=!1,p.current=!1}},[r,t]),{value:i,loading:o,loaded:c,set:(0,y.useCallback)(e=>{m.current=!0,f.current+=1,a(e),s(!0),d.current=d.current.then(()=>fetch(r,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({[t]:e})}).then(t=>{if(!t.ok)throw Error(`HTTP ${t.status}`);u.current=e}).catch(()=>{p.current&&f.current===1&&a(u.current)}).finally(()=>{--f.current,p.current&&f.current===0&&s(!1)}))},[r,t])}}function DX(e,t){return function({ids:n}){let r=U(t=>t[e]),i=U(e=>e[t]);return(0,k.jsx)(CX,{className:Ht,id:n.control,checked:r,onCheckedChange:i,ariaLabelledBy:n.label,ariaDescribedBy:n.description})}}function OX({ids:e}){return(0,k.jsx)(_J,{options:[{value:`created`,label:`Created`},{value:`status`,label:`Status`},{value:`manual`,label:`Manual`}],value:U(e=>e.sessionSortMode),onChange:U(e=>e.setSessionSortMode),labelledBy:e.label,describedBy:e.description})}function kX(){let e=U(e=>e.sessionSortMode);return e===`status`?(0,k.jsx)(k.Fragment,{children:`Permission sessions come first; the rest sort by newest activity.`}):e===`manual`?(0,k.jsx)(k.Fragment,{children:`Drag sessions in the sidebar to reorder them.`}):(0,k.jsx)(k.Fragment,{children:`Sessions stay in the order they were created.`})}function AX({ids:e}){return(0,k.jsx)(_J,{options:[{value:`desc`,label:`Newest first`},{value:`asc`,label:`Oldest first`}],value:U(e=>e.sessionSortDirection),onChange:U(e=>e.setSessionSortDirection),labelledBy:e.label,describedBy:e.description})}function jX({ids:e}){return(0,k.jsx)(_J,{options:[{value:`top`,label:`Top`},{value:`bottom`,label:`Bottom`}],value:U(e=>e.sidebarAnchor),onChange:U(e=>e.setSidebarAnchor),labelledBy:e.label,describedBy:e.description})}function MX(){return U(e=>e.sidebarAnchor)===`bottom`?(0,k.jsx)(k.Fragment,{children:`The sidebar is mirrored: the first session sits at the bottom, next to the prompt.`}):(0,k.jsx)(k.Fragment,{children:`The first session sits at the top of the sidebar.`})}function NX({ids:e}){let{value:t,loaded:n,set:r}=EX(`history-max-age-hours`,`hours`,24);return(0,k.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,k.jsx)(pJ,{id:e.control,type:`text`,inputMode:`numeric`,value:String(t),disabled:!n,describedBy:e.description,wrapperClassName:`w-20`,className:`text-center tabular-nums`,onCommit:e=>{let n=mJ(e,1,168);return n===null?`Enter 1–168`:(n!==t&&r(n),null)}}),(0,k.jsx)(`span`,{className:`flex h-[32px] items-center text-[12px] text-muted max-md:h-[44px]`,children:`hours`})]})}function PX({ids:e}){let{value:t,loaded:n,set:r}=EX(`prefer-window-name`,`enabled`,!1);return(0,k.jsx)(CX,{className:Ht,id:e.control,checked:t,onCheckedChange:r,disabled:!n,ariaLabelledBy:e.label,ariaDescribedBy:e.description})}var FX=[{id:`sort-order`,page:`session-list`,label:`Sort order`,description:`Created keeps creation order, Status re-sorts by status, Manual lets you drag.`,keywords:[`sort`,`order`,`created`,`status`,`manual`,`drag`],layout:`wide`,Description:kX,Control:OX},{id:`sort-direction`,page:`session-list`,label:`Sort direction`,description:`Newest or oldest sessions first.`,keywords:[`sort`,`newest`,`oldest`,`ascending`,`descending`],layout:`wide`,visibleWhen:e=>e.sessionSortMode===`created`,Control:AX},{id:`sidebar-anchor`,page:`session-list`,label:`Sidebar anchor`,description:`Top lists the first session at the top; Bottom mirrors the sidebar.`,keywords:[`sidebar`,`mirror`,`top`,`bottom`],tags:[`desktop`],Description:MX,Control:jX},{id:`show-project-name`,page:`session-list`,label:`Project name`,description:`Show the project folder name under each session.`,keywords:[`folder`,`details`],Control:DX(`showProjectName`,`setShowProjectName`)},{id:`show-last-user-message`,page:`session-list`,label:`Last user message`,description:`Show the most recent prompt next to the project name.`,keywords:[`prompt`,`input`,`details`],Control:DX(`showLastUserMessage`,`setShowLastUserMessage`)},{id:`show-session-id-prefix`,page:`session-list`,label:`Session ID prefix`,description:`Show the first 5 characters of the agent session ID.`,keywords:[`id`,`uuid`,`details`],Control:DX(`showSessionIdPrefix`,`setShowSessionIdPrefix`)},{id:`history-lookback`,page:`session-list`,label:`History lookback`,description:`Show history sessions from the last N hours (1–168), up to the 100 most recent. Default 24.`,keywords:[`history`,`hours`,`age`,`inactive`,`past`],Control:NX},{id:`prefer-window-name`,page:`session-list`,label:`Prefer window names`,description:`Label discovered sessions with their tmux window name instead of the session name.`,keywords:[`tmux`,`window`,`name`,`title`],Control:PX}],IX=`1-9 [ ] N X ,`;function LX({ids:e}){let t=U(e=>e.useWebGL),n=U(e=>e.setUseWebGL);return(0,k.jsx)(CX,{className:Ht,id:e.control,checked:t,onCheckedChange:n,ariaLabelledBy:e.label,ariaDescribedBy:e.description})}function RX(e,t){return function({ids:n}){let{value:r,loaded:i,set:a}=EX(e,`enabled`,t);return(0,k.jsx)(CX,{className:Ht,id:n.control,checked:r,onCheckedChange:a,disabled:!i,ariaLabelledBy:n.label,ariaDescribedBy:n.description})}}var zX=[`auto`,`ctrl-option`,`ctrl-shift`,`cmd-option`,`cmd-shift`];function BX({ids:e}){let t=U(e=>e.shortcutModifier),n=U(e=>e.setShortcutModifier);return(0,k.jsx)(_J,{options:zX.map(e=>({value:e,label:e===`auto`?`Auto`:Mt(e)})),value:t,onChange:n,labelledBy:e.label,describedBy:e.description})}function VX(){return(0,k.jsxs)(k.Fragment,{children:[`Shortcuts: `,Mt(At(U(e=>e.shortcutModifier))),` + `,IX,` (sessions, navigate, new, kill, settings).`]})}var HX=[{id:`webgl`,page:`terminal`,label:`WebGL acceleration`,description:`GPU rendering for better performance. Turn off if text looks fuzzy or flickers (common in Safari).`,keywords:[`gpu`,`renderer`,`canvas`,`blurry`,`performance`],tags:[`device`],Control:LX},{id:`mouse-mode`,page:`terminal`,label:`Mouse mode`,description:`tmux mouse mode for trackpad and scroll wheel support.`,keywords:[`tmux`,`scroll`,`trackpad`,`mouse`],Control:RX(`tmux-mouse-mode`,!0)},{id:`terminal-colors`,page:`terminal`,label:`Terminal colors`,description:`Preserve ANSI colors in terminal output. Hibernate then Wake running agents after changing this.`,keywords:[`ansi`,`color`,`colour`],Control:RX(`terminal-colors`,!0)},{id:`shortcut-modifier`,page:`terminal`,label:`Keyboard shortcut modifier`,description:`Modifier keys for the app shortcuts. Auto picks ⌃⌥ on macOS, ⌃⇧ elsewhere.`,keywords:[`keyboard`,`shortcut`,`hotkey`,`ctrl`,`cmd`,`option`,`shift`],tags:[`desktop`,`device`],layout:`wide`,Description:VX,Control:BX}],UX=[...FJ,...FX,...wJ,...HX,...TX];function WX(e,t=UX){return t.filter(t=>t.page===e)}function GX(e){return[e.label,e.description,...e.keywords??[]].join(` `).toLowerCase()}function KX(e,t=UX){let n=e.trim().toLowerCase().split(/\s+/).filter(Boolean);return n.length===0?[]:t.filter(e=>{let t=GX(e);return n.every(e=>t.includes(e))})}function qX(e){return eJ.map(t=>({page:t.id,label:t.label,rows:e.filter(e=>e.page===t.id)})).filter(e=>e.rows.length>0)}var JX={desktop:`Desktop`,device:`This device`},YX={desktop:`Only affects the desktop layout`,device:`Stored in this browser only; not synced to other devices`};function XX({tag:e}){return(0,k.jsx)(`span`,{title:YX[e],className:`shrink-0 border border-border px-1 py-px text-[10px] uppercase leading-none tracking-wide text-muted`,children:JX[e]})}function ZX(e){let t=`settings-${e}`;return{control:`${t}-control`,label:`${t}-label`,description:`${t}-desc`}}function QX({row:e}){let t=ZX(e.id),n=e.layout??`inline`,{Control:r,Description:i}=e;return(0,k.jsxs)(`div`,{"data-setting-row":e.id,className:A_(`flex gap-x-6 gap-y-3 py-4`,n===`block`&&`flex-col`,n===`wide`&&`items-center max-md:flex-col max-md:items-stretch`,n===`inline`&&`items-center`),children:[(0,k.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,k.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-2 gap-y-1`,children:[(0,k.jsx)(`label`,{id:t.label,htmlFor:t.control,className:`text-[14px] leading-snug text-primary`,children:e.label}),e.tags?.map(e=>(0,k.jsx)(XX,{tag:e},e))]}),(0,k.jsx)(`div`,{id:t.description,className:`mt-1 text-[12px] leading-snug text-muted text-pretty`,children:i?(0,k.jsx)(i,{}):e.description})]}),(0,k.jsx)(`div`,{className:A_(`flex min-w-0 items-center gap-2`,n===`inline`?`shrink-0`:`max-w-full`),children:(0,k.jsx)(r,{ids:t})})]})}function $X(e,t){return e.visibleWhen?e.visibleWhen(t):!0}function eZ({rows:e}){let t=U(t=>e.map(e=>$X(e,t)?`1`:`0`).join(``));return(0,k.jsx)(`div`,{className:`divide-y divide-border`,children:e.filter((e,n)=>t[n]===`1`).map(e=>(0,k.jsx)(QX,{row:e},e.id))})}function tZ({page:e,showTitle:t}){let n=(0,y.useMemo)(()=>WX(e),[e]);return(0,k.jsxs)(`section`,{"aria-labelledby":t?`settings-page-${e}-title`:void 0,children:[t&&(0,k.jsx)(`h3`,{id:`settings-page-${e}-title`,className:`pb-1 text-[18px] font-semibold leading-tight text-primary`,children:nJ(e)}),(0,k.jsx)(eZ,{rows:n})]})}function nZ({query:e}){let t=(0,y.useMemo)(()=>KX(e),[e]),n=U(e=>t.some(t=>$X(t,e))),r=(0,y.useMemo)(()=>qX(t),[t]);return n?(0,k.jsx)(`div`,{className:`flex flex-col gap-6`,children:r.map(e=>(0,k.jsx)(rZ,{label:e.label,rows:e.rows},e.page))}):(0,k.jsxs)(`div`,{role:`status`,className:`flex flex-col items-center gap-1 py-16 text-center`,children:[(0,k.jsxs)(`p`,{className:`text-[14px] text-primary`,children:[`No settings match “`,e.trim(),`”`]}),(0,k.jsx)(`p`,{className:`text-[12px] text-muted`,children:`Try a different word, like “font” or “sound”.`})]})}function rZ({label:e,rows:t}){return U(e=>t.some(t=>$X(t,e)))?(0,k.jsxs)(`section`,{"aria-label":e,children:[(0,k.jsx)(`h3`,{className:`border-b border-border pb-1 text-[11px] font-medium uppercase tracking-wider text-muted`,children:e}),(0,k.jsx)(eZ,{rows:t})]}):null}function iZ(e){return`settings-tab-${e}`}function aZ(e,t,n){return e===`ArrowDown`?(t+1)%n:e===`ArrowUp`?(t-1+n)%n:e===`Home`?0:e===`End`?n-1:null}function oZ({variant:e,current:t,onSelect:n,panelId:r}){let i=(0,y.useRef)([]),a=Math.max(0,eJ.findIndex(e=>e.id===t)),o=(t,r)=>{let a=aZ(t.key,r,eJ.length);a!==null&&(t.preventDefault(),i.current[a]?.focus(),e===`tabs`&&n(eJ[a].id))};return e===`list`?(0,k.jsx)(`nav`,{"aria-label":`Settings pages`,children:(0,k.jsx)(`ul`,{className:`divide-y divide-border border-y border-border`,children:eJ.map((e,t)=>(0,k.jsx)(`li`,{children:(0,k.jsxs)(`button`,{ref:e=>{i.current[t]=e},type:`button`,"data-page-id":e.id,onClick:()=>n(e.id),onKeyDown:e=>o(e,t),className:`flex min-h-[52px] w-full items-center justify-between gap-3 px-4 text-left text-[15px] text-primary active:bg-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-accent`,children:[e.label,(0,k.jsx)(V,{width:W.primary,height:W.primary,className:`text-muted`,"aria-hidden":`true`})]})},e.id))})}):(0,k.jsx)(`div`,{role:`tablist`,"aria-orientation":`vertical`,"aria-label":`Settings pages`,className:`flex flex-col gap-px`,children:eJ.map((e,s)=>{let c=e.id===t;return(0,k.jsx)(`button`,{ref:e=>{i.current[s]=e},id:iZ(e.id),type:`button`,role:`tab`,"aria-selected":c,"aria-controls":r,tabIndex:s===a?0:-1,onClick:()=>n(e.id),onKeyDown:e=>o(e,s),className:A_(`flex h-[32px] w-full items-center border-l-2 px-3 text-left text-[13px] transition-colors`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-accent`,c?`border-primary bg-hover font-medium text-primary`:`border-transparent text-secondary hover:text-primary`),children:e.label},e.id)})})}var sZ=(0,y.forwardRef)(function({value:e,onChange:t,className:n},r){return(0,k.jsxs)(`div`,{className:n,children:[(0,k.jsx)(`label`,{htmlFor:`settings-search`,className:`sr-only`,children:`Search settings`}),(0,k.jsx)(`input`,{ref:r,id:`settings-search`,type:`search`,value:e,placeholder:`Search settings`,autoComplete:`off`,spellCheck:!1,onChange:e=>t(e.target.value),onKeyDown:n=>{n.key===`Escape`&&e&&(n.preventDefault(),t(``))},className:`input h-[32px] px-2 py-0 text-[13px] max-md:h-[44px] max-md:text-[16px] focus-visible:ring-2 focus-visible:ring-accent/40`})]})}),cZ=[`a[href]`,`button:not([disabled])`,`input:not([disabled]):not([type="hidden"])`,`select:not([disabled])`,`textarea:not([disabled])`,`[tabindex]:not([tabindex="-1"])`].join(`,`);function lZ(e){return Array.from(e.querySelectorAll(cZ)).filter(e=>e.getAttribute(`aria-hidden`)!==`true`&&e.tabIndex!==-1)}function uZ(e,t,n){if(e.length===0)return null;let r=e[0],i=e[e.length-1],a=t===null?-1:e.indexOf(t);return a===-1?n?i:r:n&&a===0?i:!n&&a===e.length-1?r:null}var dZ=`.xterm-helper-textarea`,fZ=300,pZ=`[data-suspends-terminal]`,mZ=null;function hZ(e){return!e||typeof document>`u`||e===document.body?null:typeof e.focus==`function`?e:null}function gZ(e,t){if(e.isConnected)return e;if(!t)return null;let n=t.replace(/["\\]/g,`\\$&`);return document.querySelector(`button[aria-label="${n}"]`)}function _Z(){(0,y.useEffect)(()=>{if(typeof document>`u`||typeof document.querySelector!=`function`)return;mZ&&=(clearTimeout(mZ),null);let e=hZ(document.activeElement),t=document.querySelector(dZ);t&&(t.blur(),t.setAttribute(`disabled`,`true`));let n=e?.getAttribute?.(`aria-label`)??null;return()=>{mZ=setTimeout(()=>{if(mZ=null,document.querySelector(pZ))return;let r=document.querySelector(dZ);if(r){r.removeAttribute(`disabled`),r.focus();return}(e&&e!==t?gZ(e,n):null)?.focus()},fZ)}},[])}function vZ(e,t){let n=(0,y.useRef)(t);n.current=t,(0,y.useEffect)(()=>{if(typeof document>`u`||typeof document.addEventListener!=`function`)return;let t=t=>{if(t.key===`Escape`){if(t.defaultPrevented)return;t.preventDefault(),t.stopPropagation(),n.current();return}if(t.key!==`Tab`)return;let r=e.current;if(!r)return;let i=document.activeElement,a=uZ(lZ(r),i,t.shiftKey);a&&(t.preventDefault(),a.focus())},r=t=>{let n=e.current,r=t.target;n&&r&&!n.contains(r)&&n.focus()};return document.addEventListener(`keydown`,t),document.addEventListener(`focusin`,r),()=>{document.removeEventListener(`keydown`,t),document.removeEventListener(`focusin`,r)}},[e])}function yZ({isOpen:e,onClose:t}){return e?(0,k.jsx)(SZ,{onClose:t}):null}var bZ=`settings-panel`,xZ=`flex shrink-0 items-center justify-center text-secondary transition-colors hover:bg-hover hover:text-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-accent`;function SZ({onClose:e}){let t=Yh(),[n,r]=(0,y.useState)(()=>t?null:aJ()),[i,a]=(0,y.useState)(``),o=(0,y.useRef)(null),s=(0,y.useRef)(null),c=(0,y.useRef)(null),l=(0,y.useRef)(!1),u=(0,y.useRef)(null);_Z(),vZ(o,e),(0,y.useEffect)(()=>{t?o.current?.focus():s.current?.focus()},[]),(0,y.useEffect)(()=>{if(t){if(n)c.current?.focus();else if(u.current){let e=o.current?.querySelector(`[data-page-id="${u.current}"]`);u.current=null,e?.focus()}}},[t,n]);let d=e=>{r(e),oJ(e),a(``)},f=i.trim().length>0,p=(0,k.jsx)(`button`,{type:`button`,onClick:e,"aria-label":`Close settings`,className:A_(xZ,`size-[32px] max-md:size-[44px]`),children:(0,k.jsx)(it,{width:W.primary,height:W.primary})});if(t)return(0,k.jsxs)(`div`,{ref:o,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`settings-title`,"data-suspends-terminal":``,tabIndex:-1,className:`fixed inset-0 z-50 flex flex-col bg-elevated outline-none`,style:{paddingTop:`env(safe-area-inset-top)`,paddingLeft:`env(safe-area-inset-left)`,paddingRight:`env(safe-area-inset-right)`},children:[(0,k.jsxs)(`header`,{className:`flex h-[52px] shrink-0 items-center gap-1 border-b border-border px-1`,children:[n?(0,k.jsx)(`button`,{ref:c,type:`button`,onClick:()=>{u.current=n,r(null)},"aria-label":`Back to settings`,className:A_(xZ,`size-[44px]`),children:(0,k.jsx)(V,{width:W.primary,height:W.primary,className:`rotate-180`})}):(0,k.jsx)(`span`,{"aria-hidden":`true`,className:`size-[44px] shrink-0`}),(0,k.jsx)(`h2`,{id:`settings-title`,className:`min-w-0 flex-1 truncate text-center text-[16px] font-semibold text-primary`,children:n?nJ(n):`Settings`}),p]}),(0,k.jsx)(`div`,{id:bZ,className:`min-h-0 flex-1 overflow-y-auto overflow-x-hidden overscroll-contain px-4`,style:{paddingBottom:`calc(24px + env(safe-area-inset-bottom))`},children:n?(0,k.jsx)(tZ,{page:n,showTitle:!1}):(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(sZ,{ref:s,value:i,onChange:a,className:`py-3`}),f?(0,k.jsx)(nZ,{query:i}):(0,k.jsx)(`div`,{className:`-mx-4`,children:(0,k.jsx)(oZ,{variant:`list`,current:null,onSelect:d})})]})})]});let m=n??aJ();return(0,k.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/30 p-4`,onMouseDown:e=>{l.current=e.target===e.currentTarget},onClick:t=>{l.current&&t.target===t.currentTarget&&e(),l.current=!1},children:(0,k.jsxs)(`div`,{ref:o,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`settings-title`,"data-suspends-terminal":``,tabIndex:-1,className:`flex h-[600px] max-h-full w-[760px] max-w-full flex-col border border-border bg-elevated shadow-2xl outline-none`,children:[(0,k.jsxs)(`header`,{className:`flex h-[48px] shrink-0 items-center justify-between border-b border-border pl-5 pr-2`,children:[(0,k.jsx)(`h2`,{id:`settings-title`,className:`text-[13px] font-semibold uppercase tracking-wider text-primary`,children:`Settings`}),p]}),(0,k.jsxs)(`div`,{className:`flex min-h-0 flex-1`,children:[(0,k.jsxs)(`div`,{className:`flex w-[192px] shrink-0 flex-col gap-3 border-r border-border p-3`,children:[(0,k.jsx)(sZ,{ref:s,value:i,onChange:a}),(0,k.jsx)(oZ,{variant:`tabs`,current:f?null:m,onSelect:d,panelId:bZ})]}),(0,k.jsx)(`div`,{id:bZ,role:f?`region`:`tabpanel`,"aria-label":f?`Search results`:void 0,"aria-labelledby":f?void 0:iZ(m),className:`min-w-0 flex-1 overflow-y-auto overflow-x-hidden px-6 py-5`,children:f?(0,k.jsx)(nZ,{query:i}):(0,k.jsx)(tZ,{page:m,showTitle:!0})})]})]})})}var CZ=[];function wZ(e){y.useEffect(e,CZ)}var TZ=y.createContext(void 0);function EZ(){let e=y.useContext(TZ);if(!e)throw Error(hY(73));return e}var DZ=Symbol(`NOT_FOUND`);function OZ(e,t=`expected a function, instead received ${typeof e}`){if(typeof e!=`function`)throw TypeError(t)}function kZ(e,t=`expected an object, instead received ${typeof e}`){if(typeof e!=`object`)throw TypeError(t)}function AZ(e,t=`expected all items to be functions, instead received the following types: `){if(!e.every(e=>typeof e==`function`)){let n=e.map(e=>typeof e==`function`?`function ${e.name||`unnamed`}()`:typeof e).join(`, `);throw TypeError(`${t}[${n}]`)}}var jZ=e=>Array.isArray(e)?e:[e];function MZ(e){let t=Array.isArray(e[0])?e[0]:e;return AZ(t,`createSelector expects all input-selectors to be functions, but received the following types: `),t}function NZ(e,t){let n=[],{length:r}=e;for(let i=0;i<r;i++)n.push(e[i].apply(null,t));return n}function PZ(e){let t;return{get(n){return t&&e(t.key,n)?t.value:DZ},put(e,n){t={key:e,value:n}},getEntries(){return t?[t]:[]},clear(){t=void 0}}}function FZ(e,t){let n=[];function r(e){let r=n.findIndex(n=>t(e,n.key));if(r>-1){let e=n[r];return r>0&&(n.splice(r,1),n.unshift(e)),e.value}return DZ}function i(t,i){r(t)===DZ&&(n.unshift({key:t,value:i}),n.length>e&&n.pop())}function a(){return n}function o(){n=[]}return{get:r,put:i,getEntries:a,clear:o}}var IZ=(e,t)=>e===t;function LZ(e){return function(t,n){if(t===null||n===null||t.length!==n.length)return!1;let{length:r}=t;for(let i=0;i<r;i++)if(!e(t[i],n[i]))return!1;return!0}}function RZ(e,t){let{equalityCheck:n=IZ,maxSize:r=1,resultEqualityCheck:i}=typeof t==`object`?t:{equalityCheck:t},a=LZ(n),o=0,s=r<=1?PZ(a):FZ(r,a);function c(){let t=s.get(arguments);if(t===DZ){if(t=e.apply(null,arguments),o++,i){let e=s.getEntries().find(e=>i(e.value,t));e&&(t=e.value,o!==0&&o--)}s.put(arguments,t)}return t}return c.clearCache=()=>{s.clear(),c.resetResultsCount()},c.resultsCount=()=>o,c.resetResultsCount=()=>{o=0},c}var zZ=class{constructor(e){this.value=e}deref(){return this.value}},BZ=typeof WeakRef<`u`?WeakRef:zZ,VZ=0,HZ=1;function UZ(){return{s:VZ,v:void 0,o:null,p:null}}function WZ(e,t={}){let n=UZ(),{resultEqualityCheck:r}=t,i,a=0;function o(){let t=n,{length:o}=arguments;for(let e=0,n=o;e<n;e++){let n=arguments[e];if(typeof n==`function`||typeof n==`object`&&n){let e=t.o;e===null&&(t.o=e=new WeakMap);let r=e.get(n);r===void 0?(t=UZ(),e.set(n,t)):t=r}else{let e=t.p;e===null&&(t.p=e=new Map);let r=e.get(n);r===void 0?(t=UZ(),e.set(n,t)):t=r}}let s=t,c;if(t.s===HZ)c=t.v;else if(c=e.apply(null,arguments),a++,r){let e=i?.deref?.()??i;e!=null&&r(e,c)&&(c=e,a!==0&&a--),i=typeof c==`object`&&c||typeof c==`function`?new BZ(c):c}return s.s=HZ,s.v=c,c}return o.clearCache=()=>{n=UZ(),o.resetResultsCount()},o.resultsCount=()=>a,o.resetResultsCount=()=>{a=0},o}function GZ(e,...t){let n=typeof e==`function`?{memoize:e,memoizeOptions:t}:e,r=(...e)=>{let t=0,r=0,i,a={},o=e.pop();typeof o==`object`&&(a=o,o=e.pop()),OZ(o,`createSelector expects an output function after the inputs, but received: [${typeof o}]`);let{memoize:s,memoizeOptions:c=[],argsMemoize:l=WZ,argsMemoizeOptions:u=[],devModeChecks:d={}}={...n,...a},f=jZ(c),p=jZ(u),m=MZ(e),h=s(function(){return t++,o.apply(null,arguments)},...f),g=l(function(){r++;let e=NZ(m,arguments);return i=h.apply(null,e),i},...p);return Object.assign(g,{resultFunc:o,memoizedResultFunc:h,dependencies:m,dependencyRecomputations:()=>r,resetDependencyRecomputations:()=>{r=0},lastResult:()=>i,recomputations:()=>t,resetRecomputations:()=>{t=0},memoize:s,argsMemoize:l})};return Object.assign(r,{withTypes:()=>r}),r}var KZ=GZ(WZ),qZ=Object.assign((e,t=KZ)=>{kZ(e,`createStructuredSelector expects first argument to be an object where each property is a selector, instead received a ${typeof e}`);let n=Object.keys(e);return t(n.map(t=>e[t]),(...e)=>e.reduce((e,t,r)=>(e[n[r]]=t,e),{}))},{withTypes:()=>qZ}),JZ=GZ({memoize:RZ,memoizeOptions:{maxSize:1,equalityCheck:Object.is}}),YZ=(e,t,n,r,i,a,...o)=>{if(o.length>0)throw Error(hY(1));let s;if(e&&t&&n&&r&&i&&a)s=(o,s,c,l)=>a(e(o,s,c,l),t(o,s,c,l),n(o,s,c,l),r(o,s,c,l),i(o,s,c,l),s,c,l);else if(e&&t&&n&&r&&i)s=(a,o,s,c)=>i(e(a,o,s,c),t(a,o,s,c),n(a,o,s,c),r(a,o,s,c),o,s,c);else if(e&&t&&n&&r)s=(i,a,o,s)=>r(e(i,a,o,s),t(i,a,o,s),n(i,a,o,s),a,o,s);else if(e&&t&&n)s=(r,i,a,o)=>n(e(r,i,a,o),t(r,i,a,o),i,a,o);else if(e&&t)s=(n,r,i,a)=>t(e(n,r,i,a),r,i,a);else if(e)s=e;else throw Error(`Missing arguments`);return s},XZ=(...e)=>{let t=new WeakMap,n=1,r=e[e.length-1],i=e.length-1||1,a=r.length-i;if(a>3)throw Error(hY(2));return(i,o,s,c)=>{let l=i.__cacheKey__;l||(l={id:n},i.__cacheKey__=l,n+=1);let u=t.get(l);if(!u){let n=e,i=[void 0,void 0,void 0];switch(a){case 0:break;case 1:n=[...e.slice(0,-1),()=>i[0],r];break;case 2:n=[...e.slice(0,-1),()=>i[0],()=>i[1],r];break;case 3:n=[...e.slice(0,-1),()=>i[0],()=>i[1],()=>i[2],r];break;default:throw Error(hY(2))}u=JZ(...n),u.selectorArgs=i,t.set(l,u)}switch(u.selectorArgs[0]=o,u.selectorArgs[1]=s,u.selectorArgs[2]=c,a){case 0:return u(i);case 1:return u(i,o);case 2:return u(i,o,s);case 3:return u(i,o,s,c);default:throw Error(`unreachable`)}}},ZZ=s((e=>{var t=p();function n(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var r=typeof Object.is==`function`?Object.is:n,i=t.useState,a=t.useEffect,o=t.useLayoutEffect,s=t.useDebugValue;function c(e,t){var n=t(),r=i({inst:{value:n,getSnapshot:t}}),c=r[0].inst,u=r[1];return o(function(){c.value=n,c.getSnapshot=t,l(c)&&u({inst:c})},[e,n,t]),a(function(){return l(c)&&u({inst:c}),e(function(){l(c)&&u({inst:c})})},[e]),s(n),n}function l(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch{return!0}}function u(e,t){return t()}var d=typeof window>`u`||window.document===void 0||window.document.createElement===void 0?u:c;e.useSyncExternalStore=t.useSyncExternalStore===void 0?d:t.useSyncExternalStore})),QZ=s(((e,t)=>{t.exports=ZZ()})),$Z=s((e=>{var t=p(),n=QZ();function r(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var i=typeof Object.is==`function`?Object.is:r,a=n.useSyncExternalStore,o=t.useRef,s=t.useEffect,c=t.useMemo,l=t.useDebugValue;e.useSyncExternalStoreWithSelector=function(e,t,n,r,u){var d=o(null);if(d.current===null){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=c(function(){function e(e){if(!a){if(a=!0,o=e,e=r(e),u!==void 0&&f.hasValue){var t=f.value;if(u(t,e))return s=t}return s=e}if(t=s,i(o,e))return t;var n=r(e);return u!==void 0&&u(t,n)?(o=e,t):(o=e,s=n)}var a=!1,o,s,c=n===void 0?null:n;return[function(){return e(t())},c===null?void 0:function(){return e(c())}]},[t,n,r,u]);var p=a(e,d[0],d[1]);return s(function(){f.hasValue=!0,f.value=p},[p]),l(p),p}})),eQ=s(((e,t)=>{t.exports=$Z()})),tQ=[],nQ=void 0;function rQ(){return nQ}function iQ(e){tQ.push(e)}var aQ=QZ(),oQ=eQ(),sQ=_Y(19)?uQ:dQ;function cQ(e,t,n,r,i){return sQ(e,t,n,r,i)}function lQ(e,t,n,r,i){let a=y.useCallback(()=>t(e.getSnapshot(),n,r,i),[e,t,n,r,i]);return(0,aQ.useSyncExternalStore)(e.subscribe,a,a)}iQ({before(e){e.syncIndex=0,e.didInitialize||(e.syncTick=1,e.syncHooks=[],e.didChangeStore=!0,e.getSnapshot=()=>{let t=!1;for(let n=0;n<e.syncHooks.length;n+=1){let r=e.syncHooks[n],i=r.selector(r.store.state,r.a1,r.a2,r.a3);(r.didChange||!Object.is(r.value,i))&&(t=!0,r.value=i,r.didChange=!1)}return t&&(e.syncTick+=1),e.syncTick})},after(e){e.syncHooks.length>0&&(e.didChangeStore&&(e.didChangeStore=!1,e.subscribe=t=>{let n=new Set;for(let t of e.syncHooks)n.add(t.store);let r=[];for(let e of n)r.push(e.subscribe(t));return()=>{for(let e of r)e()}}),(0,aQ.useSyncExternalStore)(e.subscribe,e.getSnapshot,e.getSnapshot))}});function uQ(e,t,n,r,i){let a=rQ();if(!a)return lQ(e,t,n,r,i);let o=a.syncIndex;a.syncIndex+=1;let s;return a.didInitialize?(s=a.syncHooks[o],(s.store!==e||s.selector!==t||!Object.is(s.a1,n)||!Object.is(s.a2,r)||!Object.is(s.a3,i))&&(s.store!==e&&(a.didChangeStore=!0),s.store=e,s.selector=t,s.a1=n,s.a2=r,s.a3=i,s.didChange=!0)):(s={store:e,selector:t,a1:n,a2:r,a3:i,value:t(e.getSnapshot(),n,r,i),didChange:!1},a.syncHooks.push(s)),s.value}function dQ(e,t,n,r,i){return(0,oQ.useSyncExternalStoreWithSelector)(e.subscribe,e.getSnapshot,e.getSnapshot,e=>t(e,n,r,i))}var fQ=class{constructor(e){this.state=e,this.listeners=new Set,this.updateTick=0}subscribe=e=>(this.listeners.add(e),()=>{this.listeners.delete(e)});getSnapshot=()=>this.state;setState(e){if(this.state===e)return;this.state=e,this.updateTick+=1;let t=this.updateTick;for(let n of this.listeners){if(t!==this.updateTick)return;n(e)}}update(e){for(let t in e)if(!Object.is(this.state[t],e[t])){this.setState({...this.state,...e});return}}set(e,t){Object.is(this.state[e],t)||this.setState({...this.state,[e]:t})}notifyAll(){let e={...this.state};this.setState(e)}use(e,t,n,r){return cQ(this,e,t,n,r)}},pQ=class extends fQ{constructor(e,t={},n){super(e),this.context=t,this.selectors=n}useSyncedValue(e,t){y.useDebugValue(e),lY(()=>{this.state[e]!==t&&this.set(e,t)},[e,t])}useSyncedValueWithCleanup(e,t){let n=this;lY(()=>(n.state[e]!==t&&n.set(e,t),()=>{n.set(e,void 0)}),[n,e,t])}useSyncedValues(e){let t=this;lY(()=>{t.update(e)},[t,...Object.values(e)])}useControlledProp(e,t){y.useDebugValue(e);let n=t!==void 0;lY(()=>{n&&!Object.is(this.state[e],t)&&super.setState({...this.state,[e]:t})},[e,t,n])}select(e,t,n,r){let i=this.selectors[e];return i(this.state,t,n,r)}useState(e,t,n,r){return y.useDebugValue(e),cQ(this,this.selectors[e],t,n,r)}useContextCallback(e,t){y.useDebugValue(e);let n=eY(t??pY);this.context[e]=n}useStateSetter(e){let t=y.useRef(void 0);return t.current===void 0&&(t.current=t=>{this.set(e,t)}),t.current}observe(e,t){let n;n=typeof e==`function`?e:this.selectors[e];let r=n(this.state);return t(r,r,this),this.subscribe(e=>{let i=n(e);if(!Object.is(r,i)){let e=r;r=i,t(i,e,this)}})}},mQ=null;globalThis.requestAnimationFrame;var hQ=new class{callbacks=[];callbacksCount=0;nextId=1;startId=1;isScheduled=!1;tick=e=>{this.isScheduled=!1;let t=this.callbacks,n=this.callbacksCount;if(this.callbacks=[],this.callbacksCount=0,this.startId=this.nextId,n>0)for(let n=0;n<t.length;n+=1)t[n]?.(e)};request(e){let t=this.nextId;return this.nextId+=1,this.callbacks.push(e),this.callbacksCount+=1,this.isScheduled||=(requestAnimationFrame(this.tick),!0),t}cancel(e){let t=e-this.startId;t<0||t>=this.callbacks.length||(this.callbacks[t]=null,--this.callbacksCount)}},gQ=class e{static create(){return new e}static request(e){return hQ.request(e)}static cancel(e){return hQ.cancel(e)}currentId=mQ;request(e){this.cancel(),this.currentId=hQ.request(()=>{this.currentId=mQ,e()})}cancel=()=>{this.currentId!==mQ&&(hQ.cancel(this.currentId),this.currentId=mQ)};disposeEffect=()=>this.cancel};function _Q(){let e=ZJ(gQ.create).current;return wZ(e.disposeEffect),e}var vQ=0,yQ=class e{static create(){return new e}currentId=vQ;start(e,t){this.clear(),this.currentId=setTimeout(()=>{this.currentId=vQ,t()},e)}isStarted(){return this.currentId!==vQ}clear=()=>{this.currentId!==vQ&&(clearTimeout(this.currentId),this.currentId=vQ)};disposeEffect=()=>this.clear};function bQ(){let e=ZJ(yQ.create).current;return wZ(e.disposeEffect),e}var xQ=0;function SQ(e){return xQ+=1,`${e}-${Math.random().toString(36).slice(2,6)}-${xQ}`}function CQ(e){return e?.ownerDocument||document}function wQ(e,t){if(typeof e==`string`)return{description:e};if(typeof e==`function`){let n=e(t);return typeof n==`string`?{description:n}:n}return e}var TQ=typeof navigator<`u`,EQ=jQ(),DQ=NQ(),OQ=MQ();typeof CSS>`u`||!CSS.supports||CSS.supports(`-webkit-backdrop-filter:none`),EQ.platform===`MacIntel`&&EQ.maxTouchPoints>1||/iP(hone|ad|od)|iOS/.test(EQ.platform),TQ&&/firefox/i.test(OQ);var kQ=TQ&&/apple/i.test(navigator.vendor);TQ&&/Edg/i.test(OQ),TQ&&/android/i.test(DQ)||/android/i.test(OQ),TQ&&DQ.toLowerCase().startsWith(`mac`)&&navigator.maxTouchPoints;var AQ=OQ.includes(`jsdom/`);function jQ(){if(!TQ)return{platform:``,maxTouchPoints:-1};let e=navigator.userAgentData;return e?.platform?{platform:e.platform,maxTouchPoints:navigator.maxTouchPoints}:{platform:navigator.platform??``,maxTouchPoints:navigator.maxTouchPoints??-1}}function MQ(){if(!TQ)return``;let e=navigator.userAgentData;return e&&Array.isArray(e.brands)?e.brands.map(({brand:e,version:t})=>`${e}/${t}`).join(` `):navigator.userAgent}function NQ(){if(!TQ)return``;let e=navigator.userAgentData;return e?.platform?e.platform:navigator.platform??``}function PQ(e){let t=e.activeElement;for(;t?.shadowRoot?.activeElement!=null;)t=t.shadowRoot.activeElement;return t}function FQ(e,t){if(!e||!t)return!1;let n=t.getRootNode?.();if(e.contains(t))return!0;if(n&&XY(n)){let n=t;for(;n;){if(e===n)return!0;n=n.parentNode||n.host}}return!1}function IQ(e){return`composedPath`in e?e.composedPath()[0]:e.target}function LQ(e){if(!e||AQ)return!0;try{return e.matches(`:focus-visible`)}catch{return!0}}var RQ=XZ(e=>e.toasts,e=>{let t=new Map,n=0,r=0;return e.forEach((e,i)=>{let a=e.transitionStatus===`ending`;t.set(e.id,{value:e,domIndex:i,visibleIndex:a?-1:n,offsetY:r}),r+=e.height||0,a||(n+=1)}),t}),zQ={toasts:YZ(e=>e.toasts),isEmpty:YZ(e=>e.toasts.length===0),toast:YZ(RQ,(e,t)=>e.get(t)?.value),toastIndex:YZ(RQ,(e,t)=>e.get(t)?.domIndex??-1),toastOffsetY:YZ(RQ,(e,t)=>e.get(t)?.offsetY??0),toastVisibleIndex:YZ(RQ,(e,t)=>e.get(t)?.visibleIndex??-1),hovering:YZ(e=>e.hovering),focused:YZ(e=>e.focused),expanded:YZ(e=>e.hovering||e.focused),expandedOrOutOfFocus:YZ(e=>e.hovering||e.focused||!e.isWindowFocused),prevFocusElement:YZ(e=>e.prevFocusElement)},BQ=class extends pQ{timers=new Map;areTimersPaused=!1;constructor(e){super(e,{},zQ)}setFocused(e){this.set(`focused`,e)}setHovering(e){this.set(`hovering`,e)}setIsWindowFocused(e){this.set(`isWindowFocused`,e)}setPrevFocusElement(e){this.set(`prevFocusElement`,e)}setViewport=e=>{this.set(`viewport`,e)};disposeEffect=()=>()=>{this.timers.forEach(e=>{e.timeout?.clear()}),this.timers.clear()};removeToast(e){let t=zQ.toastIndex(this.state,e);if(t===-1)return;this.state.toasts[t]?.onRemove?.();let n=[...this.state.toasts];n.splice(t,1),this.setToasts(n)}addToast=e=>{let{toasts:t,timeout:n,limit:r}=this.state,i=e.id||SQ(`toast`),a={...e,id:i,transitionStatus:`starting`},o=[a,...t],s=o.filter(e=>e.transitionStatus!==`ending`);if(s.length>r){let e=s.length-r,t=s.slice(-e),n=new Set(t.map(e=>e.id));this.setToasts(o.map(e=>{let t=n.has(e.id);return e.limited===t?e:{...e,limited:t}}))}else this.setToasts(o.map(e=>e.limited?{...e,limited:!1}:e));let c=a.timeout??n;return a.type!==`loading`&&c>0&&this.scheduleTimer(i,c,()=>this.closeToast(i)),zQ.expandedOrOutOfFocus(this.state)&&this.pauseTimers(),i};updateToast=(e,t)=>{this.updateToastInternal(e,t)};updateToastInternal=(e,t)=>{let{timeout:n,toasts:r}=this.state,i=zQ.toast(this.state,e)??null;if(!i||i.transitionStatus===`ending`)return;let a={...i,...t};this.setToasts(r.map(n=>n.id===e?{...n,...t}:n));let o=a.timeout??n,s=i?.timeout??n,c=Object.hasOwn(t,`timeout`),l=a.transitionStatus!==`ending`&&a.type!==`loading`&&o>0,u=this.timers.has(e),d=s!==o,f=i?.type===`loading`;if(!l&&u){this.timers.get(e)?.timeout?.clear(),this.timers.delete(e);return}if(l&&(!u||d||c||f)){let t=this.timers.get(e);t&&(t.timeout?.clear(),this.timers.delete(e)),this.scheduleTimer(e,o,()=>this.closeToast(e)),zQ.expandedOrOutOfFocus(this.state)&&this.pauseTimers()}};closeToast=e=>{zQ.toast(this.state,e)?.onClose?.();let{limit:t,toasts:n}=this.state,r=0,i=n.map(n=>{if(n.id===e)return{...n,transitionStatus:`ending`,height:0};if(n.transitionStatus===`ending`)return n;let i=r>=t;return r+=1,n.limited===i?n:{...n,limited:i}}),a=this.timers.get(e);a&&a.timeout&&(a.timeout.clear(),this.timers.delete(e)),this.handleFocusManagement(e),this.setToasts(i)};promiseToast=(e,t)=>{let n=wQ(t.loading),r=this.addToast({...n,type:`loading`}),i=e.then(e=>{let n=wQ(t.success,e);return this.updateToast(r,{...n,type:`success`,timeout:n.timeout}),e}).catch(e=>{let n=wQ(t.error,e);return this.updateToast(r,{...n,type:`error`,timeout:n.timeout}),Promise.reject(e)});return{}.hasOwnProperty.call(t,`setPromise`)&&t.setPromise(i),i};pauseTimers(){this.areTimersPaused||(this.areTimersPaused=!0,this.timers.forEach(e=>{if(e.timeout){e.timeout.clear();let t=Date.now()-e.start,n=e.delay-t;e.remaining=n>0?n:0}}))}resumeTimers(){this.areTimersPaused&&(this.areTimersPaused=!1,this.timers.forEach((e,t)=>{e.remaining=e.remaining>0?e.remaining:e.delay,e.timeout??=yQ.create(),e.timeout.start(e.remaining,()=>{this.timers.delete(t),e.callback()}),e.start=Date.now()}))}restoreFocusToPrevElement(){this.state.prevFocusElement?.focus({preventScroll:!0})}handleDocumentPointerDown=e=>{if(e.pointerType!==`touch`)return;let t=IQ(e);FQ(this.state.viewport,t)||(this.resumeTimers(),this.update({hovering:!1,focused:!1}))};scheduleTimer(e,t,n){let r=Date.now(),i=!zQ.expandedOrOutOfFocus(this.state),a=i?yQ.create():void 0;a?.start(t,()=>{this.timers.delete(e),n()}),this.timers.set(e,{timeout:a,start:i?r:0,delay:t,remaining:t,callback:n})}setToasts(e){let t={toasts:e};e.length===0&&(t.hovering=!1,t.focused=!1),this.update(t)}handleFocusManagement(e){let t=PQ(CQ(this.state.viewport));if(!this.state.viewport||!FQ(this.state.viewport,t)||!LQ(t))return;let n=zQ.toasts(this.state),r=zQ.toastIndex(this.state,e),i=null,a=r+1;for(;a<n.length;){if(n[a].transitionStatus!==`ending`){i=n[a];break}a+=1}if(!i)for(a=r-1;a>=0;){if(n[a].transitionStatus!==`ending`){i=n[a];break}--a}i?i.ref?.current?.focus():this.restoreFocusToPrevElement()}},VQ=function(e){let{children:t,timeout:n=5e3,limit:r=3,toastManager:i}=e,a=ZJ(()=>new BQ({timeout:n,limit:r,viewport:null,toasts:[],hovering:!1,focused:!1,isWindowFocused:!0,prevFocusElement:null})).current;return wZ(a.disposeEffect),y.useEffect(function(){if(i)return i[` subscribe`](({action:e,options:t})=>{let n=t.id;e===`promise`&&t.promise?a.promiseToast(t.promise,t):e===`update`&&n?a.updateToast(n,t):e===`close`&&n?a.closeToast(n):a.addToast(t)})},[a,n,i]),a.useSyncedValues({timeout:n,limit:r}),(0,k.jsx)(TZ.Provider,{value:a,children:t})},HQ=y.forwardRef(function(e,t){let[n,r]=y.useState();lY(()=>{kQ&&r(`button`)},[]);let i={tabIndex:0,role:n};return(0,k.jsx)(`span`,{...e,ref:t,style:dY,"aria-hidden":n?void 0:!0,...i,"data-base-ui-focus-guard":``})}),UQ=function(e){return e.frontmostHeight=`--toast-frontmost-height`,e}({}),WQ=y.forwardRef(function(e,t){let{render:n,className:r,children:i,...a}=e,o=EZ(),s=bQ(),c=y.useRef(!1),l=y.useRef(!1),u=o.useState(`isEmpty`),d=o.useState(`toasts`),f=o.useState(`focused`),p=o.useState(`expanded`),m=o.useState(`prevFocusElement`),h=d[0]?.height??0,g=y.useMemo(()=>d.some(e=>e.transitionStatus===`ending`),[d]);y.useEffect(()=>{let e=o.state.viewport;if(!e)return;function t(t){u||t.key===`F6`&&t.target!==e&&(t.preventDefault(),o.setPrevFocusElement(PQ(CQ(e))),e?.focus({preventScroll:!0}),o.pauseTimers(),o.setFocused(!0))}let n=qY(e);return n.addEventListener(`keydown`,t),()=>{n.removeEventListener(`keydown`,t)}},[o,u]),y.useEffect(()=>{let e=o.state.viewport;if(!e||u)return;let t=qY(e);function n(e){e.target===t&&(o.setIsWindowFocused(!1),o.pauseTimers())}function r(n){if(n.relatedTarget||n.target===t)return;let r=IQ(n),i=PQ(CQ(e));(!FQ(e,r)||!LQ(i))&&o.resumeTimers(),s.start(0,()=>o.setIsWindowFocused(!0))}return t.addEventListener(`blur`,n,!0),t.addEventListener(`focus`,r,!0),()=>{t.removeEventListener(`blur`,n,!0),t.removeEventListener(`focus`,r,!0)}},[o,s,u]),y.useEffect(()=>{let e=o.state.viewport;if(!e||u)return;let t=CQ(e);return t.addEventListener(`pointerdown`,o.handleDocumentPointerDown,!0),()=>{t.removeEventListener(`pointerdown`,o.handleDocumentPointerDown,!0)}},[u,o]);function _(e){let t=o.state.viewport;t&&(c.current=!0,e.relatedTarget===t?d[0]?.ref?.current?.focus():o.restoreFocusToPrevElement())}function v(e){e.key===`Tab`&&e.shiftKey&&e.target===o.state.viewport&&(e.preventDefault(),o.restoreFocusToPrevElement(),o.resumeTimers())}y.useEffect(()=>{!o.state.isWindowFocused||g||!l.current||(o.resumeTimers(),o.setHovering(!1),l.current=!1)},[g,o]);function b(){o.pauseTimers(),o.setHovering(!0),l.current=!1}function x(){g?l.current=!0:(o.resumeTimers(),o.setHovering(!1))}function S(){if(c.current){c.current=!1;return}f||LQ(CQ(o.state.viewport).activeElement)&&(o.setFocused(!0),o.pauseTimers())}function C(e){!f||FQ(o.state.viewport,e.relatedTarget)||(o.setFocused(!1),o.resumeTimers())}let w={tabIndex:-1,role:`region`,"aria-live":`polite`,"aria-atomic":!1,"aria-relevant":`additions text`,"aria-label":`Notifications`,onMouseEnter:b,onMouseMove:b,onMouseLeave:x,onFocus:S,onBlur:C,onKeyDown:v,onClick:S},T={expanded:p},E=FY(`div`,e,{ref:[t,o.setViewport],state:T,props:[w,{style:{[UQ.frontmostHeight]:h?`${h}px`:void 0}},a,{children:(0,k.jsxs)(y.Fragment,{children:[!u&&m&&(0,k.jsx)(HQ,{onFocus:_}),i,!u&&m&&(0,k.jsx)(HQ,{onFocus:_})]})}]}),D=y.useMemo(()=>d.filter(e=>e.priority===`high`),[d]);return(0,k.jsxs)(y.Fragment,{children:[!u&&m&&(0,k.jsx)(HQ,{onFocus:_}),E,!f&&D.length>0&&(0,k.jsx)(`div`,{style:dY,children:D.map(e=>(0,k.jsxs)(`div`,{role:`alert`,"aria-atomic":!0,children:[(0,k.jsx)(`div`,{children:e.title}),(0,k.jsx)(`div`,{children:e.description})]},e.id))})]})});function GQ(e){return _Y(19)?e:e?`true`:void 0}var KQ=y.createContext(void 0);function qQ(){let e=y.useContext(KQ);if(!e)throw Error(hY(66));return e}var JQ=function(e){return e.startingStyle=`data-starting-style`,e.endingStyle=`data-ending-style`,e}({}),YQ={[JQ.startingStyle]:``},XQ={[JQ.endingStyle]:``},ZQ={transitionStatus(e){return e===`starting`?YQ:e===`ending`?XQ:null}};function QQ(e){return e==null?e:`current`in e?e.current:e}function $Q(e,t=!1,n=!0){let r=_Q();return eY((i,a=null)=>{r.cancel();function o(){cf.flushSync(i)}let s=QQ(e);if(s==null)return;let c=s;if(typeof c.getAnimations!=`function`||globalThis.BASE_UI_ANIMATIONS_DISABLED)i();else{function e(){let e=JQ.startingStyle;if(!c.hasAttribute(e)){r.request(i);return}let t=new MutationObserver(()=>{c.hasAttribute(e)||(t.disconnect(),i())});t.observe(c,{attributes:!0,attributeFilter:[e]}),a?.addEventListener(`abort`,()=>t.disconnect(),{once:!0})}function i(){Promise.all(c.getAnimations().map(e=>e.finished)).then(()=>{a?.aborted||o()}).catch(()=>{let e=c.getAnimations();if(n){if(a?.aborted)return;o()}else e.length>0&&e.some(e=>e.pending||e.playState!==`finished`)&&i()})}if(t){e();return}r.request(i)}})}function e$(e){let{enabled:t=!0,open:n,ref:r,onComplete:i}=e,a=eY(i),o=$Q(r,n,!1);y.useEffect(()=>{if(!t)return;let e=new AbortController;return o(a,e.signal),()=>{e.abort()}},[t,n,a,o])}var t$=function(e){return e.index=`--toast-index`,e.offsetY=`--toast-offset-y`,e.height=`--toast-height`,e.swipeMovementX=`--toast-swipe-movement-x`,e.swipeMovementY=`--toast-swipe-movement-y`,e}({}),n$={...ZQ,swipeDirection(e){return e?{"data-swipe-direction":e}:null}},r$=40,i$=10,a$=.5,o$=1;function s$(e,t,n){switch(e){case`up`:return-n;case`down`:return n;case`left`:return-t;case`right`:return t;default:return 0}}function c$(e){let t=window.getComputedStyle(e).transform,n=0,r=0,i=1;if(t&&t!==`none`){let e=t.match(/matrix(?:3d)?\(([^)]+)\)/);if(e){let t=e[1].split(`, `).map(parseFloat);t.length===6?(n=t[4],r=t[5],i=Math.sqrt(t[0]*t[0]+t[1]*t[1])):t.length===16&&(n=t[12],r=t[13],i=t[0])}}return{x:n,y:r,scale:i}}var l$=y.forwardRef(function(e,t){let{toast:n,render:r,className:i,swipeDirection:a=[`down`,`right`],...o}=e,s=n.positionerProps?.anchor!==void 0,c=[];s||(c=Array.isArray(a)?a:[a]);let l=c.length>0,u=EZ(),[d,f]=y.useState(void 0),[p,m]=y.useState(!1),[h,g]=y.useState(!1),[_,v]=y.useState(!1),[b,x]=y.useState({x:0,y:0}),[S,C]=y.useState({x:0,y:0,scale:1}),[w,T]=y.useState(),[E,D]=y.useState(),[O,A]=y.useState(null),j=y.useRef(null),M=y.useRef({x:0,y:0}),N=y.useRef({x:0,y:0,scale:1}),P=y.useRef(void 0),F=y.useRef(0),ee=y.useRef(!1),I=y.useRef({x:0,y:0}),L=y.useRef(!1),R=u.useState(`toastIndex`,n.id),z=u.useState(`toastVisibleIndex`,n.id),B=u.useState(`toastOffsetY`,n.id),te=u.useState(`focused`),V=u.useState(`expanded`);e$({open:n.transitionStatus!==`ending`,ref:j,onComplete(){n.transitionStatus===`ending`&&u.removeToast(n.id)}});let ne=eY((e=!1)=>{let t=j.current;if(!t)return;let r=t.style.height;t.style.height=`auto`;let i=t.offsetHeight;t.style.height=r;function a(){u.updateToastInternal(n.id,{ref:j,height:i,...n.transitionStatus===`starting`?{transitionStatus:void 0}:{}})}e?cf.flushSync(a):a()});lY(ne,[ne]);function H(e,t){let n=e,r=t;return!c.includes(`left`)&&!c.includes(`right`)?n=e>0?e**a$:-(Math.abs(e)**a$):(!c.includes(`right`)&&e>0&&(n=e**a$),!c.includes(`left`)&&e<0&&(n=-(Math.abs(e)**a$))),!c.includes(`up`)&&!c.includes(`down`)?r=t>0?t**a$:-(Math.abs(t)**a$):(!c.includes(`down`)&&t>0&&(r=t**a$),!c.includes(`up`)&&t<0&&(r=-(Math.abs(t)**a$))),{x:n,y:r}}function re(e){if(e.button!==0)return;e.pointerType===`touch`&&u.pauseTimers();let t=IQ(e.nativeEvent);if(!(t&&t.closest(`button,a,input,textarea,[role="button"],[data-swipe-ignore]`))){if(ee.current=!1,P.current=void 0,F.current=0,M.current={x:e.clientX,y:e.clientY},I.current=M.current,j.current){let e=c$(j.current);N.current=e,C(e),x({x:e.x,y:e.y})}u.setHovering(!0),m(!0),g(!1),A(null),L.current=!0,j.current?.setPointerCapture(e.pointerId)}}function ie(e){if(!p)return;e.preventDefault(),L.current&&=(M.current={x:e.clientX,y:e.clientY},!1);let{clientY:t,clientX:n,movementX:r,movementY:i}=e;(i<0&&t>I.current.y||i>0&&t<I.current.y)&&(I.current={x:I.current.x,y:t}),(r<0&&n>I.current.x||r>0&&n<I.current.x)&&(I.current={x:n,y:I.current.y});let a=n-M.current.x,o=t-M.current.y,s=t-I.current.y,l=n-I.current.x;if(!h&&Math.sqrt(a*a+o*o)>=o$&&(g(!0),O===null)){let e=c.includes(`left`)||c.includes(`right`),t=c.includes(`up`)||c.includes(`down`);e&&t&&A(Math.abs(a)>Math.abs(o)?`horizontal`:`vertical`)}let u;if(!P.current)O===`vertical`?o>0?u=`down`:o<0&&(u=`up`):O===`horizontal`?a>0?u=`right`:a<0&&(u=`left`):u=Math.abs(a)>=Math.abs(o)?a>0?`right`:`left`:o>0?`down`:`up`,u&&c.includes(u)&&(P.current=u,F.current=s$(u,a,o),f(u));else{let e=P.current,t=s$(e,l,s);t>r$?(ee.current=!1,f(e)):!(c.includes(`left`)&&c.includes(`right`))&&!(c.includes(`up`)&&c.includes(`down`))&&F.current-t>=i$&&(ee.current=!0)}let d=H(a,o),m=N.current.x,_=N.current.y;O===`horizontal`?(c.includes(`left`)||c.includes(`right`))&&(m+=d.x):(O===`vertical`||(c.includes(`left`)||c.includes(`right`))&&(m+=d.x),(c.includes(`up`)||c.includes(`down`))&&(_+=d.y)),x({x:m,y:_})}function ae(e){if(!p)return;if(m(!1),g(!1),A(null),j.current?.releasePointerCapture(e.pointerId),ee.current){x({x:S.x,y:S.y}),f(void 0);return}let t=!1,r=b.x-S.x,i=b.y-S.y,a;for(let e of c){switch(e){case`right`:r>r$&&(t=!0,a=`right`);break;case`left`:r<-r$&&(t=!0,a=`left`);break;case`down`:i>r$&&(t=!0,a=`down`);break;case`up`:i<-r$&&(t=!0,a=`up`);break;default:break}if(t)break}t?(f(a),v(!0),u.closeToast(n.id)):(x({x:S.x,y:S.y}),f(void 0))}function oe(e){if(e.key===`Escape`){if(!j.current||!FQ(j.current,PQ(CQ(j.current))))return;u.closeToast(n.id)}}y.useEffect(()=>{if(!l)return;let e=j.current;if(!e)return;function t(t){FQ(e,t.target)&&t.preventDefault()}return e.addEventListener(`touchmove`,t,{passive:!1}),()=>{e.removeEventListener(`touchmove`,t)}},[l]);function se(){if(!p&&b.x===S.x&&b.y===S.y&&!_)return{[t$.swipeMovementX]:`0px`,[t$.swipeMovementY]:`0px`};let e=b.x-S.x,t=b.y-S.y;return{transition:p?`none`:void 0,transform:p?`translateX(${b.x}px) translateY(${b.y}px) scale(${S.scale})`:void 0,[t$.swipeMovementX]:`${e}px`,[t$.swipeMovementY]:`${t}px`}}let ce=n.priority===`high`,le={role:ce?`alertdialog`:`dialog`,tabIndex:0,"aria-modal":!1,"aria-labelledby":w,"aria-describedby":E,"aria-hidden":ce&&!te?!0:void 0,onPointerDown:l?re:void 0,onPointerMove:l?ie:void 0,onPointerUp:l?ae:void 0,onKeyDown:oe,inert:GQ(n.limited),style:{...se(),[t$.index]:n.transitionStatus===`ending`?R:z,[t$.offsetY]:`${B}px`,[t$.height]:n.height?`${n.height}px`:void 0}},ue=y.useMemo(()=>({rootRef:j,toast:n,titleId:w,setTitleId:T,descriptionId:E,setDescriptionId:D,swiping:p,swipeDirection:d,recalculateHeight:ne,index:R,visibleIndex:z,expanded:V}),[n,w,E,p,d,ne,R,z,V]),de={transitionStatus:n.transitionStatus,expanded:V,limited:n.limited||!1,type:n.type,swiping:ue.swiping,swipeDirection:ue.swipeDirection},fe=FY(`div`,e,{ref:[t,ue.rootRef],state:de,stateAttributesMapping:n$,props:[le,o]});return(0,k.jsx)(KQ.Provider,{value:ue,children:fe})}),u$=y.forwardRef(function(e,t){let{render:n,className:r,id:i,children:a,...o}=e,{toast:s,setDescriptionId:c}=qQ(),l=a??s.description,u=!!l,d=WY(i);lY(()=>{if(u)return c(d),()=>{c(void 0)}},[u,d,c]);let f=FY(`p`,e,{ref:t,state:{type:s.type},props:{...o,id:d,children:l}});return u?f:null}),d$=y.forwardRef(function(e,t){let{render:n,className:r,id:i,children:a,...o}=e,{toast:s,setTitleId:c}=qQ(),l=a??s.title,u=!!l,d=WY(i);lY(()=>{if(u)return c(d),()=>{c(void 0)}},[u,d,c]);let f=FY(`h2`,e,{ref:t,state:{type:s.type},props:{...o,id:d,children:l}});return u?f:null}),f$=y.forwardRef(function(e,t){let{render:n,className:r,disabled:i,nativeButton:a=!0,...o}=e,s=EZ(),{toast:c}=qQ(),l=s.useState(`expanded`),[u,d]=y.useState(!1),{getButtonProps:f,buttonRef:p}=eX({disabled:i,native:a}),m={type:c.type};return FY(`button`,e,{ref:[t,p],state:m,props:[{"aria-hidden":!l&&!u,onClick(){s.closeToast(c.id)},onFocus(){d(!0)},onBlur(){d(!1)}},o,f]})});function p$(){let e=y.useContext(TZ);if(!e)throw Error(hY(73));let t=e.useState(`toasts`);return y.useMemo(()=>({toasts:t,add:e.addToast,close:e.closeToast,update:e.updateToast,promise:e.promiseToast}),[t,e])}function m$(){let e=new Set;function t(t){e.forEach(e=>e(t))}return{" subscribe":function(t){return e.add(t),()=>{e.delete(t)}},add(e){let n=e.id||SQ(`toast`);return t({action:`add`,options:{...e,id:n,transitionStatus:`starting`}}),n},close(e){t({action:`close`,options:{id:e}})},update(e,n){t({action:`update`,options:{...n,id:e}})},promise(e,n){let r=e;return t({action:`promise`,options:{...n,promise:e,setPromise(e){r=e}}}),r}}}var h$=5e3,g$=m$();function _$({toast:e}){return(0,k.jsxs)(l$,{toast:e,className:A_(`relative flex w-80 items-start gap-3 border bg-elevated p-4 shadow-lg`,`data-[swipe=move]:translate-x-[var(--toast-swipe-move-x)]`,`data-[ending-style]:translate-x-[var(--toast-swipe-end-x)]`,`data-[ending-style]:opacity-0`,`data-[starting-style]:translate-y-2 data-[starting-style]:opacity-0`,`transition-all duration-200`,e.type===`error`&&`border-danger/50`,e.type===`success`&&`border-approval/50`,(!e.type||e.type===`info`)&&`border-border`),children:[(0,k.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,k.jsx)(d$,{className:A_(`text-sm font-medium`,e.type===`error`&&`text-danger`,e.type===`success`&&`text-approval`,(!e.type||e.type===`info`)&&`text-primary`),children:e.title}),e.description&&(0,k.jsx)(u$,{className:`mt-1 text-xs text-muted line-clamp-2`,children:e.description})]}),(0,k.jsx)(f$,{className:`shrink-0 text-muted hover:text-primary transition-colors`,"aria-label":`Close`,children:(0,k.jsx)(it,{width:W.default,height:W.default})})]})}function v$(){let{toasts:e}=p$();return(0,k.jsx)(k.Fragment,{children:e.map(e=>(0,k.jsx)(_$,{toast:e},e.id))})}function y$(){return(0,k.jsxs)(VQ,{timeout:h$,toastManager:g$,children:[(0,k.jsx)(v$,{}),(0,k.jsx)(WQ,{className:`fixed bottom-4 right-4 z-[100] flex flex-col gap-2`})]})}var b$=[`CONNECTING`,`OPEN`,`CLOSING`,`CLOSED`],x$=3e3,S$=8e3,C$=15e3,w$=5e3,T$=2e4,E$=1e4,D$=1500,O$=5e3,k$=750,A$=4,j$=5e3,M$=new class{constructor(){this.ws=null,this.listeners=new Set,this.statusListeners=new Set,this.status=`connecting`,this.error=null,this.reconnectAttempts=0,this.reconnectTimer=null,this.connectTimer=null,this.manualClose=!1,this.lastTick=Date.now(),this.wakeCheckInterval=null,this.lifecycleStarted=!1,this.heartbeatTimer=null,this.pongTimer=null,this.lastForceReconnectTs=0,this.lastConnectTs=0,this.pingSeq=0,this.connectionEpoch=0,this.consecutiveFailures=0,this.stallCount=0,this.isResumeAttempt=!1,this.leakedSockets=new Set,this.verifyTimer=null,this.onVisibilityChange=()=>{if(X(`ws_visibility`,{state:document.visibilityState,...this.wsSnap()},`info`),document.visibilityState===`visible`){let e=Date.now(),t=e-this.lastTick;this.lastTick=e,X(`ws_resume`,{gapMs:t,...this.wsSnap()},`info`),this.ws?.readyState===WebSocket.OPEN?this.verifyConnection():this.forceReconnect(`visibilitychange`,!0)}else this.stopHeartbeat(),this.cancelVerify(),this.reconnectTimer&&=(window.clearTimeout(this.reconnectTimer),null)},this.onPageShow=e=>{X(`ws_pageshow`,{persisted:e.persisted,...this.wsSnap()},`info`),e.persisted&&(this.lastTick=Date.now(),this.forceReconnect(`pageshow`,!0))}}wsSnap(){return{status:this.status,ws:this.ws?b$[this.ws.readyState]:null,attempt:this.reconnectAttempts,failures:this.consecutiveFailures,stalls:this.stallCount,leaked:this.leakedSockets.size,online:typeof navigator<`u`?navigator.onLine:void 0,verifying:this.verifyTimer!==null,buffered:this.ws?this.ws.bufferedAmount:void 0}}connect(){if(this.ws){let e=this.ws.readyState===WebSocket.OPEN;if(e&&this.status===`connected`){X(`ws_connect_skip`,{reason:`already_open`,...this.wsSnap()});return}let t=Date.now();if(this.ws.readyState===WebSocket.CONNECTING&&t-this.lastConnectTs<200){X(`ws_connect_skip`,{reason:`already_connecting`,...this.wsSnap()});return}X(`ws_connect_destroy_zombie`,{reason:e?`open_desynced`:`not_open`,...this.wsSnap()}),this.destroySocket()}this.manualClose=!1,this.clearConnectTimer(),this.setStatus(`connecting`);let e=`${window.location.protocol===`https:`?`wss`:`ws`}://${window.location.host}/ws`;X(`ws_connect`,{url:e,resume:this.isResumeAttempt,...this.wsSnap()},`info`);let t=new WebSocket(e);this.ws=t,this.lastConnectTs=Date.now(),this.leakedSockets.add(t);let n=this.isResumeAttempt?S$:x$;this.isResumeAttempt=!1,this.connectTimer=window.setTimeout(()=>{this.ws===t&&(this.connectTimer=null,t.readyState===WebSocket.OPEN&&this.status===`connected`||(X(`ws_connect_timeout`,{wsState:b$[t.readyState],managerStatus:this.status,timeoutMs:n,...this.wsSnap()},`info`),this.consecutiveFailures+=1,this.destroySocket(),this.scheduleReconnect()))},n),t.onopen=()=>{if(this.ws!==t){X(`ws_onopen_stale`,this.wsSnap(),`info`);return}X(`ws_onopen`,this.wsSnap(),`info`),this.clearConnectTimer(),this.reconnectAttempts=0,this.consecutiveFailures=0,this.stallCount=0,this.connectionEpoch+=1,this.leakedSockets.delete(t),this.setStatus(`connected`),this.startHeartbeat()},t.onmessage=e=>{try{let t=e.data,n=performance.now(),r=JSON.parse(t),i=performance.now()-n,a=r;if(a._parseMs=Math.round(i),a._rawLength=t.length,r.type===`pong`){r.seq===this.pingSeq&&(this.clearPongTimer(),this.verifyTimer!==null&&(this.cancelVerify(),X(`ws_verify_ok`,this.wsSnap(),`info`),this.startHeartbeat(O$)));return}this.listeners.forEach(e=>e(r))}catch{}},t.onerror=()=>{this.ws===t&&(X(`ws_onerror`,this.wsSnap(),`info`),this.clearConnectTimer())},t.onclose=e=>{if(this.ws!==t){X(`ws_onclose_stale`,{code:e.code,...this.wsSnap()},`info`);return}X(`ws_onclose`,{code:e.code,reason:e.reason,clean:e.wasClean,...this.wsSnap()},`info`),this.clearConnectTimer(),this.cancelVerify(),this.consecutiveFailures+=1,this.ws=null,this.manualClose?this.setStatus(`disconnected`):this.scheduleReconnect()}}disconnect(){this.manualClose=!0,this.clearConnectTimer(),this.cancelVerify(),this.reconnectTimer&&=(window.clearTimeout(this.reconnectTimer),null),this.destroySocket(),this.setStatus(`disconnected`)}startLifecycleListeners(){this.lifecycleStarted||typeof document>`u`||typeof window>`u`||(this.lifecycleStarted=!0,document.addEventListener(`visibilitychange`,this.onVisibilityChange),window.addEventListener(`pageshow`,this.onPageShow),this.lastTick=Date.now(),this.wakeCheckInterval=window.setInterval(()=>{let e=Date.now(),t=e-this.lastTick;this.isHidden()||(t>C$&&(X(`ws_time_jump`,{gapMs:t,...this.wsSnap()},`info`),this.forceReconnect(`time_jump`,!0)),this.lastTick=e)},w$))}stopLifecycleListeners(){this.lifecycleStarted&&(this.lifecycleStarted=!1,document.removeEventListener(`visibilitychange`,this.onVisibilityChange),window.removeEventListener(`pageshow`,this.onPageShow),this.wakeCheckInterval!==null&&(window.clearInterval(this.wakeCheckInterval),this.wakeCheckInterval=null))}send(e){if(this.ws?.readyState!==WebSocket.OPEN)return!1;try{return this.ws.send(JSON.stringify(e)),!0}catch(t){return X(`ws_send_error`,{messageType:e.type,error:t instanceof Error?t.message:String(t),...this.wsSnap()},`info`),this.destroySocket(),this.scheduleReconnect(),!1}}subscribe(e){return this.listeners.add(e),()=>this.listeners.delete(e)}subscribeStatus(e){return this.statusListeners.add(e),e(this.status,this.error,this.connectionEpoch),()=>this.statusListeners.delete(e)}getStatus(){return this.status}getConnectionEpoch(){return this.connectionEpoch}verifyConnection(){this.cancelVerify(),this.stopHeartbeat(),this.pingSeq+=1;let e=this.pingSeq,t=this.ws;if(X(`ws_verify`,{seq:e,...this.wsSnap()},`info`),!this.send({type:`ping`,seq:e})){X(`ws_verify_send_fail`,this.wsSnap(),`info`),this.forceReconnect(`verify_send_fail`,!0);return}this.verifyTimer=window.setTimeout(()=>{this.verifyTimer=null,this.ws===t&&(X(`ws_verify_timeout`,this.wsSnap(),`info`),this.forceReconnect(`verify_timeout`,!0))},D$)}cancelVerify(){this.verifyTimer!==null&&(window.clearTimeout(this.verifyTimer),this.verifyTimer=null)}forceReconnect(e=`unknown`,t=!1){if(this.manualClose){X(`ws_force_skip`,{trigger:e,reason:`manual_close`});return}let n=Date.now(),r=t?200:500;if(n-this.lastForceReconnectTs<r){X(`ws_force_skip`,{trigger:e,reason:`debounce`,force:t});return}if(!t&&this.ws?.readyState===WebSocket.OPEN&&this.status===`connected`){X(`ws_force_skip`,{trigger:e,reason:`already_connected`});return}this.lastForceReconnectTs=n,X(`ws_force_reconnect`,{trigger:e,force:t,...this.wsSnap()},`info`),this.reconnectAttempts=0,this.consecutiveFailures=0,this.stallCount=0,this.reconnectTimer&&=(window.clearTimeout(this.reconnectTimer),null),this.destroySocket(),t?(this.purgeLeakedSockets(),this.isResumeAttempt=!0,this.setStatus(`reconnecting`),this.reconnectTimer=window.setTimeout(()=>{this.reconnectTimer=null,this.connect()},k$)):this.connect()}startHeartbeat(e){this.stopHeartbeat();let t=()=>{this.ws?.readyState===WebSocket.OPEN&&(this.pingSeq+=1,this.send({type:`ping`,seq:this.pingSeq})&&(this.clearPongTimer(),this.pongTimer=window.setTimeout(()=>{this.pongTimer=null,X(`ws_pong_timeout`,this.wsSnap(),`info`),this.destroySocket(),this.scheduleReconnect()},E$)))};e!==void 0&&e<T$?this.heartbeatTimer=window.setTimeout(()=>{t(),this.heartbeatTimer=window.setInterval(t,T$)},e):this.heartbeatTimer=window.setInterval(t,T$)}stopHeartbeat(){this.heartbeatTimer!==null&&(window.clearTimeout(this.heartbeatTimer),this.heartbeatTimer=null),this.clearPongTimer()}clearPongTimer(){this.pongTimer!==null&&(window.clearTimeout(this.pongTimer),this.pongTimer=null)}setStatus(e,t=null){this.status=e,this.error=t,this.statusListeners.forEach(n=>n(e,t,this.connectionEpoch))}scheduleReconnect(){if(this.stopHeartbeat(),this.isHidden()){X(`ws_schedule_skip`,{reason:`hidden`,...this.wsSnap()}),this.setStatus(`reconnecting`);return}if(this.consecutiveFailures>=A$){X(`ws_stall_detected`,this.wsSnap(),`info`),this.purgeLeakedSockets();let e=Math.min(j$*2**this.stallCount,3e4);this.stallCount+=1,this.consecutiveFailures=0,this.reconnectAttempts=0,this.isResumeAttempt=!0,this.setStatus(`reconnecting`),this.reconnectTimer=window.setTimeout(()=>{this.reconnectTimer=null,this.connect()},e);return}this.reconnectAttempts+=1;let e=Math.min(1e3*2**(this.reconnectAttempts-1),3e4);X(`ws_schedule_reconnect`,{delay:e,...this.wsSnap()}),this.setStatus(`reconnecting`),this.reconnectTimer&&window.clearTimeout(this.reconnectTimer),this.reconnectTimer=window.setTimeout(()=>{this.reconnectTimer=null,this.connect()},e)}isHidden(){return typeof document<`u`&&document.visibilityState===`hidden`}clearConnectTimer(){this.connectTimer&&=(window.clearTimeout(this.connectTimer),null)}destroySocket(){if(this.clearConnectTimer(),this.stopHeartbeat(),this.cancelVerify(),!this.ws)return;let e=this.ws;this.ws=null,this.leakedSockets.add(e),e.onopen=null,e.onmessage=null,e.onerror=null,e.onclose=null;try{e.close()}catch{}}purgeLeakedSockets(){if(this.leakedSockets.size!==0){X(`ws_purge_leaked`,{count:this.leakedSockets.size},`info`);for(let e of this.leakedSockets)try{e.onopen=null,e.onmessage=null,e.onerror=null,e.onclose=null,e.close()}catch{}this.leakedSockets.clear()}}};function N$(){let e=Hh(e=>e.setConnectionState);return(0,y.useEffect)(()=>{M$.connect(),M$.startLifecycleListeners();let t=M$.subscribeStatus((t,n,r)=>{e(t,n,r)});return()=>{t(),M$.stopLifecycleListeners()}},[e]),{sendMessage:(0,y.useMemo)(()=>e=>{M$.send(e)},[]),subscribe:(0,y.useMemo)(()=>M$.subscribe.bind(M$),[]),getConnectionEpoch:(0,y.useMemo)(()=>()=>M$.getConnectionEpoch(),[])}}var P$=100;function F$({viewport:e,win:t,doc:n}){if(!e)return!1;let r=Math.max(0,e.offsetTop||0),i=Math.max(0,e.offsetLeft||0),a=t.innerHeight-(e.height+r),o=Math.max(0,a),s=Math.max(0,e.height||0),c=Math.max(0,e.width||0);return n.documentElement.style.setProperty(`--keyboard-inset`,`${o}px`),n.documentElement.style.setProperty(`--viewport-offset-top`,`${r}px`),n.documentElement.style.setProperty(`--viewport-offset-left`,`${i}px`),n.documentElement.style.setProperty(`--visual-viewport-height`,`${s}px`),n.documentElement.style.setProperty(`--visual-viewport-width`,`${c}px`),o>P$?n.documentElement.classList.add(`keyboard-visible`):n.documentElement.classList.remove(`keyboard-visible`),!0}function I$(e){e.documentElement.style.removeProperty(`--keyboard-inset`),e.documentElement.style.removeProperty(`--viewport-offset-top`),e.documentElement.style.removeProperty(`--viewport-offset-left`),e.documentElement.style.removeProperty(`--visual-viewport-height`),e.documentElement.style.removeProperty(`--visual-viewport-width`),e.documentElement.classList.remove(`keyboard-visible`)}function L$(){(0,y.useEffect)(()=>{let e=window.visualViewport;if(!e)return;let t=null,n=null,r=()=>{let e=document.activeElement;if(!e)return!1;let t=e.tagName?.toLowerCase();return t===`input`||t===`textarea`?!0:!!e.isContentEditable},i=()=>{F$({viewport:e,win:window,doc:document})},a=()=>{if(typeof window.requestAnimationFrame!=`function`){i();return}t!==null&&window.cancelAnimationFrame(t);let e=performance.now(),n=()=>{i(),t=performance.now()-e<1500?window.requestAnimationFrame(n):null};t=window.requestAnimationFrame(n)},o=()=>{if(!r()){c();return}i()},s=()=>{n!==null||typeof window.setInterval!=`function`||(n=window.setInterval(o,250),o())},c=()=>{n===null||typeof window.clearInterval!=`function`||(window.clearInterval(n),n=null)},l=()=>{r()?(a(),s(),i()):c()},u=()=>{l()},d=()=>{l()},f=()=>{a()};return i(),l(),e.addEventListener(`resize`,i),e.addEventListener(`scroll`,i),typeof window.addEventListener==`function`&&(window.addEventListener(`resize`,i),window.addEventListener(`orientationchange`,f)),typeof document.addEventListener==`function`&&(document.addEventListener(`focusin`,u),document.addEventListener(`focusout`,d),document.addEventListener(`focus`,u,!0),document.addEventListener(`blur`,d,!0)),()=>{e.removeEventListener(`resize`,i),e.removeEventListener(`scroll`,i),typeof window.removeEventListener==`function`&&(window.removeEventListener(`resize`,i),window.removeEventListener(`orientationchange`,f)),typeof document.removeEventListener==`function`&&(document.removeEventListener(`focusin`,u),document.removeEventListener(`focusout`,d),document.removeEventListener(`focus`,u,!0),document.removeEventListener(`blur`,d,!0)),t!==null&&typeof window.cancelAnimationFrame==`function`&&window.cancelAnimationFrame(t),c(),I$(document)}},[])}var R$=[`theme`,`commandPresets`,`defaultPresetId`,`defaultProjectDir`,`lastProjectPath`,`recentPaths`,`sessionSortMode`,`sessionSortDirection`,`manualSessionOrder`,`sidebarAnchor`,`projectFilters`,`hostFilters`,`showProjectName`,`showLastUserMessage`,`showSessionIdPrefix`,`soundOnPermission`,`soundOnIdle`],z$=[`claude`,`claude-rp`,`codex`,`pi`,`devin`,`grok`,`omp`];function B$(e){return typeof e==`boolean`}function V$(e,t){return Array.isArray(e)&&e.length<=t&&e.every(e=>typeof e==`string`)}function H$(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.id==`string`&&t.id.length>=1&&t.id.length<=128&&typeof t.label==`string`&&t.label.trim().length>=1&&t.label.length<=64&&typeof t.command==`string`&&t.command.trim().length>=1&&t.command.length<=1024&&typeof t.isBuiltIn==`boolean`&&(t.agentType===void 0||z$.includes(t.agentType))}var U$={theme:e=>e===`dark`||e===`light`||e===`system`,commandPresets:e=>Array.isArray(e)&&e.length<=50&&e.every(H$),defaultPresetId:e=>typeof e==`string`&&e.length<=128,defaultProjectDir:e=>typeof e==`string`&&e.length<=4096,lastProjectPath:e=>e===null||typeof e==`string`&&e.length<=4096,recentPaths:e=>V$(e,50),sessionSortMode:e=>e===`status`||e===`created`||e===`manual`,sessionSortDirection:e=>e===`asc`||e===`desc`,manualSessionOrder:e=>V$(e,1e3),sidebarAnchor:e=>e===`top`||e===`bottom`,projectFilters:e=>V$(e,500),hostFilters:e=>V$(e,500),showProjectName:B$,showLastUserMessage:B$,showSessionIdPrefix:B$,soundOnPermission:B$,soundOnIdle:B$};function W$(e){return R$.includes(e)}function G$(e,t){return U$[e](t)}var K$=`agentboard-theme`,q$=`agentboard-settings`,J$=200,Y$=new Map,X$=new Map,Z$=new Set;function Q$(e){return X$.has(e)||Z$.has(e)}var $$=null,e1=!1;function t1(e){return e===`theme`?cK.getState().theme:U.getState()[e]}function n1(e){let t=e===`theme`?K$:q$;return w.getItem(t)!==null}function r1(){if($$=null,X$.size===0)return;let e={},t=new Map,n=new Map;for(let[r,i]of X$)e[r]=JSON.parse(i),t.set(r,i),n.set(r,Y$.get(r)),Y$.set(r,i),Z$.add(r);X$.clear();let r=()=>{for(let[e,r]of t){if(Y$.get(e)!==r)continue;let t=n.get(e);t===void 0?Y$.delete(e):Y$.set(e,t)}},i=e=>{for(let n of t.keys()){if(Z$.delete(n),!e||X$.has(n))continue;let t=Y$.get(n);t!==void 0&&t!==JSON.stringify(t1(n))&&i1(n,JSON.parse(t))}},a=!1;try{fetch(`/api/settings/synced`,{method:`PUT`,headers:{"content-type":`application/json`},body:JSON.stringify({settings:e})}).then(e=>{a=e.ok,e.ok||(X(`synced_settings_push_rejected`,{status:e.status},`warn`),r())}).catch(e=>{X(`synced_settings_push_failed`,{message:e instanceof Error?e.message:String(e)},`warn`),r()}).finally(()=>i(a))}catch(e){r(),i(!1),X(`synced_settings_push_failed`,{message:e instanceof Error?e.message:String(e)},`warn`)}}function i1(e,t){e===`theme`?cK.setState({theme:t}):U.setState({[e]:t})}function a1(e,t){if(Y$.get(e)===JSON.stringify(t)){X$.delete(e);return}o1(e,t)}function o1(e,t){X$.set(e,JSON.stringify(t)),!$$&&($$=setTimeout(r1,J$))}function s1(e){let t=new Map;for(let e of R$)t.set(e,n1(e));let n={},r;for(let[t,i]of Object.entries(e))!W$(t)||!G$(t,i)||(Y$.set(t,JSON.stringify(i)),!Q$(t)&&(t===`theme`?r=i:n[t]=i));r!==void 0&&cK.setState({theme:r}),Object.keys(n).length>0&&U.setState(n);for(let n of R$){if(n in e||!t.get(n))continue;let r=t1(n);G$(n,r)&&Y$.get(n)!==JSON.stringify(r)&&o1(n,r)}}function c1(){if(e1)return()=>{};e1=!0;let e=U.subscribe((e,t)=>{let n=e,r=t;for(let e of R$)e!==`theme`&&n[e]!==r[e]&&a1(e,n[e])}),t=cK.subscribe((e,t)=>{e.theme!==t.theme&&a1(`theme`,e.theme)});return()=>{e(),t(),e1=!1,$$&&=(clearTimeout($$),null),X$.clear(),Z$.clear(),Y$.clear()}}function l1(e,t,n){let r=e;return t.length>0&&(r=r.filter(e=>t.includes(e.projectPath))),n.length>0&&(r=r.filter(e=>n.includes(e.host??``))),r}function u1(){let[e,t]=(0,y.useState)(!1),[n,r]=(0,y.useState)(void 0),[i,a]=(0,y.useState)(void 0),[o,s]=(0,y.useState)(void 0),[c,l]=(0,y.useState)(!1),[u,d]=(0,y.useState)(!1),[f,p]=(0,y.useState)(null),[m,h]=(0,y.useState)(null),[g,_]=(0,y.useState)(null),v=Hh(e=>e.sessions),b=Hh(e=>e.agentSessions),S=Hh(e=>e.agentSessionsEpoch),C=Hh(e=>e.selectedSessionId),w=Hh(e=>e.selectedHibernatingSessionId),T=Hh(e=>e.setSessions),E=Hh(e=>e.setAgentSessions),D=Hh(e=>e.setActiveAgentSessions),O=Hh(e=>e.setHostStatuses),A=Hh(e=>e.updateSession),j=Hh(e=>e.setSelectedSessionId),M=Hh(e=>e.setSelectedHibernatingSessionId),P=Hh(e=>e.hasLoaded),ee=Hh(e=>e.connectionStatus),I=Hh(e=>e.connectionError),L=Hh(e=>e.clearExitingSession),R=Hh(e=>e.markSessionExiting),z=Hh(e=>e.setRemoteAllowControl),B=Hh(e=>e.setRemoteAllowAttach),te=Hh(e=>e.setHostLabel),V=Hh(e=>e.setPreferWindowName),ne=Hh(e=>e.hostStatuses),H=Hh(e=>e.remoteAllowControl),re=Hh(e=>e.hostLabel),ie=lK(),ae=Et(),oe=U(e=>e.defaultProjectDir),se=U(e=>e.commandPresets),ce=U(e=>e.defaultPresetId),le=U(e=>e.lastProjectPath),ue=U(e=>e.setLastProjectPath),de=U(e=>e.addRecentPath),fe=U(e=>e.shortcutModifier),pe=U(e=>e.sidebarWidth),me=U(e=>e.sidebarAnchor),he=U(e=>e.setSidebarWidth),ge=U(e=>e.projectFilters),_e=U(e=>e.hostFilters),ve=U(e=>e.soundOnPermission),ye=U(e=>e.soundOnIdle),be=Hh(e=>e.connectionEpoch),{sendMessage:xe,subscribe:Se,getConnectionEpoch:Ce}=N$();(0,y.useEffect)(()=>c1(),[]),L$(),(0,y.useEffect)(()=>{if(typeof document>`u`||!ve&&!ye)return;let e=!1,t=()=>{e&&!HJ()||(e=!0,WJ())};return document.addEventListener(`click`,t,{passive:!0}),document.addEventListener(`keydown`,t,{passive:!0}),document.addEventListener(`touchstart`,t,{passive:!0}),()=>{document.removeEventListener(`click`,t),document.removeEventListener(`keydown`,t),document.removeEventListener(`touchstart`,t)}},[ve,ye]);let we=(0,y.useRef)(!1),Te=(0,y.useCallback)(e=>{e.preventDefault(),we.current=!0,document.body.style.cursor=`col-resize`,document.body.style.userSelect=`none`},[]);(0,y.useEffect)(()=>{if(typeof document>`u`||typeof document.addEventListener!=`function`)return;let e=e=>{if(!we.current)return;let t=e.clientX;he(Math.max(180,Math.min(400,t)))},t=()=>{we.current&&(we.current=!1,document.body.style.cursor=``,document.body.style.userSelect=``)};return document.addEventListener(`mousemove`,e),document.addEventListener(`mouseup`,t),()=>{document.removeEventListener(`mousemove`,e),document.removeEventListener(`mouseup`,t)}},[he]),(0,y.useEffect)(()=>{let e=Se(e=>{if(e.type!==`terminal-output`){if(e.type===`sessions`){let t=Hh.getState().sessions,{soundOnPermission:n,soundOnIdle:r}=U.getState();if(n||r)for(let i of e.sessions){let e=t.find(e=>e.id===i.id);e&&e.status!==i.status&&(e.status!==`permission`&&i.status===`permission`&&n&&qJ(),e.status===`working`&&i.status===`waiting`&&r&&JJ())}if(Ve.current.size>0){let e=Ce();for(let[t,n]of Ve.current)n.epoch!==e&&Ve.current.delete(t)}let i=Ve.current.size>0?e.sessions.filter(e=>!Ve.current.has(e.id)):e.sessions,{selectedSessionId:a,selectedHibernatingSessionId:o}=Hh.getState(),s=a!==null&&o===null&&!i.some(e=>e.id===a)?t.find(e=>e.id===a)?.agentSessionId?.trim()??null:null;s&&(Le.current=s),T(i);let c=Re.current,{selectedSessionId:l,selectedHibernatingSessionId:u}=Hh.getState(),{projectFilters:d,hostFilters:f}=U.getState();if(c&&l===null&&u===null){let e=i.find(e=>!(e.agentSessionId?.trim()!==c||d.length>0&&!d.includes(e.projectPath)||f.length>0&&!f.includes(e.host??``)));e&&(Re.current=null,j(e.id))}}if(e.type===`host-status`&&O(e.hosts),e.type===`server-config`&&(z(e.remoteAllowControl),B(e.remoteAllowAttach),te(e.hostLabel),V(e.preferWindowName),e.clientLogLevel&&mk(e.clientLogLevel)),e.type===`synced-settings`&&s1(e.settings),e.type===`session-update`){let t=Hh.getState().sessions.find(t=>t.id===e.session.id)?.status,n=e.session.status;if(A(e.session),t){let{soundOnPermission:e,soundOnIdle:r}=U.getState();t!==`permission`&&n===`permission`&&e&&qJ(),t===`working`&&n===`waiting`&&r&&JJ()}}if(e.type===`session-created`){let t=Hh.getState().sessions;t.some(t=>t.id===e.session.id)||T([e.session,...t]),j(e.session.id),de(e.session.projectPath);let{projectFilters:n,setProjectFilters:r}=U.getState();n.length>0&&!n.includes(e.session.projectPath)&&r([...n,e.session.projectPath])}if(e.type===`session-removed`){DG(e.sessionId);let t=Hh.getState().sessions,n=t.filter(t=>t.id!==e.sessionId);n.length!==t.length&&T(n)}if(e.type===`agent-sessions`){let t=Array.isArray(e.active)?e.active:[],n=Array.isArray(e.hibernating)?e.hibernating:[],r=Array.isArray(e.history)?e.history:[],{selectedHibernatingSessionId:i}=Hh.getState(),a=Le.current;i&&!n.some(e=>e.sessionId===i)&&(Re.current=i),E(t,n,r),_(e=>e&&n.some(t=>t.sessionId===e.sessionId)?null:e),a&&n.some(e=>e.sessionId===a)?(Le.current=null,M(a)):a&&(Le.current=null)}if(e.type===`agent-sessions-active`&&D(Array.isArray(e.active)?e.active:[]),e.type===`session-orphaned`&&!e.supersededBy){let t=Hh.getState().sessions,n=t.filter(t=>t.agentSessionId?.trim()!==e.session.sessionId);n.length!==t.length&&T(n)}if(e.type===`session-activated`){let t=Hh.getState().sessions.find(t=>t.tmuxWindow===e.window);t&&A({...t,agentSessionId:e.session.sessionId,agentSessionName:e.session.displayName,logFilePath:e.session.logFilePath,isHibernating:e.session.isHibernating,lastUserMessage:e.session.lastUserMessage??t.lastUserMessage})}if(e.type===`session-wake-result`)if(e.ok&&e.session){_(t=>t?.sessionId===e.sessionId?null:t);let t=Hh.getState().sessions;t.some(t=>t.id===e.session.id)||T([e.session,...t]),j(e.session.id)}else e.ok||(p(`${e.error?.code}: ${e.error?.message}`),window.setTimeout(()=>p(null),6e3));if(e.type===`session-hibernate-result`&&(e.ok?(e.session&&_(e.session),M(e.sessionId)):(p(e.error??`Failed to hibernate session`),window.setTimeout(()=>p(null),6e3))),e.type===`terminal-error`&&(!e.sessionId||e.sessionId===C)&&(p(`${e.code}: ${e.message}`),window.setTimeout(()=>p(null),6e3)),e.type===`terminal-ready`&&e.sessionId===C&&p(null),e.type===`error`&&(p(e.message),window.setTimeout(()=>p(null),6e3)),e.type===`kill-failed`){let t=Ve.current.get(e.sessionId);if(t){let n=Hh.getState().sessions;n.some(t=>t.id===e.sessionId)||T([t.session,...n]),t.wasSelected&&j(e.sessionId),Ve.current.delete(e.sessionId)}L(e.sessionId),p(e.message),window.setTimeout(()=>p(null),6e3)}e.type===`session-move-to-history-result`&&!e.ok&&e.error&&(p(e.error),window.setTimeout(()=>p(null),6e3))}});return()=>{e()}},[C,w,de,L,xe,j,M,_,T,E,D,O,z,B,te,V,Se,A]);let Ee=(0,y.useMemo)(()=>v.find(e=>e.id===C)||null,[C,v]),De=b.hibernating??[],Oe=b.history??[],ke=(0,y.useMemo)(()=>l1(De,ge,_e),[De,ge,_e]),Ae=(0,y.useMemo)(()=>ke.find(e=>e.sessionId===w)||(g?.sessionId===w?g:null),[ke,g,w]);(0,y.useEffect)(()=>{Ee?.projectPath&&!Ee.remote&&ue(Ee.projectPath)},[Ee?.projectPath,Ee?.remote,ue]);let je=U(e=>e.sessionSortMode),Me=U(e=>e.sessionSortDirection),Ne=U(e=>e.manualSessionOrder),Pe=(0,y.useMemo)(()=>Eh(v,{mode:je,direction:Me,manualOrder:Ne}),[v,je,Me,Ne]),Fe=(0,y.useMemo)(()=>{let e=Pe;return ge.length>0&&(e=e.filter(e=>ge.includes(e.projectPath))),_e.length>0&&(e=e.filter(e=>_e.includes(e.host??``))),e},[Pe,ge,_e]),Ie=(0,y.useRef)(w),Le=(0,y.useRef)(null),Re=(0,y.useRef)(null),ze=(0,y.useRef)(be),Be=(0,y.useCallback)(()=>Fe.length>0?(j(Fe[0].id),!0):ke.length>0?(M(ke[0].sessionId),!0):!1,[Fe,ke,j,M]);(0,y.useEffect)(()=>{let e=Ie.current;e&&w===null&&!De.some(t=>t.sessionId===e)?Re.current=e:w!==null&&(Re.current=null),Ie.current=w},[De,w]),(0,y.useEffect)(()=>{g&&w!==g.sessionId&&_(null)},[g,w]),(0,y.useEffect)(()=>{ze.current!==be&&(ze.current=be,Le.current=null,Re.current=null,_(null))},[be]),(0,y.useEffect)(()=>{P&&(w||C&&(Fe.some(e=>e.id===C)||Be()||j(null)))},[P,C,w,Be,j]),(0,y.useEffect)(()=>{if(!w||g?.sessionId===w||S!==be||ke.some(e=>e.sessionId===w))return;let e=Fe.find(e=>e.agentSessionId?.trim()===w);if(e){j(e.id);return}Be()||M(null)},[ke,Fe,S,g,w,Be,j,M,be]),(0,y.useEffect)(()=>{let e=Re.current;if(!e)return;if(w!==null){Re.current=null;return}let t=Fe.find(t=>t.agentSessionId?.trim()===e);if(t){Re.current=null,j(t.id);return}if(C!==null){Re.current=null;return}Be()&&(Re.current=null)},[Fe,C,w,Be,j]),(0,y.useEffect)(()=>{window.matchMedia(`(max-width: 767px)`).matches&&P&&C===null&&w===null&&(Fe.length>0||ke.length>0)&&Be()},[ke.length,Fe.length,P,Be,C,w]);let Ve=(0,y.useRef)(new Map),He=(0,y.useCallback)((e,t=`unknown`)=>{DG(e);let{sessions:n,selectedSessionId:r}=Hh.getState(),i=n.find(t=>t.id===e);i&&Ve.current.set(e,{session:i,wasSelected:r===e,epoch:Ce()}),(0,cf.flushSync)(()=>{R(e),T(n.filter(t=>t.id!==e))}),xe({type:`session-kill`,sessionId:e,source:t})},[R,T,xe]);(0,y.useEffect)(()=>{let n=At(fe),r=r=>{if(r.defaultPrevented)return;let i=r.code,a=Nt(r,n);if(a&&(i===`BracketLeft`||i===`BracketRight`)){r.preventDefault();let e=me===`bottom`&&!window.matchMedia(`(max-width: 767px)`).matches,t=(i===`BracketLeft`?-1:1)*(e?-1:1),n=Fe;if(n.length===0){let e=ke;if(e.length===0)return;let n=e.findIndex(e=>e.sessionId===w);if(n===-1){M(e[0].sessionId);return}M(e[(n+t+e.length)%e.length].sessionId);return}let a=n.findIndex(e=>e.id===C);if(a===-1){j(n[0].id);return}j(n[(a+t+n.length)%n.length].id);return}if(a&&/^Digit[1-9]$/.test(i)){let e=Number(i.slice(5))-1;if(Fe.length>0){let t=Fe[e];if(!t)return;r.preventDefault(),j(t.id);return}let t=ke[e];if(!t)return;r.preventDefault(),M(t.sessionId);return}if(a&&i===`KeyN`){r.preventDefault(),!e&&!c&&ae&&t(!0);return}if(a&&i===`Comma`){r.preventDefault(),l(t=>t?!1:!e);return}if(a&&i===`KeyX`){r.preventDefault(),C&&!e&&!c&&He(C,`keyboard_shortcut`);return}};return window.addEventListener(`keydown`,r),()=>window.removeEventListener(`keydown`,r)},[e,c,C,w,j,M,Fe,ke,He,me,fe,ae]);let Ue=()=>ae?(r(void 0),a(void 0),s(void 0),t(!0),!0):!1,We=()=>l(!0),Ge=(e,t,n,r)=>{xe({type:`session-create`,operationId:x(),projectPath:e,name:t,command:n,host:r}),r||ue(e)},Ke=e=>{xe({type:`session-wake`,sessionId:e})},qe=(0,y.useCallback)(e=>{xe({type:`session-hibernate`,sessionId:e})},[xe]),Je=(e,t)=>{xe({type:`session-rename`,sessionId:e,newName:t})},Ye=(0,y.useCallback)(e=>{let t=v.find(t=>t.id===e);t&&xe({type:`session-create`,operationId:x(),projectPath:t.projectPath,command:t.command||void 0,host:t.remote&&t.host?t.host:void 0})},[v,xe]),Xe=(0,y.useCallback)(e=>{xe({type:`session-move-to-history`,sessionId:e})},[xe]);(0,y.useEffect)(()=>uK(),[]),(0,y.useEffect)(()=>{document.documentElement.setAttribute(`data-theme`,ie)},[ie]),(0,y.useEffect)(()=>{fetch(`/api/server-info`).then(e=>e.json()).then(e=>h(e)).catch(()=>{})},[]);let Ze=(0,y.useMemo)(()=>re?ne.filter(e=>e.host!==re):ne,[ne,re]);return(0,k.jsxs)(`div`,{className:`flex h-full overflow-hidden`,children:[(0,k.jsx)(`div`,{className:`hidden h-full flex-col md:flex md:shrink-0`,style:{width:pe},children:(0,k.jsx)(lk,{sessions:v,hibernatingSessions:De,historySessions:Oe,selectedSessionId:C,selectedHibernatingSessionId:w,onSelect:j,onSelectHibernating:M,onRename:Je,onResume:Ke,onHibernate:qe,onKill:He,onDuplicate:Ye,onMoveToHistory:Xe,onNewSession:Ue,loading:!P,error:I||f,anchor:me,showAnchorControl:!0,notice:(0,k.jsx)(N,{onOpen:()=>d(!0),subscribe:Se}),filterBarControls:(0,k.jsx)(Kt,{connectionStatus:ee,onNewSession:Ue,onOpenSettings:We,onOpenHistory:()=>d(!0),tailscaleIp:m?.tailscaleIp??null,placement:me===`bottom`?`up`:`down`})})}),(0,k.jsx)(`div`,{className:`hidden md:block w-1 shrink-0 cursor-col-resize bg-transparent transition-colors hover:bg-white/10 active:bg-white/20`,onMouseDown:Te}),(0,k.jsx)(Pq,{session:Ee,sessions:Fe,drawerSessions:v,hibernatingSession:Ae,hibernatingSessions:De,connectionStatus:ee,connectionEpoch:be,sendMessage:xe,subscribe:Se,onClose:()=>j(null),onSelectSession:j,onSelectHibernatingSession:M,onNewSession:Ue,onKillSession:He,onRenameSession:Je,onDuplicateSession:Ye,onOpenSettings:We,onOpenHistory:()=>d(!0),onResumeSession:Ke,onHibernateSession:qe,onMoveToHistory:Xe,historySessions:Oe,loading:!P,error:I||f}),(0,k.jsx)($q,{isOpen:e,onClose:()=>t(!1),onCreate:Ge,defaultProjectDir:oe,commandPresets:se,defaultPresetId:ce,lastProjectPath:le,activeProjectPath:Ee&&!Ee.remote?Ee.projectPath:void 0,remoteHosts:Ze,remoteAllowControl:H,initialHost:n,initialPath:i,initialCommand:o}),(0,k.jsx)(yZ,{isOpen:c,onClose:()=>l(!1)}),(0,k.jsx)(F,{open:u,subscribe:Se,onClose:()=>d(!1),onOpenSession:e=>{T([e,...v.filter(t=>t.id!==e.id)]),M(null),j(e.id)}}),(0,k.jsx)(y$,{})]})}var d1=`modulepreload`,f1=function(e){return`/`+e},p1={},m1=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=f1(t,n),t in p1)return;p1[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:d1,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},h1=`true`,g1=`false`,_1=h1===`true`,v1=g1===`true`;function y1(e={}){let{immediate:t=!1,onNeedRefresh:n,onOfflineReady:r,onRegistered:i,onRegisteredSW:a,onRegisterError:o}=e,s,c,l,u=async(e=!0)=>{await c,_1||l?.()};async function d(){if(`serviceWorker`in navigator){if(s=await m1(async()=>{let{Workbox:e}=await import(`./workbox-window.prod.es5-Bq4GJJid.js`);return{Workbox:e}},[]).then(({Workbox:e})=>new e(`/sw.js`,{scope:`/`,type:`classic`})).catch(e=>{o?.(e)}),!s)return;if(l=()=>{s?.messageSkipWaiting()},!v1)if(_1)s.addEventListener(`activated`,e=>{(e.isUpdate||e.isExternal)&&window.location.reload()}),s.addEventListener(`installed`,e=>{e.isUpdate||r?.()});else{let e=!1,t=()=>{e=!0,s?.addEventListener(`controlling`,e=>{e.isUpdate&&window.location.reload()}),n?.()};s.addEventListener(`installed`,n=>{n.isUpdate===void 0?n.isExternal===void 0?!e&&r?.():n.isExternal?t():!e&&r?.():n.isUpdate||r?.()}),s.addEventListener(`waiting`,t)}s.register({immediate:t}).then(e=>{a?a(`/sw.js`,e):i?.(e)}).catch(e=>{o?.(e)})}}return c=d(),u}Dt()&&document.documentElement.classList.add(`ios`),Ot()&&document.documentElement.classList.add(`ios-pwa`),y1({immediate:!0,onRegisteredSW(e,t){t&&(setInterval(()=>{t.update()},300*1e3),document.addEventListener(`visibilitychange`,()=>{document.visibilityState===`visible`&&t.update()}))}});var b1=document.getElementById(`root`);if(!b1)throw Error(`Root element not found`);(0,b.createRoot)(b1).render((0,k.jsx)(y.StrictMode,{children:(0,k.jsx)(u1,{})}));
|
package/dist/client/index.html
CHANGED
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
<title>Agentboard</title>
|
|
9
9
|
<link rel="apple-touch-icon" href="/icons/pwa-192x192.png" />
|
|
10
10
|
<meta name="theme-color" content="#0f172a" />
|
|
11
|
-
<script type="module" crossorigin src="/assets/index
|
|
12
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
11
|
+
<script type="module" crossorigin src="/assets/index-vGeyYAQr.js"></script>
|
|
12
|
+
<link rel="stylesheet" crossorigin href="/assets/index-DpQgtL3L.css">
|
|
13
13
|
<link rel="manifest" href="/manifest.webmanifest"></head>
|
|
14
14
|
<body>
|
|
15
15
|
<div id="root"></div>
|
package/dist/client/sw.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
if(!self.define){let e,n={};const i=(i,o)=>(i=new URL(i+".js",o).href,n[i]||new Promise(n=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=n,document.head.appendChild(e)}else e=i,importScripts(i),n()}).then(()=>{let e=n[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e}));self.define=(o,s)=>{const r=e||("document"in self?document.currentScript.src:"")||location.href;if(n[r])return;let
|
|
1
|
+
if(!self.define){let e,n={};const i=(i,o)=>(i=new URL(i+".js",o).href,n[i]||new Promise(n=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=n,document.head.appendChild(e)}else e=i,importScripts(i),n()}).then(()=>{let e=n[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e}));self.define=(o,s)=>{const r=e||("document"in self?document.currentScript.src:"")||location.href;if(n[r])return;let f={};const t=e=>i(e,r),d={module:{uri:r},exports:f,require:t};n[r]=Promise.all(o.map(e=>d[e]||t(e))).then(e=>(s(...e),f))}}define(["./workbox-8c29f6e4"],function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"index.html",revision:"f4eaa2b885353f89661422b1e1349f2b"},{url:"favicon.svg",revision:"12048a608dedfc53518ddc59c07e41b6"},{url:"icons/pwa-512x512.png",revision:"eb82042b3e4ed505f3efe1b79622d998"},{url:"icons/pwa-192x192.png",revision:"affb57c15619ee7223d1adea372ad514"},{url:"fonts/jetbrains-mono-vietnamese-wght-normal.woff2",revision:"ddf99e6e35c6ee9f00a41d2567b0e77f"},{url:"fonts/jetbrains-mono-latin-wght-normal.woff2",revision:"b058178d7f309414f8f856b99fd80d9b"},{url:"fonts/jetbrains-mono-latin-ext-wght-normal.woff2",revision:"e36841ed93d5bfe6b1d487d18ad7e90b"},{url:"fonts/jetbrains-mono-greek-wght-normal.woff2",revision:"51671ed9eb64e29390d4791ab0023c8e"},{url:"fonts/jetbrains-mono-cyrillic-wght-normal.woff2",revision:"615bf869ebeb5998734d81fc8958116c"},{url:"fonts/jetbrains-mono-cyrillic-ext-wght-normal.woff2",revision:"742dd0628e0118d32dccf0437900670b"},{url:"assets/workbox-window.prod.es5-Bq4GJJid.js",revision:null},{url:"assets/index-vGeyYAQr.js",revision:null},{url:"assets/index-DpQgtL3L.css",revision:null},{url:"icons/pwa-192x192.png",revision:"affb57c15619ee7223d1adea372ad514"},{url:"icons/pwa-512x512.png",revision:"eb82042b3e4ed505f3efe1b79622d998"},{url:"manifest.webmanifest",revision:"b6d4b3666a548fa0f0c6919d31ec2eee"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("/index.html"),{denylist:[/^\/api(?:\/|$)/,/^\/ws(?:\/|$)/]}))});
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:JetBrains Mono,SF Mono,Fira Code,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media (width>=640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (width>=768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (width>=1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (width>=1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (width>=1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.btn{background:var(--bg-surface);border:1px solid var(--border);color:var(--text-secondary);justify-content:center;align-items:center;gap:.375rem;padding:.375rem .75rem;font-size:.75rem;font-weight:500;line-height:1rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1);display:inline-flex}.btn:hover{background:var(--bg-hover);color:var(--text-primary)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:#2563eb;border-color:#2563eb}.btn-danger{color:var(--danger);border-color:var(--danger);background:0 0}.btn-danger:hover{background:var(--danger);color:#fff}.input{background:var(--bg-base);border:1px solid var(--border);width:100%;color:var(--text-primary);padding:.5rem .75rem;font-size:16px}.input:focus{border-color:var(--accent);outline:none}.input::placeholder{color:var(--text-muted)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.-bottom-1{bottom:-.25rem}.-bottom-px{bottom:-1px}.-right-1{right:-.25rem}.-right-1\.5{right:-.375rem}.-top-1\.5{top:-.375rem}.-top-px{top:-1px}.bottom-0{bottom:0}.bottom-14{bottom:3.5rem}.bottom-16{bottom:4rem}.bottom-20{bottom:5rem}.bottom-4{bottom:1rem}.bottom-8{bottom:2rem}.bottom-full{bottom:100%}.left-0{left:0}.left-1\/2{left:50%}.left-2{left:.5rem}.left-3{left:.75rem}.right-0{right:0}.right-2{right:.5rem}.right-3{right:.75rem}.right-4{right:1rem}.top-0{top:0}.top-1\/2{top:50%}.top-2{top:.5rem}.top-full{top:100%}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[60\]{z-index:60}.m-1{margin:.25rem}.m-2{margin:.5rem}.m-4{margin:1rem}.-mx-4{margin-left:-1rem;margin-right:-1rem}.-mx-\[6px\]{margin-left:-6px;margin-right:-6px}.-my-1{margin-top:-.25rem;margin-bottom:-.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-top:0;margin-bottom:0}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-1\.5{margin-top:.375rem;margin-bottom:.375rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.-ml-1{margin-left:-.25rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.ml-1{margin-left:.25rem}.ml-auto{margin-left:auto}.mr-1\.5{margin-right:.375rem}.mr-2{margin-right:.5rem}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.\!block{display:block!important}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.size-4{width:1rem;height:1rem}.size-\[32px\]{width:32px;height:32px}.size-\[44px\]{width:44px;height:44px}.h-0\.5{height:.125rem}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-\[26px\]{height:26px}.h-\[32px\]{height:32px}.h-\[44px\]{height:44px}.h-\[48px\]{height:48px}.h-\[52px\]{height:52px}.h-\[600px\]{height:600px}.h-\[6px\]{height:6px}.h-full{height:100%}.max-h-28{max-height:7rem}.max-h-32{max-height:8rem}.max-h-60{max-height:15rem}.max-h-72{max-height:18rem}.max-h-80{max-height:20rem}.max-h-\[60vh\]{max-height:60vh}.max-h-\[80vh\]{max-height:80vh}.max-h-\[min\(26rem\,calc\(100dvh-7rem\)\)\]{max-height:min(26rem,100dvh - 7rem)}.max-h-full{max-height:100%}.min-h-0{min-height:0}.min-h-\[30px\]{min-height:30px}.min-h-\[44px\]{min-height:44px}.min-h-\[52px\]{min-height:52px}.min-h-full{min-height:100%}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-1\/2{width:50%}.w-10{width:2.5rem}.w-14{width:3.5rem}.w-2{width:.5rem}.w-20{width:5rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-4{width:1rem}.w-40{width:10rem}.w-44{width:11rem}.w-5{width:1.25rem}.w-60{width:15rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-\[11ch\]{width:11ch}.w-\[14px\]{width:14px}.w-\[192px\]{width:192px}.w-\[32px\]{width:32px}.w-\[44px\]{width:44px}.w-\[6px\]{width:6px}.w-\[760px\]{width:760px}.w-\[calc\(100\%_-_2rem\)\]{width:calc(100% - 2rem)}.w-\[min\(560px\,calc\(100\%-1\.5rem\)\)\]{width:min(560px,100% - 1.5rem)}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.min-w-0{min-width:0}.min-w-3\.5{min-width:.875rem}.min-w-\[140px\]{min-width:140px}.min-w-\[160px\]{min-width:160px}.min-w-\[180px\]{min-width:180px}.min-w-\[44px\]{min-width:44px}.min-w-\[72px\]{min-width:72px}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-48{max-width:12rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-72{max-width:18rem}.max-w-\[10rem\]{max-width:10rem}.max-w-\[112px\]{max-width:112px}.max-w-\[12rem\]{max-width:12rem}.max-w-\[8rem\]{max-width:8rem}.max-w-\[90vw\]{max-width:90vw}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.basis-0{flex-basis:0}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-1{--tw-translate-x:.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-95{--tw-scale-x:.95;--tw-scale-y:.95;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-pointer{cursor:pointer}.touch-manipulation{touch-action:manipulation}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}.resize{resize:both}.snap-x{scroll-snap-type:x var(--tw-scroll-snap-strictness)}.snap-mandatory{--tw-scroll-snap-strictness:mandatory}.snap-start{scroll-snap-align:start}.scroll-pb-10{scroll-padding-bottom:2.5rem}.scroll-pe-4{scroll-padding-inline-end:1rem}.scroll-pt-10{scroll-padding-top:2.5rem}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.appearance-none{appearance:none}.auto-cols-\[44px\]{grid-auto-columns:44px}.grid-flow-col{grid-auto-flow:column}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\[5\.75rem_minmax\(0\,1fr\)\]{grid-template-columns:5.75rem minmax(0,1fr)}.grid-cols-\[56px_92px_minmax\(0\,0\.8fr\)_minmax\(0\,1\.3fr\)_auto\]{grid-template-columns:56px 92px minmax(0,.8fr) minmax(0,1.3fr) auto}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-\[4px\]{gap:4px}.gap-\[6px\]{gap:6px}.gap-\[7px\]{gap:7px}.gap-px{gap:1px}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-0\.5{row-gap:.125rem}.gap-y-1{row-gap:.25rem}.gap-y-3{row-gap:.75rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-border>:not([hidden])~:not([hidden]){border-color:var(--border)}.divide-border-subtle>:not([hidden])~:not([hidden]){border-color:var(--border-subtle)}.self-stretch{align-self:stretch}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overscroll-contain{overscroll-behavior:contain}.scroll-smooth{scroll-behavior:smooth}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-balance{text-wrap:balance}.text-pretty{text-wrap:pretty}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-2{border-top-width:2px}.border-dashed{border-style:dashed}.border-accent{border-color:var(--accent)}.border-accent\/40{border-color:color-mix(in srgb, var(--accent) calc(.4 * 100%), transparent)}.border-amber-400\/25{border-color:#fbbf2440}.border-amber-400\/35{border-color:#fbbf2459}.border-approval\/50{border-color:color-mix(in srgb, var(--approval) calc(.5 * 100%), transparent)}.border-border{border-color:var(--border)}.border-border\/60{border-color:color-mix(in srgb, var(--border) calc(.6 * 100%), transparent)}.border-border\/70{border-color:color-mix(in srgb, var(--border) calc(.7 * 100%), transparent)}.border-danger{border-color:var(--danger)}.border-danger\/30{border-color:color-mix(in srgb, var(--danger) calc(.3 * 100%), transparent)}.border-danger\/40{border-color:color-mix(in srgb, var(--danger) calc(.4 * 100%), transparent)}.border-danger\/50{border-color:color-mix(in srgb, var(--danger) calc(.5 * 100%), transparent)}.border-primary{border-color:var(--text-primary)}.border-transparent{border-color:#0000}.border-white\/20{border-color:#fff3}.bg-accent{background-color:var(--accent)}.bg-accent\/15{background-color:color-mix(in srgb, var(--accent) calc(.15 * 100%), transparent)}.bg-accent\/20{background-color:color-mix(in srgb, var(--accent) calc(.2 * 100%), transparent)}.bg-amber-400{background-color:#fbbf24}.bg-amber-500\/15{background-color:#f59e0b26}.bg-amber-500\/20{background-color:#f59e0b33}.bg-amber-500\/35{background-color:#f59e0b59}.bg-approval{background-color:var(--approval)}.bg-approval\/10{background-color:color-mix(in srgb, var(--approval) calc(.1 * 100%), transparent)}.bg-base{background-color:var(--bg-base)}.bg-black\/20{background-color:#0003}.bg-black\/30{background-color:#0000004d}.bg-black\/40{background-color:#0006}.bg-black\/50{background-color:#00000080}.bg-black\/60{background-color:#0009}.bg-black\/70{background-color:#000000b3}.bg-blue-500\/15{background-color:#3b82f626}.bg-blue-500\/35{background-color:#3b82f659}.bg-blue-600\/90{background-color:#2563ebe6}.bg-border{background-color:var(--border)}.bg-danger{background-color:var(--danger)}.bg-danger\/10{background-color:color-mix(in srgb, var(--danger) calc(.1 * 100%), transparent)}.bg-elevated{background-color:var(--bg-elevated)}.bg-elevated\/90{background-color:color-mix(in srgb, var(--bg-elevated) calc(.9 * 100%), transparent)}.bg-elevated\/95{background-color:color-mix(in srgb, var(--bg-elevated) calc(.95 * 100%), transparent)}.bg-gray-500\/35{background-color:#6b728059}.bg-green-500\/20{background-color:#22c55e33}.bg-green-500\/35{background-color:#22c55e59}.bg-hover{background-color:var(--bg-hover)}.bg-muted{background-color:var(--text-muted)}.bg-surface{background-color:var(--bg-surface)}.bg-surface\/20{background-color:color-mix(in srgb, var(--bg-surface) calc(.2 * 100%), transparent)}.bg-surface\/35{background-color:color-mix(in srgb, var(--bg-surface) calc(.35 * 100%), transparent)}.bg-surface\/40{background-color:color-mix(in srgb, var(--bg-surface) calc(.4 * 100%), transparent)}.bg-surface\/50{background-color:color-mix(in srgb, var(--bg-surface) calc(.5 * 100%), transparent)}.bg-transparent{background-color:#0000}.bg-waiting{background-color:var(--waiting)}.bg-white{background-color:#fff}.bg-white\/90{background-color:#ffffffe6}.bg-working{background-color:var(--working)}.bg-zinc-500\/20{background-color:#71717a33}.bg-gradient-to-l{background-image:linear-gradient(to left, var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right, var(--tw-gradient-stops))}.from-elevated{--tw-gradient-from:var(--bg-elevated) var(--tw-gradient-from-position);--tw-gradient-to:color-mix(in srgb, var(--bg-elevated) calc(0 * 100%), transparent) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.to-transparent{--tw-gradient-to:transparent var(--tw-gradient-to-position)}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-\[2px\]{padding:2px}.p-\[6px\]{padding:6px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-\[6px\]{padding-left:6px;padding-right:6px}.px-\[8px\]{padding-left:8px;padding-right:8px}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-\[5px\]{padding-top:5px;padding-bottom:5px}.py-px{padding-top:1px;padding-bottom:1px}.pb-1{padding-bottom:.25rem}.pb-1\.5{padding-bottom:.375rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pl-0\.5{padding-left:.125rem}.pl-1{padding-left:.25rem}.pl-2{padding-left:.5rem}.pl-2\.5{padding-left:.625rem}.pl-3{padding-left:.75rem}.pl-5{padding-left:1.25rem}.pl-\[1\.375rem\]{padding-left:1.375rem}.pr-2{padding-right:.5rem}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-1\.5{padding-top:.375rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-top{vertical-align:top}.font-mono{font-family:JetBrains Mono,SF Mono,Fira Code,monospace}.text-\[0\.9em\]{font-size:.9em}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[16px\]{font-size:16px}.text-\[18px\]{font-size:18px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-6{line-height:1.5rem}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-normal{letter-spacing:0}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.text-accent{color:var(--accent)}.text-amber-100{color:#fef3c7}.text-amber-400{color:#fbbf24}.text-amber-500{color:#f59e0b}.text-amber-600{color:#d97706}.text-approval{color:var(--approval)}.text-approval\/70{color:color-mix(in srgb, var(--approval) calc(.7 * 100%), transparent)}.text-base{color:var(--bg-base)}.text-blue-400{color:#60a5fa}.text-blue-500{color:#3b82f6}.text-danger{color:var(--danger)}.text-emerald-400{color:#34d399}.text-gray-800{color:#1f2937}.text-green-600{color:#16a34a}.text-muted{color:var(--text-muted)}.text-pr-closed{color:var(--pr-closed)}.text-pr-merged{color:var(--pr-merged)}.text-pr-open{color:var(--pr-open)}.text-pr-pending{color:var(--pr-pending)}.text-primary{color:var(--text-primary)}.text-red-500{color:#ef4444}.text-secondary{color:var(--text-secondary)}.text-waiting{color:var(--waiting)}.text-white{color:#fff}.text-white\/80{color:#fffc}.text-white\/90{color:#ffffffe6}.text-working{color:var(--working)}.text-yellow-400{color:#facc15}.text-zinc-400{color:#a1a1aa}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.accent-accent{accent-color:var(--accent)}.accent-approval{accent-color:var(--approval)}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.shadow{--tw-shadow:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px #00000040;--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-\[inset_0_0_0_1px_var\(--border\)\]{--tw-shadow:inset 0 0 0 1px var(--border);--tw-shadow-colored:inset 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.outline-none{outline-offset:2px;outline:2px solid #0000}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.ring-accent\/30{--tw-ring-color:color-mix(in srgb, var(--accent) calc(.3 * 100%), transparent)}.ring-elevated{--tw-ring-color:var(--bg-elevated)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-md{--tw-backdrop-blur:blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-property:transform;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.duration-75{transition-duration:75ms}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.\[agentboard\:settings\]{agentboard:settings}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono-latin-wght-normal.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono-latin-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono-cyrillic-wght-normal.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono-cyrillic-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono-greek-wght-normal.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono-vietnamese-wght-normal.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}:root,[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-base:#0a0a0a;--bg-elevated:#111;--bg-surface:#161616;--bg-hover:#1c1c1c;--text-primary:#e5e5e5;--text-secondary:#a3a3a3;--text-muted:#737373;--border:#262626;--border-subtle:#1a1a1a;--working:#22c55e;--approval:#f59e0b;--waiting:#3b82f6;--danger:#ef4444;--pr-open:#22c55e;--pr-merged:#a855f7;--pr-closed:#ef4444;--pr-pending:#eab308;--accent:#3b82f6}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-base:#fafafa;--bg-elevated:#fff;--bg-surface:#f5f5f5;--bg-hover:#e5e5e5;--text-primary:#171717;--text-secondary:#525252;--text-muted:#737373;--border:#e5e5e5;--border-subtle:#f0f0f0;--working:#16a34a;--approval:#d97706;--waiting:#2563eb;--danger:#dc2626;--pr-open:#16a34a;--pr-merged:#9333ea;--pr-closed:#dc2626;--pr-pending:#a16207;--accent:#2563eb}*{box-sizing:border-box}html,body{height:100dvh;color:var(--text-primary);background:var(--bg-base);-webkit-font-smoothing:antialiased;margin:0;font-family:JetBrains Mono Variable,JetBrains Mono,SF Mono,Fira Code,ui-monospace,monospace;font-size:13px;overflow:hidden}#root{flex-direction:column;height:100dvh;display:flex;overflow:hidden}@media (width<=767px){.ios #root{width:var(--visual-viewport-width,100vw);height:var(--visual-viewport-height,100dvh);transform:translate3d(var(--viewport-offset-left,0px), var(--viewport-offset-top,0px), 0);transform-origin:0 0;position:fixed;top:0;left:0}}:root{--keyboard-inset:0px;--viewport-offset-top:0px;--viewport-offset-left:0px;--visual-viewport-height:100dvh;--visual-viewport-width:100vw}::selection{background:#3b82f64d}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.status-bar{width:6px;position:absolute;top:0;bottom:0;left:0}.status-bar-working{background:var(--working)}.status-bar-approval{background:var(--approval)}.status-bar-waiting{background:var(--waiting)}@keyframes pulse-approval{0%,to{opacity:1;box-shadow:0 0 8px var(--approval)}50%{opacity:.3;box-shadow:0 0 0px var(--approval)}}.pulse-approval{animation:1.5s ease-in-out infinite pulse-approval}@keyframes pulse-complete{0%,20%,40%,60%,80%,to{opacity:1;box-shadow:0 0 8px var(--waiting)}10%,30%,50%,70%,90%{opacity:.3;box-shadow:0 0 0px var(--waiting)}}.pulse-complete{animation:5s ease-out pulse-complete}@keyframes media-attention{0%,to{box-shadow:0 0 #0000}50%{box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 30%, transparent)}}.media-attention{border-color:var(--accent);animation:.8s ease-in-out 2 media-attention}.xterm{padding:8px;font-family:JetBrains Mono Variable,JetBrains Mono,SF Mono,Fira Code,ui-monospace,monospace}.ios-native-term-selection .xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre;font-family:inherit;font-size:var(--xterm-font-size,13px);line-height:var(--xterm-cell-height,18px);letter-spacing:var(--xterm-a11y-letter-spacing,0px);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;font-variant-ligatures:none;font-kerning:none}.ios-native-term-selection .xterm .xterm-accessibility-tree>div{line-height:var(--xterm-cell-height,18px)}.ios-native-term-selection .xterm-helper-textarea{opacity:0;caret-color:#0000;pointer-events:none;-webkit-user-select:text;user-select:text;width:1px;height:1px;font-size:16px;line-height:16px;transform:translate(-50%,-50%);position:absolute!important;top:50%!important;left:50%!important}@media (hover:none) and (pointer:coarse){.ios-native-term-selection .xterm .xterm-accessibility:not(.debug),.ios-native-term-selection .xterm-helper-textarea{pointer-events:auto}}.xterm .xterm-viewport{scrollbar-color:var(--border) transparent;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background-color:#0000!important}.xterm .xterm-viewport::-webkit-scrollbar{width:8px}.xterm .xterm-viewport::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.session-row{transition:background-color .1s;position:relative}.session-row:hover{background:var(--bg-hover)}.session-row.selected{background:var(--bg-hover);box-shadow:inset 0 1px var(--text-muted), inset 0 -1px var(--text-muted);border-top:0;border-bottom:0}.session-row.selected:hover{background:var(--bg-hover)}.shortcut-badge{background:var(--bg-base);border:1px solid var(--border-subtle);color:var(--text-muted);border-radius:5px;justify-content:center;align-items:center;gap:2px;min-width:18px;height:18px;padding:0 6px;font-size:10px;line-height:1;display:inline-flex}.shortcut-badge svg{opacity:.7}.shortcut-badge .shortcut-plus{opacity:.6}@media (width<=767px){.terminal-mobile-overlay{z-index:30;background:var(--bg-base);flex-direction:column;max-width:100vw;height:100%;transition:height .1s ease-out;display:flex;position:relative;overflow:hidden}}.session-drawer-backdrop,.session-drawer{display:none}@media (width<=767px){.session-drawer-backdrop{z-index:40;opacity:0;pointer-events:none;background:#00000080;transition:opacity .2s ease-out;display:block;position:fixed;inset:0}.session-drawer-backdrop.open{opacity:1;pointer-events:auto}.session-drawer{z-index:50;width:75vw;max-width:300px;padding-top:env(safe-area-inset-top,0px);background:var(--bg-elevated);border-right:1px solid var(--border);outline:none;flex-direction:column;transition:transform .2s ease-out;display:flex;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.session-drawer.open{transform:translate(0)}}.terminal-controls{z-index:40;flex-shrink:0;position:relative}.terminal-key{-webkit-tap-highlight-color:transparent}.terminal-key:active{background:var(--bg-hover)}.ios:not(.keyboard-visible) #root{padding-bottom:env(safe-area-inset-bottom,0px)}.ios .terminal-mobile-overlay{height:var(--visual-viewport-height,100dvh)}.ios-pwa .terminal-mobile-overlay{height:100%}.ios:not(.keyboard-visible) .terminal-mobile-overlay{padding-bottom:env(safe-area-inset-bottom,0px)}.project-badge{background-color:oklch(.7 .12 var(--badge-hue) / .22);color:oklch(.85 .07 var(--badge-hue))}[data-theme=light] .project-badge{background-color:oklch(.7 .12 var(--badge-hue) / .18);color:oklch(.5 .13 var(--badge-hue))}.scrollbar-none{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-none::-webkit-scrollbar{display:none}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.pulse-approval,.pulse-complete,.media-attention{animation:none}}.placeholder\:italic::placeholder{font-style:italic}.placeholder\:text-muted::placeholder{color:var(--text-muted)}.backdrop\:bg-black\/50::backdrop{background-color:#00000080}.first\:mt-0:first-child{margin-top:0}.first\:border-t-0:first-child{border-top-width:0}.first\:pt-0:first-child{padding-top:0}.last\:mb-0:last-child{margin-bottom:0}.hover\:border-accent\/50:hover{border-color:color-mix(in srgb, var(--accent) calc(.5 * 100%), transparent)}.hover\:bg-accent\/30:hover{background-color:color-mix(in srgb, var(--accent) calc(.3 * 100%), transparent)}.hover\:bg-accent\/90:hover{background-color:color-mix(in srgb, var(--accent) calc(.9 * 100%), transparent)}.hover\:bg-amber-500\/30:hover{background-color:#f59e0b4d}.hover\:bg-blue-600:hover{background-color:#2563eb}.hover\:bg-danger\/10:hover{background-color:color-mix(in srgb, var(--danger) calc(.1 * 100%), transparent)}.hover\:bg-danger\/20:hover{background-color:color-mix(in srgb, var(--danger) calc(.2 * 100%), transparent)}.hover\:bg-hover:hover{background-color:var(--bg-hover)}.hover\:bg-white\/10:hover{background-color:#ffffff1a}.hover\:text-accent:hover{color:var(--accent)}.hover\:text-approval:hover{color:var(--approval)}.hover\:text-danger:hover{color:var(--danger)}.hover\:text-primary:hover{color:var(--text-primary)}.focus\:border-accent:focus{border-color:var(--accent)}.focus\:outline-none:focus{outline-offset:2px;outline:2px solid #0000}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus\:ring-primary:focus{--tw-ring-color:var(--text-primary)}.focus-visible\:bg-hover:focus-visible{background-color:var(--bg-hover)}.focus-visible\:outline-none:focus-visible{outline-offset:2px;outline:2px solid #0000}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-inset:focus-visible{--tw-ring-inset:inset}.focus-visible\:ring-accent:focus-visible{--tw-ring-color:var(--accent)}.focus-visible\:ring-accent\/40:focus-visible{--tw-ring-color:color-mix(in srgb, var(--accent) calc(.4 * 100%), transparent)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.active\:scale-95:active{--tw-scale-x:.95;--tw-scale-y:.95;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:bg-hover:active{background-color:var(--bg-hover)}.active\:bg-white\/20:active{background-color:#fff3}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:cursor-wait:disabled{cursor:wait}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:pr-4{padding-right:1rem}.group:hover .group-hover\:text-accent{color:var(--accent)}.group:hover .group-hover\:opacity-100{opacity:1}.aria-\[invalid\=true\]\:border-danger[aria-invalid=true]{border-color:var(--danger)}.data-\[ending-style\]\:translate-x-\[var\(--toast-swipe-end-x\)\][data-ending-style]{--tw-translate-x:var(--toast-swipe-end-x);transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[starting-style\]\:translate-y-2[data-starting-style]{--tw-translate-y:.5rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=move\]\:translate-x-\[var\(--toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x:var(--toast-swipe-move-x);transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[checked\]\:bg-accent[data-checked]{background-color:var(--accent)}.data-\[ending-style\]\:opacity-0[data-ending-style],.data-\[starting-style\]\:opacity-0[data-starting-style]{opacity:0}.group[data-checked] .group-data-\[checked\]\:translate-x-5{--tw-translate-x:1.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@media not all and (width>=768px){.max-md\:order-3{order:3}.max-md\:order-4{order:4}.max-md\:order-5{order:5}.max-md\:col-span-3{grid-column:span 3/span 3}.max-md\:flex{display:flex}.max-md\:hidden{display:none}.max-md\:size-\[44px\]{width:44px;height:44px}.max-md\:h-\[38px\]{height:38px}.max-md\:h-\[44px\]{height:44px}.max-md\:min-h-\[44px\]{min-height:44px}.max-md\:w-36{width:9rem}.max-md\:w-\[44px\]{width:44px}.max-md\:w-full{width:100%}.max-md\:grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,auto\)_auto\]{grid-template-columns:minmax(0,1fr) minmax(0,auto) auto}.max-md\:flex-col{flex-direction:column}.max-md\:items-stretch{align-items:stretch}.max-md\:justify-center{justify-content:center}.max-md\:gap-y-2{row-gap:.5rem}.max-md\:text-\[16px\]{font-size:16px}}@media (width>=360px){.min-\[360px\]\:flex{display:flex}}@media (width>=640px){.sm\:grid-cols-\[6\.75rem_minmax\(0\,1fr\)\]{grid-template-columns:6.75rem minmax(0,1fr)}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}}@media (width>=768px){.md\:relative{position:relative}.md\:inset-auto{inset:auto}.md\:block{display:block}.md\:inline{display:inline}.md\:flex{display:flex}.md\:inline-flex{display:inline-flex}.md\:hidden{display:none}.md\:h-\[16px\]{height:16px}.md\:min-h-\[30px\]{min-height:30px}.md\:w-\[16px\]{width:16px}.md\:max-w-\[18rem\]{max-width:18rem}.md\:shrink-0{flex-shrink:0}.md\:flex-row{flex-direction:row}.md\:items-start{align-items:flex-start}.md\:justify-center{justify-content:center}.md\:justify-between{justify-content:space-between}.md\:gap-\[6px\]{gap:6px}.md\:p-6{padding:1.5rem}.md\:px-\[12px\]{padding-left:12px;padding-right:12px}.md\:py-\[5px\]{padding-top:5px;padding-bottom:5px}.md\:text-\[12px\]{font-size:12px}.md\:leading-\[18px\]{line-height:18px}}@media (pointer:coarse){.\[\@media\(pointer\:coarse\)\]\:h-\[44px\]{height:44px}.\[\@media\(pointer\:coarse\)\]\:min-h-\[44px\]{min-height:44px}.\[\@media\(pointer\:coarse\)\]\:min-w-\[44px\]{min-width:44px}.\[\@media\(pointer\:coarse\)\]\:items-center{align-items:center}.\[\@media\(pointer\:coarse\)\]\:gap-\[22px\]{gap:22px}.\[\@media\(pointer\:coarse\)\]\:text-\[16px\]{font-size:16px}.\[\@media\(pointer\:coarse\)\]\:before\:absolute:before{content:var(--tw-content);position:absolute}.\[\@media\(pointer\:coarse\)\]\:before\:inset-\[calc\(50\%-22px\)\]:before{content:var(--tw-content);inset:calc(50% - 22px)}.\[\@media\(pointer\:coarse\)\]\:before\:content-\[\'\'\]:before{--tw-content:"";content:var(--tw-content)}}.xterm{cursor:text;-webkit-user-select:none;user-select:none;position:relative}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{z-index:5;position:absolute;top:0}.xterm .xterm-helper-textarea{opacity:0;z-index:-5;white-space:nowrap;resize:none;border:0;width:0;height:0;margin:0;padding:0;position:absolute;top:0;left:-9999em;overflow:hidden}.xterm .composition-view{color:#fff;white-space:nowrap;z-index:1;background:#000;display:none;position:absolute}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{cursor:default;background-color:#000;position:absolute;inset:0;overflow-y:scroll}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;top:0;left:0}.xterm-char-measure-element{visibility:hidden;line-height:normal;display:inline-block;position:absolute;top:0;left:-9999em}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{z-index:10;color:#0000;pointer-events:none;position:absolute;inset:0}.xterm .xterm-accessibility-tree:not(.debug) ::-moz-selection{color:#0000}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:#0000}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre;font-family:monospace}.xterm .xterm-accessibility-tree>div{transform-origin:0;width:fit-content}.xterm .live-region{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:underline double;text-decoration:underline double}.xterm-underline-3{-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.xterm-underline-4{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.xterm-underline-5{-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:underline overline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;pointer-events:none;position:absolute;top:0;right:0}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;z-index:11;background:0 0;transition:opacity .1s linear}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{display:none;position:absolute}.xterm .xterm-scrollable-element>.shadow.top{width:100%;height:3px;box-shadow:var(--vscode-scrollbar-shadow,#000) 0 6px 6px -6px inset;display:block;top:0;left:3px}.xterm .xterm-scrollable-element>.shadow.left{width:3px;height:100%;box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset;display:block;top:3px;left:0}.xterm .xterm-scrollable-element>.shadow.top-left-corner{width:3px;height:3px;display:block;top:0;left:0}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset}
|