@alpacachen/dsh-simple-worktree 1.0.9 → 1.0.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.
- package/client/client.js +47 -20
- package/lib/index.js +48 -2
- package/package.json +1 -1
package/client/client.js
CHANGED
|
@@ -3,7 +3,7 @@ window.__ModuleLoader__.load({
|
|
|
3
3
|
factory: function (require) {
|
|
4
4
|
var module = { exports: {} }
|
|
5
5
|
var exports = module.exports
|
|
6
|
-
"use strict";var
|
|
6
|
+
"use strict";var ho=Object.create;var Ee=Object.defineProperty;var go=Object.getOwnPropertyDescriptor;var Co=Object.getOwnPropertyNames;var So=Object.getPrototypeOf,wo=Object.prototype.hasOwnProperty;var vo=(e,a)=>{for(var t in a)Ee(e,t,{get:a[t],enumerable:!0})},Da=(e,a,t,o)=>{if(a&&typeof a=="object"||typeof a=="function")for(let r of Co(a))!wo.call(e,r)&&r!==t&&Ee(e,r,{get:()=>a[r],enumerable:!(o=go(a,r))||o.enumerable});return e};var A=(e,a,t)=>(t=e!=null?ho(So(e)):{},Da(a||!e||!e.__esModule?Ee(t,"default",{value:e,enumerable:!0}):t,e)),ko=e=>Da(Ee({},"__esModule",{value:!0}),e);var Vr={};vo(Vr,{default:()=>zr});module.exports=ko(Vr);var Ye=require("react");var Ba=`@layer dsh-simple-worktree {
|
|
7
7
|
.dswt-dialog-overlay {
|
|
8
8
|
position: fixed;
|
|
9
9
|
inset: 0;
|
|
@@ -100,39 +100,65 @@ window.__ModuleLoader__.load({
|
|
|
100
100
|
.dswt-error { display: flex; align-items: flex-start; gap: 6px; margin-top: 14px; border-radius: 8px; padding: 8px 10px; color: var(--dsw-alias-state-error-primary, #b42318); background: var(--dsw-alias-state-error-secondary, #fff1f0); font-size: 12px; line-height: 18px; }
|
|
101
101
|
.dswt-dialog-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 22px; }
|
|
102
102
|
.dswt-settings { color: var(--dsw-alias-label-primary, #111); font-size: 13px; }
|
|
103
|
-
.dswt-settings-header
|
|
104
|
-
.dswt-settings-header {
|
|
105
|
-
.dswt-settings-
|
|
106
|
-
.dswt-
|
|
107
|
-
.dswt-
|
|
108
|
-
.dswt-
|
|
109
|
-
.dswt-
|
|
110
|
-
.dswt-
|
|
111
|
-
.dswt-
|
|
103
|
+
.dswt-settings-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 8px; }
|
|
104
|
+
.dswt-settings-header h2 { margin: 0; font-size: 20px; font-weight: 650; line-height: 28px; }
|
|
105
|
+
.dswt-settings-subtitle { margin: 3px 0 0; color: var(--dsw-alias-label-secondary, #666); font-size: 12px; line-height: 18px; }
|
|
106
|
+
.dswt-icon-button { width: 34px; min-height: 34px; padding: 0; }
|
|
107
|
+
.dswt-summary { display: flex; align-items: center; gap: 6px; margin: 0 0 18px; color: var(--dsw-alias-label-secondary, #666); font-size: 12px; }
|
|
108
|
+
.dswt-summary strong { color: var(--dsw-alias-label-primary, #111); font-size: 13px; }
|
|
109
|
+
.dswt-summary span { margin: 0 3px; color: var(--dsw-alias-label-tertiary, #999); }
|
|
110
|
+
.dswt-empty { margin-top: 20px; border: 1px dashed var(--dsw-alias-border-l2, #ccc); border-radius: 10px; padding: 24px; text-align: center; }
|
|
111
|
+
.dswt-empty p { margin: 0; font-weight: 500; }
|
|
112
|
+
.dswt-empty span { display: block; margin-top: 5px; color: var(--dsw-alias-label-secondary, #666); font-size: 12px; }
|
|
113
|
+
.dswt-repo-list { display: grid; gap: 16px; }
|
|
114
|
+
.dswt-repo { overflow: hidden; margin: 0; border: 1px solid var(--dsw-alias-border-l2, #ddd); border-radius: 12px; background: var(--dsw-alias-bg-layer-1, #fff); }
|
|
115
|
+
.dswt-repo-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px 13px; background: var(--dsw-alias-bg-layer-2, #f8f8f8); }
|
|
116
|
+
.dswt-repo-heading { display: flex; min-width: 0; align-items: center; gap: 10px; }
|
|
117
|
+
.dswt-repo-icon { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 26px; height: 26px; border-radius: 7px; color: var(--dsw-alias-brand-primary, #2563eb); background: color-mix(in srgb, var(--dsw-alias-brand-primary, #2563eb) 10%, transparent); font-size: 16px; }
|
|
118
|
+
.dswt-repo-heading h3 { overflow: hidden; margin: 0; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; font-weight: 650; line-height: 20px; }
|
|
119
|
+
.dswt-repo-heading p { overflow: hidden; max-width: 520px; margin: 2px 0 0; color: var(--dsw-alias-label-tertiary, #777); text-overflow: ellipsis; white-space: nowrap; font-size: 11px; line-height: 16px; }
|
|
120
|
+
.dswt-worktree-list { padding: 0 16px; }
|
|
121
|
+
.dswt-worktree { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 68px; border-top: 1px solid var(--dsw-alias-border-l2, #eee); padding: 12px 0; }
|
|
122
|
+
.dswt-worktree-info { min-width: 0; }
|
|
123
|
+
.dswt-worktree-title { display: flex; min-width: 0; align-items: center; gap: 8px; }
|
|
124
|
+
.dswt-worktree-title strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; line-height: 20px; }
|
|
125
|
+
.dswt-badge { flex: none; border-radius: 999px; padding: 2px 7px; color: var(--dsw-alias-label-secondary, #666); background: var(--dsw-alias-bg-layer-2, #f1f1f1); font-size: 10px; line-height: 15px; }
|
|
126
|
+
.dswt-badge-main { color: var(--dsw-alias-brand-primary, #2563eb); background: color-mix(in srgb, var(--dsw-alias-brand-primary, #2563eb) 10%, transparent); }
|
|
127
|
+
.dswt-worktree-path { overflow: hidden; margin-top: 2px; color: var(--dsw-alias-label-tertiary, #888); text-overflow: ellipsis; white-space: nowrap; font-size: 11px; line-height: 16px; }
|
|
128
|
+
.dswt-status { margin-top: 3px; font-size: 11px; line-height: 16px; }
|
|
129
|
+
.dswt-status-clean { color: var(--dsw-alias-state-success-primary, #22863a); }
|
|
130
|
+
.dswt-status-dirty, .dswt-status-unavailable { color: var(--dsw-alias-state-error-primary, #b42318); }
|
|
131
|
+
.dswt-status-prunable { color: var(--dsw-alias-state-warning-primary, #a15c00); }
|
|
132
|
+
.dswt-worktree-actions { display: flex; flex: none; align-items: center; gap: 6px; }
|
|
133
|
+
.dswt-button-primary { min-width: 64px; border-color: var(--dsw-alias-button-primary-fill, var(--dsw-alias-brand-primary, #2563eb)); color: var(--dsw-alias-label-primary-foreground, #fff); background: var(--dsw-alias-button-primary-fill, var(--dsw-alias-brand-primary, #2563eb)); }
|
|
134
|
+
.dswt-button-secondary { min-height: 28px; padding: 4px 9px; font-size: 12px; }
|
|
135
|
+
.dswt-button-danger { min-height: 28px; padding: 4px 9px; color: var(--dsw-alias-state-error-primary, #b42318); font-size: 12px; }
|
|
136
|
+
.dswt-count { min-width: 16px; border-radius: 999px; padding: 0 4px; text-align: center; background: var(--dsw-alias-bg-layer-2, #eee); font-size: 10px; }
|
|
112
137
|
.dswt-muted { color: var(--dsw-alias-label-secondary, #666); }
|
|
138
|
+
@media (max-width: 640px) { .dswt-repo-header, .dswt-worktree { align-items: flex-start; flex-direction: column; } .dswt-worktree-actions { width: 100%; } .dswt-worktree-actions .dswt-button { flex: 1; } }
|
|
113
139
|
}
|
|
114
140
|
|
|
115
141
|
@media (prefers-reduced-motion: reduce) {
|
|
116
142
|
.dswt-dialog-overlay, .dswt-dialog-overlay *, .dswt-dialog-content, .dswt-dialog-content * { animation-duration: .01ms !important; transition-duration: .01ms !important; }
|
|
117
143
|
}
|
|
118
|
-
`;var
|
|
144
|
+
`;var te=require("react");var Ue=require("react");var Ma=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),qe=(...e)=>e.filter((a,t,o)=>!!a&&a.trim()!==""&&o.indexOf(a)===t).join(" ").trim();var ke=require("react");var Fa={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};var Ta=(0,ke.forwardRef)(({color:e="currentColor",size:a=24,strokeWidth:t=2,absoluteStrokeWidth:o,className:r="",children:u,iconNode:s,...l},i)=>(0,ke.createElement)("svg",{ref:i,...Fa,width:a,height:a,stroke:e,strokeWidth:o?Number(t)*24/Number(a):t,className:qe("lucide",r),...l},[...s.map(([f,c])=>(0,ke.createElement)(f,c)),...Array.isArray(u)?u:[u]]));var j=(e,a)=>{let t=(0,Ue.forwardRef)(({className:o,...r},u)=>(0,Ue.createElement)(Ta,{ref:u,iconNode:a,className:qe(`lucide-${Ma(e)}`,o),...r}));return t.displayName=`${e}`,t};var bo=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]],Z=j("CircleAlert",bo);var Po=[["path",{d:"M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v5",key:"1w6njk"}],["circle",{cx:"13",cy:"12",r:"2",key:"1j92g6"}],["path",{d:"M18 19c-2.8 0-5-2.2-5-5v8",key:"pkpw2h"}],["circle",{cx:"20",cy:"19",r:"2",key:"1obnsp"}]],ye=j("FolderGit2",Po);var Ro=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],$=j("LoaderCircle",Ro);var Ao=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],be=j("RefreshCw",Ao);var Do=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Pe=j("X",Do);var Ea=require("react"),Le="dsh-simple-worktree",qa={createWorktree:"\u521B\u5EFA worktree",dialogTitle:"{name} worktree",basedOn:"\u57FA\u4E8E",currentBranch:"\u5F53\u524D\u5206\u652F",mainBranch:"\u4E3B\u5206\u652F",taskName:"\u540D\u79F0",taskNamePlaceholder:"\u4F8B\u5982 login-fix",cancel:"\u53D6\u6D88",createAndOpen:"\u521B\u5EFA\u5E76\u6253\u5F00",creating:"\u521B\u5EFA\u4E2D\u2026",fillTaskName:"\u8BF7\u586B\u5199\u540D\u79F0\u3002",operationFailed:"worktree \u64CD\u4F5C\u5931\u8D25\uFF1A",close:"\u5173\u95ED",notGitWorkspace:"\u5F53\u524D Workspace \u4E0D\u662F Git \u4ED3\u5E93\u3002",worktrees:"Worktree \u7BA1\u7406",worktreesSubtitle:"\u626B\u63CF\u6240\u6709 Workspace \u4E2D\u7684 Git \u9879\u76EE\u548C Worktree",repositories:"\u4E2A\u9879\u76EE",worktreeCount:"\u4E2A Worktree",refresh:"\u5237\u65B0",noWorktrees:"\u6CA1\u6709\u53D1\u73B0 Worktree\u3002",noWorktreesHint:"\u4F1A\u9012\u5F52\u626B\u63CF\u6240\u6709 Workspace \u4E0B\u7684 Git \u9879\u76EE\u3002",branch:"\u5206\u652F",path:"\u8DEF\u5F84",mainRepository:"\u4E3B\u4ED3\u5E93",linkedWorktree:"linked worktree",clean:"clean",dirty:"dirty\uFF08{count} \u4E2A\u53D8\u66F4\u6587\u4EF6\uFF09",locked:"\u5DF2\u9501\u5B9A",prunable:"\u53EF\u6E05\u7406",open:"\u6253\u5F00",remove:"\u5220\u9664 Worktree",prune:"\u6E05\u7406\u5931\u6548\u8BB0\u5F55",removeConfirm:`\u786E\u8BA4\u5220\u9664 Worktree\uFF1F
|
|
119
145
|
|
|
120
146
|
\u8DEF\u5F84\uFF1A{path}
|
|
121
147
|
\u72B6\u6001\uFF1A{status}
|
|
122
148
|
|
|
123
149
|
\u8FD9\u4E0D\u4F1A\u5220\u9664 Git branch\u3002`,dirtyRemoveBlocked:"Worktree \u6709\u672A\u63D0\u4EA4\u53D8\u66F4\uFF0C\u9ED8\u8BA4\u4E0D\u4F1A\u5F3A\u5236\u5220\u9664\u3002",operationError:"\u64CD\u4F5C\u5931\u8D25\uFF1A",unavailable:"\u8DEF\u5F84\u4E0D\u53EF\u7528",registered:"\u5DF2\u6CE8\u518C Workspace",registerFailed:"Worktree \u5DF2\u521B\u5EFA\uFF0C\u4F46 Workspace \u6CE8\u518C\u5931\u8D25\u3002",cleanupFailed:`\u6E05\u7406\u5DF2\u521B\u5EFA Worktree \u5931\u8D25\uFF1A{error}
|
|
124
|
-
\u8DEF\u5F84\uFF1A{path}`,retryRegister:"\u91CD\u8BD5\u6CE8\u518C\u5E76\u6253\u5F00",cleanupCreated:"\u6E05\u7406\u5DF2\u521B\u5EFA Worktree",detached:"\uFF08\u5206\u79BB HEAD\uFF09"},
|
|
150
|
+
\u8DEF\u5F84\uFF1A{path}`,retryRegister:"\u91CD\u8BD5\u6CE8\u518C\u5E76\u6253\u5F00",cleanupCreated:"\u6E05\u7406\u5DF2\u521B\u5EFA Worktree",detached:"\uFF08\u5206\u79BB HEAD\uFF09"},Bo={createWorktree:"Create worktree",dialogTitle:"{name} worktree",basedOn:"Base",currentBranch:"Current branch",mainBranch:"Main branch",taskName:"Name",taskNamePlaceholder:"e.g. login-fix",cancel:"Cancel",createAndOpen:"Create and open",creating:"Creating\u2026",fillTaskName:"Enter a name.",operationFailed:"worktree operation failed: ",close:"Close",notGitWorkspace:"The current Workspace is not a Git repository.",worktrees:"Worktree Management",worktreesSubtitle:"Scan every Workspace for Git projects and Worktrees",repositories:"repositories",worktreeCount:"Worktrees",refresh:"Refresh",noWorktrees:"No Worktrees found.",noWorktreesHint:"Every Workspace is scanned recursively for Git projects.",branch:"Branch",path:"Path",mainRepository:"Main repository",linkedWorktree:"Linked worktree",clean:"clean",dirty:"dirty ({count} changed files)",locked:"locked",prunable:"prunable",open:"Open",remove:"Remove Worktree",prune:"Prune stale record",removeConfirm:`Remove this Worktree?
|
|
125
151
|
|
|
126
152
|
Path: {path}
|
|
127
153
|
Status: {status}
|
|
128
154
|
|
|
129
155
|
This does not delete the Git branch.`,dirtyRemoveBlocked:"This Worktree has uncommitted changes; force removal is disabled.",operationError:"Operation failed: ",unavailable:"path unavailable",registered:"Workspace registered",registerFailed:"The Worktree was created, but Workspace registration failed.",cleanupFailed:`Could not clean up the created Worktree: {error}
|
|
130
|
-
Path: {path}`,retryRegister:"Retry registration and open",cleanupCreated:"Clean up created Worktree",detached:"(detached HEAD)"},Q=null,Ue=null;function qa(e){let a=e?.get?.("locale");if(!a||typeof a.register!="function"||typeof a.bind!="function")return()=>{};Q=a;let t;try{t=a.register(se,{zh:Ea,en:Ao})}catch{}return Ue=a.bind(se),()=>{t?.(),Q===a&&(Q=null,Ue=null)}}function Pe(e){return Ue?Ue(e):Ea[e]??e}var Do=e=>Q&&typeof Q.subscribe=="function"?Q.subscribe(e):()=>{},Ta=()=>Q&&typeof Q.getSnapshot=="function"?Q.getSnapshot():null;function te(){return(0,Oa.useSyncExternalStore)(Do,Ta,Ta),Pe}function oe(e,a){return e.replace(/\{(\w+)\}/g,(t,o)=>a[o]??`{${o}}`)}function F(e){let a=String(e??"");return a.length>1?a.replace(/[\\/]+$/,""):a}function Ua(e){return String(e||"task").trim().toLowerCase().replace(/[^a-z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||"task"}function Ha(e,a){let t=e.includes("\\")?"\\":"/";return`${F(e)}.worktrees${t}${a}`}var b=A(require("react"),1);function j(e,a,{checkForDefaultPrevented:t=!0}={}){return function(r){if(e?.(r),t===!1||!r.defaultPrevented)return a?.(r)}}var Na=A(require("react"),1);function Wa(e,a){if(typeof e=="function")return e(a);e!=null&&(e.current=a)}function Ye(...e){return a=>{let t=!1,o=e.map(r=>{let u=Wa(r,a);return!t&&typeof u=="function"&&(t=!0),u});if(t)return()=>{for(let r=0;r<o.length;r++){let u=o[r];typeof u=="function"?u():Wa(e[r],null)}}}}function V(...e){return Na.useCallback(Ye(...e),e)}var N=A(require("react"),1),ea=require("react/jsx-runtime");function Ga(e,a){let t=N.createContext(a),o=u=>{let{children:s,...l}=u,i=N.useMemo(()=>l,Object.values(l));return(0,ea.jsx)(t.Provider,{value:i,children:s})};o.displayName=e+"Provider";function r(u){let s=N.useContext(t);if(s)return s;if(a!==void 0)return a;throw new Error(`\`${u}\` must be used within \`${e}\``)}return[o,r]}function Va(e,a=[]){let t=[];function o(u,s){let l=N.createContext(s),i=t.length;t=[...t,s];let n=m=>{let{scope:x,children:I,...h}=m,d=x?.[e]?.[i]||l,p=N.useMemo(()=>h,Object.values(h));return(0,ea.jsx)(d.Provider,{value:p,children:I})};n.displayName=u+"Provider";function c(m,x){let I=x?.[e]?.[i]||l,h=N.useContext(I);if(h)return h;if(s!==void 0)return s;throw new Error(`\`${m}\` must be used within \`${u}\``)}return[n,c]}let r=()=>{let u=t.map(s=>N.createContext(s));return function(l){let i=l?.[e]||u;return N.useMemo(()=>({[`__scope${e}`]:{...l,[e]:i}}),[l,i])}};return r.scopeName=e,[o,Bo(r,...a)]}function Bo(...e){let a=e[0];if(e.length===1)return a;let t=()=>{let o=e.map(r=>({useScope:r(),scopeName:r.scopeName}));return function(u){let s=o.reduce((l,{useScope:i,scopeName:n})=>{let m=i(u)[`__scope${n}`];return{...l,...m}},{});return N.useMemo(()=>({[`__scope${a.scopeName}`]:s}),[s])}};return t.scopeName=a.scopeName,t}var He=A(require("react"),1);var za=A(require("react"),1),de=globalThis?.document?za.useLayoutEffect:()=>{};var Mo=He.useId||(()=>{}),Fo=0;function We(e){let[a,t]=He.useState(Mo());return de(()=>{e||t(o=>o??String(Fo++))},[e]),e||(a?`radix-${a}`:"")}var re=A(require("react"),1);var xe=A(require("react"),1);function z(e){let a=xe.useRef(e);return xe.useEffect(()=>{a.current=e}),xe.useMemo(()=>(...t)=>a.current?.(...t),[])}function _a({prop:e,defaultProp:a,onChange:t=()=>{}}){let[o,r]=To({defaultProp:a,onChange:t}),u=e!==void 0,s=u?e:o,l=z(t),i=re.useCallback(n=>{if(u){let m=typeof n=="function"?n(e):n;m!==e&&l(m)}else r(n)},[u,e,r,l]);return[s,i]}function To({defaultProp:e,onChange:a}){let t=re.useState(e),[o]=t,r=re.useRef(o),u=z(a);return re.useEffect(()=>{r.current!==o&&(u(o),r.current=o)},[o,r,u]),t}var B=A(require("react"),1);var Xa=A(require("react"),1),Ka=A(require("react-dom"),1);var M=A(require("react"),1);var Ie=require("react/jsx-runtime"),be=M.forwardRef((e,a)=>{let{children:t,...o}=e,r=M.Children.toArray(t),u=r.find(Eo);if(u){let s=u.props.children,l=r.map(i=>i===u?M.Children.count(s)>1?M.Children.only(null):M.isValidElement(s)?s.props.children:null:i);return(0,Ie.jsx)(aa,{...o,ref:a,children:M.isValidElement(s)?M.cloneElement(s,void 0,l):null})}return(0,Ie.jsx)(aa,{...o,ref:a,children:t})});be.displayName="Slot";var aa=M.forwardRef((e,a)=>{let{children:t,...o}=e;if(M.isValidElement(t)){let r=Uo(t),u=qo(o,t.props);return t.type!==M.Fragment&&(u.ref=a?Ye(a,r):r),M.cloneElement(t,u)}return M.Children.count(t)>1?M.Children.only(null):null});aa.displayName="SlotClone";var Oo=({children:e})=>(0,Ie.jsx)(Ie.Fragment,{children:e});function Eo(e){return M.isValidElement(e)&&e.type===Oo}function qo(e,a){let t={...a};for(let o in a){let r=e[o],u=a[o];/^on[A-Z]/.test(o)?r&&u?t[o]=(...l)=>{u(...l),r(...l)}:r&&(t[o]=r):o==="style"?t[o]={...r,...u}:o==="className"&&(t[o]=[r,u].filter(Boolean).join(" "))}return{...e,...t}}function Uo(e){let a=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,t=a&&"isReactWarning"in a&&a.isReactWarning;return t?e.ref:(a=Object.getOwnPropertyDescriptor(e,"ref")?.get,t=a&&"isReactWarning"in a&&a.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}var ja=require("react/jsx-runtime"),Ho=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"],U=Ho.reduce((e,a)=>{let t=Xa.forwardRef((o,r)=>{let{asChild:u,...s}=o,l=u?be:a;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),(0,ja.jsx)(l,{...s,ref:r})});return t.displayName=`Primitive.${a}`,{...e,[a]:t}},{});function Za(e,a){e&&Ka.flushSync(()=>e.dispatchEvent(a))}var $a=A(require("react"),1);function Ja(e,a=globalThis?.document){let t=z(e);$a.useEffect(()=>{let o=r=>{r.key==="Escape"&&t(r)};return a.addEventListener("keydown",o,{capture:!0}),()=>a.removeEventListener("keydown",o,{capture:!0})},[t,a])}var oa=require("react/jsx-runtime"),Wo="DismissableLayer",ta="dismissableLayer.update",No="dismissableLayer.pointerDownOutside",Go="dismissableLayer.focusOutside",Qa,et=B.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),ra=B.forwardRef((e,a)=>{let{disableOutsidePointerEvents:t=!1,onEscapeKeyDown:o,onPointerDownOutside:r,onFocusOutside:u,onInteractOutside:s,onDismiss:l,...i}=e,n=B.useContext(et),[c,m]=B.useState(null),x=c?.ownerDocument??globalThis?.document,[,I]=B.useState({}),h=V(a,g=>m(g)),d=Array.from(n.layers),[p]=[...n.layersWithOutsidePointerEventsDisabled].slice(-1),L=d.indexOf(p),f=c?d.indexOf(c):-1,C=n.layersWithOutsidePointerEventsDisabled.size>0,S=f>=L,w=_o(g=>{let T=g.target,$=[...n.branches].some(le=>le.contains(T));!S||$||(r?.(g),s?.(g),g.defaultPrevented||l?.())},x),y=Xo(g=>{let T=g.target;[...n.branches].some(le=>le.contains(T))||(u?.(g),s?.(g),g.defaultPrevented||l?.())},x);return Ja(g=>{f===n.layers.size-1&&(o?.(g),!g.defaultPrevented&&l&&(g.preventDefault(),l()))},x),B.useEffect(()=>{if(c)return t&&(n.layersWithOutsidePointerEventsDisabled.size===0&&(Qa=x.body.style.pointerEvents,x.body.style.pointerEvents="none"),n.layersWithOutsidePointerEventsDisabled.add(c)),n.layers.add(c),Ya(),()=>{t&&n.layersWithOutsidePointerEventsDisabled.size===1&&(x.body.style.pointerEvents=Qa)}},[c,x,t,n]),B.useEffect(()=>()=>{c&&(n.layers.delete(c),n.layersWithOutsidePointerEventsDisabled.delete(c),Ya())},[c,n]),B.useEffect(()=>{let g=()=>I({});return document.addEventListener(ta,g),()=>document.removeEventListener(ta,g)},[]),(0,oa.jsx)(U.div,{...i,ref:h,style:{pointerEvents:C?S?"auto":"none":void 0,...e.style},onFocusCapture:j(e.onFocusCapture,y.onFocusCapture),onBlurCapture:j(e.onBlurCapture,y.onBlurCapture),onPointerDownCapture:j(e.onPointerDownCapture,w.onPointerDownCapture)})});ra.displayName=Wo;var Vo="DismissableLayerBranch",zo=B.forwardRef((e,a)=>{let t=B.useContext(et),o=B.useRef(null),r=V(a,o);return B.useEffect(()=>{let u=o.current;if(u)return t.branches.add(u),()=>{t.branches.delete(u)}},[t.branches]),(0,oa.jsx)(U.div,{...e,ref:r})});zo.displayName=Vo;function _o(e,a=globalThis?.document){let t=z(e),o=B.useRef(!1),r=B.useRef(()=>{});return B.useEffect(()=>{let u=l=>{if(l.target&&!o.current){let n=function(){at(No,t,c,{discrete:!0})};var i=n;let c={originalEvent:l};l.pointerType==="touch"?(a.removeEventListener("click",r.current),r.current=n,a.addEventListener("click",r.current,{once:!0})):n()}else a.removeEventListener("click",r.current);o.current=!1},s=window.setTimeout(()=>{a.addEventListener("pointerdown",u)},0);return()=>{window.clearTimeout(s),a.removeEventListener("pointerdown",u),a.removeEventListener("click",r.current)}},[a,t]),{onPointerDownCapture:()=>o.current=!0}}function Xo(e,a=globalThis?.document){let t=z(e),o=B.useRef(!1);return B.useEffect(()=>{let r=u=>{u.target&&!o.current&&at(Go,t,{originalEvent:u},{discrete:!1})};return a.addEventListener("focusin",r),()=>a.removeEventListener("focusin",r)},[a,t]),{onFocusCapture:()=>o.current=!0,onBlurCapture:()=>o.current=!1}}function Ya(){let e=new CustomEvent(ta);document.dispatchEvent(e)}function at(e,a,t,{discrete:o}){let r=t.originalEvent.target,u=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:t});a&&r.addEventListener(e,a,{once:!0}),o?Za(r,u):r.dispatchEvent(u)}var G=A(require("react"),1);var lt=require("react/jsx-runtime"),ua="focusScope.autoFocusOnMount",la="focusScope.autoFocusOnUnmount",tt={bubbles:!1,cancelable:!0},Ko="FocusScope",sa=G.forwardRef((e,a)=>{let{loop:t=!1,trapped:o=!1,onMountAutoFocus:r,onUnmountAutoFocus:u,...s}=e,[l,i]=G.useState(null),n=z(r),c=z(u),m=G.useRef(null),x=V(a,d=>i(d)),I=G.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;G.useEffect(()=>{if(o){let f=function(y){if(I.paused||!l)return;let g=y.target;l.contains(g)?m.current=g:ue(m.current,{select:!0})},C=function(y){if(I.paused||!l)return;let g=y.relatedTarget;g!==null&&(l.contains(g)||ue(m.current,{select:!0}))},S=function(y){if(document.activeElement===document.body)for(let T of y)T.removedNodes.length>0&&ue(l)};var d=f,p=C,L=S;document.addEventListener("focusin",f),document.addEventListener("focusout",C);let w=new MutationObserver(S);return l&&w.observe(l,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",f),document.removeEventListener("focusout",C),w.disconnect()}}},[o,l,I.paused]),G.useEffect(()=>{if(l){rt.add(I);let d=document.activeElement;if(!l.contains(d)){let L=new CustomEvent(ua,tt);l.addEventListener(ua,n),l.dispatchEvent(L),L.defaultPrevented||(jo(Yo(st(l)),{select:!0}),document.activeElement===d&&ue(l))}return()=>{l.removeEventListener(ua,n),setTimeout(()=>{let L=new CustomEvent(la,tt);l.addEventListener(la,c),l.dispatchEvent(L),L.defaultPrevented||ue(d??document.body,{select:!0}),l.removeEventListener(la,c),rt.remove(I)},0)}}},[l,n,c,I]);let h=G.useCallback(d=>{if(!t&&!o||I.paused)return;let p=d.key==="Tab"&&!d.altKey&&!d.ctrlKey&&!d.metaKey,L=document.activeElement;if(p&&L){let f=d.currentTarget,[C,S]=Zo(f);C&&S?!d.shiftKey&&L===S?(d.preventDefault(),t&&ue(C,{select:!0})):d.shiftKey&&L===C&&(d.preventDefault(),t&&ue(S,{select:!0})):L===f&&d.preventDefault()}},[t,o,I.paused]);return(0,lt.jsx)(U.div,{tabIndex:-1,...s,ref:x,onKeyDown:h})});sa.displayName=Ko;function jo(e,{select:a=!1}={}){let t=document.activeElement;for(let o of e)if(ue(o,{select:a}),document.activeElement!==t)return}function Zo(e){let a=st(e),t=ot(a,e),o=ot(a.reverse(),e);return[t,o]}function st(e){let a=[],t=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:o=>{let r=o.tagName==="INPUT"&&o.type==="hidden";return o.disabled||o.hidden||r?NodeFilter.FILTER_SKIP:o.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;t.nextNode();)a.push(t.currentNode);return a}function ot(e,a){for(let t of e)if(!$o(t,{upTo:a}))return t}function $o(e,{upTo:a}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(a!==void 0&&e===a)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function Jo(e){return e instanceof HTMLInputElement&&"select"in e}function ue(e,{select:a=!1}={}){if(e&&e.focus){let t=document.activeElement;e.focus({preventScroll:!0}),e!==t&&Jo(e)&&a&&e.select()}}var rt=Qo();function Qo(){let e=[];return{add(a){let t=e[0];a!==t&&t?.pause(),e=ut(e,a),e.unshift(a)},remove(a){e=ut(e,a),e[0]?.resume()}}}function ut(e,a){let t=[...e],o=t.indexOf(a);return o!==-1&&t.splice(o,1),t}function Yo(e){return e.filter(a=>a.tagName!=="A")}var Ne=A(require("react"),1),dt=A(require("react-dom"),1);var ft=require("react/jsx-runtime"),er="Portal",da=Ne.forwardRef((e,a)=>{let{container:t,...o}=e,[r,u]=Ne.useState(!1);de(()=>u(!0),[]);let s=t||r&&globalThis?.document?.body;return s?dt.default.createPortal((0,ft.jsx)(U.div,{...o,ref:a}),s):null});da.displayName=er;var E=A(require("react"),1);var nt=A(require("react"),1);function ar(e,a){return nt.useReducer((t,o)=>a[t][o]??t,e)}var Re=e=>{let{present:a,children:t}=e,o=tr(a),r=typeof t=="function"?t({present:o.isPresent}):E.Children.only(t),u=V(o.ref,or(r));return typeof t=="function"||o.isPresent?E.cloneElement(r,{ref:u}):null};Re.displayName="Presence";function tr(e){let[a,t]=E.useState(),o=E.useRef({}),r=E.useRef(e),u=E.useRef("none"),s=e?"mounted":"unmounted",[l,i]=ar(s,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return E.useEffect(()=>{let n=Ge(o.current);u.current=l==="mounted"?n:"none"},[l]),de(()=>{let n=o.current,c=r.current;if(c!==e){let x=u.current,I=Ge(n);e?i("MOUNT"):I==="none"||n?.display==="none"?i("UNMOUNT"):i(c&&x!==I?"ANIMATION_OUT":"UNMOUNT"),r.current=e}},[e,i]),de(()=>{if(a){let n,c=a.ownerDocument.defaultView??window,m=I=>{let d=Ge(o.current).includes(I.animationName);if(I.target===a&&d&&(i("ANIMATION_END"),!r.current)){let p=a.style.animationFillMode;a.style.animationFillMode="forwards",n=c.setTimeout(()=>{a.style.animationFillMode==="forwards"&&(a.style.animationFillMode=p)})}},x=I=>{I.target===a&&(u.current=Ge(o.current))};return a.addEventListener("animationstart",x),a.addEventListener("animationcancel",m),a.addEventListener("animationend",m),()=>{c.clearTimeout(n),a.removeEventListener("animationstart",x),a.removeEventListener("animationcancel",m),a.removeEventListener("animationend",m)}}else i("ANIMATION_END")},[a,i]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:E.useCallback(n=>{n&&(o.current=getComputedStyle(n)),t(n)},[])}}function Ge(e){return e?.animationName||"none"}function or(e){let a=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,t=a&&"isReactWarning"in a&&a.isReactWarning;return t?e.ref:(a=Object.getOwnPropertyDescriptor(e,"ref")?.get,t=a&&"isReactWarning"in a&&a.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}var ct=A(require("react"),1),fa=0;function pt(){ct.useEffect(()=>{let e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??it()),document.body.insertAdjacentElement("beforeend",e[1]??it()),fa++,()=>{fa===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(a=>a.remove()),fa--}},[])}function it(){let e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var q=function(){return q=Object.assign||function(a){for(var t,o=1,r=arguments.length;o<r;o++){t=arguments[o];for(var u in t)Object.prototype.hasOwnProperty.call(t,u)&&(a[u]=t[u])}return a},q.apply(this,arguments)};function Ve(e,a){var t={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&a.indexOf(o)<0&&(t[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r<o.length;r++)a.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(t[o[r]]=e[o[r]]);return t}function mt(e,a,t){if(t||arguments.length===2)for(var o=0,r=a.length,u;o<r;o++)(u||!(o in a))&&(u||(u=Array.prototype.slice.call(a,0,o)),u[o]=a[o]);return e.concat(u||Array.prototype.slice.call(a))}var je=A(require("react"));var O=A(require("react"));var fe="right-scroll-bar-position",ne="width-before-scroll-bar",na="with-scroll-bars-hidden",ia="--removed-body-scroll-bar-size";function ze(e,a){return typeof e=="function"?e(a):e&&(e.current=a),e}var Lt=require("react");function xt(e,a){var t=(0,Lt.useState)(function(){return{value:e,callback:a,facade:{get current(){return t.value},set current(o){var r=t.value;r!==o&&(t.value=o,t.callback(o,r))}}}})[0];return t.callback=a,t.facade}var _e=A(require("react"));var rr=typeof window<"u"?_e.useLayoutEffect:_e.useEffect,It=new WeakMap;function ca(e,a){var t=xt(a||null,function(o){return e.forEach(function(r){return ze(r,o)})});return rr(function(){var o=It.get(t);if(o){var r=new Set(o),u=new Set(e),s=t.current;r.forEach(function(l){u.has(l)||ze(l,null)}),u.forEach(function(l){r.has(l)||ze(l,s)})}It.set(t,e)},[e]),t}function ur(e){return e}function lr(e,a){a===void 0&&(a=ur);var t=[],o=!1,r={read:function(){if(o)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return t.length?t[t.length-1]:e},useMedium:function(u){var s=a(u,o);return t.push(s),function(){t=t.filter(function(l){return l!==s})}},assignSyncMedium:function(u){for(o=!0;t.length;){var s=t;t=[],s.forEach(u)}t={push:function(l){return u(l)},filter:function(){return t}}},assignMedium:function(u){o=!0;var s=[];if(t.length){var l=t;t=[],l.forEach(u),s=t}var i=function(){var c=s;s=[],c.forEach(u)},n=function(){return Promise.resolve().then(i)};n(),t={push:function(c){s.push(c),n()},filter:function(c){return s=s.filter(c),t}}}};return r}function pa(e){e===void 0&&(e={});var a=lr(null);return a.options=q({async:!0,ssr:!1},e),a}var ht=A(require("react")),gt=function(e){var a=e.sideCar,t=Ve(e,["sideCar"]);if(!a)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var o=a.read();if(!o)throw new Error("Sidecar medium not found");return ht.createElement(o,q({},t))};gt.isSideCarExport=!0;function ma(e,a){return e.useMedium(a),gt}var Xe=pa();var La=function(){},Ae=O.forwardRef(function(e,a){var t=O.useRef(null),o=O.useState({onScrollCapture:La,onWheelCapture:La,onTouchMoveCapture:La}),r=o[0],u=o[1],s=e.forwardProps,l=e.children,i=e.className,n=e.removeScrollBar,c=e.enabled,m=e.shards,x=e.sideCar,I=e.noRelative,h=e.noIsolation,d=e.inert,p=e.allowPinchZoom,L=e.as,f=L===void 0?"div":L,C=e.gapMode,S=Ve(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),w=x,y=ca([t,a]),g=q(q({},S),r);return O.createElement(O.Fragment,null,c&&O.createElement(w,{sideCar:Xe,removeScrollBar:n,shards:m,noRelative:I,noIsolation:h,inert:d,setCallbacks:u,allowPinchZoom:!!p,lockRef:t,gapMode:C}),s?O.cloneElement(O.Children.only(l),q(q({},g),{ref:y})):O.createElement(f,q({},g,{className:i,ref:y}),l))});Ae.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};Ae.classNames={fullWidth:ne,zeroRight:fe};var D=A(require("react"));var ge=A(require("react"));var wt=A(require("react"));var Ct;var St=function(){if(Ct)return Ct;if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function sr(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var a=St();return a&&e.setAttribute("nonce",a),e}function dr(e,a){e.styleSheet?e.styleSheet.cssText=a:e.appendChild(document.createTextNode(a))}function fr(e){var a=document.head||document.getElementsByTagName("head")[0];a.appendChild(e)}var xa=function(){var e=0,a=null;return{add:function(t){e==0&&(a=sr())&&(dr(a,t),fr(a)),e++},remove:function(){e--,!e&&a&&(a.parentNode&&a.parentNode.removeChild(a),a=null)}}};var Ia=function(){var e=xa();return function(a,t){wt.useEffect(function(){return e.add(a),function(){e.remove()}},[a&&t])}};var De=function(){var e=Ia(),a=function(t){var o=t.styles,r=t.dynamic;return e(o,r),null};return a};var nr={left:0,top:0,right:0,gap:0},ha=function(e){return parseInt(e||"",10)||0},ir=function(e){var a=window.getComputedStyle(document.body),t=a[e==="padding"?"paddingLeft":"marginLeft"],o=a[e==="padding"?"paddingTop":"marginTop"],r=a[e==="padding"?"paddingRight":"marginRight"];return[ha(t),ha(o),ha(r)]},ga=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return nr;var a=ir(e),t=document.documentElement.clientWidth,o=window.innerWidth;return{left:a[0],top:a[1],right:a[2],gap:Math.max(0,o-t+a[2]-a[0])}};var cr=De(),he="data-scroll-locked",pr=function(e,a,t,o){var r=e.left,u=e.top,s=e.right,l=e.gap;return t===void 0&&(t="margin"),`
|
|
131
|
-
.`.concat(
|
|
156
|
+
Path: {path}`,retryRegister:"Retry registration and open",cleanupCreated:"Clean up created Worktree",detached:"(detached HEAD)"},ae=null,He=null;function Ua(e){let a=e?.get?.("locale");if(!a||typeof a.register!="function"||typeof a.bind!="function")return()=>{};ae=a;let t;try{t=a.register(Le,{zh:qa,en:Bo})}catch{}return He=a.bind(Le),()=>{t?.(),ae===a&&(ae=null,He=null)}}function xe(e){return He?He(e):qa[e]??e}var Mo=e=>ae&&typeof ae.subscribe=="function"?ae.subscribe(e):()=>{},Oa=()=>ae&&typeof ae.getSnapshot=="function"?ae.getSnapshot():null;function re(){return(0,Ea.useSyncExternalStore)(Mo,Oa,Oa),xe}function ue(e,a){return e.replace(/\{(\w+)\}/g,(t,o)=>a[o]??`{${o}}`)}function F(e){let a=String(e??"");return a.length>1?a.replace(/[\\/]+$/,""):a}function Ha(e){return String(e||"task").trim().toLowerCase().replace(/[^a-z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||"task"}function Wa(e,a){let t=e.includes("\\")?"\\":"/";return`${F(e)}.worktrees${t}${a}`}var R=A(require("react"),1);function J(e,a,{checkForDefaultPrevented:t=!0}={}){return function(r){if(e?.(r),t===!1||!r.defaultPrevented)return a?.(r)}}var Ga=A(require("react"),1);function Na(e,a){if(typeof e=="function")return e(a);e!=null&&(e.current=a)}function ea(...e){return a=>{let t=!1,o=e.map(r=>{let u=Na(r,a);return!t&&typeof u=="function"&&(t=!0),u});if(t)return()=>{for(let r=0;r<o.length;r++){let u=o[r];typeof u=="function"?u():Na(e[r],null)}}}}function _(...e){return Ga.useCallback(ea(...e),e)}var G=A(require("react"),1),aa=require("react/jsx-runtime");function za(e,a){let t=G.createContext(a),o=u=>{let{children:s,...l}=u,i=G.useMemo(()=>l,Object.values(l));return(0,aa.jsx)(t.Provider,{value:i,children:s})};o.displayName=e+"Provider";function r(u){let s=G.useContext(t);if(s)return s;if(a!==void 0)return a;throw new Error(`\`${u}\` must be used within \`${e}\``)}return[o,r]}function Va(e,a=[]){let t=[];function o(u,s){let l=G.createContext(s),i=t.length;t=[...t,s];let f=L=>{let{scope:I,children:h,...C}=L,d=I?.[e]?.[i]||l,m=G.useMemo(()=>C,Object.values(C));return(0,aa.jsx)(d.Provider,{value:m,children:h})};f.displayName=u+"Provider";function c(L,I){let h=I?.[e]?.[i]||l,C=G.useContext(h);if(C)return C;if(s!==void 0)return s;throw new Error(`\`${L}\` must be used within \`${u}\``)}return[f,c]}let r=()=>{let u=t.map(s=>G.createContext(s));return function(l){let i=l?.[e]||u;return G.useMemo(()=>({[`__scope${e}`]:{...l,[e]:i}}),[l,i])}};return r.scopeName=e,[o,Fo(r,...a)]}function Fo(...e){let a=e[0];if(e.length===1)return a;let t=()=>{let o=e.map(r=>({useScope:r(),scopeName:r.scopeName}));return function(u){let s=o.reduce((l,{useScope:i,scopeName:f})=>{let L=i(u)[`__scope${f}`];return{...l,...L}},{});return G.useMemo(()=>({[`__scope${a.scopeName}`]:s}),[s])}};return t.scopeName=a.scopeName,t}var We=A(require("react"),1);var _a=A(require("react"),1),de=globalThis?.document?_a.useLayoutEffect:()=>{};var To=We.useId||(()=>{}),Oo=0;function Ne(e){let[a,t]=We.useState(To());return de(()=>{e||t(o=>o??String(Oo++))},[e]),e||(a?`radix-${a}`:"")}var le=A(require("react"),1);var Ie=A(require("react"),1);function X(e){let a=Ie.useRef(e);return Ie.useEffect(()=>{a.current=e}),Ie.useMemo(()=>(...t)=>a.current?.(...t),[])}function Xa({prop:e,defaultProp:a,onChange:t=()=>{}}){let[o,r]=Eo({defaultProp:a,onChange:t}),u=e!==void 0,s=u?e:o,l=X(t),i=le.useCallback(f=>{if(u){let L=typeof f=="function"?f(e):f;L!==e&&l(L)}else r(f)},[u,e,r,l]);return[s,i]}function Eo({defaultProp:e,onChange:a}){let t=le.useState(e),[o]=t,r=le.useRef(o),u=X(a);return le.useEffect(()=>{r.current!==o&&(u(o),r.current=o)},[o,r,u]),t}var B=A(require("react"),1);var Ka=A(require("react"),1),ja=A(require("react-dom"),1);var T=A(require("react"),1);var he=require("react/jsx-runtime"),Re=T.forwardRef((e,a)=>{let{children:t,...o}=e,r=T.Children.toArray(t),u=r.find(Uo);if(u){let s=u.props.children,l=r.map(i=>i===u?T.Children.count(s)>1?T.Children.only(null):T.isValidElement(s)?s.props.children:null:i);return(0,he.jsx)(ta,{...o,ref:a,children:T.isValidElement(s)?T.cloneElement(s,void 0,l):null})}return(0,he.jsx)(ta,{...o,ref:a,children:t})});Re.displayName="Slot";var ta=T.forwardRef((e,a)=>{let{children:t,...o}=e;if(T.isValidElement(t)){let r=Wo(t),u=Ho(o,t.props);return t.type!==T.Fragment&&(u.ref=a?ea(a,r):r),T.cloneElement(t,u)}return T.Children.count(t)>1?T.Children.only(null):null});ta.displayName="SlotClone";var qo=({children:e})=>(0,he.jsx)(he.Fragment,{children:e});function Uo(e){return T.isValidElement(e)&&e.type===qo}function Ho(e,a){let t={...a};for(let o in a){let r=e[o],u=a[o];/^on[A-Z]/.test(o)?r&&u?t[o]=(...l)=>{u(...l),r(...l)}:r&&(t[o]=r):o==="style"?t[o]={...r,...u}:o==="className"&&(t[o]=[r,u].filter(Boolean).join(" "))}return{...e,...t}}function Wo(e){let a=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,t=a&&"isReactWarning"in a&&a.isReactWarning;return t?e.ref:(a=Object.getOwnPropertyDescriptor(e,"ref")?.get,t=a&&"isReactWarning"in a&&a.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}var Za=require("react/jsx-runtime"),No=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"],H=No.reduce((e,a)=>{let t=Ka.forwardRef((o,r)=>{let{asChild:u,...s}=o,l=u?Re:a;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),(0,Za.jsx)(l,{...s,ref:r})});return t.displayName=`Primitive.${a}`,{...e,[a]:t}},{});function $a(e,a){e&&ja.flushSync(()=>e.dispatchEvent(a))}var Ja=A(require("react"),1);function Qa(e,a=globalThis?.document){let t=X(e);Ja.useEffect(()=>{let o=r=>{r.key==="Escape"&&t(r)};return a.addEventListener("keydown",o,{capture:!0}),()=>a.removeEventListener("keydown",o,{capture:!0})},[t,a])}var ra=require("react/jsx-runtime"),Go="DismissableLayer",oa="dismissableLayer.update",zo="dismissableLayer.pointerDownOutside",Vo="dismissableLayer.focusOutside",Ya,at=B.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),ua=B.forwardRef((e,a)=>{let{disableOutsidePointerEvents:t=!1,onEscapeKeyDown:o,onPointerDownOutside:r,onFocusOutside:u,onInteractOutside:s,onDismiss:l,...i}=e,f=B.useContext(at),[c,L]=B.useState(null),I=c?.ownerDocument??globalThis?.document,[,h]=B.useState({}),C=_(a,g=>L(g)),d=Array.from(f.layers),[m]=[...f.layersWithOutsidePointerEventsDisabled].slice(-1),w=d.indexOf(m),v=c?d.indexOf(c):-1,y=f.layersWithOutsidePointerEventsDisabled.size>0,p=v>=w,x=Ko(g=>{let M=g.target,E=[...f.branches].some(V=>V.contains(M));!p||E||(r?.(g),s?.(g),g.defaultPrevented||l?.())},I),n=jo(g=>{let M=g.target;[...f.branches].some(V=>V.contains(M))||(u?.(g),s?.(g),g.defaultPrevented||l?.())},I);return Qa(g=>{v===f.layers.size-1&&(o?.(g),!g.defaultPrevented&&l&&(g.preventDefault(),l()))},I),B.useEffect(()=>{if(c)return t&&(f.layersWithOutsidePointerEventsDisabled.size===0&&(Ya=I.body.style.pointerEvents,I.body.style.pointerEvents="none"),f.layersWithOutsidePointerEventsDisabled.add(c)),f.layers.add(c),et(),()=>{t&&f.layersWithOutsidePointerEventsDisabled.size===1&&(I.body.style.pointerEvents=Ya)}},[c,I,t,f]),B.useEffect(()=>()=>{c&&(f.layers.delete(c),f.layersWithOutsidePointerEventsDisabled.delete(c),et())},[c,f]),B.useEffect(()=>{let g=()=>h({});return document.addEventListener(oa,g),()=>document.removeEventListener(oa,g)},[]),(0,ra.jsx)(H.div,{...i,ref:C,style:{pointerEvents:y?p?"auto":"none":void 0,...e.style},onFocusCapture:J(e.onFocusCapture,n.onFocusCapture),onBlurCapture:J(e.onBlurCapture,n.onBlurCapture),onPointerDownCapture:J(e.onPointerDownCapture,x.onPointerDownCapture)})});ua.displayName=Go;var _o="DismissableLayerBranch",Xo=B.forwardRef((e,a)=>{let t=B.useContext(at),o=B.useRef(null),r=_(a,o);return B.useEffect(()=>{let u=o.current;if(u)return t.branches.add(u),()=>{t.branches.delete(u)}},[t.branches]),(0,ra.jsx)(H.div,{...e,ref:r})});Xo.displayName=_o;function Ko(e,a=globalThis?.document){let t=X(e),o=B.useRef(!1),r=B.useRef(()=>{});return B.useEffect(()=>{let u=l=>{if(l.target&&!o.current){let f=function(){tt(zo,t,c,{discrete:!0})};var i=f;let c={originalEvent:l};l.pointerType==="touch"?(a.removeEventListener("click",r.current),r.current=f,a.addEventListener("click",r.current,{once:!0})):f()}else a.removeEventListener("click",r.current);o.current=!1},s=window.setTimeout(()=>{a.addEventListener("pointerdown",u)},0);return()=>{window.clearTimeout(s),a.removeEventListener("pointerdown",u),a.removeEventListener("click",r.current)}},[a,t]),{onPointerDownCapture:()=>o.current=!0}}function jo(e,a=globalThis?.document){let t=X(e),o=B.useRef(!1);return B.useEffect(()=>{let r=u=>{u.target&&!o.current&&tt(Vo,t,{originalEvent:u},{discrete:!1})};return a.addEventListener("focusin",r),()=>a.removeEventListener("focusin",r)},[a,t]),{onFocusCapture:()=>o.current=!0,onBlurCapture:()=>o.current=!1}}function et(){let e=new CustomEvent(oa);document.dispatchEvent(e)}function tt(e,a,t,{discrete:o}){let r=t.originalEvent.target,u=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:t});a&&r.addEventListener(e,a,{once:!0}),o?$a(r,u):r.dispatchEvent(u)}var z=A(require("react"),1);var st=require("react/jsx-runtime"),la="focusScope.autoFocusOnMount",sa="focusScope.autoFocusOnUnmount",ot={bubbles:!1,cancelable:!0},Zo="FocusScope",da=z.forwardRef((e,a)=>{let{loop:t=!1,trapped:o=!1,onMountAutoFocus:r,onUnmountAutoFocus:u,...s}=e,[l,i]=z.useState(null),f=X(r),c=X(u),L=z.useRef(null),I=_(a,d=>i(d)),h=z.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;z.useEffect(()=>{if(o){let v=function(n){if(h.paused||!l)return;let g=n.target;l.contains(g)?L.current=g:se(L.current,{select:!0})},y=function(n){if(h.paused||!l)return;let g=n.relatedTarget;g!==null&&(l.contains(g)||se(L.current,{select:!0}))},p=function(n){if(document.activeElement===document.body)for(let M of n)M.removedNodes.length>0&&se(l)};var d=v,m=y,w=p;document.addEventListener("focusin",v),document.addEventListener("focusout",y);let x=new MutationObserver(p);return l&&x.observe(l,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",v),document.removeEventListener("focusout",y),x.disconnect()}}},[o,l,h.paused]),z.useEffect(()=>{if(l){ut.add(h);let d=document.activeElement;if(!l.contains(d)){let w=new CustomEvent(la,ot);l.addEventListener(la,f),l.dispatchEvent(w),w.defaultPrevented||($o(ar(dt(l)),{select:!0}),document.activeElement===d&&se(l))}return()=>{l.removeEventListener(la,f),setTimeout(()=>{let w=new CustomEvent(sa,ot);l.addEventListener(sa,c),l.dispatchEvent(w),w.defaultPrevented||se(d??document.body,{select:!0}),l.removeEventListener(sa,c),ut.remove(h)},0)}}},[l,f,c,h]);let C=z.useCallback(d=>{if(!t&&!o||h.paused)return;let m=d.key==="Tab"&&!d.altKey&&!d.ctrlKey&&!d.metaKey,w=document.activeElement;if(m&&w){let v=d.currentTarget,[y,p]=Jo(v);y&&p?!d.shiftKey&&w===p?(d.preventDefault(),t&&se(y,{select:!0})):d.shiftKey&&w===y&&(d.preventDefault(),t&&se(p,{select:!0})):w===v&&d.preventDefault()}},[t,o,h.paused]);return(0,st.jsx)(H.div,{tabIndex:-1,...s,ref:I,onKeyDown:C})});da.displayName=Zo;function $o(e,{select:a=!1}={}){let t=document.activeElement;for(let o of e)if(se(o,{select:a}),document.activeElement!==t)return}function Jo(e){let a=dt(e),t=rt(a,e),o=rt(a.reverse(),e);return[t,o]}function dt(e){let a=[],t=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:o=>{let r=o.tagName==="INPUT"&&o.type==="hidden";return o.disabled||o.hidden||r?NodeFilter.FILTER_SKIP:o.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;t.nextNode();)a.push(t.currentNode);return a}function rt(e,a){for(let t of e)if(!Qo(t,{upTo:a}))return t}function Qo(e,{upTo:a}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(a!==void 0&&e===a)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function Yo(e){return e instanceof HTMLInputElement&&"select"in e}function se(e,{select:a=!1}={}){if(e&&e.focus){let t=document.activeElement;e.focus({preventScroll:!0}),e!==t&&Yo(e)&&a&&e.select()}}var ut=er();function er(){let e=[];return{add(a){let t=e[0];a!==t&&t?.pause(),e=lt(e,a),e.unshift(a)},remove(a){e=lt(e,a),e[0]?.resume()}}}function lt(e,a){let t=[...e],o=t.indexOf(a);return o!==-1&&t.splice(o,1),t}function ar(e){return e.filter(a=>a.tagName!=="A")}var Ge=A(require("react"),1),ft=A(require("react-dom"),1);var nt=require("react/jsx-runtime"),tr="Portal",fa=Ge.forwardRef((e,a)=>{let{container:t,...o}=e,[r,u]=Ge.useState(!1);de(()=>u(!0),[]);let s=t||r&&globalThis?.document?.body;return s?ft.default.createPortal((0,nt.jsx)(H.div,{...o,ref:a}),s):null});fa.displayName=tr;var q=A(require("react"),1);var it=A(require("react"),1);function or(e,a){return it.useReducer((t,o)=>a[t][o]??t,e)}var Ae=e=>{let{present:a,children:t}=e,o=rr(a),r=typeof t=="function"?t({present:o.isPresent}):q.Children.only(t),u=_(o.ref,ur(r));return typeof t=="function"||o.isPresent?q.cloneElement(r,{ref:u}):null};Ae.displayName="Presence";function rr(e){let[a,t]=q.useState(),o=q.useRef({}),r=q.useRef(e),u=q.useRef("none"),s=e?"mounted":"unmounted",[l,i]=or(s,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return q.useEffect(()=>{let f=ze(o.current);u.current=l==="mounted"?f:"none"},[l]),de(()=>{let f=o.current,c=r.current;if(c!==e){let I=u.current,h=ze(f);e?i("MOUNT"):h==="none"||f?.display==="none"?i("UNMOUNT"):i(c&&I!==h?"ANIMATION_OUT":"UNMOUNT"),r.current=e}},[e,i]),de(()=>{if(a){let f,c=a.ownerDocument.defaultView??window,L=h=>{let d=ze(o.current).includes(h.animationName);if(h.target===a&&d&&(i("ANIMATION_END"),!r.current)){let m=a.style.animationFillMode;a.style.animationFillMode="forwards",f=c.setTimeout(()=>{a.style.animationFillMode==="forwards"&&(a.style.animationFillMode=m)})}},I=h=>{h.target===a&&(u.current=ze(o.current))};return a.addEventListener("animationstart",I),a.addEventListener("animationcancel",L),a.addEventListener("animationend",L),()=>{c.clearTimeout(f),a.removeEventListener("animationstart",I),a.removeEventListener("animationcancel",L),a.removeEventListener("animationend",L)}}else i("ANIMATION_END")},[a,i]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:q.useCallback(f=>{f&&(o.current=getComputedStyle(f)),t(f)},[])}}function ze(e){return e?.animationName||"none"}function ur(e){let a=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,t=a&&"isReactWarning"in a&&a.isReactWarning;return t?e.ref:(a=Object.getOwnPropertyDescriptor(e,"ref")?.get,t=a&&"isReactWarning"in a&&a.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}var pt=A(require("react"),1),na=0;function mt(){pt.useEffect(()=>{let e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??ct()),document.body.insertAdjacentElement("beforeend",e[1]??ct()),na++,()=>{na===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(a=>a.remove()),na--}},[])}function ct(){let e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var U=function(){return U=Object.assign||function(a){for(var t,o=1,r=arguments.length;o<r;o++){t=arguments[o];for(var u in t)Object.prototype.hasOwnProperty.call(t,u)&&(a[u]=t[u])}return a},U.apply(this,arguments)};function Ve(e,a){var t={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&a.indexOf(o)<0&&(t[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r<o.length;r++)a.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(t[o[r]]=e[o[r]]);return t}function Lt(e,a,t){if(t||arguments.length===2)for(var o=0,r=a.length,u;o<r;o++)(u||!(o in a))&&(u||(u=Array.prototype.slice.call(a,0,o)),u[o]=a[o]);return e.concat(u||Array.prototype.slice.call(a))}var Ze=A(require("react"));var O=A(require("react"));var fe="right-scroll-bar-position",ne="width-before-scroll-bar",ia="with-scroll-bars-hidden",ca="--removed-body-scroll-bar-size";function _e(e,a){return typeof e=="function"?e(a):e&&(e.current=a),e}var xt=require("react");function It(e,a){var t=(0,xt.useState)(function(){return{value:e,callback:a,facade:{get current(){return t.value},set current(o){var r=t.value;r!==o&&(t.value=o,t.callback(o,r))}}}})[0];return t.callback=a,t.facade}var Xe=A(require("react"));var lr=typeof window<"u"?Xe.useLayoutEffect:Xe.useEffect,ht=new WeakMap;function pa(e,a){var t=It(a||null,function(o){return e.forEach(function(r){return _e(r,o)})});return lr(function(){var o=ht.get(t);if(o){var r=new Set(o),u=new Set(e),s=t.current;r.forEach(function(l){u.has(l)||_e(l,null)}),u.forEach(function(l){r.has(l)||_e(l,s)})}ht.set(t,e)},[e]),t}function sr(e){return e}function dr(e,a){a===void 0&&(a=sr);var t=[],o=!1,r={read:function(){if(o)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return t.length?t[t.length-1]:e},useMedium:function(u){var s=a(u,o);return t.push(s),function(){t=t.filter(function(l){return l!==s})}},assignSyncMedium:function(u){for(o=!0;t.length;){var s=t;t=[],s.forEach(u)}t={push:function(l){return u(l)},filter:function(){return t}}},assignMedium:function(u){o=!0;var s=[];if(t.length){var l=t;t=[],l.forEach(u),s=t}var i=function(){var c=s;s=[],c.forEach(u)},f=function(){return Promise.resolve().then(i)};f(),t={push:function(c){s.push(c),f()},filter:function(c){return s=s.filter(c),t}}}};return r}function ma(e){e===void 0&&(e={});var a=dr(null);return a.options=U({async:!0,ssr:!1},e),a}var gt=A(require("react")),Ct=function(e){var a=e.sideCar,t=Ve(e,["sideCar"]);if(!a)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var o=a.read();if(!o)throw new Error("Sidecar medium not found");return gt.createElement(o,U({},t))};Ct.isSideCarExport=!0;function La(e,a){return e.useMedium(a),Ct}var Ke=ma();var xa=function(){},De=O.forwardRef(function(e,a){var t=O.useRef(null),o=O.useState({onScrollCapture:xa,onWheelCapture:xa,onTouchMoveCapture:xa}),r=o[0],u=o[1],s=e.forwardProps,l=e.children,i=e.className,f=e.removeScrollBar,c=e.enabled,L=e.shards,I=e.sideCar,h=e.noRelative,C=e.noIsolation,d=e.inert,m=e.allowPinchZoom,w=e.as,v=w===void 0?"div":w,y=e.gapMode,p=Ve(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),x=I,n=pa([t,a]),g=U(U({},p),r);return O.createElement(O.Fragment,null,c&&O.createElement(x,{sideCar:Ke,removeScrollBar:f,shards:L,noRelative:h,noIsolation:C,inert:d,setCallbacks:u,allowPinchZoom:!!m,lockRef:t,gapMode:y}),s?O.cloneElement(O.Children.only(l),U(U({},g),{ref:n})):O.createElement(v,U({},g,{className:i,ref:n}),l))});De.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};De.classNames={fullWidth:ne,zeroRight:fe};var D=A(require("react"));var Ce=A(require("react"));var vt=A(require("react"));var St;var wt=function(){if(St)return St;if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function fr(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var a=wt();return a&&e.setAttribute("nonce",a),e}function nr(e,a){e.styleSheet?e.styleSheet.cssText=a:e.appendChild(document.createTextNode(a))}function ir(e){var a=document.head||document.getElementsByTagName("head")[0];a.appendChild(e)}var Ia=function(){var e=0,a=null;return{add:function(t){e==0&&(a=fr())&&(nr(a,t),ir(a)),e++},remove:function(){e--,!e&&a&&(a.parentNode&&a.parentNode.removeChild(a),a=null)}}};var ha=function(){var e=Ia();return function(a,t){vt.useEffect(function(){return e.add(a),function(){e.remove()}},[a&&t])}};var Be=function(){var e=ha(),a=function(t){var o=t.styles,r=t.dynamic;return e(o,r),null};return a};var cr={left:0,top:0,right:0,gap:0},ga=function(e){return parseInt(e||"",10)||0},pr=function(e){var a=window.getComputedStyle(document.body),t=a[e==="padding"?"paddingLeft":"marginLeft"],o=a[e==="padding"?"paddingTop":"marginTop"],r=a[e==="padding"?"paddingRight":"marginRight"];return[ga(t),ga(o),ga(r)]},Ca=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return cr;var a=pr(e),t=document.documentElement.clientWidth,o=window.innerWidth;return{left:a[0],top:a[1],right:a[2],gap:Math.max(0,o-t+a[2]-a[0])}};var mr=Be(),ge="data-scroll-locked",Lr=function(e,a,t,o){var r=e.left,u=e.top,s=e.right,l=e.gap;return t===void 0&&(t="margin"),`
|
|
157
|
+
.`.concat(ia,` {
|
|
132
158
|
overflow: hidden `).concat(o,`;
|
|
133
159
|
padding-right: `).concat(l,"px ").concat(o,`;
|
|
134
160
|
}
|
|
135
|
-
body[`).concat(
|
|
161
|
+
body[`).concat(ge,`] {
|
|
136
162
|
overflow: hidden `).concat(o,`;
|
|
137
163
|
overscroll-behavior: contain;
|
|
138
164
|
`).concat([a&&"position: relative ".concat(o,";"),t==="margin"&&`
|
|
@@ -161,17 +187,17 @@ Path: {path}`,retryRegister:"Retry registration and open",cleanupCreated:"Clean
|
|
|
161
187
|
margin-right: 0 `).concat(o,`;
|
|
162
188
|
}
|
|
163
189
|
|
|
164
|
-
body[`).concat(
|
|
165
|
-
`).concat(
|
|
190
|
+
body[`).concat(ge,`] {
|
|
191
|
+
`).concat(ca,": ").concat(l,`px;
|
|
166
192
|
}
|
|
167
|
-
`)},
|
|
193
|
+
`)},kt=function(){var e=parseInt(document.body.getAttribute(ge)||"0",10);return isFinite(e)?e:0},xr=function(){Ce.useEffect(function(){return document.body.setAttribute(ge,(kt()+1).toString()),function(){var e=kt()-1;e<=0?document.body.removeAttribute(ge):document.body.setAttribute(ge,e.toString())}},[])},Sa=function(e){var a=e.noRelative,t=e.noImportant,o=e.gapMode,r=o===void 0?"margin":o;xr();var u=Ce.useMemo(function(){return Ca(r)},[r]);return Ce.createElement(mr,{styles:Lr(u,!a,r,t?"":"!important")})};var wa=!1;if(typeof window<"u")try{Me=Object.defineProperty({},"passive",{get:function(){return wa=!0,!0}}),window.addEventListener("test",Me,Me),window.removeEventListener("test",Me,Me)}catch{wa=!1}var Me,ie=wa?{passive:!1}:!1;var Ir=function(e){return e.tagName==="TEXTAREA"},yt=function(e,a){if(!(e instanceof Element))return!1;var t=window.getComputedStyle(e);return t[a]!=="hidden"&&!(t.overflowY===t.overflowX&&!Ir(e)&&t[a]==="visible")},hr=function(e){return yt(e,"overflowY")},gr=function(e){return yt(e,"overflowX")},va=function(e,a){var t=a.ownerDocument,o=a;do{typeof ShadowRoot<"u"&&o instanceof ShadowRoot&&(o=o.host);var r=bt(e,o);if(r){var u=Pt(e,o),s=u[1],l=u[2];if(s>l)return!0}o=o.parentNode}while(o&&o!==t.body);return!1},Cr=function(e){var a=e.scrollTop,t=e.scrollHeight,o=e.clientHeight;return[a,t,o]},Sr=function(e){var a=e.scrollLeft,t=e.scrollWidth,o=e.clientWidth;return[a,t,o]},bt=function(e,a){return e==="v"?hr(a):gr(a)},Pt=function(e,a){return e==="v"?Cr(a):Sr(a)},wr=function(e,a){return e==="h"&&a==="rtl"?-1:1},Rt=function(e,a,t,o,r){var u=wr(e,window.getComputedStyle(a).direction),s=u*o,l=t.target,i=a.contains(l),f=!1,c=s>0,L=0,I=0;do{if(!l)break;var h=Pt(e,l),C=h[0],d=h[1],m=h[2],w=d-m-u*C;(C||w)&&bt(e,l)&&(L+=w,I+=C);var v=l.parentNode;l=v&&v.nodeType===Node.DOCUMENT_FRAGMENT_NODE?v.host:v}while(!i&&l!==document.body||i&&(a.contains(l)||a===l));return(c&&(r&&Math.abs(L)<1||!r&&s>L)||!c&&(r&&Math.abs(I)<1||!r&&-s>I))&&(f=!0),f};var je=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},At=function(e){return[e.deltaX,e.deltaY]},Dt=function(e){return e&&"current"in e?e.current:e},vr=function(e,a){return e[0]===a[0]&&e[1]===a[1]},kr=function(e){return`
|
|
168
194
|
.block-interactivity-`.concat(e,` {pointer-events: none;}
|
|
169
195
|
.allow-interactivity-`).concat(e,` {pointer-events: all;}
|
|
170
|
-
`)},
|
|
196
|
+
`)},yr=0,Se=[];function Bt(e){var a=D.useRef([]),t=D.useRef([0,0]),o=D.useRef(),r=D.useState(yr++)[0],u=D.useState(Be)[0],s=D.useRef(e);D.useEffect(function(){s.current=e},[e]),D.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(r));var d=Lt([e.lockRef.current],(e.shards||[]).map(Dt),!0).filter(Boolean);return d.forEach(function(m){return m.classList.add("allow-interactivity-".concat(r))}),function(){document.body.classList.remove("block-interactivity-".concat(r)),d.forEach(function(m){return m.classList.remove("allow-interactivity-".concat(r))})}}},[e.inert,e.lockRef.current,e.shards]);var l=D.useCallback(function(d,m){if("touches"in d&&d.touches.length===2||d.type==="wheel"&&d.ctrlKey)return!s.current.allowPinchZoom;var w=je(d),v=t.current,y="deltaX"in d?d.deltaX:v[0]-w[0],p="deltaY"in d?d.deltaY:v[1]-w[1],x,n=d.target,g=Math.abs(y)>Math.abs(p)?"h":"v";if("touches"in d&&g==="h"&&n.type==="range")return!1;var M=window.getSelection(),E=M&&M.anchorNode,V=E?E===n||E.contains(n):!1;if(V)return!1;var Y=va(g,n);if(!Y)return!0;if(Y?x=g:(x=g==="v"?"h":"v",Y=va(g,n)),!Y)return!1;if(!o.current&&"changedTouches"in d&&(y||p)&&(o.current=x),!x)return!0;var Oe=o.current||x;return Rt(Oe,m,d,Oe==="h"?y:p,!0)},[]),i=D.useCallback(function(d){var m=d;if(!(!Se.length||Se[Se.length-1]!==u)){var w="deltaY"in m?At(m):je(m),v=a.current.filter(function(x){return x.name===m.type&&(x.target===m.target||m.target===x.shadowParent)&&vr(x.delta,w)})[0];if(v&&v.should){m.cancelable&&m.preventDefault();return}if(!v){var y=(s.current.shards||[]).map(Dt).filter(Boolean).filter(function(x){return x.contains(m.target)}),p=y.length>0?l(m,y[0]):!s.current.noIsolation;p&&m.cancelable&&m.preventDefault()}}},[]),f=D.useCallback(function(d,m,w,v){var y={name:d,delta:m,target:w,should:v,shadowParent:br(w)};a.current.push(y),setTimeout(function(){a.current=a.current.filter(function(p){return p!==y})},1)},[]),c=D.useCallback(function(d){t.current=je(d),o.current=void 0},[]),L=D.useCallback(function(d){f(d.type,At(d),d.target,l(d,e.lockRef.current))},[]),I=D.useCallback(function(d){f(d.type,je(d),d.target,l(d,e.lockRef.current))},[]);D.useEffect(function(){return Se.push(u),e.setCallbacks({onScrollCapture:L,onWheelCapture:L,onTouchMoveCapture:I}),document.addEventListener("wheel",i,ie),document.addEventListener("touchmove",i,ie),document.addEventListener("touchstart",c,ie),function(){Se=Se.filter(function(d){return d!==u}),document.removeEventListener("wheel",i,ie),document.removeEventListener("touchmove",i,ie),document.removeEventListener("touchstart",c,ie)}},[]);var h=e.removeScrollBar,C=e.inert;return D.createElement(D.Fragment,null,C?D.createElement(u,{styles:kr(r)}):null,h?D.createElement(Sa,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function br(e){for(var a=null;e!==null;)e instanceof ShadowRoot&&(a=e.host,e=e.host),e=e.parentNode;return a}var Mt=La(Ke,Bt);var Ft=Ze.forwardRef(function(e,a){return Ze.createElement(De,U({},e,{ref:a,sideCar:Mt}))});Ft.classNames=De.classNames;var ka=Ft;var Pr=function(e){if(typeof document>"u")return null;var a=Array.isArray(e)?e[0]:e;return a.ownerDocument.body},we=new WeakMap,$e=new WeakMap,Je={},ya=0,Tt=function(e){return e&&(e.host||Tt(e.parentNode))},Rr=function(e,a){return a.map(function(t){if(e.contains(t))return t;var o=Tt(t);return o&&e.contains(o)?o:(console.error("aria-hidden",t,"in not contained inside",e,". Doing nothing"),null)}).filter(function(t){return!!t})},Ar=function(e,a,t,o){var r=Rr(a,Array.isArray(e)?e:[e]);Je[t]||(Je[t]=new WeakMap);var u=Je[t],s=[],l=new Set,i=new Set(r),f=function(L){!L||l.has(L)||(l.add(L),f(L.parentNode))};r.forEach(f);var c=function(L){!L||i.has(L)||Array.prototype.forEach.call(L.children,function(I){if(l.has(I))c(I);else try{var h=I.getAttribute(o),C=h!==null&&h!=="false",d=(we.get(I)||0)+1,m=(u.get(I)||0)+1;we.set(I,d),u.set(I,m),s.push(I),d===1&&C&&$e.set(I,!0),m===1&&I.setAttribute(t,"true"),C||I.setAttribute(o,"true")}catch(w){console.error("aria-hidden: cannot operate on ",I,w)}})};return c(a),l.clear(),ya++,function(){s.forEach(function(L){var I=we.get(L)-1,h=u.get(L)-1;we.set(L,I),u.set(L,h),I||($e.has(L)||L.removeAttribute(o),$e.delete(L)),h||L.removeAttribute(t)}),ya--,ya||(we=new WeakMap,we=new WeakMap,$e=new WeakMap,Je={})}},Ot=function(e,a,t){t===void 0&&(t="data-aria-hidden");var o=Array.from(Array.isArray(e)?e:[e]),r=a||Pr(e);return r?(o.push.apply(o,Array.from(r.querySelectorAll("[aria-live], script"))),Ar(o,r,t,"aria-hidden")):function(){return null}};var b=require("react/jsx-runtime"),ba="Dialog",[Et,Cs]=Va(ba),[Dr,K]=Et(ba),qt=e=>{let{__scopeDialog:a,children:t,open:o,defaultOpen:r,onOpenChange:u,modal:s=!0}=e,l=R.useRef(null),i=R.useRef(null),[f=!1,c]=Xa({prop:o,defaultProp:r,onChange:u});return(0,b.jsx)(Dr,{scope:a,triggerRef:l,contentRef:i,contentId:Ne(),titleId:Ne(),descriptionId:Ne(),open:f,onOpenChange:c,onOpenToggle:R.useCallback(()=>c(L=>!L),[c]),modal:s,children:t})};qt.displayName=ba;var Ut="DialogTrigger",Br=R.forwardRef((e,a)=>{let{__scopeDialog:t,...o}=e,r=K(Ut,t),u=_(a,r.triggerRef);return(0,b.jsx)(H.button,{type:"button","aria-haspopup":"dialog","aria-expanded":r.open,"aria-controls":r.contentId,"data-state":Aa(r.open),...o,ref:u,onClick:J(e.onClick,r.onOpenToggle)})});Br.displayName=Ut;var Pa="DialogPortal",[Mr,Ht]=Et(Pa,{forceMount:void 0}),Wt=e=>{let{__scopeDialog:a,forceMount:t,children:o,container:r}=e,u=K(Pa,a);return(0,b.jsx)(Mr,{scope:a,forceMount:t,children:R.Children.map(o,s=>(0,b.jsx)(Ae,{present:t||u.open,children:(0,b.jsx)(fa,{asChild:!0,container:r,children:s})}))})};Wt.displayName=Pa;var Qe="DialogOverlay",Nt=R.forwardRef((e,a)=>{let t=Ht(Qe,e.__scopeDialog),{forceMount:o=t.forceMount,...r}=e,u=K(Qe,e.__scopeDialog);return u.modal?(0,b.jsx)(Ae,{present:o||u.open,children:(0,b.jsx)(Fr,{...r,ref:a})}):null});Nt.displayName=Qe;var Fr=R.forwardRef((e,a)=>{let{__scopeDialog:t,...o}=e,r=K(Qe,t);return(0,b.jsx)(ka,{as:Re,allowPinchZoom:!0,shards:[r.contentRef],children:(0,b.jsx)(H.div,{"data-state":Aa(r.open),...o,ref:a,style:{pointerEvents:"auto",...o.style}})})}),ce="DialogContent",Gt=R.forwardRef((e,a)=>{let t=Ht(ce,e.__scopeDialog),{forceMount:o=t.forceMount,...r}=e,u=K(ce,e.__scopeDialog);return(0,b.jsx)(Ae,{present:o||u.open,children:u.modal?(0,b.jsx)(Tr,{...r,ref:a}):(0,b.jsx)(Or,{...r,ref:a})})});Gt.displayName=ce;var Tr=R.forwardRef((e,a)=>{let t=K(ce,e.__scopeDialog),o=R.useRef(null),r=_(a,t.contentRef,o);return R.useEffect(()=>{let u=o.current;if(u)return Ot(u)},[]),(0,b.jsx)(zt,{...e,ref:r,trapFocus:t.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:J(e.onCloseAutoFocus,u=>{u.preventDefault(),t.triggerRef.current?.focus()}),onPointerDownOutside:J(e.onPointerDownOutside,u=>{let s=u.detail.originalEvent,l=s.button===0&&s.ctrlKey===!0;(s.button===2||l)&&u.preventDefault()}),onFocusOutside:J(e.onFocusOutside,u=>u.preventDefault())})}),Or=R.forwardRef((e,a)=>{let t=K(ce,e.__scopeDialog),o=R.useRef(!1),r=R.useRef(!1);return(0,b.jsx)(zt,{...e,ref:a,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:u=>{e.onCloseAutoFocus?.(u),u.defaultPrevented||(o.current||t.triggerRef.current?.focus(),u.preventDefault()),o.current=!1,r.current=!1},onInteractOutside:u=>{e.onInteractOutside?.(u),u.defaultPrevented||(o.current=!0,u.detail.originalEvent.type==="pointerdown"&&(r.current=!0));let s=u.target;t.triggerRef.current?.contains(s)&&u.preventDefault(),u.detail.originalEvent.type==="focusin"&&r.current&&u.preventDefault()}})}),zt=R.forwardRef((e,a)=>{let{__scopeDialog:t,trapFocus:o,onOpenAutoFocus:r,onCloseAutoFocus:u,...s}=e,l=K(ce,t),i=R.useRef(null),f=_(a,i);return mt(),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(da,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:r,onUnmountAutoFocus:u,children:(0,b.jsx)(ua,{role:"dialog",id:l.contentId,"aria-describedby":l.descriptionId,"aria-labelledby":l.titleId,"data-state":Aa(l.open),...s,ref:f,onDismiss:()=>l.onOpenChange(!1)})}),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(Er,{titleId:l.titleId}),(0,b.jsx)(Ur,{contentRef:i,descriptionId:l.descriptionId})]})]})}),Ra="DialogTitle",Vt=R.forwardRef((e,a)=>{let{__scopeDialog:t,...o}=e,r=K(Ra,t);return(0,b.jsx)(H.h2,{id:r.titleId,...o,ref:a})});Vt.displayName=Ra;var _t="DialogDescription",Xt=R.forwardRef((e,a)=>{let{__scopeDialog:t,...o}=e,r=K(_t,t);return(0,b.jsx)(H.p,{id:r.descriptionId,...o,ref:a})});Xt.displayName=_t;var Kt="DialogClose",jt=R.forwardRef((e,a)=>{let{__scopeDialog:t,...o}=e,r=K(Kt,t);return(0,b.jsx)(H.button,{type:"button",...o,ref:a,onClick:J(e.onClick,()=>r.onOpenChange(!1))})});jt.displayName=Kt;function Aa(e){return e?"open":"closed"}var Zt="DialogTitleWarning",[Ss,$t]=za(Zt,{contentName:ce,titleName:Ra,docsSlug:"dialog"}),Er=({titleId:e})=>{let a=$t(Zt),t=`\`${a.contentName}\` requires a \`${a.titleName}\` for the component to be accessible for screen reader users.
|
|
171
197
|
|
|
172
198
|
If you want to hide the \`${a.titleName}\`, you can wrap it with our VisuallyHidden component.
|
|
173
199
|
|
|
174
|
-
For more information, see https://radix-ui.com/primitives/docs/components/${a.docsSlug}`;return b.useEffect(()=>{e&&(document.getElementById(e)||console.error(t))},[t,e]),null},Or="DialogDescriptionWarning",Er=({contentRef:e,descriptionId:a})=>{let o=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${Zt(Or).contentName}}.`;return b.useEffect(()=>{let r=e.current?.getAttribute("aria-describedby");a&&r&&(document.getElementById(a)||console.warn(o))},[o,e,a]),null},$t=Et;var Jt=Ht,Qt=Wt,Yt=Nt,eo=Vt,ao=_t,to=Kt;var Z=require("react/jsx-runtime");function H({className:e="",...a}){return(0,Z.jsx)("button",{className:`dswt-button ${e}`,...a})}function oo({className:e="",...a}){return(0,Z.jsx)("input",{className:`dswt-input ${e}`,...a})}function ro({children:e,...a}){return(0,Z.jsx)($t,{...a,children:e})}function uo({children:e}){let a=te();return(0,Z.jsxs)(Jt,{children:[(0,Z.jsx)(Qt,{className:"dswt-dialog-overlay"}),(0,Z.jsxs)(Yt,{className:"dswt-dialog-content",children:[e,(0,Z.jsx)(to,{className:"dswt-dialog-close","aria-label":a("close"),children:(0,Z.jsx)(ye,{size:16})})]})]})}var lo=eo,so=ao;var v=require("react/jsx-runtime");function fo({target:e,api:a,workspaces:t,sessions:o,defaultBaseChoice:r="current",onCreated:u,onClose:s}){let l=te(),[i,n]=(0,Y.useState)(null),[c,m]=(0,Y.useState)(""),[x,I]=(0,Y.useState)(r),[h,d]=(0,Y.useState)(""),[p,L]=(0,Y.useState)(!1),[f,C]=(0,Y.useState)(null);(0,Y.useEffect)(()=>{let P=!0;return n(null),d(""),m(""),I(r),a.list(e.path).then(W=>{P&&n(W)}).catch(W=>{P&&d(String(W?.message??W))}),()=>{P=!1}},[a,r,e.path]);let S=i?.repoPath,w=Ua(c),y=`task/${w}`,g=S?Ha(S,w):"",T=i?.worktrees.find(P=>F(P.path)===F(e.path))?.branch??"HEAD",$=i?.defaultBranch??i?.worktrees.find(P=>P.isMain)?.branch??T,le=x==="main"?i?.defaultRef??$:T,me=async(P,W)=>{let J=await t.create({path:P});await t.rename(J.workspaceId,`${e.title}/${W}`);let Le=await t.connectWorkspace(J.workspaceId);u(P),o.open(Le),s()},Te=async()=>{if(f){L(!0),d("");try{await me(f.path,f.branch.replace(/^task\//,"")),C(null)}catch(P){d(`${l("registerFailed")} ${String(P?.message??P)}`)}finally{L(!1)}}},Lo=async()=>{if(f){L(!0),d("");try{await a.remove({repoPath:f.repoPath,path:f.path}),C(null),s()}catch(P){d(oe(l("cleanupFailed"),{error:String(P?.message??P),path:f.path}))}finally{L(!1)}}},xo=async()=>{if(!S||!c.trim()){d(l("fillTaskName"));return}L(!0),d("");let P,W;try{let J=await a.create({repoPath:S,path:g,branch:y,baseRef:le});P=J.path,W=await t.create({path:J.path}),await t.rename(W.workspaceId,`${e.title}/${w}`);let Le=await t.connectWorkspace(W.workspaceId);u(J.path),o.open(Le),s()}catch(J){if(W?.workspaceId)try{await t.delete(W.workspaceId)}catch(Le){P&&C({repoPath:S,path:P,branch:y}),d(oe(l("cleanupFailed"),{error:String(Le?.message??Le),path:P??""}));return}P?(C({repoPath:S,path:P,branch:y}),d(l("registerFailed"))):d(`${l("operationFailed")}${String(J?.message??J)}`)}finally{L(!1)}};return(0,v.jsx)(ro,{open:!0,onOpenChange:P=>{!P&&!p&&s()},children:(0,v.jsxs)(uo,{children:[(0,v.jsx)(lo,{className:"dswt-dialog-title",children:oe(l("dialogTitle"),{name:e.title})}),(0,v.jsx)(so,{className:"dswt-visually-hidden",children:e.title}),h?(0,v.jsxs)("div",{className:"dswt-error",role:"alert",children:[(0,v.jsx)(X,{size:14})," ",h]}):null,(0,v.jsxs)("label",{className:"dswt-field",children:[(0,v.jsx)("span",{className:"dswt-field-label",children:l("taskName")}),(0,v.jsx)(oo,{"aria-label":l("taskName"),value:c,disabled:p,onChange:P=>m(P.target.value),placeholder:l("taskNamePlaceholder"),autoFocus:!0})]}),(0,v.jsxs)("fieldset",{className:"dswt-field dswt-base-fieldset",disabled:p||!i,children:[(0,v.jsx)("legend",{className:"dswt-field-label",children:l("basedOn")}),(0,v.jsxs)("div",{className:"dswt-radio-group",role:"radiogroup","aria-label":l("basedOn"),children:[(0,v.jsxs)("label",{className:"dswt-radio-option","data-selected":x==="current"?"true":void 0,children:[(0,v.jsx)("input",{className:"dswt-radio-input",type:"radio",name:"dswt-base-branch",value:"current",checked:x==="current",onChange:()=>I("current")}),(0,v.jsxs)("span",{className:"dswt-radio-copy",children:[(0,v.jsx)("span",{className:"dswt-radio-label",children:l("currentBranch")}),(0,v.jsx)("span",{className:"dswt-radio-branch",children:T})]})]}),(0,v.jsxs)("label",{className:"dswt-radio-option","data-selected":x==="main"?"true":void 0,children:[(0,v.jsx)("input",{className:"dswt-radio-input",type:"radio",name:"dswt-base-branch",value:"main",checked:x==="main",onChange:()=>I("main")}),(0,v.jsxs)("span",{className:"dswt-radio-copy",children:[(0,v.jsx)("span",{className:"dswt-radio-label",children:l("mainBranch")}),(0,v.jsx)("span",{className:"dswt-radio-branch",children:$})]})]})]})]}),f?(0,v.jsxs)("div",{className:"dswt-dialog-actions",children:[(0,v.jsx)(H,{type:"button",disabled:p,onClick:()=>{Te()},children:l("retryRegister")}),(0,v.jsx)(H,{type:"button",disabled:p,onClick:()=>{Lo()},children:l("cleanupCreated")})]}):null,f?null:(0,v.jsxs)("div",{className:"dswt-dialog-actions",children:[(0,v.jsx)(H,{type:"button",disabled:p,onClick:s,children:l("cancel")}),(0,v.jsxs)(H,{type:"button",className:"dswt-button-primary",disabled:p||!c.trim()||!i,onClick:xo,children:[p?(0,v.jsx)(K,{size:14,className:"dswt-spin"}):null,l(p?"creating":"createAndOpen")]})]})]})})}var pe=require("react/jsx-runtime");function Me(){return(0,pe.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[(0,pe.jsx)("path",{d:"M4 2.25v8.5a2.25 2.25 0 1 0 1.5 0V7.75h4v3a2.25 2.25 0 1 0 1.5 0V6.25H5.5v-4H4Z",fill:"currentColor"}),(0,pe.jsx)("circle",{cx:"4.75",cy:"12.75",r:"1.5",fill:"currentColor"}),(0,pe.jsx)("circle",{cx:"10.25",cy:"12.75",r:"1.5",fill:"currentColor"}),(0,pe.jsx)("circle",{cx:"4.75",cy:"2.25",r:"1.5",fill:"currentColor"})]})}var Fe=require("react/jsx-runtime");function no({session:e,useWorkspaces:a,onOpen:t}){let o=te(),r=a(u=>u.items.find(s=>s.sessionIds?.includes(e.sessionId)));return!e.blank||!r?null:(0,Fe.jsx)("div",{className:"dswt-new-session-action",children:(0,Fe.jsxs)(H,{type:"button",className:"dswt-new-session-button",onClick:()=>t(r),children:[(0,Fe.jsx)(Me,{}),o("createWorktree")]})})}var ee=require("react");var R=require("react/jsx-runtime");function io({api:e,workspaces:a,sessions:t}){let o=te(),[r,u]=(0,ee.useState)([]),[s,l]=(0,ee.useState)(!1),[i,n]=(0,ee.useState)(""),[c,m]=(0,ee.useState)(null),x=(0,ee.useCallback)(async()=>{l(!0),n("");try{let L=new Set,f=[];for(let C of a.list.getSnapshot().items)try{let S=await e.list(C.path),w=F(S.repoPath);if(w&&!L.has(w)){L.add(w);let y=await Promise.all(S.worktrees.map(async g=>{try{return{...g,...await e.status(g.path)}}catch(T){return{...g,statusError:String(T?.message??T)}}}));f.push({...S,worktrees:y})}}catch{}u(f)}catch(L){n(String(L?.message??L))}finally{l(!1)}},[e,a]);(0,ee.useEffect)(()=>{x()},[x]);let I=L=>L.statusError==="worktree-unavailable"?o("unavailable"):L.statusError==="not-git-repository"?o("notGitWorkspace"):L.statusError,h=async(L,f)=>{m(f.path),n("");try{let C=a.list.getSnapshot().items.find(y=>F(y.path)===F(f.path)),S=!C;if(C||(C=await a.create({path:f.path})),S){let y=f.isMain?o("mainRepository"):`${L.defaultBranch??"worktree"}/${f.branch??"detached"}`;await a.rename(C.workspaceId,y)}let w=await a.connectWorkspace(C.workspaceId);t.open(w)}catch(C){n(`${o("operationError")}${String(C?.message??C)}`)}finally{m(null)}},d=async(L,f)=>{if(f.isMain)return;let C=f.statusError?o("unavailable"):f.changedFiles?oe(o("dirty"),{count:String(f.changedFiles)}):o("clean");if(f.changedFiles||f.statusError){n(f.statusError?`${o("operationError")}${I(f)}`:o("dirtyRemoveBlocked"));return}if(window.confirm(oe(o("removeConfirm"),{path:f.path,status:C}))){m(f.path),n("");try{await e.remove({repoPath:L.repoPath,path:f.path});let S=a.list.getSnapshot().items.find(w=>F(w.path)===F(f.path));S&&await a.delete(S.workspaceId),await x()}catch(S){n(`${o("operationError")}${String(S?.message??S)}`)}finally{m(null)}}},p=async L=>{m(L.repoPath),n("");try{await e.prune(L.repoPath),await x()}catch(f){n(`${o("operationError")}${String(f?.message??f)}`)}finally{m(null)}};return(0,R.jsxs)("section",{className:"dswt-settings","aria-label":o("worktrees"),children:[(0,R.jsxs)("div",{className:"dswt-settings-header",children:[(0,R.jsx)("h2",{children:o("worktrees")}),(0,R.jsx)(H,{type:"button","aria-label":o("refresh"),title:o("refresh"),disabled:s,onClick:()=>{x()},children:(0,R.jsx)(ke,{size:14,className:s?"dswt-spin":void 0})})]}),i?(0,R.jsxs)("div",{className:"dswt-error",role:"alert",children:[(0,R.jsx)(X,{size:14})," ",i]}):null,r.length===0&&!s?(0,R.jsx)("p",{className:"dswt-muted",children:o("noWorktrees")}):null,r.map(L=>(0,R.jsxs)("div",{className:"dswt-repo",children:[(0,R.jsxs)("div",{className:"dswt-repo-path",children:[L.repoPath,(0,R.jsx)(H,{type:"button",disabled:c===L.repoPath,onClick:()=>{p(L)},children:o("prune")})]}),L.worktrees.map(f=>(0,R.jsxs)("div",{className:"dswt-worktree",children:[(0,R.jsxs)("div",{className:"dswt-worktree-main",children:[(0,R.jsx)("strong",{children:f.branch??o("detached")}),(0,R.jsx)("span",{className:"dswt-worktree-path",title:f.path,children:f.path}),(0,R.jsx)("span",{children:f.isMain?o("mainRepository"):o("linkedWorktree")}),(0,R.jsx)("span",{children:f.statusError?I(f):f.changedFiles?oe(o("dirty"),{count:String(f.changedFiles)}):o("clean")}),f.locked?(0,R.jsx)("span",{children:o("locked")}):null,f.prunable?(0,R.jsx)("span",{children:o("prunable")}):null]}),(0,R.jsxs)("div",{className:"dswt-worktree-actions",children:[(0,R.jsxs)(H,{type:"button",disabled:c===f.path||!!f.statusError,onClick:()=>{h(L,f)},children:[c===f.path?(0,R.jsx)(K,{size:14,className:"dswt-spin"}):null,o("open")]}),!f.isMain&&(f.prunable||f.statusError)?(0,R.jsx)(H,{type:"button",disabled:c===f.path,onClick:()=>{p(L)},children:o("prune")}):null,!f.isMain&&!f.prunable&&!f.statusError?(0,R.jsx)(H,{type:"button",disabled:c===f.path,onClick:()=>{d(L,f)},children:o("remove")}):null]})]},f.path))]},L.repoPath))]})}var Ur="/dsh-simple-worktree";function Hr(e,a){if(e==="not-git-repository"||/not a git repository/i.test(a))return"not-git-repository";if(e==="worktree-unavailable"||/is not a working tree|No such file or directory/i.test(a))return"worktree-unavailable"}function co(e){async function a(t,o){let r=await e.rpc.call(Ur,t,o);if(!r?.ok){let u=r?.error?.message??"worktree operation failed",s=Hr(r?.error?.code,u),l=new Error(s??u);throw l.code=s??r?.error?.code,l}return r.value}return{list:t=>a("worktree.list",{path:t}),classify:t=>a("worktree.classify",{path:t}),create:t=>a("worktree.create",t),remove:t=>a("worktree.remove",t),status:t=>a("worktree.status",{path:t}),prune:t=>a("worktree.prune",{path:t})}}var we=require("react/jsx-runtime"),po="data-dsh-simple-worktree-style";function Wr(){if(typeof document>"u"||document.querySelector(`style[${po}]`))return;let e=document.createElement("style");return e.setAttribute(po,""),e.textContent=Da,document.head.appendChild(e),()=>e.remove()}var mo={name:"@alpacachen/dsh-simple-worktree",inject:["slots","connection","locale","workspaces","sessions"],apply(e){e.effect(Wr,"dsh-simple-worktree styles"),e.effect(()=>qa(e),"dsh-simple-worktree locale");let a=co(e.connection),t=e.workspaces,o=e.sessions,r=e.get("locale"),u=e.get("workspaceExtensions"),s=new Set;e.effect(()=>{if(!(!r||typeof r.subscribe!="function"||!u))return r.subscribe(()=>u.invalidate())},"dsh-simple-worktree locale refresh");let l=new Set,i=!0,n=()=>{},c=0,m=async()=>{let I=++c,h=t.list.getSnapshot().items,d=await Promise.all(h.map(async p=>{try{return await a.classify(p.path)}catch{return}}));if(!(!i||I!==c)){s.clear(),l.clear();for(let p of d)p?.isGit&&p.path&&s.add(F(p.path)),p?.isWorktree&&p.path&&l.add(F(p.path));u?.invalidate()}};e.effect(()=>u?u.register({id:"dsh-simple-worktree",menuItem(h){let d=F(h.path);if(!(!s.has(d)||l.has(d)))return{id:"dsh-simple-worktree.create",label:Pe("createWorktree"),icon:(0,we.jsx)(Me,{}),order:30,onSelect:()=>n(h)}},deleteWorkspace(h){let d=F(h.path);if(l.has(d))return(async()=>{let p=await a.classify(h.path);!p.isWorktree||!p.repoPath||(await a.remove({repoPath:p.repoPath,path:h.path}),await t.delete(h.workspaceId),s.delete(d),l.delete(d),u?.invalidate())})()},icon(h){return l.has(F(h.path))?(0,we.jsx)(Me,{}):void 0}}):void 0,"dsh-simple-worktree workspace extensions"),e.effect(()=>{i=!0;let I=t.list.subscribe(()=>{m()});return m(),()=>{i=!1,c+=1,I()}},"dsh-simple-worktree workspace classification");function x(){let[I,h]=(0,Qe.useState)(null);return(0,Qe.useEffect)(()=>(n=(d,p="current")=>h({target:d,defaultBaseChoice:p}),()=>{n=()=>{}}),[]),I?(0,we.jsx)(fo,{target:I.target,api:a,workspaces:t,sessions:o,defaultBaseChoice:I.defaultBaseChoice,onCreated:d=>{s.add(F(d)),l.add(F(d)),u?.invalidate()},onClose:()=>h(null)}):null}e.slots.inject("conversation.input.dock",()=>e.slots.register({name:"conversation.input.dock",id:"dsh-simple-worktree-new-session",order:-30,locale:se,label:()=>Pe("createWorktree")},I=>(0,we.jsx)(no,{session:I.session,useWorkspaces:I.useWorkspaces,onOpen:h=>n(h,"main")}))),e.slots.inject("shell.overlay",()=>e.slots.register({name:"shell.overlay",id:"dsh-simple-worktree-create",order:30,locale:se,label:()=>Pe("createWorktree")},x)),e.slots.inject("settings.plugin.item",()=>e.slots.register({name:"settings.plugin.item",key:se,locale:se,inject:()=>({})},()=>(0,we.jsx)(io,{api:a,workspaces:t,sessions:o})))}};var Nr=mo;
|
|
200
|
+
For more information, see https://radix-ui.com/primitives/docs/components/${a.docsSlug}`;return R.useEffect(()=>{e&&(document.getElementById(e)||console.error(t))},[t,e]),null},qr="DialogDescriptionWarning",Ur=({contentRef:e,descriptionId:a})=>{let o=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${$t(qr).contentName}}.`;return R.useEffect(()=>{let r=e.current?.getAttribute("aria-describedby");a&&r&&(document.getElementById(a)||console.warn(o))},[o,e,a]),null},Jt=qt;var Qt=Wt,Yt=Nt,eo=Gt,ao=Vt,to=Xt,oo=jt;var Q=require("react/jsx-runtime");function W({className:e="",...a}){return(0,Q.jsx)("button",{className:`dswt-button ${e}`,...a})}function ro({className:e="",...a}){return(0,Q.jsx)("input",{className:`dswt-input ${e}`,...a})}function uo({children:e,...a}){return(0,Q.jsx)(Jt,{...a,children:e})}function lo({children:e}){let a=re();return(0,Q.jsxs)(Qt,{children:[(0,Q.jsx)(Yt,{className:"dswt-dialog-overlay"}),(0,Q.jsxs)(eo,{className:"dswt-dialog-content",children:[e,(0,Q.jsx)(oo,{className:"dswt-dialog-close","aria-label":a("close"),children:(0,Q.jsx)(Pe,{size:16})})]})]})}var so=ao,fo=to;var k=require("react/jsx-runtime");function no({target:e,api:a,workspaces:t,sessions:o,defaultBaseChoice:r="current",onCreated:u,onClose:s}){let l=re(),[i,f]=(0,te.useState)(null),[c,L]=(0,te.useState)(""),[I,h]=(0,te.useState)(r),[C,d]=(0,te.useState)(""),[m,w]=(0,te.useState)(!1),[v,y]=(0,te.useState)(null);(0,te.useEffect)(()=>{let P=!0;return f(null),d(""),L(""),h(r),a.list(e.path).then(N=>{P&&f(N)}).catch(N=>{P&&d(String(N?.message??N))}),()=>{P=!1}},[a,r,e.path]);let p=i?.repoPath,x=Ha(c),n=`task/${x}`,g=p?Wa(p,x):"",M=i?.worktrees.find(P=>F(P.path)===F(e.path))?.branch??"HEAD",E=i?.defaultBranch??i?.worktrees.find(P=>P.isMain)?.branch??M,V=I==="main"?i?.defaultRef??E:M,Y=async(P,N)=>{let ee=await t.create({path:P});await t.rename(ee.workspaceId,`${e.title}/${N}`);let me=await t.connectWorkspace(ee.workspaceId);u(P),o.open(me),s()},Oe=async()=>{if(v){w(!0),d("");try{await Y(v.path,v.branch.replace(/^task\//,"")),y(null)}catch(P){d(`${l("registerFailed")} ${String(P?.message??P)}`)}finally{w(!1)}}},xo=async()=>{if(v){w(!0),d("");try{await a.remove({repoPath:v.repoPath,path:v.path}),y(null),s()}catch(P){d(ue(l("cleanupFailed"),{error:String(P?.message??P),path:v.path}))}finally{w(!1)}}},Io=async()=>{if(!p||!c.trim()){d(l("fillTaskName"));return}w(!0),d("");let P,N;try{let ee=await a.create({repoPath:p,path:g,branch:n,baseRef:V});P=ee.path,N=await t.create({path:ee.path}),await t.rename(N.workspaceId,`${e.title}/${x}`);let me=await t.connectWorkspace(N.workspaceId);u(ee.path),o.open(me),s()}catch(ee){if(N?.workspaceId)try{await t.delete(N.workspaceId)}catch(me){P&&y({repoPath:p,path:P,branch:n}),d(ue(l("cleanupFailed"),{error:String(me?.message??me),path:P??""}));return}P?(y({repoPath:p,path:P,branch:n}),d(l("registerFailed"))):d(`${l("operationFailed")}${String(ee?.message??ee)}`)}finally{w(!1)}};return(0,k.jsx)(uo,{open:!0,onOpenChange:P=>{!P&&!m&&s()},children:(0,k.jsxs)(lo,{children:[(0,k.jsx)(so,{className:"dswt-dialog-title",children:ue(l("dialogTitle"),{name:e.title})}),(0,k.jsx)(fo,{className:"dswt-visually-hidden",children:e.title}),C?(0,k.jsxs)("div",{className:"dswt-error",role:"alert",children:[(0,k.jsx)(Z,{size:14})," ",C]}):null,(0,k.jsxs)("label",{className:"dswt-field",children:[(0,k.jsx)("span",{className:"dswt-field-label",children:l("taskName")}),(0,k.jsx)(ro,{"aria-label":l("taskName"),value:c,disabled:m,onChange:P=>L(P.target.value),placeholder:l("taskNamePlaceholder"),autoFocus:!0})]}),(0,k.jsxs)("fieldset",{className:"dswt-field dswt-base-fieldset",disabled:m||!i,children:[(0,k.jsx)("legend",{className:"dswt-field-label",children:l("basedOn")}),(0,k.jsxs)("div",{className:"dswt-radio-group",role:"radiogroup","aria-label":l("basedOn"),children:[(0,k.jsxs)("label",{className:"dswt-radio-option","data-selected":I==="current"?"true":void 0,children:[(0,k.jsx)("input",{className:"dswt-radio-input",type:"radio",name:"dswt-base-branch",value:"current",checked:I==="current",onChange:()=>h("current")}),(0,k.jsxs)("span",{className:"dswt-radio-copy",children:[(0,k.jsx)("span",{className:"dswt-radio-label",children:l("currentBranch")}),(0,k.jsx)("span",{className:"dswt-radio-branch",children:M})]})]}),(0,k.jsxs)("label",{className:"dswt-radio-option","data-selected":I==="main"?"true":void 0,children:[(0,k.jsx)("input",{className:"dswt-radio-input",type:"radio",name:"dswt-base-branch",value:"main",checked:I==="main",onChange:()=>h("main")}),(0,k.jsxs)("span",{className:"dswt-radio-copy",children:[(0,k.jsx)("span",{className:"dswt-radio-label",children:l("mainBranch")}),(0,k.jsx)("span",{className:"dswt-radio-branch",children:E})]})]})]})]}),v?(0,k.jsxs)("div",{className:"dswt-dialog-actions",children:[(0,k.jsx)(W,{type:"button",disabled:m,onClick:()=>{Oe()},children:l("retryRegister")}),(0,k.jsx)(W,{type:"button",disabled:m,onClick:()=>{xo()},children:l("cleanupCreated")})]}):null,v?null:(0,k.jsxs)("div",{className:"dswt-dialog-actions",children:[(0,k.jsx)(W,{type:"button",disabled:m,onClick:s,children:l("cancel")}),(0,k.jsxs)(W,{type:"button",className:"dswt-button-primary",disabled:m||!c.trim()||!i,onClick:Io,children:[m?(0,k.jsx)($,{size:14,className:"dswt-spin"}):null,l(m?"creating":"createAndOpen")]})]})]})})}var pe=require("react/jsx-runtime");function Fe(){return(0,pe.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[(0,pe.jsx)("path",{d:"M4 2.25v8.5a2.25 2.25 0 1 0 1.5 0V7.75h4v3a2.25 2.25 0 1 0 1.5 0V6.25H5.5v-4H4Z",fill:"currentColor"}),(0,pe.jsx)("circle",{cx:"4.75",cy:"12.75",r:"1.5",fill:"currentColor"}),(0,pe.jsx)("circle",{cx:"10.25",cy:"12.75",r:"1.5",fill:"currentColor"}),(0,pe.jsx)("circle",{cx:"4.75",cy:"2.25",r:"1.5",fill:"currentColor"})]})}var Te=require("react/jsx-runtime");function io({session:e,useWorkspaces:a,onOpen:t,canCreate:o}){let r=re(),u=a(s=>s.items.find(l=>l.sessionIds?.includes(e.sessionId)));return!e.blank||!u||o&&!o(u)?null:(0,Te.jsx)("div",{className:"dswt-new-session-action",children:(0,Te.jsxs)(W,{type:"button",className:"dswt-new-session-button",onClick:()=>t(u),children:[(0,Te.jsx)(Fe,{}),r("createWorktree")]})})}var oe=require("react");var S=require("react/jsx-runtime");function co({api:e,workspaces:a,sessions:t}){let o=re(),[r,u]=(0,oe.useState)([]),[s,l]=(0,oe.useState)(!1),[i,f]=(0,oe.useState)(""),[c,L]=(0,oe.useState)(null),I=(0,oe.useCallback)(async()=>{l(!0),f("");try{let p=new Set,x=[],n=await e.scan(a.list.getSnapshot().items.map(g=>g.path));for(let g of n)try{let M=F(g.repoPath);if(M&&!p.has(M)){p.add(M);let E=await Promise.all(g.worktrees.map(async V=>{try{return{...V,...await e.status(V.path)}}catch(Y){return{...V,statusError:String(Y?.message??Y)}}}));x.push({...g,worktrees:E})}}catch{}u(x)}catch(p){f(String(p?.message??p))}finally{l(!1)}},[e,a]);(0,oe.useEffect)(()=>{I()},[I]);let h=p=>p.statusError==="worktree-unavailable"?o("unavailable"):p.statusError==="not-git-repository"?o("notGitWorkspace"):p.statusError,C=p=>p.split(/[\\/]/).filter(Boolean).pop()??p,d=(p,x)=>{let n=p.endsWith("/")?p:`${p}/`;return x.startsWith(n)?x.slice(n.length)||".":x},m=r.reduce((p,x)=>p+x.worktrees.length,0),w=async(p,x)=>{L(x.path),f("");try{let n=a.list.getSnapshot().items.find(E=>F(E.path)===F(x.path)),g=!n;if(n||(n=await a.create({path:x.path})),g){let E=x.isMain?o("mainRepository"):`${p.defaultBranch??"worktree"}/${x.branch??"detached"}`;await a.rename(n.workspaceId,E)}let M=await a.connectWorkspace(n.workspaceId);t.open(M)}catch(n){f(`${o("operationError")}${String(n?.message??n)}`)}finally{L(null)}},v=async(p,x)=>{if(x.isMain)return;let n=x.statusError?o("unavailable"):x.changedFiles?ue(o("dirty"),{count:String(x.changedFiles)}):o("clean");if(x.changedFiles||x.statusError){f(x.statusError?`${o("operationError")}${h(x)}`:o("dirtyRemoveBlocked"));return}if(window.confirm(ue(o("removeConfirm"),{path:x.path,status:n}))){L(x.path),f("");try{await e.remove({repoPath:p.repoPath,path:x.path});let g=a.list.getSnapshot().items.find(M=>F(M.path)===F(x.path));g&&await a.delete(g.workspaceId),await I()}catch(g){f(`${o("operationError")}${String(g?.message??g)}`)}finally{L(null)}}},y=async p=>{L(p.repoPath),f("");try{await e.prune(p.repoPath),await I()}catch(x){f(`${o("operationError")}${String(x?.message??x)}`)}finally{L(null)}};return(0,S.jsxs)("section",{className:"dswt-settings","aria-label":o("worktrees"),children:[(0,S.jsxs)("div",{className:"dswt-settings-header",children:[(0,S.jsxs)("div",{children:[(0,S.jsx)("h2",{children:o("worktrees")}),(0,S.jsx)("p",{className:"dswt-settings-subtitle",children:o("worktreesSubtitle")})]}),(0,S.jsx)(W,{type:"button",className:"dswt-icon-button","aria-label":o("refresh"),title:o("refresh"),disabled:s,onClick:()=>{I()},children:(0,S.jsx)(be,{size:15,className:s?"dswt-spin":void 0})})]}),r.length>0?(0,S.jsxs)("div",{className:"dswt-summary",children:[(0,S.jsx)("strong",{children:r.length})," ",o("repositories"),(0,S.jsx)("span",{children:"\xB7"}),(0,S.jsx)("strong",{children:m})," ",o("worktreeCount")]}):null,i?(0,S.jsxs)("div",{className:"dswt-error",role:"alert",children:[(0,S.jsx)(Z,{size:14})," ",i]}):null,r.length===0&&!s?(0,S.jsxs)("div",{className:"dswt-empty",children:[(0,S.jsx)("p",{children:o("noWorktrees")}),(0,S.jsx)("span",{children:o("noWorktreesHint")})]}):null,(0,S.jsx)("div",{className:"dswt-repo-list",children:r.map(p=>{let x=p.worktrees.filter(n=>n.prunable).length;return(0,S.jsxs)("article",{className:"dswt-repo",children:[(0,S.jsxs)("header",{className:"dswt-repo-header",children:[(0,S.jsxs)("div",{className:"dswt-repo-heading",children:[(0,S.jsx)("span",{className:"dswt-repo-icon",children:(0,S.jsx)(ye,{size:15})}),(0,S.jsxs)("div",{children:[(0,S.jsx)("h3",{children:C(p.repoPath)}),(0,S.jsx)("p",{title:p.repoPath,children:p.repoPath})]})]}),x>0?(0,S.jsxs)(W,{type:"button",className:"dswt-button-secondary",disabled:c===p.repoPath,onClick:()=>{y(p)},children:[o("prune")," ",(0,S.jsx)("span",{className:"dswt-count",children:x})]}):null]}),(0,S.jsx)("div",{className:"dswt-worktree-list",children:p.worktrees.map(n=>{let g=n.statusError?"unavailable":n.changedFiles?"dirty":n.prunable?"prunable":"clean";return(0,S.jsxs)("div",{className:"dswt-worktree",children:[(0,S.jsxs)("div",{className:"dswt-worktree-info",children:[(0,S.jsxs)("div",{className:"dswt-worktree-title",children:[(0,S.jsx)("strong",{children:n.branch??o("detached")}),n.isMain?(0,S.jsx)("span",{className:"dswt-badge dswt-badge-main",children:o("mainRepository")}):(0,S.jsx)("span",{className:"dswt-badge",children:o("linkedWorktree")})]}),(0,S.jsx)("div",{className:"dswt-worktree-path",title:n.path,children:d(p.repoPath,n.path)}),(0,S.jsxs)("div",{className:`dswt-status dswt-status-${g}`,children:[n.statusError?h(n):n.changedFiles?ue(o("dirty"),{count:String(n.changedFiles)}):n.prunable?o("prunable"):o("clean"),n.locked?` \xB7 ${o("locked")}`:""]})]}),(0,S.jsxs)("div",{className:"dswt-worktree-actions",children:[(0,S.jsxs)(W,{type:"button",className:"dswt-button-primary",disabled:c===n.path||!!n.statusError,onClick:()=>{w(p,n)},children:[c===n.path?(0,S.jsx)($,{size:14,className:"dswt-spin"}):null,o("open")]}),!n.isMain&&(n.prunable||n.statusError)?(0,S.jsx)(W,{type:"button",className:"dswt-button-secondary",disabled:c===n.path,onClick:()=>{y(p)},children:o("prune")}):null,!n.isMain&&!n.prunable&&!n.statusError?(0,S.jsx)(W,{type:"button",className:"dswt-button-danger",disabled:c===n.path,onClick:()=>{v(p,n)},children:o("remove")}):null]})]},n.path)})})]},p.repoPath)})})]})}var Wr="/dsh-simple-worktree";function Nr(e,a){if(e==="not-git-repository"||/not a git repository/i.test(a))return"not-git-repository";if(e==="worktree-unavailable"||/is not a working tree|No such file or directory/i.test(a))return"worktree-unavailable"}function po(e){async function a(t,o){let r=await e.rpc.call(Wr,t,o);if(!r?.ok){let u=r?.error?.message??"worktree operation failed",s=Nr(r?.error?.code,u),l=new Error(s??u);throw l.code=s??r?.error?.code,l}return r.value}return{list:t=>a("worktree.list",{path:t}),scan:t=>a("worktree.scan",{paths:t}),classify:t=>a("worktree.classify",{path:t}),create:t=>a("worktree.create",t),remove:t=>a("worktree.remove",t),status:t=>a("worktree.status",{path:t}),prune:t=>a("worktree.prune",{path:t})}}var ve=require("react/jsx-runtime"),mo="data-dsh-simple-worktree-style";function Gr(){if(typeof document>"u"||document.querySelector(`style[${mo}]`))return;let e=document.createElement("style");return e.setAttribute(mo,""),e.textContent=Ba,document.head.appendChild(e),()=>e.remove()}var Lo={name:"@alpacachen/dsh-simple-worktree",inject:["slots","connection","locale","workspaces","sessions"],apply(e){e.effect(Gr,"dsh-simple-worktree styles"),e.effect(()=>Ua(e),"dsh-simple-worktree locale");let a=po(e.connection),t=e.workspaces,o=e.sessions,r=e.get("locale"),u=e.get("workspaceExtensions"),s=new Set;e.effect(()=>{if(!(!r||typeof r.subscribe!="function"||!u))return r.subscribe(()=>u.invalidate())},"dsh-simple-worktree locale refresh");let l=new Set,i=!0,f=()=>{},c=0,L=async()=>{let h=++c,C=t.list.getSnapshot().items,d=await Promise.all(C.map(async m=>{try{return await a.classify(m.path)}catch{return}}));if(!(!i||h!==c)){s.clear(),l.clear();for(let m of d)m?.isGit&&m.path&&s.add(F(m.path)),m?.isWorktree&&m.path&&l.add(F(m.path));u?.invalidate()}};e.effect(()=>u?u.register({id:"dsh-simple-worktree",menuItem(C){let d=F(C.path);if(!(!s.has(d)||l.has(d)))return{id:"dsh-simple-worktree.create",label:xe("createWorktree"),icon:(0,ve.jsx)(Fe,{}),order:30,onSelect:()=>f(C)}},deleteWorkspace(C){let d=F(C.path);if(l.has(d))return(async()=>{let m=await a.classify(C.path);!m.isWorktree||!m.repoPath||(await a.remove({repoPath:m.repoPath,path:C.path}),await t.delete(C.workspaceId),s.delete(d),l.delete(d),u?.invalidate())})()},icon(C){return l.has(F(C.path))?(0,ve.jsx)(Fe,{}):void 0}}):void 0,"dsh-simple-worktree workspace extensions"),e.effect(()=>{i=!0;let h=t.list.subscribe(()=>{L()});return L(),()=>{i=!1,c+=1,h()}},"dsh-simple-worktree workspace classification");function I(){let[h,C]=(0,Ye.useState)(null);return(0,Ye.useEffect)(()=>(f=(d,m="current")=>C({target:d,defaultBaseChoice:m}),()=>{f=()=>{}}),[]),h?(0,ve.jsx)(no,{target:h.target,api:a,workspaces:t,sessions:o,defaultBaseChoice:h.defaultBaseChoice,onCreated:d=>{s.add(F(d)),l.add(F(d)),u?.invalidate()},onClose:()=>C(null)}):null}e.slots.inject("conversation.input.dock",()=>e.slots.register({name:"conversation.input.dock",id:"dsh-simple-worktree-new-session",order:-30,locale:Le,label:()=>xe("createWorktree")},h=>(0,ve.jsx)(io,{session:h.session,useWorkspaces:h.useWorkspaces,canCreate:C=>s.has(F(C.path))&&!l.has(F(C.path)),onOpen:C=>f(C,"main")}))),e.slots.inject("shell.overlay",()=>e.slots.register({name:"shell.overlay",id:"dsh-simple-worktree-create",order:30,locale:Le,label:()=>xe("createWorktree")},I)),e.slots.inject("settings.section",()=>e.slots.register({name:"settings.section",id:"dsh-simple-worktree",order:45,label:()=>xe("worktrees"),locale:Le,inject:()=>({})},()=>(0,ve.jsx)(co,{api:a,workspaces:t,sessions:o})))}};var zr=Lo;
|
|
175
201
|
/*! Bundled license information:
|
|
176
202
|
|
|
177
203
|
lucide-react/dist/esm/shared/src/utils.js:
|
|
@@ -179,6 +205,7 @@ lucide-react/dist/esm/defaultAttributes.js:
|
|
|
179
205
|
lucide-react/dist/esm/Icon.js:
|
|
180
206
|
lucide-react/dist/esm/createLucideIcon.js:
|
|
181
207
|
lucide-react/dist/esm/icons/circle-alert.js:
|
|
208
|
+
lucide-react/dist/esm/icons/folder-git-2.js:
|
|
182
209
|
lucide-react/dist/esm/icons/loader-circle.js:
|
|
183
210
|
lucide-react/dist/esm/icons/refresh-cw.js:
|
|
184
211
|
lucide-react/dist/esm/icons/x.js:
|
package/lib/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { installSettingsSection, settingsNamespace } from '@deepseek-ai/dsh-settings'
|
|
2
2
|
import z from '@deepseek-ai/schemastery'
|
|
3
|
+
import { readdir } from 'node:fs/promises'
|
|
3
4
|
|
|
4
5
|
const CHANNEL = '/dsh-simple-worktree'
|
|
5
6
|
const SETTINGS_NS = settingsNamespace('dsh-simple-worktree')
|
|
@@ -72,6 +73,25 @@ export async function detectDefaultBranch(subprocess, repoPath, worktrees) {
|
|
|
72
73
|
return name ? { name, ref: name } : { name: 'HEAD', ref: 'HEAD' }
|
|
73
74
|
}
|
|
74
75
|
|
|
76
|
+
const IGNORED_SCAN_DIRECTORIES = new Set(['.git', '.dsh', 'node_modules'])
|
|
77
|
+
|
|
78
|
+
export async function discoverGitRoots(rootPath) {
|
|
79
|
+
const roots = []
|
|
80
|
+
const visit = async (directory) => {
|
|
81
|
+
let entries
|
|
82
|
+
try { entries = await readdir(directory, { withFileTypes: true }) } catch { return }
|
|
83
|
+
if (entries.some((entry) => entry.name === '.git')) {
|
|
84
|
+
roots.push(directory)
|
|
85
|
+
return
|
|
86
|
+
}
|
|
87
|
+
await Promise.all(entries
|
|
88
|
+
.filter((entry) => entry.isDirectory() && !entry.isSymbolicLink() && !IGNORED_SCAN_DIRECTORIES.has(entry.name))
|
|
89
|
+
.map((entry) => visit(`${directory}/${entry.name}`)))
|
|
90
|
+
}
|
|
91
|
+
await visit(cleanPath(rootPath))
|
|
92
|
+
return roots
|
|
93
|
+
}
|
|
94
|
+
|
|
75
95
|
export function parseWorktrees(text) {
|
|
76
96
|
const rows = []
|
|
77
97
|
let current
|
|
@@ -138,8 +158,7 @@ export function apply(ctx) {
|
|
|
138
158
|
ctx.effect(() => ctx.connection.rpc.handle(CHANNEL, async (endpoint, payload = {}, signal) => {
|
|
139
159
|
if (signal?.aborted) return fail('cancelled', 'The request was cancelled.')
|
|
140
160
|
|
|
141
|
-
|
|
142
|
-
const path = typeof payload.path === 'string' ? payload.path.trim() : ''
|
|
161
|
+
const listRepository = async (path) => {
|
|
143
162
|
if (!path) throw new Error('请选择一个 DSH Workspace。')
|
|
144
163
|
const [topLevel, commonDir, porcelain] = await Promise.all([
|
|
145
164
|
runGit(ctx.subprocess, path, ['rev-parse', '--show-toplevel']),
|
|
@@ -150,8 +169,35 @@ export function apply(ctx) {
|
|
|
150
169
|
const repoPath = worktrees.find((worktree) => worktree.isMain)?.path ?? topLevel
|
|
151
170
|
const defaultBranch = await detectDefaultBranch(ctx.subprocess, repoPath, worktrees)
|
|
152
171
|
return { repoPath, commonDir, defaultBranch: defaultBranch.name, defaultRef: defaultBranch.ref, worktrees }
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
if (endpoint === 'worktree.list') return recover(async () => {
|
|
175
|
+
const path = typeof payload.path === 'string' ? payload.path.trim() : ''
|
|
176
|
+
return listRepository(path)
|
|
153
177
|
}, classifyGitError)
|
|
154
178
|
|
|
179
|
+
if (endpoint === 'worktree.scan') return recover(async () => {
|
|
180
|
+
const paths = Array.isArray(payload.paths)
|
|
181
|
+
? payload.paths.filter((path) => typeof path === 'string').map((path) => path.trim()).filter(Boolean)
|
|
182
|
+
: []
|
|
183
|
+
const roots = (await Promise.all(paths.map((path) => discoverGitRoots(path)))).flat()
|
|
184
|
+
const seen = new Set()
|
|
185
|
+
const repositories = []
|
|
186
|
+
for (const root of roots) {
|
|
187
|
+
try {
|
|
188
|
+
const repository = await listRepository(root)
|
|
189
|
+
const key = cleanPath(repository.repoPath)
|
|
190
|
+
if (key && !seen.has(key)) {
|
|
191
|
+
seen.add(key)
|
|
192
|
+
repositories.push(repository)
|
|
193
|
+
}
|
|
194
|
+
} catch {
|
|
195
|
+
// A repository can disappear while a scan is in progress.
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
return repositories
|
|
199
|
+
})
|
|
200
|
+
|
|
155
201
|
if (endpoint === 'worktree.classify') return recover(async () => {
|
|
156
202
|
const path = typeof payload.path === 'string' ? payload.path.trim() : ''
|
|
157
203
|
if (!path) throw new Error('缺少 Workspace 路径。')
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alpacachen/dsh-simple-worktree",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.11",
|
|
4
4
|
"description": "A Git worktree plugin for DeepSeek Harness that creates task branches, registers worktrees as DSH Workspaces, and opens isolated sessions.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"keywords": [
|