@alpacachen/dsh-simple-worktree 1.0.5 → 1.0.7

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/README.md CHANGED
@@ -1,6 +1,8 @@
1
- # dsh-simple-worktree
1
+ # dsh-worktree
2
2
 
3
- A lightweight Git worktree plugin for DeepSeek Harness.
3
+ A Git worktree plugin for DeepSeek Harness that creates task branches, registers worktrees as DSH Workspaces, and opens isolated sessions.
4
+
5
+ > npm package: `@alpacachen/dsh-simple-worktree`
4
6
 
5
7
  [![npm version](https://img.shields.io/npm/v/@alpacachen/dsh-simple-worktree?color=5b8def&label=npm)](https://www.npmjs.com/package/@alpacachen/dsh-simple-worktree)
6
8
  ![DeepSeek Harness Plugin](https://img.shields.io/badge/DeepSeek%20Harness-Plugin-7c5cff)
@@ -9,11 +11,13 @@ A lightweight Git worktree plugin for DeepSeek Harness.
9
11
 
10
12
  [简体中文](README.zh.md) · **English**
11
13
 
14
+ ![Create a worktree from a new DSH session](docs/preview.png)
15
+
12
16
  ## Features
13
17
 
14
- - Create a Git worktree from any Git Workspace.
18
+ - Create a Git worktree from a new-session action or any Git Workspace menu.
15
19
  - Choose the current branch or the repository's main branch.
16
- - Register and open the new worktree as a DSH Workspace.
20
+ - Register and open the new worktree as a DSH Workspace with an isolated session.
17
21
  - Create task branches as `task/<name>`.
18
22
  - No additional service or project configuration.
19
23
  - Supports DSH themes, Chinese, and English.
@@ -30,13 +34,19 @@ Restart `dsh web` after installation.
30
34
 
31
35
  You can also install from GitHub with `dsh plugin --profile web add github:alpacachen/dsh-worktree`.
32
36
 
33
- ### Create a worktree
37
+ ### Create from a new session
38
+
39
+ 1. Open **New Session** in a Git Workspace.
40
+ 2. Choose **Create worktree** above the composer.
41
+ 3. Enter a task name. The repository's main branch is selected by default.
42
+ 4. Click **Create and open**.
43
+
44
+ ### Create from a Workspace menu
34
45
 
35
- 1. Open a Git Workspace.
36
- 2. Open the Workspace menu and choose **Create worktree**.
37
- 3. Enter a task name, such as `login-fix`.
38
- 4. Choose **Current branch** or **Main branch**.
39
- 5. Click **Create and open**.
46
+ 1. Open a Git Workspace menu and choose **Create worktree**.
47
+ 2. Enter a task name, such as `login-fix`.
48
+ 3. Choose **Current branch** or **Main branch**.
49
+ 4. Click **Create and open**.
40
50
 
41
51
  The worktree is created at:
42
52
 
@@ -45,4 +55,4 @@ project.worktrees/login-fix/
45
55
  └── branch: task/login-fix
46
56
  ```
47
57
 
48
- The new Workspace is named `<parent>/<task>`.
58
+ The new Workspace is named `<parent>/<task>`. Removing the worktree Workspace does not delete its Git branch.
package/README.zh.md CHANGED
@@ -1,6 +1,8 @@
1
- # dsh-simple-worktree
1
+ # dsh-worktree
2
2
 
3
- 一个轻量的 Git Worktree 插件,用于 DeepSeek Harness。
3
+ 一个用于 DeepSeek Harness 的 Git Worktree 插件:创建任务分支、注册 DSH Workspace,并打开隔离会话。
4
+
5
+ > npm 包:`@alpacachen/dsh-simple-worktree`
4
6
 
5
7
  [![npm version](https://img.shields.io/npm/v/@alpacachen/dsh-simple-worktree?color=5b8def&label=npm)](https://www.npmjs.com/package/@alpacachen/dsh-simple-worktree)
6
8
  ![DeepSeek Harness Plugin](https://img.shields.io/badge/DeepSeek%20Harness-Plugin-7c5cff)
@@ -9,11 +11,13 @@
9
11
 
10
12
  **简体中文** · [English](README.md)
11
13
 
14
+ ![从 DSH 新建对话创建 Worktree](docs/preview.png)
15
+
12
16
  ## 功能
13
17
 
14
- - 从任意 Git Workspace 创建 Worktree。
18
+ - 从新建对话入口或任意 Git Workspace 菜单创建 Worktree。
15
19
  - 支持当前分支和仓库主分支。
16
- - 将新 Worktree 注册并打开为 DSH Workspace
20
+ - 将新 Worktree 注册为 DSH Workspace,并打开隔离会话。
17
21
  - 自动创建 `task/<name>` 格式的任务分支。
18
22
  - 不需要额外服务或项目配置。
19
23
  - 支持 DSH 主题、中文和英文界面。
@@ -30,13 +34,19 @@ dsh plugin --profile web add @alpacachen/dsh-simple-worktree
30
34
 
31
35
  也可以通过 GitHub 安装:`dsh plugin --profile web add github:alpacachen/dsh-worktree`。
32
36
 
33
- ### 创建 Worktree
37
+ ### 从新建对话创建
38
+
39
+ 1. 在 Git Workspace 中打开**新建对话**。
40
+ 2. 点击输入框上方的**创建 Worktree**。
41
+ 3. 输入任务名称;此入口默认选择仓库主分支。
42
+ 4. 点击**创建并打开**。
43
+
44
+ ### 从 Workspace 菜单创建
34
45
 
35
- 1. 打开一个 Git Workspace
36
- 2. 打开 Workspace 菜单,选择 **创建 Worktree**。
37
- 3. 输入任务名称,例如 `login-fix`。
38
- 4. 选择 **当前分支** 或 **主分支**。
39
- 5. 点击 **创建并打开**。
46
+ 1. 打开 Git Workspace 菜单,选择**创建 Worktree**。
47
+ 2. 输入任务名称,例如 `login-fix`。
48
+ 3. 选择**当前分支**或**主分支**。
49
+ 4. 点击**创建并打开**。
40
50
 
41
51
  Worktree 会创建在:
42
52
 
@@ -45,4 +55,4 @@ project.worktrees/login-fix/
45
55
  └── branch: task/login-fix
46
56
  ```
47
57
 
48
- 新 Workspace 的名称为 `<父 Workspace>/<任务名称>`。
58
+ 新 Workspace 的名称为 `<父 Workspace>/<任务名称>`。删除 Worktree Workspace 不会删除对应的 Git 分支。
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 so=Object.create;var be=Object.defineProperty;var fo=Object.getOwnPropertyDescriptor;var no=Object.getOwnPropertyNames;var io=Object.getPrototypeOf,co=Object.prototype.hasOwnProperty;var po=(e,a)=>{for(var t in a)be(e,t,{get:a[t],enumerable:!0})},Sa=(e,a,t,o)=>{if(a&&typeof a=="object"||typeof a=="function")for(let r of no(a))!co.call(e,r)&&r!==t&&be(e,r,{get:()=>a[r],enumerable:!(o=fo(a,r))||o.enumerable});return e};var P=(e,a,t)=>(t=e!=null?so(io(e)):{},Sa(a||!e||!e.__esModule?be(t,"default",{value:e,enumerable:!0}):t,e)),mo=e=>Sa(be({},"__esModule",{value:!0}),e);var Br={};po(Br,{default:()=>Dr});module.exports=mo(Br);var ze=require("react");var wa=`@layer dsh-simple-worktree {
6
+ "use strict";var Io=Object.create;var Oe=Object.defineProperty;var ho=Object.getOwnPropertyDescriptor;var go=Object.getOwnPropertyNames;var Co=Object.getPrototypeOf,So=Object.prototype.hasOwnProperty;var wo=(e,a)=>{for(var t in a)Oe(e,t,{get:a[t],enumerable:!0})},Aa=(e,a,t,o)=>{if(a&&typeof a=="object"||typeof a=="function")for(let r of go(a))!So.call(e,r)&&r!==t&&Oe(e,r,{get:()=>a[r],enumerable:!(o=ho(a,r))||o.enumerable});return e};var A=(e,a,t)=>(t=e!=null?Io(Co(e)):{},Aa(a||!e||!e.__esModule?Oe(t,"default",{value:e,enumerable:!0}):t,e)),vo=e=>Aa(Oe({},"__esModule",{value:!0}),e);var Nr={};wo(Nr,{default:()=>Wr});module.exports=vo(Nr);var Qe=require("react");var Da=`@layer dsh-simple-worktree {
7
7
  .dswt-dialog-overlay {
8
8
  position: fixed;
9
9
  inset: 0;
@@ -99,56 +99,79 @@ window.__ModuleLoader__.load({
99
99
  @keyframes dswt-spin { to { transform: rotate(360deg); } }
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
+ .dswt-settings { color: var(--dsw-alias-label-primary, #111); font-size: 13px; }
103
+ .dswt-settings-header, .dswt-repo-path, .dswt-worktree, .dswt-worktree-actions { display: flex; align-items: center; gap: 8px; }
104
+ .dswt-settings-header { justify-content: space-between; margin-bottom: 16px; }
105
+ .dswt-settings-header h2 { margin: 0; font-size: 18px; font-weight: 600; }
106
+ .dswt-repo { margin: 14px 0 20px; }
107
+ .dswt-repo-path { justify-content: space-between; margin-bottom: 7px; color: var(--dsw-alias-label-secondary, #666); font-size: 12px; }
108
+ .dswt-worktree { justify-content: space-between; border-top: 1px solid var(--dsw-alias-border-l2, #ddd); padding: 10px 0; }
109
+ .dswt-worktree-main { display: flex; min-width: 0; flex-wrap: wrap; align-items: center; gap: 5px 10px; }
110
+ .dswt-worktree-path { max-width: 320px; overflow: hidden; color: var(--dsw-alias-label-tertiary, #777); text-overflow: ellipsis; white-space: nowrap; }
111
+ .dswt-worktree-actions { flex: none; }
112
+ .dswt-muted { color: var(--dsw-alias-label-secondary, #666); }
102
113
  }
103
114
 
104
115
  @media (prefers-reduced-motion: reduce) {
105
116
  .dswt-dialog-overlay, .dswt-dialog-overlay *, .dswt-dialog-content, .dswt-dialog-content * { animation-duration: .01ms !important; transition-duration: .01ms !important; }
106
117
  }
107
- `;var Y=require("react");var Ae=require("react");var va=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Re=(...e)=>e.filter((a,t,o)=>!!a&&a.trim()!==""&&o.indexOf(a)===t).join(" ").trim();var me=require("react");var Pa={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 ka=(0,me.forwardRef)(({color:e="currentColor",size:a=24,strokeWidth:t=2,absoluteStrokeWidth:o,className:r="",children:u,iconNode:d,...l},n)=>(0,me.createElement)("svg",{ref:n,...Pa,width:a,height:a,stroke:e,strokeWidth:o?Number(t)*24/Number(a):t,className:Re("lucide",r),...l},[...d.map(([f,c])=>(0,me.createElement)(f,c)),...Array.isArray(u)?u:[u]]));var le=(e,a)=>{let t=(0,Ae.forwardRef)(({className:o,...r},u)=>(0,Ae.createElement)(ka,{ref:u,iconNode:a,className:Re(`lucide-${va(e)}`,o),...r}));return t.displayName=`${e}`,t};var xo=[["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=le("CircleAlert",xo);var Io=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],J=le("LoaderCircle",Io);var ho=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Le=le("X",ho);var ba=require("react"),xe="dsh-simple-worktree",Ra={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"},Co={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."},K=null,De=null;function Aa(e){let a=e?.get?.("locale");if(!a||typeof a.register!="function"||typeof a.bind!="function")return()=>{};K=a;let t;try{t=a.register(xe,{zh:Ra,en:Co})}catch{}return De=a.bind(xe),()=>{t?.(),K===a&&(K=null,De=null)}}function Ie(e){return De?De(e):Ra[e]??e}var go=e=>K&&typeof K.subscribe=="function"?K.subscribe(e):()=>{},ya=()=>K&&typeof K.getSnapshot=="function"?K.getSnapshot():null;function de(){return(0,ba.useSyncExternalStore)(go,ya,ya),Ie}function Da(e,a){return e.replace(/\{(\w+)\}/g,(t,o)=>a[o]??`{${o}}`)}function E(e){let a=String(e??"");return a.length>1?a.replace(/[\\/]+$/,""):a}function Ba(e){return String(e||"task").trim().toLowerCase().replace(/[^a-z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||"task"}function Ma(e,a){let t=e.includes("\\")?"\\":"/";return`${E(e)}.worktrees${t}${a}`}var w=P(require("react"),1);function z(e,a,{checkForDefaultPrevented:t=!0}={}){return function(r){if(e?.(r),t===!1||!r.defaultPrevented)return a?.(r)}}var Ta=P(require("react"),1);function Fa(e,a){if(typeof e=="function")return e(a);e!=null&&(e.current=a)}function _e(...e){return a=>{let t=!1,o=e.map(r=>{let u=Fa(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():Fa(e[r],null)}}}}function N(...e){return Ta.useCallback(_e(...e),e)}var U=P(require("react"),1),Xe=require("react/jsx-runtime");function Oa(e,a){let t=U.createContext(a),o=u=>{let{children:d,...l}=u,n=U.useMemo(()=>l,Object.values(l));return(0,Xe.jsx)(t.Provider,{value:n,children:d})};o.displayName=e+"Provider";function r(u){let d=U.useContext(t);if(d)return d;if(a!==void 0)return a;throw new Error(`\`${u}\` must be used within \`${e}\``)}return[o,r]}function qa(e,a=[]){let t=[];function o(u,d){let l=U.createContext(d),n=t.length;t=[...t,d];let f=p=>{let{scope:L,children:m,...x}=p,s=L?.[e]?.[n]||l,i=U.useMemo(()=>x,Object.values(x));return(0,Xe.jsx)(s.Provider,{value:i,children:m})};f.displayName=u+"Provider";function c(p,L){let m=L?.[e]?.[n]||l,x=U.useContext(m);if(x)return x;if(d!==void 0)return d;throw new Error(`\`${p}\` must be used within \`${u}\``)}return[f,c]}let r=()=>{let u=t.map(d=>U.createContext(d));return function(l){let n=l?.[e]||u;return U.useMemo(()=>({[`__scope${e}`]:{...l,[e]:n}}),[l,n])}};return r.scopeName=e,[o,So(r,...a)]}function So(...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 d=o.reduce((l,{useScope:n,scopeName:f})=>{let p=n(u)[`__scope${f}`];return{...l,...p}},{});return U.useMemo(()=>({[`__scope${a.scopeName}`]:d}),[d])}};return t.scopeName=a.scopeName,t}var Be=P(require("react"),1);var Ea=P(require("react"),1),ee=globalThis?.document?Ea.useLayoutEffect:()=>{};var wo=Be.useId||(()=>{}),vo=0;function Me(e){let[a,t]=Be.useState(wo());return ee(()=>{e||t(o=>o??String(vo++))},[e]),e||(a?`radix-${a}`:"")}var $=P(require("react"),1);var se=P(require("react"),1);function G(e){let a=se.useRef(e);return se.useEffect(()=>{a.current=e}),se.useMemo(()=>(...t)=>a.current?.(...t),[])}function Ua({prop:e,defaultProp:a,onChange:t=()=>{}}){let[o,r]=Po({defaultProp:a,onChange:t}),u=e!==void 0,d=u?e:o,l=G(t),n=$.useCallback(f=>{if(u){let p=typeof f=="function"?f(e):f;p!==e&&l(p)}else r(f)},[u,e,r,l]);return[d,n]}function Po({defaultProp:e,onChange:a}){let t=$.useState(e),[o]=t,r=$.useRef(o),u=G(a);return $.useEffect(()=>{r.current!==o&&(u(o),r.current=o)},[o,r,u]),t}var y=P(require("react"),1);var Ha=P(require("react"),1),Wa=P(require("react-dom"),1);var B=P(require("react"),1);var fe=require("react/jsx-runtime"),he=B.forwardRef((e,a)=>{let{children:t,...o}=e,r=B.Children.toArray(t),u=r.find(yo);if(u){let d=u.props.children,l=r.map(n=>n===u?B.Children.count(d)>1?B.Children.only(null):B.isValidElement(d)?d.props.children:null:n);return(0,fe.jsx)(Ke,{...o,ref:a,children:B.isValidElement(d)?B.cloneElement(d,void 0,l):null})}return(0,fe.jsx)(Ke,{...o,ref:a,children:t})});he.displayName="Slot";var Ke=B.forwardRef((e,a)=>{let{children:t,...o}=e;if(B.isValidElement(t)){let r=Ro(t),u=bo(o,t.props);return t.type!==B.Fragment&&(u.ref=a?_e(a,r):r),B.cloneElement(t,u)}return B.Children.count(t)>1?B.Children.only(null):null});Ke.displayName="SlotClone";var ko=({children:e})=>(0,fe.jsx)(fe.Fragment,{children:e});function yo(e){return B.isValidElement(e)&&e.type===ko}function bo(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 Ro(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 Na=require("react/jsx-runtime"),Ao=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"],q=Ao.reduce((e,a)=>{let t=Ha.forwardRef((o,r)=>{let{asChild:u,...d}=o,l=u?he:a;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),(0,Na.jsx)(l,{...d,ref:r})});return t.displayName=`Primitive.${a}`,{...e,[a]:t}},{});function Ga(e,a){e&&Wa.flushSync(()=>e.dispatchEvent(a))}var Va=P(require("react"),1);function za(e,a=globalThis?.document){let t=G(e);Va.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 Ze=require("react/jsx-runtime"),Do="DismissableLayer",je="dismissableLayer.update",Bo="dismissableLayer.pointerDownOutside",Mo="dismissableLayer.focusOutside",_a,Ka=y.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Je=y.forwardRef((e,a)=>{let{disableOutsidePointerEvents:t=!1,onEscapeKeyDown:o,onPointerDownOutside:r,onFocusOutside:u,onInteractOutside:d,onDismiss:l,...n}=e,f=y.useContext(Ka),[c,p]=y.useState(null),L=c?.ownerDocument??globalThis?.document,[,m]=y.useState({}),x=N(a,I=>p(I)),s=Array.from(f.layers),[i]=[...f.layersWithOutsidePointerEventsDisabled].slice(-1),h=s.indexOf(i),C=c?s.indexOf(c):-1,v=f.layersWithOutsidePointerEventsDisabled.size>0,R=C>=h,b=Oo(I=>{let W=I.target,j=[...f.branches].some(D=>D.contains(W));!R||j||(r?.(I),d?.(I),I.defaultPrevented||l?.())},L),A=qo(I=>{let W=I.target;[...f.branches].some(D=>D.contains(W))||(u?.(I),d?.(I),I.defaultPrevented||l?.())},L);return za(I=>{C===f.layers.size-1&&(o?.(I),!I.defaultPrevented&&l&&(I.preventDefault(),l()))},L),y.useEffect(()=>{if(c)return t&&(f.layersWithOutsidePointerEventsDisabled.size===0&&(_a=L.body.style.pointerEvents,L.body.style.pointerEvents="none"),f.layersWithOutsidePointerEventsDisabled.add(c)),f.layers.add(c),Xa(),()=>{t&&f.layersWithOutsidePointerEventsDisabled.size===1&&(L.body.style.pointerEvents=_a)}},[c,L,t,f]),y.useEffect(()=>()=>{c&&(f.layers.delete(c),f.layersWithOutsidePointerEventsDisabled.delete(c),Xa())},[c,f]),y.useEffect(()=>{let I=()=>m({});return document.addEventListener(je,I),()=>document.removeEventListener(je,I)},[]),(0,Ze.jsx)(q.div,{...n,ref:x,style:{pointerEvents:v?R?"auto":"none":void 0,...e.style},onFocusCapture:z(e.onFocusCapture,A.onFocusCapture),onBlurCapture:z(e.onBlurCapture,A.onBlurCapture),onPointerDownCapture:z(e.onPointerDownCapture,b.onPointerDownCapture)})});Je.displayName=Do;var Fo="DismissableLayerBranch",To=y.forwardRef((e,a)=>{let t=y.useContext(Ka),o=y.useRef(null),r=N(a,o);return y.useEffect(()=>{let u=o.current;if(u)return t.branches.add(u),()=>{t.branches.delete(u)}},[t.branches]),(0,Ze.jsx)(q.div,{...e,ref:r})});To.displayName=Fo;function Oo(e,a=globalThis?.document){let t=G(e),o=y.useRef(!1),r=y.useRef(()=>{});return y.useEffect(()=>{let u=l=>{if(l.target&&!o.current){let f=function(){ja(Bo,t,c,{discrete:!0})};var n=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},d=window.setTimeout(()=>{a.addEventListener("pointerdown",u)},0);return()=>{window.clearTimeout(d),a.removeEventListener("pointerdown",u),a.removeEventListener("click",r.current)}},[a,t]),{onPointerDownCapture:()=>o.current=!0}}function qo(e,a=globalThis?.document){let t=G(e),o=y.useRef(!1);return y.useEffect(()=>{let r=u=>{u.target&&!o.current&&ja(Mo,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 Xa(){let e=new CustomEvent(je);document.dispatchEvent(e)}function ja(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?Ga(r,u):r.dispatchEvent(u)}var H=P(require("react"),1);var Ya=require("react/jsx-runtime"),$e="focusScope.autoFocusOnMount",Qe="focusScope.autoFocusOnUnmount",Za={bubbles:!1,cancelable:!0},Eo="FocusScope",Ye=H.forwardRef((e,a)=>{let{loop:t=!1,trapped:o=!1,onMountAutoFocus:r,onUnmountAutoFocus:u,...d}=e,[l,n]=H.useState(null),f=G(r),c=G(u),p=H.useRef(null),L=N(a,s=>n(s)),m=H.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;H.useEffect(()=>{if(o){let C=function(A){if(m.paused||!l)return;let I=A.target;l.contains(I)?p.current=I:Q(p.current,{select:!0})},v=function(A){if(m.paused||!l)return;let I=A.relatedTarget;I!==null&&(l.contains(I)||Q(p.current,{select:!0}))},R=function(A){if(document.activeElement===document.body)for(let W of A)W.removedNodes.length>0&&Q(l)};var s=C,i=v,h=R;document.addEventListener("focusin",C),document.addEventListener("focusout",v);let b=new MutationObserver(R);return l&&b.observe(l,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",C),document.removeEventListener("focusout",v),b.disconnect()}}},[o,l,m.paused]),H.useEffect(()=>{if(l){$a.add(m);let s=document.activeElement;if(!l.contains(s)){let h=new CustomEvent($e,Za);l.addEventListener($e,f),l.dispatchEvent(h),h.defaultPrevented||(Uo(Vo(et(l)),{select:!0}),document.activeElement===s&&Q(l))}return()=>{l.removeEventListener($e,f),setTimeout(()=>{let h=new CustomEvent(Qe,Za);l.addEventListener(Qe,c),l.dispatchEvent(h),h.defaultPrevented||Q(s??document.body,{select:!0}),l.removeEventListener(Qe,c),$a.remove(m)},0)}}},[l,f,c,m]);let x=H.useCallback(s=>{if(!t&&!o||m.paused)return;let i=s.key==="Tab"&&!s.altKey&&!s.ctrlKey&&!s.metaKey,h=document.activeElement;if(i&&h){let C=s.currentTarget,[v,R]=Ho(C);v&&R?!s.shiftKey&&h===R?(s.preventDefault(),t&&Q(v,{select:!0})):s.shiftKey&&h===v&&(s.preventDefault(),t&&Q(R,{select:!0})):h===C&&s.preventDefault()}},[t,o,m.paused]);return(0,Ya.jsx)(q.div,{tabIndex:-1,...d,ref:L,onKeyDown:x})});Ye.displayName=Eo;function Uo(e,{select:a=!1}={}){let t=document.activeElement;for(let o of e)if(Q(o,{select:a}),document.activeElement!==t)return}function Ho(e){let a=et(e),t=Ja(a,e),o=Ja(a.reverse(),e);return[t,o]}function et(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 Ja(e,a){for(let t of e)if(!Wo(t,{upTo:a}))return t}function Wo(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 No(e){return e instanceof HTMLInputElement&&"select"in e}function Q(e,{select:a=!1}={}){if(e&&e.focus){let t=document.activeElement;e.focus({preventScroll:!0}),e!==t&&No(e)&&a&&e.select()}}var $a=Go();function Go(){let e=[];return{add(a){let t=e[0];a!==t&&t?.pause(),e=Qa(e,a),e.unshift(a)},remove(a){e=Qa(e,a),e[0]?.resume()}}}function Qa(e,a){let t=[...e],o=t.indexOf(a);return o!==-1&&t.splice(o,1),t}function Vo(e){return e.filter(a=>a.tagName!=="A")}var Fe=P(require("react"),1),at=P(require("react-dom"),1);var tt=require("react/jsx-runtime"),zo="Portal",ea=Fe.forwardRef((e,a)=>{let{container:t,...o}=e,[r,u]=Fe.useState(!1);ee(()=>u(!0),[]);let d=t||r&&globalThis?.document?.body;return d?at.default.createPortal((0,tt.jsx)(q.div,{...o,ref:a}),d):null});ea.displayName=zo;var T=P(require("react"),1);var ot=P(require("react"),1);function _o(e,a){return ot.useReducer((t,o)=>a[t][o]??t,e)}var Ce=e=>{let{present:a,children:t}=e,o=Xo(a),r=typeof t=="function"?t({present:o.isPresent}):T.Children.only(t),u=N(o.ref,Ko(r));return typeof t=="function"||o.isPresent?T.cloneElement(r,{ref:u}):null};Ce.displayName="Presence";function Xo(e){let[a,t]=T.useState(),o=T.useRef({}),r=T.useRef(e),u=T.useRef("none"),d=e?"mounted":"unmounted",[l,n]=_o(d,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return T.useEffect(()=>{let f=Te(o.current);u.current=l==="mounted"?f:"none"},[l]),ee(()=>{let f=o.current,c=r.current;if(c!==e){let L=u.current,m=Te(f);e?n("MOUNT"):m==="none"||f?.display==="none"?n("UNMOUNT"):n(c&&L!==m?"ANIMATION_OUT":"UNMOUNT"),r.current=e}},[e,n]),ee(()=>{if(a){let f,c=a.ownerDocument.defaultView??window,p=m=>{let s=Te(o.current).includes(m.animationName);if(m.target===a&&s&&(n("ANIMATION_END"),!r.current)){let i=a.style.animationFillMode;a.style.animationFillMode="forwards",f=c.setTimeout(()=>{a.style.animationFillMode==="forwards"&&(a.style.animationFillMode=i)})}},L=m=>{m.target===a&&(u.current=Te(o.current))};return a.addEventListener("animationstart",L),a.addEventListener("animationcancel",p),a.addEventListener("animationend",p),()=>{c.clearTimeout(f),a.removeEventListener("animationstart",L),a.removeEventListener("animationcancel",p),a.removeEventListener("animationend",p)}}else n("ANIMATION_END")},[a,n]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:T.useCallback(f=>{f&&(o.current=getComputedStyle(f)),t(f)},[])}}function Te(e){return e?.animationName||"none"}function Ko(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 ut=P(require("react"),1),aa=0;function lt(){ut.useEffect(()=>{let e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??rt()),document.body.insertAdjacentElement("beforeend",e[1]??rt()),aa++,()=>{aa===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(a=>a.remove()),aa--}},[])}function rt(){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 O=function(){return O=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},O.apply(this,arguments)};function Oe(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 dt(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 We=P(require("react"));var M=P(require("react"));var ae="right-scroll-bar-position",te="width-before-scroll-bar",ta="with-scroll-bars-hidden",oa="--removed-body-scroll-bar-size";function qe(e,a){return typeof e=="function"?e(a):e&&(e.current=a),e}var st=require("react");function ft(e,a){var t=(0,st.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 Ee=P(require("react"));var jo=typeof window<"u"?Ee.useLayoutEffect:Ee.useEffect,nt=new WeakMap;function ra(e,a){var t=ft(a||null,function(o){return e.forEach(function(r){return qe(r,o)})});return jo(function(){var o=nt.get(t);if(o){var r=new Set(o),u=new Set(e),d=t.current;r.forEach(function(l){u.has(l)||qe(l,null)}),u.forEach(function(l){r.has(l)||qe(l,d)})}nt.set(t,e)},[e]),t}function Zo(e){return e}function Jo(e,a){a===void 0&&(a=Zo);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 d=a(u,o);return t.push(d),function(){t=t.filter(function(l){return l!==d})}},assignSyncMedium:function(u){for(o=!0;t.length;){var d=t;t=[],d.forEach(u)}t={push:function(l){return u(l)},filter:function(){return t}}},assignMedium:function(u){o=!0;var d=[];if(t.length){var l=t;t=[],l.forEach(u),d=t}var n=function(){var c=d;d=[],c.forEach(u)},f=function(){return Promise.resolve().then(n)};f(),t={push:function(c){d.push(c),f()},filter:function(c){return d=d.filter(c),t}}}};return r}function ua(e){e===void 0&&(e={});var a=Jo(null);return a.options=O({async:!0,ssr:!1},e),a}var it=P(require("react")),ct=function(e){var a=e.sideCar,t=Oe(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 it.createElement(o,O({},t))};ct.isSideCarExport=!0;function la(e,a){return e.useMedium(a),ct}var Ue=ua();var da=function(){},ge=M.forwardRef(function(e,a){var t=M.useRef(null),o=M.useState({onScrollCapture:da,onWheelCapture:da,onTouchMoveCapture:da}),r=o[0],u=o[1],d=e.forwardProps,l=e.children,n=e.className,f=e.removeScrollBar,c=e.enabled,p=e.shards,L=e.sideCar,m=e.noRelative,x=e.noIsolation,s=e.inert,i=e.allowPinchZoom,h=e.as,C=h===void 0?"div":h,v=e.gapMode,R=Oe(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),b=L,A=ra([t,a]),I=O(O({},R),r);return M.createElement(M.Fragment,null,c&&M.createElement(b,{sideCar:Ue,removeScrollBar:f,shards:p,noRelative:m,noIsolation:x,inert:s,setCallbacks:u,allowPinchZoom:!!i,lockRef:t,gapMode:v}),d?M.cloneElement(M.Children.only(l),O(O({},I),{ref:A})):M.createElement(C,O({},I,{className:n,ref:A}),l))});ge.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};ge.classNames={fullWidth:te,zeroRight:ae};var k=P(require("react"));var ie=P(require("react"));var Lt=P(require("react"));var pt;var mt=function(){if(pt)return pt;if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function $o(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var a=mt();return a&&e.setAttribute("nonce",a),e}function Qo(e,a){e.styleSheet?e.styleSheet.cssText=a:e.appendChild(document.createTextNode(a))}function Yo(e){var a=document.head||document.getElementsByTagName("head")[0];a.appendChild(e)}var sa=function(){var e=0,a=null;return{add:function(t){e==0&&(a=$o())&&(Qo(a,t),Yo(a)),e++},remove:function(){e--,!e&&a&&(a.parentNode&&a.parentNode.removeChild(a),a=null)}}};var fa=function(){var e=sa();return function(a,t){Lt.useEffect(function(){return e.add(a),function(){e.remove()}},[a&&t])}};var Se=function(){var e=fa(),a=function(t){var o=t.styles,r=t.dynamic;return e(o,r),null};return a};var er={left:0,top:0,right:0,gap:0},na=function(e){return parseInt(e||"",10)||0},ar=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[na(t),na(o),na(r)]},ia=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return er;var a=ar(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 tr=Se(),ne="data-scroll-locked",or=function(e,a,t,o){var r=e.left,u=e.top,d=e.right,l=e.gap;return t===void 0&&(t="margin"),`
108
- .`.concat(ta,` {
118
+ `;var Y=require("react");var qe=require("react");var Ba=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Ee=(...e)=>e.filter((a,t,o)=>!!a&&a.trim()!==""&&o.indexOf(a)===t).join(" ").trim();var ve=require("react");var Ma={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 Fa=(0,ve.forwardRef)(({color:e="currentColor",size:a=24,strokeWidth:t=2,absoluteStrokeWidth:o,className:r="",children:u,iconNode:s,...l},i)=>(0,ve.createElement)("svg",{ref:i,...Ma,width:a,height:a,stroke:e,strokeWidth:o?Number(t)*24/Number(a):t,className:Ee("lucide",r),...l},[...s.map(([n,c])=>(0,ve.createElement)(n,c)),...Array.isArray(u)?u:[u]]));var ae=(e,a)=>{let t=(0,qe.forwardRef)(({className:o,...r},u)=>(0,qe.createElement)(Fa,{ref:u,iconNode:a,className:Ee(`lucide-${Ba(e)}`,o),...r}));return t.displayName=`${e}`,t};var yo=[["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"}]],X=ae("CircleAlert",yo);var Po=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],K=ae("LoaderCircle",Po);var bo=[["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"}]],ke=ae("RefreshCw",bo);var Ro=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],ye=ae("X",Ro);var Oa=require("react"),se="dsh-simple-worktree",Ea={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:"Worktrees",refresh:"\u5237\u65B0",noWorktrees:"\u6CA1\u6709\u53D1\u73B0 linked worktree\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
+
120
+ \u8DEF\u5F84\uFF1A{path}
121
+ \u72B6\u6001\uFF1A{status}
122
+
123
+ \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"},Ao={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:"Worktrees",refresh:"Refresh",noWorktrees:"No linked worktrees found.",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
+
126
+ Path: {path}
127
+ Status: {status}
128
+
129
+ 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(na,` {
109
132
  overflow: hidden `).concat(o,`;
110
133
  padding-right: `).concat(l,"px ").concat(o,`;
111
134
  }
112
- body[`).concat(ne,`] {
135
+ body[`).concat(he,`] {
113
136
  overflow: hidden `).concat(o,`;
114
137
  overscroll-behavior: contain;
115
138
  `).concat([a&&"position: relative ".concat(o,";"),t==="margin"&&`
116
139
  padding-left: `.concat(r,`px;
117
140
  padding-top: `).concat(u,`px;
118
- padding-right: `).concat(d,`px;
141
+ padding-right: `).concat(s,`px;
119
142
  margin-left:0;
120
143
  margin-top:0;
121
144
  margin-right: `).concat(l,"px ").concat(o,`;
122
145
  `),t==="padding"&&"padding-right: ".concat(l,"px ").concat(o,";")].filter(Boolean).join(""),`
123
146
  }
124
147
 
125
- .`).concat(ae,` {
148
+ .`).concat(fe,` {
126
149
  right: `).concat(l,"px ").concat(o,`;
127
150
  }
128
151
 
129
- .`).concat(te,` {
152
+ .`).concat(ne,` {
130
153
  margin-right: `).concat(l,"px ").concat(o,`;
131
154
  }
132
155
 
133
- .`).concat(ae," .").concat(ae,` {
156
+ .`).concat(fe," .").concat(fe,` {
134
157
  right: 0 `).concat(o,`;
135
158
  }
136
159
 
137
- .`).concat(te," .").concat(te,` {
160
+ .`).concat(ne," .").concat(ne,` {
138
161
  margin-right: 0 `).concat(o,`;
139
162
  }
140
163
 
141
- body[`).concat(ne,`] {
142
- `).concat(oa,": ").concat(l,`px;
164
+ body[`).concat(he,`] {
165
+ `).concat(ia,": ").concat(l,`px;
143
166
  }
144
- `)},xt=function(){var e=parseInt(document.body.getAttribute(ne)||"0",10);return isFinite(e)?e:0},rr=function(){ie.useEffect(function(){return document.body.setAttribute(ne,(xt()+1).toString()),function(){var e=xt()-1;e<=0?document.body.removeAttribute(ne):document.body.setAttribute(ne,e.toString())}},[])},ca=function(e){var a=e.noRelative,t=e.noImportant,o=e.gapMode,r=o===void 0?"margin":o;rr();var u=ie.useMemo(function(){return ia(r)},[r]);return ie.createElement(tr,{styles:or(u,!a,r,t?"":"!important")})};var pa=!1;if(typeof window<"u")try{we=Object.defineProperty({},"passive",{get:function(){return pa=!0,!0}}),window.addEventListener("test",we,we),window.removeEventListener("test",we,we)}catch{pa=!1}var we,oe=pa?{passive:!1}:!1;var ur=function(e){return e.tagName==="TEXTAREA"},It=function(e,a){if(!(e instanceof Element))return!1;var t=window.getComputedStyle(e);return t[a]!=="hidden"&&!(t.overflowY===t.overflowX&&!ur(e)&&t[a]==="visible")},lr=function(e){return It(e,"overflowY")},dr=function(e){return It(e,"overflowX")},ma=function(e,a){var t=a.ownerDocument,o=a;do{typeof ShadowRoot<"u"&&o instanceof ShadowRoot&&(o=o.host);var r=ht(e,o);if(r){var u=Ct(e,o),d=u[1],l=u[2];if(d>l)return!0}o=o.parentNode}while(o&&o!==t.body);return!1},sr=function(e){var a=e.scrollTop,t=e.scrollHeight,o=e.clientHeight;return[a,t,o]},fr=function(e){var a=e.scrollLeft,t=e.scrollWidth,o=e.clientWidth;return[a,t,o]},ht=function(e,a){return e==="v"?lr(a):dr(a)},Ct=function(e,a){return e==="v"?sr(a):fr(a)},nr=function(e,a){return e==="h"&&a==="rtl"?-1:1},gt=function(e,a,t,o,r){var u=nr(e,window.getComputedStyle(a).direction),d=u*o,l=t.target,n=a.contains(l),f=!1,c=d>0,p=0,L=0;do{if(!l)break;var m=Ct(e,l),x=m[0],s=m[1],i=m[2],h=s-i-u*x;(x||h)&&ht(e,l)&&(p+=h,L+=x);var C=l.parentNode;l=C&&C.nodeType===Node.DOCUMENT_FRAGMENT_NODE?C.host:C}while(!n&&l!==document.body||n&&(a.contains(l)||a===l));return(c&&(r&&Math.abs(p)<1||!r&&d>p)||!c&&(r&&Math.abs(L)<1||!r&&-d>L))&&(f=!0),f};var He=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},St=function(e){return[e.deltaX,e.deltaY]},wt=function(e){return e&&"current"in e?e.current:e},ir=function(e,a){return e[0]===a[0]&&e[1]===a[1]},cr=function(e){return`
167
+ `)},vt=function(){var e=parseInt(document.body.getAttribute(he)||"0",10);return isFinite(e)?e:0},mr=function(){ge.useEffect(function(){return document.body.setAttribute(he,(vt()+1).toString()),function(){var e=vt()-1;e<=0?document.body.removeAttribute(he):document.body.setAttribute(he,e.toString())}},[])},Ca=function(e){var a=e.noRelative,t=e.noImportant,o=e.gapMode,r=o===void 0?"margin":o;mr();var u=ge.useMemo(function(){return ga(r)},[r]);return ge.createElement(cr,{styles:pr(u,!a,r,t?"":"!important")})};var Sa=!1;if(typeof window<"u")try{Be=Object.defineProperty({},"passive",{get:function(){return Sa=!0,!0}}),window.addEventListener("test",Be,Be),window.removeEventListener("test",Be,Be)}catch{Sa=!1}var Be,ie=Sa?{passive:!1}:!1;var Lr=function(e){return e.tagName==="TEXTAREA"},kt=function(e,a){if(!(e instanceof Element))return!1;var t=window.getComputedStyle(e);return t[a]!=="hidden"&&!(t.overflowY===t.overflowX&&!Lr(e)&&t[a]==="visible")},xr=function(e){return kt(e,"overflowY")},Ir=function(e){return kt(e,"overflowX")},wa=function(e,a){var t=a.ownerDocument,o=a;do{typeof ShadowRoot<"u"&&o instanceof ShadowRoot&&(o=o.host);var r=yt(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},hr=function(e){var a=e.scrollTop,t=e.scrollHeight,o=e.clientHeight;return[a,t,o]},gr=function(e){var a=e.scrollLeft,t=e.scrollWidth,o=e.clientWidth;return[a,t,o]},yt=function(e,a){return e==="v"?xr(a):Ir(a)},Pt=function(e,a){return e==="v"?hr(a):gr(a)},Cr=function(e,a){return e==="h"&&a==="rtl"?-1:1},bt=function(e,a,t,o,r){var u=Cr(e,window.getComputedStyle(a).direction),s=u*o,l=t.target,i=a.contains(l),n=!1,c=s>0,m=0,x=0;do{if(!l)break;var I=Pt(e,l),h=I[0],d=I[1],p=I[2],L=d-p-u*h;(h||L)&&yt(e,l)&&(m+=L,x+=h);var f=l.parentNode;l=f&&f.nodeType===Node.DOCUMENT_FRAGMENT_NODE?f.host:f}while(!i&&l!==document.body||i&&(a.contains(l)||a===l));return(c&&(r&&Math.abs(m)<1||!r&&s>m)||!c&&(r&&Math.abs(x)<1||!r&&-s>x))&&(n=!0),n};var Ke=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},Rt=function(e){return[e.deltaX,e.deltaY]},At=function(e){return e&&"current"in e?e.current:e},Sr=function(e,a){return e[0]===a[0]&&e[1]===a[1]},wr=function(e){return`
145
168
  .block-interactivity-`.concat(e,` {pointer-events: none;}
146
169
  .allow-interactivity-`).concat(e,` {pointer-events: all;}
147
- `)},pr=0,ce=[];function vt(e){var a=k.useRef([]),t=k.useRef([0,0]),o=k.useRef(),r=k.useState(pr++)[0],u=k.useState(Se)[0],d=k.useRef(e);k.useEffect(function(){d.current=e},[e]),k.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(r));var s=dt([e.lockRef.current],(e.shards||[]).map(wt),!0).filter(Boolean);return s.forEach(function(i){return i.classList.add("allow-interactivity-".concat(r))}),function(){document.body.classList.remove("block-interactivity-".concat(r)),s.forEach(function(i){return i.classList.remove("allow-interactivity-".concat(r))})}}},[e.inert,e.lockRef.current,e.shards]);var l=k.useCallback(function(s,i){if("touches"in s&&s.touches.length===2||s.type==="wheel"&&s.ctrlKey)return!d.current.allowPinchZoom;var h=He(s),C=t.current,v="deltaX"in s?s.deltaX:C[0]-h[0],R="deltaY"in s?s.deltaY:C[1]-h[1],b,A=s.target,I=Math.abs(v)>Math.abs(R)?"h":"v";if("touches"in s&&I==="h"&&A.type==="range")return!1;var W=window.getSelection(),j=W&&W.anchorNode,D=j?j===A||j.contains(A):!1;if(D)return!1;var F=ma(I,A);if(!F)return!0;if(F?b=I:(b=I==="v"?"h":"v",F=ma(I,A)),!F)return!1;if(!o.current&&"changedTouches"in s&&(v||R)&&(o.current=b),!b)return!0;var X=o.current||b;return gt(X,i,s,X==="h"?v:R,!0)},[]),n=k.useCallback(function(s){var i=s;if(!(!ce.length||ce[ce.length-1]!==u)){var h="deltaY"in i?St(i):He(i),C=a.current.filter(function(b){return b.name===i.type&&(b.target===i.target||i.target===b.shadowParent)&&ir(b.delta,h)})[0];if(C&&C.should){i.cancelable&&i.preventDefault();return}if(!C){var v=(d.current.shards||[]).map(wt).filter(Boolean).filter(function(b){return b.contains(i.target)}),R=v.length>0?l(i,v[0]):!d.current.noIsolation;R&&i.cancelable&&i.preventDefault()}}},[]),f=k.useCallback(function(s,i,h,C){var v={name:s,delta:i,target:h,should:C,shadowParent:mr(h)};a.current.push(v),setTimeout(function(){a.current=a.current.filter(function(R){return R!==v})},1)},[]),c=k.useCallback(function(s){t.current=He(s),o.current=void 0},[]),p=k.useCallback(function(s){f(s.type,St(s),s.target,l(s,e.lockRef.current))},[]),L=k.useCallback(function(s){f(s.type,He(s),s.target,l(s,e.lockRef.current))},[]);k.useEffect(function(){return ce.push(u),e.setCallbacks({onScrollCapture:p,onWheelCapture:p,onTouchMoveCapture:L}),document.addEventListener("wheel",n,oe),document.addEventListener("touchmove",n,oe),document.addEventListener("touchstart",c,oe),function(){ce=ce.filter(function(s){return s!==u}),document.removeEventListener("wheel",n,oe),document.removeEventListener("touchmove",n,oe),document.removeEventListener("touchstart",c,oe)}},[]);var m=e.removeScrollBar,x=e.inert;return k.createElement(k.Fragment,null,x?k.createElement(u,{styles:cr(r)}):null,m?k.createElement(ca,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function mr(e){for(var a=null;e!==null;)e instanceof ShadowRoot&&(a=e.host,e=e.host),e=e.parentNode;return a}var Pt=la(Ue,vt);var kt=We.forwardRef(function(e,a){return We.createElement(ge,O({},e,{ref:a,sideCar:Pt}))});kt.classNames=ge.classNames;var La=kt;var Lr=function(e){if(typeof document>"u")return null;var a=Array.isArray(e)?e[0]:e;return a.ownerDocument.body},pe=new WeakMap,Ne=new WeakMap,Ge={},xa=0,yt=function(e){return e&&(e.host||yt(e.parentNode))},xr=function(e,a){return a.map(function(t){if(e.contains(t))return t;var o=yt(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})},Ir=function(e,a,t,o){var r=xr(a,Array.isArray(e)?e:[e]);Ge[t]||(Ge[t]=new WeakMap);var u=Ge[t],d=[],l=new Set,n=new Set(r),f=function(p){!p||l.has(p)||(l.add(p),f(p.parentNode))};r.forEach(f);var c=function(p){!p||n.has(p)||Array.prototype.forEach.call(p.children,function(L){if(l.has(L))c(L);else try{var m=L.getAttribute(o),x=m!==null&&m!=="false",s=(pe.get(L)||0)+1,i=(u.get(L)||0)+1;pe.set(L,s),u.set(L,i),d.push(L),s===1&&x&&Ne.set(L,!0),i===1&&L.setAttribute(t,"true"),x||L.setAttribute(o,"true")}catch(h){console.error("aria-hidden: cannot operate on ",L,h)}})};return c(a),l.clear(),xa++,function(){d.forEach(function(p){var L=pe.get(p)-1,m=u.get(p)-1;pe.set(p,L),u.set(p,m),L||(Ne.has(p)||p.removeAttribute(o),Ne.delete(p)),m||p.removeAttribute(t)}),xa--,xa||(pe=new WeakMap,pe=new WeakMap,Ne=new WeakMap,Ge={})}},bt=function(e,a,t){t===void 0&&(t="data-aria-hidden");var o=Array.from(Array.isArray(e)?e:[e]),r=a||Lr(e);return r?(o.push.apply(o,Array.from(r.querySelectorAll("[aria-live], script"))),Ir(o,r,t,"aria-hidden")):function(){return null}};var g=require("react/jsx-runtime"),Ia="Dialog",[Rt,ad]=qa(Ia),[hr,V]=Rt(Ia),At=e=>{let{__scopeDialog:a,children:t,open:o,defaultOpen:r,onOpenChange:u,modal:d=!0}=e,l=w.useRef(null),n=w.useRef(null),[f=!1,c]=Ua({prop:o,defaultProp:r,onChange:u});return(0,g.jsx)(hr,{scope:a,triggerRef:l,contentRef:n,contentId:Me(),titleId:Me(),descriptionId:Me(),open:f,onOpenChange:c,onOpenToggle:w.useCallback(()=>c(p=>!p),[c]),modal:d,children:t})};At.displayName=Ia;var Dt="DialogTrigger",Cr=w.forwardRef((e,a)=>{let{__scopeDialog:t,...o}=e,r=V(Dt,t),u=N(a,r.triggerRef);return(0,g.jsx)(q.button,{type:"button","aria-haspopup":"dialog","aria-expanded":r.open,"aria-controls":r.contentId,"data-state":ga(r.open),...o,ref:u,onClick:z(e.onClick,r.onOpenToggle)})});Cr.displayName=Dt;var ha="DialogPortal",[gr,Bt]=Rt(ha,{forceMount:void 0}),Mt=e=>{let{__scopeDialog:a,forceMount:t,children:o,container:r}=e,u=V(ha,a);return(0,g.jsx)(gr,{scope:a,forceMount:t,children:w.Children.map(o,d=>(0,g.jsx)(Ce,{present:t||u.open,children:(0,g.jsx)(ea,{asChild:!0,container:r,children:d})}))})};Mt.displayName=ha;var Ve="DialogOverlay",Ft=w.forwardRef((e,a)=>{let t=Bt(Ve,e.__scopeDialog),{forceMount:o=t.forceMount,...r}=e,u=V(Ve,e.__scopeDialog);return u.modal?(0,g.jsx)(Ce,{present:o||u.open,children:(0,g.jsx)(Sr,{...r,ref:a})}):null});Ft.displayName=Ve;var Sr=w.forwardRef((e,a)=>{let{__scopeDialog:t,...o}=e,r=V(Ve,t);return(0,g.jsx)(La,{as:he,allowPinchZoom:!0,shards:[r.contentRef],children:(0,g.jsx)(q.div,{"data-state":ga(r.open),...o,ref:a,style:{pointerEvents:"auto",...o.style}})})}),re="DialogContent",Tt=w.forwardRef((e,a)=>{let t=Bt(re,e.__scopeDialog),{forceMount:o=t.forceMount,...r}=e,u=V(re,e.__scopeDialog);return(0,g.jsx)(Ce,{present:o||u.open,children:u.modal?(0,g.jsx)(wr,{...r,ref:a}):(0,g.jsx)(vr,{...r,ref:a})})});Tt.displayName=re;var wr=w.forwardRef((e,a)=>{let t=V(re,e.__scopeDialog),o=w.useRef(null),r=N(a,t.contentRef,o);return w.useEffect(()=>{let u=o.current;if(u)return bt(u)},[]),(0,g.jsx)(Ot,{...e,ref:r,trapFocus:t.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:z(e.onCloseAutoFocus,u=>{u.preventDefault(),t.triggerRef.current?.focus()}),onPointerDownOutside:z(e.onPointerDownOutside,u=>{let d=u.detail.originalEvent,l=d.button===0&&d.ctrlKey===!0;(d.button===2||l)&&u.preventDefault()}),onFocusOutside:z(e.onFocusOutside,u=>u.preventDefault())})}),vr=w.forwardRef((e,a)=>{let t=V(re,e.__scopeDialog),o=w.useRef(!1),r=w.useRef(!1);return(0,g.jsx)(Ot,{...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 d=u.target;t.triggerRef.current?.contains(d)&&u.preventDefault(),u.detail.originalEvent.type==="focusin"&&r.current&&u.preventDefault()}})}),Ot=w.forwardRef((e,a)=>{let{__scopeDialog:t,trapFocus:o,onOpenAutoFocus:r,onCloseAutoFocus:u,...d}=e,l=V(re,t),n=w.useRef(null),f=N(a,n);return lt(),(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(Ye,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:r,onUnmountAutoFocus:u,children:(0,g.jsx)(Je,{role:"dialog",id:l.contentId,"aria-describedby":l.descriptionId,"aria-labelledby":l.titleId,"data-state":ga(l.open),...d,ref:f,onDismiss:()=>l.onOpenChange(!1)})}),(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(Pr,{titleId:l.titleId}),(0,g.jsx)(yr,{contentRef:n,descriptionId:l.descriptionId})]})]})}),Ca="DialogTitle",qt=w.forwardRef((e,a)=>{let{__scopeDialog:t,...o}=e,r=V(Ca,t);return(0,g.jsx)(q.h2,{id:r.titleId,...o,ref:a})});qt.displayName=Ca;var Et="DialogDescription",Ut=w.forwardRef((e,a)=>{let{__scopeDialog:t,...o}=e,r=V(Et,t);return(0,g.jsx)(q.p,{id:r.descriptionId,...o,ref:a})});Ut.displayName=Et;var Ht="DialogClose",Wt=w.forwardRef((e,a)=>{let{__scopeDialog:t,...o}=e,r=V(Ht,t);return(0,g.jsx)(q.button,{type:"button",...o,ref:a,onClick:z(e.onClick,()=>r.onOpenChange(!1))})});Wt.displayName=Ht;function ga(e){return e?"open":"closed"}var Nt="DialogTitleWarning",[td,Gt]=Oa(Nt,{contentName:re,titleName:Ca,docsSlug:"dialog"}),Pr=({titleId:e})=>{let a=Gt(Nt),t=`\`${a.contentName}\` requires a \`${a.titleName}\` for the component to be accessible for screen reader users.
170
+ `)},vr=0,Ce=[];function Dt(e){var a=D.useRef([]),t=D.useRef([0,0]),o=D.useRef(),r=D.useState(vr++)[0],u=D.useState(De)[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=mt([e.lockRef.current],(e.shards||[]).map(At),!0).filter(Boolean);return d.forEach(function(p){return p.classList.add("allow-interactivity-".concat(r))}),function(){document.body.classList.remove("block-interactivity-".concat(r)),d.forEach(function(p){return p.classList.remove("allow-interactivity-".concat(r))})}}},[e.inert,e.lockRef.current,e.shards]);var l=D.useCallback(function(d,p){if("touches"in d&&d.touches.length===2||d.type==="wheel"&&d.ctrlKey)return!s.current.allowPinchZoom;var L=Ke(d),f=t.current,C="deltaX"in d?d.deltaX:f[0]-L[0],S="deltaY"in d?d.deltaY:f[1]-L[1],w,y=d.target,g=Math.abs(C)>Math.abs(S)?"h":"v";if("touches"in d&&g==="h"&&y.type==="range")return!1;var T=window.getSelection(),$=T&&T.anchorNode,le=$?$===y||$.contains(y):!1;if(le)return!1;var me=wa(g,y);if(!me)return!0;if(me?w=g:(w=g==="v"?"h":"v",me=wa(g,y)),!me)return!1;if(!o.current&&"changedTouches"in d&&(C||S)&&(o.current=w),!w)return!0;var Te=o.current||w;return bt(Te,p,d,Te==="h"?C:S,!0)},[]),i=D.useCallback(function(d){var p=d;if(!(!Ce.length||Ce[Ce.length-1]!==u)){var L="deltaY"in p?Rt(p):Ke(p),f=a.current.filter(function(w){return w.name===p.type&&(w.target===p.target||p.target===w.shadowParent)&&Sr(w.delta,L)})[0];if(f&&f.should){p.cancelable&&p.preventDefault();return}if(!f){var C=(s.current.shards||[]).map(At).filter(Boolean).filter(function(w){return w.contains(p.target)}),S=C.length>0?l(p,C[0]):!s.current.noIsolation;S&&p.cancelable&&p.preventDefault()}}},[]),n=D.useCallback(function(d,p,L,f){var C={name:d,delta:p,target:L,should:f,shadowParent:kr(L)};a.current.push(C),setTimeout(function(){a.current=a.current.filter(function(S){return S!==C})},1)},[]),c=D.useCallback(function(d){t.current=Ke(d),o.current=void 0},[]),m=D.useCallback(function(d){n(d.type,Rt(d),d.target,l(d,e.lockRef.current))},[]),x=D.useCallback(function(d){n(d.type,Ke(d),d.target,l(d,e.lockRef.current))},[]);D.useEffect(function(){return Ce.push(u),e.setCallbacks({onScrollCapture:m,onWheelCapture:m,onTouchMoveCapture:x}),document.addEventListener("wheel",i,ie),document.addEventListener("touchmove",i,ie),document.addEventListener("touchstart",c,ie),function(){Ce=Ce.filter(function(d){return d!==u}),document.removeEventListener("wheel",i,ie),document.removeEventListener("touchmove",i,ie),document.removeEventListener("touchstart",c,ie)}},[]);var I=e.removeScrollBar,h=e.inert;return D.createElement(D.Fragment,null,h?D.createElement(u,{styles:wr(r)}):null,I?D.createElement(Ca,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function kr(e){for(var a=null;e!==null;)e instanceof ShadowRoot&&(a=e.host,e=e.host),e=e.parentNode;return a}var Bt=ma(Xe,Dt);var Mt=je.forwardRef(function(e,a){return je.createElement(Ae,q({},e,{ref:a,sideCar:Bt}))});Mt.classNames=Ae.classNames;var va=Mt;var yr=function(e){if(typeof document>"u")return null;var a=Array.isArray(e)?e[0]:e;return a.ownerDocument.body},Se=new WeakMap,Ze=new WeakMap,$e={},ka=0,Ft=function(e){return e&&(e.host||Ft(e.parentNode))},Pr=function(e,a){return a.map(function(t){if(e.contains(t))return t;var o=Ft(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})},br=function(e,a,t,o){var r=Pr(a,Array.isArray(e)?e:[e]);$e[t]||($e[t]=new WeakMap);var u=$e[t],s=[],l=new Set,i=new Set(r),n=function(m){!m||l.has(m)||(l.add(m),n(m.parentNode))};r.forEach(n);var c=function(m){!m||i.has(m)||Array.prototype.forEach.call(m.children,function(x){if(l.has(x))c(x);else try{var I=x.getAttribute(o),h=I!==null&&I!=="false",d=(Se.get(x)||0)+1,p=(u.get(x)||0)+1;Se.set(x,d),u.set(x,p),s.push(x),d===1&&h&&Ze.set(x,!0),p===1&&x.setAttribute(t,"true"),h||x.setAttribute(o,"true")}catch(L){console.error("aria-hidden: cannot operate on ",x,L)}})};return c(a),l.clear(),ka++,function(){s.forEach(function(m){var x=Se.get(m)-1,I=u.get(m)-1;Se.set(m,x),u.set(m,I),x||(Ze.has(m)||m.removeAttribute(o),Ze.delete(m)),I||m.removeAttribute(t)}),ka--,ka||(Se=new WeakMap,Se=new WeakMap,Ze=new WeakMap,$e={})}},Tt=function(e,a,t){t===void 0&&(t="data-aria-hidden");var o=Array.from(Array.isArray(e)?e:[e]),r=a||yr(e);return r?(o.push.apply(o,Array.from(r.querySelectorAll("[aria-live], script"))),br(o,r,t,"aria-hidden")):function(){return null}};var k=require("react/jsx-runtime"),ya="Dialog",[Ot,ms]=Va(ya),[Rr,_]=Ot(ya),Et=e=>{let{__scopeDialog:a,children:t,open:o,defaultOpen:r,onOpenChange:u,modal:s=!0}=e,l=b.useRef(null),i=b.useRef(null),[n=!1,c]=_a({prop:o,defaultProp:r,onChange:u});return(0,k.jsx)(Rr,{scope:a,triggerRef:l,contentRef:i,contentId:We(),titleId:We(),descriptionId:We(),open:n,onOpenChange:c,onOpenToggle:b.useCallback(()=>c(m=>!m),[c]),modal:s,children:t})};Et.displayName=ya;var qt="DialogTrigger",Ar=b.forwardRef((e,a)=>{let{__scopeDialog:t,...o}=e,r=_(qt,t),u=V(a,r.triggerRef);return(0,k.jsx)(U.button,{type:"button","aria-haspopup":"dialog","aria-expanded":r.open,"aria-controls":r.contentId,"data-state":Ra(r.open),...o,ref:u,onClick:j(e.onClick,r.onOpenToggle)})});Ar.displayName=qt;var Pa="DialogPortal",[Dr,Ut]=Ot(Pa,{forceMount:void 0}),Ht=e=>{let{__scopeDialog:a,forceMount:t,children:o,container:r}=e,u=_(Pa,a);return(0,k.jsx)(Dr,{scope:a,forceMount:t,children:b.Children.map(o,s=>(0,k.jsx)(Re,{present:t||u.open,children:(0,k.jsx)(da,{asChild:!0,container:r,children:s})}))})};Ht.displayName=Pa;var Je="DialogOverlay",Wt=b.forwardRef((e,a)=>{let t=Ut(Je,e.__scopeDialog),{forceMount:o=t.forceMount,...r}=e,u=_(Je,e.__scopeDialog);return u.modal?(0,k.jsx)(Re,{present:o||u.open,children:(0,k.jsx)(Br,{...r,ref:a})}):null});Wt.displayName=Je;var Br=b.forwardRef((e,a)=>{let{__scopeDialog:t,...o}=e,r=_(Je,t);return(0,k.jsx)(va,{as:be,allowPinchZoom:!0,shards:[r.contentRef],children:(0,k.jsx)(U.div,{"data-state":Ra(r.open),...o,ref:a,style:{pointerEvents:"auto",...o.style}})})}),ce="DialogContent",Nt=b.forwardRef((e,a)=>{let t=Ut(ce,e.__scopeDialog),{forceMount:o=t.forceMount,...r}=e,u=_(ce,e.__scopeDialog);return(0,k.jsx)(Re,{present:o||u.open,children:u.modal?(0,k.jsx)(Mr,{...r,ref:a}):(0,k.jsx)(Fr,{...r,ref:a})})});Nt.displayName=ce;var Mr=b.forwardRef((e,a)=>{let t=_(ce,e.__scopeDialog),o=b.useRef(null),r=V(a,t.contentRef,o);return b.useEffect(()=>{let u=o.current;if(u)return Tt(u)},[]),(0,k.jsx)(Gt,{...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())})}),Fr=b.forwardRef((e,a)=>{let t=_(ce,e.__scopeDialog),o=b.useRef(!1),r=b.useRef(!1);return(0,k.jsx)(Gt,{...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()}})}),Gt=b.forwardRef((e,a)=>{let{__scopeDialog:t,trapFocus:o,onOpenAutoFocus:r,onCloseAutoFocus:u,...s}=e,l=_(ce,t),i=b.useRef(null),n=V(a,i);return pt(),(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(sa,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:r,onUnmountAutoFocus:u,children:(0,k.jsx)(ra,{role:"dialog",id:l.contentId,"aria-describedby":l.descriptionId,"aria-labelledby":l.titleId,"data-state":Ra(l.open),...s,ref:n,onDismiss:()=>l.onOpenChange(!1)})}),(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(Tr,{titleId:l.titleId}),(0,k.jsx)(Er,{contentRef:i,descriptionId:l.descriptionId})]})]})}),ba="DialogTitle",Vt=b.forwardRef((e,a)=>{let{__scopeDialog:t,...o}=e,r=_(ba,t);return(0,k.jsx)(U.h2,{id:r.titleId,...o,ref:a})});Vt.displayName=ba;var zt="DialogDescription",_t=b.forwardRef((e,a)=>{let{__scopeDialog:t,...o}=e,r=_(zt,t);return(0,k.jsx)(U.p,{id:r.descriptionId,...o,ref:a})});_t.displayName=zt;var Xt="DialogClose",Kt=b.forwardRef((e,a)=>{let{__scopeDialog:t,...o}=e,r=_(Xt,t);return(0,k.jsx)(U.button,{type:"button",...o,ref:a,onClick:j(e.onClick,()=>r.onOpenChange(!1))})});Kt.displayName=Xt;function Ra(e){return e?"open":"closed"}var jt="DialogTitleWarning",[Ls,Zt]=Ga(jt,{contentName:ce,titleName:ba,docsSlug:"dialog"}),Tr=({titleId:e})=>{let a=Zt(jt),t=`\`${a.contentName}\` requires a \`${a.titleName}\` for the component to be accessible for screen reader users.
148
171
 
149
172
  If you want to hide the \`${a.titleName}\`, you can wrap it with our VisuallyHidden component.
150
173
 
151
- For more information, see https://radix-ui.com/primitives/docs/components/${a.docsSlug}`;return w.useEffect(()=>{e&&(document.getElementById(e)||console.error(t))},[t,e]),null},kr="DialogDescriptionWarning",yr=({contentRef:e,descriptionId:a})=>{let o=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${Gt(kr).contentName}}.`;return w.useEffect(()=>{let r=e.current?.getAttribute("aria-describedby");a&&r&&(document.getElementById(a)||console.warn(o))},[o,e,a]),null},Vt=At;var zt=Mt,_t=Ft,Xt=Tt,Kt=qt,jt=Ut,Zt=Wt;var _=require("react/jsx-runtime");function ve({className:e="",...a}){return(0,_.jsx)("button",{className:`dswt-button ${e}`,...a})}function Jt({className:e="",...a}){return(0,_.jsx)("input",{className:`dswt-input ${e}`,...a})}function $t({children:e,...a}){return(0,_.jsx)(Vt,{...a,children:e})}function Qt({children:e}){let a=de();return(0,_.jsxs)(zt,{children:[(0,_.jsx)(_t,{className:"dswt-dialog-overlay"}),(0,_.jsxs)(Xt,{className:"dswt-dialog-content",children:[e,(0,_.jsx)(Zt,{className:"dswt-dialog-close","aria-label":a("close"),children:(0,_.jsx)(Le,{size:16})})]})]})}var Yt=Kt,eo=jt;var S=require("react/jsx-runtime");function ao({target:e,api:a,workspaces:t,sessions:o,defaultBaseChoice:r="current",onCreated:u,onClose:d}){let l=de(),[n,f]=(0,Y.useState)(null),[c,p]=(0,Y.useState)(""),[L,m]=(0,Y.useState)(r),[x,s]=(0,Y.useState)(""),[i,h]=(0,Y.useState)(!1);(0,Y.useEffect)(()=>{let D=!0;return f(null),s(""),p(""),m(r),a.list(e.path).then(F=>{D&&f(F)}).catch(F=>{D&&s(String(F?.message??F))}),()=>{D=!1}},[a,r,e.path]);let C=n?.repoPath,v=Ba(c),R=`task/${v}`,b=C?Ma(C,v):"",A=n?.worktrees.find(D=>E(D.path)===E(e.path))?.branch??"HEAD",I=n?.defaultBranch??n?.worktrees.find(D=>D.isMain)?.branch??A,W=L==="main"?I:A,j=async()=>{if(!C||!c.trim()){s(l("fillTaskName"));return}h(!0),s("");let D,F;try{let X=await a.create({repoPath:C,path:b,branch:R,baseRef:W});D=X.path,F=await t.create({path:X.path}),await t.rename(F.workspaceId,`${e.title}/${v}`);let lo=await t.connectWorkspace(F.workspaceId);u(X.path),o.open(lo),d()}catch(X){F?.workspaceId&&t.delete(F.workspaceId).catch(()=>{}),D&&a.remove({repoPath:C,path:D}).catch(()=>{}),s(`${l("operationFailed")}${String(X?.message??X)}`)}finally{h(!1)}};return(0,S.jsx)($t,{open:!0,onOpenChange:D=>{!D&&!i&&d()},children:(0,S.jsxs)(Qt,{children:[(0,S.jsx)(Yt,{className:"dswt-dialog-title",children:Da(l("dialogTitle"),{name:e.title})}),(0,S.jsx)(eo,{className:"dswt-visually-hidden",children:e.title}),x?(0,S.jsxs)("div",{className:"dswt-error",role:"alert",children:[(0,S.jsx)(Z,{size:14})," ",x]}):null,(0,S.jsxs)("label",{className:"dswt-field",children:[(0,S.jsx)("span",{className:"dswt-field-label",children:l("taskName")}),(0,S.jsx)(Jt,{"aria-label":l("taskName"),value:c,disabled:i,onChange:D=>p(D.target.value),placeholder:l("taskNamePlaceholder"),autoFocus:!0})]}),(0,S.jsxs)("fieldset",{className:"dswt-field dswt-base-fieldset",disabled:i||!n,children:[(0,S.jsx)("legend",{className:"dswt-field-label",children:l("basedOn")}),(0,S.jsxs)("div",{className:"dswt-radio-group",role:"radiogroup","aria-label":l("basedOn"),children:[(0,S.jsxs)("label",{className:"dswt-radio-option","data-selected":L==="current"?"true":void 0,children:[(0,S.jsx)("input",{className:"dswt-radio-input",type:"radio",name:"dswt-base-branch",value:"current",checked:L==="current",onChange:()=>m("current")}),(0,S.jsxs)("span",{className:"dswt-radio-copy",children:[(0,S.jsx)("span",{className:"dswt-radio-label",children:l("currentBranch")}),(0,S.jsx)("span",{className:"dswt-radio-branch",children:A})]})]}),(0,S.jsxs)("label",{className:"dswt-radio-option","data-selected":L==="main"?"true":void 0,children:[(0,S.jsx)("input",{className:"dswt-radio-input",type:"radio",name:"dswt-base-branch",value:"main",checked:L==="main",onChange:()=>m("main")}),(0,S.jsxs)("span",{className:"dswt-radio-copy",children:[(0,S.jsx)("span",{className:"dswt-radio-label",children:l("mainBranch")}),(0,S.jsx)("span",{className:"dswt-radio-branch",children:I})]})]})]})]}),(0,S.jsxs)("div",{className:"dswt-dialog-actions",children:[(0,S.jsx)(ve,{type:"button",disabled:i,onClick:d,children:l("cancel")}),(0,S.jsxs)(ve,{type:"button",className:"dswt-button-primary",disabled:i||!c.trim()||!n,onClick:j,children:[i?(0,S.jsx)(J,{size:14,className:"dswt-spin"}):null,l(i?"creating":"createAndOpen")]})]})]})})}var ue=require("react/jsx-runtime");function Pe(){return(0,ue.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[(0,ue.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,ue.jsx)("circle",{cx:"4.75",cy:"12.75",r:"1.5",fill:"currentColor"}),(0,ue.jsx)("circle",{cx:"10.25",cy:"12.75",r:"1.5",fill:"currentColor"}),(0,ue.jsx)("circle",{cx:"4.75",cy:"2.25",r:"1.5",fill:"currentColor"})]})}var ke=require("react/jsx-runtime");function to({session:e,useWorkspaces:a,onOpen:t}){let o=de(),r=a(u=>u.items.find(d=>d.sessionIds?.includes(e.sessionId)));return!e.blank||!r?null:(0,ke.jsx)("div",{className:"dswt-new-session-action",children:(0,ke.jsxs)(ve,{type:"button",className:"dswt-new-session-button",onClick:()=>t(r),children:[(0,ke.jsx)(Pe,{}),o("createWorktree")]})})}var Rr="/dsh-simple-worktree";function oo(e){async function a(t,o){let r=await e.rpc.call(Rr,t,o);if(!r?.ok){let u=new Error(r?.error?.message??"worktree operation failed");throw u.code=r?.error?.code,u}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)}}var ye=require("react/jsx-runtime"),ro="data-dsh-simple-worktree-style";function Ar(){if(typeof document>"u"||document.querySelector(`style[${ro}]`))return;let e=document.createElement("style");e.setAttribute(ro,""),e.textContent=wa,document.head.appendChild(e)}var uo={name:"@alpacachen/dsh-simple-worktree",inject:["slots","connection","locale","workspaces","sessions","workspaceExtensions"],apply(e){Ar(),e.effect(()=>Aa(e),"dsh-simple-worktree locale");let a=oo(e.connection),t=e.workspaces,o=e.sessions,r=e.get("locale"),u=e.workspaceExtensions,d=new Set;e.effect(()=>{if(!(!r||typeof r.subscribe!="function"))return r.subscribe(()=>u.invalidate())},"dsh-simple-worktree locale refresh");let l=new Set,n=!0,f=()=>{},c=0,p=async()=>{let m=++c,x=t.list.getSnapshot().items,s=await Promise.all(x.map(async i=>{try{return await a.classify(i.path)}catch{return}}));if(!(!n||m!==c)){d.clear(),l.clear();for(let i of s)i?.isGit&&i.path&&d.add(E(i.path)),i?.isWorktree&&i.path&&l.add(E(i.path));u.invalidate()}};e.effect(()=>u.register({id:"dsh-simple-worktree",menuItem(x){let s=E(x.path);if(!(!d.has(s)||l.has(s)))return{id:"dsh-simple-worktree.create",label:Ie("createWorktree"),icon:(0,ye.jsx)(Pe,{}),order:30,onSelect:()=>f(x)}},deleteWorkspace(x){let s=E(x.path);if(l.has(s))return(async()=>{let i=await a.classify(x.path);!i.isWorktree||!i.repoPath||(await a.remove({repoPath:i.repoPath,path:x.path}),await t.delete(x.workspaceId),d.delete(s),l.delete(s),u.invalidate())})()},icon(x){return l.has(E(x.path))?(0,ye.jsx)(Pe,{}):void 0}}),"dsh-simple-worktree workspace extensions"),e.effect(()=>{n=!0;let m=t.list.subscribe(()=>{p()});return p(),()=>{n=!1,c+=1,m()}},"dsh-simple-worktree workspace classification");function L(){let[m,x]=(0,ze.useState)(null);return(0,ze.useEffect)(()=>(f=(s,i="current")=>x({target:s,defaultBaseChoice:i}),()=>{f=()=>{}}),[]),m?(0,ye.jsx)(ao,{target:m.target,api:a,workspaces:t,sessions:o,defaultBaseChoice:m.defaultBaseChoice,onCreated:s=>{d.add(E(s)),l.add(E(s)),u.invalidate()},onClose:()=>x(null)}):null}e.slots.inject("conversation.input.dock",()=>e.slots.register({name:"conversation.input.dock",id:"dsh-simple-worktree-new-session",order:-30,locale:xe,label:()=>Ie("createWorktree")},m=>(0,ye.jsx)(to,{session:m.session,useWorkspaces:m.useWorkspaces,onOpen:x=>f(x,"main")}))),e.slots.inject("shell.overlay",()=>e.slots.register({name:"shell.overlay",id:"dsh-simple-worktree-create",order:30,locale:xe,label:()=>Ie("createWorktree")},L))}};var Dr=uo;
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 co(e){async function a(t,o){let r=await e.rpc.call(Ur,t,o);if(!r?.ok){let u=r?.error?.code,s=new Error(u==="worktree-unavailable"?"worktree-unavailable":u==="not-git-repository"?"not-git-repository":r?.error?.message??"worktree operation failed");throw s.code=r?.error?.code,s}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 Hr(){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","workspaceExtensions"],apply(e){e.effect(Hr,"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.workspaceExtensions,s=new Set;e.effect(()=>{if(!(!r||typeof r.subscribe!="function"))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.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}}),"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 Wr=mo;
152
175
  /*! Bundled license information:
153
176
 
154
177
  lucide-react/dist/esm/shared/src/utils.js:
@@ -157,6 +180,7 @@ lucide-react/dist/esm/Icon.js:
157
180
  lucide-react/dist/esm/createLucideIcon.js:
158
181
  lucide-react/dist/esm/icons/circle-alert.js:
159
182
  lucide-react/dist/esm/icons/loader-circle.js:
183
+ lucide-react/dist/esm/icons/refresh-cw.js:
160
184
  lucide-react/dist/esm/icons/x.js:
161
185
  lucide-react/dist/esm/lucide-react.js:
162
186
  (**
Binary file
package/lib/index.js CHANGED
@@ -1,4 +1,9 @@
1
+ import { installSettingsSection, settingsNamespace } from '@deepseek-ai/dsh-settings'
2
+ import z from '@deepseek-ai/schemastery'
3
+
1
4
  const CHANNEL = '/dsh-simple-worktree'
5
+ const SETTINGS_NS = settingsNamespace('dsh-simple-worktree')
6
+ const SETTINGS_SCHEMA = z.object({})
2
7
 
3
8
  export const ok = (value) => ({ ok: true, value })
4
9
  export const fail = (code, message, details = {}) => ({
@@ -42,18 +47,24 @@ async function tryRunGit(subprocess, cwd, args) {
42
47
  }
43
48
 
44
49
  export async function detectDefaultBranch(subprocess, repoPath, worktrees) {
45
- const remoteHead = await tryRunGit(subprocess, repoPath, ['symbolic-ref', '--quiet', '--short', 'refs/remotes/origin/HEAD'])
50
+ const [remoteHead, refsOutput] = await Promise.all([
51
+ tryRunGit(subprocess, repoPath, ['symbolic-ref', '--quiet', '--short', 'refs/remotes/origin/HEAD']),
52
+ tryRunGit(subprocess, repoPath, ['for-each-ref', '--format=%(refname:short)', 'refs/heads', 'refs/remotes/origin']),
53
+ ])
54
+ const refs = new Set(refsOutput.split(/\r?\n/).filter(Boolean))
55
+
46
56
  if (remoteHead) {
47
57
  const separator = remoteHead.indexOf('/')
48
- if (separator >= 0 && remoteHead.slice(separator + 1)) return remoteHead.slice(separator + 1)
58
+ const name = separator >= 0 ? remoteHead.slice(separator + 1) : ''
59
+ if (name) return { name, ref: refs.has(name) ? name : remoteHead }
49
60
  }
50
61
 
51
- const refs = await tryRunGit(subprocess, repoPath, ['for-each-ref', '--format=%(refname:short)', 'refs/heads', 'refs/remotes/origin'])
52
- const branches = refs.split(/\r?\n/).filter(Boolean).map((ref) => ref.startsWith('origin/') ? ref.slice('origin/'.length) : ref)
53
- for (const preferred of ['main', 'master', 'trunk', 'develop']) {
54
- if (branches.includes(preferred)) return preferred
62
+ for (const name of ['main', 'master', 'trunk', 'develop']) {
63
+ if (refs.has(name)) return { name, ref: name }
64
+ if (refs.has(`origin/${name}`)) return { name, ref: `origin/${name}` }
55
65
  }
56
- return worktrees.find((worktree) => worktree.isMain)?.branch ?? worktrees.find((worktree) => worktree.branch)?.branch ?? 'HEAD'
66
+ const name = worktrees.find((worktree) => worktree.isMain)?.branch ?? worktrees.find((worktree) => worktree.branch)?.branch
67
+ return name ? { name, ref: name } : { name: 'HEAD', ref: 'HEAD' }
57
68
  }
58
69
 
59
70
  export function parseWorktrees(text) {
@@ -102,13 +113,23 @@ export async function recover(operation, classify) {
102
113
  }
103
114
 
104
115
  export const classifyGitError = (message) => message.includes('not a git repository')
105
- ? 'bad-request'
106
- : undefined
116
+ ? 'not-git-repository'
117
+ : message.includes('is not a working tree') || message.includes('No such file or directory')
118
+ ? 'worktree-unavailable'
119
+ : undefined
107
120
 
108
121
  export const name = '@alpacachen/dsh-simple-worktree'
109
- export const inject = ['connection', 'subprocess']
122
+ export const inject = ['connection', 'subprocess', 'settings']
110
123
 
111
124
  export function apply(ctx) {
125
+ if (typeof ctx.inject === 'function') {
126
+ ctx.inject(['settings'], (settingsCtx) => {
127
+ installSettingsSection(settingsCtx, SETTINGS_NS, SETTINGS_SCHEMA, {}, {
128
+ setSource: () => {},
129
+ onChange: () => {},
130
+ })
131
+ })
132
+ }
112
133
  ctx.effect(() => ctx.connection.rpc.handle(CHANNEL, async (endpoint, payload = {}, signal) => {
113
134
  if (signal?.aborted) return fail('cancelled', 'The request was cancelled.')
114
135
 
@@ -123,7 +144,7 @@ export function apply(ctx) {
123
144
  const worktrees = parseWorktrees(porcelain)
124
145
  const repoPath = worktrees.find((worktree) => worktree.isMain)?.path ?? topLevel
125
146
  const defaultBranch = await detectDefaultBranch(ctx.subprocess, repoPath, worktrees)
126
- return { repoPath, commonDir, defaultBranch, worktrees }
147
+ return { repoPath, commonDir, defaultBranch: defaultBranch.name, defaultRef: defaultBranch.ref, worktrees }
127
148
  }, classifyGitError)
128
149
 
129
150
  if (endpoint === 'worktree.classify') return recover(async () => {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@alpacachen/dsh-simple-worktree",
3
- "version": "1.0.5",
4
- "description": "A minimal worktree manager with one button and one dialog for DeepSeek Harness.",
3
+ "version": "1.0.7",
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": [
7
7
  "deepseek-harness",
@@ -35,7 +35,8 @@
35
35
  "cordis.patch.yml",
36
36
  "package.json",
37
37
  "README.md",
38
- "README.zh.md"
38
+ "README.zh.md",
39
+ "docs/preview.png"
39
40
  ],
40
41
  "scripts": {
41
42
  "build": "node build.mjs",
@@ -48,7 +49,9 @@
48
49
  "prepublishOnly": "pnpm test"
49
50
  },
50
51
  "peerDependencies": {
51
- "@deepseek-ai/cordis": "^4.0.1"
52
+ "@deepseek-ai/cordis": "^4.0.1",
53
+ "@deepseek-ai/dsh-settings": "^0.1.0-rc.8",
54
+ "@deepseek-ai/schemastery": "^3.18.1"
52
55
  },
53
56
  "dsh": {
54
57
  "bundle": {
@@ -59,13 +62,16 @@
59
62
  "@deepseek-ai/dsh-client-connection",
60
63
  "@deepseek-ai/dsh-client-runtime",
61
64
  "@deepseek-ai/dsh-client-ui-slots",
62
- "@deepseek-ai/dsh-client-ui-workspace"
65
+ "@deepseek-ai/dsh-client-ui-workspace",
66
+ "@deepseek-ai/dsh-client-ui-settings-plugins"
63
67
  ],
64
68
  "platform": "web"
65
69
  }
66
70
  },
67
71
  "devDependencies": {
68
72
  "@deepseek-ai/cordis": "^4.0.1",
73
+ "@deepseek-ai/dsh-settings": "^0.1.0-rc.8",
74
+ "@deepseek-ai/schemastery": "^3.18.1",
69
75
  "@testing-library/react": "16.3.2",
70
76
  "@testing-library/user-event": "14.6.5",
71
77
  "@types/node": "^22.10.0",