@ironmussa/funny 0.1.10 → 0.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/bin/funny.js +8 -1
  2. package/package.json +2 -2
  3. package/packages/client/dist/assets/{AcceptInvitePage-CwYQtIVI.js → AcceptInvitePage-D7Il7Oy6.js} +1 -1
  4. package/packages/client/dist/assets/{ActivityPane-BqtiKQoc.js → ActivityPane-ZLkciVNI.js} +1 -1
  5. package/packages/client/dist/assets/{AddProjectView-BTUbNCf5.js → AddProjectView-BoxURbXr.js} +1 -1
  6. package/packages/client/dist/assets/{AllThreadsView-SgG-25oj.js → AllThreadsView-BmiDeocL.js} +1 -1
  7. package/packages/client/dist/assets/{AnalyticsView--eEfsZ7M.js → AnalyticsView-BX-KDDKJ.js} +1 -1
  8. package/packages/client/dist/assets/{App-DD7u4SAw.js → App-B6BGo4yf.js} +3 -3
  9. package/packages/client/dist/assets/{AutomationInboxView-By8MsYYO.js → AutomationInboxView-8IGMoS_S.js} +1 -1
  10. package/packages/client/dist/assets/{BrowserPanel-Cq089yp_.js → BrowserPanel-Bzdg58ZG.js} +1 -1
  11. package/packages/client/dist/assets/{BrowserPreview-REscPcXd.js → BrowserPreview-BOxVGzyc.js} +1 -1
  12. package/packages/client/dist/assets/{CircuitBreakerDialog-CsddJfvm.js → CircuitBreakerDialog-B4OWgguW.js} +1 -1
  13. package/packages/client/dist/assets/{CommandPalette-CI9t7rz5.js → CommandPalette-MMYtBRjJ.js} +1 -1
  14. package/packages/client/dist/assets/{CommentsPane-BFha7ll9.js → CommentsPane-CpkEXWbc.js} +1 -1
  15. package/packages/client/dist/assets/{CsvTable-HqueUd-d.js → CsvTable-BOI06_8F.js} +1 -1
  16. package/packages/client/dist/assets/{FileSearchDialog-BBLwpk_T.js → FileSearchDialog-C8O2b1og.js} +1 -1
  17. package/packages/client/dist/assets/{FileTree-0rn6jPHG.js → FileTree-BrArkMtz.js} +1 -1
  18. package/packages/client/dist/assets/{FolderPicker-NfYl0JOO.js → FolderPicker-CrcjKOtR.js} +1 -1
  19. package/packages/client/dist/assets/{GeneralSettingsView-CTrMytqS.js → GeneralSettingsView-h7BZ9Tqb.js} +2 -2
  20. package/packages/client/dist/assets/{GitProgressModal-DZRRb0Wv.js → GitProgressModal-D_VHqQRJ.js} +1 -1
  21. package/packages/client/dist/assets/{LiveColumnsView-DayolaGm.js → LiveColumnsView-DMHvLL0i.js} +1 -1
  22. package/packages/client/dist/assets/{LoginPage-BM8wco-G.js → LoginPage-C96WmzM4.js} +1 -1
  23. package/packages/client/dist/assets/{MediaPreview-Boc_Efcs.js → MediaPreview-kFmnVZEY.js} +1 -1
  24. package/packages/client/dist/assets/{MediaPreviewDialog-BvgtE3i6.js → MediaPreviewDialog-C9--Xfxu.js} +1 -1
  25. package/packages/client/dist/assets/{MermaidBlock-XIvP1J5s.js → MermaidBlock-BjQsl7KO.js} +1 -1
  26. package/packages/client/dist/assets/{MobilePage-528TrvBe.js → MobilePage-DoXo78uX.js} +2 -2
  27. package/packages/client/dist/assets/{MonacoEditorDialog-PIV1zMvf.js → MonacoEditorDialog-Cb71l4qC.js} +1 -1
  28. package/packages/client/dist/assets/{OrchestratorView-DyGhY-_D.js → OrchestratorView-DlrqZ8eO.js} +1 -1
  29. package/packages/client/dist/assets/{PreferencesPanel-BWEoYcWd.js → PreferencesPanel-BKPNAbb_.js} +1 -1
  30. package/packages/client/dist/assets/{PreviewBrowser-CMOLaONB.js → PreviewBrowser-CCR1deT4.js} +1 -1
  31. package/packages/client/dist/assets/{ProjectFilesPane-6h4yPJAD.js → ProjectFilesPane-ByjOGBzy.js} +1 -1
  32. package/packages/client/dist/assets/{ProjectHeader-CMxS5sHZ.js → ProjectHeader-DyRotlSA.js} +1 -1
  33. package/packages/client/dist/assets/{ProjectHooksSettings-CVJ-nm6H.js → ProjectHooksSettings-C4lxevV5.js} +1 -1
  34. package/packages/client/dist/assets/{ReviewPane-BzRzkCjt.js → ReviewPane-CX27KpWD.js} +1 -1
  35. package/packages/client/dist/assets/{SearchablePicker-BjX782MP.js → SearchablePicker-DVLrO1bu.js} +1 -1
  36. package/packages/client/dist/assets/{SettingsDetailView-DNPOyp0D.js → SettingsDetailView-BYyct5cK.js} +1 -1
  37. package/packages/client/dist/assets/{SettingsPageContent-S-wTMLuj.js → SettingsPageContent-CNfazaPs.js} +3 -3
  38. package/packages/client/dist/assets/{SetupWizard-fmU23YxJ.js → SetupWizard-DKwWUPoq.js} +1 -1
  39. package/packages/client/dist/assets/{Sidebar-Bw2Ioplc.js → Sidebar-CSu3eGez.js} +1 -1
  40. package/packages/client/dist/assets/{StashTab-Cg0Maipz.js → StashTab-C9d1yxU6.js} +1 -1
  41. package/packages/client/dist/assets/{TestRunnerPane-Bmx-1-73.js → TestRunnerPane-Cy-y0Urm.js} +1 -1
  42. package/packages/client/dist/assets/{TextSearchDialog-HKGHYT_o.js → TextSearchDialog-BlKI10Hy.js} +1 -1
  43. package/packages/client/dist/assets/{ThreadPowerline-JsNrt5F9.js → ThreadPowerline-DHjTbyCI.js} +1 -1
  44. package/packages/client/dist/assets/{ThreadStatusPin-R_yWmCoT.js → ThreadStatusPin-A5CcOVmG.js} +1 -1
  45. package/packages/client/dist/assets/{ThreadView-BDULTg_h.js → ThreadView-DsgcIKK-.js} +1 -1
  46. package/packages/client/dist/assets/{app-store-zHVd_RAl.js → app-store-CkfLtj-u.js} +1 -1
  47. package/packages/client/dist/assets/{automation-store-5RQ6ZEv3.js → automation-store-C7h4pWDb.js} +1 -1
  48. package/packages/client/dist/assets/{browser-panel-store-CfH8N_j3.js → browser-panel-store-BgjlFYk_.js} +2 -2
  49. package/packages/client/dist/assets/{button-QOkjXCsI.js → button-DL_y-bQm.js} +1 -1
  50. package/packages/client/dist/assets/{combine-BILvIlmd.js → combine-CDqDdXyw.js} +1 -1
  51. package/packages/client/dist/assets/{comment-store-DLNudBAH.js → comment-store-CMaCEsqD.js} +1 -1
  52. package/packages/client/dist/assets/{diff-parse-ChUK9GaG.js → diff-parse-SiWPZji5.js} +1 -1
  53. package/packages/client/dist/assets/{element-9KNKtLXh.js → element-JSHlqA80.js} +1 -1
  54. package/packages/client/dist/assets/{go-to-thread-D6Trf864.js → go-to-thread-Cvaa8Olw.js} +1 -1
  55. package/packages/client/dist/assets/{index-CAhq2HfW.js → index-BzzHdwZo.js} +2 -2
  56. package/packages/client/dist/assets/{input-6aKHjE5F.js → input-CCAE3mfQ.js} +1 -1
  57. package/packages/client/dist/assets/{items-CQJpN5w7.js → items-sHyHEl8t.js} +1 -1
  58. package/packages/client/dist/assets/{job-store-CMznU474.js → job-store-RXu4rpqJ.js} +1 -1
  59. package/packages/client/dist/assets/{kbd-CfA3upXH.js → kbd-Kex_rsEZ.js} +1 -1
  60. package/packages/client/dist/assets/{loading-state-CiP7DrB8.js → loading-state-B7VFf2px.js} +1 -1
  61. package/packages/client/dist/assets/{markdown-components-CaozR9zQ.js → markdown-components-CMS8J4V7.js} +1 -1
  62. package/packages/client/dist/assets/{native-git-store-1aY8koIG.js → native-git-store-Bu37WJNp.js} +1 -1
  63. package/packages/client/dist/assets/{orchestrator-store-B3cSUPy-.js → orchestrator-store-DLpxPxmm.js} +1 -1
  64. package/packages/client/dist/assets/{pipeline-approval-store-DDI5MtT0.js → pipeline-approval-store-VbySAyV9.js} +1 -1
  65. package/packages/client/dist/assets/{pr-detail-store-b2ZoxQFv.js → pr-detail-store-B-QD9rdh.js} +1 -1
  66. package/packages/client/dist/assets/{providers-CXnyofPN.js → providers-ySjYUuYV.js} +1 -1
  67. package/packages/client/dist/assets/{sidebar-chsp_x2A.js → sidebar-C4wtc5Cc.js} +1 -1
  68. package/packages/client/dist/assets/{tabs-DEUV5jFu.js → tabs-B3Tl2l09.js} +1 -1
  69. package/packages/client/dist/assets/{test-store-BDiRn2yK.js → test-store-Co9-McXa.js} +1 -1
  70. package/packages/client/dist/assets/{tooltip-icon-button-B5IohTsG.js → tooltip-icon-button-BsKucPEz.js} +1 -1
  71. package/packages/client/dist/assets/use-active-thread-id-DziVmncf.js +1 -0
  72. package/packages/client/dist/assets/{use-branch-switch-BGT_u9P1.js → use-branch-switch-3Q6NlO39.js} +1 -1
  73. package/packages/client/dist/assets/{use-image-lightbox-9mwEVC_V.js → use-image-lightbox-wBZdo-IW.js} +1 -1
  74. package/packages/client/dist/assets/{use-stable-navigate-BxdZa-Ti.js → use-stable-navigate-Dub9C1RE.js} +1 -1
  75. package/packages/client/dist/assets/{use-terminal-scope-CiW1SN3R.js → use-terminal-scope-CBl6Yy6Z.js} +1 -1
  76. package/packages/client/dist/assets/{use-thread-creation-DOTmwLZD.js → use-thread-creation-DRU3zJqT.js} +1 -1
  77. package/packages/client/dist/assets/{use-thread-search-BndwYsGw.js → use-thread-search-GmysdcbC.js} +1 -1
  78. package/packages/client/dist/assets/{use-todo-panel-CnifRS4_.js → use-todo-panel-DSumqCz3.js} +1 -1
  79. package/packages/client/dist/assets/{use-unified-prompt-model-groups-BgMV8ZK5.js → use-unified-prompt-model-groups-Bs9hZTeP.js} +1 -1
  80. package/packages/client/dist/assets/{use-ws-XNYpFLUp.js → use-ws-Rxo3-IBs.js} +3 -3
  81. package/packages/client/dist/assets/{visualizer-loader-LOQJ8YOT.js → visualizer-loader-Dr0yRhgU.js} +1 -1
  82. package/packages/client/dist/assets/{watcher-store-Dzhw8Q9b.js → watcher-store-DbYkaPlg.js} +1 -1
  83. package/packages/client/dist/index.html +1 -1
  84. package/packages/runtime/dist/index.js +2 -2
  85. package/packages/runtime/dist/index.js.map +1 -1
  86. package/packages/client/dist/assets/use-active-thread-id-CegcpJuJ.js +0 -1
@@ -1,2 +1,2 @@
1
- import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{Bn as t,D as n,Dr as r,Lt as i,Ot as a,Pr as o,Q as s,_t as c,b as l,bn as u,lr as d,ot as f,pn as p,sr as m,un as h,w as g,y as _,zn as v,zr as y}from"./icons-sqwAEN28.js";import{o as b}from"./markdown-DBtwZWLP.js";import{t as ee}from"./useTranslation-DAPPK3Hy.js";import{G as x,P as S,W as C,f as w,lt as T,pt as E,q as D,ut as O}from"./index-CAhq2HfW.js";import{n as te,t as k}from"./button-QOkjXCsI.js";import{$r as A,Ar as j,Dr as M,Gn as ne,Gr as N,Ir as re,Jn as P,Jr as F,Kn as ie,Lt as I,N as ae,Nn as oe,Nr as se,P as L,Rr as ce,Rt as R,Ur as z,Wn as le,Xr as ue,Yr as de,Zn as fe,_r as pe,a as me,at as he,cr as ge,dr as B,fr as V,gr as H,hr as U,in as _e,lr as W,m as ve,mr as G,pr as ye,q as be,qr as xe,rn as Se,sr as K,tr as Ce,ur as we,yr as Te}from"./items-CQJpN5w7.js";import{t as Ee}from"./input-6aKHjE5F.js";import{S as De,b as Oe,m as ke}from"./StashTab-Cg0Maipz.js";import{t as Ae}from"./loading-state-CiP7DrB8.js";import{o as je}from"./combine-BILvIlmd.js";import{d as q,l as Me,o as Ne,r as Pe,u as J}from"./adapter-g71mvnZo.js";import{t as Fe}from"./use-stable-navigate-BxdZa-Ti.js";import{t as Ie}from"./ThreadStatusPin-R_yWmCoT.js";import{t as Le}from"./ThreadPowerline-JsNrt5F9.js";import{t as Re}from"./use-branch-switch-BGT_u9P1.js";import{t as ze}from"./go-to-thread-D6Trf864.js";var Y=e(y(),1),X=e(b(),1);function Z({projectId:e,open:t,onOpenChange:n,onCreateThread:r}){let{t:o}=ee(),[c,l]=(0,Y.useState)([]),[u,f]=(0,Y.useState)(`open`),[h,g]=(0,Y.useState)(!1),[_,y]=(0,Y.useState)(null),[b,w]=(0,Y.useState)(1),[T,E]=(0,Y.useState)(!1),[O,te]=(0,Y.useState)(null),j=(0,Y.useCallback)(async(t,n)=>{g(!0),y(null),(await S.githubIssuesEnriched(e,{state:u,page:t,per_page:30})).match(e=>{l(t=>n?[...t,...e.issues]:e.issues),E(e.hasMore),te({owner:e.owner,repo:e.repo})},e=>{y(e.message)}),g(!1)},[e,u]);(0,Y.useEffect)(()=>{t&&(w(1),l([]),j(1,!1))},[t,u,j]);let M=()=>{let e=b+1;w(e),j(e,!0)},ne=(0,Y.useCallback)(e=>{!r||!O||r({prompt:ke(e,O),branchName:e.suggestedBranchName,title:e.title})},[r,O]);function re(e){let t=Math.floor((Date.now()-new Date(e).getTime())/1e3);if(t<60)return`${t}s`;let n=Math.floor(t/60);if(n<60)return`${n}m`;let r=Math.floor(n/60);if(r<24)return`${r}h`;let i=Math.floor(r/24);return i<30?`${i}d`:`${Math.floor(i/30)}mo`}return(0,X.jsx)(N,{open:t,onOpenChange:n,children:(0,X.jsxs)(xe,{className:`flex max-h-[80vh] max-w-lg flex-col`,children:[(0,X.jsxs)(ue,{children:[(0,X.jsxs)(A,{className:`flex items-center gap-2`,children:[(0,X.jsx)(m,{className:`icon-base`}),o(`issues.title`)]}),(0,X.jsx)(F,{className:`sr-only`,children:o(`issues.title`)})]}),(0,X.jsxs)(`div`,{className:`flex gap-1`,children:[(0,X.jsxs)(k,{variant:u===`open`?`default`:`ghost`,size:`sm`,onClick:()=>f(`open`),className:`h-7 text-xs`,"data-testid":`issues-filter-open`,children:[(0,X.jsx)(m,{className:`icon-xs mr-1 text-green-500`}),o(`issues.open`)]}),(0,X.jsxs)(k,{variant:u===`closed`?`default`:`ghost`,size:`sm`,onClick:()=>f(`closed`),className:`h-7 text-xs`,"data-testid":`issues-filter-closed`,children:[(0,X.jsx)(d,{className:`icon-xs mr-1 text-purple-500`}),o(`issues.closed`)]})]}),(0,X.jsx)(_e,{className:`-mx-6 min-h-0 flex-1 px-6`,children:h&&c.length===0?(0,X.jsx)(Ae,{fill:!1,className:`py-12`,testId:`issues-loading`,label:o(`common.loading`,`Loading…`)}):_?(0,X.jsxs)(`div`,{className:`text-muted-foreground py-12 text-center text-sm`,children:[(0,X.jsx)(`p`,{children:o(`issues.error`)}),(0,X.jsx)(`p`,{className:`mt-1 text-xs`,children:_})]}):c.length===0?(0,X.jsx)(`div`,{className:`text-muted-foreground py-12 text-center text-sm`,children:o(`issues.noIssues`)}):(0,X.jsxs)(`div`,{className:`space-y-1`,children:[c.map(e=>(0,X.jsxs)(`div`,{className:`group hover:bg-accent/50 flex items-start gap-2 rounded-md p-2 transition-colors`,"data-testid":`issue-item-${e.number}`,children:[e.state===`open`?(0,X.jsx)(m,{className:`icon-base mt-0.5 shrink-0 text-green-500`}):(0,X.jsx)(d,{className:`icon-base mt-0.5 shrink-0 text-purple-500`}),(0,X.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,X.jsx)(`div`,{className:`flex items-baseline gap-1.5`,children:(0,X.jsx)(`a`,{href:e.html_url,target:`_blank`,rel:`noopener noreferrer`,className:`hover:text-primary line-clamp-2 text-sm font-medium transition-colors`,children:e.title})}),e.body?(0,X.jsx)(`p`,{className:`text-muted-foreground mt-1 line-clamp-3 text-xs whitespace-pre-wrap`,"data-testid":`issue-body-${e.number}`,children:e.body}):null,(0,X.jsxs)(`div`,{className:`mt-0.5 flex flex-wrap items-center gap-2`,children:[(0,X.jsxs)(`span`,{className:`text-muted-foreground text-xs`,children:[`#`,e.number]}),e.labels.map(e=>(0,X.jsx)(he,{variant:`outline`,className:`h-4 px-1 text-[10px]`,style:{borderColor:`#${e.color}`,color:`#${e.color}`},children:e.name},e.name)),e.linkedBranch&&(0,X.jsxs)(he,{variant:`outline`,className:`h-4 gap-0.5 border-emerald-500/30 px-1 text-[10px] text-emerald-500`,children:[(0,X.jsx)(p,{className:`size-2.5`}),(0,X.jsx)(`span`,{className:`max-w-[100px] truncate`,children:e.linkedBranch})]}),e.linkedPR&&(0,X.jsx)(De,{prNumber:e.linkedPR.number,prState:e.linkedPR.state===`merged`?`MERGED`:e.linkedPR.state===`closed`?`CLOSED`:`OPEN`,prUrl:e.linkedPR.url,size:`xxs`}),(0,X.jsx)(`span`,{className:`text-muted-foreground text-xs`,children:re(e.created_at)}),e.user&&(0,X.jsx)(`span`,{className:`text-muted-foreground text-xs`,children:e.user.login}),e.comments>0&&(0,X.jsxs)(`span`,{className:`text-muted-foreground flex items-center gap-0.5 text-xs`,children:[(0,X.jsx)(a,{className:`icon-xs`}),e.comments]})]})]}),r&&!e.linkedBranch&&(0,X.jsxs)(C,{children:[(0,X.jsx)(D,{asChild:!0,children:(0,X.jsx)(k,{variant:`ghost`,size:`sm`,className:`size-6 shrink-0 p-0 opacity-0 transition-opacity group-hover:opacity-100`,onClick:()=>ne(e),"data-testid":`issue-create-thread-${e.number}`,children:(0,X.jsx)(s,{className:`size-3.5`})})}),(0,X.jsx)(x,{side:`left`,children:(0,X.jsx)(`p`,{children:o(`issues.createThread`)})})]})]},e.number)),T&&(0,X.jsx)(`div`,{className:`flex justify-center py-2`,children:(0,X.jsxs)(k,{variant:`ghost`,size:`sm`,onClick:e=>{e.preventDefault(),M()},disabled:h,className:`text-xs`,"data-testid":`issues-load-more`,children:[h?(0,X.jsx)(i,{className:`icon-xs mr-1 animate-spin`}):null,o(`issues.loadMore`)]})})]})}),O&&(0,X.jsx)(`div`,{className:`flex justify-end border-t pt-2`,children:(0,X.jsxs)(`a`,{href:`https://github.com/${O.owner}/${O.repo}/issues`,target:`_blank`,rel:`noopener noreferrer`,className:`text-muted-foreground hover:text-foreground flex items-center gap-1 text-xs transition-colors`,children:[o(`issues.viewOnGithub`),(0,X.jsx)(v,{className:`icon-xs`})]})})]})})}function Be({open:e,target:t,loading:n,onCancel:r,onConfirm:a}){let{t:o}=ee(),[s,c]=(0,Y.useState)(!1),[l,u]=(0,Y.useState)(null),[f,m]=(0,Y.useState)(!1);(0,Y.useEffect)(()=>{if(!e||!t?.worktreePath||!t?.projectId){u(null),c(!1);return}m(!0),u(null),S.worktreeStatus(t.projectId,t.worktreePath).then(e=>{e.match(e=>u(e),()=>u(null)),m(!1)})},[e,t?.projectId,t?.worktreePath]);let h=(0,Y.useCallback)(()=>{a({deleteBranch:s})},[a,s]),g=t?.title&&t.title.length>80?t.title.slice(0,80)+`…`:t?.title;return(0,X.jsx)(ge,{open:e,onOpenChange:e=>{e||r()},children:(0,X.jsxs)(B,{className:`max-w-sm`,"data-testid":`worktree-delete-dialog`,children:[(0,X.jsxs)(G,{children:[(0,X.jsx)(U,{children:o(`dialog.deleteThread`)}),(0,X.jsx)(V,{className:`break-all`,children:o(`dialog.deleteThreadDesc`,{title:g})})]}),(0,X.jsxs)(`div`,{className:`space-y-2`,children:[f?(0,X.jsxs)(`div`,{className:`text-muted-foreground flex items-center gap-2 py-2 text-xs`,children:[(0,X.jsx)(i,{className:`icon-sm animate-spin`}),o(`dialog.worktreeStatusLoading`)]}):l?(0,X.jsxs)(X.Fragment,{children:[l.unpushedCommitCount>0&&(0,X.jsxs)(H,{variant:`destructive`,className:`border-status-warning/30 bg-status-warning/10 text-status-warning [&>svg]:text-status-warning`,children:[(0,X.jsx)(_,{className:`icon-base`}),(0,X.jsx)(pe,{className:`text-xs`,children:o(`dialog.unpushedCommitsWarning`,{count:l.unpushedCommitCount})})]}),l.dirtyFileCount>0&&(0,X.jsxs)(H,{variant:`destructive`,className:`border-status-warning/30 bg-status-warning/10 text-status-warning [&>svg]:text-status-warning`,children:[(0,X.jsx)(_,{className:`icon-base`}),(0,X.jsx)(pe,{className:`text-xs`,children:o(`dialog.dirtyFilesWarning`,{count:l.dirtyFileCount})})]}),l.unpushedCommitCount===0&&l.dirtyFileCount===0&&(0,X.jsxs)(`div`,{className:`flex items-center gap-2 py-1 text-xs text-emerald-500`,children:[(0,X.jsx)(d,{className:`size-3.5`}),o(`dialog.noUnpushedCommits`)]})]}):(0,X.jsxs)(H,{variant:`destructive`,className:`border-status-warning/30 bg-status-warning/10 text-status-warning [&>svg]:text-status-warning`,children:[(0,X.jsx)(_,{className:`icon-base`}),(0,X.jsx)(pe,{className:`text-xs`,children:o(`dialog.worktreeWarning`)})]}),t?.branchName&&(0,X.jsxs)(`label`,{className:`border-border/50 flex cursor-pointer items-center gap-2 rounded-md border px-3 py-2`,"data-testid":`worktree-delete-branch-checkbox`,children:[(0,X.jsx)(be,{checked:s,onCheckedChange:e=>c(e===!0)}),(0,X.jsx)(p,{className:`text-muted-foreground size-3.5`}),(0,X.jsx)(`span`,{className:`text-xs`,children:o(`dialog.deleteBranchOption`,{branch:t.branchName})})]})]}),(0,X.jsxs)(ye,{children:[(0,X.jsx)(we,{"data-testid":`worktree-delete-cancel`,onClick:r,disabled:n,children:o(`common.cancel`)}),(0,X.jsxs)(W,{"data-testid":`worktree-delete-confirm`,className:T(te({variant:`destructive`})),onClick:h,disabled:n,children:[n&&(0,X.jsxs)(`svg`,{className:`size-4 animate-spin`,viewBox:`0 0 24 24`,fill:`none`,children:[(0,X.jsx)(`circle`,{className:`opacity-25`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,strokeWidth:`4`}),(0,X.jsx)(`path`,{className:`opacity-75`,fill:`currentColor`,d:`M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z`})]}),o(`common.delete`)]})]})]})})}function Ve({archiveConfirm:e,setArchiveConfirm:t,handleArchiveConfirm:n,deleteThreadConfirm:r,setDeleteThreadConfirm:i,handleDeleteThreadConfirm:a,renameProjectState:o,setRenameProjectState:s,handleRenameProjectConfirm:c,deleteProjectConfirm:l,setDeleteProjectConfirm:u,handleDeleteProjectConfirm:d,issuesProjectId:f,setIssuesProjectId:p,actionLoading:m}){let{t:h}=ee();return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(K,{open:!!e,onOpenChange:e=>{e||t(null)},title:h(`dialog.archiveThread`),description:h(`dialog.archiveThreadDesc`,{title:e?.title&&e.title.length>80?e.title.slice(0,80)+`…`:e?.title}),warning:e?.isWorktree?h(`dialog.worktreeWarning`):void 0,cancelLabel:h(`common.cancel`),confirmLabel:h(`sidebar.archive`),variant:`default`,loading:m,onCancel:()=>t(null),onConfirm:n}),r?.isWorktree?(0,X.jsx)(Be,{open:!!r,target:r,loading:m,onCancel:()=>i(null),onConfirm:({deleteBranch:e})=>a({deleteBranch:e})}):(0,X.jsx)(K,{open:!!r,onOpenChange:e=>{e||i(null)},title:h(`dialog.deleteThread`),description:h(`dialog.deleteThreadDesc`,{title:r?.title&&r.title.length>80?r.title.slice(0,80)+`…`:r?.title}),cancelLabel:h(`common.cancel`),confirmLabel:h(`common.delete`),loading:m,onCancel:()=>i(null),onConfirm:()=>a()}),(0,X.jsx)(N,{open:!!o,onOpenChange:e=>{e||s(null)},children:(0,X.jsxs)(xe,{className:`max-w-sm`,children:[(0,X.jsxs)(ue,{children:[(0,X.jsx)(A,{children:h(`dialog.renameProject`)}),(0,X.jsx)(F,{children:h(`dialog.renameProjectDesc`,{name:o?.currentName})})]}),(0,X.jsx)(`div`,{className:`py-2`,children:(0,X.jsx)(Ee,{"data-testid":`rename-project-input`,value:o?.newName||``,onChange:e=>{let t=e.target.value;s(e=>e&&{...e,newName:t})},onKeyDown:e=>{e.key===`Enter`&&c()},placeholder:h(`sidebar.projectName`),autoFocus:!0})}),(0,X.jsxs)(de,{children:[(0,X.jsx)(k,{"data-testid":`rename-project-cancel`,variant:`outline`,size:`sm`,onClick:()=>s(null),children:h(`common.cancel`)}),(0,X.jsx)(k,{"data-testid":`rename-project-confirm`,size:`sm`,onClick:c,loading:m,children:h(`common.save`)})]})]})}),(0,X.jsx)(K,{open:!!l,onOpenChange:e=>{e||u(null)},title:h(`dialog.deleteProject`),description:h(`dialog.deleteProjectDesc`,{name:l?.name}),cancelLabel:h(`common.cancel`),confirmLabel:h(`common.delete`),loading:m,onCancel:()=>u(null),onConfirm:d}),f&&(0,X.jsx)(Z,{projectId:f,open:!!f,onOpenChange:e=>{e||p(null)},onCreateThread:e=>{p(null),Te.getState().startNewThreadFromIssue(f,e)}})]})}function Q(e){let{tabs:t}=L.getState(),{availableShells:n}=w.getState(),r=n.find(t=>t.id===e.shell)?.label??`Terminal`,i=t.filter(t=>t.projectId===e.projectId&&(t.shell??`default`)===e.shell).length;return{id:crypto.randomUUID(),label:e.label??`${r} ${i+1}`,cwd:e.cwd,alive:!0,projectId:e.projectId,type:je?void 0:`pty`,shell:e.shell,createdAt:Date.now(),scratchThreadId:e.scratchThreadId,initialCommand:e.initialCommand}}function He(e){let{addTab:t}=L.getState();t({id:crypto.randomUUID(),label:`job: ${e.job.label||e.job.id.slice(0,8)}`,cwd:e.job.cwd??`~`,alive:e.job.status===`running`,projectId:e.projectId,type:`job-log`,jobId:e.job.id,createdAt:Date.now()})}function Ue({projectId:e,cwd:t,shell:n=`default`}){let{addTab:r}=L.getState();r(Q({projectId:e,cwd:t,shell:n}))}function We({thread:e,shell:t=`default`}){let{addTab:n}=L.getState();if(e.isScratch){n(Q({projectId:ae,cwd:`~`,shell:t,scratchThreadId:e.id}));return}let r=M.getState().projects.find(t=>t.id===e.projectId),i=e.worktreePath??r?.path??`~`;n(Q({projectId:e.projectId,cwd:i,shell:t}))}var Ge=[`id`,`title`,`status`,`pinned`,`mode`,`branch`,`worktreePath`,`createdBy`,`createdAt`,`completedAt`,`archived`,`provider`,`lastAssistantMessage`,`agentTemplateId`];function Ke(e,t){if(e===t)return!0;for(let n of Ge)if(e[n]!==t[n])return!1;return!0}function qe(e,t){return e.isSelected!==t.isSelected||e.onSelect!==t.onSelect||e.onRename!==t.onRename||e.onArchive!==t.onArchive||e.onPin!==t.onPin||e.onDelete!==t.onDelete||e.subtitle!==t.subtitle||e.projectColor!==t.projectColor||e.timeValue!==t.timeValue||e.search!==t.search||e.contentSnippet!==t.contentSnippet||e.metadataBadge!==t.metadataBadge||e.projectPath!==t.projectPath||e.gitStatus!==t.gitStatus||e.href!==t.href?!1:Ke(e.thread,t.thread)}var Je=(0,Y.memo)(function({thread:e,projectPath:a,isSelected:s,onSelect:d,subtitle:m,projectColor:_,timeValue:v,search:y,contentSnippet:b,metadataBadge:w,onRename:E,onArchive:O,onPin:te,onDelete:M,gitStatus:F,href:ae}){let{t:L}=ee(),[z,pe]=(0,Y.useState)(!1),he=(0,Y.useCallback)(e=>pe(e),[]),[ge,B]=(0,Y.useState)(!1),[V,H]=(0,Y.useState)(``),U=me(t=>e.agentTemplateId?t.templates.find(t=>t.id===e.agentTemplateId):void 0),[_e,W]=(0,Y.useState)(!1),[G,ye]=(0,Y.useState)(``),[be,K]=(0,Y.useState)(!1),we=(0,Y.useCallback)(()=>{H(e.title),B(!0)},[e.title]),Te=(0,Y.useCallback)(()=>{let t=V.trim();t&&t!==e.title&&E&&E(t),B(!1)},[V,e.title,E]),ke=(0,Y.useCallback)(async()=>{let t=G.trim().replace(/\s+/g,`-`).replace(/[^a-zA-Z0-9\-_/.]/g,``);if(!t||!e.projectId)return;K(!0);let n=await S.checkout(e.projectId,t,`carry`,!0,e.id);K(!1),n.isErr()?le(n.error):(W(!1),ye(``))},[G,e.projectId,e.id]),Ae=e.status===`running`,je=e.status===`setting_up`,q=Ae||je,Me=v??Se(e.createdAt,L),Ne=ae??R(re(e)),Pe=(0,Y.useRef)(F);F&&(Pe.current=F);let J=F??Pe.current,Fe=!!J&&J.state!==`clean`&&(J.linesAdded>0||J.linesDeleted>0||J.dirtyFileCount>0),Re=!!J?.prNumber,ze=b??e.lastAssistantMessage,Z=!!ze,Be=q&&!Z,Ve=!Z&&!q&&(!e.stage||e.stage===`backlog`),Q=ce(e),He=se(e)&&(!!m||!!e.baseBranch||!!e.branch),Ue=Fe||Re||He||Q||!!w,Ge=Z||Be||Ve;return(0,X.jsxs)(`div`,{className:T(`group/thread w-full flex items-stretch rounded-md min-w-0`,s?`bg-accent text-foreground`:`text-muted-foreground hover:bg-accent/50 hover:text-foreground`),children:[(0,X.jsxs)(`div`,{role:`button`,tabIndex:0,"data-testid":`thread-item-${e.id}`,onPointerEnter:()=>{s||I.getState().prefetchThread(e.id)},onFocus:()=>{s||I.getState().prefetchThread(e.id)},onClick:e=>{if(e.ctrlKey||e.metaKey){e.preventDefault(),e.stopPropagation(),window.open(Ne,`_blank`,`noopener,noreferrer,popup=yes,width=1280,height=900`);return}d()},onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),d())},onAuxClick:e=>{e.button===1&&(e.preventDefault(),e.stopPropagation(),window.open(Ne,`_blank`,`noopener,noreferrer,popup=yes,width=1280,height=900`))},className:`focus-visible:ring-ring flex min-w-0 flex-1 cursor-pointer flex-col gap-1 overflow-hidden py-1.5 pl-2 text-left focus:outline-hidden focus-visible:ring-1`,children:[(0,X.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5`,children:[(0,X.jsx)(Ie,{thread:e,onPin:te?()=>te():void 0,hoverGroup:`thread`,showStatusTooltip:!0}),(0,X.jsx)(ve,{title:e.title,search:y,className:`text-sm leading-tight`,badgeTestId:`thread-item-attachments-${e.id}`}),e.createdBy&&e.createdBy!==`user`&&(0,X.jsxs)(C,{children:[(0,X.jsx)(D,{asChild:!0,children:(0,X.jsx)(r,{className:`icon-xs text-muted-foreground shrink-0`})}),(0,X.jsx)(x,{side:`top`,className:`text-xs`,children:L(`thread.createdBy`,{creator:e.createdBy})})]}),e.runtime===`remote`&&(0,X.jsx)(`span`,{className:`shrink-0 rounded bg-violet-500/15 px-1 py-0.5 text-[10px] leading-none font-medium text-violet-500`,children:`Remote`}),U&&(0,X.jsxs)(C,{children:[(0,X.jsx)(D,{asChild:!0,children:(0,X.jsxs)(`span`,{className:`flex shrink-0 items-center gap-0.5 rounded px-1 py-0.5 text-[10px] leading-none font-medium`,style:{backgroundColor:U.color?`${U.color}22`:`hsl(var(--muted))`,color:U.color??`hsl(var(--muted-foreground))`},"data-testid":`thread-template-badge-${e.id}`,children:[U.color&&(0,X.jsx)(`span`,{className:`inline-block size-1.5 rounded-full`,style:{backgroundColor:U.color}}),U.name]})}),(0,X.jsx)(x,{side:`top`,className:`text-xs`,children:U.description||U.name})]})]}),(Ue||Ge)&&(0,X.jsxs)(`div`,{className:`flex min-h-[22px] min-w-0 items-center gap-1.5 pl-5`,children:[He&&(0,X.jsx)(Le,{thread:e,projectName:m,projectColor:_,projectTooltip:a,gitStatus:J,diffStatsSize:`xs`,"data-testid":`thread-powerline-${e.id}`}),Q&&(0,X.jsxs)(C,{children:[(0,X.jsx)(D,{asChild:!0,children:(0,X.jsx)(`span`,{"data-testid":`thread-scratch-badge-${e.id}`,className:`bg-muted/60 text-muted-foreground flex shrink-0 items-center rounded p-1 leading-none`,children:(0,X.jsx)(c,{className:`icon-xs`})})}),(0,X.jsx)(x,{side:`top`,className:`text-xs`,children:L(`thread.scratchTooltip`,{defaultValue:`Scratch thread — no project, no git`})})]}),Re&&J&&(0,X.jsx)(De,{prNumber:J.prNumber,prState:J.prState??`OPEN`,prUrl:J.prUrl,size:`compact`,"data-testid":`thread-pr-badge-${e.id}`}),w,Z&&b&&y?(0,X.jsx)(oe,{text:ze,query:y,className:`text-muted-foreground/50 min-w-0 flex-1 truncate text-xs`}):Z?(0,X.jsx)(`span`,{className:`text-muted-foreground/50 min-w-0 flex-1 truncate text-xs`,children:ze}):Be?(0,X.jsx)(`span`,{className:`text-muted-foreground/50 min-w-0 flex-1 truncate text-xs italic`,children:L(`thread.launching`,`Launching...`)}):Ve?(0,X.jsx)(`span`,{className:`text-muted-foreground/50 min-w-0 flex-1 truncate text-xs italic`,children:L(`thread.readyToLaunch`,`Ready to Launch`)}):null]})]}),(0,X.jsx)(`div`,{className:`flex shrink-0 items-center gap-1.5 py-1 pr-1.5 pl-2`,children:(0,X.jsx)(Oe,{time:Me,timeClassName:`text-muted-foreground h-4 text-xs leading-4`,open:z,group:`thread`,className:`min-w-10`,children:(0,X.jsxs)(ne,{onOpenChange:he,children:[(0,X.jsx)(Ce,{asChild:!0,children:(0,X.jsx)(k,{variant:`ghost`,size:`icon-xs`,tabIndex:-1,"data-testid":`thread-item-more-${e.id}`,onClick:e=>e.stopPropagation(),className:`text-muted-foreground hover:text-foreground`,children:(0,X.jsx)(t,{className:`icon-sm`})})}),(0,X.jsxs)(ie,{align:`start`,side:`bottom`,children:[(0,X.jsxs)(P,{onClick:async t=>{t.stopPropagation();let n=await S.openDirectory({threadId:e.id});n.isErr()&&le(n.error)},children:[(0,X.jsx)(u,{className:`icon-sm`}),L(`sidebar.openDirectory`)]}),(0,X.jsxs)(P,{onClick:t=>{t.stopPropagation(),We({thread:e})},children:[(0,X.jsx)(g,{className:`icon-sm`}),L(`sidebar.openTerminal`)]}),j(e)&&!q&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(fe,{}),(0,X.jsxs)(P,{"data-testid":`thread-convert-worktree-${e.id}`,onClick:async t=>{t.stopPropagation();let n=await S.convertToWorktree(e.id);n.isErr()&&le(n.error)},children:[(0,X.jsx)(h,{className:`icon-sm`}),L(`dialog.convertToWorktreeTitle`)]}),(0,X.jsxs)(P,{"data-testid":`thread-create-branch-${e.id}`,onClick:e=>{e.stopPropagation(),W(!0)},children:[(0,X.jsx)(p,{className:`icon-sm`}),L(`dialog.createBranchTitle`)]}),(0,X.jsx)(fe,{})]}),E&&(0,X.jsxs)(P,{"data-testid":`thread-rename-${e.id}`,onClick:e=>{e.stopPropagation(),we()},children:[(0,X.jsx)(f,{className:`icon-sm`}),L(`sidebar.rename`)]}),Ae&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(fe,{}),(0,X.jsxs)(P,{onClick:async t=>{t.stopPropagation();let n=await S.stopThread(e.id);n.isErr()&&console.error(`Failed to stop thread:`,n.error)},className:`text-status-error focus:text-status-error`,children:[(0,X.jsx)(n,{className:`icon-sm`}),L(`common.stop`)]})]}),O&&!q&&(0,X.jsxs)(P,{onClick:e=>{e.stopPropagation(),O()},children:[(0,X.jsx)(o,{className:`icon-sm`}),L(`sidebar.archive`)]}),M&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(fe,{}),(0,X.jsxs)(P,{"data-testid":`thread-delete-${e.id}`,onClick:e=>{e.stopPropagation(),M()},className:`text-status-error focus:text-status-error`,children:[(0,X.jsx)(l,{className:`icon-sm`}),L(`common.delete`)]})]})]})]})})}),(0,X.jsx)(N,{open:ge,onOpenChange:B,children:(0,X.jsxs)(xe,{className:`sm:max-w-md`,"data-testid":`thread-rename-dialog-${e.id}`,children:[(0,X.jsx)(ue,{children:(0,X.jsx)(A,{children:L(`sidebar.rename`)})}),(0,X.jsx)(Ee,{"data-testid":`thread-rename-input-${e.id}`,value:V,onChange:e=>H(e.target.value),onKeyDown:e=>{e.key===`Enter`&&Te()},autoFocus:!0}),(0,X.jsxs)(de,{children:[(0,X.jsx)(k,{variant:`ghost`,onClick:()=>B(!1),"data-testid":`thread-rename-cancel`,children:L(`common.cancel`)}),(0,X.jsx)(k,{onClick:Te,disabled:!V.trim()||V.trim()===e.title,"data-testid":`thread-rename-confirm`,children:L(`common.save`)})]})]})}),(0,X.jsx)(N,{open:_e,onOpenChange:W,children:(0,X.jsxs)(xe,{className:`sm:max-w-md`,"data-testid":`thread-create-branch-dialog-${e.id}`,children:[(0,X.jsx)(ue,{children:(0,X.jsx)(A,{children:L(`dialog.createBranchTitle`)})}),(0,X.jsx)(Ee,{"data-testid":`thread-create-branch-input-${e.id}`,placeholder:L(`dialog.createBranchPlaceholder`),value:G,onChange:e=>ye(e.target.value),onKeyDown:e=>{e.key===`Enter`&&G.trim()&&ke()},autoFocus:!0}),(0,X.jsxs)(de,{children:[(0,X.jsx)(k,{variant:`ghost`,onClick:()=>W(!1),"data-testid":`thread-create-branch-cancel-${e.id}`,children:L(`common.cancel`)}),(0,X.jsx)(k,{onClick:ke,disabled:!G.trim()||be,"data-testid":`thread-create-branch-confirm-${e.id}`,children:be?(0,X.jsx)(i,{className:`icon-sm animate-spin`}):L(`common.create`,`Create`)})]})]})})]})},qe);function Ye(){let{t:e}=ee(),t=Fe(),{ensureBranch:n,branchSwitchDialog:r}=Re(),i=I(e=>e.archiveThread),a=I(e=>e.renameThread),o=I(e=>e.pinThread),s=I(e=>e.deleteThread),c=I(e=>e.deleteScratchThread),l=M(e=>e.renameProject),u=M(e=>e.deleteProject),d=M(e=>e.closeProject),f=M(e=>e.reopenProject),[p,m]=(0,Y.useState)(null),[h,g]=(0,Y.useState)(null),[_,v]=(0,Y.useState)(null),[y,b]=(0,Y.useState)(null),[x,C]=(0,Y.useState)(!1),[w,T]=(0,Y.useState)(null),D=(0,Y.useCallback)(async()=>{if(!p)return;C(!0);let{threadId:n,projectId:r}=p,a=I.getState().selectedThreadId===n;await i(n,r),C(!1),m(null),z.success(e(`toast.threadArchived`)),a&&t(R(`/projects/${r}`))},[p,i,e,t]),te=(0,Y.useCallback)(async n=>{if(!h)return;let{threadId:r,projectId:i,title:a,worktreePath:o,branchName:l,isScratch:u}=h,d=I.getState().threadsById[r],f=u??ce(d),p=I.getState().selectedThreadId===r;if(g(null),p&&t(R(f||!i?`/`:`/projects/${i}`)),f){await c(r),z.success(e(`toast.threadDeleted`,{title:a}));return}n?.deleteBranch&&o&&l&&await S.removeWorktree(i,o,{branchName:l,deleteBranch:!0}),await s(r,i),z.success(e(`toast.threadDeleted`,{title:a}))},[h,s,c,e,t]),k=(0,Y.useCallback)(async()=>{if(!_)return;let{projectId:t,newName:n}=_;if(!n.trim()){z.error(`Project name cannot be empty`);return}C(!0);try{await l(t,n.trim()),v(null),z.success(e(`toast.projectRenamed`,{name:n.trim()}))}catch(e){z.error(e.message||`Failed to rename project`)}finally{C(!1)}},[_,l,e]),A=(0,Y.useCallback)(async()=>{if(!y)return;let{projectId:n,name:r}=y;b(null),await u(n),z.success(e(`toast.projectDeleted`,{name:r})),t(R(`/`))},[y,u,e,t]),j=(0,Y.useCallback)(async(e,r)=>{let i=I.getState(),a=i.threadsById[r],o=i.activeThread??(i.selectedThreadId?i.threadsById[i.selectedThreadId]:void 0);a&&E(a,o)&&!await n(e,O(a))||ze(t,a??{id:r,projectId:e,isScratch:!1})},[t,n]),ne=(0,Y.useCallback)((e,t,n)=>{let r=I.getState().threadsById[t];m({threadId:t,projectId:e,title:n,isWorktree:r?.mode===`worktree`&&!!r?.branch&&r?.provider!==`external`})},[]),N=(0,Y.useCallback)((e,t,n)=>{a(t,e,n)},[a]),re=(0,Y.useCallback)((e,t,n)=>{o(t,e,n)},[o]),P=(0,Y.useCallback)((e,t,n)=>{let r=I.getState().threadsById[t],i=r?.mode===`worktree`&&!!r?.branch&&r?.provider!==`external`;g({threadId:t,projectId:e,title:n,isScratch:ce(r),isWorktree:i,worktreePath:i?r?.worktreePath:void 0,branchName:i?r?.branch:void 0})},[]);return{archiveConfirm:p,setArchiveConfirm:m,deleteThreadConfirm:h,setDeleteThreadConfirm:g,renameProjectState:_,setRenameProjectState:v,deleteProjectConfirm:y,setDeleteProjectConfirm:b,actionLoading:x,issuesProjectId:w,setIssuesProjectId:T,handleArchiveConfirm:D,handleDeleteThreadConfirm:te,handleRenameProjectConfirm:k,handleDeleteProjectConfirm:A,handleSelectThread:j,handleArchiveThread:ne,handleArchiveThreadFromList:(0,Y.useCallback)((e,t,n,r)=>{m({threadId:e,projectId:t,title:n,isWorktree:r})},[]),handleRenameThread:N,handlePinThread:re,handleDeleteThread:P,handleDeleteThreadFromList:(0,Y.useCallback)((e,t,n,r)=>{let i=I.getState().threadsById[e];g({threadId:e,projectId:t,title:n,isScratch:ce(i),isWorktree:r,worktreePath:r?i?.worktreePath:void 0,branchName:r?i?.branch:void 0})},[]),handleRenameProject:(0,Y.useCallback)((e,t)=>{v({projectId:e,currentName:t,newName:t})},[]),handleDeleteProject:(0,Y.useCallback)((e,t)=>{b({projectId:e,name:t})},[]),handleCloseProject:(0,Y.useCallback)(async(n,r)=>{let i=M.getState().selectedProjectId===n;await d(n),z.success(e(`toast.projectClosed`,{name:r})),i&&t(R(`/`))},[d,e,t]),handleReopenProject:(0,Y.useCallback)(async(t,n)=>{await f(t),z.success(e(`toast.projectReopened`,{name:n}))},[f,e]),handleShowIssues:(0,Y.useCallback)(e=>{T(e)},[]),branchSwitchDialog:r}}var $=new Map,Xe=new Set;function Ze(e){Qe(e);var t=$.get(e);if(t)return t;var n={timeOfEngagementStart:Date.now()};return $.set(e,n),n}function Qe(e){Xe.add(e)}function $e(e){Xe.clear(),e(),$.forEach(function(e,t){Xe.has(t)||$.delete(t)}),Xe.clear()}function et(){$.clear()}var tt=new Map;function nt(e){var t=tt.get(e);if(t)return t;var n=rt(e);return tt.set(e,n),n}function rt(e){var t={type:`idle`},n=[];function r(e){if(t.type===`running`){var i=e-t.timeLastFrameFinished,a=t.latestArgs,o=Me({x:a.location.current.input.clientX,y:a.location.current.input.clientY});$e(function(){n.forEach(function(e){return e({underUsersPointer:o,latestArgs:a,timeSinceLastFrame:i})})}),t.timeLastFrameFinished=e,t.frameId=requestAnimationFrame(r)}}function i(){t.type!==`idle`&&(cancelAnimationFrame(t.frameId),et(),t={type:`idle`})}function a(e){t.type===`idle`&&(t={type:`initializing`,latestArgs:e,frameId:requestAnimationFrame(function(e){t.type===`initializing`&&(t={type:`running`,timeLastFrameFinished:e,latestArgs:t.latestArgs,frameId:requestAnimationFrame(r)})})})}function o(e){if(t.type===`idle`){a(e);return}t.latestArgs=e}return e({onDragStart:a,onDropTargetChange:o,onDrag:o,onDrop:i}),{onFrame:function(e){n.push(e)}}}var it=`data-auto-scrollable`,at=`[${it}="true"]`;function ot(e){return e.setAttribute(it,`true`),function(){return e.removeAttribute(it)}}function st(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ct(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?st(Object(n),!0).forEach(function(t){q(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):st(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var lt={startHitboxAtPercentageRemainingOfElement:{top:.25,right:.25,bottom:.25,left:.25},maxScrollAtPercentageRemainingOfHitbox:{top:.5,right:.5,bottom:.5,left:.5},timeDampeningDurationMs:400,maxMainAxisHitboxSize:180},ut={standard:900,fast:1500};function dt(e){return ct(ct({},lt),{},{maxPixelScrollPerSecond:ut[e?.maxScrollSpeed??`standard`]})}var ft={top:function(e){return e.scrollTop>0},right:function(e){return Math.ceil(e.scrollLeft)+e.clientWidth<e.scrollWidth},bottom:function(e){return Math.ceil(e.scrollTop)+e.clientHeight<e.scrollHeight},left:function(e){return e.scrollLeft>0}},pt=[`top`,`right`,`bottom`,`left`],mt={top:`vertical`,right:`horizontal`,bottom:`vertical`,left:`horizontal`},ht={start:`top`,end:`bottom`,point:`y`,size:`height`},gt={start:`left`,end:`right`,point:`x`,size:`width`},_t={vertical:{mainAxis:ht,crossAxis:gt},horizontal:{mainAxis:gt,crossAxis:ht}},vt={top:`start`,right:`end`,bottom:`end`,left:`start`};function yt(e){var t=e.edge,n=e.axis;return function(e){var r=e.clientRect,i=e.config,a=_t[n],o=a.mainAxis,s=a.crossAxis,c=vt[t],l=Math.min(i.startHitboxAtPercentageRemainingOfElement[t]*r[o.size],i.maxMainAxisHitboxSize);return DOMRect.fromRect(q(q(q(q({},o.point,c===`start`?r[o.point]:r[o.point]+r[o.size]-l),s.point,r[s.point]),o.size,l),s.size,r[s.size]))}}var bt={top:yt({axis:`vertical`,edge:`top`}),right:yt({axis:`horizontal`,edge:`right`}),bottom:yt({axis:`vertical`,edge:`bottom`}),left:yt({axis:`horizontal`,edge:`left`})};function xt(e){var t=e.startOfRange,n=e.endOfRange,r=e.value;if(!(t<n)||r<t)return 0;if(r>n)return 1;var i=n-t;return(r-t)/i}function St(e){var t=e.timeSinceLastFrame,n=e.config,r=n.maxPixelScrollPerSecond/1e3,i=Math.ceil(r*t),a=n.maxPixelScrollPerSecond/60;return Math.min(i,a)}function Ct(e){var t=e.client,n=e.axis,r=e.edge,i=e.hitbox,a=e.config,o=_t[n].mainAxis,s=vt[r],c=i[o.size]*a.maxScrollAtPercentageRemainingOfHitbox[r];return s===`end`?xt({startOfRange:i[o.start],endOfRange:i[o.end]-c,value:t[o.point]}):1-xt({startOfRange:i[o.start]+c,endOfRange:i[o.end],value:t[o.point]})}function wt(e){var t=e.client,n=e.timeSinceLastFrame,r=e.engagement,i=e.axis,a=e.hitbox,o=e.edge,s=e.isDistanceDampeningEnabled,c=e.config,l=St({timeSinceLastFrame:n,config:c}),u=(s?Ct({client:t,edge:o,hitbox:a,axis:i,config:c}):1)*xt({startOfRange:r.timeOfEngagementStart,endOfRange:r.timeOfEngagementStart+c.timeDampeningDurationMs,value:Date.now()}),d=Math.max(l*u,1);return vt[o]===`end`?d:-1*d}function Tt(e,t){return t===`all`||e===t}function Et(e){var t=e.client,n=e.clientRect;return t.x>=n.x&&t.x<=n.x+n.width&&t.y>=n.y&&t.y<=n.y+n.height}function Dt(e){return e.getBoundingClientRect()}function Ot(e){var t=e.element,n=e.input,r=e.timeSinceLastFrame,i=e.engagement,a=e.config,o=e.allowedAxis,s=e.getRect,c=s===void 0?Dt:s,l={x:n.clientX,y:n.clientY},u=c(t),d=pt.reduce(function(e,n){var r=bt[n]({clientRect:u,config:a}),i=mt[n];return!Tt(i,o)||!Et({client:l,clientRect:r})||!ft[n](t)||e.set(n,{edge:n,hitbox:r}),e},new Map);return{left:function(){var e=`horizontal`,t=d.get(`left`);if(t)return wt({client:l,edge:t.edge,hitbox:t.hitbox,axis:e,timeSinceLastFrame:r,engagement:i,isDistanceDampeningEnabled:!0,config:a});var n=d.get(`right`);return n?wt({client:l,edge:n.edge,hitbox:n.hitbox,axis:e,timeSinceLastFrame:r,engagement:i,isDistanceDampeningEnabled:!0,config:a}):0}(),top:function(){var e=`vertical`,t=d.get(`bottom`);if(t)return wt({client:l,edge:t.edge,hitbox:t.hitbox,axis:e,timeSinceLastFrame:r,engagement:i,isDistanceDampeningEnabled:!0,config:a});var n=d.get(`top`);return n?wt({client:l,edge:n.edge,hitbox:n.hitbox,axis:e,timeSinceLastFrame:r,engagement:i,isDistanceDampeningEnabled:!0,config:a}):0}()}}function kt(e,t){var n=typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(!n){if(Array.isArray(e)||(n=At(e))||t&&e&&typeof e.length==`number`){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw TypeError(`Invalid attempt to iterate non-iterable instance.
1
+ import{a as e}from"./rolldown-runtime-Cyuzqnbw.js";import{Bn as t,D as n,Dr as r,Lt as i,Ot as a,Pr as o,Q as s,_t as c,b as l,bn as u,lr as d,ot as f,pn as p,sr as m,un as h,w as g,y as _,zn as v,zr as y}from"./icons-sqwAEN28.js";import{o as b}from"./markdown-DBtwZWLP.js";import{t as ee}from"./useTranslation-DAPPK3Hy.js";import{G as x,P as S,W as C,f as w,lt as T,pt as E,q as D,ut as O}from"./index-BzzHdwZo.js";import{n as te,t as k}from"./button-DL_y-bQm.js";import{$r as A,Ar as j,Dr as M,Gn as ne,Gr as N,Ir as re,Jn as P,Jr as F,Kn as ie,Lt as I,N as ae,Nn as oe,Nr as se,P as L,Rr as ce,Rt as R,Ur as z,Wn as le,Xr as ue,Yr as de,Zn as fe,_r as pe,a as me,at as he,cr as ge,dr as B,fr as V,gr as H,hr as U,in as _e,lr as W,m as ve,mr as G,pr as ye,q as be,qr as xe,rn as Se,sr as K,tr as Ce,ur as we,yr as Te}from"./items-sHyHEl8t.js";import{t as Ee}from"./input-CCAE3mfQ.js";import{S as De,b as Oe,m as ke}from"./StashTab-C9d1yxU6.js";import{t as Ae}from"./loading-state-B7VFf2px.js";import{o as je}from"./combine-CDqDdXyw.js";import{d as q,l as Me,o as Ne,r as Pe,u as J}from"./adapter-g71mvnZo.js";import{t as Fe}from"./use-stable-navigate-Dub9C1RE.js";import{t as Ie}from"./ThreadStatusPin-A5CcOVmG.js";import{t as Le}from"./ThreadPowerline-DHjTbyCI.js";import{t as Re}from"./use-branch-switch-3Q6NlO39.js";import{t as ze}from"./go-to-thread-Cvaa8Olw.js";var Y=e(y(),1),X=e(b(),1);function Z({projectId:e,open:t,onOpenChange:n,onCreateThread:r}){let{t:o}=ee(),[c,l]=(0,Y.useState)([]),[u,f]=(0,Y.useState)(`open`),[h,g]=(0,Y.useState)(!1),[_,y]=(0,Y.useState)(null),[b,w]=(0,Y.useState)(1),[T,E]=(0,Y.useState)(!1),[O,te]=(0,Y.useState)(null),j=(0,Y.useCallback)(async(t,n)=>{g(!0),y(null),(await S.githubIssuesEnriched(e,{state:u,page:t,per_page:30})).match(e=>{l(t=>n?[...t,...e.issues]:e.issues),E(e.hasMore),te({owner:e.owner,repo:e.repo})},e=>{y(e.message)}),g(!1)},[e,u]);(0,Y.useEffect)(()=>{t&&(w(1),l([]),j(1,!1))},[t,u,j]);let M=()=>{let e=b+1;w(e),j(e,!0)},ne=(0,Y.useCallback)(e=>{!r||!O||r({prompt:ke(e,O),branchName:e.suggestedBranchName,title:e.title})},[r,O]);function re(e){let t=Math.floor((Date.now()-new Date(e).getTime())/1e3);if(t<60)return`${t}s`;let n=Math.floor(t/60);if(n<60)return`${n}m`;let r=Math.floor(n/60);if(r<24)return`${r}h`;let i=Math.floor(r/24);return i<30?`${i}d`:`${Math.floor(i/30)}mo`}return(0,X.jsx)(N,{open:t,onOpenChange:n,children:(0,X.jsxs)(xe,{className:`flex max-h-[80vh] max-w-lg flex-col`,children:[(0,X.jsxs)(ue,{children:[(0,X.jsxs)(A,{className:`flex items-center gap-2`,children:[(0,X.jsx)(m,{className:`icon-base`}),o(`issues.title`)]}),(0,X.jsx)(F,{className:`sr-only`,children:o(`issues.title`)})]}),(0,X.jsxs)(`div`,{className:`flex gap-1`,children:[(0,X.jsxs)(k,{variant:u===`open`?`default`:`ghost`,size:`sm`,onClick:()=>f(`open`),className:`h-7 text-xs`,"data-testid":`issues-filter-open`,children:[(0,X.jsx)(m,{className:`icon-xs mr-1 text-green-500`}),o(`issues.open`)]}),(0,X.jsxs)(k,{variant:u===`closed`?`default`:`ghost`,size:`sm`,onClick:()=>f(`closed`),className:`h-7 text-xs`,"data-testid":`issues-filter-closed`,children:[(0,X.jsx)(d,{className:`icon-xs mr-1 text-purple-500`}),o(`issues.closed`)]})]}),(0,X.jsx)(_e,{className:`-mx-6 min-h-0 flex-1 px-6`,children:h&&c.length===0?(0,X.jsx)(Ae,{fill:!1,className:`py-12`,testId:`issues-loading`,label:o(`common.loading`,`Loading…`)}):_?(0,X.jsxs)(`div`,{className:`text-muted-foreground py-12 text-center text-sm`,children:[(0,X.jsx)(`p`,{children:o(`issues.error`)}),(0,X.jsx)(`p`,{className:`mt-1 text-xs`,children:_})]}):c.length===0?(0,X.jsx)(`div`,{className:`text-muted-foreground py-12 text-center text-sm`,children:o(`issues.noIssues`)}):(0,X.jsxs)(`div`,{className:`space-y-1`,children:[c.map(e=>(0,X.jsxs)(`div`,{className:`group hover:bg-accent/50 flex items-start gap-2 rounded-md p-2 transition-colors`,"data-testid":`issue-item-${e.number}`,children:[e.state===`open`?(0,X.jsx)(m,{className:`icon-base mt-0.5 shrink-0 text-green-500`}):(0,X.jsx)(d,{className:`icon-base mt-0.5 shrink-0 text-purple-500`}),(0,X.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,X.jsx)(`div`,{className:`flex items-baseline gap-1.5`,children:(0,X.jsx)(`a`,{href:e.html_url,target:`_blank`,rel:`noopener noreferrer`,className:`hover:text-primary line-clamp-2 text-sm font-medium transition-colors`,children:e.title})}),e.body?(0,X.jsx)(`p`,{className:`text-muted-foreground mt-1 line-clamp-3 text-xs whitespace-pre-wrap`,"data-testid":`issue-body-${e.number}`,children:e.body}):null,(0,X.jsxs)(`div`,{className:`mt-0.5 flex flex-wrap items-center gap-2`,children:[(0,X.jsxs)(`span`,{className:`text-muted-foreground text-xs`,children:[`#`,e.number]}),e.labels.map(e=>(0,X.jsx)(he,{variant:`outline`,className:`h-4 px-1 text-[10px]`,style:{borderColor:`#${e.color}`,color:`#${e.color}`},children:e.name},e.name)),e.linkedBranch&&(0,X.jsxs)(he,{variant:`outline`,className:`h-4 gap-0.5 border-emerald-500/30 px-1 text-[10px] text-emerald-500`,children:[(0,X.jsx)(p,{className:`size-2.5`}),(0,X.jsx)(`span`,{className:`max-w-[100px] truncate`,children:e.linkedBranch})]}),e.linkedPR&&(0,X.jsx)(De,{prNumber:e.linkedPR.number,prState:e.linkedPR.state===`merged`?`MERGED`:e.linkedPR.state===`closed`?`CLOSED`:`OPEN`,prUrl:e.linkedPR.url,size:`xxs`}),(0,X.jsx)(`span`,{className:`text-muted-foreground text-xs`,children:re(e.created_at)}),e.user&&(0,X.jsx)(`span`,{className:`text-muted-foreground text-xs`,children:e.user.login}),e.comments>0&&(0,X.jsxs)(`span`,{className:`text-muted-foreground flex items-center gap-0.5 text-xs`,children:[(0,X.jsx)(a,{className:`icon-xs`}),e.comments]})]})]}),r&&!e.linkedBranch&&(0,X.jsxs)(C,{children:[(0,X.jsx)(D,{asChild:!0,children:(0,X.jsx)(k,{variant:`ghost`,size:`sm`,className:`size-6 shrink-0 p-0 opacity-0 transition-opacity group-hover:opacity-100`,onClick:()=>ne(e),"data-testid":`issue-create-thread-${e.number}`,children:(0,X.jsx)(s,{className:`size-3.5`})})}),(0,X.jsx)(x,{side:`left`,children:(0,X.jsx)(`p`,{children:o(`issues.createThread`)})})]})]},e.number)),T&&(0,X.jsx)(`div`,{className:`flex justify-center py-2`,children:(0,X.jsxs)(k,{variant:`ghost`,size:`sm`,onClick:e=>{e.preventDefault(),M()},disabled:h,className:`text-xs`,"data-testid":`issues-load-more`,children:[h?(0,X.jsx)(i,{className:`icon-xs mr-1 animate-spin`}):null,o(`issues.loadMore`)]})})]})}),O&&(0,X.jsx)(`div`,{className:`flex justify-end border-t pt-2`,children:(0,X.jsxs)(`a`,{href:`https://github.com/${O.owner}/${O.repo}/issues`,target:`_blank`,rel:`noopener noreferrer`,className:`text-muted-foreground hover:text-foreground flex items-center gap-1 text-xs transition-colors`,children:[o(`issues.viewOnGithub`),(0,X.jsx)(v,{className:`icon-xs`})]})})]})})}function Be({open:e,target:t,loading:n,onCancel:r,onConfirm:a}){let{t:o}=ee(),[s,c]=(0,Y.useState)(!1),[l,u]=(0,Y.useState)(null),[f,m]=(0,Y.useState)(!1);(0,Y.useEffect)(()=>{if(!e||!t?.worktreePath||!t?.projectId){u(null),c(!1);return}m(!0),u(null),S.worktreeStatus(t.projectId,t.worktreePath).then(e=>{e.match(e=>u(e),()=>u(null)),m(!1)})},[e,t?.projectId,t?.worktreePath]);let h=(0,Y.useCallback)(()=>{a({deleteBranch:s})},[a,s]),g=t?.title&&t.title.length>80?t.title.slice(0,80)+`…`:t?.title;return(0,X.jsx)(ge,{open:e,onOpenChange:e=>{e||r()},children:(0,X.jsxs)(B,{className:`max-w-sm`,"data-testid":`worktree-delete-dialog`,children:[(0,X.jsxs)(G,{children:[(0,X.jsx)(U,{children:o(`dialog.deleteThread`)}),(0,X.jsx)(V,{className:`break-all`,children:o(`dialog.deleteThreadDesc`,{title:g})})]}),(0,X.jsxs)(`div`,{className:`space-y-2`,children:[f?(0,X.jsxs)(`div`,{className:`text-muted-foreground flex items-center gap-2 py-2 text-xs`,children:[(0,X.jsx)(i,{className:`icon-sm animate-spin`}),o(`dialog.worktreeStatusLoading`)]}):l?(0,X.jsxs)(X.Fragment,{children:[l.unpushedCommitCount>0&&(0,X.jsxs)(H,{variant:`destructive`,className:`border-status-warning/30 bg-status-warning/10 text-status-warning [&>svg]:text-status-warning`,children:[(0,X.jsx)(_,{className:`icon-base`}),(0,X.jsx)(pe,{className:`text-xs`,children:o(`dialog.unpushedCommitsWarning`,{count:l.unpushedCommitCount})})]}),l.dirtyFileCount>0&&(0,X.jsxs)(H,{variant:`destructive`,className:`border-status-warning/30 bg-status-warning/10 text-status-warning [&>svg]:text-status-warning`,children:[(0,X.jsx)(_,{className:`icon-base`}),(0,X.jsx)(pe,{className:`text-xs`,children:o(`dialog.dirtyFilesWarning`,{count:l.dirtyFileCount})})]}),l.unpushedCommitCount===0&&l.dirtyFileCount===0&&(0,X.jsxs)(`div`,{className:`flex items-center gap-2 py-1 text-xs text-emerald-500`,children:[(0,X.jsx)(d,{className:`size-3.5`}),o(`dialog.noUnpushedCommits`)]})]}):(0,X.jsxs)(H,{variant:`destructive`,className:`border-status-warning/30 bg-status-warning/10 text-status-warning [&>svg]:text-status-warning`,children:[(0,X.jsx)(_,{className:`icon-base`}),(0,X.jsx)(pe,{className:`text-xs`,children:o(`dialog.worktreeWarning`)})]}),t?.branchName&&(0,X.jsxs)(`label`,{className:`border-border/50 flex cursor-pointer items-center gap-2 rounded-md border px-3 py-2`,"data-testid":`worktree-delete-branch-checkbox`,children:[(0,X.jsx)(be,{checked:s,onCheckedChange:e=>c(e===!0)}),(0,X.jsx)(p,{className:`text-muted-foreground size-3.5`}),(0,X.jsx)(`span`,{className:`text-xs`,children:o(`dialog.deleteBranchOption`,{branch:t.branchName})})]})]}),(0,X.jsxs)(ye,{children:[(0,X.jsx)(we,{"data-testid":`worktree-delete-cancel`,onClick:r,disabled:n,children:o(`common.cancel`)}),(0,X.jsxs)(W,{"data-testid":`worktree-delete-confirm`,className:T(te({variant:`destructive`})),onClick:h,disabled:n,children:[n&&(0,X.jsxs)(`svg`,{className:`size-4 animate-spin`,viewBox:`0 0 24 24`,fill:`none`,children:[(0,X.jsx)(`circle`,{className:`opacity-25`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,strokeWidth:`4`}),(0,X.jsx)(`path`,{className:`opacity-75`,fill:`currentColor`,d:`M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z`})]}),o(`common.delete`)]})]})]})})}function Ve({archiveConfirm:e,setArchiveConfirm:t,handleArchiveConfirm:n,deleteThreadConfirm:r,setDeleteThreadConfirm:i,handleDeleteThreadConfirm:a,renameProjectState:o,setRenameProjectState:s,handleRenameProjectConfirm:c,deleteProjectConfirm:l,setDeleteProjectConfirm:u,handleDeleteProjectConfirm:d,issuesProjectId:f,setIssuesProjectId:p,actionLoading:m}){let{t:h}=ee();return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(K,{open:!!e,onOpenChange:e=>{e||t(null)},title:h(`dialog.archiveThread`),description:h(`dialog.archiveThreadDesc`,{title:e?.title&&e.title.length>80?e.title.slice(0,80)+`…`:e?.title}),warning:e?.isWorktree?h(`dialog.worktreeWarning`):void 0,cancelLabel:h(`common.cancel`),confirmLabel:h(`sidebar.archive`),variant:`default`,loading:m,onCancel:()=>t(null),onConfirm:n}),r?.isWorktree?(0,X.jsx)(Be,{open:!!r,target:r,loading:m,onCancel:()=>i(null),onConfirm:({deleteBranch:e})=>a({deleteBranch:e})}):(0,X.jsx)(K,{open:!!r,onOpenChange:e=>{e||i(null)},title:h(`dialog.deleteThread`),description:h(`dialog.deleteThreadDesc`,{title:r?.title&&r.title.length>80?r.title.slice(0,80)+`…`:r?.title}),cancelLabel:h(`common.cancel`),confirmLabel:h(`common.delete`),loading:m,onCancel:()=>i(null),onConfirm:()=>a()}),(0,X.jsx)(N,{open:!!o,onOpenChange:e=>{e||s(null)},children:(0,X.jsxs)(xe,{className:`max-w-sm`,children:[(0,X.jsxs)(ue,{children:[(0,X.jsx)(A,{children:h(`dialog.renameProject`)}),(0,X.jsx)(F,{children:h(`dialog.renameProjectDesc`,{name:o?.currentName})})]}),(0,X.jsx)(`div`,{className:`py-2`,children:(0,X.jsx)(Ee,{"data-testid":`rename-project-input`,value:o?.newName||``,onChange:e=>{let t=e.target.value;s(e=>e&&{...e,newName:t})},onKeyDown:e=>{e.key===`Enter`&&c()},placeholder:h(`sidebar.projectName`),autoFocus:!0})}),(0,X.jsxs)(de,{children:[(0,X.jsx)(k,{"data-testid":`rename-project-cancel`,variant:`outline`,size:`sm`,onClick:()=>s(null),children:h(`common.cancel`)}),(0,X.jsx)(k,{"data-testid":`rename-project-confirm`,size:`sm`,onClick:c,loading:m,children:h(`common.save`)})]})]})}),(0,X.jsx)(K,{open:!!l,onOpenChange:e=>{e||u(null)},title:h(`dialog.deleteProject`),description:h(`dialog.deleteProjectDesc`,{name:l?.name}),cancelLabel:h(`common.cancel`),confirmLabel:h(`common.delete`),loading:m,onCancel:()=>u(null),onConfirm:d}),f&&(0,X.jsx)(Z,{projectId:f,open:!!f,onOpenChange:e=>{e||p(null)},onCreateThread:e=>{p(null),Te.getState().startNewThreadFromIssue(f,e)}})]})}function Q(e){let{tabs:t}=L.getState(),{availableShells:n}=w.getState(),r=n.find(t=>t.id===e.shell)?.label??`Terminal`,i=t.filter(t=>t.projectId===e.projectId&&(t.shell??`default`)===e.shell).length;return{id:crypto.randomUUID(),label:e.label??`${r} ${i+1}`,cwd:e.cwd,alive:!0,projectId:e.projectId,type:je?void 0:`pty`,shell:e.shell,createdAt:Date.now(),scratchThreadId:e.scratchThreadId,initialCommand:e.initialCommand}}function He(e){let{addTab:t}=L.getState();t({id:crypto.randomUUID(),label:`job: ${e.job.label||e.job.id.slice(0,8)}`,cwd:e.job.cwd??`~`,alive:e.job.status===`running`,projectId:e.projectId,type:`job-log`,jobId:e.job.id,createdAt:Date.now()})}function Ue({projectId:e,cwd:t,shell:n=`default`}){let{addTab:r}=L.getState();r(Q({projectId:e,cwd:t,shell:n}))}function We({thread:e,shell:t=`default`}){let{addTab:n}=L.getState();if(e.isScratch){n(Q({projectId:ae,cwd:`~`,shell:t,scratchThreadId:e.id}));return}let r=M.getState().projects.find(t=>t.id===e.projectId),i=e.worktreePath??r?.path??`~`;n(Q({projectId:e.projectId,cwd:i,shell:t}))}var Ge=[`id`,`title`,`status`,`pinned`,`mode`,`branch`,`worktreePath`,`createdBy`,`createdAt`,`completedAt`,`archived`,`provider`,`lastAssistantMessage`,`agentTemplateId`];function Ke(e,t){if(e===t)return!0;for(let n of Ge)if(e[n]!==t[n])return!1;return!0}function qe(e,t){return e.isSelected!==t.isSelected||e.onSelect!==t.onSelect||e.onRename!==t.onRename||e.onArchive!==t.onArchive||e.onPin!==t.onPin||e.onDelete!==t.onDelete||e.subtitle!==t.subtitle||e.projectColor!==t.projectColor||e.timeValue!==t.timeValue||e.search!==t.search||e.contentSnippet!==t.contentSnippet||e.metadataBadge!==t.metadataBadge||e.projectPath!==t.projectPath||e.gitStatus!==t.gitStatus||e.href!==t.href?!1:Ke(e.thread,t.thread)}var Je=(0,Y.memo)(function({thread:e,projectPath:a,isSelected:s,onSelect:d,subtitle:m,projectColor:_,timeValue:v,search:y,contentSnippet:b,metadataBadge:w,onRename:E,onArchive:O,onPin:te,onDelete:M,gitStatus:F,href:ae}){let{t:L}=ee(),[z,pe]=(0,Y.useState)(!1),he=(0,Y.useCallback)(e=>pe(e),[]),[ge,B]=(0,Y.useState)(!1),[V,H]=(0,Y.useState)(``),U=me(t=>e.agentTemplateId?t.templates.find(t=>t.id===e.agentTemplateId):void 0),[_e,W]=(0,Y.useState)(!1),[G,ye]=(0,Y.useState)(``),[be,K]=(0,Y.useState)(!1),we=(0,Y.useCallback)(()=>{H(e.title),B(!0)},[e.title]),Te=(0,Y.useCallback)(()=>{let t=V.trim();t&&t!==e.title&&E&&E(t),B(!1)},[V,e.title,E]),ke=(0,Y.useCallback)(async()=>{let t=G.trim().replace(/\s+/g,`-`).replace(/[^a-zA-Z0-9\-_/.]/g,``);if(!t||!e.projectId)return;K(!0);let n=await S.checkout(e.projectId,t,`carry`,!0,e.id);K(!1),n.isErr()?le(n.error):(W(!1),ye(``))},[G,e.projectId,e.id]),Ae=e.status===`running`,je=e.status===`setting_up`,q=Ae||je,Me=v??Se(e.createdAt,L),Ne=ae??R(re(e)),Pe=(0,Y.useRef)(F);F&&(Pe.current=F);let J=F??Pe.current,Fe=!!J&&J.state!==`clean`&&(J.linesAdded>0||J.linesDeleted>0||J.dirtyFileCount>0),Re=!!J?.prNumber,ze=b??e.lastAssistantMessage,Z=!!ze,Be=q&&!Z,Ve=!Z&&!q&&(!e.stage||e.stage===`backlog`),Q=ce(e),He=se(e)&&(!!m||!!e.baseBranch||!!e.branch),Ue=Fe||Re||He||Q||!!w,Ge=Z||Be||Ve;return(0,X.jsxs)(`div`,{className:T(`group/thread w-full flex items-stretch rounded-md min-w-0`,s?`bg-accent text-foreground`:`text-muted-foreground hover:bg-accent/50 hover:text-foreground`),children:[(0,X.jsxs)(`div`,{role:`button`,tabIndex:0,"data-testid":`thread-item-${e.id}`,onPointerEnter:()=>{s||I.getState().prefetchThread(e.id)},onFocus:()=>{s||I.getState().prefetchThread(e.id)},onClick:e=>{if(e.ctrlKey||e.metaKey){e.preventDefault(),e.stopPropagation(),window.open(Ne,`_blank`,`noopener,noreferrer,popup=yes,width=1280,height=900`);return}d()},onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),d())},onAuxClick:e=>{e.button===1&&(e.preventDefault(),e.stopPropagation(),window.open(Ne,`_blank`,`noopener,noreferrer,popup=yes,width=1280,height=900`))},className:`focus-visible:ring-ring flex min-w-0 flex-1 cursor-pointer flex-col gap-1 overflow-hidden py-1.5 pl-2 text-left focus:outline-hidden focus-visible:ring-1`,children:[(0,X.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5`,children:[(0,X.jsx)(Ie,{thread:e,onPin:te?()=>te():void 0,hoverGroup:`thread`,showStatusTooltip:!0}),(0,X.jsx)(ve,{title:e.title,search:y,className:`text-sm leading-tight`,badgeTestId:`thread-item-attachments-${e.id}`}),e.createdBy&&e.createdBy!==`user`&&(0,X.jsxs)(C,{children:[(0,X.jsx)(D,{asChild:!0,children:(0,X.jsx)(r,{className:`icon-xs text-muted-foreground shrink-0`})}),(0,X.jsx)(x,{side:`top`,className:`text-xs`,children:L(`thread.createdBy`,{creator:e.createdBy})})]}),e.runtime===`remote`&&(0,X.jsx)(`span`,{className:`shrink-0 rounded bg-violet-500/15 px-1 py-0.5 text-[10px] leading-none font-medium text-violet-500`,children:`Remote`}),U&&(0,X.jsxs)(C,{children:[(0,X.jsx)(D,{asChild:!0,children:(0,X.jsxs)(`span`,{className:`flex shrink-0 items-center gap-0.5 rounded px-1 py-0.5 text-[10px] leading-none font-medium`,style:{backgroundColor:U.color?`${U.color}22`:`hsl(var(--muted))`,color:U.color??`hsl(var(--muted-foreground))`},"data-testid":`thread-template-badge-${e.id}`,children:[U.color&&(0,X.jsx)(`span`,{className:`inline-block size-1.5 rounded-full`,style:{backgroundColor:U.color}}),U.name]})}),(0,X.jsx)(x,{side:`top`,className:`text-xs`,children:U.description||U.name})]})]}),(Ue||Ge)&&(0,X.jsxs)(`div`,{className:`flex min-h-[22px] min-w-0 items-center gap-1.5 pl-5`,children:[He&&(0,X.jsx)(Le,{thread:e,projectName:m,projectColor:_,projectTooltip:a,gitStatus:J,diffStatsSize:`xs`,"data-testid":`thread-powerline-${e.id}`}),Q&&(0,X.jsxs)(C,{children:[(0,X.jsx)(D,{asChild:!0,children:(0,X.jsx)(`span`,{"data-testid":`thread-scratch-badge-${e.id}`,className:`bg-muted/60 text-muted-foreground flex shrink-0 items-center rounded p-1 leading-none`,children:(0,X.jsx)(c,{className:`icon-xs`})})}),(0,X.jsx)(x,{side:`top`,className:`text-xs`,children:L(`thread.scratchTooltip`,{defaultValue:`Scratch thread — no project, no git`})})]}),Re&&J&&(0,X.jsx)(De,{prNumber:J.prNumber,prState:J.prState??`OPEN`,prUrl:J.prUrl,size:`compact`,"data-testid":`thread-pr-badge-${e.id}`}),w,Z&&b&&y?(0,X.jsx)(oe,{text:ze,query:y,className:`text-muted-foreground/50 min-w-0 flex-1 truncate text-xs`}):Z?(0,X.jsx)(`span`,{className:`text-muted-foreground/50 min-w-0 flex-1 truncate text-xs`,children:ze}):Be?(0,X.jsx)(`span`,{className:`text-muted-foreground/50 min-w-0 flex-1 truncate text-xs italic`,children:L(`thread.launching`,`Launching...`)}):Ve?(0,X.jsx)(`span`,{className:`text-muted-foreground/50 min-w-0 flex-1 truncate text-xs italic`,children:L(`thread.readyToLaunch`,`Ready to Launch`)}):null]})]}),(0,X.jsx)(`div`,{className:`flex shrink-0 items-center gap-1.5 py-1 pr-1.5 pl-2`,children:(0,X.jsx)(Oe,{time:Me,timeClassName:`text-muted-foreground h-4 text-xs leading-4`,open:z,group:`thread`,className:`min-w-10`,children:(0,X.jsxs)(ne,{onOpenChange:he,children:[(0,X.jsx)(Ce,{asChild:!0,children:(0,X.jsx)(k,{variant:`ghost`,size:`icon-xs`,tabIndex:-1,"data-testid":`thread-item-more-${e.id}`,onClick:e=>e.stopPropagation(),className:`text-muted-foreground hover:text-foreground`,children:(0,X.jsx)(t,{className:`icon-sm`})})}),(0,X.jsxs)(ie,{align:`start`,side:`bottom`,children:[(0,X.jsxs)(P,{onClick:async t=>{t.stopPropagation();let n=await S.openDirectory({threadId:e.id});n.isErr()&&le(n.error)},children:[(0,X.jsx)(u,{className:`icon-sm`}),L(`sidebar.openDirectory`)]}),(0,X.jsxs)(P,{onClick:t=>{t.stopPropagation(),We({thread:e})},children:[(0,X.jsx)(g,{className:`icon-sm`}),L(`sidebar.openTerminal`)]}),j(e)&&!q&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(fe,{}),(0,X.jsxs)(P,{"data-testid":`thread-convert-worktree-${e.id}`,onClick:async t=>{t.stopPropagation();let n=await S.convertToWorktree(e.id);n.isErr()&&le(n.error)},children:[(0,X.jsx)(h,{className:`icon-sm`}),L(`dialog.convertToWorktreeTitle`)]}),(0,X.jsxs)(P,{"data-testid":`thread-create-branch-${e.id}`,onClick:e=>{e.stopPropagation(),W(!0)},children:[(0,X.jsx)(p,{className:`icon-sm`}),L(`dialog.createBranchTitle`)]}),(0,X.jsx)(fe,{})]}),E&&(0,X.jsxs)(P,{"data-testid":`thread-rename-${e.id}`,onClick:e=>{e.stopPropagation(),we()},children:[(0,X.jsx)(f,{className:`icon-sm`}),L(`sidebar.rename`)]}),Ae&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(fe,{}),(0,X.jsxs)(P,{onClick:async t=>{t.stopPropagation();let n=await S.stopThread(e.id);n.isErr()&&console.error(`Failed to stop thread:`,n.error)},className:`text-status-error focus:text-status-error`,children:[(0,X.jsx)(n,{className:`icon-sm`}),L(`common.stop`)]})]}),O&&!q&&(0,X.jsxs)(P,{onClick:e=>{e.stopPropagation(),O()},children:[(0,X.jsx)(o,{className:`icon-sm`}),L(`sidebar.archive`)]}),M&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(fe,{}),(0,X.jsxs)(P,{"data-testid":`thread-delete-${e.id}`,onClick:e=>{e.stopPropagation(),M()},className:`text-status-error focus:text-status-error`,children:[(0,X.jsx)(l,{className:`icon-sm`}),L(`common.delete`)]})]})]})]})})}),(0,X.jsx)(N,{open:ge,onOpenChange:B,children:(0,X.jsxs)(xe,{className:`sm:max-w-md`,"data-testid":`thread-rename-dialog-${e.id}`,children:[(0,X.jsx)(ue,{children:(0,X.jsx)(A,{children:L(`sidebar.rename`)})}),(0,X.jsx)(Ee,{"data-testid":`thread-rename-input-${e.id}`,value:V,onChange:e=>H(e.target.value),onKeyDown:e=>{e.key===`Enter`&&Te()},autoFocus:!0}),(0,X.jsxs)(de,{children:[(0,X.jsx)(k,{variant:`ghost`,onClick:()=>B(!1),"data-testid":`thread-rename-cancel`,children:L(`common.cancel`)}),(0,X.jsx)(k,{onClick:Te,disabled:!V.trim()||V.trim()===e.title,"data-testid":`thread-rename-confirm`,children:L(`common.save`)})]})]})}),(0,X.jsx)(N,{open:_e,onOpenChange:W,children:(0,X.jsxs)(xe,{className:`sm:max-w-md`,"data-testid":`thread-create-branch-dialog-${e.id}`,children:[(0,X.jsx)(ue,{children:(0,X.jsx)(A,{children:L(`dialog.createBranchTitle`)})}),(0,X.jsx)(Ee,{"data-testid":`thread-create-branch-input-${e.id}`,placeholder:L(`dialog.createBranchPlaceholder`),value:G,onChange:e=>ye(e.target.value),onKeyDown:e=>{e.key===`Enter`&&G.trim()&&ke()},autoFocus:!0}),(0,X.jsxs)(de,{children:[(0,X.jsx)(k,{variant:`ghost`,onClick:()=>W(!1),"data-testid":`thread-create-branch-cancel-${e.id}`,children:L(`common.cancel`)}),(0,X.jsx)(k,{onClick:ke,disabled:!G.trim()||be,"data-testid":`thread-create-branch-confirm-${e.id}`,children:be?(0,X.jsx)(i,{className:`icon-sm animate-spin`}):L(`common.create`,`Create`)})]})]})})]})},qe);function Ye(){let{t:e}=ee(),t=Fe(),{ensureBranch:n,branchSwitchDialog:r}=Re(),i=I(e=>e.archiveThread),a=I(e=>e.renameThread),o=I(e=>e.pinThread),s=I(e=>e.deleteThread),c=I(e=>e.deleteScratchThread),l=M(e=>e.renameProject),u=M(e=>e.deleteProject),d=M(e=>e.closeProject),f=M(e=>e.reopenProject),[p,m]=(0,Y.useState)(null),[h,g]=(0,Y.useState)(null),[_,v]=(0,Y.useState)(null),[y,b]=(0,Y.useState)(null),[x,C]=(0,Y.useState)(!1),[w,T]=(0,Y.useState)(null),D=(0,Y.useCallback)(async()=>{if(!p)return;C(!0);let{threadId:n,projectId:r}=p,a=I.getState().selectedThreadId===n;await i(n,r),C(!1),m(null),z.success(e(`toast.threadArchived`)),a&&t(R(`/projects/${r}`))},[p,i,e,t]),te=(0,Y.useCallback)(async n=>{if(!h)return;let{threadId:r,projectId:i,title:a,worktreePath:o,branchName:l,isScratch:u}=h,d=I.getState().threadsById[r],f=u??ce(d),p=I.getState().selectedThreadId===r;if(g(null),p&&t(R(f||!i?`/`:`/projects/${i}`)),f){await c(r),z.success(e(`toast.threadDeleted`,{title:a}));return}n?.deleteBranch&&o&&l&&await S.removeWorktree(i,o,{branchName:l,deleteBranch:!0}),await s(r,i),z.success(e(`toast.threadDeleted`,{title:a}))},[h,s,c,e,t]),k=(0,Y.useCallback)(async()=>{if(!_)return;let{projectId:t,newName:n}=_;if(!n.trim()){z.error(`Project name cannot be empty`);return}C(!0);try{await l(t,n.trim()),v(null),z.success(e(`toast.projectRenamed`,{name:n.trim()}))}catch(e){z.error(e.message||`Failed to rename project`)}finally{C(!1)}},[_,l,e]),A=(0,Y.useCallback)(async()=>{if(!y)return;let{projectId:n,name:r}=y;b(null),await u(n),z.success(e(`toast.projectDeleted`,{name:r})),t(R(`/`))},[y,u,e,t]),j=(0,Y.useCallback)(async(e,r)=>{let i=I.getState(),a=i.threadsById[r],o=i.activeThread??(i.selectedThreadId?i.threadsById[i.selectedThreadId]:void 0);a&&E(a,o)&&!await n(e,O(a))||ze(t,a??{id:r,projectId:e,isScratch:!1})},[t,n]),ne=(0,Y.useCallback)((e,t,n)=>{let r=I.getState().threadsById[t];m({threadId:t,projectId:e,title:n,isWorktree:r?.mode===`worktree`&&!!r?.branch&&r?.provider!==`external`})},[]),N=(0,Y.useCallback)((e,t,n)=>{a(t,e,n)},[a]),re=(0,Y.useCallback)((e,t,n)=>{o(t,e,n)},[o]),P=(0,Y.useCallback)((e,t,n)=>{let r=I.getState().threadsById[t],i=r?.mode===`worktree`&&!!r?.branch&&r?.provider!==`external`;g({threadId:t,projectId:e,title:n,isScratch:ce(r),isWorktree:i,worktreePath:i?r?.worktreePath:void 0,branchName:i?r?.branch:void 0})},[]);return{archiveConfirm:p,setArchiveConfirm:m,deleteThreadConfirm:h,setDeleteThreadConfirm:g,renameProjectState:_,setRenameProjectState:v,deleteProjectConfirm:y,setDeleteProjectConfirm:b,actionLoading:x,issuesProjectId:w,setIssuesProjectId:T,handleArchiveConfirm:D,handleDeleteThreadConfirm:te,handleRenameProjectConfirm:k,handleDeleteProjectConfirm:A,handleSelectThread:j,handleArchiveThread:ne,handleArchiveThreadFromList:(0,Y.useCallback)((e,t,n,r)=>{m({threadId:e,projectId:t,title:n,isWorktree:r})},[]),handleRenameThread:N,handlePinThread:re,handleDeleteThread:P,handleDeleteThreadFromList:(0,Y.useCallback)((e,t,n,r)=>{let i=I.getState().threadsById[e];g({threadId:e,projectId:t,title:n,isScratch:ce(i),isWorktree:r,worktreePath:r?i?.worktreePath:void 0,branchName:r?i?.branch:void 0})},[]),handleRenameProject:(0,Y.useCallback)((e,t)=>{v({projectId:e,currentName:t,newName:t})},[]),handleDeleteProject:(0,Y.useCallback)((e,t)=>{b({projectId:e,name:t})},[]),handleCloseProject:(0,Y.useCallback)(async(n,r)=>{let i=M.getState().selectedProjectId===n;await d(n),z.success(e(`toast.projectClosed`,{name:r})),i&&t(R(`/`))},[d,e,t]),handleReopenProject:(0,Y.useCallback)(async(t,n)=>{await f(t),z.success(e(`toast.projectReopened`,{name:n}))},[f,e]),handleShowIssues:(0,Y.useCallback)(e=>{T(e)},[]),branchSwitchDialog:r}}var $=new Map,Xe=new Set;function Ze(e){Qe(e);var t=$.get(e);if(t)return t;var n={timeOfEngagementStart:Date.now()};return $.set(e,n),n}function Qe(e){Xe.add(e)}function $e(e){Xe.clear(),e(),$.forEach(function(e,t){Xe.has(t)||$.delete(t)}),Xe.clear()}function et(){$.clear()}var tt=new Map;function nt(e){var t=tt.get(e);if(t)return t;var n=rt(e);return tt.set(e,n),n}function rt(e){var t={type:`idle`},n=[];function r(e){if(t.type===`running`){var i=e-t.timeLastFrameFinished,a=t.latestArgs,o=Me({x:a.location.current.input.clientX,y:a.location.current.input.clientY});$e(function(){n.forEach(function(e){return e({underUsersPointer:o,latestArgs:a,timeSinceLastFrame:i})})}),t.timeLastFrameFinished=e,t.frameId=requestAnimationFrame(r)}}function i(){t.type!==`idle`&&(cancelAnimationFrame(t.frameId),et(),t={type:`idle`})}function a(e){t.type===`idle`&&(t={type:`initializing`,latestArgs:e,frameId:requestAnimationFrame(function(e){t.type===`initializing`&&(t={type:`running`,timeLastFrameFinished:e,latestArgs:t.latestArgs,frameId:requestAnimationFrame(r)})})})}function o(e){if(t.type===`idle`){a(e);return}t.latestArgs=e}return e({onDragStart:a,onDropTargetChange:o,onDrag:o,onDrop:i}),{onFrame:function(e){n.push(e)}}}var it=`data-auto-scrollable`,at=`[${it}="true"]`;function ot(e){return e.setAttribute(it,`true`),function(){return e.removeAttribute(it)}}function st(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ct(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?st(Object(n),!0).forEach(function(t){q(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):st(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var lt={startHitboxAtPercentageRemainingOfElement:{top:.25,right:.25,bottom:.25,left:.25},maxScrollAtPercentageRemainingOfHitbox:{top:.5,right:.5,bottom:.5,left:.5},timeDampeningDurationMs:400,maxMainAxisHitboxSize:180},ut={standard:900,fast:1500};function dt(e){return ct(ct({},lt),{},{maxPixelScrollPerSecond:ut[e?.maxScrollSpeed??`standard`]})}var ft={top:function(e){return e.scrollTop>0},right:function(e){return Math.ceil(e.scrollLeft)+e.clientWidth<e.scrollWidth},bottom:function(e){return Math.ceil(e.scrollTop)+e.clientHeight<e.scrollHeight},left:function(e){return e.scrollLeft>0}},pt=[`top`,`right`,`bottom`,`left`],mt={top:`vertical`,right:`horizontal`,bottom:`vertical`,left:`horizontal`},ht={start:`top`,end:`bottom`,point:`y`,size:`height`},gt={start:`left`,end:`right`,point:`x`,size:`width`},_t={vertical:{mainAxis:ht,crossAxis:gt},horizontal:{mainAxis:gt,crossAxis:ht}},vt={top:`start`,right:`end`,bottom:`end`,left:`start`};function yt(e){var t=e.edge,n=e.axis;return function(e){var r=e.clientRect,i=e.config,a=_t[n],o=a.mainAxis,s=a.crossAxis,c=vt[t],l=Math.min(i.startHitboxAtPercentageRemainingOfElement[t]*r[o.size],i.maxMainAxisHitboxSize);return DOMRect.fromRect(q(q(q(q({},o.point,c===`start`?r[o.point]:r[o.point]+r[o.size]-l),s.point,r[s.point]),o.size,l),s.size,r[s.size]))}}var bt={top:yt({axis:`vertical`,edge:`top`}),right:yt({axis:`horizontal`,edge:`right`}),bottom:yt({axis:`vertical`,edge:`bottom`}),left:yt({axis:`horizontal`,edge:`left`})};function xt(e){var t=e.startOfRange,n=e.endOfRange,r=e.value;if(!(t<n)||r<t)return 0;if(r>n)return 1;var i=n-t;return(r-t)/i}function St(e){var t=e.timeSinceLastFrame,n=e.config,r=n.maxPixelScrollPerSecond/1e3,i=Math.ceil(r*t),a=n.maxPixelScrollPerSecond/60;return Math.min(i,a)}function Ct(e){var t=e.client,n=e.axis,r=e.edge,i=e.hitbox,a=e.config,o=_t[n].mainAxis,s=vt[r],c=i[o.size]*a.maxScrollAtPercentageRemainingOfHitbox[r];return s===`end`?xt({startOfRange:i[o.start],endOfRange:i[o.end]-c,value:t[o.point]}):1-xt({startOfRange:i[o.start]+c,endOfRange:i[o.end],value:t[o.point]})}function wt(e){var t=e.client,n=e.timeSinceLastFrame,r=e.engagement,i=e.axis,a=e.hitbox,o=e.edge,s=e.isDistanceDampeningEnabled,c=e.config,l=St({timeSinceLastFrame:n,config:c}),u=(s?Ct({client:t,edge:o,hitbox:a,axis:i,config:c}):1)*xt({startOfRange:r.timeOfEngagementStart,endOfRange:r.timeOfEngagementStart+c.timeDampeningDurationMs,value:Date.now()}),d=Math.max(l*u,1);return vt[o]===`end`?d:-1*d}function Tt(e,t){return t===`all`||e===t}function Et(e){var t=e.client,n=e.clientRect;return t.x>=n.x&&t.x<=n.x+n.width&&t.y>=n.y&&t.y<=n.y+n.height}function Dt(e){return e.getBoundingClientRect()}function Ot(e){var t=e.element,n=e.input,r=e.timeSinceLastFrame,i=e.engagement,a=e.config,o=e.allowedAxis,s=e.getRect,c=s===void 0?Dt:s,l={x:n.clientX,y:n.clientY},u=c(t),d=pt.reduce(function(e,n){var r=bt[n]({clientRect:u,config:a}),i=mt[n];return!Tt(i,o)||!Et({client:l,clientRect:r})||!ft[n](t)||e.set(n,{edge:n,hitbox:r}),e},new Map);return{left:function(){var e=`horizontal`,t=d.get(`left`);if(t)return wt({client:l,edge:t.edge,hitbox:t.hitbox,axis:e,timeSinceLastFrame:r,engagement:i,isDistanceDampeningEnabled:!0,config:a});var n=d.get(`right`);return n?wt({client:l,edge:n.edge,hitbox:n.hitbox,axis:e,timeSinceLastFrame:r,engagement:i,isDistanceDampeningEnabled:!0,config:a}):0}(),top:function(){var e=`vertical`,t=d.get(`bottom`);if(t)return wt({client:l,edge:t.edge,hitbox:t.hitbox,axis:e,timeSinceLastFrame:r,engagement:i,isDistanceDampeningEnabled:!0,config:a});var n=d.get(`top`);return n?wt({client:l,edge:n.edge,hitbox:n.hitbox,axis:e,timeSinceLastFrame:r,engagement:i,isDistanceDampeningEnabled:!0,config:a}):0}()}}function kt(e,t){var n=typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(!n){if(Array.isArray(e)||(n=At(e))||t&&e&&typeof e.length==`number`){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw TypeError(`Invalid attempt to iterate non-iterable instance.
2
2
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||n.return==null||n.return()}finally{if(s)throw a}}}}function At(e,t){if(e){if(typeof e==`string`)return jt(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?jt(e,t):void 0}}function jt(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Mt(e){return!!(e.top||e.left)}function Nt(e){var t=e.target,n=e.input,r=e.source,i=e.findEntry,a=e.timeSinceLastFrame,o=e.available,s=o===void 0?{top:!0,left:!0}:o;if(!Mt(s)||!t)return s;var c=t.closest(at);if(!c)return s;var l=i(c);if(!l)return s;function u(){return Nt({target:c?.parentElement??null,findEntry:i,source:r,timeSinceLastFrame:a,input:n,available:s})}var d={input:n,source:r,element:c};if(l.canScroll&&!l.canScroll(d))return u();var f=Ze(c),p=dt(l.getConfiguration?.call(l,d)),m=Ot({element:c,engagement:f,input:n,timeSinceLastFrame:a,allowedAxis:l.getAllowedAxis?.call(l,d)??`all`,config:p}),h={top:0,left:0};return s.top&&m.top!==0&&(h.top=m.top,s.top=!1),s.left&&m.left!==0&&(h.left=m.left,s.left=!1),(h.top!==0||h.left!==0)&&c.scrollBy(h),u()}function Pt(e){var t=e.input,n=e.timeSinceLastFrame,r=e.available,i=e.source,a=e.entries,o=document.documentElement,s={input:t,source:i,element:o},c=kt(a),l;try{for(c.s();!(l=c.n()).done;){var u=l.value;if(!(u.canScroll&&!u.canScroll(s))){var d=Ot({element:o,engagement:Ze(o),input:t,config:dt(u.getConfiguration?.call(u,s)),allowedAxis:u.getAllowedAxis?.call(u,s)??`all`,getRect:function(e){return DOMRect.fromRect({y:0,x:0,width:e.clientWidth,height:e.clientHeight})},timeSinceLastFrame:n}),f={top:r.top?d.top:0,left:r.left?d.left:0};(f.top!==0||f.left!==0)&&o.scrollBy(f);break}}}catch(e){c.e(e)}finally{c.f()}}function Ft(e){var t=e.input,n=e.findEntry,r=e.timeSinceLastFrame,i=e.source,a=e.getWindowScrollEntries,o=e.underUsersPointer,s=Nt({target:o,timeSinceLastFrame:r,input:t,source:i,findEntry:n});Mt(s)&&Pt({input:t,source:i,entries:a(),timeSinceLastFrame:r,available:s})}function It(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Lt(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?It(Object(n),!0).forEach(function(t){q(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):It(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Rt(e){var t=e.monitor,n=new Map,r=new Set;function i(e){return n.set(e.element,e),Ne(J(ot(e.element),function(){return n.delete(e.element)}))}function a(){var e=Lt({},arguments.length>0&&arguments[0]!==void 0?arguments[0]:{});r.add(e);function t(){r.delete(e)}return Ne(t)}function o(e){return n.get(e)??null}function s(){return Array.from(r)}function c(e){var t=e.latestArgs,n=e.underUsersPointer,r=e.timeSinceLastFrame;Ft({input:t.location.current.input,source:t.source,findEntry:o,underUsersPointer:n,timeSinceLastFrame:r,getWindowScrollEntries:s})}return nt(t).onFrame(c),{autoScroll:i,autoScrollWindow:a}}var zt=Rt({monitor:Pe}),Bt=zt.autoScroll;zt.autoScrollWindow;export{He as a,Ve as c,Ke as i,Ye as n,Ue as o,Je as r,We as s,Bt as t};
@@ -1 +1 @@
1
- import"./rolldown-runtime-Cyuzqnbw.js";import{zr as e}from"./icons-sqwAEN28.js";import{Dr as t,Ir as n,Lt as r,Rr as i,Rt as a}from"./items-CQJpN5w7.js";import"./use-stable-navigate-BxdZa-Ti.js";e();function o(e){return a(n(e))}function s(e,n,a={}){if(!i(n)&&n.projectId){let e=t.getState();e.expandedProjects.has(n.projectId)||e.toggleProject(n.projectId),e.selectedProjectId!==n.projectId&&e.selectProject(n.projectId)}if(!a.skipSelect){let e=r.getState();(e.selectedThreadId!==n.id||e.activeThread?.id!==n.id)&&e.selectThread(n.id)}a.replace?e(o(n),{replace:!0}):e(o(n))}export{o as n,s as t};
1
+ import"./rolldown-runtime-Cyuzqnbw.js";import{zr as e}from"./icons-sqwAEN28.js";import{Dr as t,Ir as n,Lt as r,Rr as i,Rt as a}from"./items-sHyHEl8t.js";import"./use-stable-navigate-Dub9C1RE.js";e();function o(e){return a(n(e))}function s(e,n,a={}){if(!i(n)&&n.projectId){let e=t.getState();e.expandedProjects.has(n.projectId)||e.toggleProject(n.projectId),e.selectedProjectId!==n.projectId&&e.selectProject(n.projectId)}if(!a.skipSelect){let e=r.getState();(e.selectedThreadId!==n.id||e.activeThread?.id!==n.id)&&e.selectThread(n.id)}a.replace?e(o(n),{replace:!0}):e(o(n))}export{o as n,s as t};