@minimalcorp/tsunagi 0.3.3 → 0.4.2
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.js.nft.json +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 +3 -3
- package/.next/standalone/apps/web/.next/server/app/settings.segments/_full.segment.rsc +3 -3
- 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 +2 -2
- 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/[root-of-the-server]__0qjafjt._.js +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{_13w5ytx._.js → _01~tp-i._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{_0kflgfj._.js → _03lm.~7._.js} +3 -3
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{_0g79jqo._.js → _09br4yx._.js} +3 -3
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_0g.cd6a._.js +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_0h-u~an._.js +7 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{_139_l.u._.js → _0kkt7a_._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_0ts4rpp._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_13ne7ej._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/apps_web_src_app_settings_page_tsx_0i6itlb._.js +1 -3
- package/.next/standalone/apps/web/.next/server/chunks/ssr/apps_web_src_app_tasks_[id]_page_tsx_0jshsm2._.js +3 -3
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0cv326~._.js → node_modules_06jdmu~._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0h.vgyn._.js → node_modules_0ac2-~z._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0sn0lqb._.js → node_modules_0gglkx9._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0tod6y8._.js → node_modules_0h4h_aw._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0q_5qo~._.js → node_modules_0i5v48e._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_09d2oqj._.js → node_modules_0k3x6_w._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0oip5a1._.js → node_modules_0q8yuvq._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0npujym._.js → node_modules_0rnsluy._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0krwgny._.js → node_modules_0t-jssg._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0l23gkf._.js → node_modules_0t6ysh_._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_11-z65a._.js → node_modules_0ut2-yw._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0_huoqd._.js → node_modules_0vq~hzy._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0a57phw._.js → node_modules_0w6fm3f._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0xp9nhx._.js → node_modules_0yb2sh9._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0q_xfyl._.js → node_modules_0yc~s8p._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0ak_3rk._.js → node_modules_0zi0w9_._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_04pfam-._.js → node_modules_0zzdoud._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{_0w2dm3r._.js → node_modules_lucide-react_dist_esm_icons_0zerlct._.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/{0l83q95s~tih4.js → 08s3o7outb~0z.js} +1 -1
- package/.next/standalone/apps/web/.next/static/chunks/0a2u28f44p7t..js +1 -0
- package/.next/standalone/apps/web/.next/static/chunks/{0oricprxoxb_d.js → 0ae7zmpe8063z.js} +10 -10
- package/.next/standalone/apps/web/.next/static/chunks/0dgu~u-1e5b7-.js +5 -0
- package/.next/standalone/apps/web/.next/static/chunks/{0whl1y16cvn5q.js → 0e8u7rqrqfiiy.js} +1 -1
- package/.next/standalone/apps/web/.next/static/chunks/{0z60ewb40i2ce.js → 0gxhy80~c0gvp.js} +1 -1
- package/.next/standalone/apps/web/.next/static/chunks/0n72w4sxrwoj4.js +5 -0
- package/.next/standalone/apps/web/.next/static/chunks/0o1bh_qwdvmid.css +4 -0
- package/.next/standalone/apps/web/.next/static/chunks/{17~93fal1fw_d.js → 0uugzgqr-ug3_.js} +1 -1
- package/.next/standalone/apps/web/.next/static/chunks/{149sia28cskw9.js → 0yp~t_.pozr-d.js} +6 -6
- package/.next/standalone/apps/web/.next/static/chunks/0ysgl4vmer~v5.js +6 -0
- package/.next/standalone/apps/web/.next/static/chunks/{053h220fng_68.js → 11u7x4ic4~mp3.js} +10 -10
- package/.next/standalone/apps/web/.next/static/chunks/13_9zaka0bif_.js +1 -0
- package/.next/standalone/apps/web/package.json +1 -3
- package/README.md +1 -1
- package/dist/app.js +3 -4
- package/dist/plugin-lifecycle.d.ts +5 -3
- package/dist/plugin-lifecycle.js +40 -16
- package/dist/prisma/migrations/20261011000000_add_codex_support/migration.sql +20 -0
- package/dist/prisma/schema.prisma +9 -5
- package/dist/server/generated/prisma/browser.d.ts +2 -2
- package/dist/server/generated/prisma/client.d.ts +2 -2
- package/dist/server/generated/prisma/internal/class.d.ts +4 -4
- package/dist/server/generated/prisma/internal/class.js +4 -4
- package/dist/server/generated/prisma/internal/prismaNamespace.d.ts +41 -39
- package/dist/server/generated/prisma/internal/prismaNamespace.js +4 -2
- package/dist/server/generated/prisma/internal/prismaNamespaceBrowser.d.ts +5 -3
- package/dist/server/generated/prisma/internal/prismaNamespaceBrowser.js +4 -2
- package/dist/server/generated/prisma/models/AgentProfile.d.ts +972 -0
- package/dist/server/generated/prisma/models/Tab.d.ts +36 -1
- package/dist/server/generated/prisma/models.d.ts +1 -1
- package/dist/server/index.js +2 -7
- package/dist/server/lib/agent-profiles.d.ts +44 -0
- package/dist/server/lib/agent-profiles.js +130 -0
- package/dist/server/lib/agents/claude.d.ts +2 -0
- package/dist/server/lib/agents/claude.js +130 -0
- package/dist/server/lib/agents/cli.d.ts +14 -0
- package/dist/server/lib/agents/cli.js +57 -0
- package/dist/server/lib/agents/codex.d.ts +2 -0
- package/dist/server/lib/agents/codex.js +285 -0
- package/dist/server/lib/agents/index.d.ts +11 -0
- package/dist/server/lib/agents/index.js +19 -0
- package/dist/server/lib/agents/login-callback.d.ts +11 -0
- package/dist/server/lib/agents/login-callback.js +47 -0
- package/dist/server/lib/agents/types.d.ts +77 -0
- package/dist/server/lib/agents/types.js +8 -0
- package/dist/server/lib/pty-env-sync.js +1 -1
- package/dist/server/lib/pty-launch.d.ts +8 -10
- package/dist/server/lib/pty-launch.js +20 -58
- package/dist/server/lib/repositories/task.js +1 -0
- package/dist/server/lib/tab-todos.d.ts +5 -0
- package/dist/server/lib/tab-todos.js +13 -0
- package/dist/server/pty-manager.d.ts +7 -2
- package/dist/server/pty-manager.js +13 -0
- package/dist/server/routes/agent-profiles.d.ts +2 -0
- package/dist/server/routes/agent-profiles.js +193 -0
- package/dist/server/routes/env.js +2 -2
- package/dist/server/routes/hooks.d.ts +4 -19
- package/dist/server/routes/hooks.js +83 -73
- package/dist/server/routes/mcp.js +2 -2
- package/dist/server/routes/onboarding.js +19 -10
- package/dist/server/routes/tasks.js +4 -4
- package/dist/server/routes/terminal.js +47 -34
- package/dist/with-plugin.js +3 -3
- package/npm-shrinkwrap.json +37 -24
- package/package.json +1 -1
- package/tsunagi-marketplace/codex/tsunagi-task.md +120 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__11y.qj~._.js +0 -3
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_03vftq7._.js +0 -7
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_0hnxatt._.js +0 -3
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_10gk93.._.js +0 -3
- package/.next/standalone/apps/web/.next/static/chunks/0.gcmzq82~36i.js +0 -1
- package/.next/standalone/apps/web/.next/static/chunks/06gfh91..uydi.js +0 -5
- package/.next/standalone/apps/web/.next/static/chunks/0b90ys7wq-p.4.css +0 -4
- package/.next/standalone/apps/web/.next/static/chunks/0crn03y2tj0lu.js +0 -6
- package/.next/standalone/apps/web/.next/static/chunks/0lvl3ec93cab_.js +0 -7
- package/.next/standalone/apps/web/.next/static/chunks/0makl-d3f0_qh.js +0 -2878
- package/.next/standalone/apps/web/.next/static/chunks/0o6ggm7jrim25.js +0 -1
- package/.next/standalone/apps/web/public/vad/ort-wasm-simd-threaded.mjs +0 -59
- package/.next/standalone/apps/web/public/vad/ort-wasm-simd-threaded.wasm +0 -0
- package/.next/standalone/apps/web/public/vad/silero_vad_v5.onnx +0 -0
- package/.next/standalone/apps/web/public/vad/vad.worklet.bundle.min.js +0 -1
- package/dist/server/generated/prisma/models/ClaudeProfile.d.ts +0 -939
- package/dist/server/lib/asr-models.d.ts +0 -7
- package/dist/server/lib/asr-models.js +0 -51
- package/dist/server/lib/claude-profiles.d.ts +0 -49
- package/dist/server/lib/claude-profiles.js +0 -168
- package/dist/server/lib/process-port.d.ts +0 -1
- package/dist/server/lib/process-port.js +0 -28
- package/dist/server/lib/python-venv.d.ts +0 -4
- package/dist/server/lib/python-venv.js +0 -66
- package/dist/server/lib/voice-debug-log.d.ts +0 -9
- package/dist/server/lib/voice-debug-log.js +0 -28
- package/dist/server/lib/whisper-process.d.ts +0 -40
- package/dist/server/lib/whisper-process.js +0 -333
- package/dist/server/routes/claude-profiles.d.ts +0 -2
- package/dist/server/routes/claude-profiles.js +0 -138
- package/dist/server/routes/whisper.d.ts +0 -2
- package/dist/server/routes/whisper.js +0 -103
- package/dist/whisper-server/README.md +0 -31
- package/dist/whisper-server/download_model.py +0 -19
- package/dist/whisper-server/requirements.txt +0 -8
- package/dist/whisper-server/run.sh +0 -62
- package/dist/whisper-server/server.py +0 -147
- /package/.next/standalone/apps/web/.next/static/{7x81GlNKt9yqIkeI7U1BX → vdAs-hr87-L7y2bUSdX3i}/_buildManifest.js +0 -0
- /package/.next/standalone/apps/web/.next/static/{7x81GlNKt9yqIkeI7U1BX → vdAs-hr87-L7y2bUSdX3i}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/apps/web/.next/static/{7x81GlNKt9yqIkeI7U1BX → vdAs-hr87-L7y2bUSdX3i}/_ssgManifest.js +0 -0
- /package/dist/server/generated/prisma/models/{ClaudeProfile.js → AgentProfile.js} +0 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,97099,e=>{"use strict";var t,n,r,a=e.i(18050),o=e.i(71645),s=e.i(18566),i=e.i(471),l=e.i(75254);let u=(0,l.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"}]]),c=(0,l.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"}]]),d=(0,l.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 f=e.i(88699);let p=(0,l.default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);var m=e.i(27612),g=e.i(70935),h=e.i(10483),v=e.i(37870),x=e.i(76165),b=e.i(51846),y=e.i(2576),E=e.i(37727),S=e.i(31278);let R=(0,l.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 C=e.i(63209);let k=(0,l.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 w=e.i(95468),T=e.i(73884),I=e.i(86311),O=e.i(68995),N=e.i(85902),M=e.i(93355),j=e.i(64691);function A({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)(R,{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)(S.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)(C.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)(k,{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)(S.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)(I.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)(w.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)(T.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)(R,{className:"w-3 h-3"}),(0,a.jsx)("span",{children:"idle"})]})}}function P({tabs:e,activeTabId:t,onTabChange:n,onTabCreateTerminal:r,onTabCreateClaude:s,claudeOption:i,codexOption:l,onTabCreateCodex:u,localLlmOption:c,onTabCreateLocalLlm:d,onTabDelete:f,tabStatusMap:m}){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,R=0;for(let t of e)"terminal"===t.mode&&(R+=1,S.set(t.tab_id,R));return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(O.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=m?.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)(M.CodexIcon,{className:"w-3 h-3"})}),("local"===e.mode||"ollama"===e.mode||"lmstudio"===e.mode)&&(0,a.jsx)("span",{title:(0,j.localLlmTabLabel)(c?.provider??null),children:(0,a.jsx)(M.LocalLlmTabIcon,{provider:c?.provider??null,className:"w-3 h-3"})}),(0,a.jsx)(A,{entry:s})]})}),(0,a.jsx)(N.Button,{variant:"ghost",size:"icon-xs",onClick:t=>{t.stopPropagation(),b({tabId:e.tab_id,isRunning:i})},children:(0,a.jsx)(E.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)(N.Button,{size:"icon",onClick:r,title:"Open terminal",children:(0,a.jsx)(p,{className:"w-4 h-4"})}),(0,a.jsx)("span",{title:i?.disabledReason??"Claude Code",children:(0,a.jsx)(N.Button,{size:"icon",onClick:s,disabled:!!i?.disabledReason,children:(0,a.jsx)(M.ClaudeIcon,{className:"w-4 h-4"})})}),l&&(0,a.jsx)("span",{title:l.disabledReason??"Codex",children:(0,a.jsx)(N.Button,{size:"icon",onClick:u,disabled:!!l.disabledReason,children:(0,a.jsx)(M.CodexIcon,{className:"w-4 h-4"})})}),c&&(0,a.jsx)("span",{title:c.disabledReason??`${(0,j.localLlmTabLabel)(c.provider)}: ${c.model}`,children:(0,a.jsx)(N.Button,{size:"icon",onClick:d,disabled:!!c.disabledReason,children:(0,a.jsx)(M.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 L=e.i(71698),D=e.i(67211),F=e.i(38078),_=e.i(81671),U=e.i(28962);let B=(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[m,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,L.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]),E=(0,o.useCallback)(async e=>{let t=await s(e);t&&f(e=>{let n=new Set(e);return n.add(t),n})},[s]),S=(0,o.useCallback)(()=>E("terminal"),[E]),R=(0,o.useCallback)(()=>E("claude"),[E]),C=(0,o.useCallback)(()=>E("codex"),[E]),k=(0,o.useCallback)(()=>E("local"),[E]),w=(0,_.useAgentAvailability)(),T={disabledReason:(0,U.agentDisabledReason)("Claude Code",w?.find(e=>"claude"===e.agent))},I={disabledReason:(0,U.agentDisabledReason)("Codex",w?.find(e=>"codex"===e.agent))},{settings:O}=(0,F.useOllamaSettings)(),{settings:A}=(0,F.useLmStudioSettings)(),{settings:B}=(0,F.useLocalLlmSettings)(),H=B?.active?.model??"",W=O?.enabled||A?.enabled?{provider:B?.active?.provider??null,model:H,disabledReason:T.disabledReason??(H?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)(P,{tabs:t,activeTabId:n,onTabChange:y,onTabCreateTerminal:S,onTabCreateClaude:R,claudeOption:T,codexOption:I,onTabCreateCodex:C,localLlmOption:W,onTabCreateLocalLlm:k,onTabDelete:V,tabStatusMap:m})}),(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)(D.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)(N.Button,{onClick:R,disabled:!!T.disabledReason,children:[(0,a.jsx)(M.ClaudeIcon,{className:"w-4 h-4"}),"Claude Code"]})}),I&&(0,a.jsx)("span",{title:I.disabledReason,children:(0,a.jsxs)(N.Button,{variant:"outline",onClick:C,disabled:!!I.disabledReason,children:[(0,a.jsx)(M.CodexIcon,{className:"w-4 h-4"}),"Codex"]})}),W&&(0,a.jsx)("span",{title:W.disabledReason??`${(0,j.localLlmTabLabel)(W.provider)}: ${W.model}`,children:(0,a.jsxs)(N.Button,{variant:"outline",onClick:()=>void k(),disabled:!!W.disabledReason,children:[(0,a.jsx)(M.LocalLlmTabIcon,{provider:W.provider,className:"w-4 h-4"}),(0,j.localLlmTabLabel)(W.provider)]})}),(0,a.jsxs)(N.Button,{variant:"outline",onClick:S,children:[(0,a.jsx)(p,{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 H=e.i(99059);e.s([],38727),e.i(38727),e.i(47167);var W=e.i(67805);let V=o.createContext(void 0);function z(e){let t=o.useContext(V);if(void 0===t&&!e)throw Error((0,W.default)(33));return t}let G=o.createContext(void 0);function $(e){let t=o.useContext(G);if(void 0===t&&!e)throw Error((0,W.default)(36));return t}var K=e.i(27601),Y=e.i(83590);let q=o.forwardRef(function(e,t){let{className:n,render:r,...a}=e,{store:o}=$(),{arrowRef:s,side:i,align:l,arrowUncentered:u,arrowStyles:c}=z(),d=o.useState("open");return(0,K.useRenderElement)("div",e,{ref:[s,t],stateAttributesMapping:Y.popupStateMapping,state:{open:d,side:i,align:l,uncentered:u},props:{style:c,"aria-hidden":!0,...a}})});var J=e.i(84759);let X=o.createContext(void 0);function Z(e=!0){let t=o.useContext(X);if(void 0===t&&!e)throw Error((0,W.default)(25));return t}var Q=e.i(3404);let ee={...Y.popupStateMapping,...J.transitionStatusMapping},et=o.forwardRef(function(e,t){let{className:n,render:r,...a}=e,{store:o}=$(),s=o.useState("open"),i=o.useState("mounted"),l=o.useState("transitionStatus"),u=o.useState("lastOpenChangeReason"),c=Z();return(0,K.useRenderElement)("div",e,{ref:c?.backdropRef?[t,c.backdropRef]:t,state:{open:s,transitionStatus:l},stateAttributesMapping:ee,props:[{role:"presentation",hidden:!i,style:{pointerEvents:u===Q.REASONS.triggerHover?"none":void 0,userSelect:"none",WebkitUserSelect:"none"}},a]})});var en=e.i(76477),er=e.i(94349);let ea=o.createContext(void 0);var eo=e.i(26292),es=e.i(91730),ei=e.i(19805),el=e.i(57666);function eu(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=Z(!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:Q.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&&!el.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 ec={type:"regular-item"};function ed(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,es.useButton)({disabled:n,focusableWhenDisabled:!0,native:l,composite:!0}),m=eu({closeOnClick:t,highlighted:r,id:a,nodeId:c,store:s,typingRef:i,itemRef:d,itemMetadata:u}),g=o.useCallback(e=>(0,ei.mergeProps)(m,{onMouseEnter(){"submenu-trigger"===u.type&&u.setActive()}},e,f),[m,f,u]),h=(0,eo.useMergedRefs)(d,p);return o.useMemo(()=>({getItemProps:g,itemRef:h}),[g,h])}var ef=e.i(977);let ep=o.createContext({register:()=>{},unregister:()=>{},subscribeMapChange:()=>()=>{},elementsRef:{current:[]},nextIndexRef:{current:0}}),em=((t={})[t.None=0]="None",t[t.GuessFromOrder=1]="GuessFromOrder",t);function eg(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(ep),p=o.useRef(-1),[m,g]=o.useState(s??(a===em.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,ef.useIsoLayoutEffect)(()=>{if(null!=s)return;let e=h.current;if(e)return i(e,n),()=>{l(e)}},[s,i,l,n]),(0,ef.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 eh=e.i(89879);let ev=((n={}).checked="data-checked",n.unchecked="data-unchecked",n.disabled="data-disabled",n.highlighted="data-highlighted",n),ex={checked:e=>e?{[ev.checked]:""}:{[ev.unchecked]:""},...J.transitionStatusMapping};var eb=e.i(5963);let ey=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=eg({label:i}),h=z(!0),v=(0,eh.useBaseUiId)(s),{store:x}=$(),b=x.useState("isActive",g.index),y=x.useState("itemProps"),[E,S]=(0,er.useControlled)({controlled:d,default:f??!1,name:"MenuCheckboxItem",state:"checked"}),{getItemProps:R,itemRef:C}=ed({closeOnClick:c,disabled:u,highlighted:b,id:v,store:x,nativeButton:l,nodeId:h?.nodeId,itemMetadata:ec}),k=o.useMemo(()=>({disabled:u,highlighted:b,checked:E}),[u,b,E]),w=(0,en.useStableCallback)(e=>{let t={...(0,eb.createChangeEventDetails)(Q.REASONS.itemPress,e.nativeEvent),preventUnmountOnClose:()=>{}};p?.(!E,t),t.isCanceled||S(e=>!e)}),T=(0,K.useRenderElement)("div",e,{state:k,stateAttributesMapping:ex,props:[y,{role:"menuitemcheckbox","aria-checked":E,onClick:w},m,R],ref:[C,t,g.ref]});return(0,a.jsx)(ea.Provider,{value:k,children:T})});var eE=e.i(88841),eS=e.i(89269);let eR=o.forwardRef(function(e,t){let{render:n,className:r,keepMounted:a=!1,...s}=e,i=function(){let e=o.useContext(ea);if(void 0===e)throw Error((0,W.default)(30));return e}(),l=o.useRef(null),{transitionStatus:u,setMounted:c}=(0,eE.useTransitionStatus)(i.checked);(0,eS.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,K.useRenderElement)("span",e,{state:d,ref:[t,l],stateAttributesMapping:ex,props:{"aria-hidden":!0,...s},enabled:a||i.checked})}),eC=o.createContext(void 0),ek=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,K.useRenderElement)("div",e,{ref:t,props:{role:"group","aria-labelledby":i,...s}});return(0,a.jsx)(eC.Provider,{value:u,children:c})}),ew=o.forwardRef(function(e,t){let{className:n,render:r,id:a,...s}=e,i=(0,eh.useBaseUiId)(a),{setLabelId:l}=function(){let e=o.useContext(eC);if(void 0===e)throw Error((0,W.default)(31));return e}();return(0,ef.useIsoLayoutEffect)(()=>(l(i),()=>{l(void 0)}),[l,i]),(0,K.useRenderElement)("div",e,{ref:t,props:{id:i,role:"presentation",...s}})}),eT=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=eg({label:o}),d=z(!0),f=(0,eh.useBaseUiId)(a),{store:p}=$(),m=p.useState("isActive",c.index),g=p.useState("itemProps"),{getItemProps:h,itemRef:v}=ed({closeOnClick:l,disabled:i,highlighted:m,id:f,store:p,nativeButton:s,nodeId:d?.nodeId,itemMetadata:ec});return(0,K.useRenderElement)("div",e,{state:{disabled:i,highlighted:m},props:[g,u,h],ref:[v,t,c.ref]})}),eI=o.forwardRef(function(e,t){let{render:n,className:r,id:a,label:s,closeOnClick:i=!1,...l}=e,u=o.useRef(null),c=eg({label:s}),d=z(!0),f=d?.nodeId,p=(0,eh.useBaseUiId)(a),{store:m}=$(),g=m.useState("isActive",c.index),h=m.useState("itemProps"),v=m.context.typingRef,{getButtonProps:x,buttonRef:b}=(0,es.useButton)({native:!1,composite:!0}),y=eu({closeOnClick:i,highlighted:g,id:p,nodeId:f,store:m,typingRef:v,itemRef:u}),E=o.useMemo(()=>({highlighted:g}),[g]);return(0,K.useRenderElement)("a",e,{state:E,props:[h,l,function(e){return(0,ei.mergeProps)(y,e,x)}],ref:[u,b,t,c.ref]})});var eO=e.i(88306),eN=e.i(61896),eM=e.i(60752),ej=e.i(92238),eA=e.i(18847);let eP={...Y.popupStateMapping,...J.transitionStatusMapping},eL=o.forwardRef(function(e,t){let{render:n,className:r,finalFocus:s,...i}=e,{store:l}=$(),{side:u,align:c}=z(),d=null!=(0,eM.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"),E=l.useState("floatingRootContext"),S=l.useState("floatingTreeRoot"),R=l.useState("closeDelay"),C=l.useState("activeTriggerElement"),k="context-menu"===x.type;(0,eS.useOpenChangeComplete)({open:f,ref:l.context.popupRef,onComplete(){f&&l.context.onOpenChangeComplete?.(!0)}}),o.useEffect(()=>{function e(e){l.setOpen(!1,(0,eb.createChangeEventDetails)(e.reason,e.domEvent))}return S.events.on("close",e),()=>{S.events.off("close",e)}},[S.events,l]);let w=l.useState("hoverEnabled"),T=l.useState("disabled");(0,eN.useHoverFloatingInteraction)(E,{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,K.useRenderElement)("div",e,{state:I,ref:[t,l.context.popupRef,O],stateAttributesMapping:eP,props:[m,{onKeyDown(e){d&&ej.COMPOSITE_KEYS.has(e.key)&&e.stopPropagation()}},(0,eA.getDisabledMountTransitionStyles)(p),i,{"data-rootownerid":y}]}),M=void 0===x.type||k;return(v||"menubar"===x.type&&b!==Q.REASONS.outsidePress)&&(M=!0),(0,a.jsx)(eO.FloatingFocusManager,{context:E,modal:k,disabled:!g,returnFocus:void 0===s?M:s,initialFocus:"menu"!==x.type,restoreFocus:!0,externalTree:"menubar"!==x.type?S: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 eD=e.i(37692);let eF=o.createContext(void 0),e_=o.forwardRef(function(e,t){let{keepMounted:n=!1,...r}=e,{store:o}=$();return o.useState("mounted")||n?(0,a.jsx)(eF.Provider,{value:n,children:(0,a.jsx)(eD.FloatingPortal,{ref:t,...r})}):null});var eU=e.i(58130),eB=e.i(66745),eH=e.i(51665),eW=e.i(56590),eV=e.i(30628);function ez(e){let{children:t,elementsRef:n,labelsRef:r,onMapChange:s}=e,i=(0,en.useStableCallback)(s),l=o.useRef(0),u=(0,eV.useRefWithInit)(e$).current,c=(0,eV.useRefWithInit)(eG).current,[d,f]=o.useState(0),p=o.useRef(d),m=(0,en.useStableCallback)((e,t)=>{c.set(e,t??null),p.current+=1,f(p.current)}),g=(0,en.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(eK).forEach((t,n)=>{let r=c.get(t)??{};e.set(t,{...r,index:n})}),e},[c,d]);(0,ef.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,ef.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,ef.useIsoLayoutEffect)(()=>()=>{n.current=[]},[n]),(0,ef.useIsoLayoutEffect)(()=>()=>{r&&(r.current=[])},[r]);let v=(0,en.useStableCallback)(e=>(u.add(e),()=>{u.delete(e)}));(0,ef.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)(ep.Provider,{value:x,children:t})}function eG(){return new Map}function e$(){return new Set}function eK(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 eY=e.i(36893),eq=e.i(7335),eJ=e.i(67569),eX=e.i(77817);let eZ=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}=$(),y=function(){let e=o.useContext(eF);if(void 0===e)throw Error((0,W.default)(32));return e}(),E=Z(!0),S=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"),M=b.useState("instantType"),j=b.useState("hasViewport"),A=b.useState("lastOpenChangeReason"),P=b.useState("floatingNodeId"),L=b.useState("floatingParentNodeId"),D=R.useState("domReferenceElement"),F=o.useRef(null),_=(0,eX.useAnimationsFinished)(N,!1,!1),U=n,B=c,H=d,z=u,G=v;"context-menu"===S.type&&(U=n??S.context?.anchor,z=z??"start",l||"center"===z||(H=e.alignOffset??2,B=e.sideOffset??-5));let q=l,J=z;"menu"===S.type?(q=q??"inline-end",J=J??"start",G=e.collisionAvoidance??eq.POPUP_COLLISION_AVOIDANCE):"menubar"===S.type&&(q=q??"bottom",J=J??"start");let X="context-menu"===S.type,ee=(0,eW.useAnchorPositioning)({anchor:U,floatingRootContext:R,positionMethod:E?"fixed":r,mounted:k,side:q,sideOffset:B,align:J,alignOffset:H,arrowPadding:X?0:m,collisionBoundary:f,collisionPadding:p,sticky:g,nodeId:P,keepMounted:y,disableAnchorTracking:h,collisionAvoidance:G,shiftCrossAxis:X&&!("side"in G&&"flip"===G.side),externalTree:C,adaptiveOrigin:j?eJ.adaptiveOrigin:void 0}),et=o.useMemo(()=>{let e={};return w||(e.pointerEvents="none"),{role:"presentation",hidden:!k,style:{...ee.positionerStyles,...e}}},[w,k,ee.positionerStyles]);o.useEffect(()=>{function e(e){e.open&&(e.parentNodeId===P&&b.set("hoverEnabled",!1),e.nodeId!==P&&e.parentNodeId===b.select("floatingParentNodeId")&&b.setOpen(!1,(0,eb.createChangeEventDetails)(Q.REASONS.siblingOpen)))}return C.events.on("menuopenchange",e),()=>{C.events.off("menuopenchange",e)}},[b,C.events,P]),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??Q.REASONS.siblingOpen;b.setOpen(!1,(0,eb.createChangeEventDetails)(t))}},[C.events,b]);let en=(0,eB.useTimeout)();o.useEffect(()=>{w||en.clear()},[w,en]),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?en.isStarted()||en.start(e,()=>{b.setOpen(!1,(0,eb.createChangeEventDetails)(Q.REASONS.siblingOpen))}):b.setOpen(!1,(0,eb.createChangeEventDetails)(Q.REASONS.siblingOpen))}else en.clear()}return C.events.on("itemhover",e),()=>{C.events.off("itemhover",e)}},[C.events,w,I,b,en]),o.useEffect(()=>{let e={open:w,nodeId:P,parentNodeId:L,reason:b.select("lastOpenChangeReason")};C.events.emit("menuopenchange",e)},[C.events,w,b,P,L]),(0,ef.useIsoLayoutEffect)(()=>{let e=F.current;if(D&&(F.current=D),e&&D&&D!==e){b.set("instantType",void 0);let e=new AbortController;return _(()=>{b.set("instantType","trigger-change")},e.signal),()=>{e.abort()}}},[D,_,b]);let er={open:w,side:ee.side,align:ee.align,anchorHidden:ee.anchorHidden,nested:"menu"===S.type,instant:M},ea=o.useMemo(()=>({side:ee.side,align:ee.align,arrowRef:ee.arrowRef,arrowUncentered:ee.arrowUncentered,arrowStyles:ee.arrowStyles,nodeId:ee.context.nodeId}),[ee.side,ee.align,ee.arrowRef,ee.arrowUncentered,ee.arrowStyles,ee.context.nodeId]),eo=(0,K.useRenderElement)("div",e,{state:er,stateAttributesMapping:Y.popupStateMapping,ref:[t,b.useStateSetter("positionerElement")],props:[et,(0,eA.getDisabledMountTransitionStyles)(O),x]}),es=k&&"menu"!==S.type&&("menubar"!==S.type&&T&&A!==Q.REASONS.triggerHover||"menubar"===S.type&&S.context.modal),ei=null;return"menubar"===S.type?ei=S.context.contentElement:void 0===S.type&&(ei=I),(0,a.jsxs)(V.Provider,{value:ea,children:[es&&(0,a.jsx)(eY.InternalBackdrop,{ref:"context-menu"===S.type||"nested-context-menu"===S.type?S.context.internalBackdropRef:null,inert:(0,eU.inertValue)(!w),cutout:ei}),(0,a.jsx)(eH.FloatingNode,{id:P,children:(0,a.jsx)(ez,{elementsRef:b.context.itemDomElements,labelsRef:b.context.itemLabels,children:eo})})]})}),eQ=o.createContext(void 0),e0=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,er.useControlled)({controlled:s,default:i,name:"MenuRadioGroup"}),p=(0,en.useStableCallback)(l),m=(0,en.useStableCallback)((e,t)=>{p?.(e,t),t.isCanceled||f(e)}),g=(0,K.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)(eQ.Provider,{value:h,children:g})})),e1=o.createContext(void 0),e2=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=eg({label:i}),m=z(!0),g=(0,eh.useBaseUiId)(s),{store:h}=$(),v=h.useState("isActive",p.index),x=h.useState("itemProps"),{value:b,setValue:y,disabled:E}=function(){let e=o.useContext(eQ);if(void 0===e)throw Error((0,W.default)(34));return e}(),S=E||u,R=b===d,{getItemProps:C,itemRef:k}=ed({closeOnClick:c,disabled:S,highlighted:v,id:g,store:h,nativeButton:l,nodeId:m?.nodeId,itemMetadata:ec}),w=o.useMemo(()=>({disabled:S,highlighted:v,checked:R}),[S,v,R]),T=(0,en.useStableCallback)(e=>{y(d,{...(0,eb.createChangeEventDetails)(Q.REASONS.itemPress,e.nativeEvent),preventUnmountOnClose:()=>{}})}),I=(0,K.useRenderElement)("div",e,{state:w,stateAttributesMapping:ex,props:[x,{role:"menuitemradio","aria-checked":R,onClick:T},f,C],ref:[k,t,p.ref]});return(0,a.jsx)(e1.Provider,{value:w,children:I})}),e4=o.forwardRef(function(e,t){let{render:n,className:r,keepMounted:a=!1,...s}=e,i=function(){let e=o.useContext(e1);if(void 0===e)throw Error((0,W.default)(35));return e}(),l=o.useRef(null),{transitionStatus:u,setMounted:c}=(0,eE.useTransitionStatus)(i.checked);(0,eS.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,K.useRenderElement)("span",e,{state:d,stateAttributesMapping:ex,ref:[t,l],props:{"aria-hidden":!0,...s},enabled:a||i.checked})});var e5=e.i(83799),e3=e.i(58509),e9=e.i(66196),e6=e.i(17514),e8=e.i(3851),e7=e.i(33605),te=e.i(89633),tt=e.i(29315),tn=e.i(231),tr=e.i(90219),ta=e.i(47857),to=e.i(82033),ts=e.i(43801),ti=e.i(98442),tl=e.i(494);function tu(e,t,n){switch(e){case"vertical":return t;case"horizontal":return n;default:return t||n}}function tc(e,t){return tu(t,e===tl.ARROW_UP||e===tl.ARROW_DOWN,e===tl.ARROW_LEFT||e===tl.ARROW_RIGHT)}function td(e,t,n){return tu(t,e===tl.ARROW_DOWN,n?e===tl.ARROW_LEFT:e===tl.ARROW_RIGHT)||"Enter"===e||" "===e||""===e}var tf=e.i(26665),tp=e.i(6157);let tm=o.createContext(null);function tg(e){let t=o.useContext(tm);if(null===t&&!e)throw Error((0,W.default)(5));return t}var th=e.i(79144),tv=e.i(50091),tx=e.i(83921),tb=e.i(98263),ty=e.i(89429),tE=e.i(628),tS=e.i(69375);let tR={...tE.popupStoreSelectors,disabled:(0,tx.createSelector)(e=>"menubar"===e.parent.type&&e.parent.context.disabled||e.disabled),modal:(0,tx.createSelector)(e=>(void 0===e.parent.type||"context-menu"===e.parent.type)&&(e.modal??!0)),allowMouseEnter:(0,tx.createSelector)(e=>e.allowMouseEnter),stickIfOpen:(0,tx.createSelector)(e=>e.stickIfOpen),parent:(0,tx.createSelector)(e=>e.parent),rootId:(0,tx.createSelector)(e=>"menu"===e.parent.type?e.parent.store.select("rootId"):void 0!==e.parent.type?e.parent.context.rootId:e.rootId),activeIndex:(0,tx.createSelector)(e=>e.activeIndex),isActive:(0,tx.createSelector)((e,t)=>e.activeIndex===t),hoverEnabled:(0,tx.createSelector)(e=>e.hoverEnabled),instantType:(0,tx.createSelector)(e=>e.instantType),lastOpenChangeReason:(0,tx.createSelector)(e=>e.openChangeReason),floatingTreeRoot:(0,tx.createSelector)(e=>"menu"===e.parent.type?e.parent.store.select("floatingTreeRoot"):e.floatingTreeRoot),floatingNodeId:(0,tx.createSelector)(e=>e.floatingNodeId),floatingParentNodeId:(0,tx.createSelector)(e=>e.floatingParentNodeId),itemProps:(0,tx.createSelector)(e=>e.itemProps),closeDelay:(0,tx.createSelector)(e=>e.closeDelay),hasViewport:(0,tx.createSelector)(e=>e.hasViewport),keyboardEventRelay:(0,tx.createSelector)(e=>e.keyboardEventRelay?e.keyboardEventRelay:"menu"===e.parent.type?e.parent.store.select("keyboardEventRelay"):void 0)};class tC extends tb.ReactStore{constructor(e){super({...{...(0,tE.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 ty.FloatingTreeStore,floatingNodeId:void 0,floatingParentNodeId:null,itemProps:e6.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 tS.PopupTriggerMap},tR),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,eV.useRefWithInit)(()=>new tC(t)).current;return e??n}unsubscribeParentListener=null}var tk=e.i(58642);let tw=o.createContext(void 0);function tT(){return o.useContext(tw)}let tI=(0,e8.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=Z(!0),E=$(!0),S=tg(!0),R=tT(),C=o.useMemo(()=>R&&E?{type:"menu",store:E.store}:S?{type:"menubar",context:S}:y&&!E?{type:"context-menu",context:y}:{type:void 0},[y,E,S,R]),k=tC.useStore(h?.store,{open:u,openProp:s,activeTriggerId:x,triggerIdProp:v,parent:C});(0,e3.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,eH.useFloatingNodeId)(w),I=(0,eH.useFloatingParentNodeId)();(0,ef.useIsoLayoutEffect)(()=>{y&&!E?k.update({parent:{type:"context-menu",context:y},floatingNodeId:T,floatingParentNodeId:I}):E&&k.update({floatingNodeId:T,floatingParentNodeId:I})},[y,E,T,I,k]);let O=k.useState("open"),N=k.useState("activeTriggerElement"),M=k.useState("positionerElement"),j=k.useState("hoverEnabled"),A=k.useState("modal"),P=k.useState("disabled"),L=k.useState("lastOpenChangeReason"),D=k.useState("parent"),F=k.useState("activeIndex"),_=k.useState("payload"),U=k.useState("floatingParentNodeId"),B=o.useRef(null),H=null!=U;k.useSyncedValues({disabled:c,modal:void 0===D.type?d:void 0,rootId:(0,e5.useId)()});let{openMethod:W,triggerProps:V}=(0,tv.useOpenInteractionType)(O);(0,tk.useImplicitActiveTrigger)(k);let{forceUnmount:z}=(0,tk.useOpenStateTransitions)(O,k,()=>{k.update({allowMouseEnter:!1,stickIfOpen:!0})}),K=o.useRef("context-menu"!==D.type),Y=(0,eB.useTimeout)();o.useEffect(()=>{if(O||(B.current=null),"context-menu"===D.type){if(!O){Y.clear(),K.current=!1;return}Y.start(500,()=>{K.current=!0})}},[Y,O,D.type]),(0,e9.useScrollLock)(O&&A&&L!==Q.REASONS.triggerHover&&"touch"!==W,M),(0,ef.useIsoLayoutEffect)(()=>{O||j||k.set("hoverEnabled",!0)},[O,j,k]);let q=o.useRef(!0),J=(0,eB.useTimeout)(),X=(0,en.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:H};t?.emit("openchange",a);let o=n.event;if(!1===e&&o?.type==="click"&&"touch"===o.pointerType&&!q.current)return;if(!e&&null!==F){let e=k.context.itemDomElements.current[F];queueMicrotask(()=>{e?.setAttribute("tabindex","-1")})}e&&r===Q.REASONS.triggerFocus?(q.current=!1,J.start(300,()=>{q.current=!0})):(q.current=!0,J.clear());let s=(r===Q.REASONS.triggerPress||r===Q.REASONS.itemPress)&&0===o.detail&&o?.isTrusted,l=!e&&(r===Q.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===Q.REASONS.triggerFocus||r===Q.REASONS.focusOut||r===Q.REASONS.triggerHover||r===Q.REASONS.listNavigation||r===Q.REASONS.siblingOpen)?k.set("instantType","group"):s||l?k.set("instantType",s?"click":"dismiss"):k.set("instantType",void 0)}),ee=o.useCallback(e=>{let t=(0,eb.createChangeEventDetails)(e);return t.preventUnmountOnClose=()=>{k.set("preventUnmountingOnClose",!0)},t},[k]),et=o.useCallback(()=>{k.setOpen(!1,ee(Q.REASONS.imperativeAction))},[k,ee]);o.useImperativeHandle(m,()=>({unmount:z,close:et}),[z,et]),"context-menu"===D.type&&(n=D.context),o.useImperativeHandle(n?.positionerRef,()=>M,[M]),o.useImperativeHandle(n?.actionsRef,()=>({setOpen:X}),[X]);let er=(0,tp.useSyncedFloatingRootContext)({popupStore:k,onOpenChange:X});t=er.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 ea=(0,e7.useDismiss)(er,{enabled:!P,bubbles:{escapeKey:g&&"menu"===D.type},outsidePress:()=>"context-menu"!==D.type||B.current?.type==="contextmenu"||K.current,externalTree:H?w:void 0}),eo=(0,tf.useRole)(er,{role:"menu"}),es=(0,th.useDirection)(),el=o.useCallback(e=>{k.select("activeIndex")!==e&&k.set("activeIndex",e)},[k]),eu=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:E,orientation:S="vertical",parentOrientation:R,cols:C=1,id:k,resetOnPointerLeave:w=!0,externalTree:T}=t,I=(0,ta.getFloatingFocusElement)(a),O=(0,tn.useValueAsRef)(I),N=(0,eH.useFloatingParentNodeId)(),M=(0,eH.useFloatingTree)(T);(0,ef.useIsoLayoutEffect)(()=>{i.current.orientation=S},[i,S]);let j=(0,ta.isTypeableCombobox)(s),A=o.useRef(x),P=o.useRef(f??-1),L=o.useRef(null),D=o.useRef(!0),F=(0,en.useStableCallback)(e=>{c(-1===P.current?null:P.current,e)}),_=o.useRef(F),U=o.useRef(!!a),B=o.useRef(r),H=o.useRef(!1),W=o.useRef(!1),V=(0,tn.useValueAsRef)(E),z=(0,tn.useValueAsRef)(r),G=(0,tn.useValueAsRef)(f),$=(0,tn.useValueAsRef)(w),K=(0,en.useStableCallback)(()=>{function e(e){v?M?.events.emit("virtualfocus",e):(0,ti.enqueueFocus)(e,{sync:H.current,preventScroll:!0})}let t=l.current[P.current],n=W.current;t&&e(t),(H.current?e=>e():requestAnimationFrame)(()=>{let r=l.current[P.current]||t;!r||(t||e(r),q&&(n||!D.current)&&r.scrollIntoView?.({block:"nearest",inline:"nearest"}))})});(0,ef.useIsoLayoutEffect)(()=>{d&&(r&&a?(P.current=f??-1,A.current&&null!=f&&(W.current=!0,F())):U.current&&(P.current=-1,_.current()))},[d,r,a,f,F]),(0,ef.useIsoLayoutEffect)(()=>{if(d){if(!r){H.current=!1;return}if(a)if(null==u){if(H.current=!1,null!=G.current)return;if(U.current&&(P.current=-1,K()),(!B.current||!U.current)&&A.current&&(null!=L.current||!0===A.current&&null==L.current)){let e=0,t=()=>{null==l.current[0]?(e<2&&(e?requestAnimationFrame:queueMicrotask)(t),e+=1):(P.current=null==L.current||td(L.current,S,h)||g?(0,ts.getMinListIndex)(l):(0,ts.getMaxListIndex)(l),L.current=null,F())};t()}}else(0,ts.isIndexOutOfListBounds)(l,u)||(P.current=u,K(),W.current=!1)}},[d,r,a,u,G,g,l,S,h,F,K,V]),(0,ef.useIsoLayoutEffect)(()=>{if(!d||a||!M||v||!U.current)return;let e=M.nodesRef.current,t=e.find(e=>e.id===N)?.context?.elements.floating,n=(0,ta.activeElement)((0,tr.ownerDocument)(a)),r=e.some(e=>e.context&&(0,ta.contains)(e.context.elements.floating,n));t&&!r&&D.current&&t.focus({preventScroll:!0})},[d,a,M,N,v]),(0,ef.useIsoLayoutEffect)(()=>{_.current=F,B.current=r,U.current=!!a}),(0,ef.useIsoLayoutEffect)(()=>{r||(L.current=null,A.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&&P.current!==t&&(P.current=t,F(e))}return{onFocus(t){H.current=!0,e(t)},onClick:({currentTarget:e})=>e.focus({preventScroll:!0}),onMouseMove(t){H.current=!0,W.current=!1,b&&e(t)},onPointerLeave(e){if(!z.current||!D.current||"touch"===e.pointerType)return;H.current=!0;let t=e.relatedTarget;if(!(!b||l.current.includes(t))&&$.current&&((0,ti.enqueueFocus)(null,{sync:!0}),P.current=-1,F(e),!v)){let e=O.current,t=(0,ta.activeElement)((0,tr.ownerDocument)(e));e&&(0,ta.contains)(e,t)&&e.focus({preventScroll:!0})}}}},[z,O,b,l,F,$,v]),J=o.useCallback(()=>R??M?.nodesRef.current.find(e=>e.id===N)?.context?.dataRef?.current.orientation,[N,M,R]),X=(0,en.useStableCallback)(e=>{var t;let a,o;if(D.current=!1,H.current=!0,229===e.which||!z.current&&e.currentTarget===O.current)return;if(g&&(t=e.key,a=h?t===tl.ARROW_RIGHT:t===tl.ARROW_LEFT,o=t===tl.ARROW_UP,"both"===S||"horizontal"===S&&C&&C>1?"Escape"===t:tu(S,a,o))){tc(e.key,J())||(0,to.stopEvent)(e),n.setOpen(!1,(0,eb.createChangeEventDetails)(Q.REASONS.listNavigation,e.nativeEvent)),(0,tt.isHTMLElement)(s)&&(v?M?.events.emit("virtualfocus",s):s.focus());return}let i=P.current,u=(0,ts.getMinListIndex)(l,E),c=(0,ts.getMaxListIndex)(l,E);if(j||("Home"===e.key&&((0,to.stopEvent)(e),P.current=u,F(e)),"End"===e.key&&((0,to.stopEvent)(e),P.current=c,F(e))),C>1){let t=Array.from({length:l.current.length},()=>({width:1,height:1})),n=(0,ts.createGridCellMap)(t,C,!1),r=n.findIndex(e=>null!=e&&!(0,ts.isListIndexDisabled)(l,e,E)),a=n.reduce((e,t,n)=>null==t||(0,ts.isListIndexDisabled)(l,t,E)?e:n,-1),o=n[(0,ts.getGridNavigatedIndex)({current:n.map(e=>null!=e?l.current[e]:null)},{event:e,orientation:S,loopFocus:m,rtl:h,cols:C,disabledIndices:(0,ts.getGridCellIndices)([...("function"!=typeof E?E:null)||l.current.map((e,t)=>(0,ts.isListIndexDisabled)(l,t,E)?t:void 0),void 0],n),minIndex:r,maxIndex:a,prevIndex:(0,ts.getGridCellIndexOfCorner)(P.current>c?u:P.current,t,n,C,e.key===tl.ARROW_DOWN?"bl":e.key===(h?tl.ARROW_LEFT:tl.ARROW_RIGHT)?"tr":"tl"),stopEvent:!0})];if(null!=o&&(P.current=o,F(e)),"both"===S)return}if(tc(e.key,S)){if((0,to.stopEvent)(e),r&&!v&&(0,ta.activeElement)(e.currentTarget.ownerDocument)===e.currentTarget){P.current=td(e.key,S,h)?u:c,F(e);return}td(e.key,S,h)?m?i>=c?p&&i!==l.current.length?P.current=-1:(H.current=!1,P.current=u):P.current=(0,ts.findNonDisabledListIndex)(l,{startingIndex:i,disabledIndices:E}):P.current=Math.min(c,(0,ts.findNonDisabledListIndex)(l,{startingIndex:i,disabledIndices:E})):m?i<=u?p&&-1!==i?P.current=l.current.length:(H.current=!1,P.current=c):P.current=(0,ts.findNonDisabledListIndex)(l,{startingIndex:i,decrement:!0,disabledIndices:E}):P.current=Math.max(u,(0,ts.findNonDisabledListIndex)(l,{startingIndex:i,decrement:!0,disabledIndices:E})),(0,ts.isIndexOutOfListBounds)(l,P.current)&&(P.current=-1),F(e)}}),Z=o.useMemo(()=>v&&r&&Y&&{"aria-activedescendant":`${k}-${u}`},[v,r,Y,k,u]),ee=o.useMemo(()=>({"aria-orientation":"both"===S?void 0:S,...!j?Z:{},onKeyDown(e){if("Tab"===e.key&&e.shiftKey&&r&&!v){let t=(0,ta.getTarget)(e.nativeEvent);if(t&&!(0,ta.contains)(O.current,t))return;(0,to.stopEvent)(e),n.setOpen(!1,(0,eb.createChangeEventDetails)(Q.REASONS.focusOut,e.nativeEvent)),(0,tt.isHTMLElement)(s)&&s.focus();return}X(e)},onPointerMove(){D.current=!0}}),[Z,X,O,S,j,n,r,v,s]),et=o.useMemo(()=>{function e(e){"auto"===x&&(0,to.isVirtualClick)(e.nativeEvent)&&(A.current=!v)}function t(e){A.current=x,"auto"===x&&(0,to.isVirtualPointerEvent)(e.nativeEvent)&&(A.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(),tu(r,h?t===tl.ARROW_LEFT:t===tl.ARROW_RIGHT,t===tl.ARROW_DOWN)),i=tc(e.key,S),u=(g?s:i)||"Enter"===e.key||""===e.key.trim();if(v&&a)return X(e);if(a||y||!o){if(u){let t=tc(e.key,J());L.current=g&&t?null:e.key}if(g){s&&((0,to.stopEvent)(e),a?(P.current=(0,ts.getMinListIndex)(l,V.current),F(e)):n.setOpen(!0,(0,eb.createChangeEventDetails)(Q.REASONS.listNavigation,e.nativeEvent,e.currentTarget)));return}i&&(null!=G.current&&(P.current=G.current),(0,to.stopEvent)(e),!a&&y?n.setOpen(!0,(0,eb.createChangeEventDetails)(Q.REASONS.listNavigation,e.nativeEvent,e.currentTarget)):X(e),a&&F(e))}},onFocus(e){n.select("open")&&!v&&(P.current=-1,F(e))},onPointerDown:t,onPointerEnter:t,onMouseDown:e,onClick:e}},[X,V,x,l,g,F,n,y,S,J,h,G,v]),er=o.useMemo(()=>({...Z,...et}),[Z,et]);return o.useMemo(()=>d?{reference:er,floating:ee,item:q,trigger:et}:{},[d,er,ee,et,q])}(er,{enabled:!P,listRef:k.context.itemDomElements,activeIndex:F,nested:void 0!==D.type,loopFocus:f,orientation:p,parentOrientation:"menubar"===D.type?D.context.orientation:void 0,rtl:"rtl"===es,disabledIndices:e6.EMPTY_ARRAY,onNavigate:el,openOnArrowKeyDown:"context-menu"!==D.type,externalTree:H?w:void 0,focusItemOnHover:b}),ec=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,eB.useTimeout)(),g=o.useRef(""),h=o.useRef(p??l??-1),v=o.useRef(null);(0,ef.useIsoLayoutEffect)(()=>{(a||null===p)&&(m.clear(),v.current=null,""!==g.current&&(g.current=""))},[a,p,m]),(0,ef.useIsoLayoutEffect)(()=>{a&&""===g.current&&(h.current=p??l??-1)},[a,p,l]);let x=(0,en.useStableCallback)(e=>{e?r.current.typing||(r.current.typing=e,c?.(e)):r.current.typing&&(r.current.typing=e,c?.(e))}),b=(0,en.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,ts.isElementVisible)(t)}(n))return n}return -1}let n=s.current;if(g.current.length>0&&" "===e.key&&((0,to.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,to.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,en.useStableCallback)(e=>{let t=e.relatedTarget,r=n.select("domReferenceElement"),a=n.select("floatingElement"),o=(0,ta.contains)(r,t),s=(0,ta.contains)(a,t);o||s||(m.clear(),g.current="",h.current=v.current,x(!1))}),E=o.useMemo(()=>({onKeyDown:b,onBlur:y}),[b,y]),S=o.useMemo(()=>({onKeyDown:b,onBlur:y}),[b,y]);return o.useMemo(()=>d?{reference:E,floating:S}:{},[d,E,S])}(er,{listRef:k.context.itemLabels,elementsRef:k.context.itemDomElements,activeIndex:F,resetMs:eq.TYPEAHEAD_RESET_MS,onMatch:e=>{O&&e!==F&&k.set("activeIndex",e)},onTypingChange:ec}),{getReferenceProps:ep,getFloatingProps:em,getItemProps:eg,getTriggerProps:eh}=(0,te.useInteractions)([ea,eo,eu,ed]),ev=o.useMemo(()=>{let e=(0,ei.mergeProps)(ep(),{onMouseMove(){k.set("allowMouseEnter",!0)}},V);return delete e.role,e},[ep,k,V]),ex=o.useMemo(()=>{let e=eh();if(!e)return e;let t=(0,ei.mergeProps)(e,V);return delete t.role,delete t["aria-controls"],t},[eh,V]),ey=o.useMemo(()=>em({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)}}),[em,D.type,k]),eE=o.useMemo(()=>eg(),[eg]);k.useSyncedValues({floatingRootContext:er,activeTriggerProps:ev,inactiveTriggerProps:ex,popupProps:ey,itemProps:eE});let eS=o.useMemo(()=>({store:k,parent:C}),[k,C]),eR=(0,a.jsx)(G.Provider,{value:eS,children:"function"==typeof r?r({payload:_}):r});return void 0===D.type||"context-menu"===D.type?(0,a.jsx)(eH.FloatingTree,{externalTree:w,children:eR}):eR});var tO=e.i(74080),tN=e.i(37287),tM=e.i(4012),tj=e.i(32652);let tA=el.isMac&&el.isSafari;var tP=e.i(97254),tL=e.i(59266),tD=e.i(54694);function tF(e){let{render:t,className:n,state:r=e6.EMPTY_OBJECT,props:a=e6.EMPTY_ARRAY,refs:s=e6.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,tD.useCompositeRootContext)(),{ref:a,index:s}=eg(e),i=n===s,l=o.useRef(null),u=(0,eo.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,K.useRenderElement)(u,e,{state:r,ref:[...s,f],props:[d,...a,c],stateAttributesMapping:l})}var t_=e.i(72408);let tU=(0,e8.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=$(!0),b=g?.store??x?.store;if(!b)throw Error((0,W.default)(85));let y=(0,eh.useBaseUiId)(d),E=b.useState("isTriggerActive",y),S=b.useState("floatingRootContext"),R=b.useState("isOpenedByTrigger",y),C=o.useRef(null),k=(n=Z(!0),r=$(!0),s=tg(!0),o.useMemo(()=>s?{type:"menubar",context:s}:n&&!r?{type:"context-menu",context:n}:{type:void 0},[n,r,s])),w=(0,tD.useCompositeRootContext)(!0),T=(0,eH.useFloatingTree)(),I=o.useMemo(()=>T??new ty.FloatingTreeStore,[T]),O=(0,eH.useFloatingNodeId)(I),N=(0,eH.useFloatingParentNodeId)(),{registerTrigger:M,isMountedByThisTrigger:j}=(0,tk.useTriggerDataForwarding)(y,C,b,{payload:h,closeDelay:m,parent:k,floatingTreeRoot:I,floatingNodeId:O,floatingParentNodeId:N,keyboardEventRelay:w?.relayKeyboardEvent}),A="menubar"===k.type,P=b.useState("disabled"),L=u||P||A&&k.context.disabled,{getButtonProps:D,buttonRef:F}=(0,es.useButton)({disabled:L,native:c});o.useEffect(()=>{R||void 0!==k.type||(b.context.allowMouseUpTriggerRef.current=!1)},[b,R,k.type]);let _=o.useRef(null),U=(0,eB.useTimeout)(),B=(0,en.useStableCallback)(e=>{if(!_.current)return;U.clear(),b.context.allowMouseUpTriggerRef.current=!1;let t=e.target;if((0,ta.contains)(_.current,t)||(0,ta.contains)(b.select("positionerElement"),t)||t===_.current||null!=t&&function e(t){return(0,tt.isHTMLElement)(t)&&t.hasAttribute("data-rootownerid")?t.getAttribute("data-rootownerid")??void 0:(0,tt.isLastTraversableNode)(t)?void 0:e((0,tt.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}}(_.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:Q.REASONS.cancelOpen})});o.useEffect(()=>{R&&b.select("lastOpenChangeReason")===Q.REASONS.triggerHover&&(0,tr.ownerDocument)(_.current).addEventListener("mouseup",B,{once:!0})},[R,B,b]);let H=A&&k.context.hasSubmenuOpen,V=f??H,z=(0,tP.useHoverReferenceInteraction)(S,{enabled:V&&!L&&"context-menu"!==k.type&&(!A||H&&!j),handleClose:(0,tN.safePolygon)({blockPointerEvents:!A}),mouseOnly:!0,move:!1,restMs:void 0===k.type?p:void 0,delay:{close:m},triggerElementRef:C,externalTree:I,isActiveTrigger:E}),G=function(e,t){let n=(0,eB.useTimeout)(),[r,a]=o.useState(!1);return(0,ef.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")),q=(0,tM.useClick)(S,{enabled:!L&&"context-menu"!==k.type,event:R&&A?"click":"mousedown",toggle:!0,ignoreMouse:!1,stickIfOpen:void 0===k.type&&G}),J=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,eB.useTimeout)(),d=o.useRef(!0);o.useEffect(()=>{let e=n.select("domReferenceElement");if(!s)return;let t=(0,tt.getWindow)(e);function r(){let e=n.select("domReferenceElement");!n.select("open")&&(0,tt.isHTMLElement)(e)&&e===(0,ta.activeElement)((0,tr.ownerDocument)(e))&&(l.current=!0)}function a(){d.current=!0}function o(){d.current=!1}return t.addEventListener("blur",r),tA&&(t.addEventListener("keydown",a,!0),t.addEventListener("pointerdown",o,!0)),()=>{t.removeEventListener("blur",r),tA&&(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===Q.REASONS.triggerPress||e.reason===Q.REASONS.escapeKey){let e=n.select("domReferenceElement");(0,tt.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,ta.getTarget)(e.nativeEvent);if((0,tt.isElement)(r)){if(tA&&!e.relatedTarget){if(!d.current&&!(0,ta.isTypeableElement)(r))return}else if(!(0,ta.matchesFocusVisible)(r))return}let a=(0,ta.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,eb.createChangeEventDetails)(Q.REASONS.triggerFocus,o,s)):c.start(f,()=>{l.current||n.setOpen(!0,(0,eb.createChangeEventDetails)(Q.REASONS.triggerFocus,o,s))})},onBlur(e){l.current=!1,u.current=null;let t=e.relatedTarget,r=e.nativeEvent,o=(0,tt.isElement)(t)&&t.hasAttribute((0,tj.createAttribute)("focus-guard"))&&"outside"===t.getAttribute("data-type");c.start(0,()=>{let e=n.select("domReferenceElement"),s=(0,ta.activeElement)(e?e.ownerDocument:document);if(!t&&s===e||(0,ta.contains)(a.current.floatingContext?.refs.floating.current,s)||(0,ta.contains)(e,s)||o)return;let i=t??s;(0,ta.isTargetInsideEnabledTrigger)(i,n.context.triggerElements)||n.setOpen(!1,(0,eb.createChangeEventDetails)(Q.REASONS.triggerFocus,r))})}}),[a,n,c,i]);return o.useMemo(()=>s?{reference:f,trigger:f}:{},[s,f])}(S,{enabled:!L&&H}),X=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,tr.ownerDocument)(e.currentTarget).addEventListener("click",()=>{a.current=!1},{once:!0}))},onClick:e=>{a.current&&(a.current=!1,e.preventBaseUIHandler())}}:e6.EMPTY_OBJECT,[t,n,r])}({open:R,enabled:A,mouseDownAction:"open"}),ee=(0,te.useInteractions)([q,J]),et={disabled:L,open:R},er=b.useState("triggerProps",j),ea=[_,t,F,M,C],eo=[ee.getReferenceProps(),z??e6.EMPTY_OBJECT,er,{"aria-haspopup":"menu",id:y,onMouseDown:e=>{b.select("open")||(U.start(200,()=>{b.context.allowMouseUpTriggerRef.current=!0}),(0,tr.ownerDocument)(e.currentTarget).addEventListener("mouseup",B,{once:!0}))}},A?{role:"menuitem"}:{},X,v,D],ei=o.useRef(null),el=(0,en.useStableCallback)(e=>{tO.flushSync(()=>{b.setOpen(!1,(0,eb.createChangeEventDetails)(Q.REASONS.focusOut,e.nativeEvent,e.currentTarget))});let t=(0,tL.getTabbableBeforeElement)(ei.current);t?.focus()}),eu=(0,en.useStableCallback)(e=>{let t=b.select("positionerElement");if(t&&(0,tL.isOutsideEvent)(e,t))b.context.beforeContentFocusGuardRef.current?.focus();else{tO.flushSync(()=>{b.setOpen(!1,(0,eb.createChangeEventDetails)(Q.REASONS.focusOut,e.nativeEvent,e.currentTarget))});let n=(0,tL.getTabbableAfterElement)(b.context.triggerFocusTargetRef.current||C.current);for(;null!==n&&(0,ta.contains)(t,n);){let e=n;if((n=(0,tL.getNextTabbable)(n))===e)break}n?.focus()}}),ec=(0,K.useRenderElement)("button",e,{enabled:!A,stateAttributesMapping:Y.pressableTriggerOpenStateMapping,state:et,ref:ea,props:eo});return A?(0,a.jsx)(tF,{tag:"button",render:i,className:l,state:et,refs:ea,props:eo,stateAttributesMapping:Y.pressableTriggerOpenStateMapping}):R?(0,a.jsxs)(o.Fragment,{children:[(0,a.jsx)(t_.FocusGuard,{ref:ei,onFocus:el},`${y}-pre-focus-guard`),(0,a.jsx)(o.Fragment,{children:ec},y),(0,a.jsx)(t_.FocusGuard,{ref:b.context.triggerFocusTargetRef,onFocus:eu},`${y}-post-focus-guard`)]}):(0,a.jsx)(o.Fragment,{children:ec},y)});var tB=e.i(12666);let tH=((r={}).popupWidth="--popup-width",r.popupHeight="--popup-height",r),tW={activationDirection:e=>e?{"data-activation-direction":e}:null},tV=o.forwardRef(function(e,t){let{render:n,className:r,children:a,...o}=e,{store:s}=$(),{side:i}=z(),l=s.useState("instantType"),{children:u,state:c}=(0,tB.usePopupViewport)({store:s,side:i,cssVars:tH,children:a}),d={activationDirection:c.activationDirection,transitioning:c.transitioning,instant:l};return(0,K.useRenderElement)("div",e,{state:d,ref:t,props:[o,{children:u}],stateAttributesMapping:tW})}),tz=o.forwardRef(function(e,t){let{className:n,render:r,orientation:a="horizontal",...o}=e;return(0,K.useRenderElement)("div",e,{state:{orientation:a},ref:t,props:[{role:"separator","aria-orientation":a},o]})}),tG=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=eg(),m=z(),{store:g}=$(),h=(0,eh.useBaseUiId)(s),v=g.useState("open"),x=g.useState("floatingRootContext"),b=g.useState("floatingTreeRoot"),y=(0,tk.useTriggerRegistration)(h,g),E=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]),S=o.useRef(null),R=o.useCallback(e=>{S.current=e,g.set("activeTriggerElement",e)},[g]),C=tT();if(!C?.parentMenu)throw Error((0,W.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:M,itemRef:j}=ed({closeOnClick:!1,disabled:N,highlighted:T,id:h,store:g,typingRef:k.context.typingRef,nativeButton:i,itemMetadata:I,nodeId:m?.nodeId}),A=g.useState("hoverEnabled"),P=k.useState("allowMouseEnter"),L=(0,tP.useHoverReferenceInteraction)(x,{enabled:A&&l&&!N,handleClose:(0,tN.safePolygon)({blockPointerEvents:!0}),mouseOnly:!0,move:!0,restMs:u,delay:P?{open:u,close:c}:0,triggerElementRef:S,externalTree:b}),D=(0,tM.useClick)(x,{enabled:!N,event:"mousedown",toggle:!l,ignoreMouse:l,stickIfOpen:!1}),F=(0,te.useInteractions)([D]),_=g.useState("triggerProps",!0);return delete _.id,(0,K.useRenderElement)("div",e,{state:{disabled:N,highlighted:T,open:v},stateAttributesMapping:Y.triggerOpenStateMapping,props:[F.getReferenceProps(),L,_,w,{tabIndex:v||T?0:-1,onBlur(){T&&k.set("activeIndex",null)}},f,M],ref:[t,p.ref,j,E,R]})});class t${constructor(){this.store=new tC}open(e){let t=e?this.store.context.triggerElements.getById(e):void 0;if(e&&!t)throw Error((0,W.default)(83,e));this.store.setOpen(!0,(0,eb.createChangeEventDetails)("imperative-action",void 0,t))}close(){this.store.setOpen(!1,(0,eb.createChangeEventDetails)("imperative-action",void 0,void 0))}get isOpen(){return this.store.state.open}}e.s(["Arrow",0,q,"Backdrop",0,et,"CheckboxItem",0,ey,"CheckboxItemIndicator",0,eR,"Group",0,ek,"GroupLabel",0,ew,"Handle",0,t$,"Item",0,eT,"LinkItem",0,eI,"Popup",0,eL,"Portal",0,e_,"Positioner",0,eZ,"RadioGroup",0,e0,"RadioItem",0,e2,"RadioItemIndicator",0,e4,"Root",0,tI,"Separator",0,tz,"SubmenuRoot",0,function(e){let t=$().store,n=o.useMemo(()=>({parentMenu:t}),[t]);return(0,a.jsx)(tw.Provider,{value:n,children:(0,a.jsx)(tI,{...e})})},"SubmenuTrigger",0,tG,"Trigger",0,tU,"Viewport",0,tV,"createHandle",0,function(){return new t$}],30250);var tK=e.i(30250),tK=tK,tY=e.i(52088);function tq({...e}){return(0,a.jsx)(tK.Root,{"data-slot":"dropdown-menu",...e})}function tJ({...e}){return(0,a.jsx)(tK.Trigger,{"data-slot":"dropdown-menu-trigger",...e})}function tX({align:e="start",alignOffset:t=0,side:n="bottom",sideOffset:r=4,className:o,...s}){return(0,a.jsx)(tK.Portal,{children:(0,a.jsx)(tK.Positioner,{className:"isolate z-50 outline-none",align:e,alignOffset:t,side:n,sideOffset:r,children:(0,a.jsx)(tK.Popup,{"data-slot":"dropdown-menu-content",className:(0,tY.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 tZ({className:e,inset:t,variant:n="default",...r}){return(0,a.jsx)(tK.Item,{"data-slot":"dropdown-menu-item","data-inset":t,"data-variant":n,className:(0,tY.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 tQ({className:e,...t}){return(0,a.jsx)(tK.Separator,{"data-slot":"dropdown-menu-separator",className:(0,tY.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,x.useToast)(),[l,E]=(0,o.useState)(null),[S,R]=(0,o.useState)(!0),[C,k]=(0,o.useState)([]),[w,T]=(0,o.useState)(),[I,M]=(0,o.useState)(!0),[j,A]=(0,o.useState)(!1),[P,L]=(0,o.useState)(!1),[D,F]=(0,o.useState)(!0),_=(0,o.useRef)(null);(0,b.useDocumentTitle)(l?.title),(0,y.useTaskEvents)({onTaskCreated:()=>{},onTaskUpdated:e=>{e.id===t&&E(e)},onTaskDeleted:e=>{e===t&&(r.info("Task deleted",l?.title??void 0),n.push("/"))}});let U=(0,o.useCallback)(()=>{fetch((0,g.apiUrl)(`/api/tasks/${t}/read`),{method:"POST"}).catch(()=>{})},[t]),W=(0,o.useCallback)((e,t)=>{("success"===t||"failure"===t||"error"===t)&&U()},[U]),V=(0,o.useRef)(null),z=(0,o.useCallback)(async()=>{if(null!==V.current&&V.current!==t&&F(!0),V.current=t,D){M(!0);try{let e=await fetch((0,g.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||[];E(r),R(n.data.worktreeExists),k(a),a.length>0&&T(a[0].tab_id),U()}catch(e){console.error("Failed to load data:",e)}finally{M(!1),F(!1)}}},[t,D,U]);(0,o.useEffect)(()=>{z()},[t,z]);let G=async(e,t)=>{let n=r.loading("Updating task...");try{let a=await fetch((0,g.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 E(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"}]}}},$=async(e="claude")=>{try{let n=await fetch((0,g.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 k(e=>e.some(e=>e.tab_id===r.tab_id)?e:[...e,r]),T(r.tab_id),r.tab_id}catch(e){console.error("Failed to create tab:",e);return}},K=async e=>{try{if(!(await fetch((0,g.apiUrl)(`/api/tasks/${t}/tabs/${e}`),{method:"DELETE"})).ok)throw Error("Failed to delete tab");if(k(t=>t.filter(t=>t.tab_id!==e)),w===e){let t=C.filter(t=>t.tab_id!==e);T(t[0]?.tab_id)}}catch(e){console.error("Failed to delete tab:",e)}},Y=async()=>{if(!l)return;let e=r.loading("Opening terminal...",l.worktreePath);try{if(!(await fetch((0,g.apiUrl)("/api/commands/open"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({commandType:"terminal",owner:l.owner,repo:l.repo,branch:l.branch})})).ok)throw Error("Command execution failed");r.success(e,"Successfully opened terminal",l.worktreePath)}catch(n){let t=n instanceof Error?n.message:"Unknown error";r.error(e,"Failed to open terminal",t)}},q=async()=>{if(!l)return;let e=r.loading("Opening VS Code...",l.worktreePath);try{if(!(await fetch((0,g.apiUrl)("/api/commands/open"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({commandType:"vscode",owner:l.owner,repo:l.repo,branch:l.branch})})).ok)throw Error("Command execution failed");r.success(e,"Successfully opened VS Code",l.worktreePath)}catch(n){let t=n instanceof Error?n.message:"Unknown error";r.error(e,"Failed to open VS Code",t)}};return I&&!l?(0,a.jsx)("div",{className:"h-screen flex items-center justify-center bg-background",children:(0,a.jsx)(v.LoadingSpinner,{size:"lg",message:"Loading task..."})}):l?(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)(N.Button,{variant:"ghost",onClick:()=>n.push("/"),className:"text-primary font-medium hover:bg-primary/10 hover:text-foreground",children:[(0,a.jsx)(i.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:l.title}),(0,a.jsxs)("div",{className:"flex items-center gap-1",children:[(0,a.jsx)(H.UpdateIndicator,{}),(0,a.jsxs)(tq,{children:[(0,a.jsx)(tJ,{render:(0,a.jsx)(N.Button,{variant:"ghost",size:"icon-lg",className:"text-primary hover:bg-primary/10 hover:text-foreground",title:"Task menu"}),children:(0,a.jsx)(c,{className:"w-5 h-5"})}),(0,a.jsxs)(tX,{align:"end",children:[(0,a.jsxs)(tZ,{onClick:()=>A(!0),children:[(0,a.jsx)(f.Pencil,{className:"w-4 h-4"}),"Detail / Edit"]}),S&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(tQ,{}),(0,a.jsxs)(tZ,{onClick:Y,children:[(0,a.jsx)(p,{className:"w-4 h-4"}),"Open Terminal"]}),(0,a.jsxs)(tZ,{onClick:q,children:[(0,a.jsx)(u,{className:"w-4 h-4"}),"Open VS Code"]})]}),(0,a.jsx)(tQ,{}),(0,a.jsxs)(tZ,{className:"text-destructive focus:text-destructive",onClick:()=>L(!0),children:[(0,a.jsx)(m.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:S?(0,a.jsx)(B,{ref:_,task:l,tabs:C,activeTabId:w,onTabChange:T,onTabCreate:$,onTabDelete:K,onAgentStatusChange:W}):(0,a.jsxs)("div",{className:"flex-1 flex flex-col items-center justify-center gap-4 p-6 text-center",children:[(0,a.jsx)(d,{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:l.worktreePath})]}),(0,a.jsxs)(N.Button,{variant:"destructive",onClick:()=>L(!0),children:[(0,a.jsx)(m.Trash2,{className:"w-4 h-4"}),"Delete Task"]})]})})}),(0,a.jsx)(h.TaskDialog,{mode:"edit",isOpen:j,onClose:()=>A(!1),task:l,onUpdate:G}),(0,a.jsx)(O.ConfirmDialog,{open:P,onOpenChange:e=>L(e.open),title:"Delete Task",message:`Delete task "${l.title}"?
|
|
5
|
+
|
|
6
|
+
This will also delete the worktree and branch.`,confirmLabel:"Delete",cancelLabel:"Cancel",onConfirm:()=>{if(!l)return;let e=r.loading("Deleting task...",l.title);fetch((0,g.apiUrl)(`/api/tasks/${l.id}`),{method:"DELETE"}).then(()=>{r.success(e,"Successfully deleted task",l.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)}]);
|