@minimalcorp/tsunagi 0.4.4 → 0.4.6
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/.next/standalone/apps/web/.next/BUILD_ID +1 -1
- package/.next/standalone/apps/web/.next/build-manifest.json +3 -3
- package/.next/standalone/apps/web/.next/prerender-manifest.json +3 -3
- package/.next/standalone/apps/web/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/_not-found.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/index.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/index.rsc +3 -3
- package/.next/standalone/apps/web/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/.next/standalone/apps/web/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/settings.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/settings.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/settings.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/settings.segments/_index.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/tasks/[id]/page.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/tasks/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{_0lqioz1._.js → _06k1.v3._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_0cll8v8._.js +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_0gzw46w._.js +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_0nv5et8._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{_0.ix5hx._.js → _0u8h53e._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_0~zpobw._.js +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0r3rp45._.js → node_modules_0-oyxtg._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0.k090e._.js → node_modules_0.920-0._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_01x9jhr._.js → node_modules_01qtjaa._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0e~.z5.._.js → node_modules_01u7~-b._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_06e-q5p._.js → node_modules_03.~-ht._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0gbqzyp._.js → node_modules_030c2ng._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0h9.n77._.js → node_modules_03qg7je._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_042s455._.js → node_modules_04.c6x~._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0eany8j._.js → node_modules_04~1fjx._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0sxzkm4._.js → node_modules_05sjhbk._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0ufhiu0._.js → node_modules_06480dg._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_06dbwfx._.js → node_modules_069ptxl._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0~mdhr-._.js → node_modules_06rsw4k._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_006_~bg._.js → node_modules_07_.~p4._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0f_fmlz._.js → node_modules_07g964i._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0727fxi._.js → node_modules_0822u83._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0a5ccwh._.js → node_modules_08q2824._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_07o4lep._.js → node_modules_090pde9._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_12fg7ff._.js → node_modules_094um6-._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0d4bnxq._.js → node_modules_09pfbt8._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0z.b_s6._.js → node_modules_09rb.9y._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0e535.c._.js → node_modules_09v1zxn._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0ut-0ui._.js → node_modules_0_~1ltz._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_048a-3e._.js → node_modules_0a-3xpo._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0qnxp8p._.js → node_modules_0bg6~kl._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0mw17em._.js → node_modules_0d7tk38._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0zffsu.._.js → node_modules_0e9at2-._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0qj8sd8._.js → node_modules_0ed_.2w._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0.j_mel._.js → node_modules_0edonsp._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_117ifaa._.js → node_modules_0eh0t4f._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0o7wk9s._.js → node_modules_0gj5cnp._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_11vhz_f._.js → node_modules_0h6q.vi._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_00srdmg._.js → node_modules_0huv0_j._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0~wmeou._.js → node_modules_0i4tpkv._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_05~6lsn._.js → node_modules_0i6vcx7._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0qlz.rw._.js → node_modules_0imxd.q._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_09he~u6._.js → node_modules_0jt44dy._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0fhe2y1._.js → node_modules_0kjwxrl._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0adf7g.._.js → node_modules_0m1z6da._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0ygvzv3._.js → node_modules_0ogsiid._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0~flrfh._.js → node_modules_0pd5us3._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0j3cdoi._.js → node_modules_0phcf70._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0n2.ctn._.js → node_modules_0ponjed._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0l1i1-g._.js → node_modules_0qp65~p._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0nroyub._.js → node_modules_0rnf8p2._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_12nhtkv._.js → node_modules_0s-u4sx._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0b.92cv._.js → node_modules_0u1yjgd._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_09t5n8h._.js → node_modules_0w3z5wm._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0rb60-8._.js → node_modules_0x3ei8w._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_11x_vv~._.js → node_modules_0zzrecn._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0xwob0c._.js → node_modules_10bh4-y._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0awk6-u._.js → node_modules_10n_5pp._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_04wp5xt._.js → node_modules_112c~j3._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0~dnzen._.js → node_modules_11a6n36._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0246kbi._.js → node_modules_11v-z2r._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0_-izm4._.js → node_modules_127w43d._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_katex_dist_katex_mjs_0kp9p~f._.js → node_modules_katex_dist_katex_mjs_0wqu-50._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_katex_dist_katex_mjs_0v075ak._.js → node_modules_katex_dist_katex_mjs_0zkvq9h._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_mermaid_dist_mermaid_core_mjs_06.qh_h._.js → node_modules_mermaid_dist_mermaid_core_mjs_0s9-pfg._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/middleware-build-manifest.js +3 -3
- package/.next/standalone/apps/web/.next/server/pages/404.html +1 -1
- package/.next/standalone/apps/web/.next/server/pages/500.html +1 -1
- package/.next/standalone/apps/web/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/apps/web/.next/static/chunks/043fskg~m3moq.js +1 -0
- package/.next/standalone/apps/web/.next/static/chunks/099s5185b5~dd.js +1 -0
- package/.next/standalone/apps/web/.next/static/chunks/0_8fq3_~h_r3n.js +6 -0
- package/.next/standalone/apps/web/.next/static/chunks/0lkkwfhoxs2w9.css +4 -0
- package/.next/standalone/apps/web/.next/static/chunks/{0j1vs.65on.~..js → 0v8-~6pv7ws5w.js} +1 -1
- package/.next/standalone/apps/web/.next/static/chunks/{0w_b4db5lrkt8.js → 10rc-051-t9os.js} +8 -8
- package/dist/server/lib/repositories/task.d.ts +5 -0
- package/dist/server/lib/repositories/task.js +7 -0
- package/dist/server/routes/tasks.js +33 -0
- package/npm-shrinkwrap.json +54 -50
- package/package.json +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_0f-.2d8._.js +0 -3
- package/.next/standalone/apps/web/.next/static/chunks/09hkvp9eixhrd.js +0 -6
- package/.next/standalone/apps/web/.next/static/chunks/0_8u4hou0pvbl.js +0 -1
- package/.next/standalone/apps/web/.next/static/chunks/0u5h8b5lgm1ki.css +0 -4
- package/.next/standalone/apps/web/.next/static/chunks/162ni7xyo_8_-.js +0 -1
- /package/.next/standalone/apps/web/.next/static/{224zD8YM7ARX7LuhyyCln → 5Fes27yDobAZHbWZyuM4H}/_buildManifest.js +0 -0
- /package/.next/standalone/apps/web/.next/static/{224zD8YM7ARX7LuhyyCln → 5Fes27yDobAZHbWZyuM4H}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/apps/web/.next/static/{224zD8YM7ARX7LuhyyCln → 5Fes27yDobAZHbWZyuM4H}/_ssgManifest.js +0 -0
|
@@ -12,6 +12,11 @@ export declare function getTask(id: string): Promise<Task | null>;
|
|
|
12
12
|
export declare function createTask(task: Omit<Task, 'id' | 'deleted' | 'deletedAt' | 'createdAt' | 'updatedAt' | 'tabs'>, tx?: TxClient): Promise<Task>;
|
|
13
13
|
export declare function updateTask(id: string, updates: Partial<Omit<Task, 'id' | 'createdAt'>>): Promise<Task | null>;
|
|
14
14
|
export declare function bumpOrder(targetOrder: number, excludeTaskId?: string, tx?: TxClient): Promise<void>;
|
|
15
|
+
/**
|
|
16
|
+
* 表示順を一括更新する(ボードの1列分の並び替え)。
|
|
17
|
+
* 渡された id の並びをそのまま order 0..n-1 に割り当てるため、玉突き処理は不要。
|
|
18
|
+
*/
|
|
19
|
+
export declare function reorderTasks(taskIds: string[]): Promise<void>;
|
|
15
20
|
export declare function deleteTask(id: string): Promise<boolean>;
|
|
16
21
|
export declare function createTab(taskId: string, mode?: Tab['mode']): Promise<Tab | null>;
|
|
17
22
|
export declare function getTab(taskId: string, tab_id: string): Promise<Tab | null>;
|
|
@@ -95,6 +95,13 @@ export async function bumpOrder(targetOrder, excludeTaskId, tx) {
|
|
|
95
95
|
data: { order: { increment: 1 } },
|
|
96
96
|
});
|
|
97
97
|
}
|
|
98
|
+
/**
|
|
99
|
+
* 表示順を一括更新する(ボードの1列分の並び替え)。
|
|
100
|
+
* 渡された id の並びをそのまま order 0..n-1 に割り当てるため、玉突き処理は不要。
|
|
101
|
+
*/
|
|
102
|
+
export async function reorderTasks(taskIds) {
|
|
103
|
+
await prisma.$transaction(taskIds.map((id, index) => prisma.task.update({ where: { id }, data: { order: index } })));
|
|
104
|
+
}
|
|
98
105
|
// タスク論理削除
|
|
99
106
|
export async function deleteTask(id) {
|
|
100
107
|
try {
|
|
@@ -157,6 +157,39 @@ export async function tasksRoutes(fastify) {
|
|
|
157
157
|
return reply.status(500).send({ error: 'Failed to fetch task' });
|
|
158
158
|
}
|
|
159
159
|
});
|
|
160
|
+
// PUT /tasks/reorder - ボード1列分の並び順を一括更新する。
|
|
161
|
+
// タスクごとに task:updated を流すと1回の操作で通知が大量に出るため、操作単位で tasks:reordered を1回だけ流す
|
|
162
|
+
fastify.put('/tasks/reorder', async (request, reply) => {
|
|
163
|
+
try {
|
|
164
|
+
const { taskIds } = request.body ?? {};
|
|
165
|
+
if (!Array.isArray(taskIds) || taskIds.length === 0) {
|
|
166
|
+
return reply.status(400).send({ error: 'Missing required field: taskIds' });
|
|
167
|
+
}
|
|
168
|
+
if (new Set(taskIds).size !== taskIds.length) {
|
|
169
|
+
return reply.status(400).send({ error: 'Duplicate task ids' });
|
|
170
|
+
}
|
|
171
|
+
const existing = new Map((await taskRepo.getTasks()).map((t) => [t.id, t]));
|
|
172
|
+
const unknown = taskIds.filter((id) => !existing.has(id));
|
|
173
|
+
if (unknown.length > 0) {
|
|
174
|
+
return reply.status(404).send({ error: `Unknown task ids: ${unknown.join(', ')}` });
|
|
175
|
+
}
|
|
176
|
+
const repoKeys = new Set(taskIds.map((id) => {
|
|
177
|
+
const task = existing.get(id);
|
|
178
|
+
return `${task?.owner}/${task?.repo}`;
|
|
179
|
+
}));
|
|
180
|
+
if (repoKeys.size > 1) {
|
|
181
|
+
return reply.status(400).send({ error: 'Tasks must belong to the same repository' });
|
|
182
|
+
}
|
|
183
|
+
await taskRepo.reorderTasks(taskIds);
|
|
184
|
+
const orders = taskIds.map((id, order) => ({ id, order }));
|
|
185
|
+
io.emit('tasks:reordered', { orders });
|
|
186
|
+
return reply.status(200).send({ data: { orders } });
|
|
187
|
+
}
|
|
188
|
+
catch (error) {
|
|
189
|
+
fastify.log.error(error, 'PUT /tasks/reorder error');
|
|
190
|
+
return reply.status(500).send({ error: 'Failed to reorder tasks' });
|
|
191
|
+
}
|
|
192
|
+
});
|
|
160
193
|
// PUT /tasks/:id
|
|
161
194
|
fastify.put('/tasks/:id', async (request, reply) => {
|
|
162
195
|
try {
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@minimalcorp/tsunagi",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.6",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@minimalcorp/tsunagi",
|
|
9
|
-
"version": "0.4.
|
|
9
|
+
"version": "0.4.6",
|
|
10
10
|
"license": "SEE LICENSE IN LICENSE",
|
|
11
11
|
"os": [
|
|
12
12
|
"darwin",
|
|
@@ -101,9 +101,9 @@
|
|
|
101
101
|
"license": "BSD-3-Clause"
|
|
102
102
|
},
|
|
103
103
|
"node_modules/@fastify/busboy": {
|
|
104
|
-
"version": "3.2.
|
|
105
|
-
"resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-3.2.
|
|
106
|
-
"integrity": "sha512-
|
|
104
|
+
"version": "3.2.4",
|
|
105
|
+
"resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-3.2.4.tgz",
|
|
106
|
+
"integrity": "sha512-lQS8xcXT54rdJb+wlG/Q7SMSdtkZEpLPHooSDUZyyZm9LJD7X1kONPhVoPaHq+dsPtWUGGLIz9gBNhs9qKbylw==",
|
|
107
107
|
"license": "MIT"
|
|
108
108
|
},
|
|
109
109
|
"node_modules/@fastify/cors": {
|
|
@@ -127,9 +127,9 @@
|
|
|
127
127
|
}
|
|
128
128
|
},
|
|
129
129
|
"node_modules/@fastify/deepmerge": {
|
|
130
|
-
"version": "3.2.
|
|
131
|
-
"resolved": "https://registry.npmjs.org/@fastify/deepmerge/-/deepmerge-3.2.
|
|
132
|
-
"integrity": "sha512-
|
|
130
|
+
"version": "3.2.4",
|
|
131
|
+
"resolved": "https://registry.npmjs.org/@fastify/deepmerge/-/deepmerge-3.2.4.tgz",
|
|
132
|
+
"integrity": "sha512-kc8GQq5gX9RRhw0rov3DMrN8wS8yRlxJRdDzsYwwdBV/wazuVgc/1K7CKL90tlvu3RlHan6Y0R0aE3nJtBz2eQ==",
|
|
133
133
|
"funding": [
|
|
134
134
|
{
|
|
135
135
|
"type": "github",
|
|
@@ -235,9 +235,9 @@
|
|
|
235
235
|
}
|
|
236
236
|
},
|
|
237
237
|
"node_modules/@fastify/multipart": {
|
|
238
|
-
"version": "10.1.
|
|
239
|
-
"resolved": "https://registry.npmjs.org/@fastify/multipart/-/multipart-10.1.
|
|
240
|
-
"integrity": "sha512-
|
|
238
|
+
"version": "10.1.6",
|
|
239
|
+
"resolved": "https://registry.npmjs.org/@fastify/multipart/-/multipart-10.1.6.tgz",
|
|
240
|
+
"integrity": "sha512-5ykP7SkCbL06ek+j7fa4o1F8XASF4+KjqVLbuANqXunxXqjWdCQk0pw/+kWH3e8ho7Mw21EhuZp24EqtR04yKg==",
|
|
241
241
|
"funding": [
|
|
242
242
|
{
|
|
243
243
|
"type": "github",
|
|
@@ -278,9 +278,9 @@
|
|
|
278
278
|
}
|
|
279
279
|
},
|
|
280
280
|
"node_modules/@fastify/reply-from": {
|
|
281
|
-
"version": "12.
|
|
282
|
-
"resolved": "https://registry.npmjs.org/@fastify/reply-from/-/reply-from-12.
|
|
283
|
-
"integrity": "sha512-
|
|
281
|
+
"version": "12.8.0",
|
|
282
|
+
"resolved": "https://registry.npmjs.org/@fastify/reply-from/-/reply-from-12.8.0.tgz",
|
|
283
|
+
"integrity": "sha512-gxlp+UxL57S6js52TQYFv841zwpI/VzaAFTMhuXl6xAlXHcxYN4NYGbn+SodrJvBS9DuIuLyJbwLkeVABG82jw==",
|
|
284
284
|
"funding": [
|
|
285
285
|
{
|
|
286
286
|
"type": "github",
|
|
@@ -500,9 +500,9 @@
|
|
|
500
500
|
]
|
|
501
501
|
},
|
|
502
502
|
"node_modules/@modelcontextprotocol/sdk": {
|
|
503
|
-
"version": "1.32.
|
|
504
|
-
"resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.32.
|
|
505
|
-
"integrity": "sha512-
|
|
503
|
+
"version": "1.32.2",
|
|
504
|
+
"resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.32.2.tgz",
|
|
505
|
+
"integrity": "sha512-SWsVtH/0vULSQStoZ6xxH2K09Li8fXYTMC64ZeogCdpZ3XSi1eCPOByV1OpuJxuI3OcmHhosDWYyii07tpPsLw==",
|
|
506
506
|
"license": "MIT",
|
|
507
507
|
"dependencies": {
|
|
508
508
|
"@hono/node-server": "^1.19.9 || ^2.0.5",
|
|
@@ -1184,9 +1184,9 @@
|
|
|
1184
1184
|
"license": "MIT"
|
|
1185
1185
|
},
|
|
1186
1186
|
"node_modules/@types/lodash": {
|
|
1187
|
-
"version": "4.17.
|
|
1188
|
-
"resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.
|
|
1189
|
-
"integrity": "sha512-
|
|
1187
|
+
"version": "4.17.27",
|
|
1188
|
+
"resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.27.tgz",
|
|
1189
|
+
"integrity": "sha512-VenMRv/eKNrspX9v3H4dbmjsrnCOYdYBG3kxXKk3dG6X+urBGcj2Prww3xw1U5K4FV/mE4h5GbWd0szEKf+9ew==",
|
|
1190
1190
|
"license": "MIT"
|
|
1191
1191
|
},
|
|
1192
1192
|
"node_modules/@types/node": {
|
|
@@ -1463,18 +1463,18 @@
|
|
|
1463
1463
|
"license": "MIT"
|
|
1464
1464
|
},
|
|
1465
1465
|
"node_modules/body-parser": {
|
|
1466
|
-
"version": "2.
|
|
1467
|
-
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.
|
|
1468
|
-
"integrity": "sha512-
|
|
1466
|
+
"version": "2.4.0",
|
|
1467
|
+
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.4.0.tgz",
|
|
1468
|
+
"integrity": "sha512-Ifk1KcLrxaGt1occQagQNFNNOqRt1LFuehEnHHzB8Z6cRgIxRU1TBaiIsUiCdA+gy5PL7Y1IX31DNKkRmxtXjQ==",
|
|
1469
1469
|
"license": "MIT",
|
|
1470
1470
|
"dependencies": {
|
|
1471
1471
|
"bytes": "^3.1.2",
|
|
1472
|
-
"content-type": "^2.
|
|
1472
|
+
"content-type": "^2.1.0",
|
|
1473
1473
|
"debug": "^4.4.3",
|
|
1474
1474
|
"http-errors": "^2.0.1",
|
|
1475
|
-
"iconv-lite": "^0.7.
|
|
1475
|
+
"iconv-lite": "^0.7.3",
|
|
1476
1476
|
"on-finished": "^2.4.1",
|
|
1477
|
-
"qs": "^6.
|
|
1477
|
+
"qs": "^6.16.1",
|
|
1478
1478
|
"raw-body": "^3.0.2",
|
|
1479
1479
|
"type-is": "^2.1.0"
|
|
1480
1480
|
},
|
|
@@ -2266,9 +2266,9 @@
|
|
|
2266
2266
|
}
|
|
2267
2267
|
},
|
|
2268
2268
|
"node_modules/exsolve": {
|
|
2269
|
-
"version": "1.
|
|
2270
|
-
"resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.
|
|
2271
|
-
"integrity": "sha512-
|
|
2269
|
+
"version": "1.2.0",
|
|
2270
|
+
"resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.2.0.tgz",
|
|
2271
|
+
"integrity": "sha512-h1pQPR9XoeSMdntRNCjyTznaume4UpfXrULBnlkZ2CUM/G5eSa+pBByGldO5uR8dxbPC+OuJXsPPNf+JZ81ADg==",
|
|
2272
2272
|
"license": "MIT"
|
|
2273
2273
|
},
|
|
2274
2274
|
"node_modules/fast-check": {
|
|
@@ -2322,9 +2322,9 @@
|
|
|
2322
2322
|
"license": "MIT"
|
|
2323
2323
|
},
|
|
2324
2324
|
"node_modules/fast-json-stringify": {
|
|
2325
|
-
"version": "7.
|
|
2326
|
-
"resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-7.
|
|
2327
|
-
"integrity": "sha512-
|
|
2325
|
+
"version": "7.2.0",
|
|
2326
|
+
"resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-7.2.0.tgz",
|
|
2327
|
+
"integrity": "sha512-q18imgm9fEdQVfvJbRJALE9VP/A5HGme0+NUnWcmFYM9rbQbLkZZk20FyIp1LQ8gDOauQKwqMc52YozqFaQyOw==",
|
|
2328
2328
|
"funding": [
|
|
2329
2329
|
{
|
|
2330
2330
|
"type": "github",
|
|
@@ -2673,9 +2673,9 @@
|
|
|
2673
2673
|
}
|
|
2674
2674
|
},
|
|
2675
2675
|
"node_modules/hono": {
|
|
2676
|
-
"version": "4.13.
|
|
2677
|
-
"resolved": "https://registry.npmjs.org/hono/-/hono-4.13.
|
|
2678
|
-
"integrity": "sha512-
|
|
2676
|
+
"version": "4.13.14",
|
|
2677
|
+
"resolved": "https://registry.npmjs.org/hono/-/hono-4.13.14.tgz",
|
|
2678
|
+
"integrity": "sha512-yhRLQ21U6qa9Hsu2N7Qcbh8tE+WKEcoErjIo56LeSGiGXGp9sA7UpE86Ui9uexb61KakiGwuHMn2QdV7w6i6kQ==",
|
|
2679
2679
|
"license": "MIT",
|
|
2680
2680
|
"engines": {
|
|
2681
2681
|
"node": ">=16.9.0"
|
|
@@ -2733,9 +2733,9 @@
|
|
|
2733
2733
|
}
|
|
2734
2734
|
},
|
|
2735
2735
|
"node_modules/ip-address": {
|
|
2736
|
-
"version": "10.7.
|
|
2737
|
-
"resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.7.
|
|
2738
|
-
"integrity": "sha512-
|
|
2736
|
+
"version": "10.7.5",
|
|
2737
|
+
"resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.7.5.tgz",
|
|
2738
|
+
"integrity": "sha512-t2v0rkILYv9WXmSL7TpAaU3HXgaFYOPUcH3QHgwQ++gpJuH3bqyMy4Fvt/DJCTKwzH3Cf+bAp5W/mFL39KPLzA==",
|
|
2739
2739
|
"license": "MIT",
|
|
2740
2740
|
"engines": {
|
|
2741
2741
|
"node": ">= 12"
|
|
@@ -2847,9 +2847,9 @@
|
|
|
2847
2847
|
}
|
|
2848
2848
|
},
|
|
2849
2849
|
"node_modules/js-base64": {
|
|
2850
|
-
"version": "3.9.
|
|
2851
|
-
"resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.9.
|
|
2852
|
-
"integrity": "sha512-
|
|
2850
|
+
"version": "3.9.5",
|
|
2851
|
+
"resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.9.5.tgz",
|
|
2852
|
+
"integrity": "sha512-u0CFDUca8BbBRkMkF/fDcuoLCx9nTNbXdVtbjVnBqySA9E221u0uYKbACiYGOEk1heY69qM4caeX3OwjSyxevw==",
|
|
2853
2853
|
"license": "BSD-3-Clause"
|
|
2854
2854
|
},
|
|
2855
2855
|
"node_modules/json-schema-ref-resolver": {
|
|
@@ -3193,15 +3193,19 @@
|
|
|
3193
3193
|
}
|
|
3194
3194
|
},
|
|
3195
3195
|
"node_modules/on-finished": {
|
|
3196
|
-
"version": "2.4.
|
|
3197
|
-
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.
|
|
3198
|
-
"integrity": "sha512-
|
|
3196
|
+
"version": "2.4.2",
|
|
3197
|
+
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.2.tgz",
|
|
3198
|
+
"integrity": "sha512-ATWUv387i+nLD49EiDoOft5scf32Vsdz3ktrQJG9bi7jRFmaXTssvyvj1EmeKVVgvesbqUtvQQvaS2TpTukAZQ==",
|
|
3199
3199
|
"license": "MIT",
|
|
3200
3200
|
"dependencies": {
|
|
3201
3201
|
"ee-first": "1.1.1"
|
|
3202
3202
|
},
|
|
3203
3203
|
"engines": {
|
|
3204
3204
|
"node": ">= 0.8"
|
|
3205
|
+
},
|
|
3206
|
+
"funding": {
|
|
3207
|
+
"type": "opencollective",
|
|
3208
|
+
"url": "https://opencollective.com/express"
|
|
3205
3209
|
}
|
|
3206
3210
|
},
|
|
3207
3211
|
"node_modules/once": {
|
|
@@ -3476,9 +3480,9 @@
|
|
|
3476
3480
|
"license": "MIT"
|
|
3477
3481
|
},
|
|
3478
3482
|
"node_modules/qs": {
|
|
3479
|
-
"version": "6.
|
|
3480
|
-
"resolved": "https://registry.npmjs.org/qs/-/qs-6.
|
|
3481
|
-
"integrity": "sha512-
|
|
3483
|
+
"version": "6.17.0",
|
|
3484
|
+
"resolved": "https://registry.npmjs.org/qs/-/qs-6.17.0.tgz",
|
|
3485
|
+
"integrity": "sha512-5LK5BZ2XDHMvcUJaf0CQ5HL3aVgKbpklvByC7qLSxYkfE8COEEbJg5xCHWCTqzqi0Gs4Jn5Mv5v3R38W6edscA==",
|
|
3482
3486
|
"license": "BSD-3-Clause",
|
|
3483
3487
|
"dependencies": {
|
|
3484
3488
|
"es-define-property": "^1.0.1",
|
|
@@ -3751,9 +3755,9 @@
|
|
|
3751
3755
|
}
|
|
3752
3756
|
},
|
|
3753
3757
|
"node_modules/set-cookie-parser": {
|
|
3754
|
-
"version": "3.1
|
|
3755
|
-
"resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-3.1.
|
|
3756
|
-
"integrity": "sha512-
|
|
3758
|
+
"version": "3.2.1",
|
|
3759
|
+
"resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-3.2.1.tgz",
|
|
3760
|
+
"integrity": "sha512-Npd1Pt+4zb3BrSZDPd2qFwRpS6b1EUEasRrO8xS0zMJi0fApXXK5YuzP0minyJnxwnFHoVoJwA55q0A0cu63gQ==",
|
|
3757
3761
|
"license": "MIT"
|
|
3758
3762
|
},
|
|
3759
3763
|
"node_modules/setprototypeof": {
|
package/package.json
CHANGED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[50160,a=>{a.v("/_next/static/media/icon.0fkix7.hkmsz4.png"+(globalThis.NEXT_CLIENT_ASSET_SUFFIX||""))},15618,49594,a=>{"use strict";let b=(0,a.i(60137).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);a.s(["Plus",0,b],15618);let c=[{bg:"bg-blue-100 dark:bg-blue-900/30",text:"text-blue-700 dark:text-blue-300"},{bg:"bg-emerald-100 dark:bg-emerald-900/30",text:"text-emerald-700 dark:text-emerald-300"},{bg:"bg-violet-100 dark:bg-violet-900/30",text:"text-violet-700 dark:text-violet-300"},{bg:"bg-amber-100 dark:bg-amber-900/30",text:"text-amber-700 dark:text-amber-300"},{bg:"bg-rose-100 dark:bg-rose-900/30",text:"text-rose-700 dark:text-rose-300"},{bg:"bg-cyan-100 dark:bg-cyan-900/30",text:"text-cyan-700 dark:text-cyan-300"},{bg:"bg-orange-100 dark:bg-orange-900/30",text:"text-orange-700 dark:text-orange-300"},{bg:"bg-teal-100 dark:bg-teal-900/30",text:"text-teal-700 dark:text-teal-300"},{bg:"bg-indigo-100 dark:bg-indigo-900/30",text:"text-indigo-700 dark:text-indigo-300"},{bg:"bg-pink-100 dark:bg-pink-900/30",text:"text-pink-700 dark:text-pink-300"},{bg:"bg-lime-100 dark:bg-lime-900/30",text:"text-lime-700 dark:text-lime-300"},{bg:"bg-fuchsia-100 dark:bg-fuchsia-900/30",text:"text-fuchsia-700 dark:text-fuchsia-300"}];a.s(["getRepoColor",0,function(a,b){let d=function(a){let b=5381;for(let c=0;c<a.length;c++)b=33*b^a.charCodeAt(c);return b>>>0}(`${a}/${b}`)%c.length;return c[d]}],49594)},10948,a=>{"use strict";let b=(0,a.i(60137).default)("git-branch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);a.s(["GitBranch",0,b],10948)},63588,a=>{"use strict";let b=(0,a.i(60137).default)("message-square",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]]);a.s(["MessageSquare",0,b],63588)},62722,a=>{"use strict";let b=(0,a.i(60137).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);a.s(["XCircle",0,b],62722)},88381,a=>{"use strict";var b=a.i(72131),c=a.i(34592);a.s(["useTaskEvents",0,function(a){let d=(0,b.useRef)(a);(0,b.useLayoutEffect)(()=>{d.current=a}),(0,b.useEffect)(()=>{let a=(0,c.getSharedSocket)(),b=({task:a,warnings:b})=>{d.current.onTaskCreated(a,b??[])},e=({task:a})=>{d.current.onTaskUpdated(a)},f=({taskId:a})=>{d.current.onTaskDeleted(a)},g=({task:a})=>{d.current.onTaskTabsChanged?.(a)};return a.on("task:created",b),a.on("task:updated",e),a.on("task:deleted",f),a.on("task:tabs-changed",g),()=>{a.off("task:created",b),a.off("task:updated",e),a.off("task:deleted",f),a.off("task:tabs-changed",g)}},[])}])},13425,a=>{"use strict";var b=a.i(72131),c=a.i(34592);a.s(["useTabStatusEvents",0,function(a,d){let e=(0,b.useRef)(new Map),f=(0,b.useRef)(d);(0,b.useEffect)(()=>{f.current=d}),(0,b.useEffect)(()=>{let a=(0,c.getSharedSocket)(),b=({sessionId:a,status:b})=>{let c=function(a){switch(a){case"running":return"running";case"waiting":return"waiting";case"success":return"success";case"failure":case"error":return"error";case"idle":return"idle";default:return null}}(b);null!==c&&f.current(a,c)};return a.on("status-changed",b),()=>{a.off("status-changed",b)}},[]),(0,b.useEffect)(()=>{(0,c.syncRoomSubscriptions)(e.current,a.map(a=>`tab:${a}`))},[a]),(0,b.useEffect)(()=>{let a=e.current;return()=>{(0,c.clearRoomSubscriptions)(a)}},[])}])},5498,93886,a=>{"use strict";function b(a){return"success"===a||"error"===a||"running"!==a&&"idle"!==a&&void 0}function c(a){let b=a.tabs??[];if(0===b.length||b.some(a=>"running"===a.status))return null;if(b.some(a=>"waiting"===a.status))return"waiting";let c=b.filter(a=>a.unread);return c.some(a=>"error"===a.status)?"error":c.some(a=>"success"===a.status)?"success":null}a.s(["activityKind",0,function(a){return(a.tabs??[]).some(a=>"running"===a.status)?"running":c(a)},"hasUnreadResult",0,function(a){return null!==c(a)},"unreadForStatus",0,b,"unreadKind",0,c],5498);var d=a.i(72131),e=a.i(91399),f=a.i(88381),g=a.i(13425);let h=null;a.s(["useLiveTasks",0,function(a={}){let[c,i]=(0,d.useState)(()=>h??[]),[j,k]=(0,d.useState)(null!==h),[l,m]=(0,d.useState)(!0),n=(0,d.useRef)(a),o=(0,d.useRef)(c);(0,d.useEffect)(()=>{n.current=a,o.current=c}),(0,d.useEffect)(()=>{j&&(h=c)},[c,j]);let p=(0,d.useCallback)(async()=>{m(!0);try{let a=await fetch((0,e.apiUrl)("/api/tasks"));if(!a.ok)throw Error("Failed to fetch tasks");let b=await a.json();i(b.data.tasks),k(!0)}catch(a){console.error("Failed to load tasks:",a)}finally{m(!1)}},[]);(0,d.useEffect)(()=>{p()},[p]);let q=(0,d.useMemo)(()=>c.flatMap(a=>(a.tabs??[]).map(a=>a.tab_id)),[c]);return(0,g.useTabStatusEvents)(q,(a,c)=>{let d=b(c);i(b=>b.map(b=>({...b,tabs:(b.tabs??[]).map(b=>b.tab_id===a?{...b,status:c,...void 0!==d&&{unread:d}}:b)})))}),(0,f.useTaskEvents)({onTaskCreated:(a,b)=>{i(b=>b.some(b=>b.id===a.id)?b:[...b,a]),n.current.onTaskCreated?.(a,b)},onTaskUpdated:a=>{i(b=>b.map(b=>b.id===a.id?a:b)),n.current.onTaskUpdated?.(a)},onTaskDeleted:a=>{let b=o.current.find(b=>b.id===a);i(b=>b.filter(b=>b.id!==a)),n.current.onTaskDeleted?.(a,b)},onTaskTabsChanged:a=>{i(b=>b.map(b=>b.id===a.id?a:b))}}),{tasks:c,setTasks:i,isLoading:l,hasLoaded:j,reload:p}}],93886)},96221,a=>{"use strict";var b=a.i(4650);a.s(["Loader2",()=>b.default])},21034,a=>{"use strict";var b=a.i(23292);a.s(["useToast",0,()=>({loading:(a,c)=>{let d=crypto.randomUUID();return b.toast.loading(a,{id:d,description:c,duration:1/0}),d},success:(a,c,d)=>{if(a)return b.toast.success(c,{id:a,description:d,duration:5e3}),a;{let a=crypto.randomUUID();return b.toast.success(c,{id:a,description:d,duration:5e3}),a}},error:(a,c,d)=>{if(a)return b.toast.error(c,{id:a,description:d,duration:1/0}),a;{let a=crypto.randomUUID();return b.toast.error(c,{id:a,description:d,duration:1/0}),a}},info:(a,c)=>{let d=crypto.randomUUID();return b.toast.info(a,{id:d,description:c,duration:5e3}),d},dismiss:a=>{b.toast.dismiss(a)}})])},33354,(a,b,c)=>{"use strict";c._=function(a){return a&&a.__esModule?a:{default:a}}},92434,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"warnOnce",{enumerable:!0,get:function(){return d}});let d=a=>{}},68063,(a,b,c)=>{"use strict";let d;Object.defineProperty(c,"__esModule",{value:!0});var e={getAssetToken:function(){return i},getAssetTokenQuery:function(){return j},getDeploymentId:function(){return g},getDeploymentIdQuery:function(){return h}};for(var f in e)Object.defineProperty(c,f,{enumerable:!0,get:e[f]});function g(){return d}function h(a=!1){return d?`${a?"&":"?"}dpl=${d}`:""}function i(){return!1}function j(a=!1){return""}d=void 0},8591,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"useMergedRef",{enumerable:!0,get:function(){return e}});let d=a.r(72131);function e(a,b){let c=(0,d.useRef)(null),e=(0,d.useRef)(null);return(0,d.useCallback)(d=>{if(null===d){let a=c.current;a&&(c.current=null,a());let b=e.current;b&&(e.current=null,b())}else a&&(c.current=f(a,d)),b&&(e.current=f(b,d))},[a,b])}function f(a,b){if("function"!=typeof a)return a.current=b,()=>{a.current=null};{let c=a(b);return"function"==typeof c?c:()=>a(null)}}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},32245,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"BailoutToCSR",{enumerable:!0,get:function(){return e}});let d=a.r(41997);function e({reason:a,children:b}){throw Object.defineProperty(new d.BailoutToCSRError(a),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}},7773,(a,b,c)=>{"use strict";function d(a){return a.split("/").map(a=>encodeURIComponent(a)).join("/")}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"encodeURIPath",{enumerable:!0,get:function(){return d}})},97458,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"PreloadChunks",{enumerable:!0,get:function(){return i}});let d=a.r(87924),e=a.r(35112),f=a.r(56704),g=a.r(7773),h=a.r(68063);function i({moduleIds:a}){let b=f.workAsyncStorage.getStore();if(void 0===b)return null;let c=[];if(b.reactLoadableManifest&&a){let d=b.reactLoadableManifest;for(let b of a){if(!d[b])continue;let a=d[b].files;c.push(...a)}}if(0===c.length)return null;let j=(0,h.getAssetTokenQuery)();return(0,d.jsx)(d.Fragment,{children:c.map(a=>{let c=`${b.assetPrefix}/_next/${(0,g.encodeURIPath)(a)}${j}`;return a.endsWith(".css")?(0,d.jsx)("link",{precedence:"dynamic",href:c,rel:"stylesheet",as:"style",nonce:b.nonce},a):((0,e.preload)(c,{as:"script",fetchPriority:"low",nonce:b.nonce}),null)})})}},69853,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return j}});let d=a.r(87924),e=a.r(72131),f=a.r(32245),g=a.r(97458);function h(a){return{default:a&&"default"in a?a.default:a}}let i={loader:()=>Promise.resolve(h(()=>null)),loading:null,ssr:!0},j=function(a){let b={...i,...a},c=(0,e.lazy)(()=>b.loader().then(h)),j=b.loading;function k(a){let h=j?(0,d.jsx)(j,{isLoading:!0,pastDelay:!0,error:null}):null,i=!b.ssr||!!b.loading,k=i?e.Suspense:e.Fragment,l=b.ssr?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(g.PreloadChunks,{moduleIds:b.modules}),(0,d.jsx)(c,{...a})]}):(0,d.jsx)(f.BailoutToCSR,{reason:"next/dynamic",children:(0,d.jsx)(c,{...a})});return(0,d.jsx)(k,{...i?{fallback:h}:{},children:l})}return k.displayName="LoadableComponent",k}},19721,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return e}});let d=a.r(33354)._(a.r(69853));function e(a,b){let c={};"function"==typeof a&&(c.loader=a);let e={...c,...b};return(0,d.default)({...e,modules:e.loadableGenerated?.modules})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},28155,40007,a=>{"use strict";var b=a.i(87924),c=a.i(19721),d=a.i(72131);let e=(0,c.default)(()=>a.A(57284).then(a=>a.TaskDialog),{ssr:!1});a.s(["LazyTaskDialog",0,function(c){let[f,g]=(0,d.useState)(c.isOpen);return(c.isOpen&&!f&&g(!0),(0,d.useEffect)(()=>{if(f)return;if("function"!=typeof window.requestIdleCallback)return void a.A(57284);let b=window.requestIdleCallback(()=>void a.A(57284));return()=>window.cancelIdleCallback(b)},[f]),f)?(0,b.jsx)(e,{...c}):null}],28155);let f="tsunagi:last-viewed-task";a.s(["clearLastViewedTask",0,function(){try{sessionStorage.removeItem(f)}catch{}},"peekLastViewedTask",0,function(){return null},"rememberLastViewedTask",0,function(a){try{sessionStorage.setItem(f,a)}catch{}}],40007)},57284,a=>{a.v(b=>Promise.all(["server/chunks/ssr/_0lqioz1._.js","server/chunks/ssr/[root-of-the-server]__02o_btn._.js","server/chunks/ssr/_087.824._.js"].map(b=>a.l(b))).then(()=>b(92712)))}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=_0f-.2d8._.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,95057,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={formatUrl:function(){return i},formatWithValidation:function(){return u},urlObjectKeys:function(){return l}};for(var a in r)Object.defineProperty(n,a,{enumerable:!0,get:r[a]});let o=e.r(90809)._(e.r(98183)),s=/https?|ftp|gopher|file/;function i(e){let{auth:t,hostname:n}=e,r=e.protocol||"",a=e.pathname||"",i=e.hash||"",l=e.query||"",u=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?u=t+e.host:n&&(u=t+(~n.indexOf(":")?`[${n}]`:n),e.port&&(u+=":"+e.port)),l&&"object"==typeof l&&(l=String(o.urlQueryToSearchParams(l)));let c=e.search||l&&`?${l}`||"";return r&&!r.endsWith(":")&&(r+=":"),e.slashes||(!r||s.test(r))&&!1!==u?(u="//"+(u||""),a&&"/"!==a[0]&&(a="/"+a)):u||(u=""),i&&"#"!==i[0]&&(i="#"+i),c&&"?"!==c[0]&&(c="?"+c),a=a.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${r}${u}${a}${c}${i}`}let l=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function u(e){return i(e)}},73668,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"isLocalURL",{enumerable:!0,get:function(){return o}});let r=e.r(18967),a=e.r(52817);function o(e){if(!(0,r.isAbsoluteUrl)(e))return!0;try{let t=(0,r.getLocationOrigin)(),n=new URL(e,t);return n.origin===t&&(0,a.hasBasePath)(n.pathname)}catch(e){return!1}}},84508,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"errorOnce",{enumerable:!0,get:function(){return r}});let r=e=>{}},22016,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={default:function(){return v},useLinkStatus:function(){return b}};for(var a in r)Object.defineProperty(n,a,{enumerable:!0,get:r[a]});let o=e.r(90809),s=e.r(18050),i=o._(e.r(71645)),l=e.r(95057),u=e.r(8372),c=e.r(18581),d=e.r(18967),f=e.r(5550);e.r(33525);let p=e.r(88540),m=e.r(91949),g=e.r(73668),h=e.r(9396);function v(t){var n,r;let a,o,v,[b,y]=(0,i.useOptimistic)(m.IDLE_LINK_STATUS),S=(0,i.useRef)(null),{href:E,as:R,children:C,prefetch:k=null,passHref:w,replace:T,shallow:I,scroll:O,onClick:N,onMouseEnter:j,onTouchStart:M,legacyBehavior:P=!1,onNavigate:A,transitionTypes:L,ref:D,unstable_dynamicOnHover:_,...F}=t;a=C,P&&("string"==typeof a||"number"==typeof a)&&(a=(0,s.jsx)("a",{children:a}));let U=i.default.useContext(u.AppRouterContext),B=!1!==k,W=!1!==k?null===(r=k)||"auto"===r?h.FetchStrategy.PPR:h.FetchStrategy.Full:h.FetchStrategy.PPR,H="string"==typeof(n=R||E)?n:(0,l.formatUrl)(n);if(P){if(a?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});o=i.default.Children.only(a)}let V=P?o&&"object"==typeof o&&o.ref:D,z=i.default.useCallback(e=>(null!==U&&(S.current=(0,m.mountLinkInstance)(e,H,U,W,B,y)),()=>{S.current&&((0,m.unmountLinkForCurrentNavigation)(S.current),S.current=null),(0,m.unmountPrefetchableInstance)(e)}),[B,H,U,W,y]),$={ref:(0,c.useMergedRef)(z,V),onClick(t){P||"function"!=typeof N||N(t),P&&o.props&&"function"==typeof o.props.onClick&&o.props.onClick(t),!U||t.defaultPrevented||function(t,n,r,a,o,s,l){if("u">typeof window){let u,{nodeName:c}=t.currentTarget;if("A"===c.toUpperCase()&&((u=t.currentTarget.getAttribute("target"))&&"_self"!==u||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,g.isLocalURL)(n)){a&&(t.preventDefault(),location.replace(n));return}if(t.preventDefault(),s){let e=!1;if(s({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:d}=e.r(99781);i.default.startTransition(()=>{d(n,a?"replace":"push",!1===o?p.ScrollBehavior.NoScroll:p.ScrollBehavior.Default,r.current,l)})}}(t,H,S,T,O,A,L)},onMouseEnter(e){P||"function"!=typeof j||j(e),P&&o.props&&"function"==typeof o.props.onMouseEnter&&o.props.onMouseEnter(e),U&&B&&(0,m.onNavigationIntent)(e.currentTarget,!0===_)},onTouchStart:function(e){P||"function"!=typeof M||M(e),P&&o.props&&"function"==typeof o.props.onTouchStart&&o.props.onTouchStart(e),U&&B&&(0,m.onNavigationIntent)(e.currentTarget,!0===_)}};return(0,d.isAbsoluteUrl)(H)?$.href=H:P&&!w&&("a"!==o.type||"href"in o.props)||($.href=(0,f.addBasePath)(H)),v=P?i.default.cloneElement(o,$):(0,s.jsx)("a",{...F,...$,children:a}),(0,s.jsx)(x.Provider,{value:b,children:v})}e.r(84508);let x=(0,i.createContext)(m.IDLE_LINK_STATUS),b=()=>(0,i.useContext)(x);("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},97099,e=>{"use strict";var t,n,r,a=e.i(18050),o=e.i(71645),s=e.i(18566),i=e.i(22016),l=e.i(471),u=e.i(75254);let c=(0,u.default)("code-xml",[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]]),d=(0,u.default)("ellipsis",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]]),f=(0,u.default)("folder-x",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}],["path",{d:"m9.5 10.5 5 5",key:"ra9qjz"}],["path",{d:"m14.5 10.5-5 5",key:"l2rkpq"}]]);var p=e.i(88699);let m=(0,u.default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);var g=e.i(27612),h=e.i(70935),v=e.i(30627),x=e.i(37870),b=e.i(76165),y=e.i(51846),S=e.i(92943),E=e.i(2576),R=e.i(37727),C=e.i(31278);let k=(0,u.default)("circle-pause",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"10",x2:"10",y1:"15",y2:"9",key:"c1nkhi"}],["line",{x1:"14",x2:"14",y1:"15",y2:"9",key:"h65svq"}]]);var w=e.i(63209);let T=(0,u.default)("wifi-off",[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}],["path",{d:"M5 12.859a10 10 0 0 1 5.17-2.69",key:"1dl1wf"}],["path",{d:"M19 12.859a10 10 0 0 0-2.007-1.523",key:"4k23kn"}],["path",{d:"M2 8.82a15 15 0 0 1 4.177-2.643",key:"1grhjp"}],["path",{d:"M22 8.82a15 15 0 0 0-11.288-3.764",key:"z3jwby"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);var I=e.i(95468),O=e.i(73884),N=e.i(86311),j=e.i(68995),M=e.i(85902),P=e.i(93355),A=e.i(64691);function L({entry:e}){if(!e||"idle"===e.terminal)return(0,a.jsxs)("div",{className:"flex items-center gap-1 text-xs text-muted-foreground",children:[(0,a.jsx)(k,{className:"w-3 h-3"}),(0,a.jsx)("span",{children:"idle"})]});if("connecting"===e.terminal)return(0,a.jsxs)("div",{className:"flex items-center gap-1 text-xs text-muted-foreground",children:[(0,a.jsx)(C.Loader2,{className:"w-3 h-3 animate-spin"}),(0,a.jsx)("span",{children:"connecting"})]});if("error"===e.terminal)return(0,a.jsxs)("div",{className:"flex items-center gap-1 text-xs text-destructive",children:[(0,a.jsx)(w.AlertCircle,{className:"w-3 h-3"}),(0,a.jsx)("span",{children:"error"})]});if("exited"===e.terminal||"paused"===e.terminal)return(0,a.jsxs)("div",{className:"flex items-center gap-1 text-xs text-muted-foreground",children:[(0,a.jsx)(T,{className:"w-3 h-3"}),(0,a.jsx)("span",{children:e.terminal})]});switch(e.claude){case"running":return(0,a.jsxs)("div",{className:"flex items-center gap-1 text-xs text-primary",children:[(0,a.jsx)(C.Loader2,{className:"w-3 h-3 animate-spin"}),(0,a.jsx)("span",{children:"running"})]});case"waiting":return(0,a.jsxs)("div",{className:"flex items-center gap-1 text-xs text-warning",children:[(0,a.jsx)(N.MessageSquare,{className:"w-3 h-3"}),(0,a.jsx)("span",{children:"waiting"})]});case"success":return(0,a.jsxs)("div",{className:"flex items-center gap-1 text-xs text-success",children:[(0,a.jsx)(I.CheckCircle2,{className:"w-3 h-3"}),(0,a.jsx)("span",{children:"success"})]});case"failure":case"error":return(0,a.jsxs)("div",{className:"flex items-center gap-1 text-xs text-destructive",children:[(0,a.jsx)(O.XCircle,{className:"w-3 h-3"}),(0,a.jsx)("span",{children:"failure"===e.claude?"failure":"error"})]});default:return(0,a.jsxs)("div",{className:"flex items-center gap-1 text-xs text-muted-foreground",children:[(0,a.jsx)(k,{className:"w-3 h-3"}),(0,a.jsx)("span",{children:"idle"})]})}}function D({tabs:e,activeTabId:t,onTabChange:n,onTabCreateTerminal:r,onTabCreateClaude:s,claudeOption:i,codexOption:l,onTabCreateCodex:u,localLlmOption:c,onTabCreateLocalLlm:d,onTabDelete:f,tabStatusMap:p}){let g=(0,o.useRef)([]),[h,v]=(0,o.useState)({left:0,width:0}),[x,b]=(0,o.useState)(null);(0,o.useEffect)(()=>{let n=e.findIndex(e=>e.tab_id===t);if(-1!==n&&g.current[n]){let e=g.current[n];e&&v({left:e.offsetLeft,width:e.offsetWidth})}},[t,e]);let y=e.some(e=>e.tab_id===t),S=new Map,E=0;for(let t of e)"terminal"===t.mode&&(E+=1,S.set(t.tab_id,E));return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(j.ConfirmDialog,{open:null!==x,onOpenChange:e=>{e.open||b(null)},title:"Delete Tab",message:x?.isRunning?"This tab is running. Are you sure you want to delete it?":"Delete this tab?",confirmLabel:"Delete",cancelLabel:"Cancel",onConfirm:()=>{x&&f(x.tabId)},variant:"danger"}),(0,a.jsxs)("div",{className:"relative flex items-center gap-2 overflow-x-auto border-b border-border pb-1",children:[e.map((e,r)=>{let o=t===e.tab_id,s=p?.get(e.tab_id),i=(s?.claude==="running"||s?.claude==="waiting")&&(s?.terminal==="connected"||s?.terminal===null);return(0,a.jsxs)("div",{ref:e=>{g.current[r]=e},onClick:()=>n(e.tab_id),className:`
|
|
2
|
-
flex items-center gap-2 px-4 pt-1 pb-2 h-10 flex-shrink-0 transition-colors cursor-pointer
|
|
3
|
-
${o?"text-primary":i?"text-primary-light":"text-muted-foreground hover:text-foreground"}
|
|
4
|
-
`,children:[(0,a.jsx)("div",{className:"font-medium flex items-center gap-2",children:"terminal"===e.mode?(0,a.jsxs)("span",{className:"text-xs",children:["terminal ",S.get(e.tab_id)]}):(0,a.jsxs)(a.Fragment,{children:["codex"===e.mode&&(0,a.jsx)("span",{title:"Codex",children:(0,a.jsx)(P.CodexIcon,{className:"w-3 h-3"})}),("local"===e.mode||"ollama"===e.mode||"lmstudio"===e.mode)&&(0,a.jsx)("span",{title:(0,A.localLlmTabLabel)(c?.provider??null),children:(0,a.jsx)(P.LocalLlmTabIcon,{provider:c?.provider??null,className:"w-3 h-3"})}),(0,a.jsx)(L,{entry:s})]})}),(0,a.jsx)(M.Button,{variant:"ghost",size:"icon-xs",onClick:t=>{t.stopPropagation(),b({tabId:e.tab_id,isRunning:i})},children:(0,a.jsx)(R.X,{className:"w-4 h-4"})})]},e.tab_id)}),(0,a.jsxs)("div",{className:"flex items-center gap-2 flex-shrink-0 ml-auto",children:[(0,a.jsx)("div",{className:"w-px self-stretch bg-theme"}),r&&(0,a.jsx)(M.Button,{size:"icon",onClick:r,title:"Open terminal",children:(0,a.jsx)(m,{className:"w-4 h-4"})}),(0,a.jsx)("span",{title:i?.disabledReason??"Claude Code",children:(0,a.jsx)(M.Button,{size:"icon",onClick:s,disabled:!!i?.disabledReason,children:(0,a.jsx)(P.ClaudeIcon,{className:"w-4 h-4"})})}),l&&(0,a.jsx)("span",{title:l.disabledReason??"Codex",children:(0,a.jsx)(M.Button,{size:"icon",onClick:u,disabled:!!l.disabledReason,children:(0,a.jsx)(P.CodexIcon,{className:"w-4 h-4"})})}),c&&(0,a.jsx)("span",{title:c.disabledReason??`${(0,A.localLlmTabLabel)(c.provider)}: ${c.model}`,children:(0,a.jsx)(M.Button,{size:"icon",onClick:d,disabled:!!c.disabledReason,children:(0,a.jsx)(P.LocalLlmTabIcon,{provider:c.provider,className:"w-4 h-4"})})})]}),y&&(0,a.jsx)("div",{className:"absolute bottom-0 h-0.5 bg-primary transition-[left,width]",style:{left:`${h.left}px`,width:`${h.width}px`}})]})]})}var _=e.i(71698),F=e.i(67211),U=e.i(38078),B=e.i(81671),W=e.i(28962);let H=(0,o.forwardRef)(function({task:e,tabs:t,activeTabId:n,onTabChange:r,onTabCreate:s,onTabDelete:i,onTodosUpdated:l,onAgentStatusChange:u},c){let[d,f]=(0,o.useState)(()=>new Set(n?[n]:[]));(0,o.useEffect)(()=>{n&&f(e=>{if(e.has(n))return e;let t=new Set(e);return t.add(n),t})},[n]);let[p,g]=(0,o.useState)(()=>new Map(t.map(e=>[e.tab_id,{terminal:null,claude:e.status}])));(0,o.useEffect)(()=>{g(e=>{let n=!1,r=new Map(e);for(let e of t)r.has(e.tab_id)||(r.set(e.tab_id,{terminal:null,claude:e.status}),n=!0);return n?r:e})},[t]);let h=(0,o.useRef)(d);(0,o.useEffect)(()=>{h.current=d},[d]);let v=(0,o.useMemo)(()=>t.map(e=>e.tab_id),[t]);(0,_.useTabStatusEvents)(v,(e,t)=>{h.current.has(e)||(g(n=>{let r=n.get(e);if(!r||null!==r.terminal||r.claude===t)return n;let a=new Map(n);return a.set(e,{terminal:null,claude:t}),a}),u?.(e,t))});let x=(0,o.useRef)(new Map);(0,o.useEffect)(()=>{n&&x.current.get(n)?.focus()},[n]);let b=(0,o.useCallback)((e,t,n)=>{g(r=>{let a=new Map(r);return a.set(e,{terminal:t,claude:n}),a}),u?.(e,n)},[u]);(0,o.useImperativeHandle)(c,()=>({sendInput:(e,t)=>{let n=x.current.get(e);n?.sendInput(t)}}));let y=(0,o.useCallback)(e=>{f(t=>{if(t.has(e))return t;let n=new Set(t);return n.add(e),n}),r(e)},[r]),S=(0,o.useCallback)(async e=>{let t=await s(e);t&&f(e=>{let n=new Set(e);return n.add(t),n})},[s]),E=(0,o.useCallback)(()=>S("terminal"),[S]),R=(0,o.useCallback)(()=>S("claude"),[S]),C=(0,o.useCallback)(()=>S("codex"),[S]),k=(0,o.useCallback)(()=>S("local"),[S]),w=(0,B.useAgentAvailability)(),T={disabledReason:(0,W.agentDisabledReason)("Claude Code",w?.find(e=>"claude"===e.agent))},I={disabledReason:(0,W.agentDisabledReason)("Codex",w?.find(e=>"codex"===e.agent))},{settings:O}=(0,U.useOllamaSettings)(),{settings:N}=(0,U.useLmStudioSettings)(),{settings:j}=(0,U.useLocalLlmSettings)(),L=j?.active?.model??"",H=O?.enabled||N?.enabled?{provider:j?.active?.provider??null,model:L,disabledReason:T.disabledReason??(L?void 0:"ローカルLLMのモデルが未設定です(Settings で設定)")}:void 0,V=(0,o.useCallback)(e=>{f(t=>{let n=new Set(t);return n.delete(e),n}),g(t=>{let n=new Map(t);return n.delete(e),n}),x.current.delete(e),i(e)},[i]);return(0,a.jsxs)("div",{className:"flex flex-col flex-1 min-h-0",children:[(0,a.jsx)("div",{className:"px-4 pt-4 flex-shrink-0",children:(0,a.jsx)(D,{tabs:t,activeTabId:n,onTabChange:y,onTabCreateTerminal:E,onTabCreateClaude:R,claudeOption:T,codexOption:I,onTabCreateCodex:C,localLlmOption:H,onTabCreateLocalLlm:k,onTabDelete:V,tabStatusMap:p})}),(0,a.jsxs)("div",{className:"flex-1 min-h-0 relative",children:[t.map(t=>{let r=d.has(t.tab_id),o=t.tab_id===n;return r?(0,a.jsx)("div",{className:"absolute inset-0 flex flex-col px-4 pb-4 pt-2",style:{visibility:o?"visible":"hidden",pointerEvents:o?"auto":"none"},children:(0,a.jsx)(F.TerminalView,{ref:e=>{e?x.current.set(t.tab_id,e):x.current.delete(t.tab_id)},tabId:t.tab_id,isActive:o,cwd:e.worktreePath,launchAgent:"terminal"!==t.mode,mode:t.mode,className:"h-full overflow-hidden rounded-lg border border-border bg-card dark:rounded-none dark:border-0",initialTodos:t.todos,initialAgentStatus:t.status,onTodosUpdated:l,onStatusChange:b})},t.tab_id):null}),0===t.length&&(0,a.jsxs)("div",{className:"h-full flex flex-col items-center justify-center gap-4 px-4",children:[(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:"起動するタブを選んでください"}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center justify-center gap-2",children:[(0,a.jsx)("span",{title:T.disabledReason,children:(0,a.jsxs)(M.Button,{onClick:R,disabled:!!T.disabledReason,children:[(0,a.jsx)(P.ClaudeIcon,{className:"w-4 h-4"}),"Claude Code"]})}),I&&(0,a.jsx)("span",{title:I.disabledReason,children:(0,a.jsxs)(M.Button,{variant:"outline",onClick:C,disabled:!!I.disabledReason,children:[(0,a.jsx)(P.CodexIcon,{className:"w-4 h-4"}),"Codex"]})}),H&&(0,a.jsx)("span",{title:H.disabledReason??`${(0,A.localLlmTabLabel)(H.provider)}: ${H.model}`,children:(0,a.jsxs)(M.Button,{variant:"outline",onClick:()=>void k(),disabled:!!H.disabledReason,children:[(0,a.jsx)(P.LocalLlmTabIcon,{provider:H.provider,className:"w-4 h-4"}),(0,A.localLlmTabLabel)(H.provider)]})}),(0,a.jsxs)(M.Button,{variant:"outline",onClick:E,children:[(0,a.jsx)(m,{className:"w-4 h-4"}),"Terminal"]})]})]}),t.length>0&&!n&&(0,a.jsx)("div",{className:"h-full flex items-center justify-center text-muted-foreground text-sm",children:"Select a tab to view terminal"})]})]})});var V=e.i(52088),z=e.i(99059);e.s([],38727),e.i(38727),e.i(47167);var $=e.i(67805);let K=o.createContext(void 0);function G(e){let t=o.useContext(K);if(void 0===t&&!e)throw Error((0,$.default)(33));return t}let Y=o.createContext(void 0);function q(e){let t=o.useContext(Y);if(void 0===t&&!e)throw Error((0,$.default)(36));return t}var J=e.i(27601),X=e.i(83590);let Q=o.forwardRef(function(e,t){let{className:n,render:r,...a}=e,{store:o}=q(),{arrowRef:s,side:i,align:l,arrowUncentered:u,arrowStyles:c}=G(),d=o.useState("open");return(0,J.useRenderElement)("div",e,{ref:[s,t],stateAttributesMapping:X.popupStateMapping,state:{open:d,side:i,align:l,uncentered:u},props:{style:c,"aria-hidden":!0,...a}})});var Z=e.i(84759);let ee=o.createContext(void 0);function et(e=!0){let t=o.useContext(ee);if(void 0===t&&!e)throw Error((0,$.default)(25));return t}var en=e.i(3404);let er={...X.popupStateMapping,...Z.transitionStatusMapping},ea=o.forwardRef(function(e,t){let{className:n,render:r,...a}=e,{store:o}=q(),s=o.useState("open"),i=o.useState("mounted"),l=o.useState("transitionStatus"),u=o.useState("lastOpenChangeReason"),c=et();return(0,J.useRenderElement)("div",e,{ref:c?.backdropRef?[t,c.backdropRef]:t,state:{open:s,transitionStatus:l},stateAttributesMapping:er,props:[{role:"presentation",hidden:!i,style:{pointerEvents:u===en.REASONS.triggerHover?"none":void 0,userSelect:"none",WebkitUserSelect:"none"}},a]})});var eo=e.i(76477),es=e.i(94349);let ei=o.createContext(void 0);var el=e.i(26292),eu=e.i(91730),ec=e.i(19805),ed=e.i(57666);function ef(e){let{closeOnClick:t,highlighted:n,id:r,nodeId:a,store:s,typingRef:i,itemRef:l,itemMetadata:u}=e,{events:c}=s.useState("floatingTreeRoot"),d=et(!0),f=void 0!==d;return o.useMemo(()=>({id:r,role:"menuitem",tabIndex:n?0:-1,onKeyDown(e){" "===e.key&&i?.current&&e.preventDefault()},onMouseMove(e){a&&c.emit("itemhover",{nodeId:a,target:e.currentTarget})},onClick(e){t&&c.emit("close",{domEvent:e,reason:en.REASONS.itemPress})},onMouseUp(e){if(d){let t=d.initialCursorPointRef.current;if(d.initialCursorPointRef.current=null,f&&t&&1>=Math.abs(e.clientX-t.x)&&1>=Math.abs(e.clientY-t.y)||f&&!ed.isMac&&2===e.button)return}l.current&&s.context.allowMouseUpTriggerRef.current&&(!f||2===e.button)&&(!u||"regular-item"===u.type)&&l.current.click()}}),[t,n,r,c,a,s,i,l,d,f,u])}let ep={type:"regular-item"};function em(e){let{closeOnClick:t,disabled:n=!1,highlighted:r,id:a,store:s,typingRef:i=s.context.typingRef,nativeButton:l,itemMetadata:u,nodeId:c}=e,d=o.useRef(null),{getButtonProps:f,buttonRef:p}=(0,eu.useButton)({disabled:n,focusableWhenDisabled:!0,native:l,composite:!0}),m=ef({closeOnClick:t,highlighted:r,id:a,nodeId:c,store:s,typingRef:i,itemRef:d,itemMetadata:u}),g=o.useCallback(e=>(0,ec.mergeProps)(m,{onMouseEnter(){"submenu-trigger"===u.type&&u.setActive()}},e,f),[m,f,u]),h=(0,el.useMergedRefs)(d,p);return o.useMemo(()=>({getItemProps:g,itemRef:h}),[g,h])}var eg=e.i(977);let eh=o.createContext({register:()=>{},unregister:()=>{},subscribeMapChange:()=>()=>{},elementsRef:{current:[]},nextIndexRef:{current:0}}),ev=((t={})[t.None=0]="None",t[t.GuessFromOrder=1]="GuessFromOrder",t);function ex(e={}){let{label:t,metadata:n,textRef:r,indexGuessBehavior:a,index:s}=e,{register:i,unregister:l,subscribeMapChange:u,elementsRef:c,labelsRef:d,nextIndexRef:f}=o.useContext(eh),p=o.useRef(-1),[m,g]=o.useState(s??(a===ev.GuessFromOrder?()=>{if(-1===p.current){let e=f.current;f.current+=1,p.current=e}return p.current}:-1)),h=o.useRef(null),v=o.useCallback(e=>{if(h.current=e,-1!==m&&null!==e&&(c.current[m]=e,d)){let n=void 0!==t;d.current[m]=n?t:r?.current?.textContent??e.textContent}},[m,c,d,t,r]);return(0,eg.useIsoLayoutEffect)(()=>{if(null!=s)return;let e=h.current;if(e)return i(e,n),()=>{l(e)}},[s,i,l,n]),(0,eg.useIsoLayoutEffect)(()=>{if(null==s)return u(e=>{let t=h.current?e.get(h.current)?.index:null;null!=t&&g(t)})},[s,u,g]),o.useMemo(()=>({ref:v,index:m}),[m,v])}var eb=e.i(89879);let ey=((n={}).checked="data-checked",n.unchecked="data-unchecked",n.disabled="data-disabled",n.highlighted="data-highlighted",n),eS={checked:e=>e?{[ey.checked]:""}:{[ey.unchecked]:""},...Z.transitionStatusMapping};var eE=e.i(5963);let eR=o.forwardRef(function(e,t){let{render:n,className:r,id:s,label:i,nativeButton:l=!1,disabled:u=!1,closeOnClick:c=!1,checked:d,defaultChecked:f,onCheckedChange:p,...m}=e,g=ex({label:i}),h=G(!0),v=(0,eb.useBaseUiId)(s),{store:x}=q(),b=x.useState("isActive",g.index),y=x.useState("itemProps"),[S,E]=(0,es.useControlled)({controlled:d,default:f??!1,name:"MenuCheckboxItem",state:"checked"}),{getItemProps:R,itemRef:C}=em({closeOnClick:c,disabled:u,highlighted:b,id:v,store:x,nativeButton:l,nodeId:h?.nodeId,itemMetadata:ep}),k=o.useMemo(()=>({disabled:u,highlighted:b,checked:S}),[u,b,S]),w=(0,eo.useStableCallback)(e=>{let t={...(0,eE.createChangeEventDetails)(en.REASONS.itemPress,e.nativeEvent),preventUnmountOnClose:()=>{}};p?.(!S,t),t.isCanceled||E(e=>!e)}),T=(0,J.useRenderElement)("div",e,{state:k,stateAttributesMapping:eS,props:[y,{role:"menuitemcheckbox","aria-checked":S,onClick:w},m,R],ref:[C,t,g.ref]});return(0,a.jsx)(ei.Provider,{value:k,children:T})});var eC=e.i(88841),ek=e.i(89269);let ew=o.forwardRef(function(e,t){let{render:n,className:r,keepMounted:a=!1,...s}=e,i=function(){let e=o.useContext(ei);if(void 0===e)throw Error((0,$.default)(30));return e}(),l=o.useRef(null),{transitionStatus:u,setMounted:c}=(0,eC.useTransitionStatus)(i.checked);(0,ek.useOpenChangeComplete)({open:i.checked,ref:l,onComplete(){i.checked||c(!1)}});let d={checked:i.checked,disabled:i.disabled,highlighted:i.highlighted,transitionStatus:u};return(0,J.useRenderElement)("span",e,{state:d,ref:[t,l],stateAttributesMapping:eS,props:{"aria-hidden":!0,...s},enabled:a||i.checked})}),eT=o.createContext(void 0),eI=o.forwardRef(function(e,t){let{render:n,className:r,...s}=e,[i,l]=o.useState(void 0),u=o.useMemo(()=>({setLabelId:l}),[l]),c=(0,J.useRenderElement)("div",e,{ref:t,props:{role:"group","aria-labelledby":i,...s}});return(0,a.jsx)(eT.Provider,{value:u,children:c})}),eO=o.forwardRef(function(e,t){let{className:n,render:r,id:a,...s}=e,i=(0,eb.useBaseUiId)(a),{setLabelId:l}=function(){let e=o.useContext(eT);if(void 0===e)throw Error((0,$.default)(31));return e}();return(0,eg.useIsoLayoutEffect)(()=>(l(i),()=>{l(void 0)}),[l,i]),(0,J.useRenderElement)("div",e,{ref:t,props:{id:i,role:"presentation",...s}})}),eN=o.forwardRef(function(e,t){let{render:n,className:r,id:a,label:o,nativeButton:s=!1,disabled:i=!1,closeOnClick:l=!0,...u}=e,c=ex({label:o}),d=G(!0),f=(0,eb.useBaseUiId)(a),{store:p}=q(),m=p.useState("isActive",c.index),g=p.useState("itemProps"),{getItemProps:h,itemRef:v}=em({closeOnClick:l,disabled:i,highlighted:m,id:f,store:p,nativeButton:s,nodeId:d?.nodeId,itemMetadata:ep});return(0,J.useRenderElement)("div",e,{state:{disabled:i,highlighted:m},props:[g,u,h],ref:[v,t,c.ref]})}),ej=o.forwardRef(function(e,t){let{render:n,className:r,id:a,label:s,closeOnClick:i=!1,...l}=e,u=o.useRef(null),c=ex({label:s}),d=G(!0),f=d?.nodeId,p=(0,eb.useBaseUiId)(a),{store:m}=q(),g=m.useState("isActive",c.index),h=m.useState("itemProps"),v=m.context.typingRef,{getButtonProps:x,buttonRef:b}=(0,eu.useButton)({native:!1,composite:!0}),y=ef({closeOnClick:i,highlighted:g,id:p,nodeId:f,store:m,typingRef:v,itemRef:u}),S=o.useMemo(()=>({highlighted:g}),[g]);return(0,J.useRenderElement)("a",e,{state:S,props:[h,l,function(e){return(0,ec.mergeProps)(y,e,x)}],ref:[u,b,t,c.ref]})});var eM=e.i(88306),eP=e.i(61896),eA=e.i(60752),eL=e.i(92238),eD=e.i(18847);let e_={...X.popupStateMapping,...Z.transitionStatusMapping},eF=o.forwardRef(function(e,t){let{render:n,className:r,finalFocus:s,...i}=e,{store:l}=q(),{side:u,align:c}=G(),d=null!=(0,eA.useToolbarRootContext)(!0),f=l.useState("open"),p=l.useState("transitionStatus"),m=l.useState("popupProps"),g=l.useState("mounted"),h=l.useState("instantType"),v=l.useState("activeTriggerElement"),x=l.useState("parent"),b=l.useState("lastOpenChangeReason"),y=l.useState("rootId"),S=l.useState("floatingRootContext"),E=l.useState("floatingTreeRoot"),R=l.useState("closeDelay"),C=l.useState("activeTriggerElement"),k="context-menu"===x.type;(0,ek.useOpenChangeComplete)({open:f,ref:l.context.popupRef,onComplete(){f&&l.context.onOpenChangeComplete?.(!0)}}),o.useEffect(()=>{function e(e){l.setOpen(!1,(0,eE.createChangeEventDetails)(e.reason,e.domEvent))}return E.events.on("close",e),()=>{E.events.off("close",e)}},[E.events,l]);let w=l.useState("hoverEnabled"),T=l.useState("disabled");(0,eP.useHoverFloatingInteraction)(S,{enabled:w&&!T&&!k&&"menubar"!==x.type,closeDelay:R});let I={transitionStatus:p,side:u,align:c,open:f,nested:"menu"===x.type,instant:h},O=o.useCallback(e=>{l.set("popupElement",e)},[l]),N=(0,J.useRenderElement)("div",e,{state:I,ref:[t,l.context.popupRef,O],stateAttributesMapping:e_,props:[m,{onKeyDown(e){d&&eL.COMPOSITE_KEYS.has(e.key)&&e.stopPropagation()}},(0,eD.getDisabledMountTransitionStyles)(p),i,{"data-rootownerid":y}]}),j=void 0===x.type||k;return(v||"menubar"===x.type&&b!==en.REASONS.outsidePress)&&(j=!0),(0,a.jsx)(eM.FloatingFocusManager,{context:S,modal:k,disabled:!g,returnFocus:void 0===s?j:s,initialFocus:"menu"!==x.type,restoreFocus:!0,externalTree:"menubar"!==x.type?E:void 0,previousFocusableElement:C,nextFocusableElement:void 0===x.type?l.context.triggerFocusTargetRef:void 0,beforeContentFocusGuardRef:void 0===x.type?l.context.beforeContentFocusGuardRef:void 0,children:N})});var eU=e.i(37692);let eB=o.createContext(void 0),eW=o.forwardRef(function(e,t){let{keepMounted:n=!1,...r}=e,{store:o}=q();return o.useState("mounted")||n?(0,a.jsx)(eB.Provider,{value:n,children:(0,a.jsx)(eU.FloatingPortal,{ref:t,...r})}):null});var eH=e.i(58130),eV=e.i(66745),ez=e.i(51665),e$=e.i(56590),eK=e.i(30628);function eG(e){let{children:t,elementsRef:n,labelsRef:r,onMapChange:s}=e,i=(0,eo.useStableCallback)(s),l=o.useRef(0),u=(0,eK.useRefWithInit)(eq).current,c=(0,eK.useRefWithInit)(eY).current,[d,f]=o.useState(0),p=o.useRef(d),m=(0,eo.useStableCallback)((e,t)=>{c.set(e,t??null),p.current+=1,f(p.current)}),g=(0,eo.useStableCallback)(e=>{c.delete(e),p.current+=1,f(p.current)}),h=o.useMemo(()=>{let e=new Map;return Array.from(c.keys()).filter(e=>e.isConnected).sort(eJ).forEach((t,n)=>{let r=c.get(t)??{};e.set(t,{...r,index:n})}),e},[c,d]);(0,eg.useIsoLayoutEffect)(()=>{if("function"!=typeof MutationObserver||0===h.size)return;let e=new MutationObserver(e=>{let t=new Set,n=e=>t.has(e)?t.delete(e):t.add(e);e.forEach(e=>{e.removedNodes.forEach(n),e.addedNodes.forEach(n)}),0===t.size&&(p.current+=1,f(p.current))});return h.forEach((t,n)=>{n.parentElement&&e.observe(n.parentElement,{childList:!0})}),()=>{e.disconnect()}},[h]),(0,eg.useIsoLayoutEffect)(()=>{p.current===d&&(n.current.length!==h.size&&(n.current.length=h.size),r&&r.current.length!==h.size&&(r.current.length=h.size),l.current=h.size),i(h)},[i,h,n,r,d]),(0,eg.useIsoLayoutEffect)(()=>()=>{n.current=[]},[n]),(0,eg.useIsoLayoutEffect)(()=>()=>{r&&(r.current=[])},[r]);let v=(0,eo.useStableCallback)(e=>(u.add(e),()=>{u.delete(e)}));(0,eg.useIsoLayoutEffect)(()=>{u.forEach(e=>e(h))},[u,h]);let x=o.useMemo(()=>({register:m,unregister:g,subscribeMapChange:v,elementsRef:n,labelsRef:r,nextIndexRef:l}),[m,g,v,n,r,l]);return(0,a.jsx)(eh.Provider,{value:x,children:t})}function eY(){return new Map}function eq(){return new Set}function eJ(e,t){let n=e.compareDocumentPosition(t);return n&Node.DOCUMENT_POSITION_FOLLOWING||n&Node.DOCUMENT_POSITION_CONTAINED_BY?-1:n&Node.DOCUMENT_POSITION_PRECEDING||n&Node.DOCUMENT_POSITION_CONTAINS?1:0}var eX=e.i(36893),eQ=e.i(7335),eZ=e.i(67569),e0=e.i(77817);let e1=o.forwardRef(function(e,t){let{anchor:n,positionMethod:r="absolute",className:s,render:i,side:l,align:u,sideOffset:c=0,alignOffset:d=0,collisionBoundary:f="clipping-ancestors",collisionPadding:p=5,arrowPadding:m=5,sticky:g=!1,disableAnchorTracking:h=!1,collisionAvoidance:v=eQ.DROPDOWN_COLLISION_AVOIDANCE,...x}=e,{store:b}=q(),y=function(){let e=o.useContext(eB);if(void 0===e)throw Error((0,$.default)(32));return e}(),S=et(!0),E=b.useState("parent"),R=b.useState("floatingRootContext"),C=b.useState("floatingTreeRoot"),k=b.useState("mounted"),w=b.useState("open"),T=b.useState("modal"),I=b.useState("activeTriggerElement"),O=b.useState("transitionStatus"),N=b.useState("positionerElement"),j=b.useState("instantType"),M=b.useState("hasViewport"),P=b.useState("lastOpenChangeReason"),A=b.useState("floatingNodeId"),L=b.useState("floatingParentNodeId"),D=R.useState("domReferenceElement"),_=o.useRef(null),F=(0,e0.useAnimationsFinished)(N,!1,!1),U=n,B=c,W=d,H=u,V=v;"context-menu"===E.type&&(U=n??E.context?.anchor,H=H??"start",l||"center"===H||(W=e.alignOffset??2,B=e.sideOffset??-5));let z=l,G=H;"menu"===E.type?(z=z??"inline-end",G=G??"start",V=e.collisionAvoidance??eQ.POPUP_COLLISION_AVOIDANCE):"menubar"===E.type&&(z=z??"bottom",G=G??"start");let Y="context-menu"===E.type,Q=(0,e$.useAnchorPositioning)({anchor:U,floatingRootContext:R,positionMethod:S?"fixed":r,mounted:k,side:z,sideOffset:B,align:G,alignOffset:W,arrowPadding:Y?0:m,collisionBoundary:f,collisionPadding:p,sticky:g,nodeId:A,keepMounted:y,disableAnchorTracking:h,collisionAvoidance:V,shiftCrossAxis:Y&&!("side"in V&&"flip"===V.side),externalTree:C,adaptiveOrigin:M?eZ.adaptiveOrigin:void 0}),Z=o.useMemo(()=>{let e={};return w||(e.pointerEvents="none"),{role:"presentation",hidden:!k,style:{...Q.positionerStyles,...e}}},[w,k,Q.positionerStyles]);o.useEffect(()=>{function e(e){e.open&&(e.parentNodeId===A&&b.set("hoverEnabled",!1),e.nodeId!==A&&e.parentNodeId===b.select("floatingParentNodeId")&&b.setOpen(!1,(0,eE.createChangeEventDetails)(en.REASONS.siblingOpen)))}return C.events.on("menuopenchange",e),()=>{C.events.off("menuopenchange",e)}},[b,C.events,A]),o.useEffect(()=>{if(null!=b.select("floatingParentNodeId"))return C.events.on("menuopenchange",e),()=>{C.events.off("menuopenchange",e)};function e(e){if(e.open||e.nodeId!==b.select("floatingParentNodeId"))return;let t=e.reason??en.REASONS.siblingOpen;b.setOpen(!1,(0,eE.createChangeEventDetails)(t))}},[C.events,b]);let ee=(0,eV.useTimeout)();o.useEffect(()=>{w||ee.clear()},[w,ee]),o.useEffect(()=>{function e(e){if(w&&e.nodeId===b.select("floatingParentNodeId"))if(e.target&&I&&I!==e.target){let e=b.select("closeDelay");e>0?ee.isStarted()||ee.start(e,()=>{b.setOpen(!1,(0,eE.createChangeEventDetails)(en.REASONS.siblingOpen))}):b.setOpen(!1,(0,eE.createChangeEventDetails)(en.REASONS.siblingOpen))}else ee.clear()}return C.events.on("itemhover",e),()=>{C.events.off("itemhover",e)}},[C.events,w,I,b,ee]),o.useEffect(()=>{let e={open:w,nodeId:A,parentNodeId:L,reason:b.select("lastOpenChangeReason")};C.events.emit("menuopenchange",e)},[C.events,w,b,A,L]),(0,eg.useIsoLayoutEffect)(()=>{let e=_.current;if(D&&(_.current=D),e&&D&&D!==e){b.set("instantType",void 0);let e=new AbortController;return F(()=>{b.set("instantType","trigger-change")},e.signal),()=>{e.abort()}}},[D,F,b]);let er={open:w,side:Q.side,align:Q.align,anchorHidden:Q.anchorHidden,nested:"menu"===E.type,instant:j},ea=o.useMemo(()=>({side:Q.side,align:Q.align,arrowRef:Q.arrowRef,arrowUncentered:Q.arrowUncentered,arrowStyles:Q.arrowStyles,nodeId:Q.context.nodeId}),[Q.side,Q.align,Q.arrowRef,Q.arrowUncentered,Q.arrowStyles,Q.context.nodeId]),eo=(0,J.useRenderElement)("div",e,{state:er,stateAttributesMapping:X.popupStateMapping,ref:[t,b.useStateSetter("positionerElement")],props:[Z,(0,eD.getDisabledMountTransitionStyles)(O),x]}),es=k&&"menu"!==E.type&&("menubar"!==E.type&&T&&P!==en.REASONS.triggerHover||"menubar"===E.type&&E.context.modal),ei=null;return"menubar"===E.type?ei=E.context.contentElement:void 0===E.type&&(ei=I),(0,a.jsxs)(K.Provider,{value:ea,children:[es&&(0,a.jsx)(eX.InternalBackdrop,{ref:"context-menu"===E.type||"nested-context-menu"===E.type?E.context.internalBackdropRef:null,inert:(0,eH.inertValue)(!w),cutout:ei}),(0,a.jsx)(ez.FloatingNode,{id:A,children:(0,a.jsx)(eG,{elementsRef:b.context.itemDomElements,labelsRef:b.context.itemLabels,children:eo})})]})}),e2=o.createContext(void 0),e5=o.memo(o.forwardRef(function(e,t){let{render:n,className:r,value:s,defaultValue:i,onValueChange:l,disabled:u=!1,...c}=e,[d,f]=(0,es.useControlled)({controlled:s,default:i,name:"MenuRadioGroup"}),p=(0,eo.useStableCallback)(l),m=(0,eo.useStableCallback)((e,t)=>{p?.(e,t),t.isCanceled||f(e)}),g=(0,J.useRenderElement)("div",e,{state:{disabled:u},ref:t,props:{role:"group","aria-disabled":u||void 0,...c}}),h=o.useMemo(()=>({value:d,setValue:m,disabled:u}),[d,m,u]);return(0,a.jsx)(e2.Provider,{value:h,children:g})})),e4=o.createContext(void 0),e3=o.forwardRef(function(e,t){let{render:n,className:r,id:s,label:i,nativeButton:l=!1,disabled:u=!1,closeOnClick:c=!1,value:d,...f}=e,p=ex({label:i}),m=G(!0),g=(0,eb.useBaseUiId)(s),{store:h}=q(),v=h.useState("isActive",p.index),x=h.useState("itemProps"),{value:b,setValue:y,disabled:S}=function(){let e=o.useContext(e2);if(void 0===e)throw Error((0,$.default)(34));return e}(),E=S||u,R=b===d,{getItemProps:C,itemRef:k}=em({closeOnClick:c,disabled:E,highlighted:v,id:g,store:h,nativeButton:l,nodeId:m?.nodeId,itemMetadata:ep}),w=o.useMemo(()=>({disabled:E,highlighted:v,checked:R}),[E,v,R]),T=(0,eo.useStableCallback)(e=>{y(d,{...(0,eE.createChangeEventDetails)(en.REASONS.itemPress,e.nativeEvent),preventUnmountOnClose:()=>{}})}),I=(0,J.useRenderElement)("div",e,{state:w,stateAttributesMapping:eS,props:[x,{role:"menuitemradio","aria-checked":R,onClick:T},f,C],ref:[k,t,p.ref]});return(0,a.jsx)(e4.Provider,{value:w,children:I})}),e9=o.forwardRef(function(e,t){let{render:n,className:r,keepMounted:a=!1,...s}=e,i=function(){let e=o.useContext(e4);if(void 0===e)throw Error((0,$.default)(35));return e}(),l=o.useRef(null),{transitionStatus:u,setMounted:c}=(0,eC.useTransitionStatus)(i.checked);(0,ek.useOpenChangeComplete)({open:i.checked,ref:l,onComplete(){i.checked||c(!1)}});let d={checked:i.checked,disabled:i.disabled,highlighted:i.highlighted,transitionStatus:u};return(0,J.useRenderElement)("span",e,{state:d,stateAttributesMapping:eS,ref:[t,l],props:{"aria-hidden":!0,...s},enabled:a||i.checked})});var e8=e.i(83799),e6=e.i(58509),e7=e.i(66196),te=e.i(17514),tt=e.i(3851),tn=e.i(33605),tr=e.i(89633),ta=e.i(29315),to=e.i(231),ts=e.i(90219),ti=e.i(47857),tl=e.i(82033),tu=e.i(43801),tc=e.i(98442),td=e.i(494);function tf(e,t,n){switch(e){case"vertical":return t;case"horizontal":return n;default:return t||n}}function tp(e,t){return tf(t,e===td.ARROW_UP||e===td.ARROW_DOWN,e===td.ARROW_LEFT||e===td.ARROW_RIGHT)}function tm(e,t,n){return tf(t,e===td.ARROW_DOWN,n?e===td.ARROW_LEFT:e===td.ARROW_RIGHT)||"Enter"===e||" "===e||""===e}var tg=e.i(26665),th=e.i(6157);let tv=o.createContext(null);function tx(e){let t=o.useContext(tv);if(null===t&&!e)throw Error((0,$.default)(5));return t}var tb=e.i(79144),ty=e.i(50091),tS=e.i(83921),tE=e.i(98263),tR=e.i(89429),tC=e.i(628),tk=e.i(69375);let tw={...tC.popupStoreSelectors,disabled:(0,tS.createSelector)(e=>"menubar"===e.parent.type&&e.parent.context.disabled||e.disabled),modal:(0,tS.createSelector)(e=>(void 0===e.parent.type||"context-menu"===e.parent.type)&&(e.modal??!0)),allowMouseEnter:(0,tS.createSelector)(e=>e.allowMouseEnter),stickIfOpen:(0,tS.createSelector)(e=>e.stickIfOpen),parent:(0,tS.createSelector)(e=>e.parent),rootId:(0,tS.createSelector)(e=>"menu"===e.parent.type?e.parent.store.select("rootId"):void 0!==e.parent.type?e.parent.context.rootId:e.rootId),activeIndex:(0,tS.createSelector)(e=>e.activeIndex),isActive:(0,tS.createSelector)((e,t)=>e.activeIndex===t),hoverEnabled:(0,tS.createSelector)(e=>e.hoverEnabled),instantType:(0,tS.createSelector)(e=>e.instantType),lastOpenChangeReason:(0,tS.createSelector)(e=>e.openChangeReason),floatingTreeRoot:(0,tS.createSelector)(e=>"menu"===e.parent.type?e.parent.store.select("floatingTreeRoot"):e.floatingTreeRoot),floatingNodeId:(0,tS.createSelector)(e=>e.floatingNodeId),floatingParentNodeId:(0,tS.createSelector)(e=>e.floatingParentNodeId),itemProps:(0,tS.createSelector)(e=>e.itemProps),closeDelay:(0,tS.createSelector)(e=>e.closeDelay),hasViewport:(0,tS.createSelector)(e=>e.hasViewport),keyboardEventRelay:(0,tS.createSelector)(e=>e.keyboardEventRelay?e.keyboardEventRelay:"menu"===e.parent.type?e.parent.store.select("keyboardEventRelay"):void 0)};class tT extends tE.ReactStore{constructor(e){super({...{...(0,tC.createInitialPopupStoreState)(),disabled:!1,modal:!0,allowMouseEnter:!1,stickIfOpen:!0,parent:{type:void 0},rootId:void 0,activeIndex:null,hoverEnabled:!0,instantType:void 0,openChangeReason:null,floatingTreeRoot:new tR.FloatingTreeStore,floatingNodeId:void 0,floatingParentNodeId:null,itemProps:te.EMPTY_OBJECT,keyboardEventRelay:void 0,closeDelay:0,hasViewport:!1},...e},{positionerRef:o.createRef(),popupRef:o.createRef(),typingRef:{current:!1},itemDomElements:{current:[]},itemLabels:{current:[]},allowMouseUpTriggerRef:{current:!1},triggerFocusTargetRef:o.createRef(),beforeContentFocusGuardRef:o.createRef(),onOpenChangeComplete:void 0,triggerElements:new tk.PopupTriggerMap},tw),this.unsubscribeParentListener=this.observe("parent",e=>{if(this.unsubscribeParentListener?.(),"menu"===e.type){let t=e.store.select("rootId"),n=e.store.select("floatingTreeRoot"),r=e.store.select("keyboardEventRelay");this.unsubscribeParentListener=e.store.subscribe(()=>{let a=e.store.select("rootId"),o=e.store.select("floatingTreeRoot"),s=e.store.select("keyboardEventRelay");(t!==a||n!==o||r!==s)&&(t=a,n=o,r=s,this.notifyAll())}),this.context.allowMouseUpTriggerRef=e.store.context.allowMouseUpTriggerRef;return}void 0!==e.type&&(this.context.allowMouseUpTriggerRef=e.context.allowMouseUpTriggerRef),this.unsubscribeParentListener=null})}setOpen(e,t){this.state.floatingRootContext.context.events.emit("setOpen",{open:e,eventDetails:t})}static useStore(e,t){let n=(0,eK.useRefWithInit)(()=>new tT(t)).current;return e??n}unsubscribeParentListener=null}var tI=e.i(58642);let tO=o.createContext(void 0);function tN(){return o.useContext(tO)}let tj=(0,tt.fastComponent)(function(e){let t,n,{children:r,open:s,onOpenChange:i,onOpenChangeComplete:l,defaultOpen:u=!1,disabled:c=!1,modal:d,loopFocus:f=!0,orientation:p="vertical",actionsRef:m,closeParentOnEsc:g=!1,handle:h,triggerId:v,defaultTriggerId:x=null,highlightItemOnHover:b=!0}=e,y=et(!0),S=q(!0),E=tx(!0),R=tN(),C=o.useMemo(()=>R&&S?{type:"menu",store:S.store}:E?{type:"menubar",context:E}:y&&!S?{type:"context-menu",context:y}:{type:void 0},[y,S,E,R]),k=tT.useStore(h?.store,{open:u,openProp:s,activeTriggerId:x,triggerIdProp:v,parent:C});(0,e6.useOnFirstRender)(()=>{void 0===s&&!1===k.state.open&&!0===u&&k.update({open:!0,activeTriggerId:x})}),k.useControlledProp("openProp",s),k.useControlledProp("triggerIdProp",v),k.useContextCallback("onOpenChangeComplete",l);let w=k.useState("floatingTreeRoot"),T=(0,ez.useFloatingNodeId)(w),I=(0,ez.useFloatingParentNodeId)();(0,eg.useIsoLayoutEffect)(()=>{y&&!S?k.update({parent:{type:"context-menu",context:y},floatingNodeId:T,floatingParentNodeId:I}):S&&k.update({floatingNodeId:T,floatingParentNodeId:I})},[y,S,T,I,k]);let O=k.useState("open"),N=k.useState("activeTriggerElement"),j=k.useState("positionerElement"),M=k.useState("hoverEnabled"),P=k.useState("modal"),A=k.useState("disabled"),L=k.useState("lastOpenChangeReason"),D=k.useState("parent"),_=k.useState("activeIndex"),F=k.useState("payload"),U=k.useState("floatingParentNodeId"),B=o.useRef(null),W=null!=U;k.useSyncedValues({disabled:c,modal:void 0===D.type?d:void 0,rootId:(0,e8.useId)()});let{openMethod:H,triggerProps:V}=(0,ty.useOpenInteractionType)(O);(0,tI.useImplicitActiveTrigger)(k);let{forceUnmount:z}=(0,tI.useOpenStateTransitions)(O,k,()=>{k.update({allowMouseEnter:!1,stickIfOpen:!0})}),$=o.useRef("context-menu"!==D.type),K=(0,eV.useTimeout)();o.useEffect(()=>{if(O||(B.current=null),"context-menu"===D.type){if(!O){K.clear(),$.current=!1;return}K.start(500,()=>{$.current=!0})}},[K,O,D.type]),(0,e7.useScrollLock)(O&&P&&L!==en.REASONS.triggerHover&&"touch"!==H,j),(0,eg.useIsoLayoutEffect)(()=>{O||M||k.set("hoverEnabled",!0)},[O,M,k]);let G=o.useRef(!0),J=(0,eV.useTimeout)(),X=(0,eo.useStableCallback)((e,n)=>{let r=n.reason;if(O===e&&n.trigger===N&&L===r||(n.preventUnmountOnClose=()=>{k.set("preventUnmountingOnClose",!0)},e||null!=n.trigger||(n.trigger=N??void 0),i?.(e,n),n.isCanceled))return;let a={open:e,nativeEvent:n.event,reason:n.reason,nested:W};t?.emit("openchange",a);let o=n.event;if(!1===e&&o?.type==="click"&&"touch"===o.pointerType&&!G.current)return;if(!e&&null!==_){let e=k.context.itemDomElements.current[_];queueMicrotask(()=>{e?.setAttribute("tabindex","-1")})}e&&r===en.REASONS.triggerFocus?(G.current=!1,J.start(300,()=>{G.current=!0})):(G.current=!0,J.clear());let s=(r===en.REASONS.triggerPress||r===en.REASONS.itemPress)&&0===o.detail&&o?.isTrusted,l=!e&&(r===en.REASONS.escapeKey||null==r),u={open:e,openChangeReason:r};B.current=n.event??null;let c=n.trigger?.id??null;(c||e)&&(u.activeTriggerId=c,u.activeTriggerElement=n.trigger??null),k.update(u),"menubar"===D.type&&(r===en.REASONS.triggerFocus||r===en.REASONS.focusOut||r===en.REASONS.triggerHover||r===en.REASONS.listNavigation||r===en.REASONS.siblingOpen)?k.set("instantType","group"):s||l?k.set("instantType",s?"click":"dismiss"):k.set("instantType",void 0)}),Q=o.useCallback(e=>{let t=(0,eE.createChangeEventDetails)(e);return t.preventUnmountOnClose=()=>{k.set("preventUnmountingOnClose",!0)},t},[k]),Z=o.useCallback(()=>{k.setOpen(!1,Q(en.REASONS.imperativeAction))},[k,Q]);o.useImperativeHandle(m,()=>({unmount:z,close:Z}),[z,Z]),"context-menu"===D.type&&(n=D.context),o.useImperativeHandle(n?.positionerRef,()=>j,[j]),o.useImperativeHandle(n?.actionsRef,()=>({setOpen:X}),[X]);let ee=(0,th.useSyncedFloatingRootContext)({popupStore:k,onOpenChange:X});t=ee.context.events,o.useEffect(()=>{let e=({open:e,eventDetails:t})=>X(e,t);return t.on("setOpen",e),()=>{t?.off("setOpen",e)}},[t,X]);let er=(0,tn.useDismiss)(ee,{enabled:!A,bubbles:{escapeKey:g&&"menu"===D.type},outsidePress:()=>"context-menu"!==D.type||B.current?.type==="contextmenu"||$.current,externalTree:W?w:void 0}),ea=(0,tg.useRole)(ee,{role:"menu"}),es=(0,tb.useDirection)(),ei=o.useCallback(e=>{k.select("activeIndex")!==e&&k.set("activeIndex",e)},[k]),el=function(e,t){let n="rootStore"in e?e.rootStore:e,r=n.useState("open"),a=n.useState("floatingElement"),s=n.useState("domReferenceElement"),i=n.context.dataRef,{listRef:l,activeIndex:u,onNavigate:c=()=>{},enabled:d=!0,selectedIndex:f=null,allowEscape:p=!1,loopFocus:m=!1,nested:g=!1,rtl:h=!1,virtual:v=!1,focusItemOnOpen:x="auto",focusItemOnHover:b=!0,openOnArrowKeyDown:y=!0,disabledIndices:S,orientation:E="vertical",parentOrientation:R,cols:C=1,id:k,resetOnPointerLeave:w=!0,externalTree:T}=t,I=(0,ti.getFloatingFocusElement)(a),O=(0,to.useValueAsRef)(I),N=(0,ez.useFloatingParentNodeId)(),j=(0,ez.useFloatingTree)(T);(0,eg.useIsoLayoutEffect)(()=>{i.current.orientation=E},[i,E]);let M=(0,ti.isTypeableCombobox)(s),P=o.useRef(x),A=o.useRef(f??-1),L=o.useRef(null),D=o.useRef(!0),_=(0,eo.useStableCallback)(e=>{c(-1===A.current?null:A.current,e)}),F=o.useRef(_),U=o.useRef(!!a),B=o.useRef(r),W=o.useRef(!1),H=o.useRef(!1),V=(0,to.useValueAsRef)(S),z=(0,to.useValueAsRef)(r),$=(0,to.useValueAsRef)(f),K=(0,to.useValueAsRef)(w),G=(0,eo.useStableCallback)(()=>{function e(e){v?j?.events.emit("virtualfocus",e):(0,tc.enqueueFocus)(e,{sync:W.current,preventScroll:!0})}let t=l.current[A.current],n=H.current;t&&e(t),(W.current?e=>e():requestAnimationFrame)(()=>{let r=l.current[A.current]||t;!r||(t||e(r),q&&(n||!D.current)&&r.scrollIntoView?.({block:"nearest",inline:"nearest"}))})});(0,eg.useIsoLayoutEffect)(()=>{d&&(r&&a?(A.current=f??-1,P.current&&null!=f&&(H.current=!0,_())):U.current&&(A.current=-1,F.current()))},[d,r,a,f,_]),(0,eg.useIsoLayoutEffect)(()=>{if(d){if(!r){W.current=!1;return}if(a)if(null==u){if(W.current=!1,null!=$.current)return;if(U.current&&(A.current=-1,G()),(!B.current||!U.current)&&P.current&&(null!=L.current||!0===P.current&&null==L.current)){let e=0,t=()=>{null==l.current[0]?(e<2&&(e?requestAnimationFrame:queueMicrotask)(t),e+=1):(A.current=null==L.current||tm(L.current,E,h)||g?(0,tu.getMinListIndex)(l):(0,tu.getMaxListIndex)(l),L.current=null,_())};t()}}else(0,tu.isIndexOutOfListBounds)(l,u)||(A.current=u,G(),H.current=!1)}},[d,r,a,u,$,g,l,E,h,_,G,V]),(0,eg.useIsoLayoutEffect)(()=>{if(!d||a||!j||v||!U.current)return;let e=j.nodesRef.current,t=e.find(e=>e.id===N)?.context?.elements.floating,n=(0,ti.activeElement)((0,ts.ownerDocument)(a)),r=e.some(e=>e.context&&(0,ti.contains)(e.context.elements.floating,n));t&&!r&&D.current&&t.focus({preventScroll:!0})},[d,a,j,N,v]),(0,eg.useIsoLayoutEffect)(()=>{F.current=_,B.current=r,U.current=!!a}),(0,eg.useIsoLayoutEffect)(()=>{r||(L.current=null,P.current=x)},[r,x]);let Y=null!=u,q=o.useMemo(()=>{function e(e){if(!z.current)return;let t=l.current.indexOf(e.currentTarget);-1!==t&&A.current!==t&&(A.current=t,_(e))}return{onFocus(t){W.current=!0,e(t)},onClick:({currentTarget:e})=>e.focus({preventScroll:!0}),onMouseMove(t){W.current=!0,H.current=!1,b&&e(t)},onPointerLeave(e){if(!z.current||!D.current||"touch"===e.pointerType)return;W.current=!0;let t=e.relatedTarget;if(!(!b||l.current.includes(t))&&K.current&&((0,tc.enqueueFocus)(null,{sync:!0}),A.current=-1,_(e),!v)){let e=O.current,t=(0,ti.activeElement)((0,ts.ownerDocument)(e));e&&(0,ti.contains)(e,t)&&e.focus({preventScroll:!0})}}}},[z,O,b,l,_,K,v]),J=o.useCallback(()=>R??j?.nodesRef.current.find(e=>e.id===N)?.context?.dataRef?.current.orientation,[N,j,R]),X=(0,eo.useStableCallback)(e=>{var t;let a,o;if(D.current=!1,W.current=!0,229===e.which||!z.current&&e.currentTarget===O.current)return;if(g&&(t=e.key,a=h?t===td.ARROW_RIGHT:t===td.ARROW_LEFT,o=t===td.ARROW_UP,"both"===E||"horizontal"===E&&C&&C>1?"Escape"===t:tf(E,a,o))){tp(e.key,J())||(0,tl.stopEvent)(e),n.setOpen(!1,(0,eE.createChangeEventDetails)(en.REASONS.listNavigation,e.nativeEvent)),(0,ta.isHTMLElement)(s)&&(v?j?.events.emit("virtualfocus",s):s.focus());return}let i=A.current,u=(0,tu.getMinListIndex)(l,S),c=(0,tu.getMaxListIndex)(l,S);if(M||("Home"===e.key&&((0,tl.stopEvent)(e),A.current=u,_(e)),"End"===e.key&&((0,tl.stopEvent)(e),A.current=c,_(e))),C>1){let t=Array.from({length:l.current.length},()=>({width:1,height:1})),n=(0,tu.createGridCellMap)(t,C,!1),r=n.findIndex(e=>null!=e&&!(0,tu.isListIndexDisabled)(l,e,S)),a=n.reduce((e,t,n)=>null==t||(0,tu.isListIndexDisabled)(l,t,S)?e:n,-1),o=n[(0,tu.getGridNavigatedIndex)({current:n.map(e=>null!=e?l.current[e]:null)},{event:e,orientation:E,loopFocus:m,rtl:h,cols:C,disabledIndices:(0,tu.getGridCellIndices)([...("function"!=typeof S?S:null)||l.current.map((e,t)=>(0,tu.isListIndexDisabled)(l,t,S)?t:void 0),void 0],n),minIndex:r,maxIndex:a,prevIndex:(0,tu.getGridCellIndexOfCorner)(A.current>c?u:A.current,t,n,C,e.key===td.ARROW_DOWN?"bl":e.key===(h?td.ARROW_LEFT:td.ARROW_RIGHT)?"tr":"tl"),stopEvent:!0})];if(null!=o&&(A.current=o,_(e)),"both"===E)return}if(tp(e.key,E)){if((0,tl.stopEvent)(e),r&&!v&&(0,ti.activeElement)(e.currentTarget.ownerDocument)===e.currentTarget){A.current=tm(e.key,E,h)?u:c,_(e);return}tm(e.key,E,h)?m?i>=c?p&&i!==l.current.length?A.current=-1:(W.current=!1,A.current=u):A.current=(0,tu.findNonDisabledListIndex)(l,{startingIndex:i,disabledIndices:S}):A.current=Math.min(c,(0,tu.findNonDisabledListIndex)(l,{startingIndex:i,disabledIndices:S})):m?i<=u?p&&-1!==i?A.current=l.current.length:(W.current=!1,A.current=c):A.current=(0,tu.findNonDisabledListIndex)(l,{startingIndex:i,decrement:!0,disabledIndices:S}):A.current=Math.max(u,(0,tu.findNonDisabledListIndex)(l,{startingIndex:i,decrement:!0,disabledIndices:S})),(0,tu.isIndexOutOfListBounds)(l,A.current)&&(A.current=-1),_(e)}}),Q=o.useMemo(()=>v&&r&&Y&&{"aria-activedescendant":`${k}-${u}`},[v,r,Y,k,u]),Z=o.useMemo(()=>({"aria-orientation":"both"===E?void 0:E,...!M?Q:{},onKeyDown(e){if("Tab"===e.key&&e.shiftKey&&r&&!v){let t=(0,ti.getTarget)(e.nativeEvent);if(t&&!(0,ti.contains)(O.current,t))return;(0,tl.stopEvent)(e),n.setOpen(!1,(0,eE.createChangeEventDetails)(en.REASONS.focusOut,e.nativeEvent)),(0,ta.isHTMLElement)(s)&&s.focus();return}X(e)},onPointerMove(){D.current=!0}}),[Q,X,O,E,M,n,r,v,s]),ee=o.useMemo(()=>{function e(e){"auto"===x&&(0,tl.isVirtualClick)(e.nativeEvent)&&(P.current=!v)}function t(e){P.current=x,"auto"===x&&(0,tl.isVirtualPointerEvent)(e.nativeEvent)&&(P.current=!0)}return{onKeyDown(e){var t,r;let a=n.select("open");D.current=!1;let o=e.key.startsWith("Arrow"),s=(t=e.key,r=J(),tf(r,h?t===td.ARROW_LEFT:t===td.ARROW_RIGHT,t===td.ARROW_DOWN)),i=tp(e.key,E),u=(g?s:i)||"Enter"===e.key||""===e.key.trim();if(v&&a)return X(e);if(a||y||!o){if(u){let t=tp(e.key,J());L.current=g&&t?null:e.key}if(g){s&&((0,tl.stopEvent)(e),a?(A.current=(0,tu.getMinListIndex)(l,V.current),_(e)):n.setOpen(!0,(0,eE.createChangeEventDetails)(en.REASONS.listNavigation,e.nativeEvent,e.currentTarget)));return}i&&(null!=$.current&&(A.current=$.current),(0,tl.stopEvent)(e),!a&&y?n.setOpen(!0,(0,eE.createChangeEventDetails)(en.REASONS.listNavigation,e.nativeEvent,e.currentTarget)):X(e),a&&_(e))}},onFocus(e){n.select("open")&&!v&&(A.current=-1,_(e))},onPointerDown:t,onPointerEnter:t,onMouseDown:e,onClick:e}},[X,V,x,l,g,_,n,y,E,J,h,$,v]),et=o.useMemo(()=>({...Q,...ee}),[Q,ee]);return o.useMemo(()=>d?{reference:et,floating:Z,item:q,trigger:ee}:{},[d,et,Z,ee,q])}(ee,{enabled:!A,listRef:k.context.itemDomElements,activeIndex:_,nested:void 0!==D.type,loopFocus:f,orientation:p,parentOrientation:"menubar"===D.type?D.context.orientation:void 0,rtl:"rtl"===es,disabledIndices:te.EMPTY_ARRAY,onNavigate:ei,openOnArrowKeyDown:"context-menu"!==D.type,externalTree:W?w:void 0,focusItemOnHover:b}),eu=o.useCallback(e=>{k.context.typingRef.current=e},[k]),ed=function(e,t){let n="rootStore"in e?e.rootStore:e,r=n.context.dataRef,a=n.useState("open"),{listRef:s,elementsRef:i,activeIndex:l,onMatch:u,onTypingChange:c,enabled:d=!0,resetMs:f=750,selectedIndex:p=null}=t,m=(0,eV.useTimeout)(),g=o.useRef(""),h=o.useRef(p??l??-1),v=o.useRef(null);(0,eg.useIsoLayoutEffect)(()=>{(a||null===p)&&(m.clear(),v.current=null,""!==g.current&&(g.current=""))},[a,p,m]),(0,eg.useIsoLayoutEffect)(()=>{a&&""===g.current&&(h.current=p??l??-1)},[a,p,l]);let x=(0,eo.useStableCallback)(e=>{e?r.current.typing||(r.current.typing=e,c?.(e)):r.current.typing&&(r.current.typing=e,c?.(e))}),b=(0,eo.useStableCallback)(e=>{function t(e,n,r=0){if(0===e.length)return -1;let a=(r%e.length+e.length)%e.length,o=n.toLocaleLowerCase();for(let t=0;t<e.length;t+=1){let n=(a+t)%e.length,r=e[n];if(r?.toLocaleLowerCase().startsWith(o)&&function(e){let t=i?.current[e];return!t||(0,tu.isElementVisible)(t)}(n))return n}return -1}let n=s.current;if(g.current.length>0&&" "===e.key&&((0,tl.stopEvent)(e),x(!0)),g.current.length>0&&" "!==g.current[0]&&-1===t(n,g.current)&&" "!==e.key&&x(!1),null==n||1!==e.key.length||e.ctrlKey||e.metaKey||e.altKey)return;a&&" "!==e.key&&((0,tl.stopEvent)(e),x(!0));let r=""===g.current;r&&(h.current=p??l??-1),n.every(e=>!e||e[0]?.toLocaleLowerCase()!==e[1]?.toLocaleLowerCase())&&g.current===e.key&&(g.current="",h.current=v.current),g.current+=e.key,m.start(f,()=>{g.current="",h.current=v.current,x(!1)});let o=r?p??l??-1:h.current,c=t(n,g.current,(o??0)+1);-1!==c?(u?.(c),v.current=c):" "!==e.key&&(g.current="",x(!1))}),y=(0,eo.useStableCallback)(e=>{let t=e.relatedTarget,r=n.select("domReferenceElement"),a=n.select("floatingElement"),o=(0,ti.contains)(r,t),s=(0,ti.contains)(a,t);o||s||(m.clear(),g.current="",h.current=v.current,x(!1))}),S=o.useMemo(()=>({onKeyDown:b,onBlur:y}),[b,y]),E=o.useMemo(()=>({onKeyDown:b,onBlur:y}),[b,y]);return o.useMemo(()=>d?{reference:S,floating:E}:{},[d,S,E])}(ee,{listRef:k.context.itemLabels,elementsRef:k.context.itemDomElements,activeIndex:_,resetMs:eQ.TYPEAHEAD_RESET_MS,onMatch:e=>{O&&e!==_&&k.set("activeIndex",e)},onTypingChange:eu}),{getReferenceProps:ef,getFloatingProps:ep,getItemProps:em,getTriggerProps:eh}=(0,tr.useInteractions)([er,ea,el,ed]),ev=o.useMemo(()=>{let e=(0,ec.mergeProps)(ef(),{onMouseMove(){k.set("allowMouseEnter",!0)}},V);return delete e.role,e},[ef,k,V]),ex=o.useMemo(()=>{let e=eh();if(!e)return e;let t=(0,ec.mergeProps)(e,V);return delete t.role,delete t["aria-controls"],t},[eh,V]),eb=o.useMemo(()=>ep({onMouseMove(){k.set("allowMouseEnter",!0),"menu"===D.type&&k.set("hoverEnabled",!1)},onClick(){k.select("hoverEnabled")&&k.set("hoverEnabled",!1)},onKeyDown(e){let t=k.select("keyboardEventRelay");t&&!e.isPropagationStopped()&&t(e)}}),[ep,D.type,k]),ey=o.useMemo(()=>em(),[em]);k.useSyncedValues({floatingRootContext:ee,activeTriggerProps:ev,inactiveTriggerProps:ex,popupProps:eb,itemProps:ey});let eS=o.useMemo(()=>({store:k,parent:C}),[k,C]),eR=(0,a.jsx)(Y.Provider,{value:eS,children:"function"==typeof r?r({payload:F}):r});return void 0===D.type||"context-menu"===D.type?(0,a.jsx)(ez.FloatingTree,{externalTree:w,children:eR}):eR});var tM=e.i(74080),tP=e.i(37287),tA=e.i(4012),tL=e.i(32652);let tD=ed.isMac&&ed.isSafari;var t_=e.i(97254),tF=e.i(59266),tU=e.i(54694);function tB(e){let{render:t,className:n,state:r=te.EMPTY_OBJECT,props:a=te.EMPTY_ARRAY,refs:s=te.EMPTY_ARRAY,metadata:i,stateAttributesMapping:l,tag:u="div",...c}=e,{compositeProps:d,compositeRef:f}=function(e={}){let{highlightItemOnHover:t,highlightedIndex:n,onHighlightedIndexChange:r}=(0,tU.useCompositeRootContext)(),{ref:a,index:s}=ex(e),i=n===s,l=o.useRef(null),u=(0,el.useMergedRefs)(a,l);return{compositeProps:o.useMemo(()=>({tabIndex:i?0:-1,onFocus(){r(s)},onMouseMove(){let e=l.current;if(!t||!e)return;let n=e.hasAttribute("disabled")||"true"===e.ariaDisabled;i||n||e.focus()}}),[i,r,s,t]),compositeRef:u,index:s}}({metadata:i});return(0,J.useRenderElement)(u,e,{state:r,ref:[...s,f],props:[d,...a,c],stateAttributesMapping:l})}var tW=e.i(72408);let tH=(0,tt.fastComponentRef)(function(e,t){let n,r,s,{render:i,className:l,disabled:u=!1,nativeButton:c=!0,id:d,openOnHover:f,delay:p=100,closeDelay:m=0,handle:g,payload:h,...v}=e,x=q(!0),b=g?.store??x?.store;if(!b)throw Error((0,$.default)(85));let y=(0,eb.useBaseUiId)(d),S=b.useState("isTriggerActive",y),E=b.useState("floatingRootContext"),R=b.useState("isOpenedByTrigger",y),C=o.useRef(null),k=(n=et(!0),r=q(!0),s=tx(!0),o.useMemo(()=>s?{type:"menubar",context:s}:n&&!r?{type:"context-menu",context:n}:{type:void 0},[n,r,s])),w=(0,tU.useCompositeRootContext)(!0),T=(0,ez.useFloatingTree)(),I=o.useMemo(()=>T??new tR.FloatingTreeStore,[T]),O=(0,ez.useFloatingNodeId)(I),N=(0,ez.useFloatingParentNodeId)(),{registerTrigger:j,isMountedByThisTrigger:M}=(0,tI.useTriggerDataForwarding)(y,C,b,{payload:h,closeDelay:m,parent:k,floatingTreeRoot:I,floatingNodeId:O,floatingParentNodeId:N,keyboardEventRelay:w?.relayKeyboardEvent}),P="menubar"===k.type,A=b.useState("disabled"),L=u||A||P&&k.context.disabled,{getButtonProps:D,buttonRef:_}=(0,eu.useButton)({disabled:L,native:c});o.useEffect(()=>{R||void 0!==k.type||(b.context.allowMouseUpTriggerRef.current=!1)},[b,R,k.type]);let F=o.useRef(null),U=(0,eV.useTimeout)(),B=(0,eo.useStableCallback)(e=>{if(!F.current)return;U.clear(),b.context.allowMouseUpTriggerRef.current=!1;let t=e.target;if((0,ti.contains)(F.current,t)||(0,ti.contains)(b.select("positionerElement"),t)||t===F.current||null!=t&&function e(t){return(0,ta.isHTMLElement)(t)&&t.hasAttribute("data-rootownerid")?t.getAttribute("data-rootownerid")??void 0:(0,ta.isLastTraversableNode)(t)?void 0:e((0,ta.getParentNode)(t))}(t)===b.select("rootId"))return;let n=function(e){let t=e.getBoundingClientRect(),n=window.getComputedStyle(e,"::before"),r=window.getComputedStyle(e,"::after");if("none"===n.content&&"none"===r.content)return t;let a=parseFloat(n.width)||0,o=parseFloat(n.height)||0,s=parseFloat(r.width)||0,i=parseFloat(r.height)||0,l=Math.max(t.width,a,s),u=Math.max(t.height,o,i),c=l-t.width,d=u-t.height;return{left:t.left-c/2,right:t.right+c/2,top:t.top-d/2,bottom:t.bottom+d/2}}(F.current);e.clientX>=n.left-2&&e.clientX<=n.right+2&&e.clientY>=n.top-2&&e.clientY<=n.bottom+2||I.events.emit("close",{domEvent:e,reason:en.REASONS.cancelOpen})});o.useEffect(()=>{R&&b.select("lastOpenChangeReason")===en.REASONS.triggerHover&&(0,ts.ownerDocument)(F.current).addEventListener("mouseup",B,{once:!0})},[R,B,b]);let W=P&&k.context.hasSubmenuOpen,H=f??W,V=(0,t_.useHoverReferenceInteraction)(E,{enabled:H&&!L&&"context-menu"!==k.type&&(!P||W&&!M),handleClose:(0,tP.safePolygon)({blockPointerEvents:!P}),mouseOnly:!0,move:!1,restMs:void 0===k.type?p:void 0,delay:{close:m},triggerElementRef:C,externalTree:I,isActiveTrigger:S}),z=function(e,t){let n=(0,eV.useTimeout)(),[r,a]=o.useState(!1);return(0,eg.useIsoLayoutEffect)(()=>{e&&"trigger-hover"===t?(a(!0),n.start(eQ.PATIENT_CLICK_THRESHOLD,()=>{a(!1)})):e||(n.clear(),a(!1))},[e,t,n]),r}(R,b.select("lastOpenChangeReason")),K=(0,tA.useClick)(E,{enabled:!L&&"context-menu"!==k.type,event:R&&P?"click":"mousedown",toggle:!0,ignoreMouse:!1,stickIfOpen:void 0===k.type&&z}),G=function(e,t={}){let n="rootStore"in e?e.rootStore:e,{events:r,dataRef:a}=n.context,{enabled:s=!0,delay:i}=t,l=o.useRef(!1),u=o.useRef(null),c=(0,eV.useTimeout)(),d=o.useRef(!0);o.useEffect(()=>{let e=n.select("domReferenceElement");if(!s)return;let t=(0,ta.getWindow)(e);function r(){let e=n.select("domReferenceElement");!n.select("open")&&(0,ta.isHTMLElement)(e)&&e===(0,ti.activeElement)((0,ts.ownerDocument)(e))&&(l.current=!0)}function a(){d.current=!0}function o(){d.current=!1}return t.addEventListener("blur",r),tD&&(t.addEventListener("keydown",a,!0),t.addEventListener("pointerdown",o,!0)),()=>{t.removeEventListener("blur",r),tD&&(t.removeEventListener("keydown",a,!0),t.removeEventListener("pointerdown",o,!0))}},[n,s]),o.useEffect(()=>{if(s)return r.on("openchange",e),()=>{r.off("openchange",e)};function e(e){if(e.reason===en.REASONS.triggerPress||e.reason===en.REASONS.escapeKey){let e=n.select("domReferenceElement");(0,ta.isElement)(e)&&(u.current=e,l.current=!0)}}},[r,s,n]);let f=o.useMemo(()=>({onMouseLeave(){l.current=!1,u.current=null},onFocus(e){let t=e.currentTarget;if(l.current){if(u.current===t)return;l.current=!1,u.current=null}let r=(0,ti.getTarget)(e.nativeEvent);if((0,ta.isElement)(r)){if(tD&&!e.relatedTarget){if(!d.current&&!(0,ti.isTypeableElement)(r))return}else if(!(0,ti.matchesFocusVisible)(r))return}let a=(0,ti.isTargetInsideEnabledTrigger)(e.relatedTarget,n.context.triggerElements),{nativeEvent:o,currentTarget:s}=e,f="function"==typeof i?i():i;n.select("open")&&a||0===f||void 0===f?n.setOpen(!0,(0,eE.createChangeEventDetails)(en.REASONS.triggerFocus,o,s)):c.start(f,()=>{l.current||n.setOpen(!0,(0,eE.createChangeEventDetails)(en.REASONS.triggerFocus,o,s))})},onBlur(e){l.current=!1,u.current=null;let t=e.relatedTarget,r=e.nativeEvent,o=(0,ta.isElement)(t)&&t.hasAttribute((0,tL.createAttribute)("focus-guard"))&&"outside"===t.getAttribute("data-type");c.start(0,()=>{let e=n.select("domReferenceElement"),s=(0,ti.activeElement)(e?e.ownerDocument:document);if(!t&&s===e||(0,ti.contains)(a.current.floatingContext?.refs.floating.current,s)||(0,ti.contains)(e,s)||o)return;let i=t??s;(0,ti.isTargetInsideEnabledTrigger)(i,n.context.triggerElements)||n.setOpen(!1,(0,eE.createChangeEventDetails)(en.REASONS.triggerFocus,r))})}}),[a,n,c,i]);return o.useMemo(()=>s?{reference:f,trigger:f}:{},[s,f])}(E,{enabled:!L&&W}),Y=function(e){let{enabled:t=!0,mouseDownAction:n,open:r}=e,a=o.useRef(!1);return o.useMemo(()=>t?{onMouseDown:e=>{("open"===n&&!r||"close"===n&&r)&&(a.current=!0,(0,ts.ownerDocument)(e.currentTarget).addEventListener("click",()=>{a.current=!1},{once:!0}))},onClick:e=>{a.current&&(a.current=!1,e.preventBaseUIHandler())}}:te.EMPTY_OBJECT,[t,n,r])}({open:R,enabled:P,mouseDownAction:"open"}),Q=(0,tr.useInteractions)([K,G]),Z={disabled:L,open:R},ee=b.useState("triggerProps",M),er=[F,t,_,j,C],ea=[Q.getReferenceProps(),V??te.EMPTY_OBJECT,ee,{"aria-haspopup":"menu",id:y,onMouseDown:e=>{b.select("open")||(U.start(200,()=>{b.context.allowMouseUpTriggerRef.current=!0}),(0,ts.ownerDocument)(e.currentTarget).addEventListener("mouseup",B,{once:!0}))}},P?{role:"menuitem"}:{},Y,v,D],es=o.useRef(null),ei=(0,eo.useStableCallback)(e=>{tM.flushSync(()=>{b.setOpen(!1,(0,eE.createChangeEventDetails)(en.REASONS.focusOut,e.nativeEvent,e.currentTarget))});let t=(0,tF.getTabbableBeforeElement)(es.current);t?.focus()}),el=(0,eo.useStableCallback)(e=>{let t=b.select("positionerElement");if(t&&(0,tF.isOutsideEvent)(e,t))b.context.beforeContentFocusGuardRef.current?.focus();else{tM.flushSync(()=>{b.setOpen(!1,(0,eE.createChangeEventDetails)(en.REASONS.focusOut,e.nativeEvent,e.currentTarget))});let n=(0,tF.getTabbableAfterElement)(b.context.triggerFocusTargetRef.current||C.current);for(;null!==n&&(0,ti.contains)(t,n);){let e=n;if((n=(0,tF.getNextTabbable)(n))===e)break}n?.focus()}}),ec=(0,J.useRenderElement)("button",e,{enabled:!P,stateAttributesMapping:X.pressableTriggerOpenStateMapping,state:Z,ref:er,props:ea});return P?(0,a.jsx)(tB,{tag:"button",render:i,className:l,state:Z,refs:er,props:ea,stateAttributesMapping:X.pressableTriggerOpenStateMapping}):R?(0,a.jsxs)(o.Fragment,{children:[(0,a.jsx)(tW.FocusGuard,{ref:es,onFocus:ei},`${y}-pre-focus-guard`),(0,a.jsx)(o.Fragment,{children:ec},y),(0,a.jsx)(tW.FocusGuard,{ref:b.context.triggerFocusTargetRef,onFocus:el},`${y}-post-focus-guard`)]}):(0,a.jsx)(o.Fragment,{children:ec},y)});var tV=e.i(12666);let tz=((r={}).popupWidth="--popup-width",r.popupHeight="--popup-height",r),t$={activationDirection:e=>e?{"data-activation-direction":e}:null},tK=o.forwardRef(function(e,t){let{render:n,className:r,children:a,...o}=e,{store:s}=q(),{side:i}=G(),l=s.useState("instantType"),{children:u,state:c}=(0,tV.usePopupViewport)({store:s,side:i,cssVars:tz,children:a}),d={activationDirection:c.activationDirection,transitioning:c.transitioning,instant:l};return(0,J.useRenderElement)("div",e,{state:d,ref:t,props:[o,{children:u}],stateAttributesMapping:t$})}),tG=o.forwardRef(function(e,t){let{className:n,render:r,orientation:a="horizontal",...o}=e;return(0,J.useRenderElement)("div",e,{state:{orientation:a},ref:t,props:[{role:"separator","aria-orientation":a},o]})}),tY=o.forwardRef(function(e,t){let{render:n,className:r,label:a,id:s,nativeButton:i=!1,openOnHover:l=!0,delay:u=100,closeDelay:c=0,disabled:d=!1,...f}=e,p=ex(),m=G(),{store:g}=q(),h=(0,eb.useBaseUiId)(s),v=g.useState("open"),x=g.useState("floatingRootContext"),b=g.useState("floatingTreeRoot"),y=(0,tI.useTriggerRegistration)(h,g),S=o.useCallback(e=>{let t=y(e);return null!==e&&g.select("open")&&null==g.select("activeTriggerId")&&g.update({activeTriggerId:h,activeTriggerElement:e,closeDelay:c}),t},[y,c,g,h]),E=o.useRef(null),R=o.useCallback(e=>{E.current=e,g.set("activeTriggerElement",e)},[g]),C=tN();if(!C?.parentMenu)throw Error((0,$.default)(37));g.useSyncedValue("closeDelay",c);let k=C.parentMenu,w=k.useState("itemProps"),T=k.useState("isActive",p.index),I=o.useMemo(()=>({type:"submenu-trigger",setActive(){k.set("activeIndex",p.index)}}),[k,p.index]),O=g.useState("disabled"),N=d||O,{getItemProps:j,itemRef:M}=em({closeOnClick:!1,disabled:N,highlighted:T,id:h,store:g,typingRef:k.context.typingRef,nativeButton:i,itemMetadata:I,nodeId:m?.nodeId}),P=g.useState("hoverEnabled"),A=k.useState("allowMouseEnter"),L=(0,t_.useHoverReferenceInteraction)(x,{enabled:P&&l&&!N,handleClose:(0,tP.safePolygon)({blockPointerEvents:!0}),mouseOnly:!0,move:!0,restMs:u,delay:A?{open:u,close:c}:0,triggerElementRef:E,externalTree:b}),D=(0,tA.useClick)(x,{enabled:!N,event:"mousedown",toggle:!l,ignoreMouse:l,stickIfOpen:!1}),_=(0,tr.useInteractions)([D]),F=g.useState("triggerProps",!0);return delete F.id,(0,J.useRenderElement)("div",e,{state:{disabled:N,highlighted:T,open:v},stateAttributesMapping:X.triggerOpenStateMapping,props:[_.getReferenceProps(),L,F,w,{tabIndex:v||T?0:-1,onBlur(){T&&k.set("activeIndex",null)}},f,j],ref:[t,p.ref,M,S,R]})});class tq{constructor(){this.store=new tT}open(e){let t=e?this.store.context.triggerElements.getById(e):void 0;if(e&&!t)throw Error((0,$.default)(83,e));this.store.setOpen(!0,(0,eE.createChangeEventDetails)("imperative-action",void 0,t))}close(){this.store.setOpen(!1,(0,eE.createChangeEventDetails)("imperative-action",void 0,void 0))}get isOpen(){return this.store.state.open}}e.s(["Arrow",0,Q,"Backdrop",0,ea,"CheckboxItem",0,eR,"CheckboxItemIndicator",0,ew,"Group",0,eI,"GroupLabel",0,eO,"Handle",0,tq,"Item",0,eN,"LinkItem",0,ej,"Popup",0,eF,"Portal",0,eW,"Positioner",0,e1,"RadioGroup",0,e5,"RadioItem",0,e3,"RadioItemIndicator",0,e9,"Root",0,tj,"Separator",0,tG,"SubmenuRoot",0,function(e){let t=q().store,n=o.useMemo(()=>({parentMenu:t}),[t]);return(0,a.jsx)(tO.Provider,{value:n,children:(0,a.jsx)(tj,{...e})})},"SubmenuTrigger",0,tY,"Trigger",0,tH,"Viewport",0,tK,"createHandle",0,function(){return new tq}],30250);var tJ=e.i(30250),tJ=tJ;function tX({...e}){return(0,a.jsx)(tJ.Root,{"data-slot":"dropdown-menu",...e})}function tQ({...e}){return(0,a.jsx)(tJ.Trigger,{"data-slot":"dropdown-menu-trigger",...e})}function tZ({align:e="start",alignOffset:t=0,side:n="bottom",sideOffset:r=4,className:o,...s}){return(0,a.jsx)(tJ.Portal,{children:(0,a.jsx)(tJ.Positioner,{className:"isolate z-50 outline-none",align:e,alignOffset:t,side:n,sideOffset:r,children:(0,a.jsx)(tJ.Popup,{"data-slot":"dropdown-menu-content",className:(0,V.cn)("z-50 max-h-(--available-height) w-(--anchor-width) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 outline-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:overflow-hidden data-closed:fade-out-0 data-closed:zoom-out-95",o),...s})})})}function t0({className:e,inset:t,variant:n="default",...r}){return(0,a.jsx)(tJ.Item,{"data-slot":"dropdown-menu-item","data-inset":t,"data-variant":n,className:(0,V.cn)("group/dropdown-menu-item relative flex min-h-7 cursor-default items-center gap-2 rounded-md px-2 py-1 text-xs/relaxed outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7.5 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-3.5 data-[variant=destructive]:*:[svg]:text-destructive",e),...r})}function t1({className:e,...t}){return(0,a.jsx)(tJ.Separator,{"data-slot":"dropdown-menu-separator",className:(0,V.cn)("-mx-1 my-1 h-px bg-border/50",e),...t})}e.i(46349),e.i(78784),e.s(["default",0,function({params:e}){let{id:t}=(0,o.use)(e),n=(0,s.useRouter)(),r=(0,b.useToast)(),[u,R]=(0,o.useState)(null),[C,k]=(0,o.useState)(!0),[w,T]=(0,o.useState)([]),[I,O]=(0,o.useState)(),[N,P]=(0,o.useState)(!0),[A,L]=(0,o.useState)(!1),[D,_]=(0,o.useState)(!1),[F,U]=(0,o.useState)(!0),B=(0,o.useRef)(null);(0,y.useDocumentTitle)(u?.title),(0,o.useEffect)(()=>{(0,S.rememberLastViewedTask)(t)},[t]),(0,E.useTaskEvents)({onTaskCreated:()=>{},onTaskUpdated:e=>{e.id===t&&R(e)},onTaskDeleted:e=>{e===t&&(r.info("Task deleted",u?.title??void 0),n.push("/"))}});let W=(0,o.useCallback)(()=>{fetch((0,h.apiUrl)(`/api/tasks/${t}/read`),{method:"POST"}).catch(()=>{})},[t]),$=(0,o.useCallback)((e,t)=>{("success"===t||"failure"===t||"error"===t)&&W()},[W]),K=(0,o.useRef)(null),G=(0,o.useCallback)(async()=>{if(null!==K.current&&K.current!==t&&U(!0),K.current=t,F){P(!0);try{let e=await fetch((0,h.apiUrl)(`/api/tasks/${t}`));if(!e.ok)throw Error("Failed to fetch task");let n=await e.json(),r=n.data.task,a=r.tabs||[];R(r),k(n.data.worktreeExists),T(a),a.length>0&&O(a[0].tab_id),W()}catch(e){console.error("Failed to load data:",e)}finally{P(!1),U(!1)}}},[t,F,W]);(0,o.useEffect)(()=>{G()},[t,G]);let Y=async(e,t)=>{let n=r.loading("Updating task...");try{let a=await fetch((0,h.apiUrl)(`/api/tasks/${e}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!a.ok)throw Error("Failed to update task");let o=await a.json();return R(o.data.task),r.success(n,"Successfully updated task"),{success:!0}}catch(t){console.error("Failed to update task:",t);let e=t instanceof Error?t.message:"Failed to update task";return r.error(n,"Failed to update task",e),{success:!1,errors:[{field:"global",message:"Failed to update task"}]}}},q=async(e="claude")=>{try{let n=await fetch((0,h.apiUrl)(`/api/tasks/${t}/tabs`),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({mode:e})});if(!n.ok)throw Error("Failed to create tab");let r=(await n.json()).data.tab;return T(e=>e.some(e=>e.tab_id===r.tab_id)?e:[...e,r]),O(r.tab_id),r.tab_id}catch(e){console.error("Failed to create tab:",e);return}},J=async e=>{try{if(!(await fetch((0,h.apiUrl)(`/api/tasks/${t}/tabs/${e}`),{method:"DELETE"})).ok)throw Error("Failed to delete tab");if(T(t=>t.filter(t=>t.tab_id!==e)),I===e){let t=w.filter(t=>t.tab_id!==e);O(t[0]?.tab_id)}}catch(e){console.error("Failed to delete tab:",e)}},X=async()=>{if(!u)return;let e=r.loading("Opening terminal...",u.worktreePath);try{if(!(await fetch((0,h.apiUrl)("/api/commands/open"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({commandType:"terminal",owner:u.owner,repo:u.repo,branch:u.branch})})).ok)throw Error("Command execution failed");r.success(e,"Successfully opened terminal",u.worktreePath)}catch(n){let t=n instanceof Error?n.message:"Unknown error";r.error(e,"Failed to open terminal",t)}},Q=async()=>{if(!u)return;let e=r.loading("Opening VS Code...",u.worktreePath);try{if(!(await fetch((0,h.apiUrl)("/api/commands/open"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({commandType:"vscode",owner:u.owner,repo:u.repo,branch:u.branch})})).ok)throw Error("Command execution failed");r.success(e,"Successfully opened VS Code",u.worktreePath)}catch(n){let t=n instanceof Error?n.message:"Unknown error";r.error(e,"Failed to open VS Code",t)}};return N&&!u?(0,a.jsx)("div",{className:"h-screen flex items-center justify-center bg-background",children:(0,a.jsx)(x.LoadingSpinner,{size:"lg",message:"Loading task..."})}):u?(0,a.jsxs)("div",{className:"h-screen flex flex-col bg-background",children:[(0,a.jsx)("div",{className:"sticky top-0 z-50 p-4 border-b border-border bg-card",children:(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsxs)(i.default,{href:"/",className:(0,V.cn)((0,M.buttonVariants)({variant:"ghost"}),"text-primary font-medium hover:bg-primary/10 hover:text-foreground"),children:[(0,a.jsx)(l.ArrowLeft,{className:"w-4 h-4"}),"Back to Board"]}),(0,a.jsx)("h1",{className:"text-base font-semibold text-foreground absolute left-1/2 -translate-x-1/2 max-w-[50vw] truncate",children:u.title}),(0,a.jsxs)("div",{className:"flex items-center gap-1",children:[(0,a.jsx)(z.UpdateIndicator,{}),(0,a.jsxs)(tX,{children:[(0,a.jsx)(tQ,{render:(0,a.jsx)(M.Button,{variant:"ghost",size:"icon-lg",className:"text-primary hover:bg-primary/10 hover:text-foreground",title:"Task menu"}),children:(0,a.jsx)(d,{className:"w-5 h-5"})}),(0,a.jsxs)(tZ,{align:"end",children:[(0,a.jsxs)(t0,{onClick:()=>L(!0),children:[(0,a.jsx)(p.Pencil,{className:"w-4 h-4"}),"Detail / Edit"]}),C&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t1,{}),(0,a.jsxs)(t0,{onClick:X,children:[(0,a.jsx)(m,{className:"w-4 h-4"}),"Open Terminal"]}),(0,a.jsxs)(t0,{onClick:Q,children:[(0,a.jsx)(c,{className:"w-4 h-4"}),"Open VS Code"]})]}),(0,a.jsx)(t1,{}),(0,a.jsxs)(t0,{className:"text-destructive focus:text-destructive",onClick:()=>_(!0),children:[(0,a.jsx)(g.Trash2,{className:"w-4 h-4"}),"Delete"]})]})]})]})]})}),(0,a.jsx)("div",{className:"flex-1 flex flex-col min-h-0",children:(0,a.jsx)("div",{className:"bg-background dark:bg-card flex flex-col flex-1 min-h-0",children:C?(0,a.jsx)(H,{ref:B,task:u,tabs:w,activeTabId:I,onTabChange:O,onTabCreate:q,onTabDelete:J,onAgentStatusChange:$}):(0,a.jsxs)("div",{className:"flex-1 flex flex-col items-center justify-center gap-4 p-6 text-center",children:[(0,a.jsx)(f,{className:"size-10 text-muted-foreground"}),(0,a.jsxs)("div",{className:"space-y-1",children:[(0,a.jsx)("p",{className:"font-medium text-foreground",children:"Worktree not found"}),(0,a.jsx)("p",{className:"text-sm text-muted-foreground break-all",children:u.worktreePath})]}),(0,a.jsxs)(M.Button,{variant:"destructive",onClick:()=>_(!0),children:[(0,a.jsx)(g.Trash2,{className:"w-4 h-4"}),"Delete Task"]})]})})}),(0,a.jsx)(v.LazyTaskDialog,{mode:"edit",isOpen:A,onClose:()=>L(!1),task:u,onUpdate:Y}),(0,a.jsx)(j.ConfirmDialog,{open:D,onOpenChange:e=>_(e.open),title:"Delete Task",message:`Delete task "${u.title}"?
|
|
5
|
-
|
|
6
|
-
This will also delete the worktree and branch.`,confirmLabel:"Delete",cancelLabel:"Cancel",onConfirm:()=>{if(!u)return;let e=r.loading("Deleting task...",u.title);fetch((0,h.apiUrl)(`/api/tasks/${u.id}`),{method:"DELETE"}).then(()=>{r.success(e,"Successfully deleted task",u.title)}).catch(t=>{let n=t instanceof Error?t.message:"Unknown error";r.error(e,"Failed to delete task",n)}),n.push("/")},variant:"danger"})]}):(0,a.jsx)("div",{className:"h-screen flex items-center justify-center bg-background",children:(0,a.jsx)("div",{className:"text-center text-foreground",children:"Task not found"})})}],97099)}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,31278,e=>{"use strict";var t=e.i(17521);e.s(["Loader2",()=>t.default])},18566,(e,t,r)=>{t.exports=e.r(76562)},95468,e=>{"use strict";var t=e.i(23287);e.s(["CheckCircle2",()=>t.default])},27612,e=>{"use strict";let t=(0,e.i(75254).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["Trash2",0,t],27612)},14683,e=>{"use strict";let t=(0,e.i(75254).default)("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);e.s(["Circle",0,t],14683)},86311,e=>{"use strict";let t=(0,e.i(75254).default)("message-square",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]]);e.s(["MessageSquare",0,t],86311)},73884,e=>{"use strict";let t=(0,e.i(75254).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);e.s(["XCircle",0,t],73884)},2576,e=>{"use strict";var t=e.i(71645),r=e.i(95008);e.s(["useTaskEvents",0,function(e){let n=(0,t.useRef)(e);(0,t.useLayoutEffect)(()=>{n.current=e}),(0,t.useEffect)(()=>{let e=(0,r.getSharedSocket)(),t=({task:e,warnings:t})=>{n.current.onTaskCreated(e,t??[])},s=({task:e})=>{n.current.onTaskUpdated(e)},a=({taskId:e})=>{n.current.onTaskDeleted(e)},i=({task:e})=>{n.current.onTaskTabsChanged?.(e)};return e.on("task:created",t),e.on("task:updated",s),e.on("task:deleted",a),e.on("task:tabs-changed",i),()=>{e.off("task:created",t),e.off("task:updated",s),e.off("task:deleted",a),e.off("task:tabs-changed",i)}},[])}])},71698,e=>{"use strict";var t=e.i(71645),r=e.i(95008);e.s(["useTabStatusEvents",0,function(e,n){let s=(0,t.useRef)(new Map),a=(0,t.useRef)(n);(0,t.useEffect)(()=>{a.current=n}),(0,t.useEffect)(()=>{let e=(0,r.getSharedSocket)(),t=({sessionId:e,status:t})=>{let r=function(e){switch(e){case"running":return"running";case"waiting":return"waiting";case"success":return"success";case"failure":case"error":return"error";case"idle":return"idle";default:return null}}(t);null!==r&&a.current(e,r)};return e.on("status-changed",t),()=>{e.off("status-changed",t)}},[]),(0,t.useEffect)(()=>{(0,r.syncRoomSubscriptions)(s.current,e.map(e=>`tab:${e}`))},[e]),(0,t.useEffect)(()=>{let e=s.current;return()=>{(0,r.clearRoomSubscriptions)(e)}},[])}])},45139,801,e=>{"use strict";function t(e){return"success"===e||"error"===e||"running"!==e&&"idle"!==e&&void 0}function r(e){let t=e.tabs??[];if(0===t.length||t.some(e=>"running"===e.status))return null;if(t.some(e=>"waiting"===e.status))return"waiting";let r=t.filter(e=>e.unread);return r.some(e=>"error"===e.status)?"error":r.some(e=>"success"===e.status)?"success":null}e.s(["activityKind",0,function(e){return(e.tabs??[]).some(e=>"running"===e.status)?"running":r(e)},"hasUnreadResult",0,function(e){return null!==r(e)},"unreadForStatus",0,t,"unreadKind",0,r],45139);var n=e.i(71645),s=e.i(70935),a=e.i(2576),i=e.i(71698);let l=null;e.s(["useLiveTasks",0,function(e={}){let[r,o]=(0,n.useState)(()=>l??[]),[u,d]=(0,n.useState)(null!==l),[c,f]=(0,n.useState)(!0),h=(0,n.useRef)(e),m=(0,n.useRef)(r);(0,n.useEffect)(()=>{h.current=e,m.current=r}),(0,n.useEffect)(()=>{u&&(l=r)},[r,u]);let g=(0,n.useCallback)(async()=>{f(!0);try{let e=await fetch((0,s.apiUrl)("/api/tasks"));if(!e.ok)throw Error("Failed to fetch tasks");let t=await e.json();o(t.data.tasks),d(!0)}catch(e){console.error("Failed to load tasks:",e)}finally{f(!1)}},[]);(0,n.useEffect)(()=>{g()},[g]);let p=(0,n.useMemo)(()=>r.flatMap(e=>(e.tabs??[]).map(e=>e.tab_id)),[r]);return(0,i.useTabStatusEvents)(p,(e,r)=>{let n=t(r);o(t=>t.map(t=>({...t,tabs:(t.tabs??[]).map(t=>t.tab_id===e?{...t,status:r,...void 0!==n&&{unread:n}}:t)})))}),(0,a.useTaskEvents)({onTaskCreated:(e,t)=>{o(t=>t.some(t=>t.id===e.id)?t:[...t,e]),h.current.onTaskCreated?.(e,t)},onTaskUpdated:e=>{o(t=>t.map(t=>t.id===e.id?e:t)),h.current.onTaskUpdated?.(e)},onTaskDeleted:e=>{let t=m.current.find(t=>t.id===e);o(t=>t.filter(t=>t.id!==e)),h.current.onTaskDeleted?.(e,t)},onTaskTabsChanged:e=>{o(t=>t.map(t=>t.id===e.id?e:t))}}),{tasks:r,setTasks:o,isLoading:c,hasLoaded:u,reload:g}}],801)},22770,e=>{"use strict";var t=e.i(18050),r=e.i(18566),n=e.i(71645),s=e.i(95468),a=e.i(14683);let i=(0,e.i(75254).default)("list-x",[["path",{d:"M16 5H3",key:"m91uny"}],["path",{d:"M11 12H3",key:"51ecnj"}],["path",{d:"M16 19H3",key:"zzsher"}],["path",{d:"m15.5 9.5 5 5",key:"ytk86i"}],["path",{d:"m20.5 9.5-5 5",key:"17o44f"}]]);var l=e.i(31278),o=e.i(86311),u=e.i(73884),d=e.i(45139),c=e.i(801);let f="tsunagi:sidebar-tasks",h={shown:[],dismissed:{},hintSeen:!1},m=new Set,g=null,p=h;function v(){let e=function(){try{return localStorage.getItem(f)}catch{return null}}();if(e===g)return p;g=e;try{let t=e?JSON.parse(e):{};p={shown:Array.isArray(t.shown)?t.shown:[],dismissed:t.dismissed??{},hintSeen:!0===t.hintSeen}}catch{p=h}return p}function b(){return h}function x(e){m.add(e);let t=t=>{(t.key===f||null===t.key)&&e()};return window.addEventListener("storage",t),()=>{m.delete(e),window.removeEventListener("storage",t)}}function k(e){let t=v(),r=e(t);if(r!==t){try{localStorage.setItem(f,JSON.stringify(r))}catch{g=null,p=r}m.forEach(e=>e())}}var y=e.i(19805),w=e.i(27601),j=e.i(25913),N=e.i(52088);let S=(0,j.cva)("group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 text-[0.625rem] font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-2.5!",{variants:{variant:{default:"bg-primary text-primary-foreground [a]:hover:bg-primary/80",secondary:"bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",destructive:"bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20",outline:"border-border bg-input/20 text-foreground dark:bg-input/30 [a]:hover:bg-muted [a]:hover:text-muted-foreground",ghost:"hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",link:"text-primary underline-offset-4 hover:underline"}},defaultVariants:{variant:"default"}});function T({className:e,variant:t="default",render:r,...n}){var s;return s={defaultTagName:"span",props:(0,y.mergeProps)({className:(0,N.cn)(S({variant:t}),e)},n),render:r,state:{slot:"badge",variant:t}},(0,w.useRenderElement)(s.defaultTagName??"div",s,s)}var C=e.i(85902),M=e.i(68995),E=e.i(69068),R=e.i(27612);function I({children:e,canSwipe:r,open:s,onOpenChange:a,onRemove:i,hint:l=!1,onHintEnd:o,onMouseEnter:u}){let d=(0,n.useRef)(null),c=(0,n.useRef)(null),f=(0,n.useRef)(null),h=(0,n.useRef)(!1),[m,g]=(0,n.useState)(null),[p,v]=(0,n.useState)(!1),b=m??(s?-64:0),x=l&&null===m&&!s&&!p;(0,n.useEffect)(()=>{if(!s)return;let e=e=>{d.current?.contains(e.target)||a(!1)};return document.addEventListener("pointerdown",e),()=>document.removeEventListener("pointerdown",e)},[s,a]);let k=e=>{let t=c.current;if(!t)return i();v(!0),t.animate([{transform:`translateX(${e}px)`},{transform:"translateX(-100%)"}],{duration:200,easing:"ease-out",fill:"forwards"}).finished.then(i,i)};return(0,t.jsxs)("div",{ref:d,className:"relative touch-pan-y select-none overflow-hidden rounded-md",onPointerDown:e=>{h.current=!1,p||0!==e.button||(f.current={pointerId:e.pointerId,startX:e.clientX,startY:e.clientY,base:s?-64:0,dragging:!1,locked:!r(e.timeStamp)})},onPointerMove:e=>{let t=f.current;if(!t||t.pointerId!==e.pointerId)return;let r=e.clientX-t.startX,n=e.clientY-t.startY;if(!t.dragging){if(8>Math.abs(r)&&8>Math.abs(n))return;if(Math.abs(n)>=Math.abs(r)){f.current=null;return}if(t.dragging=!0,t.locked)return;l&&o?.(),e.currentTarget.setPointerCapture(e.pointerId)}t.locked||g(Math.min(0,Math.max(-e.currentTarget.offsetWidth,t.base+r)))},onPointerUp:e=>{let t=f.current;if(f.current=null,!t||t.pointerId!==e.pointerId||!t.dragging||(h.current=!0,t.locked))return;let r=-Math.min(0,t.base+e.clientX-t.startX);g(null),r>.6*e.currentTarget.offsetWidth?k(-r):a(r>32)},onPointerCancel:()=>{f.current=null,g(null)},onPointerEnter:e=>"mouse"===e.pointerType&&u?.(),onClickCapture:e=>{if(h.current){h.current=!1,e.preventDefault(),e.stopPropagation();return}s&&!e.target.closest("[data-swipe-action]")&&(e.preventDefault(),e.stopPropagation(),a(!1))},children:[(0!==b||x||p)&&(0,t.jsx)("div",{className:"absolute inset-0 flex justify-end bg-destructive",children:(0,t.jsx)("button",{type:"button","data-swipe-action":!0,tabIndex:s?0:-1,"aria-label":"Remove from list",title:"Remove from list",onClick:()=>k(b),style:{width:p?"100%":Math.max(64,-b)},className:(0,N.cn)("flex items-center pl-5 text-white",null===m&&"transition-[width] duration-200 ease-out"),children:(0,t.jsx)(R.Trash2,{className:"size-3.5"})})}),(0,t.jsx)("div",{ref:c,style:{transform:x?void 0:`translateX(${b}px)`},className:(0,N.cn)("relative bg-background dark:bg-card",null===m&&"transition-transform duration-200 ease-out",x&&"animate-swipe-hint"),onAnimationEnd:e=>e.target===e.currentTarget&&o?.(),children:e})]})}let K={waiting:0,error:1,success:2,running:3},P={running:{icon:l.Loader2,className:"text-primary animate-spin",label:"Running"},waiting:{icon:o.MessageSquare,className:"text-warning",label:"Waiting for your input"},error:{icon:u.XCircle,className:"text-destructive",label:"Failed"},success:{icon:s.CheckCircle2,className:"text-success",label:"Finished"}},L={icon:a.Circle,className:"text-muted-foreground",label:"Idle"},X={success:{className:"bg-unread-success",label:"Finished, not opened yet"},error:{className:"bg-unread-error",label:"Failed, not opened yet"},waiting:{className:"bg-unread-waiting",label:"Waiting for your input"}};function z(e){return"running"===e||"waiting"===e}function A(e,t){let r=new Set(t.map(e=>e.id)),n=e.shown.filter(e=>r.has(e)),s={};for(let r of t){let t=(0,d.activityKind)(r);if(r.id in e.dismissed&&e.dismissed[r.id]===t){s[r.id]=t;continue}t&&!n.includes(r.id)&&n.push(r.id)}return n.length===e.shown.length&&n.every((t,r)=>t===e.shown[r])&&Object.keys(s).length===Object.keys(e.dismissed).length?e:{...e,shown:n,dismissed:s}}function D(e){let t=window.matchMedia("(hover: hover)");return t.addEventListener("change",e),()=>t.removeEventListener("change",e)}function O({currentTaskId:e}){let s=(0,r.useRouter)(),{tasks:a,isLoading:l}=(0,c.useLiveTasks)(),{state:o,update:u}={state:(0,n.useSyncExternalStore)(x,v,b),update:k},f=(0,n.useMemo)(()=>l?o:A(o,a),[l,o,a]);(0,n.useEffect)(()=>{f!==o&&u(e=>A(e,a))},[f,o,a,u]);let h=(0,n.useRef)(new Map),m=(0,n.useRef)(new Map);(0,n.useEffect)(()=>{for(let e of a){let t=(0,d.activityKind)(e);z(h.current.get(e.id)??null)&&!z(t)&&m.current.set(e.id,performance.now()),h.current.set(e.id,t)}},[a]);let{active:g,done:p}=(0,n.useMemo)(()=>{let t=new Map(a.map(e=>[e.id,e])),r=[],n=[];for(let s of f.shown){let a=t.get(s);if(!a)continue;let i=(0,d.activityKind)(a);i&&(a.id!==e||"success"!==i&&"error"!==i)?r.push({task:a,kind:i}):n.push(a)}let s=(e,t)=>e.order-t.order||e.createdAt.localeCompare(t.createdAt);return r.sort((e,t)=>K[e.kind]-K[t.kind]||s(e.task,t.task)),n.sort(s),{active:r,done:n}},[a,f.shown,e]),y=(0,n.useMemo)(()=>[...g.map(({task:e})=>e),...p],[g,p]),w=y.filter(e=>!z((0,d.activityKind)(e))),[j,S]=(0,n.useState)(null),[R,U]=(0,n.useState)(null),F=(0,n.useSyncExternalStore)(D,()=>window.matchMedia("(hover: hover)").matches,()=>!0),[B,H]=(0,n.useState)(null),W=f.hintSeen?null:F?w.some(e=>e.id===B)?B:null:w[0]?.id??null,q=(e,t)=>!z((0,d.activityKind)(e))&&t-(m.current.get(e.id)??0)>=3e3,V=e=>{let t=new Map(a.map(e=>[e.id,e]));u(r=>{let n={...r.dismissed};for(let r of e){let e=t.get(r);e&&(n[r]=(0,d.activityKind)(e))}return{...r,shown:r.shown.filter(t=>!e.includes(t)),dismissed:n}})},Y=r=>{var n;let a=r.id===e,i=z((0,d.activityKind)(r)),l=(n=r.tabs)&&0!==n.length?n.some(e=>"running"===e.status)?"running":n.some(e=>"waiting"===e.status)?"waiting":n.some(e=>"error"===e.status)?"error":n.every(e=>"success"===e.status)?"success":null:null,{icon:o,className:c,label:h}=l?P[l]:L,m=(0,d.unreadKind)(r);return a&&"waiting"!==m&&(m=null),(0,t.jsx)("li",{children:(0,t.jsxs)(I,{canSwipe:e=>q(r,e),open:j===r.id&&!i,onOpenChange:e=>S(t=>e?r.id:t===r.id?null:t),onRemove:()=>V([r.id]),hint:W===r.id,onHintEnd:()=>u(e=>({...e,hintSeen:!0})),onMouseEnter:()=>!f.hintSeen&&!i&&H(e=>e??r.id),children:[m&&(0,t.jsx)("span",{role:"img","aria-label":X[m].label,title:X[m].label,className:(0,N.cn)("absolute left-0 top-1.5 bottom-1.5 z-10 w-[3px] rounded-r-[3px]",X[m].className)}),(0,t.jsxs)("button",{type:"button",onClick:()=>s.replace(`/tasks/${r.id}`),"aria-current":a?"page":void 0,className:(0,N.cn)("flex w-full items-start gap-2 rounded-md px-2 py-1.5 text-left transition-colors hover:bg-accent",a&&"bg-accent"),children:[(0,t.jsx)("span",{role:"img","aria-label":h,title:h,className:"mt-0.5 shrink-0",children:(0,t.jsx)(o,{className:(0,N.cn)("size-3.5",c)})}),(0,t.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,t.jsx)("span",{className:"block truncate text-sm text-foreground",title:r.title,children:r.title}),(0,t.jsxs)("span",{className:"block truncate text-xs text-muted-foreground",children:[r.owner,"/",r.repo]})]})]})]})},r.id)},$=(e,r)=>r.length>0&&(0,t.jsxs)("section",{children:[(0,t.jsxs)("h2",{className:"px-2 pb-1 pt-2 text-xs font-medium text-muted-foreground",children:[e," ",(0,t.jsx)("span",{className:"tabular-nums",children:r.length})]}),(0,t.jsx)("ul",{className:"space-y-0.5",children:r.map(Y)})]});return(0,t.jsxs)("aside",{className:"hidden md:flex w-64 shrink-0 flex-col border-r border-border bg-background dark:bg-card",children:[(0,t.jsxs)("div",{className:"flex h-8 shrink-0 box-content items-center gap-2 border-b border-border bg-card p-4",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-foreground",children:"Tasks"}),(0,t.jsx)(T,{variant:"secondary",children:y.length}),(0,t.jsx)(C.Button,{variant:"ghost",size:"icon",className:"ml-auto text-muted-foreground hover:text-foreground","aria-label":"Clear list",title:"Clear list",disabled:0===w.length,onClick:e=>{let t=y.filter(t=>q(t,e.timeStamp)).map(e=>e.id);t.length>0&&U(t)},children:(0,t.jsx)(i,{})})]}),0===y.length?(0,t.jsx)("p",{className:"p-4 text-center text-xs text-muted-foreground",children:"No tasks"}):(0,t.jsxs)("div",{className:"flex-1 overflow-y-auto px-2 pb-2",children:[$("Active",g.map(({task:e})=>e)),$("Done",p)]}),(0,t.jsx)(M.Dialog,{open:null!==R,onOpenChange:e=>!e.open&&U(null),title:"Clear list",maxWidth:"md",showCloseButton:!1,children:(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("p",{className:"text-foreground",children:["Remove ",R?.length," task",R?.length===1?"":"s"," from this list?"]}),(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"Running or waiting tasks stay. The tasks themselves are not deleted."}),(0,t.jsxs)("div",{className:"flex justify-end gap-2 pt-2",children:[(0,t.jsx)(E.DialogClose,{render:(0,t.jsx)(C.Button,{variant:"outline",className:"cursor-pointer"}),children:"Cancel"}),(0,t.jsx)(C.Button,{variant:"destructive",className:"cursor-pointer",onClick:()=>{R&&V(R),U(null)},children:"Clear"})]})]})})]})}e.s(["default",0,function({children:e}){let{id:n}=(0,r.useParams)();return(0,t.jsxs)("div",{className:"h-screen flex bg-background",children:[(0,t.jsx)(O,{currentTaskId:n}),(0,t.jsx)("div",{className:"flex-1 min-w-0",children:e})]})}],22770)}]);
|