@p4code/cli 0.1.26 → 0.1.28

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.
@@ -90,12 +90,12 @@
90
90
  does not flash a stage label the client will not use.
91
91
  -->
92
92
  <title>P4Code</title>
93
- <script type="module" crossorigin src="/assets/index-C93D7bsA.js"></script>
93
+ <script type="module" crossorigin src="/assets/index-zEyshjuz.js"></script>
94
94
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-QTnfLwEv.js">
95
95
  <link rel="modulepreload" crossorigin href="/assets/compiler-runtime-CLAvuQ-D.js">
96
96
  <link rel="modulepreload" crossorigin href="/assets/preload-helper-CEhsl8MR.js">
97
- <link rel="modulepreload" crossorigin href="/assets/terminal-links-D-5oUNjJ.js">
98
- <link rel="stylesheet" crossorigin href="/assets/index-CVtJ86EL.css">
97
+ <link rel="modulepreload" crossorigin href="/assets/terminal-links-C24S3q-i.js">
98
+ <link rel="stylesheet" crossorigin href="/assets/index-BTvaMCkl.css">
99
99
  </head>
100
100
  <body>
101
101
  <div id="root">
package/package.json CHANGED
@@ -9,7 +9,7 @@
9
9
  "p4c": "./dist/bin.mjs"
10
10
  },
11
11
  "type": "module",
12
- "version": "0.1.26",
12
+ "version": "0.1.28",
13
13
  "license": "MIT",
14
14
  "publishConfig": {
15
15
  "access": "public"
@@ -1,98 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{r as t}from"./preload-helper-CEhsl8MR.js";import{n,r,t as i}from"./compiler-runtime-CLAvuQ-D.js";import{$i as a,C as o,Co as s,Do as c,E as l,J as u,Oc as d,P as f,Q as p,Qr as m,Ur as h,Ws as g,Wt as _,Xs as v,_s as y,b,bs as x,ci as S,cn as C,g as w,gp as T,i as E,in as D,li as O,ni as ee,oc as te,os as k,pn as A,rs as j,si as ne,tc as re,ti as M,u as N,ui as ie,vs as ae,w as oe,ys as se,zs as ce}from"./terminal-links-D-5oUNjJ.js";import{t as le}from"./arrow-right-CZ5hDV1Y.js";import{a as P,n as ue,o as de,s as F}from"./fileCommentAnnotations-CRFAhzRA.js";import{$ as fe,$n as pe,$t as me,B as he,Bn as ge,C as _e,Cr as ve,En as I,Er as ye,Fn as be,Hn as xe,I as Se,In as Ce,J as we,Kr as L,L as Te,Ln as Ee,Q as De,Qt as R,R as Oe,Rn as ke,T as z,Tr as Ae,Un as je,Ur as Me,Vn as Ne,Wn as Pe,Wr as Fe,X as Ie,Xn as B,Y as Le,Z as Re,_ as V,br as ze,cn as Be,dn as Ve,en as H,et as U,h as He,hn as Ue,in as We,it as Ge,mn as W,nn as Ke,q as qe,rn as Je,sn as G,tn as Ye,un as Xe,w as K,xr as Ze,yr as Qe,z as $e,zn as et}from"./index-C93D7bsA.js";var tt=x(`columns-2`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M12 3v18`,key:`108xh3`}]]),nt=x(`pilcrow`,[[`path`,{d:`M13 4v16`,key:`8vvj80`}],[`path`,{d:`M17 4v16`,key:`7dpous`}],[`path`,{d:`M19 4H9.5a4.5 4.5 0 0 0 0 9H13`,key:`sh4n9v`}]]),rt=x(`rows-3`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M21 9H3`,key:`1338ky`}],[`path`,{d:`M21 15H3`,key:`9uk58r`}]]);function q(){return typeof window>`u`||typeof window.matchMedia!=`function`?!1:window.matchMedia(`(prefers-reduced-motion: reduce)`).matches}function J(e){let t=window.devicePixelRatio??1;return Math.round(e*t)/t}var it=`theme.disableLineNumbers.overflow.themeType.disableFileHeader.disableVirtualizationBuffers.preferredHighlighter.useCSSClasses.useTokenTransformer.tokenizeMaxLineLength.tokenizeMaxLength.unsafeCSS.diffStyle.diffIndicators.disableBackground.expandUnchanged.collapsedContextThreshold.lineDiffType.maxLineDiffLength.expansionLineCount.lineHoverHighlight.enableTokenInteractionsOnWhitespace.enableGutterUtility.__debugPointerEvents.enableLineSelection.controlledSelection.disableErrorHandling`.split(`.`),at=[`theme`,`disableLineNumbers`,`overflow`,`themeType`,`disableFileHeader`,`disableVirtualizationBuffers`,`preferredHighlighter`,`useCSSClasses`,`useTokenTransformer`,`tokenizeMaxLineLength`,`tokenizeMaxLength`,`unsafeCSS`,`lineHoverHighlight`,`enableTokenInteractionsOnWhitespace`,`enableGutterUtility`,`__debugPointerEvents`,`enableLineSelection`,`controlledSelection`,`disableErrorHandling`],ot=[`renderCustomHeader`,`renderHeaderPrefix`,`renderHeaderMetadata`,`renderAnnotation`,`renderGutterUtility`,`onPostRender`,`onGutterUtilityClick`,`onLineClick`,`onLineNumberClick`,`onLineEnter`,`onLineLeave`,`onTokenClick`,`onTokenEnter`,`onTokenLeave`],st=[`onLineSelected`,`onLineSelectionStart`,`onLineSelectionChange`,`onLineSelectionEnd`],ct=Symbol(`CodeView.itemOptionsState`);function lt(e,t){Object.defineProperty(e,ct,{configurable:!1,enumerable:!1,value:t})}function ut(e){return e[ct]}function Y(e,t,n){Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get(){return n(this)}})}var dt=120,ft=`--diffs-overflow-override`,pt=12e6,mt=1e6,ht=2e6,X=pt-ht,gt=pt-mt,Z=(()=>{let{navigator:e}=globalThis,t=e.userAgent,n=/iP(?:hone|ad|od)/.test(t),r=e.platform===`MacIntel`&&e.maxTouchPoints>1;return(n||r)&&/AppleWebKit/.test(t)&&/Safari/.test(t)&&!/(CriOS|FxiOS|EdgiOS|OPiOS)/.test(t)})(),_t=class e{static __STOP=!1;static __lastScrollPosition=0;type=`advanced`;config={overscrollSize:200,intersectionObserverMargin:0,resizeDebugging:!1};items=[];idToItem=new Map;selectedLines=null;instanceToItem=new Map;layoutDirtyIndex;pendingLayoutReset;renderOptionsRevision=0;slotCoordinator;slotSnapshot;scrollListeners=new Set;scrollHeight=0;containerHeight=-1;scrollTop=0;scrollPageOffset=0;scrollDirty=!0;scrollInteractionFixTimer;pointerEventsDisabled=!1;codeOverflowFix=!1;height=0;heightDirty=!0;windowSpecs={top:0,bottom:0};renderState={scrollTop:-1,firstIndex:-1,lastIndex:-1,stickyHeight:0,stickyTop:-1,stickyBottom:-1};itemMetricsCache=G;fileOptionsPrototype;diffOptionsPrototype;pendingScrollTarget;pendingLayoutAnchor;shouldFixContainerFocus=!1;scrollAnimation;root;resizeObserver;container=document.createElement(`div`);stickyContainer=document.createElement(`div`);stickyOffset=document.createElement(`div`);elementPool=[];elementPoolVersion=0;elementPoolTracker=new WeakMap;pendingElementPool=[];options;workerManager;isContainerManaged;constructor(e={theme:Ve},t,n=!1){this.options=e,this.computeMetricsCache(e.itemMetrics),this.fileOptionsPrototype=this.createFileOptionsPrototype(),this.diffOptionsPrototype=this.createDiffOptionsPrototype(),this.workerManager=t,this.isContainerManaged=n,this.stickyOffset.style.contain=`layout size`,this.stickyContainer.style.position=`sticky`,this.stickyContainer.style.width=`100%`,this.stickyContainer.style.contain=`layout style inline-size`,this.stickyContainer.style.isolation=`isolate`,this.stickyContainer.style.display=`flex`,this.stickyContainer.style.flexDirection=`column`}getLayout(){return this.options.layout??Be}computeMetricsCache(e){return this.itemMetricsCache={hunkLineCount:e?.hunkLineCount??G.hunkLineCount,lineHeight:e?.lineHeight??G.lineHeight,diffHeaderHeight:e?.diffHeaderHeight??G.diffHeaderHeight,hunkSeparatorHeight:e?.hunkSeparatorHeight,spacing:e?.spacing??G.spacing,paddingTop:e?.paddingTop,paddingBottom:e?.paddingBottom},this.itemMetricsCache}getSmoothScrollSettings(){return this.options.smoothScrollSettings??Xe}shouldDisablePointerEvents(){return this.options.pointerEventsOnScroll!==!0}shouldValidateItemHeights(){return W&&this.options.__devOnlyValidateItemHeights===!0}validateRenderedItemHeight(e){if(!this.shouldValidateItemHeights()||e.element==null)return;let t=e.instance.getAdvancedStickySpecs();if(t==null)return;let n=t.height,r=e.element.getBoundingClientRect().height;n!==r&&console.error(`CodeView: reconciled item height does not match DOM height`,{id:e.item.id,type:e.type,index:e.index,version:e.version,expectedHeight:n,actualHeight:r,delta:r-n,stickyTopOffset:t.topOffset,virtualizedHeight:e.instance.getVirtualizedHeight(),top:e.top,scrollTop:this.getScrollTop(),windowSpecs:{...this.windowSpecs},element:e.element,instance:e.instance})}validateStickyContainerHeight(){if(!this.shouldValidateItemHeights())return;let{firstIndex:e,lastIndex:t,stickyHeight:n,stickyTop:r,stickyBottom:i}=this.renderState;if(e===-1||t===-1)return;let a=this.stickyContainer.getBoundingClientRect().height;Math.abs(a-n)<1||console.error(`CodeView: sticky container height does not match computed layout`,{computedStickyHeight:n,actualStickyHeight:a,delta:a-n,stickyTop:r,stickyBottom:i,firstIndex:e,lastIndex:t,firstStickySpecs:this.items[e]?.instance.getAdvancedStickySpecs(),lastStickySpecs:this.items[t]?.instance.getAdvancedStickySpecs(),scrollTop:this.getScrollTop(),scrollPageOffset:this.scrollPageOffset,windowSpecs:{...this.windowSpecs},stickyContainer:this.stickyContainer})}clearScrollInteractionTimer(){this.scrollInteractionFixTimer!=null&&(clearTimeout(this.scrollInteractionFixTimer),this.scrollInteractionFixTimer=void 0)}suspendScrollInteractions(){this.clearScrollInteractionTimer(),this.shouldDisablePointerEvents()&&!this.pointerEventsDisabled&&(this.stickyContainer.style.pointerEvents=`none`,this.pointerEventsDisabled=!0),Z&&!this.codeOverflowFix&&(this.stickyContainer.style.setProperty(ft,`hidden`),this.codeOverflowFix=!0),this.scrollInteractionFixTimer=setTimeout(this.restoreScrollInteractions,dt)}restoreScrollInteractions=()=>{this.clearScrollInteractionTimer(),this.pointerEventsDisabled&&=(this.stickyContainer.style.removeProperty(`pointer-events`),!1),this.codeOverflowFix&&=(this.stickyContainer.style.setProperty(ft,`auto`),!1)};syncLayout(){let{gap:e,paddingBottom:t,paddingTop:n}=this.getLayout();this.stickyContainer.style.gap=`${e}px`,this.container?.style.setProperty(`margin-top`,`${n}px`),this.container?.style.setProperty(`margin-bottom`,`${t}px`)}setup(t){if(this.root!=null)throw Error(`CodeView.setup: already setup`);this.workerManager?.subscribeToThemeChanges(this),this.root=t,this.root.style.overflowAnchor=`none`,this.root.hasAttribute(`tabindex`)||(this.root.tabIndex=-1),this.container??=document.createElement(`div`),this.container.style.contain=`layout style`,this.syncLayout(),this.container.appendChild(this.stickyOffset),this.container.appendChild(this.stickyContainer),this.root.appendChild(this.container),this.scrollDirty=!0,this.heightDirty=!0,this.resizeObserver=new ResizeObserver(this.handleResize),this.resizeObserver.observe(this.stickyContainer),this.root.addEventListener(`scroll`,this.handleScroll,{passive:!0}),this.root.addEventListener(`wheel`,this.clearPendingScroll,{passive:!0}),this.root.addEventListener(`touchstart`,this.clearPendingScroll,{passive:!0}),this.root.addEventListener(`pointerdown`,this.clearPendingScroll,{passive:!0}),this.root.addEventListener(`keydown`,this.clearPendingScroll,{passive:!0}),this.resizeObserver.observe(this.root),this.render(!0),window.__INSTANCE=this,window.__TOGGLE=()=>{e.__STOP?(e.__STOP=!1,this.scrollTo({type:`position`,position:e.__lastScrollPosition,behavior:`instant`})):(e.__lastScrollPosition=this.getScrollTop(),e.__STOP=!0)}}reset(){this.restoreScrollInteractions(),this.cleanAllRenderedItems(),this.selectedLines=null,this.items.length=0,this.idToItem.clear(),this.instanceToItem.clear(),this.layoutDirtyIndex=void 0,this.pendingLayoutReset=void 0,this.stickyContainer.textContent=``,this.stickyOffset.style.height=``,this.container?.style.removeProperty(`height`),this.containerHeight=-1,this.windowSpecs={top:0,bottom:0},this.pendingLayoutAnchor=void 0,this.shouldFixContainerFocus=!1,this.height=0,this.scrollTop=0,this.scrollPageOffset=0,this.scrollHeight=0,this.scrollDirty=!0,this.heightDirty=!0,this.resetRenderState(),this.isContainerManaged||this.flushSlotCoordinator()}cleanUp(){this.reset(),this.clearElementPool(),this.restoreScrollInteractions(),this.workerManager?.unsubscribeToThemeChanges(this),this.resizeObserver?.disconnect(),this.resizeObserver=void 0,this.root?.removeEventListener(`scroll`,this.handleScroll),this.root?.removeEventListener(`wheel`,this.clearPendingScroll),this.root?.removeEventListener(`touchstart`,this.clearPendingScroll),this.root?.removeEventListener(`pointerdown`,this.clearPendingScroll),this.root?.removeEventListener(`keydown`,this.clearPendingScroll),this.root?.style.removeProperty(`overflow-anchor`),this.container?.remove(),this.stickyOffset.remove(),this.stickyContainer.remove(),this.stickyContainer.textContent=``,this.root=void 0,this.container=void 0}cleanAllRenderedItems(){if(this.renderState.firstIndex!==-1)for(let e=this.renderState.firstIndex;e<=this.renderState.lastIndex;e++){let t=this.items[e];if(t==null)throw Error(`CodeView.cleanAllRenderedItems: Item does not exist at index: ${e}`);this.releaseRenderedItem(t)}}primeScrollTarget(e){e.type!==`position`&&this.idToItem.get(e.id)?.instance.primeHighlightCache()}getElementPoolLimit(){let e=this.getHeight()+this.config.overscrollSize*2,{diffHeaderHeight:t}=this.itemMetricsCache;return Math.max(8,Math.ceil(e/Math.max(t,10))+1)*(this.isContainerManaged?2:1)}acquireElement(){this.promotePendingPooledElements();let e=this.elementPool.pop();for(;e!=null&&!this.isElementPoolGenerationCurrent(e);)e=this.elementPool.pop();return e??=document.createElement(Ue),this.markElementPoolGenerationCurrent(e),e}releaseRenderedItem(e){let{element:t}=e;t!=null&&this.renderedItemOwnsFocus(t)&&(this.shouldFixContainerFocus=!0),e.instance.cleanUp(!0),e.element=void 0,t!=null&&(t.remove(),this.cleanElement(t),this.queueElementForPool(t))}renderedItemOwnsFocus(e){let{activeElement:t}=document;return t===e||e.contains(t)||e.shadowRoot?.activeElement!=null}fixContainerFocus(){this.shouldFixContainerFocus&&(this.shouldFixContainerFocus=!1,this.root?.focus({preventScroll:!0}))}cleanElement(e){let{shadowRoot:t}=e;if(t!=null)for(let e of Array.from(t.children))St(e)||e.remove();this.isContainerManaged||e.replaceChildren()}queueElementForPool(e){let t=this.getElementPoolLimit();!this.isElementPoolGenerationCurrent(e)||this.getElementPoolSize()>=t||(this.isElementClean(e)?this.elementPool.push(e):this.pendingElementPool.push(e))}promotePendingPooledElements(){if(this.pendingElementPool.length===0)return;let{pendingElementPool:e}=this;this.pendingElementPool=[];let t=this.getElementPoolLimit();for(let n of e)this.isElementPoolGenerationCurrent(n)&&this.isElementClean(n)&&this.elementPool.length<t?this.elementPool.push(n):this.isElementPoolGenerationCurrent(n)&&this.getElementPoolSize()<t&&this.pendingElementPool.push(n)}isElementClean(e){return e.childNodes.length===0}getElementPoolSize(){return this.elementPool.length+this.pendingElementPool.length}clearElementPool(){this.elementPool.length=0,this.pendingElementPool.length=0}invalidateElementPool(){this.elementPoolVersion++,this.clearElementPool()}markElementPoolGenerationCurrent(e){this.elementPoolTracker.set(e,this.elementPoolVersion)}isElementPoolGenerationCurrent(e){return this.elementPoolTracker.get(e)===this.elementPoolVersion}resolveEffectiveScrollBehavior(e,t){return q()?`instant`:e.behavior===`smooth-auto`?Math.abs(t-this.getScrollTop())<=this.getHeight()*10?`smooth`:`instant`:e.behavior??`instant`}scrollTo(e){if(this.root==null)return;let t=this.normalizeScrollTarget(e);if(t==null)return;let n=this.resolveScrollTargetTop(t);n!=null&&(this.primeScrollTarget(t),this.resolveEffectiveScrollBehavior(t,n)===`smooth`?this.scrollAnimation??={position:this.getScrollTop(),velocity:0,lastTimestamp:performance.now()}:this.scrollAnimation=void 0,this.suspendScrollInteractions(),this.pendingLayoutAnchor=void 0,this.pendingScrollTarget=t,this.render())}setSelectedLines(e,t){this.applySelectedLines(e,t)}getSelectedLines(){return this.selectedLines}clearSelectedLines(e){this.applySelectedLines(null,e)}getItem(e){return this.idToItem.get(e)?.item}updateItem(e){let t=this.idToItem.get(e.id);return t==null?(console.error(`CodeView.updateItem: unknown item id "${e.id}"`),!1):this.syncItemRecord(t,e)?(this.markItemLayoutDirty(t),this.scrollDirty=!0,this.render(),this.syncSelection(),!0):!1}updateItemId(e,t){if(e===t)return!0;let n=this.idToItem.get(e);return n==null?(console.error(`CodeView.updateItemId: unknown item id "${e}"`),!1):this.idToItem.has(t)?(console.error(`CodeView.updateItemId: duplicate item id "${t}"`),!1):(this.idToItem.delete(e),n.item.id=t,this.idToItem.set(t,n),this.updateItemOptionsId(n.instance.options,t),this.selectedLines?.id===e&&(this.selectedLines={...this.selectedLines,id:t},this.options.onSelectedLinesChange?.(this.selectedLines)),this.renamePendingScrollTarget(e,t),this.renamePendingLayoutAnchor(e,t),this.render(),!0)}addItem(e){this.addItems([e]),this.syncSelection()}addItems(e){this.appendItemsInternal(e),this.syncSelection()}setItems(e){e.length===0?this.reset():this.items.length===0?this.appendItemsInternal(e):this.tryAppendItems(e)||this.reconcileItems(e),this.syncSelection()}appendItemsInternal(e,t=!0){if(e.length===0)return;let n=this.getLayout(),r=this.items.length===0?0:this.scrollHeight+n.gap,i=r;for(let t=0;t<e.length;t++){let i=e[t];if(i==null)throw Error(`CodeView.appendItemsInternal: missing input item`);if(this.idToItem.has(i.id))throw Error(`CodeView.addItem: duplicate id "${i.id}"`);let a=this.createItem(i,this.items.length,r);this.items.push(a),this.idToItem.set(a.item.id,a),this.instanceToItem.set(a.instance,a),a.height=vt(a),r+=a.height+n.gap}this.scrollHeight=r-n.gap,this.scrollDirty=!0,t&&(this.canSkipRenderForAppend(i)?this.syncContainerHeight():this.render())}canSkipRenderForAppend(e){return this.container!=null&&this.renderState.firstIndex!==-1&&this.pendingScrollTarget==null&&this.scrollAnimation==null&&this.layoutDirtyIndex==null&&e>this.windowSpecs.bottom}onThemeChange(){this.invalidateElementPool()}setOptions(e){if(e==null)return;this.capturePendingLayoutAnchor();let{options:t}=this,n=this.getLayout(),{itemMetricsCache:r}=this;yt(t,e)&&this.invalidateElementPool(),this.options=e;let i=this.computeMetricsCache(e.itemMetrics),a=!Ke(r,i),o=!Ke(n,this.getLayout());o&&this.syncLayout();let s=a||bt(t,e);if(s){let n=this.pendingLayoutReset;this.pendingLayoutReset={metrics:a?i:n?.metrics,resetFileLayoutCache:!0,resetDiffLayoutCache:!0,includeEstimatedDiffHeights:n?.includeEstimatedDiffHeights===!0||a||xt(t,e)}}(o||s)&&(this.markLayoutDirtyFromIndex(0),this.scrollDirty=!0),H(t,e)||this.renderOptionsRevision++,!this.isContainerManaged&&this.items.length>0&&this.render()}capturePendingLayoutAnchor(){this.root==null||this.items.length===0||this.pendingScrollTarget!=null||(this.pendingLayoutAnchor=this.getScrollAnchor(this.getScrollTop()))}render(t=!1){e.__STOP||(t?(Je(this.computeRenderRangeAndEmit),this.computeRenderRangeAndEmit()):We(this.computeRenderRangeAndEmit))}instanceChanged(e,t){let n=this.instanceToItem.get(e);if(n==null)throw Error(`CodeView.instanceChanged: An instance has changed that is not registered`);t&&this.markItemLayoutDirty(n),this.render()}getWindowSpecs(){return this.windowSpecs}getContainerElement(){return this.root}getRenderedItems(){let{firstIndex:e,lastIndex:t}=this.renderState;if(e===-1||t===-1||t<e)return[];let n=[];for(let r=e;r<=t;r++){let e=this.items[r];e?.element!=null&&(e.type===`diff`?n.push({id:e.item.id,type:`diff`,item:e.item,version:e.version,element:e.element,instance:e.instance}):n.push({id:e.item.id,type:`file`,item:e.item,version:e.version,element:e.element,instance:e.instance}))}return n}setSlotCoordinator(e){return e===this.slotCoordinator?!1:(this.slotCoordinator=e,this.slotSnapshot=void 0,!0)}getSlotSnapshot(e){return Ot(this.getRenderedItems(),e)}subscribeToScroll(e){return this.scrollListeners.add(e),()=>{this.scrollListeners.delete(e)}}getLocalTopForInstance(e){let t=this.instanceToItem.get(e);if(t==null)throw Error(`CodeView.getLocalTopForInstance: unknown virtualized instance`);return t.top}getTopForItem(e){let t=this.idToItem.get(e);if(t!=null)return t.top+this.getLayout().paddingTop}createItem(e,t,n){let{itemMetricsCache:r}=this;if(e.type===`diff`){let i=new U(this.createDiffOptions(e.id),this,r,this.workerManager,this.isContainerManaged);return{type:`diff`,item:e,version:e.version,index:t,top:n,height:0,element:void 0,renderedOptionsRevision:this.renderOptionsRevision,instance:i}}let i=new F(this.createFileOptions(e.id),this,r,this.workerManager,this.isContainerManaged);return{type:`file`,item:e,version:e.version,index:t,top:n,height:0,element:void 0,renderedOptionsRevision:this.renderOptionsRevision,instance:i}}applySelectedLines(e,t){let{selectedLines:n}=this;e==null&&n==null||e!=null&&n?.id===e.id&&me(n.range,e.range)||(n!=null&&n.id!==e?.id&&this.idToItem.get(n.id)?.instance.setSelectedLines(null,{notify:!1}),this.selectedLines=e,this.idToItem.get(e?.id??``)?.instance.setSelectedLines(e?.range??null,t))}syncSelection(){if(this.selectedLines==null)return;let e=this.idToItem.get(this.selectedLines.id);if(e==null){this.selectedLines=null;return}e.instance.setSelectedLines(this.selectedLines.range,{notify:!1})}renamePendingScrollTarget(e,t){let{pendingScrollTarget:n}=this;n==null||n.type===`position`||n.id!==e||(this.pendingScrollTarget={...n,id:t})}renamePendingLayoutAnchor(e,t){this.pendingLayoutAnchor?.id===e&&(this.pendingLayoutAnchor.id=t)}createFileOptionsPrototype(){let e={};for(let t of at)Y(e,t,()=>this.options[t]);Y(e,`stickyHeader`,()=>this.options.stickyHeaders),Y(e,`collapsed`,e=>this.getItemOptions(ut(e),`file`)?.item.collapsed===!0);for(let t of ot)this.defineItemSharedCallback(e,`file`,t);for(let t of st)this.defineItemSelectionCallback(e,`file`,t);return e}createDiffOptionsPrototype(){let e={};for(let t of it)Y(e,t,()=>this.options[t]);Y(e,`stickyHeader`,()=>this.options.stickyHeaders),Y(e,`hunkSeparators`,()=>this.options.hunkSeparators),Y(e,`collapsed`,e=>this.getItemOptions(ut(e),`diff`)?.item.collapsed===!0);for(let t of ot)this.defineItemSharedCallback(e,`diff`,t);for(let t of st)this.defineItemSelectionCallback(e,`diff`,t);return e}createFileOptions(e){let t=Object.create(this.fileOptionsPrototype);return lt(t,{id:e}),t}createDiffOptions(e){let t=Object.create(this.diffOptionsPrototype);return lt(t,{id:e}),t}updateItemOptionsId(e,t){ut(e).id=t}getItemOptions(e,t){let n=this.idToItem.get(e.id);if(!(n==null||n.type!==t))return n}defineItemSharedCallback(e,t,n){Y(e,n,e=>{if(this.options[n]==null)return;let r=ut(e),i=r.callbackCache??={},a=i[n];return a??(a=((...e)=>{let i=this.getItemOptions(r,t);if(i==null)return;let a=this.options[n];return a?.(...e,i)}),i[n]=a),a})}defineItemSelectionCallback(e,t,n){Y(e,n,e=>{if(this.options.enableLineSelection!==!0)return;let r=ut(e),i=r.callbackCache??={},a=i[n];return a??(a=(e=>{let i=this.getItemOptions(r,t);if(i==null)return;let a=e==null?null:{id:i.item.id,range:e};this.options.controlledSelection!==!0&&(e!=null||this.selectedLines?.id===i.item.id)&&this.applySelectedLines(a,{notify:!1}),this.options.onSelectedLinesChange?.(a);let o=this.options[n];return o?.(e,i)}),i[n]=a),a})}markLayoutDirtyFromIndex(e){this.layoutDirtyIndex=Math.min(this.layoutDirtyIndex??e,e)}markItemLayoutDirty(e){if(this.items[e.index]!==e)throw Error(`CodeView.markItemLayoutDirty: unknown item id "${e.item.id}"`);this.markLayoutDirtyFromIndex(e.index)}tryAppendItems(e){if(e.length<=this.items.length)return!1;for(let t=0;t<this.items.length;t++){let n=this.items[t];if(n==null)throw Error(`CodeView.tryAppendItems: missing existing item`);let r=e[t];if(r==null||n.item.id!==r.id||n.type!==r.type)return!1}for(let t=0;t<this.items.length;t++){let n=this.items[t];if(n==null)throw Error(`CodeView.tryAppendItems: missing existing item`);let r=e[t];if(r==null)throw Error(`CodeView.tryAppendItems: append candidate missing prefix item`);this.syncItemRecord(n,r)&&this.markLayoutDirtyFromIndex(t)}return this.appendItemsInternal(e.slice(this.items.length),!1),this.scrollDirty=!0,this.render(),!0}reconcileItems(e){let{items:t,idToItem:n}=this,r=new Set(t),i=[],a=new Map,o=new Map,s;for(let c=0;c<e.length;c++){let l=e[c];if(l==null)throw Error(`CodeView.reconcileItems: missing input item`);if(a.has(l.id))throw Error(`CodeView.setItems: duplicate id "${l.id}"`);let u=n.get(l.id),d=u!=null&&u.type===l.type?u:this.createItem(l,c,0);d.index=c,u!=null&&u.type===l.type?(r.delete(u),this.syncItemRecord(d,l)&&(s=Math.min(s??c,c))):s=Math.min(s??c,c),t[c]!==d&&(s=Math.min(s??c,c)),i.push(d),a.set(l.id,d),o.set(d.instance,d)}for(let e=0;e<t.length;e++){let n=t[e];if(n==null||!r.has(n))continue;this.releaseRenderedItem(n);let a=Math.max(i.length-1,0);s=Math.min(s??a,a)}s!=null&&(this.items=i,this.idToItem=a,this.instanceToItem=o,this.renderState.firstIndex>=i.length?this.resetRenderState():this.renderState.lastIndex>=i.length&&(this.renderState.lastIndex=i.length-1),this.markLayoutDirtyFromIndex(s),this.scrollDirty=!0,this.render())}syncItemRecord(e,t){if(e.type!==t.type)throw Error(`CodeView.syncItemRecord: type mismatch for id "${t.id}"`);return e.version===t.version?!1:(e.item=t,e.version=t.version,e.renderedOptionsRevision=-1,!0)}getMaxScrollTopForHeight(e){let{paddingBottom:t,paddingTop:n}=this.getLayout();return Math.max(n+e+t-this.getHeight(),0)}getMaxScrollTop(){return this.getMaxScrollTopForHeight(this.getScrollHeight())}shouldRebaseScroll(){return this.getMaxScrollTop()>gt}getPagedScrollHeight(){return this.shouldRebaseScroll()?Math.min(this.getScrollHeight(),pt):this.getScrollHeight()}getMaxPagedScrollTop(){return this.getMaxScrollTopForHeight(this.getPagedScrollHeight())}clampPagedScrollTop(e){let t=this.getMaxPagedScrollTop();return Math.max(0,Math.min(e,t))}clampScrollTop(e){let t=this.getMaxScrollTop();return Math.max(0,Math.min(e,t))}getMaxScrollPageOffset(){return Math.max(this.getMaxScrollTop()-this.getMaxPagedScrollTop(),0)}clampScrollPageOffset(e){let t=this.getMaxScrollPageOffset();return Math.max(0,Math.min(e,t))}resolveScrollPageWindow(e,t){let n=J(this.clampPagedScrollTop(t)),r=this.clampScrollPageOffset(e-n);return n=J(this.clampPagedScrollTop(e-r)),r=this.clampScrollPageOffset(e-n),{pagedScrollTop:n,scrollPageOffset:r}}resolvePagedScrollPosition(e){if(!this.shouldRebaseScroll())return{pagedScrollTop:this.clampPagedScrollTop(e),scrollPageOffset:0};let t=this.clampScrollPageOffset(this.scrollPageOffset),n=e-t,r=this.getMaxPagedScrollTop(),i=this.getMaxScrollPageOffset(),a=n>gt&&t<i,o=n<mt&&t>0;return n<0||n>r||a||o?this.resolveScrollPageWindow(e,o?Math.min(X,r):ht):{pagedScrollTop:J(this.clampPagedScrollTop(n)),scrollPageOffset:t}}needsScrollPageUpdate(e){let t=J(this.clampScrollTop(e)),{scrollPageOffset:n}=this.resolvePagedScrollPosition(t);return n!==this.scrollPageOffset}getPagedLayoutTop(e){return this.shouldRebaseScroll()?Math.max(e-this.scrollPageOffset,0):e}getStickyHeaderOffset(){return this.options.stickyHeaders===!0&&this.options.disableFileHeader!==!0?this.itemMetricsCache.diffHeaderHeight:0}getScrollTargetRect(e){let t=this.idToItem.get(e.id);if(t==null){console.warn(`CodeView.scrollTo: unknown item id "${e.id}"`);return}if(e.type===`item`)return{top:t.top,height:t.height};if(e.type===`range`){let n=this.getRangeScrollPosition(t,e);if(n==null){console.warn(`CodeView.scrollTo: unable to resolve range ${Ct(e.range)} for item "${e.id}"`);return}return{top:t.top+n.top,height:n.height}}let n=this.getLineScrollPosition(t,e);if(n==null){console.warn(`CodeView.scrollTo: unable to resolve line ${e.lineNumber} for item "${e.id}"`);return}return{top:t.top+n.top,height:n.height}}normalizeScrollTarget(e){if(e.type===`position`||e.align!==`nearest`)return e;let t=this.getScrollTargetRect(e);if(t==null)return;let n=e.offset??0,r=this.getLayout().paddingTop+t.top,i=r+t.height,a=this.getScrollTop(),o=a+(e.type===`line`||e.type===`range`?this.getStickyHeaderOffset():0),s=a+this.getHeight();if(!(r-n<=o&&i+n>=s)){if(r-n<o)return{...e,align:`start`};if(i+n>s)return{...e,align:`end`}}}resolveScrollTargetTop(e){if(e.type===`position`){let t=this.clampScrollTop(e.position);return t===e.position?this.clampScrollTop(e.position-this.getStickyHeaderOffset()):t}let t=this.idToItem.get(e.id);if(t==null){console.warn(`CodeView.scrollTo: unknown item id "${e.id}"`);return}if(e.type===`item`)return this.clampScrollTop(this.resolveAlignedScrollPosition(t.top,t.height,e.align,e.offset));if(e.type===`range`){let n=this.getRangeScrollPosition(t,e);if(n==null){console.warn(`CodeView.scrollTo: unable to resolve range ${Ct(e.range)} for item "${e.id}"`);return}return this.clampScrollTop(this.resolveAlignedScrollPosition(t.top+n.top,n.height,e.align,e.offset,this.getStickyHeaderOffset()))}let n=this.getLineScrollPosition(t,e);if(n==null){console.warn(`CodeView.scrollTo: unable to resolve line ${e.lineNumber} for item "${e.id}"`);return}return this.clampScrollTop(this.resolveAlignedScrollPosition(t.top+n.top,n.height,e.align,e.offset,this.getStickyHeaderOffset()))}resolveAlignedScrollPosition(e,t,n,r=0,i=0){e+=this.getLayout().paddingTop;let a=this.getHeight();return n===`center`&&t+r<a?e-(a-t)/2+r:n===`end`?e-(a-t)+r:e-i-r}getLineScrollPosition(e,t){return e.type===`diff`?e.instance.getLinePosition(t.lineNumber,t.side):e.instance.getLinePosition(t.lineNumber)}getRangeScrollPosition(e,t){let{range:n}=t,r=this.getLineScrollPosition(e,{type:`line`,id:t.id,lineNumber:n.start,side:n.side}),i=this.getLineScrollPosition(e,{type:`line`,id:t.id,lineNumber:n.end,side:n.endSide??n.side});if(r==null||i==null)return;let a=r.top,o=a+r.height,s=i.top,c=s+i.height,l=Math.min(a,s);return{top:l,height:Math.max(o,c)-l}}computeTargetScrollTopForFrame(e,t){if(this.pendingScrollTarget==null)return e;let n=this.resolveScrollTargetTop(this.pendingScrollTarget);if(n==null)return e;let{scrollAnimation:r}=this;return r==null?n:this.computeSpringStep(r,n,t).position}computeSpringStep(e,t,n){let r=Math.max(0,n-e.lastTimestamp),{omega:i}=this.getSmoothScrollSettings(),a=Math.exp(-i*r),o=e.position-t,s=e.velocity+i*o;return{position:t+(o+s*r)*a,velocity:(s*(1-i*r)-i*o)*a}}advanceScrollAnimation(e,t){if(this.pendingScrollTarget==null)return;let n=this.resolveScrollTargetTop(this.pendingScrollTarget);if(n==null){this.pendingScrollTarget=void 0,this.scrollAnimation=void 0;return}let r=this.scrollAnimation;if(r==null)return n;r.position+=t;let{position:i,velocity:a}=this.computeSpringStep(r,n,e);r.lastTimestamp=e,r.position=i,r.velocity=a;let{positionEpsilon:o,velocityEpsilon:s}=this.getSmoothScrollSettings();return Math.abs(n-i)<=o&&Math.abs(a)<=s?(r.position=n,r.velocity=0,this.scrollAnimation=void 0,n):r.position}computeRenderRangeAndEmit=(t=performance.now())=>{if(e.__STOP||this.container==null)return;let n=this.getHeight(),r=this.getScrollTop(),i=r,a=this.pendingLayoutAnchor!=null,o=this.getScrollAnchor(i);if(this.layoutDirtyIndex!=null&&(this.recomputeLayout(this.layoutDirtyIndex,this.pendingLayoutReset),this.layoutDirtyIndex=void 0,this.pendingLayoutReset=void 0,a=!0),a&&o!=null){let e=this.resolveAnchoredScrollTop(o);if(e!=null){let t=e-i;i=e,this.scrollAnimation!=null&&(this.scrollAnimation.position+=t)}}a&&(i=this.clampScrollTop(i),this.syncContainerHeight());let s=this.computeTargetScrollTopForFrame(i,t),c=!a&&(this.renderState.scrollTop===-1||Math.abs(s-this.renderState.scrollTop)>n+this.config.overscrollSize*2);c&&(o=void 0),this.windowSpecs=R({scrollTop:s,height:n,scrollHeight:this.getScrollHeight(),fitPerfectly:c,fitPerfectlyOverscroll:this.getFitPerfectlyOverscroll(),overscrollSize:this.config.overscrollSize});let l=r;(this.pendingScrollTarget!=null&&s!==l||this.needsScrollPageUpdate(s))&&(this.applyScrollFix(s,l,this.windowSpecs),l=s);let{top:u,bottom:d}=this.windowSpecs,{firstIndex:f,lastIndex:p}=this.renderState;if(f>=0)for(let e=f;e<=p;e++){let t=this.items[e];if(t==null)throw Error(`CodeView.computeRenderRangeAndEmit: No item at index: ${e}`);t.top>u-t.height&&t.top<=d||this.releaseRenderedItem(t)}let m,h=new Set,g=this.findFirstVisibleIndex(u),_=this.findLastVisibleIndex(d);for(let e=g;e<=_;e++){let t=this.items[e];if(t==null)throw Error(`CodeView.computeRenderRangeAndEmit: missing item`);let{instance:n}=t;t.element==null?(t.element=this.acquireElement(),Et(this.stickyContainer,t.element,m),n.virtualizedSetup(),Tt(t,t.element)&&(t.renderedOptionsRevision=this.renderOptionsRevision,h.add(t)),m=t.element):(Et(this.stickyContainer,t.element,m),Tt(t,void 0,t.renderedOptionsRevision!==this.renderOptionsRevision)&&(t.renderedOptionsRevision=this.renderOptionsRevision,h.add(t)),m=t.element)}this.renderState.firstIndex=g<=_?g:-1,this.renderState.lastIndex=_,this.flushSlotCoordinator(),this.reconcileRenderedItems(h),this.syncContainerHeight(),this.updateStickyPositioning();let v=o==null?void 0:this.resolveAnchoredScrollTop(o);o===this.pendingLayoutAnchor&&(this.pendingLayoutAnchor=void 0);let y=v==null?0:v-i,b=s,x=!1;if(this.pendingScrollTarget!=null){let e=this.advanceScrollAnimation(t,y);e==null?b=i:(b=e,x=!0)}else b=v??s;b!==l&&(this.applyScrollFix(b,l,this.windowSpecs),l=b),x&&this.pendingScrollTarget!=null&&this.isPendingTargetSettled(this.pendingScrollTarget)&&(this.pendingScrollTarget=void 0,this.scrollAnimation=void 0),this.renderState.scrollTop=J(l),this.flushManagers(h),this.validateStickyContainerHeight(),this.fixContainerFocus(),(c||this.scrollAnimation!=null)&&this.render()};flushManagers(e){for(let t of e)t.instance.flushManagers()}syncContainerHeight(){let e=this.getPagedScrollHeight();this.container==null||this.containerHeight===e||(this.container.style.height=`${e}px`,this.containerHeight=e)}getStickyBounds(e){let{firstIndex:t,lastIndex:n}=e==null?this.renderState:{firstIndex:this.findFirstVisibleIndex(e.top),lastIndex:this.findLastVisibleIndex(e.bottom)};if(t===-1||n===-1||t>n)return;let r=this.items[t]?.instance.getAdvancedStickySpecs(e),i=this.items[n]?.instance.getAdvancedStickySpecs(e);if(!(r==null||i==null))return{stickyTop:this.getPagedLayoutTop(Math.max(r.topOffset,0)),stickyBottom:this.getPagedLayoutTop(i.topOffset+i.height)}}applyStickyPositioning({stickyTop:e,stickyBottom:t}){let n=this.getHeight(),{itemMetricsCache:r}=this,i=t-e;this.renderState.stickyHeight=i,this.renderState.stickyTop=e,this.renderState.stickyBottom=t,this.stickyOffset.style.height=`${e}px`;let a=(Math.random()*r.lineHeight>>0)*-1,o=-Math.max(i+a,0)+n;this.stickyContainer.style.top=`${o}px`,this.stickyContainer.style.bottom=`${o+r.diffHeaderHeight}px`}syncPagedScrollScaffolding(e){this.syncContainerHeight();let t=this.getStickyBounds(e);t!=null&&this.applyStickyPositioning(t)}reconcileRenderedItems(e){let{firstIndex:t,lastIndex:n}=this.renderState;if(t===-1)return;let r=-1,i=!1;for(let a=t;a<this.items.length&&!(!i&&a>n);a++){let t=this.items[a];if(t==null)throw Error(`CodeView.reconcileRenderedItems: Invalid item`);r===-1?r=t.top:t.top!==r&&(t.top=r,t.instance.syncVirtualizedTop(),i=!0),(e==null?a<=n:e.has(t))&&(t.instance.reconcileHeights()&&(i=!0,t.height=t.instance.getVirtualizedHeight()),this.validateRenderedItemHeight(t)),r+=t.instance.getVirtualizedHeight(),a<this.items.length-1&&(r+=this.getLayout().gap)}i&&r!=null&&(this.scrollDirty=!0,this.scrollHeight=r)}updateStickyPositioning(){let e=this.getStickyBounds();if(e==null)return;let{stickyTop:t,stickyBottom:n}=e;n-t===this.renderState.stickyHeight&&t===this.renderState.stickyTop&&n===this.renderState.stickyBottom||this.applyStickyPositioning(e)}handleScroll=()=>{e.__STOP||(this.suspendScrollInteractions(),this.scrollDirty=!0,this.notifyScroll(),this.render())};clearPendingScroll=()=>{this.pendingScrollTarget=void 0,this.pendingLayoutAnchor=void 0,this.scrollAnimation=void 0};handleResize=e=>{for(let t of e)if(t.target===this.stickyContainer){if(t.borderBoxSize[0].blockSize!==this.renderState.stickyHeight){let e=this.getScrollTop(),t=this.getScrollAnchor(e);this.reconcileRenderedItems(),this.updateStickyPositioning();let n=t==null?void 0:this.resolveAnchoredScrollTop(t);if(n!=null){let t=n-e;this.applyScrollFix(n,e,this.windowSpecs),this.scrollAnimation!=null&&(this.scrollAnimation.position+=t)}this.pendingScrollTarget!=null&&this.isPendingTargetSettled(this.pendingScrollTarget)&&(this.pendingScrollTarget=void 0,this.scrollAnimation=void 0)}}else this.scrollDirty=!0,this.heightDirty=!0,this.render()};getScrollAnchorViewportTop(e,t){return e<t?t+this.getStickyHeaderOffset():t}getScrollAnchor(e){if(this.pendingLayoutAnchor!=null)return this.pendingLayoutAnchor;let{firstIndex:t,lastIndex:n,stickyTop:r,stickyBottom:i}=this.renderState;if(t===-1||n===-1)return;let a=this.getHeight();if(!(r===-1||i===-1))for(let r=t;r<=n;r++){let t=this.items[r];if(t==null)continue;let n=this.getLayout().paddingTop+t.top;if(n+t.height<=e)continue;if(n>=e+a)break;if(n>=e)return{type:`item`,id:t.item.id,viewportOffset:n-e};let i=this.getScrollAnchorViewportTop(n,e)-n,o=t.instance.getNumericScrollAnchor(i);if(o!=null){let r=n+o.top;return{type:`line`,id:t.item.id,lineNumber:o.lineNumber,side:o.side,viewportOffset:r-e}}}}resolveAnchoredScrollTop(e){let t=this.idToItem.get(e.id);if(t==null)return;let{paddingTop:n}=this.getLayout();if(e.type===`item`){let r=n+t.top;return this.clampScrollTop(r-e.viewportOffset)}let r=t.type===`diff`?t.instance.getLinePosition(e.lineNumber,e.side):t.instance.getLinePosition(e.lineNumber);if(r==null)return;let i=n+t.top+r.top;return this.clampScrollTop(i-e.viewportOffset)}applyScrollFix(e,t,n){if(this.root==null)return;let r=J(this.clampScrollTop(e)),i=J(t),{scrollPageOffset:a}=this,o=J(this.clampPagedScrollTop(i-a)),{pagedScrollTop:s,scrollPageOffset:c}=this.resolvePagedScrollPosition(r),l=s,u=a!==c;r===this.renderState.scrollTop&&r===i&&l===o&&!u||(this.suspendScrollInteractions(),(l!==o||u)&&(this.scrollPageOffset=c,this.syncPagedScrollScaffolding(n)),l!==o&&this.root.scrollTo({top:l,behavior:`instant`}),this.renderState.scrollTop=r,this.scrollTop=r,this.scrollDirty=!1)}isPendingTargetSettled(e){let t=this.resolveScrollTargetTop(e);return t==null?!0:J(this.getScrollTop())===J(t)}getScrollTop(){if(!this.scrollDirty)return this.scrollTop;this.scrollDirty=!1;let e=this.root?.scrollTop??0;return this.scrollTop=this.clampScrollTop(e+this.scrollPageOffset),this.scrollTop}getHeight(){return this.heightDirty?(this.heightDirty=!1,this.height=this.root?.getBoundingClientRect().height??0,this.height):this.height}getScrollHeight(){return this.scrollHeight}flushSlotCoordinator(){if(this.slotCoordinator==null)return;let{onSnapshotChange:e}=this.slotCoordinator,t=Ot(this.getRenderedItems(),this.slotCoordinator);kt(this.slotSnapshot,t)||(this.slotSnapshot=t,e(t))}notifyScroll(){if(this.scrollListeners.size===0)return;let e=this.getScrollTop();for(let t of this.scrollListeners)t(e,this)}findFirstVisibleIndex(e){let t=0,n=this.items.length-1,r=this.items.length;for(;t<=n;){let i=t+n>>1,a=this.items[i];if(a==null)throw Error(`CodeView.findFirstVisibleIndex: invalid item index`);a.top+a.height>e?(r=i,n=i-1):t=i+1}return r}findLastVisibleIndex(e){let t=0,n=this.items.length-1,r=-1;for(;t<=n;){let i=t+n>>1,a=this.items[i];if(a==null)throw Error(`CodeView.findLastVisibleIndex: invalid item index`);a.top<=e?(r=i,t=i+1):n=i-1}return r}recomputeLayout(e=0,t){if(this.items.length===0){this.scrollHeight=0;return}let n=this.getLayout(),r=0;if(e>0){let t=this.items[e-1];if(t==null)throw Error(`CodeView.recomputeLayout: invalid dirty index`);r=t.top+t.height+n.gap}for(let i=e;i<this.items.length;i++){let e=this.items[i];if(e==null)throw Error(`CodeView.recomputeLayout: invalid item index`);e.top=r,e.type===`diff`?e.height=e.instance.prepareCodeViewItem(e.item.fileDiff,r,t,e.item.annotations??[]):e.height=e.instance.prepareCodeViewItem(e.item.file,r,t,e.item.annotations??[]),r+=e.height,i<this.items.length-1&&(r+=n.gap)}r!==this.scrollHeight&&(this.scrollDirty=!0),this.scrollHeight=r}resetRenderState(){this.renderState.scrollTop=-1,this.renderState.firstIndex=-1,this.renderState.lastIndex=-1,this.renderState.stickyHeight=0,this.renderState.stickyTop=-1,this.renderState.stickyBottom=-1}getFitPerfectlyOverscroll(){return this.getLayout().gap+this.itemMetricsCache.diffHeaderHeight}};function vt(e){return e.instance.cleanUp(!0),e.type===`diff`?e.instance.prepareCodeViewItem(e.item.fileDiff,e.top,void 0,e.item.annotations??[]):e.instance.prepareCodeViewItem(e.item.file,e.top,void 0,e.item.annotations??[])}function yt(e,t){return!Ye(e.theme??Ve,t.theme??Ve)||(e.themeType??`system`)!==(t.themeType??`system`)||e.unsafeCSS!==t.unsafeCSS}function bt(e,t){return(e.overflow??`scroll`)!==(t.overflow??`scroll`)||(e.disableLineNumbers??!1)!==(t.disableLineNumbers??!1)||(e.disableFileHeader??!1)!==(t.disableFileHeader??!1)||e.unsafeCSS!==t.unsafeCSS||(e.diffStyle??`split`)!==(t.diffStyle??`split`)||(e.diffIndicators??`bars`)!==(t.diffIndicators??`bars`)||(e.hunkSeparators??`line-info`)!==(t.hunkSeparators??`line-info`)||(e.expandUnchanged??!1)!==(t.expandUnchanged??!1)||(e.collapsedContextThreshold??1)!==(t.collapsedContextThreshold??1)}function xt(e,t){return(e.disableFileHeader??!1)!==(t.disableFileHeader??!1)||(e.hunkSeparators??`line-info`)!==(t.hunkSeparators??`line-info`)||(e.expandUnchanged??!1)!==(t.expandUnchanged??!1)||(e.collapsedContextThreshold??1)!==(t.collapsedContextThreshold??1)}function St(e){return e instanceof SVGElement?!0:Ge(e)&&(e.hasAttribute(`data-core-css`)||e.hasAttribute(`data-theme-css`)||e.hasAttribute(`data-unsafe-css`))}function Ct(e){let t=wt(e.start,e.side),n=wt(e.end,e.endSide??e.side);return t===n?t:`${t}-${n}`}function wt(e,t){return t==null?`${e}`:`${t===`deletions`?`D`:`A`}${e}`}function Tt(e,t,n=!1){return e.type===`diff`?e.instance.render({deferManagers:!0,fileContainer:t,fileDiff:e.item.fileDiff,forceRender:n,lineAnnotations:e.item.annotations??[]}):e.instance.render({deferManagers:!0,fileContainer:t,file:e.item.file,forceRender:n,lineAnnotations:e.item.annotations??[]})}function Et(e,t,n){if(n==null){e.firstChild!==t&&e.prepend(t);return}n.nextSibling!==t&&n.after(t)}function Dt(e){return(e.annotations?.length??0)>0}function Ot(e,{hasHeaderRenderers:t,hasAnnotationRenderer:n,hasGutterRenderer:r}){if(e.length===0)return;if(t||r)return e;if(!n)return;let i=[];for(let t of e)Dt(t.item)&&i.push(t);return i.length>0?i:void 0}function kt(e,t){if(e==null||t==null)return e===t;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++){let r=e[n],i=t[n];if(r==null||i==null||r.id!==i.id||r.type!==i.type||r.element!==i.element||r.version!==i.version)return!1}return!0}function At(e,t){if(e==null||t==null)return e===t;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++){let r=e[n],i=t[n];if(r==null||i==null||r.id!==i.id||r.type!==i.type||r.element!==i.element||r.version!==i.version)return!1}return!0}var Q=e(r(),1),$=n(),jt=e(t(),1),Mt=typeof window>`u`?Q.useEffect:Q.useLayoutEffect;function Nt(e){return{instance:void 0,items:void 0,controlled:e,managedOptions:void 0,disableFlushSync:!1,slotCoordinator:void 0}}function Pt(e,t){let{className:n,containerRef:r,disableWorkerPool:i=!1,initialItems:a,items:o,onScroll:s,onSelectedLinesChange:c,options:l,renderAnnotation:u,renderCustomHeader:d,renderGutterUtility:f,renderHeaderMetadata:p,renderHeaderPrefix:m,selectedLines:h,style:g}=e,_=o!==void 0,v=(0,Q.useContext)(_e),y=(0,Q.useRef)(Nt(_)),b=d!=null,x=u!=null,S=f!=null,C=b||m!=null||p!=null,w=C||x||S,T=K(e=>{c?.(e)}),E=h!==void 0,D=(0,Q.useMemo)(()=>Bt({options:l,hasCustomHeader:b,hasGutterRenderer:S,onSelectedLinesChange:c==null?void 0:T,controlledSelection:E}),[l,b,S,c,T,E]),[O]=(0,Q.useState)(()=>zt()),[,ee]=(0,Q.useState)({}),te=K(e=>{y.current.instance!=null&&(e==null||e!==y.current.instance.getContainerElement())&&(y.current.instance.cleanUp(),O.publish(void 0),y.current=Nt(_)),e!=null&&e!==y.current.instance?.getContainerElement()&&(y.current.instance=new _t(D,i?void 0:v,!0),y.current.instance.setup(e)),typeof r==`function`?r(e):r!=null&&(r.current=e)}),k=K(e=>{y.current.disableFlushSync?O.publish(e):(0,jt.flushSync)(()=>{O.publish(e)})}),A=(0,Q.useMemo)(()=>{if(!(!C&&!x&&!S))return{hasHeaderRenderers:C,hasAnnotationRenderer:x,hasGutterRenderer:S,onSnapshotChange:k}},[k,x,S,C]);return Mt(()=>s==null?void 0:y.current.instance?.subscribeToScroll(s)),Mt(()=>{let{instance:e,controlled:t,items:n,managedOptions:r,slotCoordinator:i}=y.current;if(e!=null)try{y.current.disableFlushSync=!0;let s=!1;if(H(D,r)||(y.current.managedOptions=D,e.setOptions(D),s=!0),t!==_){console.error(`CodeView: cannot switch between controlled and uncontrolled modes. Remount with a new key instead.`);return}if(_)o!==n&&(Lt(n,o)?y.current.items=o:It(n,o)?(y.current.items=o,e.addItems(o.slice(n.length))):(y.current.items=o,e.setItems(o),s=!0));else if(n==null){let t=a??[];y.current.items=t,t.length>0&&(e.setItems(t),s=!0)}h!==void 0&&e.setSelectedLines(h,{notify:!1});let c=e.setSlotCoordinator(A),l=!1;A!==i&&((A==null||i==null)&&(l=!0),y.current.slotCoordinator=A),(s||c)&&e.render(!0),c&&A==null&&O.publish(void 0),l&&ee({})}finally{y.current.disableFlushSync=!1}}),(0,Q.useImperativeHandle)(t,()=>({addItems(e){let{controlled:t,instance:n}=y.current;Rt(t,`addItems`),n==null?console.error(`CodeView.addItems: no valid instance to append items with`,e):n.addItems(e)},getItem(e){let{instance:t}=y.current;if(t==null){console.error(`CodeView.getItem: no valid instance exists`,e);return}else return t.getItem(e)},updateItem(e){let{controlled:t,instance:n}=y.current;return Rt(t,`updateItem`),n==null?(console.error(`CodeView.updateItem: no valid instance to update item with`,e),!1):n.updateItem(e)},updateItemId(e,t){let{controlled:n,instance:r}=y.current;return Rt(n,`updateItemId`),r==null?(console.error(`CodeView.updateItemId: no valid instance to update item id with`,e,t),!1):r.updateItemId(e,t)},scrollTo(e){let{instance:t}=y.current;t==null?console.error(`CodeView.scrollTo: no valid instance to scroll with`,e):t.scrollTo(e)},setSelectedLines(e){let{instance:t}=y.current;t==null?console.error(`CodeView.setSelectedLines: no valid instance to update selection with`,e):(t.setSelectedLines(e,{notify:!1}),T(e))},getSelectedLines(){let{instance:e}=y.current;return e==null?(console.error(`CodeView.getSelectedLines: no valid instance exists`),null):e.getSelectedLines()},clearSelectedLines(){let{instance:e}=y.current;e==null?console.error(`CodeView.clearSelectedLines: no valid instance to update selection with`):(e.clearSelectedLines({notify:!1}),T(null))},getInstance(){return y.current.instance}}),[T]),(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`div`,{ref:te,className:n,style:g}),w&&(0,$.jsx)(Vt,{managedContentStore:O,renderCustomHeader:d,renderHeaderPrefix:m,renderHeaderMetadata:p,renderAnnotation:u,renderGutterUtility:f})]})}var Ft=(0,Q.forwardRef)(Pt);function It(e,t){if(e==null||t.length<=e.length)return!1;if(e.length===0)return!0;for(let n=0;n<e.length;n++)if(t[n]!==e[n])return!1;return!0}function Lt(e,t){if(e==null||e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function Rt(e,t){if(e)throw Error(`CodeView.${t} cannot be used when CodeView is controlled. Use initialItems for imperative item updates.`)}function zt(){let e,t=new Set;return{getSnapshot(){return e},publish(n){if(!At(e,n)){e=n;for(let e of t)e()}},subscribe(e){return t.add(e),()=>{t.delete(e)}}}}function Bt({options:e,hasCustomHeader:t,hasGutterRenderer:n,onSelectedLinesChange:r,controlledSelection:i}){return!t&&!n&&r==null&&!i?e:(e={...e,controlledSelection:i,onSelectedLinesChange:r},t&&(e.renderCustomHeader=Ut),n&&(e.renderGutterUtility=Ut),e)}var Vt=(0,Q.memo)(function({managedContentStore:e,renderCustomHeader:t,renderHeaderPrefix:n,renderHeaderMetadata:r,renderAnnotation:i,renderGutterUtility:a}){let o=K(t=>e.subscribe(t)),s=K(()=>e.getSnapshot());return(0,Q.useSyncExternalStore)(o,s,s)?.map(e=>(0,jt.createPortal)(Ht({renderedItem:e,renderCustomHeader:t,renderHeaderPrefix:n,renderHeaderMetadata:r,renderAnnotation:i,renderGutterUtility:a}),e.element,e.id))});function Ht({renderedItem:e,renderCustomHeader:t,renderHeaderPrefix:n,renderHeaderMetadata:r,renderAnnotation:i,renderGutterUtility:a}){if(e.type===`diff`){let{item:o,instance:s}=e;return z({fileDiff:o.fileDiff,renderCustomHeader:t==null?void 0:()=>t(o),renderHeaderPrefix:n==null?void 0:()=>n(o),renderHeaderMetadata:r==null?void 0:()=>r(o),renderAnnotation:i==null?void 0:e=>i(e,o),lineAnnotations:o.annotations,renderGutterUtility:a==null?void 0:e=>a(e,o),getHoveredLine:s.getHoveredLine})}else{let{item:o,instance:s}=e;return de({file:o.file,renderCustomHeader:t==null?void 0:()=>t(o),renderHeaderPrefix:n==null?void 0:()=>n(o),renderHeaderMetadata:r==null?void 0:()=>r(o),renderAnnotation:i==null?void 0:e=>i(e,o),lineAnnotations:o.annotations,renderGutterUtility:a==null?void 0:e=>a(e,o),getHoveredLine:s.getHoveredLine})}}function Ut(){}function Wt({threadRef:e,filePath:t,activeCwd:n,openInEditor:r}){if(e){w.getState().openFile(e,t);return}r(n?E(t,n):t)}var Gt=i();function Kt(e,t){let n=(0,Gt.c)(4),r=I(e,t),i;return n[0]!==r.data||n[1]!==r.error||n[2]!==r.isPending?(i={data:r.data,error:r.error,isPending:r.isPending},n[0]=r.data,n[1]=r.error,n[2]=r.isPending,n[3]=i):i=n[3],i}function qt(e,t){return e.length>0&&e.every(e=>t.has(e))}function Jt(e,t){return qt(e,t)?new Set:new Set(e)}function Yt(e){return _(`flex items-center justify-between gap-2 px-4`,L&&e!==`sheet`&&e!==`embedded`?`drag-region h-[52px] border-b border-border wco:h-[env(titlebar-area-height)] wco:pr-[calc(100vw-env(titlebar-area-width)-env(titlebar-area-x)+1em)]`:`surface-subheader`)}function Xt(e){let t=(0,Gt.c)(10),n=L&&e.mode!==`sheet`&&e.mode!==`embedded`,r=e.mode===`inline`?`w-[42vw] min-w-[360px] max-w-[560px] shrink-0 border-l border-border`:`w-full`,i;t[0]===r?i=t[1]:(i=_(`flex h-full min-w-0 flex-col bg-background`,r),t[0]=r,t[1]=i);let a;t[2]!==e.header||t[3]!==e.mode||t[4]!==n?(a=n?(0,$.jsx)(`div`,{className:Yt(e.mode),children:e.header}):(0,$.jsx)(`div`,{className:Yt(e.mode),"data-surface-subheader":!0,children:e.header}),t[2]=e.header,t[3]=e.mode,t[4]=n,t[5]=a):a=t[5];let o;return t[6]!==e.children||t[7]!==i||t[8]!==a?(o=(0,$.jsxs)(`div`,{className:i,children:[a,e.children]}),t[6]=e.children,t[7]=i,t[8]=a,t[9]=o):o=t[9],o}function Zt(e){let t=(0,Gt.c)(7),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,$.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-border/50 px-3 py-2`,children:[(0,$.jsx)(B,{className:`h-4 w-32 rounded-full`}),(0,$.jsx)(B,{className:`ml-auto h-4 w-20 rounded-full`})]}),t[0]=n):n=t[0];let r;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,$.jsxs)(`div`,{className:`space-y-2`,children:[(0,$.jsx)(B,{className:`h-3 w-full rounded-full`}),(0,$.jsx)(B,{className:`h-3 w-full rounded-full`}),(0,$.jsx)(B,{className:`h-3 w-10/12 rounded-full`}),(0,$.jsx)(B,{className:`h-3 w-11/12 rounded-full`}),(0,$.jsx)(B,{className:`h-3 w-9/12 rounded-full`})]}),t[1]=r):r=t[1];let i;t[2]===e.label?i=t[3]:(i=(0,$.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-4 px-3 py-4`,children:[r,(0,$.jsx)(`span`,{className:`sr-only`,children:e.label})]}),t[2]=e.label,t[3]=i);let a;return t[4]!==e.label||t[5]!==i?(a=(0,$.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col p-2`,children:(0,$.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-hidden rounded-md border border-border/60 bg-card/25`,role:`status`,"aria-live":`polite`,"aria-label":e.label,children:[n,i]})}),t[4]=e.label,t[5]=i,t[6]=a):a=t[6],a}var Qt=[];function $t(e){return(e.endSide??e.side)===`deletions`?`deletions`:`additions`}function en(e,t,n){let r=$t(t),i=e.findIndex(e=>e.side===r&&e.lineNumber===t.end);return i<0?[...e,{side:r,lineNumber:t.end,metadata:{entries:[n]}}]:e.map((e,t)=>t===i?{...e,metadata:{entries:[...e.metadata.entries,n]}}:e)}function tn(e){let t=(0,Gt.c)(50),{files:n,sectionId:r,sectionTitle:i,composerDraftTarget:a,options:o,viewerRef:s,className:c,renderHeaderPrefix:l}=e,u=D(sn),d=D(on),f;t[0]===a?f=t[1]:(f=e=>e.getComposerDraft(a)?.reviewComments??Qt,t[0]=a,t[1]=f);let p=D(f),[m,h]=(0,Q.useState)(null),[g,_]=(0,Q.useState)(null),v;t[2]===n?v=t[3]:(v=new Map(n.map(an)),t[2]=n,t[3]=v);let y=v,b;if(t[4]!==g||t[5]!==n||t[6]!==p||t[7]!==r){let e;t[9]!==g||t[10]!==p||t[11]!==r?(e=e=>{let{fileDiff:t,filePath:n,fileKey:i,collapsed:a}=e,o=p.filter(e=>e.sectionId===r&&e.filePath===n&&(e.fenceLanguage??`diff`)===`diff`).reduce((e,n)=>{let r=A(t,n);return r?en(e,r,{id:n.id,kind:`comment`,range:r,rangeLabel:n.rangeLabel,text:n.text}):e},[]),s=g?.fileKey===i?[...o,g.annotation]:o;return{id:i,type:`diff`,fileDiff:t,annotations:s,collapsed:a,version:we(`${a?`1`:`0`}:${s.flatMap(nn).join(`:`)}`)}},t[9]=g,t[10]=p,t[11]=r,t[12]=e):e=t[12],b=n.map(e),t[4]=g,t[5]=n,t[6]=p,t[7]=r,t[8]=b}else b=t[8];let x=b,S;t[13]!==a||t[14]!==g?.annotation||t[15]!==d?(S=e=>{h(null),g?.annotation.metadata.entries.some(t=>t.id===e)?_(null):d(a,e)},t[13]=a,t[14]=g?.annotation,t[15]=d,t[16]=S):S=t[16];let w=S,T;t[17]!==u||t[18]!==a||t[19]!==g||t[20]!==y||t[21]!==r||t[22]!==i?(T=(e,t)=>{let n=g?.annotation.metadata.entries.find(t=>t.id===e),o=g?y.get(g.fileKey):void 0;if(!n||!o)return;let s=C({id:n.id,sectionId:r,sectionTitle:i,filePath:o.filePath,fileDiff:o.fileDiff,range:n.range,text:t});s&&u(a,s),h(null),_(null)},t[17]=u,t[18]=a,t[19]=g,t[20]=y,t[21]=r,t[22]=i,t[23]=T):T=t[23];let E=T,O;t[24]!==y||t[25]!==r||t[26]!==i?(O=(e,t)=>{if(!e)return;let n=t.item;if(n.type!==`diff`)return;let a=y.get(n.id);if(!a)return;let o=ue(),s=C({id:o,sectionId:r,sectionTitle:i,filePath:a.filePath,fileDiff:a.fileDiff,range:e,text:``});s&&_({fileKey:n.id,annotation:{side:$t(e),lineNumber:e.end,metadata:{entries:[{id:o,kind:`draft`,range:e,rangeLabel:s.rangeLabel,text:``}]}}})},t[24]=y,t[25]=r,t[26]=i,t[27]=O):O=t[27];let ee=O,te=g!==null,k;t[28]===s?k=t[29]:(k=s?{ref:s}:{},t[28]=s,t[29]=k);let j;t[30]===c?j=t[31]:(j=c?{className:c}:{},t[30]=c,t[31]=j);let ne=!te,re=!te,M;t[32]!==ee||t[33]!==o||t[34]!==re||t[35]!==ne?(M={...o,enableGutterUtility:ne,enableLineSelection:re,onLineSelectionEnd:ee},t[32]=ee,t[33]=o,t[34]=re,t[35]=ne,t[36]=M):M=t[36];let N;t[37]===l?N=t[38]:(N=e=>e.type===`diff`?l(e.fileDiff,e.id,e.collapsed===!0):null,t[37]=l,t[38]=N);let ie;t[39]!==w||t[40]!==E?(ie=e=>(0,$.jsx)(`div`,{className:`py-1`,children:e.metadata.entries.map(e=>(0,$.jsx)(P,{kind:e.kind,rangeLabel:e.rangeLabel,text:e.text,onCancel:()=>w(e.id),onComment:t=>E(e.id,t),onDelete:()=>w(e.id)},e.id))}),t[39]=w,t[40]=E,t[41]=ie):ie=t[41];let ae;return t[42]!==x||t[43]!==m||t[44]!==M||t[45]!==N||t[46]!==ie||t[47]!==k||t[48]!==j?(ae=(0,$.jsx)(Ft,{...k,...j,items:x,selectedLines:m,onSelectedLinesChange:h,options:M,renderHeaderPrefix:N,renderAnnotation:ie}),t[42]=x,t[43]=m,t[44]=M,t[45]=N,t[46]=ie,t[47]=k,t[48]=j,t[49]=ae):ae=t[49],ae}function nn(e){return e.metadata.entries.map(rn)}function rn(e){return`${e.id}:${e.rangeLabel}:${e.text}`}function an(e){return[e.fileKey,e]}function on(e){return e.removeReviewComment}function sn(e){return e.addReviewComment}var cn=function(e){return e.disabled=`data-disabled`,e.orientation=`data-orientation`,e.multiple=`data-multiple`,e}({}),ln={multiple(e){return e?{[cn.multiple]:``}:null}},un=Q.forwardRef(function(e,t){let{defaultValue:n,disabled:r=!1,loopFocus:i=!0,onValueChange:o,orientation:l=`horizontal`,multiple:u=!1,value:d,className:f,render:p,style:m,...h}=e,g=a(!0),_=Q.useMemo(()=>d!==void 0||n!==void 0,[d,n]),v=(g?.disabled??!1)||r,[y,b]=c({controlled:d,default:d===void 0?n??k:void 0,name:`ToggleGroup`,state:`value`}),x=s((e,t,n)=>{let r;u?(r=y.slice(),t?r.push(e):r.splice(y.indexOf(e),1)):r=t?[e]:[],o?.(r,n),!n.isCanceled&&b(r)}),S={disabled:v,multiple:u,orientation:l},C=Q.useMemo(()=>({disabled:v,orientation:l,setGroupValue:x,value:y,isValueInitialized:_}),[v,l,x,y,_]),w={role:`group`},T=j(`div`,e,{enabled:!!g,state:S,ref:t,props:[w,h],stateAttributesMapping:ln});return(0,$.jsx)(he.Provider,{value:C,children:g?T:(0,$.jsx)(be,{render:p,className:f,style:m,state:S,refs:[t],props:[w,h],stateAttributesMapping:ln,loopFocus:i,enableHomeAndEndKeys:!0,orientation:l})})}),dn=Q.createContext({size:`default`,variant:`default`});function fn(e){let t=(0,Gt.c)(24),n,r,i,a,o,s;t[0]===e?(n=t[1],r=t[2],i=t[3],a=t[4],o=t[5],s=t[6]):({className:r,variant:a,size:o,orientation:s,children:n,...i}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a,t[5]=o,t[6]=s);let c=a===void 0?`default`:a,l=o===void 0?`default`:o,u=s===void 0?`horizontal`:s,d;t[7]!==l||t[8]!==c?(d={size:l,variant:c},t[7]=l,t[8]=c,t[9]=d):d=t[9];let f=d,p=u===`horizontal`?`*:pointer-coarse:after:min-w-auto`:`*:pointer-coarse:after:min-h-auto`,m=c==="default"?`gap-0.5`:u===`horizontal`?`*:not-first:not-data-[slot=separator]:before:-start-[0.5px] *:not-last:not-data-[slot=separator]:before:-end-[0.5px] *:not-first:rounded-s-none *:not-last:rounded-e-none *:not-first:border-s-0 *:not-last:border-e-0 *:not-first:before:rounded-s-none *:not-last:before:rounded-e-none`:`*:not-first:not-data-[slot=separator]:before:-top-[0.5px] *:not-last:not-data-[slot=separator]:before:-bottom-[0.5px] flex-col *:not-first:rounded-t-none *:not-last:rounded-b-none *:not-first:border-t-0 *:not-last:border-b-0 *:not-first:before:rounded-t-none *:not-last:before:rounded-b-none *:data-[slot=toggle]:not-last:before:hidden dark:*:last:before:hidden dark:*:first:before:block`,h;t[10]!==r||t[11]!==p||t[12]!==m?(h=_(`flex w-fit *:focus-visible:z-10 dark:*:[[data-slot=separator]:has(+[data-slot=toggle]:hover)]:before:bg-input/64 dark:*:[[data-slot=separator]:has(+[data-slot=toggle][data-pressed])]:before:bg-input dark:*:[[data-slot=toggle]:hover+[data-slot=separator]]:before:bg-input/64 dark:*:[[data-slot=toggle][data-pressed]+[data-slot=separator]]:before:bg-input`,p,m,r),t[10]=r,t[11]=p,t[12]=m,t[13]=h):h=t[13];let g;t[14]!==n||t[15]!==f?(g=(0,$.jsx)(dn,{value:f,children:n}),t[14]=n,t[15]=f,t[16]=g):g=t[16];let v;return t[17]!==u||t[18]!==i||t[19]!==l||t[20]!==h||t[21]!==g||t[22]!==c?(v=(0,$.jsx)(un,{className:h,"data-size":l,"data-slot":`toggle-group`,"data-variant":c,orientation:u,...i,children:g}),t[17]=u,t[18]=i,t[19]=l,t[20]=h,t[21]=g,t[22]=c,t[23]=v):v=t[23],v}function pn(e){let t=(0,Gt.c)(12),n,r,i,a,o;t[0]===e?(n=t[1],r=t[2],i=t[3],a=t[4],o=t[5]):({className:r,children:n,variant:o,size:a,...i}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a,t[5]=o);let s=Q.use(dn),c=o??s.variant,l=a??s.size,u;return t[6]!==n||t[7]!==r||t[8]!==i||t[9]!==l||t[10]!==c?(u=(0,$.jsx)($e,{className:r,"data-size":l,"data-variant":c,size:l,variant:c,...i,children:n}),t[6]=n,t[7]=r,t[8]=i,t[9]=l,t[10]=c,t[11]=u):u=t[11],u}function mn(e){return{diffPreview:g(e,{label:`environment-data:review:diff-preview`,tag:d.reviewGetDiffPreview,staleTimeMs:5e3})}}var hn=mn(p);function gn(e){return e.remoteName&&e.name.startsWith(`${e.remoteName}/`)?e.name.slice(e.remoteName.length+1):e.name}function _n(e,t){let n=new Set(t),r=e.map(e=>{let r=t.filter(t=>n.has(t)&&gn(t)===e.name),i=r.find(e=>e.remoteName===`origin`)??r[0]??null;return i&&n.delete(i),{id:`local:${e.name}`,label:e.name,local:e,remote:i}}),i=t.filter(e=>n.has(e)).map(e=>({id:`remote:${e.name}`,label:e.name,local:null,remote:e}));return[...r,...i]}function vn(e,t){let n=t.trim().toLocaleLowerCase();return n.length===0?e:e.filter(e=>e.label.toLocaleLowerCase().includes(n)||e.local?.name.toLocaleLowerCase().includes(n)===!0||e.remote?.name.toLocaleLowerCase().includes(n)===!0)}var yn=`__automatic_base_ref__`,bn=new Set,xn=`
2
- [data-diffs-header],
3
- [data-diff],
4
- [data-file],
5
- [data-error-wrapper],
6
- [data-virtualizer-buffer] {
7
- --diffs-header-font-family: var(--font-sans) !important;
8
- --diffs-font-family: var(--font-mono) !important;
9
- --diffs-bg: color-mix(in srgb, var(--card) 90%, var(--background)) !important;
10
- --diffs-light-bg: color-mix(in srgb, var(--card) 90%, var(--background)) !important;
11
- --diffs-dark-bg: color-mix(in srgb, var(--card) 90%, var(--background)) !important;
12
- --diffs-token-light-bg: transparent;
13
- --diffs-token-dark-bg: transparent;
14
-
15
- --diffs-bg-context-override: color-mix(in srgb, var(--background) 97%, var(--foreground));
16
- --diffs-bg-hover-override: color-mix(in srgb, var(--background) 94%, var(--foreground));
17
- --diffs-bg-separator-override: color-mix(in srgb, var(--background) 95%, var(--foreground));
18
- --diffs-bg-buffer-override: color-mix(in srgb, var(--background) 90%, var(--foreground));
19
-
20
- --diffs-bg-addition-override: color-mix(in srgb, var(--background) 92%, var(--success));
21
- --diffs-bg-addition-number-override: color-mix(in srgb, var(--background) 88%, var(--success));
22
- --diffs-bg-addition-hover-override: color-mix(in srgb, var(--background) 85%, var(--success));
23
- --diffs-bg-addition-emphasis-override: color-mix(in srgb, var(--background) 80%, var(--success));
24
-
25
- --diffs-bg-deletion-override: color-mix(in srgb, var(--background) 92%, var(--destructive));
26
- --diffs-bg-deletion-number-override: color-mix(in srgb, var(--background) 88%, var(--destructive));
27
- --diffs-bg-deletion-hover-override: color-mix(in srgb, var(--background) 85%, var(--destructive));
28
- --diffs-bg-deletion-emphasis-override: color-mix(
29
- in srgb,
30
- var(--background) 80%,
31
- var(--destructive)
32
- );
33
-
34
- background-color: var(--diffs-bg) !important;
35
- }
36
-
37
- [data-file-info] {
38
- background-color: color-mix(in srgb, var(--card) 94%, var(--foreground)) !important;
39
- border-block-color: var(--border) !important;
40
- color: var(--foreground) !important;
41
- }
42
-
43
- [data-diffs-header] {
44
- position: sticky !important;
45
- top: 0;
46
- z-index: 4;
47
- background-color: color-mix(in srgb, var(--card) 94%, var(--foreground)) !important;
48
- border-bottom: 1px solid var(--border) !important;
49
- align-items: center !important;
50
- font-family: var(--font-sans) !important;
51
- font-size: 12px !important;
52
- line-height: 1 !important;
53
- min-height: 32px !important;
54
- padding-block: 6px !important;
55
- }
56
-
57
- [data-diffs-header] [data-header-content] {
58
- align-items: center !important;
59
- line-height: 1 !important;
60
- }
61
-
62
- [data-diffs-header] [data-metadata] {
63
- align-items: center !important;
64
- line-height: 1 !important;
65
- font-variant-numeric: tabular-nums;
66
- }
67
-
68
- [data-diffs-header] [data-additions-count],
69
- [data-diffs-header] [data-deletions-count] {
70
- font-family: var(--font-mono) !important;
71
- font-size: 11px !important;
72
- font-variant-numeric: tabular-nums;
73
- line-height: 1 !important;
74
- }
75
-
76
- [data-diffs-header] [data-change-icon],
77
- [data-diffs-header] [data-rename-icon] {
78
- display: block;
79
- flex-shrink: 0;
80
- }
81
-
82
- [data-title] {
83
- cursor: pointer;
84
- transition:
85
- color 120ms ease,
86
- text-decoration-color 120ms ease;
87
- text-decoration: underline;
88
- text-decoration-color: transparent;
89
- text-underline-offset: 2px;
90
- font-family: var(--font-sans) !important;
91
- }
92
-
93
- [data-title]:hover {
94
- color: color-mix(in srgb, var(--foreground) 84%, var(--primary)) !important;
95
- text-decoration-color: currentColor;
96
- }
97
- `;function Sn({mode:e=`inline`,composerDraftTarget:t,initialGitScope:n}){let{resolvedTheme:r}=N(),i=ve(),[a]=(0,Q.useState)(n),[s,c]=(0,Q.useState)(`stacked`),[d,p]=(0,Q.useState)(i.wordWrap),[g,x]=(0,Q.useState)(i.diffIgnoreWhitespace),[C,w]=(0,Q.useState)(``),[E,D]=(0,Q.useState)(()=>({scopeKey:null,fileKeys:bn})),k=(0,Q.useRef)(null),A=T({strict:!1,select:e=>b(e)}),j=A?.threadId??null,P=Ze(A),ue=P?.projectId??null,de=ze(P&&ue?{environmentId:P.environmentId,projectId:ue}:null),F=P?.worktreePath??de?.workspaceRoot,me=ce(u.configValueAtom(P?.environmentId??null)),he=Pe(P?.environmentId??null,me?.availableEditors??[]),_e=f(P!=null&&F!=null?Qe.status({environmentId:P.environmentId,input:{cwd:F}}):null),I=Oe(e=>Te(e.byThreadKey,A,a===`unstaged`)),be=_e.data?.isRepo??!0,{turnDiffSummaries:we,inferredCheckpointTurnCountByTurnId:L}=Se(P),R=(0,Q.useMemo)(()=>[...we].toSorted((e,t)=>{let n=e.checkpointTurnCount??L[e.turnId]??0,r=t.checkpointTurnCount??L[t.turnId]??0;return n===r?t.completedAt.localeCompare(e.completedAt):r-n}),[L,we]);(0,Q.useEffect)(()=>{!A||I.kind!==`turn`||Oe.getState().reconcileTurnSelection(A,R.map(e=>e.turnId))},[I,R,A]);let z=I.kind===`turn`?I.turnId:null,B=I.kind===`unstaged`?`unstaged`:`branch`,V=I.kind===`branch`?I.baseRef:null,Be=I.kind===`turn`?I.filePath:null,Ve=I.kind===`turn`?I.revealRequestId:0,H=z===null?void 0:R.find(e=>e.turnId===z)??R[0],U=H&&(H.checkpointTurnCount??L[H.turnId]),Ue=R[0],We=z===null?B===`unstaged`?`Working tree`:`Branch changes`:H?.turnId===Ue?.turnId?`Latest turn`:`Turn ${U??`?`}`,Ge=H?`turn:${H.turnId}`:B,W=A?`${A.environmentId}:${A.threadId}:${Ge}`:null,Ke=E.scopeKey===W?E.fileKeys:bn,Je=H?`Turn ${U??`?`}`:B===`unstaged`?`Working tree`:`Branch changes`,G=(0,Q.useMemo)(()=>typeof U==`number`?{fromTurnCount:Math.max(0,U-1),toTurnCount:U}:null,[U]),Ye=Kt({environmentId:P?.environmentId??null,threadId:j,fromTurnCount:G?.fromTurnCount??null,toTurnCount:G?.toTurnCount??null,ignoreWhitespace:g,cacheScope:H?`turn:${H.turnId}`:null},{enabled:be&&H!==void 0}),Xe=f(z===null&&P&&F?hn.diffPreview({environmentId:P.environmentId,input:{cwd:F,...V?{baseRef:V}:{},ignoreWhitespace:g}}):null),K=z===null&&Xe.error?.includes(`configured workspace root`)===!0&&me?.cwd!==void 0&&me.cwd!==F,$e=f(K&&P&&me?hn.diffPreview({environmentId:P.environmentId,input:{cwd:me.cwd,...V?{baseRef:V}:{},ignoreWhitespace:g}}):null),q=K?$e:Xe,J=q.data?.sources.find(e=>e.kind===(B===`unstaged`?`working-tree`:`branch-range`)),it=f(z===null&&B===`branch`&&P&&q.data?.cwd?Qe.listRefs({environmentId:P.environmentId,input:{cwd:q.data.cwd,includeMatchingRemoteRefs:!0,refKind:`local`,...C.trim().length>0?{query:C.trim()}:{},limit:100}}):null),at=f(z===null&&B===`branch`&&P&&q.data?.cwd?Qe.listRefs({environmentId:P.environmentId,input:{cwd:q.data.cwd,includeMatchingRemoteRefs:!0,refKind:`remote`,...C.trim().length>0?{query:C.trim()}:{},limit:100}}):null),ot=_n(it.data?.refs.filter(e=>e.name!==J?.headRef)??[],at.data?.refs??[]),st=vn(ot,C),ct=e=>V&&V===e.remote?.name?V:e.local?.name??e.remote?.name??e.id,lt=[yn,...ot.map(ct)],ut=[...C.trim().length===0?[yn]:[],...st.map(ct)],Y=J?.diff,dt=H?Ye.data?.diff:Y,ft=!H&&J?.truncated===!0,pt=H?Ye.isPending:q.isPending,mt=H?Ye.error:q.error,ht=typeof dt==`string`&&dt.trim().length===0,X=(0,Q.useMemo)(()=>Re(dt,`diff-panel:${r}`,{compactPartialHunkOffsets:z===null}),[r,dt,z]),gt=(0,Q.useMemo)(()=>!X||X.kind!==`files`?[]:X.files.toSorted((e,t)=>fe(e).localeCompare(fe(t),void 0,{numeric:!0,sensitivity:`base`})),[X]),Z=(0,Q.useMemo)(()=>gt.map(e=>{let t=qe(e);return{fileDiff:e,filePath:fe(e),fileKey:t,collapsed:Ke.has(t)}}),[Ke,gt]),_t=(0,Q.useMemo)(()=>Z.map(e=>e.fileKey),[Z]),vt=qt(_t,Ke),yt=(0,Q.useMemo)(()=>Ie(gt),[gt]);(0,Q.useEffect)(()=>{if(!Be)return;let e=Z.find(e=>e.filePath===Be);e&&k.current?.scrollTo({type:`item`,id:e.fileKey,align:`start`})},[Z,Be,Ve]);let bt=(0,Q.useCallback)(e=>{Wt({threadRef:A,filePath:e,activeCwd:F,openInEditor:e=>{(async()=>{let t=await he(e);t._tag===`Failure`&&!v(t)&&console.warn(`Failed to open diff file in editor.`,{operation:`open-diff-file`,...A?{environmentId:A.environmentId,threadId:A.threadId}:{},...te(re(t))})})()}})},[F,he,A]),xt=(0,Q.useCallback)(e=>{D(t=>{let n=new Set(t.scopeKey===W?t.fileKeys:[]);return n.has(e)?n.delete(e):n.add(e),{scopeKey:W,fileKeys:n}})},[W]),St=(0,Q.useCallback)(()=>{D(e=>{let t=e.scopeKey===W?e.fileKeys:bn;return{scopeKey:W,fileKeys:Jt(_t,t)}})},[W,_t]),Ct=e=>{A&&Oe.getState().selectTurn(A,e)},wt=e=>{A&&Oe.getState().selectGitScope(A,e)},Tt=e=>{A&&Oe.getState().selectBranchBaseRef(A,e)};return(0,$.jsx)(Xt,{mode:e,header:(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-3 [-webkit-app-region:no-drag]`,children:[(0,$.jsxs)(m,{children:[(0,$.jsxs)(ie,{className:`inline-flex h-6 max-w-full items-center gap-1 rounded-md bg-muted/70 px-2 text-xs font-medium text-foreground outline-none transition-colors hover:bg-muted focus-visible:ring-2 focus-visible:ring-ring`,"aria-label":`Diff scope: ${We}`,children:[(0,$.jsx)(`span`,{className:`truncate`,children:We}),(0,$.jsx)(ae,{className:`size-3.5 shrink-0 text-muted-foreground`})]}),(0,$.jsxs)(ee,{align:`start`,className:`w-60`,children:[(0,$.jsx)(M,{className:z===null&&B===`unstaged`?`bg-foreground/[0.08]`:void 0,onClick:()=>wt(`unstaged`),children:(0,$.jsx)(`span`,{children:`Working tree`})}),(0,$.jsx)(M,{className:z===null&&B===`branch`?`bg-foreground/[0.08]`:void 0,onClick:()=>wt(`branch`),children:(0,$.jsx)(`span`,{children:`Branch changes`})}),(0,$.jsx)(M,{className:z!==null&&H?.turnId===Ue?.turnId?`bg-foreground/[0.08]`:void 0,onClick:()=>{Ue&&Ct(Ue.turnId)},children:(0,$.jsx)(`span`,{children:`Latest turn`})}),(0,$.jsxs)(ne,{children:[(0,$.jsx)(O,{children:`Turn`}),(0,$.jsx)(S,{className:`w-64`,children:R.map(e=>{let t=e.checkpointTurnCount??L[e.turnId]??`?`;return(0,$.jsxs)(M,{className:e.turnId===H?.turnId?`bg-foreground/[0.08]`:void 0,onClick:()=>Ct(e.turnId),children:[(0,$.jsxs)(`span`,{children:[`Turn `,t]}),(0,$.jsx)(`span`,{className:`ml-auto text-xs tabular-nums text-muted-foreground`,children:pe(e.completedAt,i.timestampFormat)})]},e.turnId)})})]})]})]}),z===null&&B===`branch`&&J?.baseRef&&(0,$.jsxs)(`div`,{className:`flex min-w-0 max-w-full items-center gap-2 overflow-hidden text-xs text-muted-foreground`,title:`${J.headRef??`HEAD`} → ${J.baseRef}`,"aria-label":`Comparing ${J.headRef??`HEAD`} against ${J.baseRef}`,children:[(0,$.jsx)(`span`,{className:`min-w-0 max-w-48 truncate`,children:J.headRef??`HEAD`}),(0,$.jsx)(le,{className:`size-3.5 shrink-0 opacity-70`}),(0,$.jsxs)(Ee,{items:lt,filteredItems:ut,value:V??yn,onOpenChange:e=>{e||w(``)},onValueChange:e=>{e&&Tt(e===yn?null:e)},children:[(0,$.jsxs)(je,{className:`inline-flex min-w-0 max-w-48 items-center gap-1 overflow-hidden rounded-md px-1.5 py-1 outline-none transition-colors hover:bg-muted hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring`,"aria-label":`Change comparison target. Currently ${J.baseRef}`,children:[(0,$.jsx)(`span`,{className:`min-w-0 truncate`,children:J.baseRef}),(0,$.jsx)(ae,{className:`size-3.5 shrink-0 opacity-70`})]}),(0,$.jsxs)(xe,{align:`start`,className:`w-72 min-w-0 max-w-[calc(100vw-1rem)] overflow-hidden [&>[data-slot=combobox-popup]]:min-w-0 [&>[data-slot=combobox-popup]]:overflow-hidden`,children:[(0,$.jsx)(`div`,{className:`min-w-0 shrink-0 px-3 pt-2.5`,children:(0,$.jsxs)(`div`,{className:`relative -translate-y-px border-b border-border/70 pb-1.5 transition-colors focus-within:border-ring`,children:[(0,$.jsx)(ye,{"aria-hidden":`true`,className:`pointer-events-none absolute top-1.5 left-0 size-4 shrink-0 text-muted-foreground/55`}),(0,$.jsx)(et,{className:`[&_input]:h-6.5 [&_input]:ps-5 [&_input]:font-sans [&_input]:leading-6.5`,inputClassName:`rounded-none bg-transparent text-sm`,placeholder:`Search refs...`,showTrigger:!1,size:`sm`,unstyled:!0,value:C,onChange:e=>w(e.target.value)})]})}),(0,$.jsxs)(`div`,{className:`grid shrink-0 grid-cols-[1rem_minmax(0,1fr)] items-center gap-2 border-b border-border/70 ps-3 pe-6.5 pt-2 pb-1.5 font-medium text-[10px] text-muted-foreground uppercase tracking-wide`,children:[(0,$.jsx)(`span`,{"aria-hidden":`true`}),(0,$.jsxs)(`div`,{className:`grid min-w-0 grid-cols-[minmax(0,1fr)_2rem] items-center`,children:[(0,$.jsx)(`span`,{children:`Branch`}),(0,$.jsx)(`span`,{className:`text-right`,children:`Remote`})]})]}),(0,$.jsx)(ke,{children:`No matching refs.`}),(0,$.jsxs)(Ne,{className:`max-h-64 min-w-0 overflow-x-hidden`,children:[(0,$.jsx)(ge,{className:`h-8 w-full min-w-0 grid-cols-[1rem_minmax(0,1fr)] py-0`,contentClassName:`w-full min-w-0 overflow-hidden`,value:yn,children:(0,$.jsx)(`span`,{className:`block min-w-0 truncate`,children:`Automatic`})}),ot.map(e=>{let t=ct(e),n=e.local!==null&&e.remote!==null,r=e.remote?.name===t;return(0,$.jsx)(ge,{className:`h-8 w-full min-w-0 grid-cols-[1rem_minmax(0,1fr)] py-0`,contentClassName:`w-full min-w-0 overflow-hidden`,value:t,children:(0,$.jsxs)(`div`,{className:`grid w-full min-w-0 grid-cols-[minmax(0,1fr)_2rem] items-center overflow-hidden`,children:[(0,$.jsx)(`span`,{className:`block min-w-0 truncate pe-2`,children:e.label}),n?(0,$.jsx)(`div`,{className:`flex justify-end`,onClick:e=>e.stopPropagation(),onPointerDown:e=>e.stopPropagation(),children:(0,$.jsx)(Ce,{"aria-label":`Use remote version of ${e.label}`,checked:r,className:`[--thumb-size:--spacing(3)]`,onCheckedChange:t=>{let n=t?e.remote?.name:e.local?.name;n&&Tt(n)}})}):e.remote?(0,$.jsx)(`span`,{className:`flex justify-end text-muted-foreground`,title:`Remote only`,children:(0,$.jsx)(se,{"aria-hidden":`true`,className:`size-3`})}):null]})},e.id)})]})]})]})]})]}),(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1 [-webkit-app-region:no-drag]`,children:[Z.length>0&&(0,$.jsx)(He,{additions:yt.additions,deletions:yt.deletions,className:`mr-1 text-[11px]`,layout:`inline`}),Z.length>0&&(0,$.jsxs)(o,{children:[(0,$.jsx)(l,{render:(0,$.jsx)(h,{type:`button`,size:`icon-xs`,variant:`outline`,"aria-label":vt?`Expand all files`:`Collapse all files`,onClick:St}),children:vt?(0,$.jsx)(Me,{className:`size-3`}):(0,$.jsx)(Fe,{className:`size-3`})}),(0,$.jsx)(oe,{side:`top`,children:vt?`Expand all files`:`Collapse all files`})]}),(0,$.jsxs)(fn,{className:`shrink-0`,variant:`outline`,size:`xs`,value:[s],onValueChange:e=>{let t=e[0];(t===`stacked`||t===`split`)&&c(t)},children:[(0,$.jsx)(pn,{"aria-label":`Stacked diff view`,value:`stacked`,children:(0,$.jsx)(rt,{className:`size-3`})}),(0,$.jsx)(pn,{"aria-label":`Split diff view`,value:`split`,children:(0,$.jsx)(tt,{className:`size-3`})})]}),(0,$.jsxs)(o,{children:[(0,$.jsx)(l,{render:(0,$.jsx)(pn,{"aria-label":d?`Disable diff line wrapping`:`Enable diff line wrapping`,variant:`outline`,size:`xs`,pressed:d,onPressedChange:e=>{p(!!e)}}),children:(0,$.jsx)(Ae,{className:`size-3`})}),(0,$.jsx)(oe,{side:`top`,children:d?`Disable line wrapping`:`Enable line wrapping`})]}),(0,$.jsxs)(o,{children:[(0,$.jsx)(l,{render:(0,$.jsx)(pn,{"aria-label":g?`Show whitespace changes`:`Hide whitespace changes`,variant:`outline`,size:`xs`,pressed:g,onPressedChange:e=>{x(!!e)}}),children:(0,$.jsx)(nt,{className:`size-3`})}),(0,$.jsx)(oe,{side:`top`,children:g?`Show whitespace changes`:`Hide whitespace changes`})]})]})]}),children:P?be?z!==null&&R.length===0?(0,$.jsx)(`div`,{className:`flex flex-1 items-center justify-center px-5 text-center text-xs text-muted-foreground/70`,children:`No completed turns yet.`}):(0,$.jsx)($.Fragment,{children:(0,$.jsxs)(`div`,{className:`diff-panel-viewport flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden`,children:[ft&&(0,$.jsx)(`p`,{className:`shrink-0 border-b border-border/70 bg-muted/40 px-3 py-1.5 text-[11px] text-muted-foreground`,children:`This diff was truncated because it exceeded the preview limit. The changes shown are incomplete.`}),mt&&!X&&(0,$.jsx)(`div`,{className:`px-3`,children:(0,$.jsx)(`p`,{className:`mb-2 text-[11px] text-red-500/80`,children:mt})}),X?X.kind===`files`?(0,$.jsx)(`div`,{className:`min-h-0 flex-1`,onClickCapture:e=>{let t=(e.nativeEvent.composedPath?.()??[]).find(e=>e instanceof HTMLElement&&e.hasAttribute(`data-title`))?.textContent?.trim();t&&bt(t)},children:(0,$.jsx)(tn,{viewerRef:k,className:`diff-render-surface h-full min-h-0 overflow-auto`,files:Z,sectionId:Ge,sectionTitle:Je,composerDraftTarget:t,renderHeaderPrefix:(e,t,n)=>{let r=fe(e);return(0,$.jsxs)(o,{children:[(0,$.jsx)(l,{render:(0,$.jsx)(`button`,{type:`button`,className:_(`inline-flex size-5 shrink-0 cursor-pointer items-center justify-center rounded-sm border-0 bg-transparent p-0 transition-colors hover:bg-foreground/10 focus-visible:outline-hidden`,Le(e)),"aria-label":n?`Expand ${r}`:`Collapse ${r}`,"aria-expanded":!n,onClick:e=>{e.stopPropagation(),xt(t)}}),children:n?(0,$.jsx)(y,{className:`size-4`}):(0,$.jsx)(ae,{className:`size-4`})}),(0,$.jsx)(oe,{side:`top`,children:n?`Expand diff`:`Collapse diff`})]})},options:{diffStyle:s===`split`?`split`:`unified`,lineDiffType:`none`,overflow:d?`wrap`:`scroll`,theme:De(r),themeType:r,unsafeCSS:xn,stickyHeaders:!0,itemMetrics:{diffHeaderHeight:33},layout:{paddingTop:0,paddingBottom:8,gap:8}}},W??Ge)}):(0,$.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto p-2`,children:(0,$.jsxs)(`div`,{className:`space-y-2`,children:[(0,$.jsx)(`p`,{className:`text-[11px] text-muted-foreground/75`,children:X.reason}),(0,$.jsx)(`pre`,{className:_(`max-h-[72vh] rounded-md border border-border/70 bg-background/70 p-3 font-mono text-[11px] leading-relaxed text-muted-foreground/90`,d?`overflow-auto whitespace-pre-wrap wrap-break-word`:`overflow-auto`),children:X.text})]})}):pt?(0,$.jsx)(Zt,{label:H?`Loading checkpoint diff...`:B===`unstaged`?`Loading working tree diff...`:`Loading branch diff...`}):(0,$.jsx)(`div`,{className:`flex h-full items-center justify-center px-3 py-2 text-xs text-muted-foreground/70`,children:(0,$.jsx)(`p`,{children:ht?`No net changes in this selection.`:`No patch available for this selection.`})})]})}):(0,$.jsx)(`div`,{className:`flex flex-1 items-center justify-center px-5 text-center text-xs text-muted-foreground/70`,children:`Turn diffs are unavailable because this project is not a git repository.`}):(0,$.jsx)(`div`,{className:`flex flex-1 items-center justify-center px-5 text-center text-xs text-muted-foreground/70`,children:`Select a thread to inspect turn diffs.`})})}export{V as DiffWorkerPoolProvider,Sn as default};
98
- //# sourceMappingURL=DiffPanel-BwQlPbUS.js.map
@@ -1,2 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{n as t,r as n,t as r}from"./compiler-runtime-CLAvuQ-D.js";import{A as i,C as a,Cc as o,Dc as s,E as c,I as l,Iu as u,Ns as d,O as f,Qr as p,Ru as m,Ur as h,Wt as g,ai as _,bc as v,bs as y,ci as b,cl as x,fc as S,g as C,hc as w,ii as T,in as E,k as D,li as O,ni as ee,pc as k,ri as A,si as j,tc as te,ti as M,u as ne,uc as N,ui as re,w as ie,zs as ae}from"./terminal-links-D-5oUNjJ.js";import{t as P}from"./arrow-right-CZ5hDV1Y.js";import{A as F,An as I,Ar as oe,Dr as se,F as L,G as R,Gr as ce,M as z,Mn as B,Mr as le,N as V,Nn as H,Nr as ue,O as U,Or as de,P as W,Pn as G,Qn as K,Rr as q,Vr as fe,a as pe,ar as J,c as me,cr as he,dr as ge,er as _e,fr as ve,g as ye,hr as Y,i as be,ir as xe,j as Se,jn as Ce,jr as we,k as Te,lr as Ee,mr as X,n as De,nr as Oe,o as ke,or as Ae,pr as je,r as Me,rr as Ne,s as Pe,sr as Fe,t as Ie,tr as Le,ur as Re}from"./index-C93D7bsA.js";var ze=y(`camera`,[[`path`,{d:`M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z`,key:`18u6gg`}],[`circle`,{cx:`12`,cy:`13`,r:`3`,key:`1vg3eu`}]]),Be=y(`ellipsis-vertical`,[[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`circle`,{cx:`12`,cy:`5`,r:`1`,key:`gxeob9`}],[`circle`,{cx:`12`,cy:`19`,r:`1`,key:`lyex9k`}]]),Ve=y(`mouse-pointer-2`,[[`path`,{d:`M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z`,key:`edeuup`}]]),He=y(`radio-tower`,[[`path`,{d:`M4.9 16.1C1 12.2 1 5.8 4.9 1.9`,key:`s0qx1y`}],[`path`,{d:`M7.8 4.7a6.14 6.14 0 0 0-.8 7.5`,key:`1idnkw`}],[`circle`,{cx:`12`,cy:`9`,r:`2`,key:`1092wv`}],[`path`,{d:`M16.2 4.8c2 2 2.26 5.11.8 7.47`,key:`ojru2q`}],[`path`,{d:`M19.1 1.9a9.96 9.96 0 0 1 0 14.1`,key:`rhi7fg`}],[`path`,{d:`M9.5 18h5`,key:`mfy3pd`}],[`path`,{d:`m8 22 4-11 4 11`,key:`25yftu`}]]),Z=e(n(),1),Q=r(),$=t();function Ue(e){let t=(0,Q.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=g(`relative inline-flex w-full min-w-0 items-center rounded-lg border border-input bg-background not-dark:bg-clip-padding text-base text-foreground shadow-xs/5 ring-ring/24 transition-shadow before:pointer-events-none before:absolute before:inset-0 before:rounded-[calc(var(--radius-lg)-1px)] not-has-[input:disabled,textarea:disabled]:not-has-[input:focus-visible,textarea:focus-visible]:not-has-[input[aria-invalid],textarea[aria-invalid]]:before:shadow-[0_1px_--theme(--color-black/4%)] has-[input:focus-visible,textarea:focus-visible]:has-[input[aria-invalid],textarea[aria-invalid]]:border-destructive/64 has-[input:focus-visible,textarea:focus-visible]:has-[input[aria-invalid],textarea[aria-invalid]]:ring-destructive/16 has-[textarea]:h-auto has-data-[align=block-end]:h-auto has-data-[align=block-start]:h-auto has-data-[align=block-end]:flex-col has-data-[align=block-start]:flex-col has-[input:focus-visible,textarea:focus-visible]:border-ring has-[input[aria-invalid],textarea[aria-invalid]]:border-destructive/36 has-autofill:bg-foreground/4 has-[input:disabled,textarea:disabled]:opacity-64 has-[input:disabled,textarea:disabled,input:focus-visible,textarea:focus-visible,input[aria-invalid],textarea[aria-invalid]]:shadow-none has-[input:focus-visible,textarea:focus-visible]:ring-[3px] sm:text-sm dark:bg-input/32 dark:has-autofill:bg-foreground/8 dark:has-[input[aria-invalid],textarea[aria-invalid]]:ring-destructive/24 dark:not-has-[input:disabled,textarea:disabled]:not-has-[input:focus-visible,textarea:focus-visible]:not-has-[input[aria-invalid],textarea[aria-invalid]]:before:shadow-[0_-1px_--theme(--color-white/6%)] has-data-[align=inline-start]:**:[[data-size=sm]_input]:ps-1.5 has-data-[align=inline-end]:**:[[data-size=sm]_input]:pe-1.5 *:[[data-slot=input-control],[data-slot=textarea-control]]:contents *:[[data-slot=input-control],[data-slot=textarea-control]]:before:hidden has-[[data-align=block-start],[data-align=block-end]]:**:[input]:h-auto has-data-[align=inline-start]:**:[input]:ps-2 has-data-[align=inline-end]:**:[input]:pe-2 has-data-[align=block-end]:**:[input]:pt-1.5 has-data-[align=block-start]:**:[input]:pb-1.5 **:[textarea]:min-h-20.5 **:[textarea]:resize-none **:[textarea]:py-[calc(--spacing(3)-1px)] **:[textarea]:max-sm:min-h-23.5 **:[textarea_button]:rounded-[calc(var(--radius-md)-1px)]`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,$.jsx)(`div`,{className:i,"data-slot":`input-group`,role:`group`,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}var We=d(`[&_svg]:-mx-0.5 flex h-auto cursor-text select-none items-center justify-center gap-2 leading-none [&>kbd]:rounded-[calc(var(--radius)-5px)] in-[[data-slot=input-group]:has([data-slot=input-control],[data-slot=textarea-control])]:[&_svg:not([class*='size-'])]:size-4.5 sm:in-[[data-slot=input-group]:has([data-slot=input-control],[data-slot=textarea-control])]:[&_svg:not([class*='size-'])]:size-4 not-has-[button]:**:[svg:not([class*='opacity-'])]:opacity-80`,{defaultVariants:{align:`inline-start`},variants:{align:{"block-end":`order-last w-full justify-start px-[calc(--spacing(3)-1px)] pb-[calc(--spacing(3)-1px)] [.border-t]:pt-[calc(--spacing(3)-1px)] [[data-size=sm]+&]:px-[calc(--spacing(2.5)-1px)]`,"block-start":`order-first w-full justify-start px-[calc(--spacing(3)-1px)] pt-[calc(--spacing(3)-1px)] [.border-b]:pb-[calc(--spacing(3)-1px)] [[data-size=sm]+&]:px-[calc(--spacing(2.5)-1px)]`,"inline-end":`has-[>:last-child[data-slot=badge]]:-me-1.5 has-[>button]:-me-2 order-last pe-[calc(--spacing(3)-1px)] has-[>kbd:last-child]:me-[-0.35rem] [[data-size=sm]+&]:pe-[calc(--spacing(2.5)-1px)]`,"inline-start":`has-[>:last-child[data-slot=badge]]:-ms-1.5 has-[>button]:-ms-2 order-first ps-[calc(--spacing(3)-1px)] has-[>kbd:last-child]:ms-[-0.35rem] [[data-size=sm]+&]:ps-[calc(--spacing(2.5)-1px)]`}}});function Ge(e){let t=(0,Q.c)(11),n,r,i;t[0]===e?(n=t[1],r=t[2],i=t[3]):({className:n,align:i,...r}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i);let a=i===void 0?`inline-start`:i,o;t[4]!==a||t[5]!==n?(o=g(We({align:a}),n),t[4]=a,t[5]=n,t[6]=o):o=t[6];let s;return t[7]!==a||t[8]!==r||t[9]!==o?(s=(0,$.jsx)(`div`,{className:o,"data-align":a,"data-slot":`input-group-addon`,onMouseDown:Ke,...r}),t[7]=a,t[8]=r,t[9]=o,t[10]=s):s=t[10],s}function Ke(e){if(e.target.closest(`button, a, input, select, textarea, [role='button'], [role='combobox'], [role='listbox'], [data-slot='select-trigger']`))return;e.preventDefault();let t=e.currentTarget.parentElement,n=t?.querySelector(`input, textarea`);n&&!t?.querySelector(`input:focus, textarea:focus`)&&n.focus()}function qe(e){let t=(0,Q.c)(6),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;return t[3]!==n||t[4]!==r?(i=(0,$.jsx)(K,{className:n,unstyled:!0,...r}),t[3]=n,t[4]=r,t[5]=i):i=t[5],i}var Je=()=>{};function Ye(e){let t=(0,Q.c)(98),{url:n,displayUrl:r,loading:i,loadProgress:o,canGoBack:s,canGoForward:l,refreshDisabled:u,inputDisabled:d,focusUrlNonce:f,onBack:p,onForward:m,onRefresh:_,onSubmit:v,onOpenInBrowser:y,onCapture:b,captureDisabled:x,recording:S,onPictureInPicture:C,pictureInPicture:w,pictureInPictureDisabled:T,onPickElement:E,pickActive:D,pickDisabled:O,pickDisabledReason:ee,trailingActions:k}=e,A=(0,Z.useRef)(null),[j,te]=(0,Z.useState)(n),[M,ne]=(0,Z.useState)(!1),N,re;t[0]===f?(N=t[1],re=t[2]):(N=()=>{if(f==null)return;let e=A.current;e&&e.focus()},re=[f],t[0]=f,t[1]=N,t[2]=re),(0,Z.useEffect)(N,re);let ae;t[3]!==j||t[4]!==v?(ae=e=>{e?.preventDefault();let t=j.trim();t.length!==0&&(v(t),A.current?.blur())},t[3]=j,t[4]=v,t[5]=ae):ae=t[5];let F=ae,I=s?p:Je,oe=!s,L;t[6]!==I||t[7]!==oe?(L=(0,$.jsx)(h,{variant:`ghost`,size:`icon-xs`,onClick:I,disabled:oe,"aria-label":`Back`,type:`button`}),t[6]=I,t[7]=oe,t[8]=L):L=t[8];let R;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(R=(0,$.jsx)(ce,{}),t[9]=R):R=t[9];let z;t[10]===L?z=t[11]:(z=(0,$.jsx)(c,{render:L,children:R}),t[10]=L,t[11]=z);let B;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(B=(0,$.jsx)(ie,{children:`Back`}),t[12]=B):B=t[12];let V;t[13]===z?V=t[14]:(V=(0,$.jsxs)(a,{children:[z,B]}),t[13]=z,t[14]=V);let H=l?m:Je,ue=!l,U;t[15]!==H||t[16]!==ue?(U=(0,$.jsx)(h,{variant:`ghost`,size:`icon-xs`,onClick:H,disabled:ue,"aria-label":`Forward`,type:`button`}),t[15]=H,t[16]=ue,t[17]=U):U=t[17];let de;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(de=(0,$.jsx)(P,{}),t[18]=de):de=t[18];let W;t[19]===U?W=t[20]:(W=(0,$.jsx)(c,{render:U,children:de}),t[19]=U,t[20]=W);let G;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(G=(0,$.jsx)(ie,{children:`Forward`}),t[21]=G):G=t[21];let K;t[22]===W?K=t[23]:(K=(0,$.jsxs)(a,{children:[W,G]}),t[22]=W,t[23]=K);let q=u?Je:_,pe=i?`Stop`:`Refresh`,J;t[24]!==u||t[25]!==q||t[26]!==pe?(J=(0,$.jsx)(h,{variant:`ghost`,size:`icon-xs`,onClick:q,disabled:u,"aria-label":pe,type:`button`}),t[24]=u,t[25]=q,t[26]=pe,t[27]=J):J=t[27];let me=i&&`animate-spin`,he;t[28]===me?he=t[29]:(he=g(me),t[28]=me,t[29]=he);let ge;t[30]===he?ge=t[31]:(ge=(0,$.jsx)(se,{className:he}),t[30]=he,t[31]=ge);let _e;t[32]!==J||t[33]!==ge?(_e=(0,$.jsx)(c,{render:J,children:ge}),t[32]=J,t[33]=ge,t[34]=_e):_e=t[34];let ve=i?`Loading…`:`Refresh`,ye;t[35]===ve?ye=t[36]:(ye=(0,$.jsx)(ie,{children:ve}),t[35]=ve,t[36]=ye);let Y;t[37]!==_e||t[38]!==ye?(Y=(0,$.jsxs)(a,{children:[_e,ye]}),t[37]=_e,t[38]=ye,t[39]=Y):Y=t[39];let be;t[40]!==V||t[41]!==K||t[42]!==Y?(be=(0,$.jsxs)(`div`,{className:`flex items-center gap-0.5`,role:`group`,"aria-label":`Navigation`,children:[V,K,Y]}),t[40]=V,t[41]=K,t[42]=Y,t[43]=be):be=t[43];let xe=M?j:r??n,Se=y&&!M&&`group-hover/address:pe-7 transition-[padding]`,Ce;t[44]===Se?Ce=t[45]:(Ce=g(Se),t[44]=Se,t[45]=Ce);let Te;t[46]===Symbol.for(`react.memo_cache_sentinel`)?(Te=e=>te(e.target.value),t[46]=Te):Te=t[46];let Ee;t[47]===n?Ee=t[48]:(Ee=()=>{te(n),ne(!0),queueMicrotask(()=>A.current?.select())},t[47]=n,t[48]=Ee);let X;t[49]===Symbol.for(`react.memo_cache_sentinel`)?(X=()=>{ne(!1)},t[49]=X):X=t[49];let De;t[50]!==F||t[51]!==n?(De=e=>{e.key===`Enter`&&F(e),e.key===`Escape`&&(e.preventDefault(),te(n),A.current?.blur())},t[50]=F,t[51]=n,t[52]=De):De=t[52];let Oe;t[53]!==d||t[54]!==xe||t[55]!==Ce||t[56]!==Ee||t[57]!==De?(Oe=(0,$.jsx)(c,{render:(0,$.jsx)(qe,{ref:A,value:xe,className:Ce,onChange:Te,onFocus:Ee,onBlur:X,onKeyDown:De,placeholder:`Search or enter URL`,spellCheck:!1,disabled:d,"data-preview-url-input":!0,size:`sm`})}),t[53]=d,t[54]=xe,t[55]=Ce,t[56]=Ee,t[57]=De,t[58]=Oe):Oe=t[58];let ke;t[59]!==r||t[60]!==M||t[61]!==n?(ke=!M&&r?(0,$.jsx)(ie,{children:n}):null,t[59]=r,t[60]=M,t[61]=n,t[62]=ke):ke=t[62];let Ae;t[63]!==Oe||t[64]!==ke?(Ae=(0,$.jsxs)(a,{children:[Oe,ke]}),t[63]=Oe,t[64]=ke,t[65]=Ae):Ae=t[65];let je;t[66]!==M||t[67]!==y?(je=y&&!M?(0,$.jsx)(Ge,{align:`inline-end`,className:`pointer-events-none absolute inset-y-0 right-0 opacity-0 transition-opacity group-hover/address:pointer-events-auto group-hover/address:opacity-100`,children:(0,$.jsxs)(a,{children:[(0,$.jsx)(c,{render:(0,$.jsx)(h,{variant:`ghost`,size:`icon-xs`,onClick:y,"aria-label":`Open in system browser`,type:`button`}),children:(0,$.jsx)(fe,{})}),(0,$.jsx)(ie,{children:`Open in system browser`})]})}):null,t[66]=M,t[67]=y,t[68]=je):je=t[68];let Me;t[69]!==Ae||t[70]!==je?(Me=(0,$.jsxs)(Ue,{className:`group/address h-7 flex-1 rounded-md border-transparent bg-transparent shadow-none before:shadow-none hover:bg-muted/40 focus-within:bg-background`,children:[Ae,je]}),t[69]=Ae,t[70]=je,t[71]=Me):Me=t[71];let Ne;t[72]!==E||t[73]!==D||t[74]!==O||t[75]!==ee?(Ne=E?(0,$.jsxs)(a,{children:[(0,$.jsx)(c,{render:(0,$.jsx)(h,{variant:D?`secondary`:`ghost`,size:`icon-xs`,onClick:E,disabled:O,"aria-label":D?`Cancel annotation`:`Annotate preview`,"aria-pressed":D?`true`:`false`,type:`button`}),children:(0,$.jsx)(le,{className:g(D&&`text-primary`)})}),(0,$.jsx)(ie,{children:O&&ee?ee:D?`Cancel annotation (Esc)`:`Annotate elements, regions, and drawings`})]}):null,t[72]=E,t[73]=D,t[74]=O,t[75]=ee,t[76]=Ne):Ne=t[76];let Pe;t[77]!==x||t[78]!==b||t[79]!==S?(Pe=b?(0,$.jsxs)(a,{children:[(0,$.jsxs)(c,{render:(0,$.jsx)(h,{variant:S?`secondary`:`ghost`,size:`icon-xs`,onClick:e=>b(e.shiftKey),"aria-label":S?`Stop recording`:`Capture screenshot`,type:`button`,className:`relative`,disabled:x}),children:[(0,$.jsx)(ze,{className:g(S&&`text-destructive`)}),S?(0,$.jsx)(`span`,{className:`absolute right-0.5 top-0.5 size-1.5 animate-status-pulse rounded-full bg-destructive`}):null]}),(0,$.jsx)(ie,{children:S?`Stop recording`:`Screenshot · Shift-click to record`})]}):null,t[77]=x,t[78]=b,t[79]=S,t[80]=Pe):Pe=t[80];let Fe;t[81]!==C||t[82]!==w||t[83]!==T?(Fe=C?(0,$.jsxs)(a,{children:[(0,$.jsx)(c,{render:(0,$.jsx)(h,{variant:w?`secondary`:`ghost`,size:`icon-xs`,onClick:C,"aria-label":w?`Close floating preview`:`Float preview over chat`,"aria-pressed":w?`true`:`false`,type:`button`,disabled:T}),children:(0,$.jsx)(we,{className:g(w&&`text-primary`)})}),(0,$.jsx)(ie,{children:w?`Close floating preview`:`Float preview over chat`})]}):null,t[81]=C,t[82]=w,t[83]=T,t[84]=Fe):Fe=t[84];let Ie;t[85]!==F||t[86]!==be||t[87]!==Me||t[88]!==Ne||t[89]!==Pe||t[90]!==Fe||t[91]!==k?(Ie=(0,$.jsxs)(`form`,{onSubmit:F,className:`surface-subheader gap-1 px-2`,"data-surface-subheader":!0,children:[be,Me,Ne,Pe,Fe,k]}),t[85]=F,t[86]=be,t[87]=Me,t[88]=Ne,t[89]=Pe,t[90]=Fe,t[91]=k,t[92]=Ie):Ie=t[92];let Le;t[93]===o?Le=t[94]:(Le=o>0?(0,$.jsx)(`div`,{"aria-hidden":!0,className:`pointer-events-none absolute bottom-0 left-0 z-10 h-0.5 rounded-r-full bg-primary transition-all duration-150 ease-out`,style:{width:`${o}%`,boxShadow:`0 0 6px 1px var(--color-ring)`}}):null,t[93]=o,t[94]=Le);let Re;return t[95]!==Ie||t[96]!==Le?(Re=(0,$.jsxs)(`div`,{className:`relative`,children:[Ie,Le]}),t[95]=Ie,t[96]=Le,t[97]=Re):Re=t[97],Re}function Xe(e){try{let t=new URL(e.url),n=new URL(e.environmentHttpBaseUrl);if(t.origin===n.origin&&t.pathname.startsWith(`/api/assets/`)){let n=t.pathname.split(`/`).at(-1);if(!n)return null;let r=decodeURIComponent(n);return!r||r===`.`||r===`..`?null:`${e.environmentLabel} · ${r}`}return t.protocol===`http:`||t.protocol===`https:`?t.host:null}catch{return null}}function Ze(e){let t=(0,Q.c)(6),{className:n}=e,r;t[0]===n?r=t[1]:(r=g(`relative flex flex-col gap-0.5 overflow-hidden rounded-[5px] border border-border/60 bg-card p-1 shadow-xs/5`,n),t[0]=n,t[1]=r);let i;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,$.jsxs)(`div`,{className:`flex gap-[2px]`,children:[(0,$.jsx)(`span`,{className:`size-[3px] rounded-full bg-destructive/80`}),(0,$.jsx)(`span`,{className:`size-[3px] rounded-full bg-warning/80`}),(0,$.jsx)(`span`,{className:`size-[3px] rounded-full bg-success/80`})]}),t[2]=i):i=t[2];let a;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,$.jsxs)(`div`,{className:`mt-[1px] flex flex-1 flex-col gap-[2px]`,children:[(0,$.jsx)(`span`,{className:`h-[2px] w-full rounded-full bg-muted-foreground/30`}),(0,$.jsx)(`span`,{className:`h-[2px] w-3/5 rounded-full bg-muted-foreground/20`})]}),t[3]=a):a=t[3];let o;return t[4]===r?o=t[5]:(o=(0,$.jsxs)(`div`,{"aria-hidden":!0,className:r,children:[i,a]}),t[4]=r,t[5]=o),o}function Qe(e){let t=(0,Q.c)(17),{server:n,onOpen:r}=e,i;t[0]===n?i=t[1]:(i=$e(n),t[0]=n,t[1]=i);let a=i,o;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,$.jsx)(Ze,{className:`size-7 shrink-0`}),t[2]=o):o=t[2];let s;t[3]===a?s=t[4]:(s=(0,$.jsx)(`span`,{className:`truncate text-sm font-medium text-foreground`,children:a}),t[3]=a,t[4]=s);let c;t[5]!==n.host||t[6]!==n.port?(c=(0,$.jsxs)(`span`,{className:`truncate text-xs text-muted-foreground`,children:[n.host,`:`,n.port]}),t[5]=n.host,t[6]=n.port,t[7]=c):c=t[7];let l;t[8]!==s||t[9]!==c?(l=(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col`,children:[s,c]}),t[8]=s,t[9]=c,t[10]=l):l=t[10];let u;t[11]===n.listening?u=t[12]:(u=n.listening?(0,$.jsx)(et,{}):(0,$.jsx)(tt,{}),t[11]=n.listening,t[12]=u);let d;return t[13]!==r||t[14]!==l||t[15]!==u?(d=(0,$.jsxs)(`button`,{type:`button`,onClick:r,className:`group flex w-full items-center gap-3 px-3 py-3 text-left hover:bg-accent/40 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring`,children:[o,l,u]}),t[13]=r,t[14]=l,t[15]=u,t[16]=d):d=t[16],d}function $e(e){return e.processName?e.processName:e.listening?`Listening`:e.source===`configured`?`Configured`:`Recently seen`}function et(){let e=(0,Q.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsxs)(`span`,{"aria-label":`Listening`,className:`relative inline-flex size-2 shrink-0`,children:[(0,$.jsx)(`span`,{className:`absolute inset-0 animate-status-ping rounded-full bg-success opacity-60`}),(0,$.jsx)(`span`,{className:`relative inline-flex size-2 rounded-full bg-success`})]}),e[0]=t):t=e[0],t}function tt(){let e=(0,Q.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsx)(`span`,{"aria-label":`Not currently listening`,className:`size-2 shrink-0 rounded-full bg-muted-foreground/40`}),e[0]=t):t=e[0],t}function nt(e){let t=(0,Q.c)(7),n=ve(e.environmentId),r;if(t[0]!==e.configuredUrls||t[1]!==e.environmentId||t[2]!==e.recentlySeenUrls||t[3]!==n){let i;t[5]===e.environmentId?i=t[6]:(i=t=>({...t,url:Ee(e.environmentId,t.url)}),t[5]=e.environmentId,t[6]=i),r=rt({scanner:n.map(i),configuredUrls:e.configuredUrls??[],recentlySeenUrls:e.recentlySeenUrls??[]}),t[0]=e.configuredUrls,t[1]=e.environmentId,t[2]=e.recentlySeenUrls,t[3]=n,t[4]=r}else r=t[4];return r}function rt(e){let t=new Map;for(let n of e.configuredUrls){let e=at(n);if(!e)continue;let r=it(e.host,e.port);t.has(r)||t.set(r,{host:e.host,port:e.port,url:e.url,processName:null,pid:null,terminal:null,source:`configured`,listening:!1})}for(let n of e.scanner){let e=it(n.host,n.port),r=t.get(e);if(r){t.set(e,{...r,processName:n.processName??r.processName,pid:n.pid??r.pid,terminal:n.terminal??r.terminal,listening:!0});continue}t.set(e,{...n,source:`scanner`,listening:!0})}for(let n of e.recentlySeenUrls){let e=at(n);if(!e)continue;let r=it(e.host,e.port);t.has(r)||t.set(r,{host:e.host,port:e.port,url:e.url,processName:null,pid:null,terminal:null,source:`recent`,listening:!1})}return Array.from(t.values()).toSorted((e,t)=>{let n={configured:0,scanner:1,recent:2};return n[e.source]===n[t.source]?e.port-t.port:n[e.source]-n[t.source]})}function it(e,t){return`${e.toLowerCase()}:${t}`}function at(e){try{let t=new URL(e);if(t.protocol!==`http:`&&t.protocol!==`https:`||!Re(t.hostname))return null;let n=t.port?Number.parseInt(t.port,10):t.protocol===`http:`?80:443;return!Number.isFinite(n)||n<=0?null:{host:t.hostname,port:n,url:t.href}}catch{return null}}function ot(e){let t=(0,Q.c)(16),{environmentId:n,configuredUrls:r,recentlySeenUrls:i,onOpenUrl:a}=e,o;t[0]!==r||t[1]!==n||t[2]!==i?(o={environmentId:n,configuredUrls:r,recentlySeenUrls:i},t[0]=r,t[1]=n,t[2]=i,t[3]=o):o=t[3];let s=nt(o);if(s.length===0){let e;return t[4]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsxs)(I,{children:[(0,$.jsx)(B,{variant:`icon`,children:(0,$.jsx)(q,{className:`size-4.5 text-muted-foreground`})}),(0,$.jsx)(H,{children:`No preview yet`}),(0,$.jsx)(Ce,{children:`Type a URL above, or run a dev script. Listening localhost ports will show up here automatically.`})]}),t[4]=e):e=t[4],e}let c;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-muted-foreground`,children:[(0,$.jsx)(He,{className:`size-4 shrink-0`}),(0,$.jsx)(`h2`,{className:`font-medium`,children:`Local servers`})]}),t[5]=c):c=t[5];let l;if(t[6]!==a||t[7]!==s){let e;t[9]===a?e=t[10]:(e=e=>(0,$.jsx)(Qe,{server:e,onOpen:()=>a(e.url)},`${e.host}:${e.port}`),t[9]=a,t[10]=e),l=s.map(e),t[6]=a,t[7]=s,t[8]=l}else l=t[8];let u;t[11]===l?u=t[12]:(u=(0,$.jsx)(`div`,{className:`flex flex-col divide-y divide-border/60 overflow-hidden rounded-xl border border-border/70 bg-background`,children:l}),t[11]=l,t[12]=u);let d;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,$.jsx)(`p`,{className:`px-1 text-xs text-muted-foreground`,children:`Select a listening port to open it in this browser tab.`}),t[13]=d):d=t[13];let f;return t[14]===u?f=t[15]:(f=(0,$.jsx)(`div`,{className:`flex h-full min-h-0 overflow-y-auto px-5 py-8`,children:(0,$.jsxs)(`div`,{className:`m-auto flex w-full max-w-xl flex-col gap-3`,children:[c,u,d]})}),t[14]=u,t[15]=f),f}var st=[{value:`system`,label:`System`},{value:`light`,label:`Light`},{value:`dark`,label:`Dark`}];function ct(e){let t=(0,Q.c)(74),{tabId:n,hasWebContents:r,zoomFactor:i,colorScheme:o,deviceToolbarVisible:s,onToggleDeviceToolbar:l,nativePictureInPicture:u,onNativePictureInPicture:d}=e;if(!F)return null;let f=!n||!r,m;t[0]===n?m=t[1]:(m=e=>()=>{n&&e(n).catch(gt)},t[0]=n,t[1]=m);let g=m,v;t[2]===i?v=t[3]:(v=Math.round(i*100),t[2]=i,t[3]=v);let y=`${v}%`,x;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,$.jsxs)(a,{children:[(0,$.jsx)(c,{render:(0,$.jsx)(re,{render:(0,$.jsx)(h,{variant:`ghost`,size:`icon-xs`,type:`button`,"aria-label":`Preview menu`})}),children:(0,$.jsx)(Be,{})}),(0,$.jsx)(ie,{children:`More`})]}),t[4]=x):x=t[4];let S;t[5]===g?S=t[6]:(S=g(F.hardReload),t[5]=g,t[6]=S);let C;t[7]!==S||t[8]!==f?(C=(0,$.jsx)(M,{onClick:S,disabled:f,children:`Hard reload`}),t[7]=S,t[8]=f,t[9]=C):C=t[9];let w;t[10]===g?w=t[11]:(w=g(F.openDevTools),t[10]=g,t[11]=w);let T;t[12]!==w||t[13]!==f?(T=(0,$.jsx)(M,{onClick:w,disabled:f,children:`Open DevTools`}),t[12]=w,t[13]=f,t[14]=T):T=t[14];let E=u?`Close separate preview window`:`Open separate preview window`,D;t[15]!==d||t[16]!==E||t[17]!==f?(D=(0,$.jsx)(M,{onClick:d,disabled:f,children:E}),t[15]=d,t[16]=E,t[17]=f,t[18]=D):D=t[18];let k=s?`Hide device toolbar`:`Show device toolbar`,te;t[19]!==l||t[20]!==k||t[21]!==f?(te=(0,$.jsx)(M,{onClick:l,disabled:f,children:k}),t[19]=l,t[20]=k,t[21]=f,t[22]=te):te=t[22];let ne;t[23]===f?ne=t[24]:(ne=(0,$.jsx)(O,{disabled:f,children:`Appearance`}),t[23]=f,t[24]=ne);let N;t[25]===n?N=t[26]:(N=e=>{n&&F.setColorScheme(n,e).catch(ht)},t[25]=n,t[26]=N);let ae;t[27]===Symbol.for(`react.memo_cache_sentinel`)?(ae=st.map(mt),t[27]=ae):ae=t[27];let P;t[28]!==o||t[29]!==N?(P=(0,$.jsx)(b,{className:`min-w-32`,children:(0,$.jsx)(A,{value:o,onValueChange:N,children:ae})}),t[28]=o,t[29]=N,t[30]=P):P=t[30];let I;t[31]!==ne||t[32]!==P?(I=(0,$.jsxs)(j,{children:[ne,P]}),t[31]=ne,t[32]=P,t[33]=I):I=t[33];let se;t[34]===Symbol.for(`react.memo_cache_sentinel`)?(se=(0,$.jsx)(_,{}),t[34]=se):se=t[34];let L;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,$.jsx)(`span`,{children:`Zoom`}),t[35]=L):L=t[35];let R;t[36]===g?R=t[37]:(R=g(F.zoomOut),t[36]=g,t[37]=R);let ce;t[38]===Symbol.for(`react.memo_cache_sentinel`)?(ce=(0,$.jsx)(ue,{}),t[38]=ce):ce=t[38];let z;t[39]!==R||t[40]!==f?(z=(0,$.jsx)(h,{variant:`outline`,size:`icon-xs`,type:`button`,onClick:R,"aria-label":`Zoom out`,disabled:f,children:ce}),t[39]=R,t[40]=f,t[41]=z):z=t[41];let B;t[42]===y?B=t[43]:(B=(0,$.jsx)(`span`,{className:`min-w-12 text-center text-xs tabular-nums text-muted-foreground`,children:y}),t[42]=y,t[43]=B);let le;t[44]===g?le=t[45]:(le=g(F.zoomIn),t[44]=g,t[45]=le);let V;t[46]===Symbol.for(`react.memo_cache_sentinel`)?(V=(0,$.jsx)(oe,{}),t[46]=V):V=t[46];let H;t[47]!==le||t[48]!==f?(H=(0,$.jsx)(h,{variant:`outline`,size:`icon-xs`,type:`button`,onClick:le,"aria-label":`Zoom in`,disabled:f,children:V}),t[47]=le,t[48]=f,t[49]=H):H=t[49];let U;t[50]===g?U=t[51]:(U=g(F.resetZoom),t[50]=g,t[51]=U);let W;t[52]===Symbol.for(`react.memo_cache_sentinel`)?(W=(0,$.jsx)(de,{}),t[52]=W):W=t[52];let G;t[53]!==U||t[54]!==f?(G=(0,$.jsx)(h,{variant:`ghost`,size:`icon-xs`,type:`button`,onClick:U,"aria-label":`Reset zoom`,disabled:f,children:W}),t[53]=U,t[54]=f,t[55]=G):G=t[55];let K;t[56]!==z||t[57]!==B||t[58]!==H||t[59]!==G?(K=(0,$.jsxs)(`span`,{className:`flex items-center gap-1`,children:[z,B,H,G]}),t[56]=z,t[57]=B,t[58]=H,t[59]=G,t[60]=K):K=t[60];let q;t[61]!==K||t[62]!==f?(q=(0,$.jsxs)(M,{closeOnClick:!1,onClick:pt,className:`justify-between`,disabled:f,children:[L,K]}),t[61]=K,t[62]=f,t[63]=q):q=t[63];let fe,pe,J;t[64]===Symbol.for(`react.memo_cache_sentinel`)?(fe=(0,$.jsx)(_,{}),pe=(0,$.jsx)(M,{onClick:dt,children:`Clear cookies`}),J=(0,$.jsx)(M,{onClick:lt,children:`Clear cache`}),t[64]=fe,t[65]=pe,t[66]=J):(fe=t[64],pe=t[65],J=t[66]);let me;return t[67]!==te||t[68]!==I||t[69]!==q||t[70]!==C||t[71]!==T||t[72]!==D?(me=(0,$.jsxs)(p,{children:[x,(0,$.jsxs)(ee,{align:`end`,sideOffset:6,className:`min-w-56`,children:[C,T,D,te,I,se,q,fe,pe,J]})]}),t[67]=te,t[68]=I,t[69]=q,t[70]=C,t[71]=T,t[72]=D,t[73]=me):me=t[73],me}function lt(){F.clearCache().catch(ut)}function ut(){}function dt(){F.clearCookies().catch(ft)}function ft(){}function pt(e){return e.preventDefault()}function mt(e){return(0,$.jsx)(T,{value:e.value,children:e.label},e.value)}function ht(){}function gt(){}function _t(e){return he[e]||(e.length>0?e:`Network error`)}function vt(e){let t=(0,Q.c)(32),{url:n,code:r,description:i,onReload:a}=e,[o,s]=(0,Z.useState)(!1),c;t[0]===n?c=t[1]:(c=xt(n)??n,t[0]=n,t[1]=c);let l=c,u;t[2]===i?u=t[3]:(u=_t(i),t[2]=i,t[3]=u);let d=u,f;t[4]!==r||t[5]!==i?(f=i.length>0?i:`ERR_${Math.abs(r)||`FAILED`}`,t[4]=r,t[5]=i,t[6]=f):f=t[6];let p=f,m,g;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,$.jsx)(bt,{className:`mb-6 size-12 text-muted-foreground/70`}),g=(0,$.jsx)(`h1`,{className:`mb-3 text-2xl font-semibold leading-tight text-foreground`,children:`This site can’t be reached`}),t[7]=m,t[8]=g):(m=t[7],g=t[8]);let _;t[9]===l?_=t[10]:(_=(0,$.jsx)(`span`,{className:`font-semibold text-foreground`,children:l}),t[9]=l,t[10]=_);let v;t[11]!==d||t[12]!==_?(v=(0,$.jsxs)(`p`,{className:`text-sm leading-relaxed text-muted-foreground`,children:[_,`: `,d,`.`]}),t[11]=d,t[12]=_,t[13]=v):v=t[13];let y;t[14]===o?y=t[15]:(y=o?(0,$.jsxs)(`div`,{className:`mt-6 rounded-lg border border-border bg-muted/40 p-4 text-sm`,children:[(0,$.jsx)(`p`,{className:`mb-2 font-medium text-foreground`,children:`Try:`}),(0,$.jsxs)(`ul`,{className:`list-disc space-y-1 pl-5 text-muted-foreground`,children:[(0,$.jsx)(`li`,{children:`Checking your connection`}),(0,$.jsx)(`li`,{children:`Confirming the dev server is running`}),(0,$.jsx)(`li`,{children:`Checking the proxy and the firewall`})]})]}):null,t[14]=o,t[15]=y);let b;t[16]===p?b=t[17]:(b=(0,$.jsx)(`div`,{className:`mt-8 text-xs uppercase tracking-wide text-muted-foreground/70`,children:p}),t[16]=p,t[17]=b);let x;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(x=()=>s(yt),t[18]=x):x=t[18];let S=o?`Hide details`:`Details`,C;t[19]===S?C=t[20]:(C=(0,$.jsx)(h,{type:`button`,variant:`outline`,size:`sm`,onClick:x,children:S}),t[19]=S,t[20]=C);let w;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,$.jsx)(`div`,{className:`flex-1`}),t[21]=w):w=t[21];let T;t[22]===a?T=t[23]:(T=(0,$.jsx)(h,{type:`button`,size:`sm`,onClick:a,children:`Reload`}),t[22]=a,t[23]=T);let E;t[24]!==C||t[25]!==T?(E=(0,$.jsxs)(`div`,{className:`mt-auto flex items-center gap-2 pt-8`,children:[C,w,T]}),t[24]=C,t[25]=T,t[26]=E):E=t[26];let D;return t[27]!==E||t[28]!==v||t[29]!==y||t[30]!==b?(D=(0,$.jsx)(`div`,{className:`relative flex h-full min-h-0 w-full overflow-y-auto bg-background`,children:(0,$.jsxs)(`div`,{className:`mx-auto flex w-full max-w-xl flex-1 flex-col px-8 py-12 sm:py-16`,children:[m,g,v,y,b,E]})}),t[27]=E,t[28]=v,t[29]=y,t[30]=b,t[31]=D):D=t[31],D}function yt(e){return!e}function bt(e){let t=(0,Q.c)(5),{className:n}=e,r,i,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,$.jsx)(`path`,{d:`M16 12 L48 12 L48 52 L16 52 Z`}),i=(0,$.jsx)(`path`,{d:`M22 22 L42 22 M22 30 L36 30 M22 38 L40 38`,strokeLinecap:`round`}),a=(0,$.jsx)(`path`,{d:`M52 8 L12 56`,strokeLinecap:`round`}),t[0]=r,t[1]=i,t[2]=a):(r=t[0],i=t[1],a=t[2]);let o;return t[3]===n?o=t[4]:(o=(0,$.jsxs)(`svg`,{viewBox:`0 0 64 64`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.5`,className:n,children:[r,i,a]}),t[3]=n,t[4]=o),o}function xt(e){try{return new URL(e).host}catch{return null}}function St(e){let t=e.toLowerCase();return t.includes(`mac`)?`Reveal in Finder`:t.includes(`win`)?`Reveal in File Explorer`:`Reveal in Files`}var Ct=120,wt=220,Tt=4,Et=90,Dt=.08,Ot=.5;function kt(e){let[t,n]=(0,Z.useState)(0),r=(0,Z.useRef)(0);return r.current=t,(0,Z.useEffect)(()=>{if(!e){if(r.current===0)return;n(100);let e=window.setTimeout(()=>n(0),wt);return()=>window.clearTimeout(e)}n(e=>e>0&&e<95?e:Tt);let t=window.setInterval(()=>{let e=r.current;if(e>=Et)return;let t=Et-e,i=Math.max(Ot,t*Dt);n(Math.min(Et,e+i))},Ct);return()=>window.clearInterval(t)},[e]),t}var At=class extends m()(`PreviewSessionThreadKeyParseError`,{threadKey:u}){get message(){return`Invalid scoped preview thread key: ${this.threadKey}`}},jt=N(e=>{let t=o(e);if(t===null)throw new At({threadKey:e});let n=je.list({environmentId:t.environmentId,input:{threadId:t.threadId}}),r=je.events({environmentId:t.environmentId,input:{}});return S(e=>{let i=!1,a=0,o=e=>{v(e)&&xe(t,e.value)},s=r=>{if(!v(r)||r.value.threadId!==t.threadId)return;let i=Ne(t).serverEpoch;if(i!==null&&i!==r.value.serverEpoch){e.refresh(n);return}Le(t,r.value)};e.addFinalizer(()=>{i=!0});let c=e.once(r);e.subscribe(n,e=>{o(e)}),e.subscribe(r,e=>{a+=1,s(e)}),queueMicrotask(()=>{i||(e.refresh(n),a===0&&s(c))})}).pipe(k(1e3),w(`preview:session-sync:${e}`))});function Mt(e){let t=(0,Q.c)(2),n;t[0]===e?n=t[1]:(n=jt(s(e)),t[0]=e,t[1]=n),ae(n)}var Nt=1500,Pt=.001;function Ft(e){let t=(0,Q.c)(11),{zoomFactor:n}=e,[r,i]=(0,Z.useState)(!1),a=(0,Z.useRef)(n),o=(0,Z.useRef)(null),s,c;t[0]===n?(s=t[1],c=t[2]):(s=()=>{if(!(Math.abs(a.current-n)<Pt))return a.current=n,i(!0),o.current!==null&&window.clearTimeout(o.current),o.current=window.setTimeout(()=>{i(!1),o.current=null},Nt),()=>{o.current!==null&&(window.clearTimeout(o.current),o.current=null)}},c=[n],t[0]=n,t[1]=s,t[2]=c),(0,Z.useEffect)(s,c);let l;t[3]===n?l=t[4]:(l=Math.round(n*100),t[3]=n,t[4]=l);let u=`${l}%`,d=!r,f=r?`opacity-100 translate-y-0`:`opacity-0 -translate-y-1`,p;t[5]===f?p=t[6]:(p=g(`pointer-events-none absolute top-3 right-3 z-20 select-none rounded-full border border-border/70 bg-popover/95 px-2.5 py-1 text-xs font-medium text-foreground shadow-md/10 backdrop-blur transition-all duration-200 ease-out`,f),t[5]=f,t[6]=p);let m;return t[7]!==u||t[8]!==d||t[9]!==p?(m=(0,$.jsx)(`div`,{"aria-hidden":d,className:p,children:u}),t[7]=u,t[8]=d,t[9]=p,t[10]=m):m=t[10],m}function It(e,t){return e?1:t===`human`?.18:.35}var Lt=700;function Rt(e){let t=(0,Q.c)(9),{tabId:n,zoomFactor:r,controller:i}=e,a;t[0]===n?a=t[1]:(a=e=>e.byTabId[n]??null,t[0]=n,t[1]=a);let o=me(a),s;t[2]===n?s=t[3]:(s=e=>e.byTabId[n]?.content??null,t[2]=n,t[3]=s);let c=L(s);if(!o)return null;let l;return t[4]!==c||t[5]!==i||t[6]!==o||t[7]!==r?(l=(0,$.jsx)(zt,{event:o,content:c,zoomFactor:r,controller:i},o.sequence),t[4]=c,t[5]=i,t[6]=o,t[7]=r,t[8]=l):l=t[8],l}function zt(e){let t=(0,Q.c)(15),{event:n,content:r,zoomFactor:i,controller:a}=e,[o,s]=(0,Z.useState)(!0),c,l;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=()=>{let e=window.setTimeout(()=>s(!1),Lt);return()=>window.clearTimeout(e)},l=[],t[0]=c,t[1]=l):(c=t[0],l=t[1]),(0,Z.useEffect)(c,l);let u;t[2]!==o||t[3]!==a?(u=It(o,a),t[2]=o,t[3]=a,t[4]=u):u=t[4];let d=`translate3d(${n.x*i*(r?.scale??1)+(r?.x??0)-(r?.scrollLeft??0)}px, ${n.y*i*(r?.scale??1)+(r?.y??0)-(r?.scrollTop??0)}px, 0)`,f;t[5]!==u||t[6]!==d?(f={opacity:u,transform:d},t[5]=u,t[6]=d,t[7]=f):f=t[7];let p;t[8]!==n.phase||t[9]!==n.sequence?(p=n.phase===`click`?(0,$.jsx)(`span`,{className:`absolute left-0.5 top-0.5 size-4 animate-status-ping rounded-full bg-primary/25 motion-reduce:animate-none`},n.sequence):null,t[8]=n.phase,t[9]=n.sequence,t[10]=p):p=t[10];let m;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,$.jsx)(Ve,{className:`relative size-5 -translate-x-0.5 -translate-y-0.5 fill-background text-primary drop-shadow-sm`,strokeWidth:2}),t[11]=m):m=t[11];let h;return t[12]!==f||t[13]!==p?(h=(0,$.jsxs)(`div`,{className:`pointer-events-none absolute left-0 top-0 z-40 transition-[transform,opacity] duration-150 ease-out motion-reduce:transition-none`,style:f,"aria-hidden":`true`,"data-agent-browser-cursor":!0,children:[p,m]}),t[12]=f,t[13]=p,t[14]=h):h=t[14],h}var Bt=typeof window>`u`?null:l();function Vt({threadRef:e,tabId:t,configuredUrls:n,visible:r}){let[a,o]=(0,Z.useState)(void 0),[c,l]=(0,Z.useState)(!1),u=ke(),d=(0,Z.useRef)(!1),p=(0,Z.useRef)(!0),m=Fe(e),h=z(t=>Se(t.byThreadKey,e)),g=E(e=>e.addPreviewAnnotation),_=E(e=>e.addImage),v=D(e.environmentId),y=i(e.environmentId),b=f(je.open),S=f(je.resize,`preview viewport resize`),{resolvedTheme:w}=ne();Mt(e),(0,Z.useEffect)(()=>(p.current=!0,()=>{p.current=!1}),[]);let T=t??m.activeTabId,O=T?V(e,m.serverEpoch,T):null,ee=T&&O?u.has(O)?O:Me(e,T):null,k=T?m.sessions[T]??null:null,A=T?m.desktopByTabId[T]??null:null,j=k?.navStatus??{_tag:`Idle`},M=j._tag===`Idle`?``:j.url,N=A?.loading??j._tag===`Loading`,re=A?.canGoBack??k?.canGoBack??!1,ie=A?.canGoForward??k?.canGoForward??!1,ae=j._tag===`Idle`,P=j._tag===`LoadFailed`,I=Te(k),oe=A?.controller??`none`,se=kt(N),ce=M&&v&&y?Xe({url:M,environmentLabel:v.label,environmentHttpBaseUrl:y})??void 0:void 0,B=k?.viewport??x,le=L(e=>O?e.byTabId[O]?.rect??null:null),H=(0,Z.useCallback)(async t=>{O&&F?(await F.navigate(O,t),J(e,t)):await _e({openPreview:b,threadRef:e,url:t})},[b,O,e]),ue=(0,Z.useCallback)(async e=>{try{await H(ge(e))}catch{}},[H]),U=(0,Z.useCallback)(async t=>{try{await H(Ee(e.environmentId,t))}catch{}},[H,e.environmentId]),de=(0,Z.useCallback)(()=>{F&&O&&F.refresh(O)},[O]),K=(0,Z.useCallback)(()=>{F&&O&&F.zoomIn(O)},[O]),q=(0,Z.useCallback)(()=>{F&&O&&F.zoomOut(O)},[O]),fe=(0,Z.useCallback)(()=>{F&&O&&F.resetZoom(O)},[O]),me=(0,Z.useCallback)(async t=>{if(!T)return;let n=await S({environmentId:e.environmentId,input:{threadId:e.threadId,tabId:T,viewport:t}});if(n._tag===`Failure`){let e=te(n);throw X.add({type:`error`,title:`Unable to resize browser viewport`,description:e instanceof Error?e.message:`An error occurred.`}),e}Ae(e,n.value)},[S,T,e]),he=()=>{if(!O)return;if(B._tag!==`fill`){Ie(O,x).catch(()=>void 0);return}let e=le?Pe(le,A?.zoomFactor):{width:1024,height:768};Ie(O,{_tag:`freeform`,...e}).catch(()=>void 0)};(0,Z.useEffect)(()=>{if(O)return De(O,me)},[me,O]);let ve=(0,Z.useCallback)(()=>{F&&O&&F.goBack(O)},[O]),xe=(0,Z.useCallback)(()=>{F&&O&&F.goForward(O)},[O]),Ce=(0,Z.useCallback)(()=>{!Bt||!M||Bt.shell.openExternal(M).catch(()=>void 0)},[M]),we=(0,Z.useCallback)(()=>{if(T){if(h?.tabId===T){z.getState().close(e);return}z.getState().open(e,T),C.getState().close(e)}},[h?.tabId,T,e]),Oe=(0,Z.useCallback)(()=>{!F||!O||(A?.pictureInPicture?F.pictureInPicture.close:F.pictureInPicture.open)(O).catch(e=>{X.add({type:`error`,title:`Unable to update popped-out preview`,description:e instanceof Error?e.message:`An error occurred.`})})},[A?.pictureInPicture,O]),Ne=(0,Z.useCallback)(t=>{if(!F||!O||!T)return;let n=F;if(ee){pe(ee).then(e=>{if(!e)return;let t=!1,r,i=()=>{if(!navigator.clipboard?.writeText){X.update(r,Y({type:`error`,title:`Unable to copy recording path`,description:`Clipboard API unavailable.`,actionProps:a}));return}navigator.clipboard.writeText(e.path).then(()=>{t=!0,o(),window.setTimeout(()=>{t=!1,o()},2e3)},e=>{X.update(r,Y({type:`error`,title:`Unable to copy recording path`,description:e instanceof Error?e.message:`An error occurred.`,actionProps:a}))})},a={children:St(navigator.platform),onClick:()=>void n.revealArtifact(e.path)},o=()=>{X.update(r,Y({type:`success`,title:`Recording saved`,actionProps:a,data:{secondaryActionProps:{children:t?`Copied!`:`Copy path`,disabled:t,onClick:i},secondaryActionVariant:`outline`}}))};r=X.add(Y({type:`success`,title:`Recording saved`,actionProps:a,data:{secondaryActionProps:{children:`Copy path`,onClick:i},secondaryActionVariant:`outline`}}))},e=>{X.add({type:`error`,title:`Unable to stop recording`,description:e instanceof Error?e.message:`An error occurred.`})});return}if(t){be(O,e,T).catch(e=>{X.add({type:`error`,title:`Unable to start recording`,description:e instanceof Error?e.message:`An error occurred.`})});return}n.captureScreenshot(O).then(e=>{let t={children:St(navigator.platform),onClick:()=>void n.revealArtifact(e.path)},r=!1,i=!1,a,o=(e=`success`,n=`Screenshot saved`,o)=>{X.update(a,Y({type:e,title:n,description:o,actionProps:{children:i?`Copied!`:`Copy image`,disabled:i,onClick:c},data:{additionalActions:[{id:`copy-path`,props:{children:r?`Copied!`:`Copy path`,disabled:r,onClick:s}}],secondaryActionProps:{...t},secondaryActionVariant:`outline`}}))},s=()=>{if(!navigator.clipboard?.writeText){o(`error`,`Unable to copy screenshot path`,`Clipboard API unavailable.`);return}navigator.clipboard.writeText(e.path).then(()=>{r=!0,o(),window.setTimeout(()=>{r=!1,o()},2e3)},e=>{o(`error`,`Unable to copy screenshot path`,e instanceof Error?e.message:`An error occurred.`)})},c=()=>{n.copyArtifactToClipboard(e.path).then(()=>{i=!0,o(),window.setTimeout(()=>{i=!1,o()},2e3)},e=>{o(`error`,`Unable to copy screenshot`,e instanceof Error?e.message:`An error occurred.`)})};a=X.add(Y({type:`success`,title:`Screenshot saved`,actionProps:{children:`Copy image`,onClick:c},data:{additionalActions:[{id:`copy-path`,props:{children:`Copy path`,onClick:s}}],secondaryActionProps:{...t},secondaryActionVariant:`outline`}}))},e=>{X.add({type:`error`,title:`Unable to capture screenshot`,description:e instanceof Error?e.message:`An error occurred.`})})},[ee,O,T,e]),Le=(0,Z.useCallback)(()=>{if(!F||!O)return;if(d.current){F.cancelPickElement(O).catch(()=>void 0);return}let t=typeof document<`u`?document.activeElement:null;d.current=!0,l(!0),(async()=>{try{let t=await F.pickElement(O);if(!t)return;g(e,t);let n=await ye(t);n&&t.screenshot&&_(e,{type:`image`,id:t.id,name:n.name,mimeType:n.type,sizeBytes:n.size,previewUrl:t.screenshot.dataUrl,file:n})}catch{}finally{if(d.current=!1,p.current&&l(!1),t&&t.isConnected&&typeof t.focus==`function`)try{t.focus({preventScroll:!0})}catch{}}})()},[_,g,O,e]);return(0,Z.useEffect)(()=>{let e=R(M,w);e&&H(e).catch(()=>void 0)},[H,w,M]),(0,Z.useEffect)(()=>()=>{d.current&&(d.current=!1,F&&O&&F.cancelPickElement(O).catch(()=>void 0),p.current&&l(!1))},[O]),(0,Z.useEffect)(()=>{if(r)return G(e=>{switch(e){case`refresh`:de();return;case`focus-url`:o(e=>(e??0)+1);return;case`zoom-in`:K();return;case`zoom-out`:q();return;case`reset-zoom`:fe();return;case`toggle-panel`:return}})},[de,fe,K,q,r]),(0,$.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col bg-background`,"data-thread-key":s(e),children:[(0,$.jsx)(Ye,{url:M,displayUrl:ce,loading:N,loadProgress:se,canGoBack:re,canGoForward:ie,refreshDisabled:ae,focusUrlNonce:a,onBack:ve,onForward:xe,onRefresh:de,onSubmit:e=>void ue(e),onOpenInBrowser:T?Ce:void 0,onCapture:F&&T?Ne:void 0,captureDisabled:!A||P,recording:ee!==null,onPictureInPicture:F&&T?we:void 0,pictureInPicture:h?.tabId===T,pictureInPictureDisabled:!A?.hasWebContents||P,onPickElement:F&&T?Le:void 0,pickActive:c,pickDisabled:!T||P,pickDisabledReason:P?`Page didn't load — pick unavailable until the page renders`:void 0,trailingActions:F?(0,$.jsx)(ct,{tabId:O,hasWebContents:A?.hasWebContents??!1,zoomFactor:A?.zoomFactor??1,colorScheme:A?.colorScheme??`system`,deviceToolbarVisible:B._tag!==`fill`,onToggleDeviceToolbar:he,nativePictureInPicture:A?.pictureInPicture??!1,onNativePictureInPicture:Oe}):null}),(0,$.jsxs)(`div`,{className:`relative min-h-0 flex-1 overflow-hidden`,children:[O&&k&&!I?(0,$.jsx)(W,{tabId:O,visible:r&&!P,className:`absolute inset-0 h-full w-full`},O):null,I?(0,$.jsx)(ot,{environmentId:e.environmentId,configuredUrls:n,recentlySeenUrls:m.recentlySeenUrls,onOpenUrl:e=>void U(e)}):null,k&&A?(0,$.jsx)(Ft,{zoomFactor:A.zoomFactor}):null,O&&A&&!I&&!P?(0,$.jsx)(Rt,{tabId:O,zoomFactor:A.zoomFactor,controller:oe}):null,oe===`none`?null:(0,$.jsx)(`div`,{className:`pointer-events-none absolute left-3 top-3 z-40 rounded-full border border-border/70 bg-background/90 px-2.5 py-1 text-[11px] font-medium shadow-sm backdrop-blur`,children:oe===`agent`?`Agent controlling browser`:`Human control`}),j._tag===`LoadFailed`?(0,$.jsx)(`div`,{className:`absolute inset-0 z-10 bg-background`,children:(0,$.jsx)(vt,{url:j.url,code:j.code,description:j.description,onReload:de})}):null]})]})}function Ht(e){let t=(0,Q.c)(13),{mode:n,threadRef:r,tabId:i,configuredUrls:a,visible:o}=e;if(!Oe()){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col items-center justify-center gap-3 p-8 text-center`,children:(0,$.jsx)(`p`,{className:`max-w-sm text-sm text-muted-foreground`,children:`Preview is only available in the P4Code desktop app.`})}),t[0]=e):e=t[0];let r;return t[1]===n?r=t[2]:(r=(0,$.jsx)(U,{mode:n,children:e}),t[1]=n,t[2]=r),r}let s;t[3]===i?s=t[4]:(s=i===void 0?{}:{tabId:i},t[3]=i,t[4]=s);let c;t[5]!==a||t[6]!==s||t[7]!==r||t[8]!==o?(c=(0,$.jsx)(Vt,{threadRef:r,...s,configuredUrls:a,visible:o}),t[5]=a,t[6]=s,t[7]=r,t[8]=o,t[9]=c):c=t[9];let l;return t[10]!==n||t[11]!==c?(l=(0,$.jsx)(U,{mode:n,children:c}),t[10]=n,t[11]=c,t[12]=l):l=t[12],l}export{Ht as PreviewPanel};
2
- //# sourceMappingURL=PreviewPanel-Coh4ziog.js.map
@@ -1,2 +0,0 @@
1
- import{bs as e}from"./terminal-links-D-5oUNjJ.js";var t=e(`arrow-right`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`m12 5 7 7-7 7`,key:`xquz4c`}]]);export{t};
2
- //# sourceMappingURL=arrow-right-CZ5hDV1Y.js.map