@alook/app 0.0.152 → 0.0.154
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/bundled/email-worker/index.js +3 -1
- package/bundled/web/.open-next/.build/durable-objects/queue.js +5 -5
- package/bundled/web/.open-next/assets/BUILD_ID +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/05rel1qxsdla_.js +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/1kv8cbo2a0i1u.js +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/1kyxgrz4-k-zk.js +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/{3etgdoxwljis1.js → 1t4d0nzeertbz.js} +3 -3
- package/bundled/web/.open-next/assets/_next/static/chunks/{2hfr1gmcibrqg.js → 1t737wp5td9r0.js} +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/2b9pa48plclqj.js +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/2ee9_kh3zud82.js +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/2jt0ahlmoskt4.js +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/2tjh96xedn3lu.js +63 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/3--ysm-rpa5ob.js +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/3_flisy516wkv.js +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/3e6r6yc39pztk.js +2 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/3ll8ge14thcn_.js +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/3u2ya8vzp1c71.js +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/42342bxqlu0f7.js +1 -0
- package/bundled/web/.open-next/cache/{tZVfWmKSY7w1xF14qAb42 → qigxeWlGT_9_D5qWF8F9X}/_global-error.cache +1 -1
- package/bundled/web/.open-next/cache/{tZVfWmKSY7w1xF14qAb42 → qigxeWlGT_9_D5qWF8F9X}/_not-found.cache +1 -1
- package/bundled/web/.open-next/cache/qigxeWlGT_9_D5qWF8F9X/community/me/bots.cache +1 -0
- package/bundled/web/.open-next/cache/qigxeWlGT_9_D5qWF8F9X/community/me/machines.cache +1 -0
- package/bundled/web/.open-next/cache/qigxeWlGT_9_D5qWF8F9X/community/me.cache +1 -0
- package/bundled/web/.open-next/cache/{tZVfWmKSY7w1xF14qAb42 → qigxeWlGT_9_D5qWF8F9X}/community/preview.cache +1 -1
- package/bundled/web/.open-next/cache/{tZVfWmKSY7w1xF14qAb42 → qigxeWlGT_9_D5qWF8F9X}/community.cache +1 -1
- package/bundled/web/.open-next/cache/{tZVfWmKSY7w1xF14qAb42 → qigxeWlGT_9_D5qWF8F9X}/device.cache +1 -1
- package/bundled/web/.open-next/cache/{tZVfWmKSY7w1xF14qAb42 → qigxeWlGT_9_D5qWF8F9X}/privacy.cache +1 -1
- package/bundled/web/.open-next/cache/{tZVfWmKSY7w1xF14qAb42 → qigxeWlGT_9_D5qWF8F9X}/sitemap.xml.cache +1 -1
- package/bundled/web/.open-next/cloudflare/cache-assets-manifest.sql +1 -1
- package/bundled/web/.open-next/cloudflare/init.js +1 -1
- package/bundled/web/.open-next/dynamodb-provider/dynamodb-cache.json +1 -1
- package/bundled/web/.open-next/middleware/handler.mjs +4 -4
- package/bundled/web/.open-next/server-functions/default/src/web/.next/BUILD_ID +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/build-manifest.json +3 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/prerender-manifest.json +3 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/required-server-files.json +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/invite/[token]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/studio/new/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/activity/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/chat/[convId]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/chat/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/email/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/files/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/meetings/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/new/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/calendar/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/flags/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/help/email-setup/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/home/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/issues/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/runtimes/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/settings/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/traces/[traceId]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/traces/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/unread/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/workspaces/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(auth)/sign-in/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/community/channels/[serverId]/[channelId]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/community/channels/[serverId]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/community/channels/[serverId]/settings/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/community/invite/[token]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/community/me/[dmId]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/community/me/bots/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/community/me/machines/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/community/me/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/community/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/community/preview/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/device/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/[id]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[turbopack]_runtime.js +36 -36
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_1_dhx4p._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_1ge300u._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_20o75d0._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__1oiyvwe._.js → [root-of-the-server]__0-3fo13._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__0o5bxat._.js → [root-of-the-server]__02lti39._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__040fyn3._.js → [root-of-the-server]__08vq8pm._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__04pxrz5._.js → [root-of-the-server]__0_2qrsu._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__16l63mz._.js → [root-of-the-server]__0_a4to_._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__0ymnehp._.js → [root-of-the-server]__0_rx5fo._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__0nh19ia._.js → [root-of-the-server]__0_t2y0o._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__1v_-hs4._.js → [root-of-the-server]__0avu0rw._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__1wei18j._.js → [root-of-the-server]__0pqc2r_._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__1xvglbp._.js → [root-of-the-server]__0xbzzvs._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__1tq74r0._.js → [root-of-the-server]__0xlvktw._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__0yiejq6._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__0k5pvh9._.js → [root-of-the-server]__0zbv02p._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__158oora._.js → [root-of-the-server]__11nm2yt._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__1-swanp._.js → [root-of-the-server]__13v39j3._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__0iumdq_._.js → [root-of-the-server]__170fci7._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__1mp2nz1._.js → [root-of-the-server]__1an777y._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__1nclupn._.js → [root-of-the-server]__1b8g-kq._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__14-q4q8._.js → [root-of-the-server]__1c1yh37._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__0w212yf._.js → [root-of-the-server]__1d--k9n._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__1khj-hl._.js → [root-of-the-server]__1dv15fs._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__0k3aai5._.js → [root-of-the-server]__1koabdq._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__0t4ltzi._.js → [root-of-the-server]__1swfkhi._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__0zh8vme._.js → [root-of-the-server]__1u58tat._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__1q_pfsh._.js → [root-of-the-server]__1x49fl7._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__1vk26nd._.js → [root-of-the-server]__1xwz2e-._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__0eajbpq._.js → [root-of-the-server]__20_qwfi._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[turbopack]_runtime.js +36 -36
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_1_26hjj._.js → _0_ldmff._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0a9e1sh._.js +65 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0d2n_-3._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_0e299an._.js → _0n5q9kp._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0sc142i._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0u1f2xw._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0xcyjs-._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_10o51gr._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_12ymire._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_1wx0z09._.js → _1ew__s1._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_shared_src_0w9s66q._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_1dr1pul._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_app_(app)_w_[slug]_settings_0ag2edj._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_app_community_channels_[serverId]_[channelId]_page_tsx_10gja3t._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_hooks_community_mutations_00mez6z._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-build-manifest.js +3 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-manifest.json +5 -5
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/server-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/server-reference-manifest.json +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs +121 -121
- package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs.meta.json +454 -454
- package/bundled/web/.open-next/server-functions/default/src/web/index.mjs +4 -4
- package/bundled/ws-do/index.js +3 -1
- package/package.json +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/099a6pkd25_6c.js +0 -2
- package/bundled/web/.open-next/assets/_next/static/chunks/0cje8sxciw2bw.js +0 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/0e15-uvagvtoq.js +0 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/1bextmtm3d9_z.js +0 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/1e240j5v6a29o.js +0 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/1r60swwlk6bsi.js +0 -63
- package/bundled/web/.open-next/assets/_next/static/chunks/27xsd9yii2-bt.js +0 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/2vmt-oe13wn02.js +0 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/2xxoim6gb2hyv.js +0 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/3b_6ov7wl0l5b.js +0 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/3d-rbh9rp6cn4.js +0 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/3qa4ihpategpq.js +0 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/3wgh3u8c3z_ip.js +0 -1
- package/bundled/web/.open-next/cache/tZVfWmKSY7w1xF14qAb42/community/me/bots.cache +0 -1
- package/bundled/web/.open-next/cache/tZVfWmKSY7w1xF14qAb42/community/me/machines.cache +0 -1
- package/bundled/web/.open-next/cache/tZVfWmKSY7w1xF14qAb42/community/me.cache +0 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__0wekc86._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_013_jiv._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_05grdwx._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0uzvb65._.js +0 -65
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0z_7maj._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_12xn47o._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_1yq9nv0._.js +0 -3
- /package/bundled/web/.open-next/assets/_next/static/{tZVfWmKSY7w1xF14qAb42 → qigxeWlGT_9_D5qWF8F9X}/_buildManifest.js +0 -0
- /package/bundled/web/.open-next/assets/_next/static/{tZVfWmKSY7w1xF14qAb42 → qigxeWlGT_9_D5qWF8F9X}/_clientMiddlewareManifest.js +0 -0
- /package/bundled/web/.open-next/assets/_next/static/{tZVfWmKSY7w1xF14qAb42 → qigxeWlGT_9_D5qWF8F9X}/_ssgManifest.js +0 -0
- /package/bundled/web/.open-next/cache/{tZVfWmKSY7w1xF14qAb42 → qigxeWlGT_9_D5qWF8F9X}/robots.txt.cache +0 -0
package/bundled/web/.open-next/assets/_next/static/chunks/{2hfr1gmcibrqg.js → 1t737wp5td9r0.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,716032,e=>{"use strict";e.i(654757);var s=e.i(636407),t=e.i(147156),r=e.i(255334),a=e.i(613349),i=e.i(516266),n=e.i(196573),l=e.i(500324),c=e.i(23055);e.i(427681);var d=e.i(822755),o=e.i(186339),m=e.i(903477),u=e.i(473131),x=e.i(728886),h=e.i(553617),p=e.i(205189);function f(){let{workspaceId:e,slug:r}=(0,l.useWorkspace)(),a=(0,c.useSession)(),f=(0,n.useRouter)(),[g,j]=(0,t.useState)(""),[v,N]=(0,t.useState)(!0),[b,y]=(0,t.useState)(""),[w,k]=(0,t.useState)(""),[C,T]=(0,t.useState)(""),[S,E]=(0,t.useState)(""),[_,M]=(0,t.useState)(!1),[P,z]=(0,t.useState)({}),[I,O]=(0,t.useState)(""),[R,$]=(0,t.useState)(!1),F=(0,t.useCallback)(async()=>{N(!0);try{let s=a.data?.user?.id,[t,r]=await Promise.all([(0,d.listMembers)(e),(0,d.listWorkspaces)()]),i=t.find(e=>e.user_id===s);j(i?.role??"");let n=r.find(s=>s.id===e);n&&(y(n.name),k(n.slug),T(n.name),E(n.slug))}catch(e){i.toast.error(e instanceof Error?e.message:"Failed to load workspace info")}finally{N(!1)}},[e,a.data?.user?.id]);(0,t.useEffect)(()=>{a.data&&F()},[F,a.data]);let A=b!==C||w!==S,D=async()=>{let s=(0,h.validateWorkspaceForm)({name:b,slug:w});if(z(s),!(0,h.hasWorkspaceFormErrors)(s)){M(!0);try{let s=await (0,d.updateWorkspace)(e,{name:b.trim(),slug:w.trim()});(0,p.trackSettingsUpdated)({setting_tab:"general"}),T(s.name),E(s.slug),i.toast.success("Workspace updated"),s.slug!==r&&f.replace(`/w/${s.slug}/settings`)}catch(e){i.toast.error(e instanceof Error?e.message:"Failed to update workspace")}finally{M(!1)}}},L=async()=>{if(I===C){$(!0);try{await (0,d.deleteWorkspace)(e,C),i.toast.success("Workspace deleted"),f.replace("/workspaces")}catch(e){i.toast.error(e instanceof Error?e.message:"Failed to delete workspace")}finally{$(!1)}}};return v?(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsx)(x.Skeleton,{className:"h-4 w-32"}),(0,s.jsx)(x.Skeleton,{className:"h-10 w-full"}),(0,s.jsx)(x.Skeleton,{className:"h-10 w-full"})]}):"owner"!==g?(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:"Only workspace owners can edit workspace settings."}):(0,s.jsxs)("div",{className:"space-y-10",children:[(0,s.jsxs)("section",{className:"space-y-4",children:[(0,s.jsx)("h2",{className:"text-sm font-medium",children:"Workspace"}),(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)(u.Label,{htmlFor:"workspace-name",children:"Name"}),(0,s.jsx)(m.Input,{id:"workspace-name",value:b,onChange:e=>{let s=e.target.value;y(s),P.name&&s.trim()&&z(e=>({...e,name:void 0}))},placeholder:"Workspace name","aria-invalid":!!P.name,"aria-describedby":P.name?"workspace-name-error":void 0}),P.name&&(0,s.jsx)("p",{id:"workspace-name-error",className:"text-xs text-destructive",children:P.name})]}),(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)(u.Label,{htmlFor:"workspace-slug",children:"Slug"}),(0,s.jsx)(m.Input,{id:"workspace-slug",value:w,onChange:e=>{let s=e.target.value;k(s),P.slug&&s.trim()&&z(e=>({...e,slug:void 0}))},placeholder:"workspace-slug","aria-invalid":!!P.slug,"aria-describedby":P.slug?"workspace-slug-error":void 0}),P.slug&&(0,s.jsx)("p",{id:"workspace-slug-error",className:"text-xs text-destructive",children:P.slug}),(0,s.jsxs)("p",{className:"text-xs text-muted-foreground/70",children:["Used in URLs: /w/",w,"/"]})]})]}),(0,s.jsx)(o.Button,{size:"sm",onClick:D,disabled:!A||_,children:_?"Saving…":"Save"})]}),(0,s.jsxs)("section",{className:"space-y-4",children:[(0,s.jsx)("h2",{className:"text-sm font-medium text-destructive",children:"Danger Zone"}),(0,s.jsxs)("div",{className:"rounded-md border border-destructive/30 p-4 space-y-3",children:[(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:"Deleting this workspace is permanent and cannot be undone. All agents, conversations, and data will be lost."}),(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsxs)(u.Label,{htmlFor:"delete-confirm",className:"text-xs",children:["Type ",(0,s.jsx)("span",{className:"font-medium text-foreground",children:C})," to confirm"]}),(0,s.jsx)(m.Input,{id:"delete-confirm",value:I,onChange:e=>O(e.target.value),placeholder:C})]}),(0,s.jsx)(o.Button,{size:"sm",variant:"destructive",onClick:L,disabled:I!==C||R,children:R?"Deleting…":"Delete Workspace"})]})]})]})}var g=e.i(740513);function j({ratio:e,size:t=16,stroke:r=1.5}){let i=(t-r)/2,n=2*Math.PI*i,l=(e<=0?0:e>=1?1:Math.log1p(99*e)/Math.log(100))*n;return(0,s.jsxs)("svg",{width:t,height:t,className:"shrink-0 -rotate-90","aria-hidden":!0,children:[(0,s.jsx)("circle",{cx:t/2,cy:t/2,r:i,fill:"none",stroke:"currentColor",strokeWidth:r,className:"text-border"}),(0,s.jsx)("circle",{cx:t/2,cy:t/2,r:i,fill:"none",stroke:"currentColor",strokeWidth:r,strokeDasharray:`${l} ${n-l}`,strokeLinecap:"round",className:(0,a.cn)("transition-all duration-300",e>.9?"text-destructive/70":e>.7?"text-yellow-500/50":"text-muted-foreground/30")})]})}function v(){let{workspaceId:e}=(0,l.useWorkspace)(),[r,a]=(0,t.useState)(""),[n,c]=(0,t.useState)(""),[o,m]=(0,t.useState)(!0),u=(0,t.useRef)(r);(0,t.useEffect)(()=>{u.current=r},[r]);let h=(0,t.useRef)(n);(0,t.useEffect)(()=>{h.current=n},[n]);let p=(0,t.useRef)(null),f=(0,t.useRef)(!1),v=(0,t.useCallback)(async()=>{m(!0);try{let s=await (0,d.getMemberMe)(e);a(s.global_instruction),c(s.global_instruction)}catch(e){i.toast.error(e instanceof Error?e.message:"Failed to load settings")}finally{m(!1)}},[e]);(0,t.useEffect)(()=>{v()},[v]);let N=(0,t.useRef)(()=>{}),b=(0,t.useCallback)(async()=>{if(f.current)return;let s=u.current;if(s!==h.current){f.current=!0;try{let t=await (0,d.updateMemberMe)(e,s);c(t.global_instruction)}catch(e){i.toast.error(e instanceof Error?e.message:"Failed to save")}finally{f.current=!1,u.current!==h.current&&N.current()}}},[e]),y=(0,t.useCallback)(()=>{p.current&&clearTimeout(p.current),p.current=setTimeout(b,500)},[b]);(0,t.useEffect)(()=>{N.current=y},[y]);let w=(0,t.useCallback)(e=>{a(e),y()},[y]);(0,t.useEffect)(()=>{let s=()=>{if(p.current&&clearTimeout(p.current),u.current!==h.current){let s=new URLSearchParams({workspace_id:e});fetch(`/api/members/me?${s}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({global_instruction:u.current}),keepalive:!0})}};return window.addEventListener("beforeunload",s),()=>window.removeEventListener("beforeunload",s)},[e]),(0,t.useEffect)(()=>()=>{if(p.current&&clearTimeout(p.current),u.current!==h.current){let s=new URLSearchParams({workspace_id:e});fetch(`/api/members/me?${s}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({global_instruction:u.current}),keepalive:!0})}},[e]);let k=r.length/5e4;return o?(0,s.jsxs)("div",{className:"px-6 py-6 space-y-4",children:[(0,s.jsx)(x.Skeleton,{className:"h-4 w-48"}),(0,s.jsx)(x.Skeleton,{className:"h-40 w-full"})]}):(0,s.jsxs)("div",{className:"flex flex-col h-full",children:[(0,s.jsx)("div",{className:"flex-1 px-6 pt-4 pb-4",children:(0,s.jsx)(g.MarkdownEditor,{value:r,onChange:w,placeholder:"Write instructions that every agent you own will follow...",minHeight:"calc(100vh - 240px)",contentType:"markdown",variant:"seamless"})}),(0,s.jsxs)("div",{className:"flex items-center gap-2 px-6 py-3",children:[(0,s.jsx)(j,{ratio:k}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:"This instruction is prepended to every agent's individual instruction."})]})]})}var N=e.i(956448),b=e.i(6798),y=e.i(304928),w=e.i(761943),k=e.i(329686),C=e.i(132977);function T(e){return`${window.location.origin}/invite/${e}`}function S(){let{workspaceId:e}=(0,l.useWorkspace)(),r=(0,c.useSession)(),n=r.data?.user?.id,[m,u]=(0,t.useState)([]),[h,f]=(0,t.useState)([]),[g,j]=(0,t.useState)(!0),[v,S]=(0,t.useState)(!1),E=m.find(e=>e.user_id===n)?.role==="owner",_=(0,t.useCallback)(async()=>{j(!0);try{let[s,t]=await Promise.all([(0,d.listMembers)(e),(0,d.listInvites)(e).catch(()=>[])]);u(s),f(t)}catch(e){i.toast.error(e instanceof Error?e.message:"Failed to load members")}finally{j(!1)}},[e]);(0,t.useEffect)(()=>{_()},[_]);let M=async()=>{S(!0);try{let s=await (0,d.createInvite)(e);(0,p.trackTeamMemberInvited)({workspace_id:e}),f(e=>[...e,s]);let t=T(s.token);await navigator.clipboard.writeText(t),i.toast.success("Invite link copied to clipboard")}catch(e){i.toast.error(e instanceof Error?e.message:"Failed to generate invite")}finally{S(!1)}},P=async e=>{let s=T(e);try{await navigator.clipboard.writeText(s),i.toast.success("Invite link copied")}catch{i.toast.error("Failed to copy link")}},z=async s=>{try{await (0,d.revokeInvite)(e,s),f(e=>e.filter(e=>e.id!==s)),i.toast.success("Invite revoked")}catch(e){i.toast.error(e instanceof Error?e.message:"Failed to revoke invite")}},I=async s=>{try{await (0,d.removeMember)(e,s),u(e=>e.filter(e=>e.id!==s)),i.toast.success("Member removed")}catch(e){i.toast.error(e instanceof Error?e.message:"Failed to remove member")}};return g?(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsx)(x.Skeleton,{className:"h-4 w-24"}),(0,s.jsx)(x.Skeleton,{className:"h-10 w-full"}),(0,s.jsx)(x.Skeleton,{className:"h-10 w-full"}),(0,s.jsx)(x.Skeleton,{className:"h-4 w-24 mt-6"}),(0,s.jsx)(x.Skeleton,{className:"h-10 w-full"}),(0,s.jsx)(x.Skeleton,{className:"h-10 w-full"})]}):(0,s.jsxs)("div",{className:"space-y-8",children:[E&&(0,s.jsxs)("section",{className:"space-y-3",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsx)("h2",{className:"text-sm font-medium",children:"Pending Invites"}),(0,s.jsxs)(o.Button,{size:"sm",variant:"outline",onClick:M,disabled:v,children:[(0,s.jsx)(y.Plus,{className:"size-3.5 mr-1"}),v?"Generating…":"Generate invite link"]})]}),0===h.length?(0,s.jsx)("p",{className:"text-xs text-muted-foreground py-2",children:"No active invite links. Generate one to invite someone to this workspace."}):(0,s.jsx)("div",{className:"space-y-2",children:h.map(e=>{let t=new Date(e.expires_at),r=t<new Date;return(0,s.jsxs)("div",{className:"flex items-center justify-between rounded-md border border-border/50 px-3 py-2 text-xs",children:[(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,s.jsxs)("p",{className:(0,a.cn)("font-mono truncate",r&&"text-muted-foreground line-through"),children:["/invite/",e.token.slice(0,12),"…"]}),(0,s.jsx)("p",{className:(0,a.cn)("text-muted-foreground/70 mt-1",r&&"text-destructive/70"),children:r?"Expired":`Expires ${t.toLocaleDateString()}`})]}),(0,s.jsxs)("div",{className:"flex items-center gap-1 ml-2 shrink-0",children:[!r&&(0,s.jsxs)(k.Tooltip,{children:[(0,s.jsx)(k.TooltipTrigger,{render:(0,s.jsx)(o.Button,{size:"sm",variant:"ghost",className:"h-7 w-7 p-0",onClick:()=>P(e.token)}),children:(0,s.jsx)(N.Copy,{className:"size-3.5"})}),(0,s.jsx)(k.TooltipContent,{children:"Copy invite link"})]}),(0,s.jsxs)(k.Tooltip,{children:[(0,s.jsx)(k.TooltipTrigger,{render:(0,s.jsx)(o.Button,{size:"sm",variant:"ghost",className:"h-7 w-7 p-0 text-destructive hover:text-destructive",onClick:()=>z(e.id)}),children:(0,s.jsx)(b.Trash2,{className:"size-3.5"})}),(0,s.jsx)(k.TooltipContent,{children:"Revoke invite"})]})]})]},e.id)})})]}),(0,s.jsxs)("section",{className:"space-y-3",children:[(0,s.jsx)("h2",{className:"text-sm font-medium",children:"Members"}),(0,s.jsx)("div",{className:"space-y-2",children:m.map(e=>{let t=e.user_id===n,r=(0,C.displayName)(e).split(" ").map(e=>e[0]).join("").slice(0,2).toUpperCase();return(0,s.jsxs)("div",{className:"flex items-center gap-3 rounded-md border border-border/50 px-3 py-2",children:[(0,s.jsx)("div",{className:"size-7 rounded-full bg-muted flex items-center justify-center text-xs font-medium text-muted-foreground shrink-0 overflow-hidden",children:e.image?(0,s.jsx)("img",{src:e.image,alt:e.name,className:"size-full object-cover"}):r}),(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,s.jsxs)("p",{className:"text-sm font-medium truncate leading-tight",children:[(0,C.displayName)(e),t&&(0,s.jsx)("span",{className:"ml-2 text-xs text-muted-foreground font-normal",children:"(you)"})]}),e.name&&(0,s.jsx)("p",{className:"text-xs text-muted-foreground truncate",children:e.email})]}),(0,s.jsx)("span",{className:(0,a.cn)("text-xs px-2 py-1 rounded shrink-0","owner"===e.role?"bg-primary/10 text-primary":"bg-muted text-muted-foreground"),children:e.role}),E&&!t&&(0,s.jsxs)(k.Tooltip,{children:[(0,s.jsx)(k.TooltipTrigger,{render:(0,s.jsx)(o.Button,{size:"sm",variant:"ghost",className:"h-7 w-7 p-0 text-muted-foreground hover:text-destructive shrink-0",onClick:()=>I(e.id)}),children:(0,s.jsx)(w.UserMinus,{className:"size-3.5"})}),(0,s.jsx)(k.TooltipContent,{children:"Remove member"})]})]},e.id)})})]})]})}var E=e.i(885515),_=e.i(254618),M=e.i(980630);function P(){let[e,r]=(0,t.useState)(!1),[a,n]=(0,t.useState)([...M.NOTIFICATION_EVENTS]),[l,c]=(0,t.useState)(!0),[d,o]=(0,t.useState)(!1);(0,t.useEffect)(()=>{c((0,M.isNotificationSupported)()),r((0,M.getNotificationEnabled)()),n((0,M.getNotificationEvents)()),(0,M.isNotificationSupported)()&&o("denied"===Notification.permission)},[]);let m=async e=>{if(!e){r(!1),(0,M.setNotificationEnabled)(!1);return}await (0,M.requestNotificationPermission)()?(r(!0),(0,M.setNotificationEnabled)(!0)):(o(!0),i.toast.error("Notification permission denied. Please enable it in browser settings."))};return l?(0,s.jsx)("div",{className:"space-y-6",children:(0,s.jsxs)("section",{className:"space-y-4",children:[(0,s.jsx)("h2",{className:"text-sm font-medium",children:"Browser Notifications"}),(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsxs)("div",{className:"space-y-1",children:[(0,s.jsx)("p",{className:"text-sm",children:"Enable notifications"}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:"Get notified when tasks finish while the tab is in the background"})]}),(0,s.jsx)(_.Switch,{checked:e,onCheckedChange:m,disabled:d&&!e})]}),d&&!e&&(0,s.jsx)("p",{className:"text-xs text-destructive",children:"Notification permission was denied. Please allow it in your browser settings."}),e&&(0,s.jsxs)("div",{className:"space-y-2 pl-0.5",children:[(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:"Notify me when:"}),M.NOTIFICATION_EVENTS.map(e=>(0,s.jsxs)("label",{className:"flex items-center gap-2 text-sm cursor-pointer select-none",children:[(0,s.jsx)(E.Checkbox,{checked:a.includes(e),onCheckedChange:()=>{n(s=>{let t=s.includes(e)?s.filter(s=>s!==e):[...s,e];return(0,M.setNotificationEvents)(t),t})}}),M.NOTIFICATION_EVENT_LABELS[e]]},e))]})]})]})}):(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:"Your browser does not support notifications."})}var z=e.i(464648);let I=(0,z.default)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]);var O=e.i(399561),R=e.i(2870),$=e.i(961909),F=e.i(790961);function A(){let[e,r]=(0,t.useState)(!1),[i,n]=(0,t.useState)(O.CLOUD_CODE_MONSTER_PET_PRESETS[0].id),l=(0,O.getCloudCodeMonsterPreset)(i);return(0,t.useEffect)(()=>{r((0,F.readHomePetSettings)().enabled),n((0,O.readCloudCodeMonsterPetPresetId)());let e=e=>{let s=e.detail?.presetId;n(s?(0,O.getCloudCodeMonsterPreset)(s).id:(0,O.readCloudCodeMonsterPetPresetId)())};return window.addEventListener(R.CLOUD_CODE_MONSTER_PRESET_CHANGED_EVENT,e),()=>{window.removeEventListener(R.CLOUD_CODE_MONSTER_PRESET_CHANGED_EVENT,e)}},[]),(0,s.jsxs)("div",{className:"space-y-8",children:[(0,s.jsxs)("section",{className:"space-y-4",children:[(0,s.jsx)("h2",{className:"text-sm font-medium",children:"Pet"}),(0,s.jsx)("div",{className:"space-y-4",children:(0,s.jsxs)("div",{className:"flex items-center justify-between gap-4",children:[(0,s.jsxs)("div",{className:"space-y-1",children:[(0,s.jsx)(u.Label,{htmlFor:"pet-enabled",className:"text-sm",children:"Enable pet"}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:"Off by default. Turn it on when you want the workspace companion."})]}),(0,s.jsx)(_.Switch,{id:"pet-enabled",checked:e,onCheckedChange:e=>{r(e),(0,F.writeHomePetSettings)({enabled:e})}})]})})]}),e?(0,s.jsxs)("section",{className:"space-y-4",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h2",{className:"text-sm font-medium",children:"Preset"}),(0,s.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:l.name})]}),(0,s.jsx)("div",{className:"grid size-14 place-items-center rounded-md bg-card ring-1 ring-border/60",children:(0,s.jsx)($.CloudCodeMonsterPresetPreview,{preset:l,className:"size-11"})})]}),(0,s.jsx)("div",{className:"grid grid-cols-2 gap-2 sm:grid-cols-3",children:O.CLOUD_CODE_MONSTER_PET_PRESETS.map(e=>{let t=e.id===l.id;return(0,s.jsxs)("button",{type:"button","aria-pressed":t,onClick:()=>{n((0,O.writeCloudCodeMonsterPetPresetId)(e.id))},className:(0,a.cn)("group grid h-28 min-w-0 grid-rows-[1fr_auto] rounded-md border bg-card/60 p-2 text-left transition-all hover:border-foreground/20 hover:bg-accent/55 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/70",t?"border-primary/50 bg-accent text-foreground":"border-border/50 text-muted-foreground"),children:[(0,s.jsx)("div",{className:"grid place-items-center rounded bg-background/70 ring-1 ring-border/35",children:(0,s.jsx)($.CloudCodeMonsterPresetPreview,{preset:e,className:"size-14 transition-transform duration-200 group-hover:scale-105"})}),(0,s.jsxs)("div",{className:"mt-2 flex min-w-0 items-center justify-between gap-1 text-[10px] leading-none",children:[(0,s.jsx)("span",{className:"truncate font-medium text-foreground",children:e.name}),t?(0,s.jsx)(I,{className:"size-3 shrink-0 text-primary"}):(0,s.jsx)("span",{className:"shrink-0 text-muted-foreground",children:e.id.replace("pet-","#")})]})]},e.id)})})]}):null]})}var D=e.i(355578),L=e.i(934351),W=e.i(875061),U=e.i(460753),B=e.i(333933),H=e.i(271427),G=e.i(351171),q=e.i(986246);let V=(0,z.default)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);function J({icon:e,label:t,value:r,sub:a}){return(0,s.jsx)(L.Card,{size:"sm",children:(0,s.jsxs)(L.CardContent,{className:"flex items-center gap-3",children:[(0,s.jsx)("div",{className:"flex size-9 shrink-0 items-center justify-center rounded-lg bg-primary/10 text-primary",children:(0,s.jsx)(e,{className:"size-4"})}),(0,s.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-1",children:[(0,s.jsx)("p",{className:"text-2xl font-semibold leading-none tracking-tight",children:r}),a&&(0,s.jsx)(W.Badge,{variant:"secondary",className:"text-[10px] px-2 h-4 font-normal",children:a})]}),(0,s.jsx)("p",{className:"mt-1 text-xs text-muted-foreground truncate",children:t})]})]})})}function K({agents:e,runtimes:t,activeTaskCounts:r,overview:a}){let i=new Map;for(let e of t){let s=e.daemon_id??e.id;i.set(s,i.get(s)||"online"===e.status)}let n=i.size,l=[...i.values()].filter(Boolean).length,c=Object.values(r).reduce((e,s)=>e+s,0),d=e.filter(e=>{let s=t.find(s=>s.id===e.runtime_id);return s?.status==="online"}).length;return(0,s.jsxs)("div",{className:"grid gap-3 grid-cols-2 sm:grid-cols-6",children:[(0,s.jsx)(J,{icon:q.Monitor,label:"Machines",value:`${l}/${n}`,sub:"online"}),(0,s.jsx)(J,{icon:U.Bot,label:"Agents",value:e.length,sub:`${d} online`}),(0,s.jsx)(J,{icon:G.Users,label:"Members",value:a.members.length,sub:a.pending_invites>0?`${a.pending_invites} pending`:void 0}),(0,s.jsx)(J,{icon:V,label:"Active Tasks",value:c,sub:a.task_stats.queued>0?`${a.task_stats.queued} queued`:void 0}),(0,s.jsx)(J,{icon:H.Send,label:"Emails Sent",value:a.email_stats.outbound,sub:`${a.email_stats.unread} unread`}),(0,s.jsx)(J,{icon:B.Mail,label:"Custom Emails",value:a.email_accounts.length})]})}function Q({overview:e}){let{completed:t,failed:r,cancelled:a,queued:i,stale:n}=e.task_stats,l=t+r,c=l>0?(r/l*100).toFixed(1):"0";return(0,s.jsxs)(L.Card,{children:[(0,s.jsx)(L.CardHeader,{children:(0,s.jsx)(L.CardTitle,{children:"Task Health (Today)"})}),(0,s.jsx)(L.CardContent,{children:(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,s.jsx)(Y,{label:"Completed",value:t}),(0,s.jsx)(Y,{label:"Failed",value:r,className:r>0?"text-destructive":void 0}),(0,s.jsx)(Y,{label:"Cancelled",value:a}),(0,s.jsx)(Y,{label:"Failure Rate",value:`${c}%`,className:Number(c)>10?"text-destructive":void 0}),(0,s.jsx)(Y,{label:"Queue Backlog",value:i,className:i>10?"text-amber-500":void 0}),(0,s.jsx)(Y,{label:"Stale Tasks",value:n,className:n>0?"text-destructive":void 0})]})})]})}function Y({label:e,value:t,className:r}){return(0,s.jsxs)("div",{children:[(0,s.jsx)("p",{className:`text-xl font-semibold ${r??""}`,children:t}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:e})]})}function Z({overview:e,agents:t}){let{inbound:r,outbound:a,unread:i,rejected:n}=e.email_stats,l=new Map(t.map(e=>[e.id,e.name]));return(0,s.jsxs)(L.Card,{children:[(0,s.jsx)(L.CardHeader,{children:(0,s.jsx)(L.CardTitle,{children:"Email Summary"})}),(0,s.jsxs)(L.CardContent,{className:"space-y-4",children:[(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("p",{className:"text-xl font-semibold",children:r}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:"Received"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("p",{className:"text-xl font-semibold",children:a}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:"Sent"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("p",{className:`text-xl font-semibold ${i>0?"text-primary":""}`,children:i}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:"Unread"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("p",{className:`text-xl font-semibold ${n>0?"text-amber-500":""}`,children:n}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:"Untrust"})]})]}),e.email_accounts.length>0&&(0,s.jsxs)("div",{className:"space-y-2 pt-2 border-t border-border/50",children:[(0,s.jsx)("p",{className:"text-xs font-medium text-muted-foreground",children:"Custom Mailboxes"}),e.email_accounts.map(e=>(0,s.jsxs)("div",{className:"flex items-center justify-between gap-2 text-xs",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,s.jsxs)(k.Tooltip,{children:[(0,s.jsx)(k.TooltipTrigger,{render:(0,s.jsx)("span",{className:`size-1.5 shrink-0 rounded-full ${"active"===e.status?"bg-emerald-500":"bg-destructive"}`})}),(0,s.jsx)(k.TooltipContent,{side:"top",children:"active"===e.status?"Active":`Error: ${e.error_message||"inactive"}`})]}),(0,s.jsx)("span",{className:"truncate",children:e.email_address})]}),(0,s.jsx)("span",{className:"text-muted-foreground shrink-0",children:l.get(e.agent_id)??"—"})]},e.id))]})]})]})}var X=e.i(370843);function ee({runtimes:e,agents:t}){let r=(0,n.useRouter)(),{slug:a}=(0,l.useWorkspace)(),i=new Map;for(let s of e){let e=s.daemon_id??s.id;i.has(e)||i.set(e,{runtimes:[],deviceInfo:s.device_info??""}),i.get(e).runtimes.push(s)}let c=[...i.entries()];return 0===c.length?(0,s.jsxs)(L.Card,{children:[(0,s.jsxs)(L.CardHeader,{children:[(0,s.jsx)(L.CardTitle,{children:"Machines"}),(0,s.jsx)(L.CardAction,{children:(0,s.jsx)("button",{type:"button",onClick:()=>r.push(`/w/${a}/runtimes`),className:"text-muted-foreground hover:text-foreground transition-colors cursor-pointer",children:(0,s.jsx)(X.ArrowUpRight,{className:"size-4"})})})]}),(0,s.jsx)(L.CardContent,{children:(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:"No machines connected."})})]}):(0,s.jsxs)(L.Card,{children:[(0,s.jsx)(L.CardHeader,{children:(0,s.jsx)(L.CardTitle,{children:"Machines"})}),(0,s.jsx)(L.CardContent,{className:"space-y-3",children:c.map(([e,r])=>{let a=r.runtimes.some(e=>"online"===e.status),i=r.runtimes.map(e=>e.last_seen_at).filter(Boolean).sort().reverse()[0],n=t.filter(e=>r.runtimes.some(s=>s.id===e.runtime_id)),l=r.runtimes.some(e=>e.pending_update_version),c=r.runtimes.find(e=>e.pending_update_version)?.pending_update_version;return(0,s.jsxs)("div",{className:"flex items-start gap-3 text-xs",children:[(0,s.jsxs)(k.Tooltip,{children:[(0,s.jsx)(k.TooltipTrigger,{render:(0,s.jsx)("span",{className:`mt-1 size-2 shrink-0 rounded-full ${a?"bg-emerald-500":"bg-muted-foreground/30"}`})}),(0,s.jsx)(k.TooltipContent,{side:"top",children:a?"Online":"Offline"})]}),(0,s.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{className:"font-medium truncate",children:r.deviceInfo||e.slice(0,12)}),l&&(0,s.jsxs)(k.Tooltip,{children:[(0,s.jsx)(k.TooltipTrigger,{render:(0,s.jsx)("span",{children:(0,s.jsx)(W.Badge,{variant:"outline",className:"text-[10px] px-2 py-0 text-amber-500 border-amber-500/30",children:"update"})})}),(0,s.jsxs)(k.TooltipContent,{side:"top",children:["Pending update to v",c]})]})]}),(0,s.jsxs)("div",{className:"text-muted-foreground mt-1",children:[n.length>0?n.map(e=>e.name).join(", "):"No agents"," · ",function(e){if(!e)return"never";let s=Math.floor((Date.now()-new Date(e).getTime())/1e3);if(s<60)return`${s}s ago`;let t=Math.floor(s/60);if(t<60)return`${t}m ago`;let r=Math.floor(t/60);return r<24?`${r}h ago`:`${Math.floor(r/24)}d ago`}(i??null)]})]})]},e)})})]})}var es=e.i(280958);function et({overview:e}){let t=(0,n.useRouter)(),{slug:r}=(0,l.useWorkspace)(),{members:a,pending_invites:i}=e;return(0,s.jsxs)(L.Card,{children:[(0,s.jsxs)(L.CardHeader,{children:[(0,s.jsx)(L.CardAction,{children:(0,s.jsx)("button",{type:"button",onClick:()=>t.push(`/w/${r}/settings`),className:"text-muted-foreground hover:text-foreground transition-colors cursor-pointer",children:(0,s.jsx)(X.ArrowUpRight,{className:"size-4"})})}),(0,s.jsxs)(L.CardTitle,{children:["Team",i>0&&(0,s.jsxs)("span",{className:"ml-2 text-xs text-muted-foreground font-normal",children:["(",i," pending invite",i>1?"s":"",")"]})]})]}),(0,s.jsx)(L.CardContent,{className:"p-0",children:(0,s.jsx)("div",{className:"divide-y divide-border/50",children:[...a].sort((e,s)=>"owner"===e.role?-1:+("owner"===s.role)).map(e=>(0,s.jsxs)("div",{className:"flex items-center gap-3 px-4 py-2",children:[e.image?(0,s.jsx)("img",{src:e.image,alt:e.name,className:"size-7 rounded-full shrink-0"}):(0,s.jsx)("div",{className:"flex size-7 shrink-0 items-center justify-center rounded-full bg-secondary text-xs font-medium",children:(0,es.avatarInitial)((0,C.displayName)(e))}),(0,s.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,s.jsx)("span",{className:"text-sm font-medium truncate block",children:(0,C.displayName)(e)}),e.name&&(0,s.jsx)("span",{className:"text-xs text-muted-foreground truncate block",children:e.email})]}),(0,s.jsx)(W.Badge,{variant:"owner"===e.role?"default":"secondary",className:"text-[10px] px-2 py-0 shrink-0",children:e.role})]},e.id))})})]})}function er(){let{agents:e,runtimes:r,loading:a,activeTaskCounts:i}=(0,D.useAgentContext)(),{workspaceId:n}=(0,l.useWorkspace)(),[c,o]=(0,t.useState)(null),[m,u]=(0,t.useState)(!1);return((0,t.useEffect)(()=>{if(a)return;let e=!1;return u(!0),(0,d.getWorkspaceOverview)(n).then(s=>{e||o(s)}).catch(()=>{}).finally(()=>{e||u(!1)}),()=>{e=!0}},[a,n]),m||!c)?(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsx)(x.Skeleton,{className:"h-44 rounded-xl"}),(0,s.jsx)(x.Skeleton,{className:"h-44 rounded-xl"}),(0,s.jsx)(x.Skeleton,{className:"h-44 rounded-xl"}),(0,s.jsx)(x.Skeleton,{className:"h-44 rounded-xl"})]}):(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsx)(K,{agents:e,runtimes:r,activeTaskCounts:i,overview:c}),(0,s.jsxs)("div",{className:"grid gap-4 lg:grid-cols-2",children:[(0,s.jsx)(Q,{overview:c}),(0,s.jsx)(Z,{overview:c,agents:e})]}),(0,s.jsxs)("div",{className:"grid gap-4 lg:grid-cols-2",children:[(0,s.jsx)(ee,{runtimes:r,agents:e}),(0,s.jsx)(et,{overview:c})]})]})}let ea=[{id:"general",label:"General"},{id:"pet",label:"Pet"},{id:"instruction",label:"Global Instruction"},{id:"notifications",label:"Notifications"},{id:"members",label:"Members"},{id:"usages",label:"Usages"}];e.s(["default",0,function(){let[e,i]=(0,t.useState)("general");return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"flex items-center justify-between border-b border-border/50 px-3 sm:px-4 py-2 gap-3",children:(0,s.jsx)("div",{className:"flex items-center gap-3 min-w-0",children:(0,s.jsx)("h1",{className:"text-sm font-medium",children:"Settings"})})}),(0,s.jsxs)("div",{className:"flex flex-1 min-h-0",children:[(0,s.jsxs)("nav",{className:"w-48 shrink-0 border-r border-border/50 py-3 px-2 hidden sm:flex sm:flex-col",children:[(0,s.jsx)("div",{className:"flex-1",children:ea.map(t=>(0,s.jsx)("button",{onClick:()=>i(t.id),className:(0,a.cn)("w-full rounded-md px-2 py-2 text-left text-sm transition-colors",e===t.id?"bg-accent text-foreground font-medium":"text-muted-foreground hover:bg-accent/50 hover:text-foreground"),children:t.label},t.id))}),(0,s.jsxs)("div",{className:"px-2 pt-3 border-t border-border/50 text-[11px] text-muted-foreground/60",children:["v","0.0.152"]})]}),(0,s.jsxs)("div",{className:"flex-1 min-w-0 flex flex-col",children:[(0,s.jsx)("div",{className:"px-4 pt-2 sm:hidden",children:(0,s.jsx)(r.Tabs,{className:"items-center",value:e,onValueChange:e=>i(e),children:(0,s.jsx)(r.TabsList,{className:"h-auto gap-1",children:ea.map(e=>(0,s.jsx)(r.TabsTrigger,{value:e.id,children:e.label},e.id))})})}),(0,s.jsx)("div",{className:(0,a.cn)("flex-1 overflow-y-auto thin-scrollbar","instruction"!==e&&"px-4 py-4"),children:"instruction"===e?(0,s.jsx)(v,{}):"usages"===e?(0,s.jsx)(er,{}):(0,s.jsxs)("div",{className:"mx-auto max-w-md",children:["general"===e&&(0,s.jsx)(f,{}),"pet"===e&&(0,s.jsx)(A,{}),"notifications"===e&&(0,s.jsx)(P,{}),"members"===e&&(0,s.jsx)(S,{})]})}),(0,s.jsxs)("div",{className:"px-4 py-2 text-[11px] text-muted-foreground/60 sm:hidden",children:["v","0.0.152"]})]})]})]})}],716032)}]);
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,716032,e=>{"use strict";e.i(654757);var s=e.i(636407),t=e.i(147156),r=e.i(255334),a=e.i(613349),i=e.i(516266),n=e.i(196573),l=e.i(500324),c=e.i(23055);e.i(427681);var d=e.i(822755),o=e.i(186339),m=e.i(903477),u=e.i(473131),x=e.i(728886),h=e.i(553617),p=e.i(205189);function f(){let{workspaceId:e,slug:r}=(0,l.useWorkspace)(),a=(0,c.useSession)(),f=(0,n.useRouter)(),[g,j]=(0,t.useState)(""),[v,N]=(0,t.useState)(!0),[b,y]=(0,t.useState)(""),[w,k]=(0,t.useState)(""),[C,T]=(0,t.useState)(""),[S,E]=(0,t.useState)(""),[_,M]=(0,t.useState)(!1),[P,z]=(0,t.useState)({}),[I,O]=(0,t.useState)(""),[R,$]=(0,t.useState)(!1),F=(0,t.useCallback)(async()=>{N(!0);try{let s=a.data?.user?.id,[t,r]=await Promise.all([(0,d.listMembers)(e),(0,d.listWorkspaces)()]),i=t.find(e=>e.user_id===s);j(i?.role??"");let n=r.find(s=>s.id===e);n&&(y(n.name),k(n.slug),T(n.name),E(n.slug))}catch(e){i.toast.error(e instanceof Error?e.message:"Failed to load workspace info")}finally{N(!1)}},[e,a.data?.user?.id]);(0,t.useEffect)(()=>{a.data&&F()},[F,a.data]);let A=b!==C||w!==S,D=async()=>{let s=(0,h.validateWorkspaceForm)({name:b,slug:w});if(z(s),!(0,h.hasWorkspaceFormErrors)(s)){M(!0);try{let s=await (0,d.updateWorkspace)(e,{name:b.trim(),slug:w.trim()});(0,p.trackSettingsUpdated)({setting_tab:"general"}),T(s.name),E(s.slug),i.toast.success("Workspace updated"),s.slug!==r&&f.replace(`/w/${s.slug}/settings`)}catch(e){i.toast.error(e instanceof Error?e.message:"Failed to update workspace")}finally{M(!1)}}},L=async()=>{if(I===C){$(!0);try{await (0,d.deleteWorkspace)(e,C),i.toast.success("Workspace deleted"),f.replace("/workspaces")}catch(e){i.toast.error(e instanceof Error?e.message:"Failed to delete workspace")}finally{$(!1)}}};return v?(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsx)(x.Skeleton,{className:"h-4 w-32"}),(0,s.jsx)(x.Skeleton,{className:"h-10 w-full"}),(0,s.jsx)(x.Skeleton,{className:"h-10 w-full"})]}):"owner"!==g?(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:"Only workspace owners can edit workspace settings."}):(0,s.jsxs)("div",{className:"space-y-10",children:[(0,s.jsxs)("section",{className:"space-y-4",children:[(0,s.jsx)("h2",{className:"text-sm font-medium",children:"Workspace"}),(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)(u.Label,{htmlFor:"workspace-name",children:"Name"}),(0,s.jsx)(m.Input,{id:"workspace-name",value:b,onChange:e=>{let s=e.target.value;y(s),P.name&&s.trim()&&z(e=>({...e,name:void 0}))},placeholder:"Workspace name","aria-invalid":!!P.name,"aria-describedby":P.name?"workspace-name-error":void 0}),P.name&&(0,s.jsx)("p",{id:"workspace-name-error",className:"text-xs text-destructive",children:P.name})]}),(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)(u.Label,{htmlFor:"workspace-slug",children:"Slug"}),(0,s.jsx)(m.Input,{id:"workspace-slug",value:w,onChange:e=>{let s=e.target.value;k(s),P.slug&&s.trim()&&z(e=>({...e,slug:void 0}))},placeholder:"workspace-slug","aria-invalid":!!P.slug,"aria-describedby":P.slug?"workspace-slug-error":void 0}),P.slug&&(0,s.jsx)("p",{id:"workspace-slug-error",className:"text-xs text-destructive",children:P.slug}),(0,s.jsxs)("p",{className:"text-xs text-muted-foreground/70",children:["Used in URLs: /w/",w,"/"]})]})]}),(0,s.jsx)(o.Button,{size:"sm",onClick:D,disabled:!A||_,children:_?"Saving…":"Save"})]}),(0,s.jsxs)("section",{className:"space-y-4",children:[(0,s.jsx)("h2",{className:"text-sm font-medium text-destructive",children:"Danger Zone"}),(0,s.jsxs)("div",{className:"rounded-md border border-destructive/30 p-4 space-y-3",children:[(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:"Deleting this workspace is permanent and cannot be undone. All agents, conversations, and data will be lost."}),(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsxs)(u.Label,{htmlFor:"delete-confirm",className:"text-xs",children:["Type ",(0,s.jsx)("span",{className:"font-medium text-foreground",children:C})," to confirm"]}),(0,s.jsx)(m.Input,{id:"delete-confirm",value:I,onChange:e=>O(e.target.value),placeholder:C})]}),(0,s.jsx)(o.Button,{size:"sm",variant:"destructive",onClick:L,disabled:I!==C||R,children:R?"Deleting…":"Delete Workspace"})]})]})]})}var g=e.i(740513);function j({ratio:e,size:t=16,stroke:r=1.5}){let i=(t-r)/2,n=2*Math.PI*i,l=(e<=0?0:e>=1?1:Math.log1p(99*e)/Math.log(100))*n;return(0,s.jsxs)("svg",{width:t,height:t,className:"shrink-0 -rotate-90","aria-hidden":!0,children:[(0,s.jsx)("circle",{cx:t/2,cy:t/2,r:i,fill:"none",stroke:"currentColor",strokeWidth:r,className:"text-border"}),(0,s.jsx)("circle",{cx:t/2,cy:t/2,r:i,fill:"none",stroke:"currentColor",strokeWidth:r,strokeDasharray:`${l} ${n-l}`,strokeLinecap:"round",className:(0,a.cn)("transition-all duration-300",e>.9?"text-destructive/70":e>.7?"text-yellow-500/50":"text-muted-foreground/30")})]})}function v(){let{workspaceId:e}=(0,l.useWorkspace)(),[r,a]=(0,t.useState)(""),[n,c]=(0,t.useState)(""),[o,m]=(0,t.useState)(!0),u=(0,t.useRef)(r);(0,t.useEffect)(()=>{u.current=r},[r]);let h=(0,t.useRef)(n);(0,t.useEffect)(()=>{h.current=n},[n]);let p=(0,t.useRef)(null),f=(0,t.useRef)(!1),v=(0,t.useCallback)(async()=>{m(!0);try{let s=await (0,d.getMemberMe)(e);a(s.global_instruction),c(s.global_instruction)}catch(e){i.toast.error(e instanceof Error?e.message:"Failed to load settings")}finally{m(!1)}},[e]);(0,t.useEffect)(()=>{v()},[v]);let N=(0,t.useRef)(()=>{}),b=(0,t.useCallback)(async()=>{if(f.current)return;let s=u.current;if(s!==h.current){f.current=!0;try{let t=await (0,d.updateMemberMe)(e,s);c(t.global_instruction)}catch(e){i.toast.error(e instanceof Error?e.message:"Failed to save")}finally{f.current=!1,u.current!==h.current&&N.current()}}},[e]),y=(0,t.useCallback)(()=>{p.current&&clearTimeout(p.current),p.current=setTimeout(b,500)},[b]);(0,t.useEffect)(()=>{N.current=y},[y]);let w=(0,t.useCallback)(e=>{a(e),y()},[y]);(0,t.useEffect)(()=>{let s=()=>{if(p.current&&clearTimeout(p.current),u.current!==h.current){let s=new URLSearchParams({workspace_id:e});fetch(`/api/members/me?${s}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({global_instruction:u.current}),keepalive:!0})}};return window.addEventListener("beforeunload",s),()=>window.removeEventListener("beforeunload",s)},[e]),(0,t.useEffect)(()=>()=>{if(p.current&&clearTimeout(p.current),u.current!==h.current){let s=new URLSearchParams({workspace_id:e});fetch(`/api/members/me?${s}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({global_instruction:u.current}),keepalive:!0})}},[e]);let k=r.length/5e4;return o?(0,s.jsxs)("div",{className:"px-6 py-6 space-y-4",children:[(0,s.jsx)(x.Skeleton,{className:"h-4 w-48"}),(0,s.jsx)(x.Skeleton,{className:"h-40 w-full"})]}):(0,s.jsxs)("div",{className:"flex flex-col h-full",children:[(0,s.jsx)("div",{className:"flex-1 px-6 pt-4 pb-4",children:(0,s.jsx)(g.MarkdownEditor,{value:r,onChange:w,placeholder:"Write instructions that every agent you own will follow...",minHeight:"calc(100vh - 240px)",contentType:"markdown",variant:"seamless"})}),(0,s.jsxs)("div",{className:"flex items-center gap-2 px-6 py-3",children:[(0,s.jsx)(j,{ratio:k}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:"This instruction is prepended to every agent's individual instruction."})]})]})}var N=e.i(956448),b=e.i(6798),y=e.i(304928),w=e.i(761943),k=e.i(329686),C=e.i(132977);function T(e){return`${window.location.origin}/invite/${e}`}function S(){let{workspaceId:e}=(0,l.useWorkspace)(),r=(0,c.useSession)(),n=r.data?.user?.id,[m,u]=(0,t.useState)([]),[h,f]=(0,t.useState)([]),[g,j]=(0,t.useState)(!0),[v,S]=(0,t.useState)(!1),E=m.find(e=>e.user_id===n)?.role==="owner",_=(0,t.useCallback)(async()=>{j(!0);try{let[s,t]=await Promise.all([(0,d.listMembers)(e),(0,d.listInvites)(e).catch(()=>[])]);u(s),f(t)}catch(e){i.toast.error(e instanceof Error?e.message:"Failed to load members")}finally{j(!1)}},[e]);(0,t.useEffect)(()=>{_()},[_]);let M=async()=>{S(!0);try{let s=await (0,d.createInvite)(e);(0,p.trackTeamMemberInvited)({workspace_id:e}),f(e=>[...e,s]);let t=T(s.token);await navigator.clipboard.writeText(t),i.toast.success("Invite link copied to clipboard")}catch(e){i.toast.error(e instanceof Error?e.message:"Failed to generate invite")}finally{S(!1)}},P=async e=>{let s=T(e);try{await navigator.clipboard.writeText(s),i.toast.success("Invite link copied")}catch{i.toast.error("Failed to copy link")}},z=async s=>{try{await (0,d.revokeInvite)(e,s),f(e=>e.filter(e=>e.id!==s)),i.toast.success("Invite revoked")}catch(e){i.toast.error(e instanceof Error?e.message:"Failed to revoke invite")}},I=async s=>{try{await (0,d.removeMember)(e,s),u(e=>e.filter(e=>e.id!==s)),i.toast.success("Member removed")}catch(e){i.toast.error(e instanceof Error?e.message:"Failed to remove member")}};return g?(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsx)(x.Skeleton,{className:"h-4 w-24"}),(0,s.jsx)(x.Skeleton,{className:"h-10 w-full"}),(0,s.jsx)(x.Skeleton,{className:"h-10 w-full"}),(0,s.jsx)(x.Skeleton,{className:"h-4 w-24 mt-6"}),(0,s.jsx)(x.Skeleton,{className:"h-10 w-full"}),(0,s.jsx)(x.Skeleton,{className:"h-10 w-full"})]}):(0,s.jsxs)("div",{className:"space-y-8",children:[E&&(0,s.jsxs)("section",{className:"space-y-3",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsx)("h2",{className:"text-sm font-medium",children:"Pending Invites"}),(0,s.jsxs)(o.Button,{size:"sm",variant:"outline",onClick:M,disabled:v,children:[(0,s.jsx)(y.Plus,{className:"size-3.5 mr-1"}),v?"Generating…":"Generate invite link"]})]}),0===h.length?(0,s.jsx)("p",{className:"text-xs text-muted-foreground py-2",children:"No active invite links. Generate one to invite someone to this workspace."}):(0,s.jsx)("div",{className:"space-y-2",children:h.map(e=>{let t=new Date(e.expires_at),r=t<new Date;return(0,s.jsxs)("div",{className:"flex items-center justify-between rounded-md border border-border/50 px-3 py-2 text-xs",children:[(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,s.jsxs)("p",{className:(0,a.cn)("font-mono truncate",r&&"text-muted-foreground line-through"),children:["/invite/",e.token.slice(0,12),"…"]}),(0,s.jsx)("p",{className:(0,a.cn)("text-muted-foreground/70 mt-1",r&&"text-destructive/70"),children:r?"Expired":`Expires ${t.toLocaleDateString()}`})]}),(0,s.jsxs)("div",{className:"flex items-center gap-1 ml-2 shrink-0",children:[!r&&(0,s.jsxs)(k.Tooltip,{children:[(0,s.jsx)(k.TooltipTrigger,{render:(0,s.jsx)(o.Button,{size:"sm",variant:"ghost",className:"h-7 w-7 p-0",onClick:()=>P(e.token)}),children:(0,s.jsx)(N.Copy,{className:"size-3.5"})}),(0,s.jsx)(k.TooltipContent,{children:"Copy invite link"})]}),(0,s.jsxs)(k.Tooltip,{children:[(0,s.jsx)(k.TooltipTrigger,{render:(0,s.jsx)(o.Button,{size:"sm",variant:"ghost",className:"h-7 w-7 p-0 text-destructive hover:text-destructive",onClick:()=>z(e.id)}),children:(0,s.jsx)(b.Trash2,{className:"size-3.5"})}),(0,s.jsx)(k.TooltipContent,{children:"Revoke invite"})]})]})]},e.id)})})]}),(0,s.jsxs)("section",{className:"space-y-3",children:[(0,s.jsx)("h2",{className:"text-sm font-medium",children:"Members"}),(0,s.jsx)("div",{className:"space-y-2",children:m.map(e=>{let t=e.user_id===n,r=(0,C.displayName)(e).split(" ").map(e=>e[0]).join("").slice(0,2).toUpperCase();return(0,s.jsxs)("div",{className:"flex items-center gap-3 rounded-md border border-border/50 px-3 py-2",children:[(0,s.jsx)("div",{className:"size-7 rounded-full bg-muted flex items-center justify-center text-xs font-medium text-muted-foreground shrink-0 overflow-hidden",children:e.image?(0,s.jsx)("img",{src:e.image,alt:e.name,className:"size-full object-cover"}):r}),(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,s.jsxs)("p",{className:"text-sm font-medium truncate leading-tight",children:[(0,C.displayName)(e),t&&(0,s.jsx)("span",{className:"ml-2 text-xs text-muted-foreground font-normal",children:"(you)"})]}),e.name&&(0,s.jsx)("p",{className:"text-xs text-muted-foreground truncate",children:e.email})]}),(0,s.jsx)("span",{className:(0,a.cn)("text-xs px-2 py-1 rounded shrink-0","owner"===e.role?"bg-primary/10 text-primary":"bg-muted text-muted-foreground"),children:e.role}),E&&!t&&(0,s.jsxs)(k.Tooltip,{children:[(0,s.jsx)(k.TooltipTrigger,{render:(0,s.jsx)(o.Button,{size:"sm",variant:"ghost",className:"h-7 w-7 p-0 text-muted-foreground hover:text-destructive shrink-0",onClick:()=>I(e.id)}),children:(0,s.jsx)(w.UserMinus,{className:"size-3.5"})}),(0,s.jsx)(k.TooltipContent,{children:"Remove member"})]})]},e.id)})})]})]})}var E=e.i(885515),_=e.i(254618),M=e.i(980630);function P(){let[e,r]=(0,t.useState)(!1),[a,n]=(0,t.useState)([...M.NOTIFICATION_EVENTS]),[l,c]=(0,t.useState)(!0),[d,o]=(0,t.useState)(!1);(0,t.useEffect)(()=>{c((0,M.isNotificationSupported)()),r((0,M.getNotificationEnabled)()),n((0,M.getNotificationEvents)()),(0,M.isNotificationSupported)()&&o("denied"===Notification.permission)},[]);let m=async e=>{if(!e){r(!1),(0,M.setNotificationEnabled)(!1);return}await (0,M.requestNotificationPermission)()?(r(!0),(0,M.setNotificationEnabled)(!0)):(o(!0),i.toast.error("Notification permission denied. Please enable it in browser settings."))};return l?(0,s.jsx)("div",{className:"space-y-6",children:(0,s.jsxs)("section",{className:"space-y-4",children:[(0,s.jsx)("h2",{className:"text-sm font-medium",children:"Browser Notifications"}),(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsxs)("div",{className:"space-y-1",children:[(0,s.jsx)("p",{className:"text-sm",children:"Enable notifications"}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:"Get notified when tasks finish while the tab is in the background"})]}),(0,s.jsx)(_.Switch,{checked:e,onCheckedChange:m,disabled:d&&!e})]}),d&&!e&&(0,s.jsx)("p",{className:"text-xs text-destructive",children:"Notification permission was denied. Please allow it in your browser settings."}),e&&(0,s.jsxs)("div",{className:"space-y-2 pl-0.5",children:[(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:"Notify me when:"}),M.NOTIFICATION_EVENTS.map(e=>(0,s.jsxs)("label",{className:"flex items-center gap-2 text-sm cursor-pointer select-none",children:[(0,s.jsx)(E.Checkbox,{checked:a.includes(e),onCheckedChange:()=>{n(s=>{let t=s.includes(e)?s.filter(s=>s!==e):[...s,e];return(0,M.setNotificationEvents)(t),t})}}),M.NOTIFICATION_EVENT_LABELS[e]]},e))]})]})]})}):(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:"Your browser does not support notifications."})}var z=e.i(464648);let I=(0,z.default)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]);var O=e.i(399561),R=e.i(2870),$=e.i(961909),F=e.i(790961);function A(){let[e,r]=(0,t.useState)(!1),[i,n]=(0,t.useState)(O.CLOUD_CODE_MONSTER_PET_PRESETS[0].id),l=(0,O.getCloudCodeMonsterPreset)(i);return(0,t.useEffect)(()=>{r((0,F.readHomePetSettings)().enabled),n((0,O.readCloudCodeMonsterPetPresetId)());let e=e=>{let s=e.detail?.presetId;n(s?(0,O.getCloudCodeMonsterPreset)(s).id:(0,O.readCloudCodeMonsterPetPresetId)())};return window.addEventListener(R.CLOUD_CODE_MONSTER_PRESET_CHANGED_EVENT,e),()=>{window.removeEventListener(R.CLOUD_CODE_MONSTER_PRESET_CHANGED_EVENT,e)}},[]),(0,s.jsxs)("div",{className:"space-y-8",children:[(0,s.jsxs)("section",{className:"space-y-4",children:[(0,s.jsx)("h2",{className:"text-sm font-medium",children:"Pet"}),(0,s.jsx)("div",{className:"space-y-4",children:(0,s.jsxs)("div",{className:"flex items-center justify-between gap-4",children:[(0,s.jsxs)("div",{className:"space-y-1",children:[(0,s.jsx)(u.Label,{htmlFor:"pet-enabled",className:"text-sm",children:"Enable pet"}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:"Off by default. Turn it on when you want the workspace companion."})]}),(0,s.jsx)(_.Switch,{id:"pet-enabled",checked:e,onCheckedChange:e=>{r(e),(0,F.writeHomePetSettings)({enabled:e})}})]})})]}),e?(0,s.jsxs)("section",{className:"space-y-4",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h2",{className:"text-sm font-medium",children:"Preset"}),(0,s.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:l.name})]}),(0,s.jsx)("div",{className:"grid size-14 place-items-center rounded-md bg-card ring-1 ring-border/60",children:(0,s.jsx)($.CloudCodeMonsterPresetPreview,{preset:l,className:"size-11"})})]}),(0,s.jsx)("div",{className:"grid grid-cols-2 gap-2 sm:grid-cols-3",children:O.CLOUD_CODE_MONSTER_PET_PRESETS.map(e=>{let t=e.id===l.id;return(0,s.jsxs)("button",{type:"button","aria-pressed":t,onClick:()=>{n((0,O.writeCloudCodeMonsterPetPresetId)(e.id))},className:(0,a.cn)("group grid h-28 min-w-0 grid-rows-[1fr_auto] rounded-md border bg-card/60 p-2 text-left transition-all hover:border-foreground/20 hover:bg-accent/55 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/70",t?"border-primary/50 bg-accent text-foreground":"border-border/50 text-muted-foreground"),children:[(0,s.jsx)("div",{className:"grid place-items-center rounded bg-background/70 ring-1 ring-border/35",children:(0,s.jsx)($.CloudCodeMonsterPresetPreview,{preset:e,className:"size-14 transition-transform duration-200 group-hover:scale-105"})}),(0,s.jsxs)("div",{className:"mt-2 flex min-w-0 items-center justify-between gap-1 text-[10px] leading-none",children:[(0,s.jsx)("span",{className:"truncate font-medium text-foreground",children:e.name}),t?(0,s.jsx)(I,{className:"size-3 shrink-0 text-primary"}):(0,s.jsx)("span",{className:"shrink-0 text-muted-foreground",children:e.id.replace("pet-","#")})]})]},e.id)})})]}):null]})}var D=e.i(355578),L=e.i(934351),W=e.i(875061),U=e.i(460753),B=e.i(333933),H=e.i(271427),G=e.i(351171),q=e.i(986246);let V=(0,z.default)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);function J({icon:e,label:t,value:r,sub:a}){return(0,s.jsx)(L.Card,{size:"sm",children:(0,s.jsxs)(L.CardContent,{className:"flex items-center gap-3",children:[(0,s.jsx)("div",{className:"flex size-9 shrink-0 items-center justify-center rounded-lg bg-primary/10 text-primary",children:(0,s.jsx)(e,{className:"size-4"})}),(0,s.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-1",children:[(0,s.jsx)("p",{className:"text-2xl font-semibold leading-none tracking-tight",children:r}),a&&(0,s.jsx)(W.Badge,{variant:"secondary",className:"text-[10px] px-2 h-4 font-normal",children:a})]}),(0,s.jsx)("p",{className:"mt-1 text-xs text-muted-foreground truncate",children:t})]})]})})}function K({agents:e,runtimes:t,activeTaskCounts:r,overview:a}){let i=new Map;for(let e of t){let s=e.daemon_id??e.id;i.set(s,i.get(s)||"online"===e.status)}let n=i.size,l=[...i.values()].filter(Boolean).length,c=Object.values(r).reduce((e,s)=>e+s,0),d=e.filter(e=>{let s=t.find(s=>s.id===e.runtime_id);return s?.status==="online"}).length;return(0,s.jsxs)("div",{className:"grid gap-3 grid-cols-2 sm:grid-cols-6",children:[(0,s.jsx)(J,{icon:q.Monitor,label:"Machines",value:`${l}/${n}`,sub:"online"}),(0,s.jsx)(J,{icon:U.Bot,label:"Agents",value:e.length,sub:`${d} online`}),(0,s.jsx)(J,{icon:G.Users,label:"Members",value:a.members.length,sub:a.pending_invites>0?`${a.pending_invites} pending`:void 0}),(0,s.jsx)(J,{icon:V,label:"Active Tasks",value:c,sub:a.task_stats.queued>0?`${a.task_stats.queued} queued`:void 0}),(0,s.jsx)(J,{icon:H.Send,label:"Emails Sent",value:a.email_stats.outbound,sub:`${a.email_stats.unread} unread`}),(0,s.jsx)(J,{icon:B.Mail,label:"Custom Emails",value:a.email_accounts.length})]})}function Q({overview:e}){let{completed:t,failed:r,cancelled:a,queued:i,stale:n}=e.task_stats,l=t+r,c=l>0?(r/l*100).toFixed(1):"0";return(0,s.jsxs)(L.Card,{children:[(0,s.jsx)(L.CardHeader,{children:(0,s.jsx)(L.CardTitle,{children:"Task Health (Today)"})}),(0,s.jsx)(L.CardContent,{children:(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,s.jsx)(Y,{label:"Completed",value:t}),(0,s.jsx)(Y,{label:"Failed",value:r,className:r>0?"text-destructive":void 0}),(0,s.jsx)(Y,{label:"Cancelled",value:a}),(0,s.jsx)(Y,{label:"Failure Rate",value:`${c}%`,className:Number(c)>10?"text-destructive":void 0}),(0,s.jsx)(Y,{label:"Queue Backlog",value:i,className:i>10?"text-amber-500":void 0}),(0,s.jsx)(Y,{label:"Stale Tasks",value:n,className:n>0?"text-destructive":void 0})]})})]})}function Y({label:e,value:t,className:r}){return(0,s.jsxs)("div",{children:[(0,s.jsx)("p",{className:`text-xl font-semibold ${r??""}`,children:t}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:e})]})}function Z({overview:e,agents:t}){let{inbound:r,outbound:a,unread:i,rejected:n}=e.email_stats,l=new Map(t.map(e=>[e.id,e.name]));return(0,s.jsxs)(L.Card,{children:[(0,s.jsx)(L.CardHeader,{children:(0,s.jsx)(L.CardTitle,{children:"Email Summary"})}),(0,s.jsxs)(L.CardContent,{className:"space-y-4",children:[(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("p",{className:"text-xl font-semibold",children:r}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:"Received"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("p",{className:"text-xl font-semibold",children:a}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:"Sent"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("p",{className:`text-xl font-semibold ${i>0?"text-primary":""}`,children:i}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:"Unread"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("p",{className:`text-xl font-semibold ${n>0?"text-amber-500":""}`,children:n}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:"Untrust"})]})]}),e.email_accounts.length>0&&(0,s.jsxs)("div",{className:"space-y-2 pt-2 border-t border-border/50",children:[(0,s.jsx)("p",{className:"text-xs font-medium text-muted-foreground",children:"Custom Mailboxes"}),e.email_accounts.map(e=>(0,s.jsxs)("div",{className:"flex items-center justify-between gap-2 text-xs",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,s.jsxs)(k.Tooltip,{children:[(0,s.jsx)(k.TooltipTrigger,{render:(0,s.jsx)("span",{className:`size-1.5 shrink-0 rounded-full ${"active"===e.status?"bg-emerald-500":"bg-destructive"}`})}),(0,s.jsx)(k.TooltipContent,{side:"top",children:"active"===e.status?"Active":`Error: ${e.error_message||"inactive"}`})]}),(0,s.jsx)("span",{className:"truncate",children:e.email_address})]}),(0,s.jsx)("span",{className:"text-muted-foreground shrink-0",children:l.get(e.agent_id)??"—"})]},e.id))]})]})]})}var X=e.i(370843);function ee({runtimes:e,agents:t}){let r=(0,n.useRouter)(),{slug:a}=(0,l.useWorkspace)(),i=new Map;for(let s of e){let e=s.daemon_id??s.id;i.has(e)||i.set(e,{runtimes:[],deviceInfo:s.device_info??""}),i.get(e).runtimes.push(s)}let c=[...i.entries()];return 0===c.length?(0,s.jsxs)(L.Card,{children:[(0,s.jsxs)(L.CardHeader,{children:[(0,s.jsx)(L.CardTitle,{children:"Machines"}),(0,s.jsx)(L.CardAction,{children:(0,s.jsx)("button",{type:"button",onClick:()=>r.push(`/w/${a}/runtimes`),className:"text-muted-foreground hover:text-foreground transition-colors cursor-pointer",children:(0,s.jsx)(X.ArrowUpRight,{className:"size-4"})})})]}),(0,s.jsx)(L.CardContent,{children:(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:"No machines connected."})})]}):(0,s.jsxs)(L.Card,{children:[(0,s.jsx)(L.CardHeader,{children:(0,s.jsx)(L.CardTitle,{children:"Machines"})}),(0,s.jsx)(L.CardContent,{className:"space-y-3",children:c.map(([e,r])=>{let a=r.runtimes.some(e=>"online"===e.status),i=r.runtimes.map(e=>e.last_seen_at).filter(Boolean).sort().reverse()[0],n=t.filter(e=>r.runtimes.some(s=>s.id===e.runtime_id)),l=r.runtimes.some(e=>e.pending_update_version),c=r.runtimes.find(e=>e.pending_update_version)?.pending_update_version;return(0,s.jsxs)("div",{className:"flex items-start gap-3 text-xs",children:[(0,s.jsxs)(k.Tooltip,{children:[(0,s.jsx)(k.TooltipTrigger,{render:(0,s.jsx)("span",{className:`mt-1 size-2 shrink-0 rounded-full ${a?"bg-emerald-500":"bg-muted-foreground/30"}`})}),(0,s.jsx)(k.TooltipContent,{side:"top",children:a?"Online":"Offline"})]}),(0,s.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{className:"font-medium truncate",children:r.deviceInfo||e.slice(0,12)}),l&&(0,s.jsxs)(k.Tooltip,{children:[(0,s.jsx)(k.TooltipTrigger,{render:(0,s.jsx)("span",{children:(0,s.jsx)(W.Badge,{variant:"outline",className:"text-[10px] px-2 py-0 text-amber-500 border-amber-500/30",children:"update"})})}),(0,s.jsxs)(k.TooltipContent,{side:"top",children:["Pending update to v",c]})]})]}),(0,s.jsxs)("div",{className:"text-muted-foreground mt-1",children:[n.length>0?n.map(e=>e.name).join(", "):"No agents"," · ",function(e){if(!e)return"never";let s=Math.floor((Date.now()-new Date(e).getTime())/1e3);if(s<60)return`${s}s ago`;let t=Math.floor(s/60);if(t<60)return`${t}m ago`;let r=Math.floor(t/60);return r<24?`${r}h ago`:`${Math.floor(r/24)}d ago`}(i??null)]})]})]},e)})})]})}var es=e.i(280958);function et({overview:e}){let t=(0,n.useRouter)(),{slug:r}=(0,l.useWorkspace)(),{members:a,pending_invites:i}=e;return(0,s.jsxs)(L.Card,{children:[(0,s.jsxs)(L.CardHeader,{children:[(0,s.jsx)(L.CardAction,{children:(0,s.jsx)("button",{type:"button",onClick:()=>t.push(`/w/${r}/settings`),className:"text-muted-foreground hover:text-foreground transition-colors cursor-pointer",children:(0,s.jsx)(X.ArrowUpRight,{className:"size-4"})})}),(0,s.jsxs)(L.CardTitle,{children:["Team",i>0&&(0,s.jsxs)("span",{className:"ml-2 text-xs text-muted-foreground font-normal",children:["(",i," pending invite",i>1?"s":"",")"]})]})]}),(0,s.jsx)(L.CardContent,{className:"p-0",children:(0,s.jsx)("div",{className:"divide-y divide-border/50",children:[...a].sort((e,s)=>"owner"===e.role?-1:+("owner"===s.role)).map(e=>(0,s.jsxs)("div",{className:"flex items-center gap-3 px-4 py-2",children:[e.image?(0,s.jsx)("img",{src:e.image,alt:e.name,className:"size-7 rounded-full shrink-0"}):(0,s.jsx)("div",{className:"flex size-7 shrink-0 items-center justify-center rounded-full bg-secondary text-xs font-medium",children:(0,es.avatarInitial)((0,C.displayName)(e))}),(0,s.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,s.jsx)("span",{className:"text-sm font-medium truncate block",children:(0,C.displayName)(e)}),e.name&&(0,s.jsx)("span",{className:"text-xs text-muted-foreground truncate block",children:e.email})]}),(0,s.jsx)(W.Badge,{variant:"owner"===e.role?"default":"secondary",className:"text-[10px] px-2 py-0 shrink-0",children:e.role})]},e.id))})})]})}function er(){let{agents:e,runtimes:r,loading:a,activeTaskCounts:i}=(0,D.useAgentContext)(),{workspaceId:n}=(0,l.useWorkspace)(),[c,o]=(0,t.useState)(null),[m,u]=(0,t.useState)(!1);return((0,t.useEffect)(()=>{if(a)return;let e=!1;return u(!0),(0,d.getWorkspaceOverview)(n).then(s=>{e||o(s)}).catch(()=>{}).finally(()=>{e||u(!1)}),()=>{e=!0}},[a,n]),m||!c)?(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsx)(x.Skeleton,{className:"h-44 rounded-xl"}),(0,s.jsx)(x.Skeleton,{className:"h-44 rounded-xl"}),(0,s.jsx)(x.Skeleton,{className:"h-44 rounded-xl"}),(0,s.jsx)(x.Skeleton,{className:"h-44 rounded-xl"})]}):(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsx)(K,{agents:e,runtimes:r,activeTaskCounts:i,overview:c}),(0,s.jsxs)("div",{className:"grid gap-4 lg:grid-cols-2",children:[(0,s.jsx)(Q,{overview:c}),(0,s.jsx)(Z,{overview:c,agents:e})]}),(0,s.jsxs)("div",{className:"grid gap-4 lg:grid-cols-2",children:[(0,s.jsx)(ee,{runtimes:r,agents:e}),(0,s.jsx)(et,{overview:c})]})]})}let ea=[{id:"general",label:"General"},{id:"pet",label:"Pet"},{id:"instruction",label:"Global Instruction"},{id:"notifications",label:"Notifications"},{id:"members",label:"Members"},{id:"usages",label:"Usages"}];e.s(["default",0,function(){let[e,i]=(0,t.useState)("general");return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"flex items-center justify-between border-b border-border/50 px-3 sm:px-4 py-2 gap-3",children:(0,s.jsx)("div",{className:"flex items-center gap-3 min-w-0",children:(0,s.jsx)("h1",{className:"text-sm font-medium",children:"Settings"})})}),(0,s.jsxs)("div",{className:"flex flex-1 min-h-0",children:[(0,s.jsxs)("nav",{className:"w-48 shrink-0 border-r border-border/50 py-3 px-2 hidden sm:flex sm:flex-col",children:[(0,s.jsx)("div",{className:"flex-1",children:ea.map(t=>(0,s.jsx)("button",{onClick:()=>i(t.id),className:(0,a.cn)("w-full rounded-md px-2 py-2 text-left text-sm transition-colors",e===t.id?"bg-accent text-foreground font-medium":"text-muted-foreground hover:bg-accent/50 hover:text-foreground"),children:t.label},t.id))}),(0,s.jsxs)("div",{className:"px-2 pt-3 border-t border-border/50 text-[11px] text-muted-foreground/60",children:["v","0.0.154"]})]}),(0,s.jsxs)("div",{className:"flex-1 min-w-0 flex flex-col",children:[(0,s.jsx)("div",{className:"px-4 pt-2 sm:hidden",children:(0,s.jsx)(r.Tabs,{className:"items-center",value:e,onValueChange:e=>i(e),children:(0,s.jsx)(r.TabsList,{className:"h-auto gap-1",children:ea.map(e=>(0,s.jsx)(r.TabsTrigger,{value:e.id,children:e.label},e.id))})})}),(0,s.jsx)("div",{className:(0,a.cn)("flex-1 overflow-y-auto thin-scrollbar","instruction"!==e&&"px-4 py-4"),children:"instruction"===e?(0,s.jsx)(v,{}):"usages"===e?(0,s.jsx)(er,{}):(0,s.jsxs)("div",{className:"mx-auto max-w-md",children:["general"===e&&(0,s.jsx)(f,{}),"pet"===e&&(0,s.jsx)(A,{}),"notifications"===e&&(0,s.jsx)(P,{}),"members"===e&&(0,s.jsx)(S,{})]})}),(0,s.jsxs)("div",{className:"px-4 py-2 text-[11px] text-muted-foreground/60 sm:hidden",children:["v","0.0.154"]})]})]})]})}],716032)}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,480114,e=>{"use strict";var t=e.i(636407),n=e.i(147156),a=e.i(196573),s=e.i(516266),r=e.i(849050),i=e.i(636557),o=e.i(996718),l=e.i(631956),d=e.i(975719),u=e.i(925565),c=e.i(632260),m=e.i(188181),h=e.i(477398),p=e.i(833813),f=e.i(941308),g=e.i(370843),x=e.i(531342),v=e.i(574727),y=e.i(133491),b=e.i(973733),I=e.i(728886),C=e.i(334240),j=e.i(280958),M=e.i(838114),S=e.i(374402);function w({parentMessageId:e,onOpenProfile:n,onPreviewImage:a,onDownloadFile:s,onJump:i}){let o,l,{message:d,isLoading:u,isError:c}=(o=!!e,{...l=(0,M.useQuery)({queryKey:o?S.communityKeys.message(e):S.communityKeys.message("__none__"),queryFn:o?()=>(0,r.apiFetch)(`/api/community/messages/${e}`):()=>Promise.reject(Error("disabled")),enabled:o,staleTime:3e4}),message:l.data??null});if(u)return(0,t.jsx)(N,{});if(c||!d)return(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"mb-2 flex items-center gap-2 text-xs font-medium text-muted-foreground",children:[(0,t.jsx)(h.MessagesSquare,{className:"size-3.5"}),(0,t.jsx)("span",{children:"Thread started from a message"})]}),(0,t.jsx)("p",{className:"text-sm italic text-muted-foreground",children:"Original message is unavailable."})]});let m=d.authorAvatar||(0,j.avatarInitial)(d.authorName);return(0,t.jsxs)("div",{className:"group relative",children:[(0,t.jsxs)("div",{className:"mb-2 flex items-center gap-2 text-xs font-medium text-muted-foreground",children:[(0,t.jsx)(h.MessagesSquare,{className:"size-3.5"}),(0,t.jsx)("span",{children:"Thread started from"})]}),i&&(0,t.jsxs)("button",{type:"button",onClick:i,className:"absolute right-0 top-0 flex h-7 items-center gap-1 rounded-md px-2 text-xs font-medium text-muted-foreground opacity-0 transition-opacity hover:bg-accent hover:text-foreground focus-visible:opacity-100 focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none group-hover:opacity-100","aria-label":"Jump to message",title:"Jump to message",children:[(0,t.jsx)(g.ArrowUpRight,{className:"size-3.5"}),"Jump"]}),(0,t.jsxs)("div",{className:"flex gap-3",children:[(0,t.jsx)("button",{onClick:e=>n?.(d.authorName,e,void 0,d.authorId),className:"shrink-0 self-start",children:(0,t.jsx)(x.Avatar,{label:m,seed:d.authorId,size:40})}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsxs)("div",{className:"flex items-baseline gap-2",children:[(0,t.jsx)("button",{onClick:e=>n?.(d.authorName,e,void 0,d.authorId),className:"text-[15px] font-semibold hover:underline",children:d.authorName}),(0,t.jsx)("span",{className:"text-xs text-muted-foreground",suppressHydrationWarning:!0,children:(0,b.formatMessageTime)(d.createdAt)})]}),d.content&&(0,t.jsx)(v.MessageBody,{text:d.content,onOpenProfile:n}),d.attachments&&d.attachments.length>0&&(0,t.jsx)("div",{className:"mt-2 flex flex-col gap-2 pb-2",children:d.attachments.map((e,n)=>"image"===e.kind?(0,t.jsx)("button",{onClick:()=>a?.(e.url),className:"block w-fit max-w-[320px] overflow-hidden rounded-lg border border-border transition-colors hover:border-primary/40",children:(0,t.jsx)("img",{src:e.url,alt:e.name,className:"max-h-50 max-w-[320px] rounded-lg object-contain",style:{aspectRatio:(0,y.attachmentAspectRatio)(e.width,e.height)}})},n):(0,t.jsxs)("button",{onClick:()=>s?.(e.url),className:"flex w-full max-w-[320px] items-center gap-3 rounded-lg border border-border bg-card p-2 text-left transition-colors hover:bg-accent",children:[(0,t.jsx)(p.FileText,{className:"size-7 shrink-0 text-muted-foreground"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("div",{className:"truncate text-sm font-medium text-primary",children:e.name}),"size"in e&&e.size&&(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:e.size})]}),(0,t.jsx)(f.Download,{className:"size-4 shrink-0 text-muted-foreground"})]},n))}),d.reactions&&d.reactions.length>0&&(0,t.jsx)("div",{className:"mt-2 flex flex-wrap gap-1",children:d.reactions.map((e,n)=>(0,t.jsxs)("span",{className:["flex h-6 items-center gap-1 rounded-full px-2 text-sm",e.me?"border border-primary/50 bg-accent":"bg-secondary"].join(" "),children:[(0,t.jsx)("span",{children:e.emoji}),(0,t.jsx)(C.NumberTicker,{value:e.count,className:"text-xs text-muted-foreground"})]},n))})]})]})]})}function N(){return(0,t.jsxs)("div",{children:[(0,t.jsx)(I.Skeleton,{className:"mb-2 h-3 w-32 rounded"}),(0,t.jsxs)("div",{className:"flex gap-3",children:[(0,t.jsx)(I.Skeleton,{className:"size-10 shrink-0 rounded-full"}),(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col gap-2 pt-0.5",children:[(0,t.jsx)(I.Skeleton,{className:"h-4 w-32 rounded"}),(0,t.jsx)(I.Skeleton,{className:"h-3.5 w-full max-w-80 rounded"}),(0,t.jsx)(I.Skeleton,{className:"h-3.5 w-48 rounded"})]})]})]})}var F=e.i(648655);e.i(575084);var T=e.i(567894);e.i(954194);var A=e.i(971434),E=e.i(132977),R=e.i(923533),P=e.i(183899),k=e.i(344920),O=e.i(725521),U=e.i(825149),$=e.i(785579),L=e.i(458931);let K=Object.freeze([]);var B=e.i(850441),D=e.i(97737),q=e.i(960092),z=e.i(718877),J=e.i(71977);e.i(384302);var H=e.i(512554),Q=e.i(125498),W=e.i(997303),_=e.i(664501),V=e.i(956832);function G(){let e,h,p,f,g,x=(0,a.useParams)(),v=(0,a.useRouter)(),y=(0,a.useSearchParams)(),b=decodeURIComponent(x.serverId),I=x.channelId,[C]=(0,n.useState)(()=>y.get("msg")),N=(0,o.useBreakpoint)(),G=(0,P.useCurrentUser)(),X=(0,R.useUiHandlers)(),Y=(0,R.useCurrentChannelId)(),Z=(0,R.useCurrentChannelMeta)(),{server:ee}=(0,k.useServer)(b),et=(0,O.useServerMembers)(b),en=(0,J.useOnlineUserIds)(),ea=(0,J.useCommunityWsStore)(e=>e.userStatuses),es=(0,n.useMemo)(()=>et.members.map(e=>{let t=ea.get(e.userId);return{...e,status:(0,A.resolveRowPresence)(e,en,G.id),statusEmoji:t?t.emoji:e.statusEmoji,statusText:t?t.text:e.statusText}}),[et.members,en,G.id,ea]),er=(0,n.useMemo)(()=>(ee?.categories?.flatMap(e=>e.channels)??[]).find(e=>e.id===I)??null,[ee,I]),ei=(0,T.isForum)(er?.type),eo=!er&&!!ee?.categories,el=eo&&!!Z?.parentMessageId,[ed,eu]=(0,n.useState)(""),[ec,em]=(0,n.useState)(!1),eh=(0,n.useMemo)(()=>{let e=ee?.categories??[],t=eo?Z?.parentChannelId??I:I,n=e.find(e=>e.channels.some(e=>e.id===t));return!!n?.private},[ee,eo,Z,I]),ep=(0,U.useChannelMembers)(I,eh&&!el),ef=function(e,t=!0){let n=(0,M.useQuery)({queryKey:S.communityKeys.threadParticipants(e),queryFn:()=>(0,r.apiFetch)(`/api/community/channels/${encodeURIComponent(e)}/participants`),enabled:t&&!!e});return{...n,participants:n.data?.participants??K}}(I,el),eg=(e=(0,L.useQueryClient)(),(0,$.useMutation)({mutationFn:e=>(0,r.apiFetch)(`/api/community/channels/${encodeURIComponent(I)}/participants/${encodeURIComponent(e)}`,{method:"DELETE"}),onSuccess:()=>{e.invalidateQueries({queryKey:S.communityKeys.threadParticipants(I)})}})),ex=(h=(0,L.useQueryClient)(),(0,$.useMutation)({mutationFn:e=>(0,r.apiFetch)(`/api/community/channels/${encodeURIComponent(I)}/participants`,{method:"POST",body:JSON.stringify({userId:e})}),onSuccess:()=>{h.invalidateQueries({queryKey:S.communityKeys.threadParticipants(I)})}})),ev=(0,U.useAddableMembers)(I,eh&&!el),ey=(0,U.useAddChannelMember)(I),eb=(0,U.useRemoveChannelMember)(I),eI=el?Z?.parentChannelId??null:null,eC=(0,U.useChannelMembers)(eI??"",!!eI),ej=(0,n.useMemo)(()=>{let e=ed.trim().toLowerCase(),t=e=>{let t=ea.get(e.userId);return{id:e.userId,userId:e.userId,name:e.name,discriminator:e.discriminator,avatar:e.avatar,sub:"",role:"member",status:(0,A.resolveRowPresence)(e,en,G.id),statusEmoji:t?t.emoji:e.statusEmoji??null,statusText:t?t.text:e.statusText??"",isCreator:e.isCreator,source:e.source}},n=(t,n)=>!e||t.toLowerCase().includes(e)||(n??"").toLowerCase().includes(e);if(el){let e=Z?.creatorId;return ef.participants.filter(e=>n(e.name??"",e.discriminator)).map(n=>t({userId:n.userId,name:(0,E.displayName)(n),discriminator:n.discriminator??void 0,avatar:n.avatar,isCreator:n.userId===e}))}return eh?ep.members.filter(e=>n(e.name,e.discriminator)).map(e=>t(e)):es},[el,ef.participants,Z,eh,es,ep.members,ed,en,G.id,ea]),eM=(0,n.useMemo)(()=>eh?(el?eC.members:ep.members).filter(e=>e.userId!==G.id).map(e=>{let t=ea.get(e.userId);return{...e,status:(0,A.resolveRowPresence)(e,en,G.id),statusEmoji:t?t.emoji:e.statusEmoji,statusText:t?t.text:e.statusText}}):es.filter(e=>e.userId!==G.id),[eh,el,es,ep.members,eC.members,en,G.id,ea]),eS=(0,n.useMemo)(()=>(ee?.categories?.flatMap(e=>e.channels)??[]).map(e=>({id:e.id,name:e.name,serverId:b,serverName:ee?.name??""})),[ee,b]),{snapshot:ew,isFetching:eN}=(p=(0,M.useQuery)({queryKey:I?S.communityKeys.channelReadStateSnapshot(I):["community","channel","__none__","read-state-snapshot"],queryFn:async()=>(0,r.apiFetch)(`/api/community/channels/${I}/read-state`),enabled:!!I,staleTime:1/0,gcTime:0,refetchOnMount:"always",refetchOnWindowFocus:!1,refetchOnReconnect:!1,retry:1}),f=(0,n.useRef)(null),(g=(0,n.useRef)(I)).current!==I&&(f.current=null,g.current=I),(0,n.useEffect)(()=>{null===f.current&&p.data&&(f.current=p.data)},[p.data]),{snapshot:f.current??p.data??null,isFetching:p.isFetching}),{messages:eF,isLoading:eT,hasMoreOlder:eA,hasMoreNewer:eE,isFetchingOlder:eR,isFetchingNewer:eP,fetchOlder:ek,fetchNewer:eO,jumpToPresent:eU,latestSeq:e$}=(0,B.useMessages)(I,{lastReadMessageId:eN?void 0:ew?.lastReadMessageId??null,anchorMessageId:C}),{newDividerBefore:eL,anchorFound:eK}=(0,n.useMemo)(()=>{if(!ew)return{newDividerBefore:void 0,anchorFound:!1};let e=ew.lastReadMessageId;if(!e){for(let e of eF)if(e.authorId!==G.id)return{newDividerBefore:e.id,anchorFound:!0};return{newDividerBefore:void 0,anchorFound:!0}}let t=eF.findIndex(t=>t.id===e);if(-1===t)return{newDividerBefore:void 0,anchorFound:!1};for(let e=t+1;e<eF.length;e++)if(eF[e].authorId!==G.id)return{newDividerBefore:eF[e].id,anchorFound:!0};return{newDividerBefore:void 0,anchorFound:!0}},[eF,ew,G.id]),[eB,eD]=(0,n.useState)(null);!function({channelId:e,messages:t,scrollRootEl:a}){let s=(0,P.useCurrentUser)().id,r=(0,D.useAdvanceChannelWatermark)(),i=(0,n.useRef)(null);(0,n.useEffect)(()=>{i.current=null},[e]);let o=(0,n.useRef)(t),l=(0,n.useRef)(r);(0,n.useEffect)(()=>{o.current=t,l.current=r}),(0,n.useEffect)(()=>{if(!e||!a||"u"<typeof IntersectionObserver)return;let t=new IntersectionObserver(t=>{for(let n of t){if(!n.isIntersecting||n.intersectionRatio<.2)continue;let t=n.target.dataset.msgId;if(!t)continue;let a=o.current.find(e=>e.id===t);if(!a||!a.createdAt||a.authorId&&a.authorId===s)continue;let r=i.current;(!r||a.createdAt>r.createdAt||a.createdAt===r.createdAt&&t>r.id)&&(i.current={createdAt:a.createdAt,id:t},l.current(e,t))}},{root:a,threshold:.2});a.querySelectorAll("[data-msg-id]").forEach(e=>t.observe(e));let n=null;return"u">typeof MutationObserver&&(n=new MutationObserver(e=>{for(let n of e)n.addedNodes.forEach(e=>{1!==e.nodeType||(e.matches?.("[data-msg-id]")&&t.observe(e),e.querySelectorAll?.("[data-msg-id]").forEach(e=>t.observe(e)))})})).observe(a,{childList:!0,subtree:!0}),()=>{t.disconnect(),n?.disconnect()}},[e,t,a,s]),(0,n.useEffect)(()=>()=>{(0,D.flushPendingReads)()},[e])}({channelId:I,messages:eF,scrollRootEl:eB}),function({channelId:e,isChildChannel:t,snapshotReady:a}){let s=(0,L.useQueryClient)(),i=(0,n.useRef)(null);(0,n.useEffect)(()=>{if(!e||!a||i.current===e)return;i.current=e;let n=t?`/api/community/threads/${e}/read`:`/api/community/channels/${e}/read`;(0,r.apiFetch)(n,{method:"PUT"}).then(()=>{s.invalidateQueries({queryKey:S.communityKeys.inbox()}),s.invalidateQueries({queryKey:S.communityKeys.servers()})}).catch(()=>{})},[e,t,a,s])}({channelId:I,isChildChannel:eo,snapshotReady:!eN});let eq=(0,n.useMemo)(()=>{let e=e$-(ew?.lastReadSeq??0);return e>0?e:0},[e$,ew]),{threads:ez,isLoading:eJ}=(0,q.useThreads)(I),{posts:eH,isLoading:eQ}=(0,q.useForumPosts)(I,ei),{pins:eW,isLoading:e_}=(0,q.usePins)(I),eV=(0,z.useNotificationSettings)().channel,eG=(0,R.useCommunityStore)(e=>e.typingUsers),eX=(0,D.useSendMessage)(),eY=(0,D.useToggleReactionApi)(),eZ=(0,D.usePinMessage)(),e0=(0,D.useUnpinMessage)(),e1=(0,D.useCreateThread)(),e3=(0,H.useCreateForumPost)(),e2=(0,Q.useSetMemberRole)(),e4=(0,Q.useKickMember)(),e5=(0,W.useSetChannelNotif)(),e7=(0,_.useUploadFile)(),e8=(0,n.useCallback)(()=>{X.goBackMobile?.()},[X]);(0,n.useEffect)(()=>(R.useCommunityStore.getState().setCurrentChannelId(I),()=>{R.useCommunityStore.getState().setCurrentChannelId(null)}),[I]),(0,n.useEffect)(()=>{if(I)return(0,V.communityWsSubscribe)({channelId:I}),eo?(0,r.apiFetch)(`/api/community/threads/${I}`).then(e=>R.useCommunityStore.getState().setCurrentChannelMeta({name:e.name,parentChannelId:e.parentChannelId,parentMessageId:e.parentMessageId,creatorId:e.creatorId})).catch(e=>{(R.useCommunityStore.getState().setCurrentChannelMeta(null),e instanceof i.ApiError&&404===e.status)?v.replace(`/community/channels/${x.serverId}`):(0,r.toastApiError)(e,"Failed to load thread")}):R.useCommunityStore.getState().setCurrentChannelMeta(null),()=>{(0,V.communityWsUnsubscribe)()}},[I,eo,x.serverId,v]);let[e9,e6]=(0,n.useState)(null),[te,tt]=(0,n.useState)(null),[tn,ta]=(0,n.useState)(null),[ts,tr]=(0,n.useState)(""),[ti,to]=(0,n.useState)([]),[tl,td]=(0,n.useState)(C);(0,n.useEffect)(()=>{C&&v.replace(`/community/channels/${x.serverId}/${I}`,{scroll:!1})},[]),(0,n.useEffect)(()=>{if(tl){if(eF.some(e=>e.id===tl)){let e=setTimeout(()=>td(e=>e===tl?null:e),1600);return()=>clearTimeout(e)}eT||eR||eP||td(e=>e===tl?null:e)}},[tl,eF,eT,eR,eP]),(0,n.useEffect)(()=>{tt(null),e6(null),tr(""),to([]),ta(null),eu(""),em(!1)},[I]);let tu=(0,n.useCallback)(async e=>{if(tr(e),!e.trim())return void to([]);try{let t=new URLSearchParams({q:e});t&&t.set("channelId",I);let n=await (0,r.apiFetch)(`/api/community/search?${t}`);to(n.results.map(e=>({id:e.message.id,type:"chat",authorName:e.author.name,authorAvatar:e.author.image??(0,j.avatarInitial)(e.author.name),content:e.message.content,createdAt:e.message.createdAt})))}catch(e){to([]),(0,r.toastApiError)(e,"Search failed")}},[I]),tc=(0,n.useMemo)(()=>{if(tn)return tn;if(er)return er.name;if(Z?.name)return Z.name;let e=eH.find(e=>e.id===I);if(e)return e.name;let t=ez.find(e=>e.id===I);return t?t.name:"channel"},[tn,er,eH,ez,Z,I]),tm=(0,n.useMemo)(()=>new Set(eW.map(e=>e.id)),[eW]),th=e=>e6(t=>t===e?null:e),tp=e=>{v.push(`/community/channels/${x.serverId}/${e}`)},tf=(e,t,n,a)=>{X.openProfile?.(e,t,n,a)},tg=(0,n.useCallback)(async(e,t)=>{try{return await eX.mutateAsync({channelId:I,content:e,replyToId:t?.replyToId,mentionType:t?.mentionType,attachments:t?.attachments,author:{id:G.id,name:G.name,avatar:G.avatar}})}catch{return null}},[eX,I,G.id,G.name,G.avatar]),tx={onToggleReaction:(e,t)=>eY({channelId:I,messageId:e,emoji:t,userId:G.id}),onReact:(e,t)=>eY({channelId:I,messageId:e,emoji:t,userId:G.id}),onReply:e=>{let t=eF.find(t=>t.id===e);t&&tt({id:t.id,authorName:t.authorName??"",text:t.content??""})},onPin:e=>{tm.has(e)?e0.mutate({channelId:I,messageId:e},{onSuccess:()=>(0,s.toast)("Message unpinned"),onError:e=>(0,r.toastApiError)(e,"Failed to unpin message")}):(eZ.mutate({channelId:I,messageId:e},{onSuccess:()=>(0,s.toast)("Message pinned"),onError:e=>(0,r.toastApiError)(e,"Failed to pin message")}),e6("pinned"))},onCreateThread:async e=>{let t=eF.find(t=>t.id===e),n=(t?.content??tc).split(/\s+/).slice(0,6).join(" ").slice(0,60)||tc;try{let t=await e1.mutateAsync({channelId:I,messageId:e,name:n});v.push(`/community/channels/${x.serverId}/${t.id}`)}catch(e){(0,r.toastApiError)(e,"Failed to create thread")}},onCopy:e=>{let t=eF.find(t=>t.id===e);t?.content&&(navigator.clipboard?.writeText(t.content),(0,s.toast)("Copied to clipboard"))},onRetry:e=>{let t=eF.find(t=>t.id===e);t?.content&&tg(t.content)},onPreviewImage:e=>{X.previewImage?.(e)},onDownloadFile:e=>{let t=document.createElement("a");t.href=e,t.download=e.split("/").pop()??"file",t.click()}},tv={...tx,onCreateThread:void 0},ty=(0,n.useMemo)(()=>(0,E.makeUserNameResolver)(es),[es]),tb=async(e,t,n)=>{if(!e&&!t?.length)return;let a=[];if(t?.length){let e=await Promise.all(t.map(e=>e7.mutateAsync({target:{channelId:I},file:e.file}).catch(e=>((0,r.toastApiError)(e,"Failed to attach file"),null))));a=(0,_.zipUploadResultsWithDimensions)(e,t)}tg(e||"",{replyToId:te?.id,mentionType:n,attachments:a.length>0?a:void 0}),(0,V.communityWsResetTypingThrottle)({channelId:I}),tt(null)},tI=()=>{(0,V.communityWsSendTyping)({channelId:I})},tC=async e=>{try{let t=await e3.mutateAsync({channelId:I,...e});tp(t.post.id)}catch(e){(0,r.toastApiError)(e,"Failed to create post")}},tj=es.find(e=>e.userId===G.id)?.role,tM=eo?Z?.creatorId:er?.creatorId,tS=!!tM&&tM===G.id,tw=el||eh&&!ei,tN=el||eh,tF=tN&&!ei?{viewerUserId:G.id,viewerIsCreator:tS,onLeave:e=>(el?eg:eb).mutate(e,{onError:e=>(0,r.toastApiError)(e,"Failed to leave")}),onRemove:e=>(el?eg:eb).mutate(e,{onError:e=>(0,r.toastApiError)(e,"Failed to remove")})}:void 0,tT={onOpenThread:tp,members:ej,membersLoading:el?ef.isLoading:eh?ep.isLoading:et.loading,membersLoadingMore:!tN&&et.loadingMore,membersHasMore:!tN&&et.hasMore,onLoadMoreMembers:tN?void 0:et.loadMore,onSearchMembers:tN?eu:et.searchMembers,onAddMember:tw?()=>em(!0):void 0,manageContext:tF,pinned:eW,pinnedLoading:e_,searchResults:ti,threads:ez,threadsLoading:eJ,searchQuery:ts,myRole:tj,onSearch:tu,onSetRole:(e,t)=>{e2.mutate({serverId:b,memberId:e,role:t},{onSuccess:()=>(0,s.toast)("Role updated"),onError:e=>(0,r.toastApiError)(e,"Failed to update role")})},onKickMember:e=>{e4.mutate({serverId:b,memberId:e},{onSuccess:()=>(0,s.toast)("Member kicked"),onError:e=>(0,r.toastApiError)(e,"Failed to kick member")})},onJumpToMessage:e=>{td(e),setTimeout(()=>td(null),100)}},tA=(()=>{if(!ec)return null;if(el){let e=new Set(ef.participants.map(e=>e.userId)),n=eC.members.filter(t=>!e.has(t.userId)&&t.userId!==G.id).map(e=>({userId:e.userId,name:e.name??null,avatar:e.avatar}));return(0,t.jsx)(F.AddMembersDialog,{title:`Add participants to /${Z?.name??tc}`,subtitle:"Added people are notified of new replies. Anyone with access can already read the thread.",candidates:n,addPending:ex.isPending,onAdd:async e=>{await ex.mutateAsync(e)},onClose:()=>em(!1)})}let e=ev.members.map(e=>({userId:e.userId,name:e.name??null,avatar:e.avatar}));return(0,t.jsx)(F.AddMembersDialog,{title:`Add members to /${tc}`,subtitle:"Added members can see and post in this channel.",candidates:e,addPending:ey.isPending,onAdd:async e=>{await ey.mutateAsync(e)},onClose:()=>em(!1)})})(),tE=!er&&!!ee?.categories,tR=ei?eQ:eT;if(!(Y===I&&!tR&&(!tE||null!==Z)))return ei?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(l.ChannelHeaderSkeleton,{onBack:"mobile"===N?e8:void 0}),(0,t.jsx)("main",{className:"flex min-h-0 min-w-0 flex-1 flex-col",children:(0,t.jsx)(c.ForumViewSkeleton,{})})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(l.ChannelHeaderSkeleton,{onBack:"mobile"===N?e8:void 0}),(0,t.jsxs)("main",{className:"flex min-h-0 min-w-0 flex-1 flex-col",children:[(0,t.jsx)(d.MessageList,{channel:"",messages:[],loading:!0,onOpenThread:()=>{}},I),(0,t.jsx)(u.ComposerSkeleton,{})]})]});if(eo){let e=Z?.parentChannelId,n=Z?.parentMessageId??null,a=ee?.categories?.flatMap(e=>e.channels)??[],s=e?a.find(t=>t.id===e):null,i=s?.name??"channel",o=n?(0,t.jsx)(w,{parentMessageId:n,onOpenProfile:tf,onPreviewImage:e=>X.previewImage?.(e),onDownloadFile:e=>{let t=document.createElement("a");t.href=e,t.download=e.split("/").pop()??"file",t.click()},onJump:e?()=>v.push(`/community/channels/${x.serverId}/${e}?msg=${n}`):void 0}):void 0;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(l.ChannelHeader,{channel:i,forum:(0,T.isForum)(s?.type),rightPanel:e9,onToggle:th,onBack:"mobile"===N?()=>v.back():void 0,server:"mobile"===N&&ee?{id:ee.id,name:ee.name,icon:ee.icon}:void 0,tools:{threads:!1},breadcrumb:{label:tc,onNavigateBack:()=>{e?v.push(`/community/channels/${x.serverId}/${e}`):v.back()},onRename:(0,T.canManageServer)(tj)?async e=>{try{await (0,r.apiFetch)(`/api/community/channels/${I}`,{method:"PATCH",body:JSON.stringify({name:e})}),ta(e)}catch(e){(0,r.toastApiError)(e,"Failed to rename")}}:void 0}}),(0,t.jsxs)("main",{className:"flex min-h-0 min-w-0 flex-1 flex-col",children:[(0,t.jsx)(d.MessageList,{channel:tc,messages:eF,loading:eT,pinnedIds:tm,typingUsers:eG.map(e=>ty(e)),onOpenThread:()=>{},...tv,onOpenProfile:tf,resolveUserName:ty,scrollToMessageId:tl,hero:o,viewerUserId:G.id,hasMore:eA,isFetchingOlder:eR,onLoadOlder:ek,hasMoreNewer:eE,isFetchingNewer:eP,onLoadNewer:eO,onJumpToPresent:eU,unreadCount:eq},I),(0,t.jsx)(u.Composer,{channel:tc,context:"thread",members:eM,onSearchMembers:et.searchMembers,channelRefCandidates:eS,onSend:tb,onTyping:tI,replyingTo:te?.authorName,onCancelReply:()=>tt(null),autoFocus:"mobile"!==N})]}),e9&&(0,t.jsx)(m.CommunityPanelSheet,{open:!0,onOpenChange:e=>{e||e6(null)},kind:e9,...tT,onOpenProfile:tf}),tA]})}if(ei){let e=(ee?.categories.flatMap(e=>e.channels)??[]).find(e=>e.id===I),n=e?.tags??[],a=(0,T.canManageServer)(tj);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(l.ChannelHeader,{channel:tc,forum:!0,rightPanel:e9,onToggle:th,notifLevel:eV[I]??"Use Server Default",onSetNotifLevel:e=>e5.mutate({channelId:I,level:e},{onError:e=>(0,r.toastApiError)(e,"Failed to update notification level")}),onBack:"mobile"===N?e8:void 0,server:"mobile"===N&&ee?{id:ee.id,name:ee.name,icon:ee.icon}:void 0,tools:{threads:!1,pinned:!1}}),(0,t.jsx)("main",{className:"flex min-h-0 min-w-0 flex-1 flex-col",children:(0,t.jsx)(c.ForumView,{posts:eH,tags:n,loading:eQ,onOpenPost:tp,onCreatePost:tC,canManageTags:a,onTagsChanged:a?e=>{(0,r.apiFetch)(`/api/community/channels/${I}`,{method:"PATCH",body:JSON.stringify({forumTags:JSON.stringify(e)})}).catch(e=>(0,r.toastApiError)(e,"Failed to save tags"))}:void 0})}),e9&&(0,t.jsx)(m.CommunityPanelSheet,{open:!0,onOpenChange:e=>{e||e6(null)},kind:e9,...tT,onOpenProfile:tf}),tA]})}return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(l.ChannelHeader,{channel:tc,rightPanel:e9,onToggle:th,notifLevel:eV[I]??"Use Server Default",onSetNotifLevel:e=>e5.mutate({channelId:I,level:e},{onError:e=>(0,r.toastApiError)(e,"Failed to update notification level")}),onBack:"mobile"===N?e8:void 0,server:"mobile"===N&&ee?{id:ee.id,name:ee.name,icon:ee.icon}:void 0}),(0,t.jsxs)("main",{className:"flex min-h-0 min-w-0 flex-1 flex-col",children:[(0,t.jsx)(d.MessageList,{channel:tc,messages:eF,loading:eT,pinnedIds:tm,newDividerBefore:eL,typingUsers:eG.map(e=>ty(e)),onOpenThread:tp,...tx,onOpenProfile:tf,resolveUserName:ty,scrollToMessageId:tl,onScrollRoot:eD,viewerUserId:G.id,initialScrollReady:!eN&&eK,hasMore:eA,isFetchingOlder:eR,onLoadOlder:ek,hasMoreNewer:eE,isFetchingNewer:eP,onLoadNewer:eO,onJumpToPresent:eU,unreadCount:eq},I),(0,t.jsx)(u.Composer,{channel:tc,context:"channel",members:eM,onSearchMembers:et.searchMembers,channelRefCandidates:eS,onSend:tb,onTyping:tI,replyingTo:te?.authorName,onCancelReply:()=>tt(null),autoFocus:"mobile"!==N})]}),e9&&(0,t.jsx)(m.CommunityPanelSheet,{open:!0,onOpenChange:e=>{e||e6(null)},kind:e9,...tT,onOpenProfile:tf}),tA]})}e.s(["default",0,function(){let e=(0,a.useParams)(),n=`${e.serverId}/${e.channelId}`;return(0,t.jsx)(G,{},n)}],480114)}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,654305,113050,176828,e=>{"use strict";var s=e.i(147156),n=e.i(150225);let t=e=>e.startsWith("cat_"),r=e=>e;function a(e,s){return t(e)?e:Object.keys(s).find(n=>s[n].some(s=>s.id===e))}e.s(["catId",0,r,"catOf",0,a,"isCat",0,t,"useChannelTree",0,function(e){let[r,i]=(0,s.useState)(new Set),[l,o]=(0,s.useState)(()=>e.map(e=>e.id)),[d,c]=(0,s.useState)(()=>Object.fromEntries(e.map(e=>[e.id,e.channels]))),[m,x]=(0,s.useState)(()=>Object.fromEntries(e.map(e=>[e.id,e.name]))),[u,h]=(0,s.useState)(()=>Object.fromEntries(e.map(e=>[e.id,!!e.private]))),[g,p]=(0,s.useState)(()=>Object.fromEntries(e.map(e=>[e.id,!!e.pending]))),[v,f]=(0,s.useState)(()=>Object.fromEntries(e.map(e=>[e.id,e.creatorId??null]))),j=(0,s.useRef)(e);(0,s.useEffect)(()=>{let s=j.current;if(j.current=e,e!==s){if(0===e.length){if(0===s.length)return;o([]),c({}),x({}),h({}),p({}),f({});return}s.map(e=>`${e.id}:${e.channels.map(e=>e.id).join(",")}`).join("|")===e.map(e=>`${e.id}:${e.channels.map(e=>e.id).join(",")}`).join("|")?c(s=>{let{next:n,changed:t}=function(e,s){let n=new Map;for(let e of s)for(let s of e.channels)n.set(s.id,s);let t=!1,r={};for(let[s,a]of Object.entries(e))r[s]=a.map(e=>{let s=n.get(e.id);return s&&(s.unread!==e.unread||s.name!==e.name)?(t=!0,{...e,unread:s.unread,name:s.name}):e});return{next:t?r:e,changed:t}}(s,e);return t?n:s}):(o(e.map(e=>e.id)),c(Object.fromEntries(e.map(e=>[e.id,e.channels]))),x(Object.fromEntries(e.map(e=>[e.id,e.name]))),h(Object.fromEntries(e.map(e=>[e.id,!!e.private]))),p(Object.fromEntries(e.map(e=>[e.id,!!e.pending]))),f(Object.fromEntries(e.map(e=>[e.id,e.creatorId??null]))))}},[e]);let b=(0,s.useCallback)(e=>i(s=>{let n=new Set(s);return n.has(e)?n.delete(e):n.add(e),n}),[]),N=(0,s.useCallback)(e=>c(s=>{let n;return(n=a(e,s))?{...s,[n]:s[n].filter(s=>s.id!==e)}:s}),[]),y=(0,s.useCallback)((e,s)=>c(n=>{let t=a(e,n);return t?{...n,[t]:n[t].map(n=>n.id===e?{...n,name:s}:n)}:n}),[]),C=(0,s.useCallback)(e=>c(s=>{let n=a(e,s);return n?{...s,[n]:s[n].map(s=>s.id===e?{...s,unread:!1}:s)}:s}),[]),w=(0,s.useCallback)((e,s)=>x(n=>n[e]===s?n:{...n,[e]:s}),[]),S=(0,s.useRef)(u);S.current=u;let k=(0,s.useCallback)(e=>{let{active:s,over:n}=e;!n||t(String(s.id))||c(e=>{let t=a(String(s.id),e),r=a(String(n.id),e);return t&&r&&t!==r&&!!S.current[t]!=!!S.current[r]?e:function(e,s,n){let t=a(s,e),r=a(n,e);if(!t||!r||t===r)return e;let i=e[t].find(e=>e.id===s);if(!i)return e;let l=e[r].findIndex(e=>e.id===n),o=-1===l?e[r].length:l,d=[...e[r]];return d.splice(o,0,i),{...e,[t]:e[t].filter(e=>e.id!==s),[r]:d}}(e,String(s.id),String(n.id))})},[]),z=(0,s.useCallback)(e=>{let{active:s,over:r}=e;!r||s.id===r.id||(t(String(s.id))&&t(String(r.id))?o(e=>{var t,a;let i,l;return t=String(s.id),a=String(r.id),i=e.indexOf(t),l=e.indexOf(a),-1===i||-1===l?e:(0,n.arrayMove)(e,i,l)}):t(String(s.id))||c(e=>(function(e,s,t){let r=a(s,e);if(!r||!e[r].some(e=>e.id===t))return e;let i=e[r].findIndex(e=>e.id===s),l=e[r].findIndex(e=>e.id===t);return -1===i||-1===l?e:{...e,[r]:(0,n.arrayMove)(e[r],i,l)}})(e,String(s.id),String(r.id))))},[]);return(0,s.useMemo)(()=>({collapsed:r,catOrder:l,order:d,catNames:m,catPrivate:u,catPending:g,catCreators:v,toggleCat:b,removeChannel:N,renameChannel:y,markRead:C,renameCategory:w,onDragOver:k,onDragEnd:z}),[r,l,d,m,u,g,v,b,N,y,C,w,k,z])}],654305);var i=e.i(636407),l=e.i(328530),o=e.i(351171),d=e.i(452916),c=e.i(38357);let m=(0,e.i(464648).default)("scroll-text",[["path",{d:"M15 12h-5",key:"r7krc0"}],["path",{d:"M15 8h-5",key:"1khuty"}],["path",{d:"M19 17V5a2 2 0 0 0-2-2H4",key:"zz82l3"}],["path",{d:"M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3",key:"1ph1d7"}]]);var x=e.i(556482),u=e.i(670623),h=e.i(540255),g=e.i(607711),p=e.i(89164),v=e.i(728886),f=e.i(304928),j=e.i(761596),j=j,b=e.i(6798),N=e.i(97867),y=e.i(393153);function C({side:e}){return(0,i.jsx)("div",{className:`pointer-events-none absolute inset-x-1 z-10 h-0.5 rounded-full bg-primary ${"top"===e?"-top-px":"-bottom-px"}`})}function w({id:e,name:t,open:r,onToggle:a,onAddChannel:o,onSettings:d,onDelete:c,isPrivate:m,canReorder:u=!0,pending:p=!1,children:v}){var S;let[k,z]=(0,s.useState)(!1),{attributes:I,listeners:D,setNodeRef:M,transform:O,transition:T,isDragging:E,isOver:A,activeIndex:$,index:P}=(0,n.useSortable)({id:e,disabled:!u}),{setNodeRef:B,isOver:L}=(0,h.useDroppable)({id:e}),R={transform:N.CSS.Transform.toString(O),transition:T,opacity:E?.4:1,zIndex:E?10:void 0},F={...I,...D,onClick:a,className:`group flex w-full touch-none items-center gap-1 rounded px-1 py-1 text-xs font-semibold text-muted-foreground/80 select-none hover:text-foreground ${u?"cursor-grab active:cursor-grabbing":"cursor-pointer"}`},U=(0,i.jsxs)(i.Fragment,{children:[m&&(0,i.jsx)(j.default,{className:"size-3 shrink-0"}),(0,i.jsx)("span",{className:"flex-1 truncate text-left",children:t}),d&&(0,i.jsx)("button",{onPointerDown:e=>e.stopPropagation(),onClick:e=>{e.stopPropagation(),d()},className:"grid size-4 place-items-center rounded opacity-0 hover:bg-accent group-hover:opacity-100","aria-label":`Category settings for ${t}`,children:(0,i.jsx)(l.Settings,{className:"size-3.5"})}),o&&(0,i.jsx)("button",{onPointerDown:e=>e.stopPropagation(),onClick:e=>{e.stopPropagation(),o()},className:"grid size-4 place-items-center rounded opacity-0 hover:bg-accent group-hover:opacity-100","aria-label":`Create channel in ${t}`,children:(0,i.jsx)(f.Plus,{className:"size-3.5"})}),(0,i.jsx)(x.ChevronDown,{className:`size-3 shrink-0 transition-transform ${r?"":"-rotate-90"}`})]});return(0,i.jsxs)("div",{ref:M,style:R,className:`relative mb-4 ${p?"opacity-60":""}`,children:[A&&!E&&(0,i.jsx)(C,{side:-1!==$&&$<P?"bottom":"top"}),(S={onAddChannel:o,onSettings:d,onDelete:c}).onAddChannel||S.onSettings||S.onDelete?(0,i.jsxs)(g.ContextMenu,{children:[(0,i.jsx)(g.ContextMenuTrigger,{render:(0,i.jsx)("div",{...F}),children:U}),(0,i.jsxs)(g.ContextMenuContent,{className:"w-48",children:[(0,i.jsx)("div",{className:"truncate px-2 py-2 text-xs font-semibold text-muted-foreground",children:t}),o&&(0,i.jsxs)(g.ContextMenuItem,{onClick:o,children:[(0,i.jsx)(f.Plus,{className:"size-4"})," Create channel"]}),d&&(0,i.jsxs)(g.ContextMenuItem,{onClick:d,children:[(0,i.jsx)(l.Settings,{className:"size-4"})," Category settings"]}),c&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(g.ContextMenuSeparator,{}),(0,i.jsxs)(g.ContextMenuItem,{onClick:()=>z(!0),className:"text-destructive data-highlighted:bg-destructive/10 data-highlighted:text-destructive",children:[(0,i.jsx)(b.Trash2,{className:"size-4"})," Delete category"]})]})]})]}):(0,i.jsx)("div",{...F,children:U}),r&&(0,i.jsx)("div",{ref:B,className:`rounded-md transition-colors ${L?"bg-accent/40":""}`,children:v}),c&&(0,i.jsx)(y.ConfirmDialog,{open:k,onOpenChange:z,title:`Delete ${t}?`,description:"Channels inside this category will also be removed. This can't be undone.",confirmLabel:"Delete category",onConfirm:()=>{z(!1),c()}})]})}var S=e.i(839082),k=e.i(383152),z=e.i(267558),I=e.i(670544);function D({ch:e}){return(0,i.jsxs)("div",{"aria-disabled":!0,className:"group relative flex h-8 w-full cursor-default items-center gap-2 rounded-md px-2 text-sm text-muted-foreground opacity-60 select-none",children:[(0,i.jsx)("span",{className:"grid size-5 shrink-0 place-items-center opacity-70",children:(0,i.jsx)(k.Loader2,{className:"size-4 animate-spin"})}),(0,i.jsx)("span",{className:"truncate font-semibold",children:e.name})]})}function M({ch:e,active:t,onClick:r,onEdit:a,onDelete:l,onManageMembers:d,canReorder:c=!0}){var m;let[x,u]=(0,s.useState)(!1),{attributes:h,listeners:p,setNodeRef:v,transform:f,transition:j,isDragging:w,isOver:k,activeIndex:D,index:O}=(0,n.useSortable)({id:e.id,disabled:!c}),T={transform:N.CSS.Transform.toString(f),transition:j,opacity:w?.4:1,zIndex:w?10:void 0},E=(0,i.jsxs)("div",{ref:v,style:T,onClick:r,...h,...p,className:["group relative flex h-8 w-full cursor-pointer touch-none items-center gap-2 rounded-md px-2 text-sm select-none",c?"active:cursor-grabbing":"",t?"bg-sidebar-accent text-foreground":e.muted?"text-muted-foreground/50 hover:bg-sidebar-accent/60 hover:text-muted-foreground":e.unread?"text-foreground hover:bg-sidebar-accent/60":"text-muted-foreground hover:bg-sidebar-accent/60 hover:text-foreground"].join(" "),children:[k&&!w&&(0,i.jsx)(C,{side:-1!==D&&D<O?"bottom":"top"}),(0,i.jsx)("span",{className:"grid size-5 shrink-0 place-items-center opacity-70",children:(0,i.jsx)(I.EntityIcon,{kind:e.type,className:"size-4"})}),(0,i.jsx)("span",{className:"truncate font-semibold",children:e.name}),e.muted?(0,i.jsx)(S.BellOff,{className:"ml-auto size-4 shrink-0 opacity-70"}):e.unread&&!t?(0,i.jsx)("span",{className:"ml-auto size-2 rounded-full bg-primary"}):null]});return(m={onEdit:a,onManageMembers:d,onDelete:l}).onEdit||m.onManageMembers||m.onDelete?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(g.ContextMenu,{children:[(0,i.jsx)(g.ContextMenuTrigger,{render:E}),(0,i.jsxs)(g.ContextMenuContent,{className:"w-48",children:[(0,i.jsxs)("div",{className:"truncate px-2 py-2 text-xs font-semibold text-muted-foreground",children:["/",e.name]}),a&&(0,i.jsxs)(g.ContextMenuItem,{onClick:a,children:[(0,i.jsx)(z.Pencil,{className:"size-4"})," Edit channel"]}),d&&(0,i.jsxs)(g.ContextMenuItem,{onClick:d,children:[(0,i.jsx)(o.Users,{className:"size-4"})," Manage members"]}),l&&(0,i.jsxs)(i.Fragment,{children:[a&&(0,i.jsx)(g.ContextMenuSeparator,{}),(0,i.jsxs)(g.ContextMenuItem,{onClick:()=>u(!0),className:"text-destructive data-highlighted:bg-destructive/10 data-highlighted:text-destructive",children:[(0,i.jsx)(b.Trash2,{className:"size-4"})," Delete channel"]})]})]})]}),l&&(0,i.jsx)(y.ConfirmDialog,{open:x,onOpenChange:u,title:`Delete /${e.name}?`,description:"This channel and its message history will be removed for everyone. This can't be undone.",confirmLabel:"Delete channel",onConfirm:()=>{u(!1),l()}})]}):E}var O=e.i(779646),T=e.i(186339),E=e.i(903477),A=e.i(807915),$=e.i(86053),P=e.i(388026);function B({category:e,initial:n,onClose:t,onCreate:r}){let a=!!n,[l,o]=(0,s.useState)(n?.type??"text"),[d,c]=(0,s.useState)(n?.name??""),m=(0,P.previewSlug)(d),x=()=>{let e=d.trim();m.slug&&(r({name:e,type:l}),t())};return(0,i.jsx)(O.Dialog,{open:!0,onOpenChange:e=>{e||t()},children:(0,i.jsxs)(O.DialogContent,{className:"w-105 max-w-[calc(100vw-2rem)] p-0",children:[(0,i.jsxs)(O.DialogHeader,{className:"border-b border-border px-4 py-4",children:[(0,i.jsx)(O.DialogTitle,{children:a?"Edit Channel":"Create Channel"}),(0,i.jsx)("p",{className:"text-sm text-muted-foreground",children:e?`in ${e}`:"top level"})]}),(0,i.jsxs)("div",{className:"space-y-4 px-4 pb-5",children:[!a&&(0,i.jsxs)("div",{children:[(0,i.jsx)("div",{className:"mb-2 text-xs font-semibold text-muted-foreground",children:"Channel Type"}),(0,i.jsx)("div",{className:"space-y-2",children:[{value:"text",label:"Text",desc:"Send messages, images, emoji, and opinions"},{value:"forum",label:"Forum",desc:"Create a space for organized discussions"}].map(e=>(0,i.jsxs)("button",{onClick:()=>o(e.value),className:["flex w-full items-center gap-3 rounded-lg border p-3 text-left transition-colors",l===e.value?"border-primary bg-accent":"border-border bg-card hover:bg-accent/50"].join(" "),children:[(0,i.jsx)(I.EntityIcon,{kind:e.value,className:"size-5 shrink-0 text-muted-foreground"}),(0,i.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,i.jsx)("div",{className:"text-sm font-medium",children:e.label}),(0,i.jsx)("div",{className:"text-xs text-muted-foreground",children:e.desc})]}),(0,i.jsx)("span",{className:`grid size-4 shrink-0 place-items-center rounded-full border ${l===e.value?"border-primary":"border-muted-foreground"}`,children:l===e.value&&(0,i.jsx)("span",{className:"size-2 rounded-full bg-primary"})})]},e.value))})]}),(0,i.jsxs)("label",{className:"block",children:[(0,i.jsx)("div",{className:"mb-2 text-xs font-semibold text-muted-foreground",children:"Channel Name"}),(0,i.jsxs)("div",{className:"relative",children:[(0,i.jsx)(I.EntityIcon,{kind:l,className:"absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground"}),(0,i.jsx)(E.Input,{value:d,onChange:e=>c(e.target.value),onKeyDown:(0,A.onEnterSubmit)(x),placeholder:"new-channel",className:"h-10 pl-9"})]}),(0,i.jsx)($.SlugHint,{...m})]})]}),(0,i.jsxs)(O.DialogFooter,{className:"mx-0 mb-0 flex-row items-center justify-end gap-2 rounded-b-xl border-t border-border bg-card px-4 py-3",children:[(0,i.jsx)(T.Button,{variant:"ghost",size:"sm",onClick:t,children:"Cancel"}),(0,i.jsx)(T.Button,{size:"sm",onClick:x,disabled:!m.slug,children:a?"Save":"Create Channel"})]})]})})}var L=e.i(625271),j=j,R=e.i(254618);let F="Members create their own channels here, visible only to invited members.";function U({isPrivate:e,onToggle:s,locked:n}){let t=e?n?`${F} Privacy can’t be changed after creation.`:F:"Channels here are admin-managed and visible to everyone.";return(0,i.jsxs)("div",{className:"flex items-start gap-3 rounded-md border border-border bg-card px-3 py-2",children:[(0,i.jsx)(j.default,{className:"mt-0.5 size-4 shrink-0 text-muted-foreground"}),(0,i.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,i.jsx)("div",{className:"text-sm font-medium",children:"Private category"}),(0,i.jsx)("div",{className:"text-xs text-muted-foreground",children:t})]}),s&&(0,i.jsx)(R.Switch,{checked:e,onCheckedChange:s,className:"mt-0.5"})]})}function H({onClose:e,onCreate:n,canTogglePrivate:t=!0}){let[r,a]=(0,s.useState)(""),[l,o]=(0,s.useState)(!1),d=()=>{let s=r.trim();s&&(n(s.toUpperCase(),{private:l}),e())};return(0,i.jsx)(O.Dialog,{open:!0,onOpenChange:s=>{s||e()},children:(0,i.jsxs)(O.DialogContent,{className:"w-105 max-w-[calc(100vw-2rem)] p-0",children:[(0,i.jsx)(O.DialogHeader,{className:"border-b border-border px-4 py-4",children:(0,i.jsx)(O.DialogTitle,{children:"Create category"})}),(0,i.jsxs)("div",{className:"space-y-4 px-4 pb-5",children:[(0,i.jsx)(L.Field,{label:"Category name",children:(0,i.jsx)(E.Input,{value:r,onChange:e=>a(e.target.value),onKeyDown:(0,A.onEnterSubmit)(d),placeholder:"e.g. text channels",autoFocus:!0})}),t&&(0,i.jsx)(U,{isPrivate:l,onToggle:o})]}),(0,i.jsxs)(O.DialogFooter,{className:"mx-0 mb-0 flex-row items-center justify-end gap-2 rounded-b-xl border-t border-border bg-card px-4 py-3",children:[(0,i.jsx)(T.Button,{variant:"ghost",size:"sm",onClick:e,children:"Cancel"}),(0,i.jsx)(T.Button,{size:"sm",onClick:d,disabled:!r.trim(),children:"Create category"})]})]})})}function K({name:e,isPrivate:n,onClose:t,onSave:r}){let[a,l]=(0,s.useState)(e),o=a.trim(),d=()=>{o&&(r(o.toUpperCase()),t())};return(0,i.jsx)(O.Dialog,{open:!0,onOpenChange:e=>{e||t()},children:(0,i.jsxs)(O.DialogContent,{className:"w-105 max-w-[calc(100vw-2rem)] p-0",children:[(0,i.jsx)(O.DialogHeader,{className:"border-b border-border px-4 py-4",children:(0,i.jsx)(O.DialogTitle,{children:"Category Settings"})}),(0,i.jsxs)("div",{className:"space-y-4 px-4 pb-5",children:[(0,i.jsx)(L.Field,{label:"Category name",children:(0,i.jsx)(E.Input,{value:a,onChange:e=>l(e.target.value),onKeyDown:(0,A.onEnterSubmit)(d),placeholder:"e.g. text channels",autoFocus:!0})}),n&&(0,i.jsx)(U,{isPrivate:!0,locked:!0})]}),(0,i.jsxs)(O.DialogFooter,{className:"mx-0 mb-0 flex-row items-center justify-end gap-2 rounded-b-xl border-t border-border bg-card px-4 py-3",children:[(0,i.jsx)(T.Button,{variant:"ghost",size:"sm",onClick:t,children:"Cancel"}),(0,i.jsx)(T.Button,{size:"sm",onClick:d,disabled:!o,children:"Save"})]})]})})}var W=e.i(46051),V=e.i(516266),_=e.i(531342),G=e.i(39185),q=e.i(838114),Y=e.i(849050),X=e.i(374402);let Z=Object.freeze([]);e.i(384302);var J=e.i(54372),Q=e.i(776152),ee=e.i(97737),es=e.i(183899);let en=window.location.origin;function et(e){return`${en}/community/invite/${e}`}function er({open:e,onOpenChange:n,serverId:t,serverName:r}){let a=(0,es.useCurrentUser)(),{friends:l,isLoading:o}=function(e,s=!0){let n=(0,q.useQuery)({queryKey:X.communityKeys.invitableFriends(e),queryFn:()=>(0,Y.apiFetch)(`/api/community/servers/${encodeURIComponent(e)}/invitable-friends`),enabled:s&&!!e});return{...n,friends:n.data?.friends??Z}}(t,e),d=(0,J.useResolveOrCreateInvite)(t),c=(0,Q.useCreateOrGetDm)(),m=(0,ee.useSendDmMessage)(),[x,u]=(0,s.useState)(null),[h,g]=(0,s.useState)(null),[p,f]=(0,s.useState)(new Set),[j,b]=(0,s.useState)("");(0,s.useEffect)(()=>{if(!e||x)return;let s=!1;return g(null),d(a.id,a.name).then(e=>{s||u(e.token)}).catch(e=>{s||g(e instanceof Error?e.message:"Couldn't create an invite")}),()=>{s=!0}},[e,x]);let N=(0,s.useMemo)(()=>{let e=j.trim().toLowerCase();return l.filter(s=>!e||s.name.toLowerCase().includes(e)||(s.sub??"").toLowerCase().includes(e))},[l,j]),y=async e=>{if(x&&e.userId)try{let{conversation:s}=await c.mutateAsync({userId:e.userId});await m.mutateAsync({dmId:s.id,content:et(x),author:{id:a.id,name:a.name,avatar:a.avatar}}),f(s=>{let n=new Set(s);return n.add(e.userId),n})}catch(s){let e=s instanceof Error?s.message:"Couldn't send invite";(0,V.toast)(e)}},C=async()=>{if(x)try{await navigator.clipboard.writeText(et(x)),(0,V.toast)("Invite link copied")}catch{(0,V.toast)("Couldn't copy — copy manually")}};return(0,i.jsx)(O.Dialog,{open:e,onOpenChange:e=>{e||(f(new Set),b("")),n(e)},children:(0,i.jsxs)(O.DialogContent,{className:"flex max-h-[80vh] w-full flex-col gap-0 p-0 sm:max-w-md",children:[(0,i.jsx)("header",{className:"border-b border-border px-4 py-3",children:(0,i.jsxs)("h2",{className:"truncate text-sm font-semibold",children:["Invite friends to ",r]})}),(0,i.jsx)("div",{className:"px-4 pt-3",children:(0,i.jsxs)("label",{className:"relative block",children:[(0,i.jsx)(W.Search,{"aria-hidden":!0,className:"pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground"}),(0,i.jsx)(E.Input,{value:j,onChange:e=>b(e.target.value),placeholder:"Search for friends",className:"pl-9"})]})}),(0,i.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto thin-scrollbar px-2 py-2",children:o&&0===l.length?(0,i.jsx)("div",{className:"space-y-2 px-2",children:Array.from({length:4}).map((e,s)=>(0,i.jsxs)("div",{className:"flex items-center gap-3",children:[(0,i.jsx)(v.Skeleton,{className:"size-8 rounded-full"}),(0,i.jsx)(v.Skeleton,{className:"h-3 w-32 rounded"})]},s))}):0===N.length?(0,i.jsx)("p",{className:"px-2 py-6 text-center text-sm text-muted-foreground",children:0===l.length?"No friends to invite — everyone you know is already here.":"No matches."}):N.map(e=>{let s=!!e.userId&&p.has(e.userId);return(0,i.jsxs)("div",{className:"flex items-center gap-3 rounded-md px-2 py-2 hover:bg-accent/40",children:[(0,i.jsx)(_.Avatar,{label:e.avatar||e.name,seed:e.userId,size:32,presence:e.status,ringColor:"var(--popover)"}),(0,i.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,i.jsx)("div",{className:"truncate text-sm font-medium",children:e.name}),(0,G.hasStatus)(e.statusEmoji,e.statusText)&&(0,i.jsxs)("div",{className:"truncate text-xs text-muted-foreground",children:[e.statusEmoji," ",e.statusText]})]}),(0,i.jsx)(T.Button,{size:"sm",variant:s?"secondary":"default",disabled:!x||s||!e.userId,onClick:()=>y(e),children:s?"Invited":"Invite"})]},e.id)})}),(0,i.jsxs)("footer",{className:"border-t border-border px-4 py-3",children:[(0,i.jsx)("div",{className:"text-xs font-medium text-muted-foreground",children:"Or, send a server invite link to a friend"}),h?(0,i.jsx)("p",{className:"mt-2 text-xs text-destructive",children:h}):(0,i.jsxs)("div",{className:"mt-2 flex items-center gap-2",children:[(0,i.jsx)(E.Input,{readOnly:!0,value:x?et(x):"",placeholder:x?"":"Loading…",className:"font-mono text-xs"}),(0,i.jsx)(T.Button,{size:"sm",onClick:C,disabled:!x,children:"Copy"})]})]})]})})}var ea=e.i(648655),ei=e.i(825149);function el({channelId:e,channelName:s,onClose:n}){let{members:t}=(0,ei.useAddableMembers)(e),r=(0,ei.useAddChannelMember)(e),a=t.map(e=>({userId:e.userId,name:e.name??null,avatar:e.avatar}));return(0,i.jsx)(ea.AddMembersDialog,{title:`Add members to /${s}`,subtitle:"Added members can see and post in this channel.",candidates:a,addPending:r.isPending,onAdd:async e=>{try{await r.mutateAsync(e)}catch(e){(0,V.toast)(e instanceof Error?e.message:"Couldn't add member")}},onClose:n})}var eo=e.i(631956);e.i(954194);var ed=e.i(908967);let ec=(0,s.memo)(function({tree:e,serverName:v,serverIcon:f,activeChannel:j,setActiveChannel:b,noHeader:N,onOpenSettings:y,isAdmin:C=!0,currentUserId:S,onBlockedCreate:k,mutedChannels:z,loading:I,onCreateChannel:O,onCreateCategory:T,onDeleteChannel:E,onDeleteCategory:A,onUpdateCategory:$,onRenameChannel:P,onReorderCategories:L,onReorderChannels:R,onMoveChannel:F,onBlockedMove:U,serverId:W,invitePopoverOpen:V,onInvitePopoverOpenChange:_}){let{collapsed:G,catOrder:q,order:Y,catNames:X,catPrivate:Z,catPending:J,toggleCat:Q,removeChannel:ee,renameChannel:es,renameCategory:en,onDragOver:et,onDragEnd:ea}=e,ei=(0,s.useRef)(void 0),ec=(0,h.useSensors)((0,h.useSensor)(h.PointerSensor,{activationConstraint:{distance:5}})),[ex,eu]=(0,s.useState)(null),eh=e=>z&&e.id in z?{...e,muted:z[e.id]}:e,eg=Object.keys(X).find(e=>""===X[e])??"";if(I)return(0,i.jsx)(em,{noHeader:N});let ep=e=>!!Z[e]||C,ev=e=>{ep(e)?eu({kind:"create-channel",categoryId:e}):k?.()},ef=async(e,{name:s,type:n})=>{let t=await O?.(e,s,n);t&&b(t)},ej=(0,i.jsxs)(h.DndContext,{id:"d-channels",sensors:ec,collisionDetection:h.closestCenter,onDragStart:e=>{let s=String(e.active.id);ei.current=t(s)?void 0:a(s,Y)},onDragOver:et,onDragEnd:e=>{let s=ei.current;ei.current=void 0,ea(e);let{active:n,over:r}=e;if(!r||n.id===r.id)return;let i=String(n.id),l=String(r.id);if(i.startsWith("cat_")&&l.startsWith("cat_")){let e=-1!==q.indexOf(i)?(()=>{let e=q.indexOf(i),s=q.indexOf(l);if(-1===e||-1===s)return null;let n=[...q],[t]=n.splice(e,1);return n.splice(s,0,t),n})():null;e&&L?.(e.filter(e=>!J[e]))}else if(!i.startsWith("cat_")){let e=a(i,Y),n=t(l)?l:a(l,Y);if(s&&n&&n!==s&&e===s&&!!Z[s]!=!!Z[n])return void U?.();let r=q.flatMap(e=>(Y[e]??[]).filter(e=>!e.pending).map(e=>e.id));if(e&&s&&e!==s){let s=""===X[e]||e===ed.UNCATEGORIZED_CATEGORY_ID;F?.(i,s?null:e)}R?.(r)}},children:[eg&&Y[eg]?.length>0&&(0,i.jsx)(n.SortableContext,{items:Y[eg].filter(e=>!e.pending).map(e=>e.id),strategy:n.verticalListSortingStrategy,children:(0,i.jsx)("div",{className:"mb-4 space-y-1",children:Y[eg].map(e=>e.pending?(0,i.jsx)(D,{ch:e},e.id):(0,i.jsx)(M,{ch:eh(e),active:e.id===j,canReorder:C,onClick:()=>b(e.id),onEdit:C?()=>eu({kind:"edit-channel",id:e.id,categoryId:eg,name:e.name,type:e.type??"text"}):void 0,onDelete:C?()=>{ee(e.id),E?.(e.id)}:void 0},e.id))})}),(0,i.jsx)(n.SortableContext,{items:q.filter(e=>""!==X[e]&&!J[e]).map(e=>r(e)),strategy:n.verticalListSortingStrategy,children:q.filter(e=>""!==X[e]).map(e=>(0,i.jsx)(w,{id:r(e),name:X[e]??e,open:!G.has(e),onToggle:()=>Q(e),onAddChannel:!J[e]&&ep(e)?()=>ev(e):void 0,onSettings:!J[e]&&C?()=>eu({kind:"category-settings",categoryId:e}):void 0,onDelete:!J[e]&&C?()=>A?.(e):void 0,isPrivate:Z[e],canReorder:C&&!J[e],pending:J[e],children:(0,i.jsx)(n.SortableContext,{items:(Y[e]??[]).filter(e=>!e.pending).map(e=>e.id),strategy:n.verticalListSortingStrategy,children:(0,i.jsx)("div",{className:"mt-1 min-h-2 space-y-1",children:(Y[e]??[]).map(s=>{if(s.pending)return(0,i.jsx)(D,{ch:s},s.id);let n=C||!!Z[e]&&s.creatorId===S;return(0,i.jsx)(M,{ch:eh(s),active:s.id===j,canReorder:C,onClick:()=>b(s.id),onEdit:n?()=>eu({kind:"edit-channel",id:s.id,categoryId:e,name:s.name,type:s.type??"text"}):void 0,onDelete:n?()=>{ee(s.id),E?.(s.id)}:void 0,onManageMembers:Z[e]&&n?()=>eu({kind:"manage-members",channelId:s.id,channelName:s.name}):void 0},s.id)})})})},e))})]});return(0,i.jsxs)("aside",{className:"flex min-w-0 flex-1 flex-col",children:[!N&&(0,i.jsxs)("header",{className:"flex h-12 items-center gap-1 border-b border-border/40 px-2",children:[v&&y?(0,i.jsxs)(p.DropdownMenu,{children:[(0,i.jsxs)(p.DropdownMenuTrigger,{className:"flex min-w-0 max-w-full items-center gap-2 rounded-md px-2 py-1 hover:bg-accent focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none",children:[(0,i.jsx)(eo.ServerCrumb,{id:W??"",name:v,icon:f??null,size:7}),(0,i.jsx)("span",{className:"min-w-0 truncate text-lg font-semibold",children:v}),(0,i.jsx)(x.ChevronDown,{className:"size-4 shrink-0 text-muted-foreground"})]}),(0,i.jsxs)(p.DropdownMenuContent,{align:"start",className:"w-48",children:[(0,i.jsxs)(p.DropdownMenuItem,{onClick:()=>y("overview"),children:[(0,i.jsx)(l.Settings,{className:"size-4"})," Overview"]}),(0,i.jsxs)(p.DropdownMenuItem,{onClick:()=>y("members"),children:[(0,i.jsx)(o.Users,{className:"size-4"})," Members"]}),(0,i.jsxs)(p.DropdownMenuItem,{onClick:()=>y("invites"),children:[(0,i.jsx)(d.Link2,{className:"size-4"})," Invites"]}),(0,i.jsxs)(p.DropdownMenuItem,{onClick:()=>y("notifications"),children:[(0,i.jsx)(c.Bell,{className:"size-4"})," Notifications"]}),(0,i.jsxs)(p.DropdownMenuItem,{onClick:()=>y("audit"),children:[(0,i.jsx)(m,{className:"size-4"})," Audit Log"]})]})]}):(0,i.jsxs)("span",{className:"flex min-w-0 max-w-full items-center gap-2 px-2",children:[v&&(0,i.jsx)(eo.ServerCrumb,{id:W??"",name:v,icon:f??null,size:7}),(0,i.jsx)("span",{className:"min-w-0 truncate text-lg font-semibold",children:v||" "})]}),W&&_&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("button",{onClick:()=>_(!0),className:"ml-auto grid size-7 shrink-0 place-items-center rounded-md text-muted-foreground hover:bg-accent hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none","aria-label":"Invite to server",title:"Invite to server",children:(0,i.jsx)(u.UserPlus,{className:"size-4"})}),(0,i.jsx)(er,{open:!!V,onOpenChange:_,serverId:W,serverName:v})]})]}),C?(0,i.jsxs)(g.ContextMenu,{children:[(0,i.jsx)(g.ContextMenuTrigger,{render:(0,i.jsx)("div",{className:"flex-1 overflow-y-auto thin-scrollbar px-2 py-4"}),children:ej}),(0,i.jsxs)(g.ContextMenuContent,{className:"w-48",children:[(0,i.jsx)(g.ContextMenuItem,{onClick:()=>ev(eg),children:"Create channel"}),(0,i.jsx)(g.ContextMenuItem,{onClick:()=>eu({kind:"create-category"}),children:"Create category"})]})]}):(0,i.jsx)("div",{className:"flex-1 overflow-y-auto thin-scrollbar px-2 py-4",children:ej}),ex?.kind==="create-channel"&&(0,i.jsx)(B,{category:X[ex.categoryId]??"",onClose:()=>eu(null),onCreate:e=>ef(ex.categoryId,e)}),ex?.kind==="edit-channel"&&(0,i.jsx)(B,{category:X[ex.categoryId]??"",initial:{name:ex.name,type:ex.type},onClose:()=>eu(null),onCreate:({name:e})=>{es(ex.id,e),P?.(ex.id,e)}}),ex?.kind==="create-category"&&(0,i.jsx)(H,{onClose:()=>eu(null),onCreate:(e,s)=>{T?.(e,s)},canTogglePrivate:C}),ex?.kind==="category-settings"&&(0,i.jsx)(K,{name:X[ex.categoryId]??"",isPrivate:!!Z[ex.categoryId],onClose:()=>eu(null),onSave:e=>{en(ex.categoryId,e),$?.(ex.categoryId,{name:e})}}),ex?.kind==="manage-members"&&W&&(0,i.jsx)(el,{channelId:ex.channelId,channelName:ex.channelName,onClose:()=>eu(null)})]})});function em({noHeader:e}){return(0,i.jsxs)("aside",{className:"flex min-w-0 flex-1 flex-col",children:[!e&&(0,i.jsx)("header",{className:"flex h-12 items-center border-b border-border/40 px-2",children:(0,i.jsx)(v.Skeleton,{className:"h-5 w-32 rounded"})}),(0,i.jsxs)("div",{className:"flex-1 overflow-hidden px-2 py-4",children:[(0,i.jsxs)("div",{className:"mb-4 space-y-1",children:[(0,i.jsx)(v.Skeleton,{className:"h-7 w-full rounded-md"}),(0,i.jsx)(v.Skeleton,{className:"h-7 w-11/12 rounded-md"})]}),[40,32].map((e,s)=>(0,i.jsxs)("div",{className:"mb-4",children:[(0,i.jsx)("div",{className:"mb-2 flex items-center gap-1 px-1",children:(0,i.jsx)(v.Skeleton,{className:"h-3 rounded",style:{width:e}})}),(0,i.jsxs)("div",{className:"space-y-1",children:[(0,i.jsx)(v.Skeleton,{className:"h-7 w-full rounded-md"}),(0,i.jsx)(v.Skeleton,{className:"h-7 w-10/12 rounded-md"}),(0,i.jsx)(v.Skeleton,{className:"h-7 w-11/12 rounded-md"}),(0,i.jsx)(v.Skeleton,{className:"h-7 w-9/12 rounded-md"})]})]},s))]})]})}e.s(["ChannelSidebar",0,ec],113050);var ex=e.i(201362),eu=e.i(425828),eh=e.i(652652),eg=e.i(973733),ep=e.i(577550),ev=e.i(875061),ef=e.i(255334),ej=e.i(280958);e.i(575084);var eb=e.i(567894);let eN=["admin","member"];function ey(e){return e.charAt(0).toUpperCase()+e.slice(1)}function eC({serverName:e,serverDescription:n,serverIcon:t,onUploadIcon:r,onUpdateServer:a,onRequestDelete:l}){let[o,d]=(0,s.useState)(e),[c,m]=(0,s.useState)(n??""),[x,u]=(0,s.useState)({name:e,desc:n??""}),h=(0,P.previewSlug)(o),g=o!==x.name||c!==x.desc;return(0,i.jsxs)("div",{className:"mx-auto max-w-md space-y-10",children:[(0,i.jsxs)("section",{className:"space-y-4",children:[(0,i.jsx)("h2",{className:"text-sm font-medium",children:"Server"}),(0,i.jsxs)("div",{className:"flex items-center gap-4",children:[t?(0,i.jsx)("img",{src:t,alt:"Server icon",className:"size-20 rounded-2xl object-cover"}):(0,i.jsx)("div",{className:"grid size-20 place-items-center rounded-2xl bg-primary text-2xl font-semibold text-primary-foreground",children:(0,ej.avatarInitial)(o)}),(0,i.jsxs)("div",{children:[(0,i.jsx)("div",{className:"text-sm font-medium",children:"Server icon"}),(0,i.jsx)("div",{className:"text-xs text-muted-foreground",children:"PNG, JPG, or WEBP. You'll be able to crop and zoom before saving."}),(0,i.jsx)(T.Button,{variant:"secondary",size:"sm",className:"mt-2",onClick:r,children:"Upload image"})]})]}),(0,i.jsxs)(L.Field,{label:"Server name",children:[(0,i.jsx)(E.Input,{value:o,onChange:e=>d(e.target.value)}),(0,i.jsx)($.SlugHint,{...h})]}),(0,i.jsx)(L.Field,{label:"Description",children:(0,i.jsx)(ep.Textarea,{className:"h-20 resize-none",value:c,onChange:e=>m(e.target.value)})}),(0,i.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[(0,i.jsx)(T.Button,{variant:"ghost",size:"sm",onClick:()=>{d(x.name),m(x.desc)},disabled:!g,children:"Cancel"}),(0,i.jsx)(T.Button,{size:"sm",onClick:()=>{!h.invalid&&g&&(a?.(o,c),u({name:o,desc:c}))},disabled:!g||h.invalid,children:"Save changes"})]})]}),(0,i.jsxs)("section",{className:"space-y-4",children:[(0,i.jsx)("h2",{className:"text-sm font-medium text-destructive",children:"Danger Zone"}),(0,i.jsxs)("div",{className:"space-y-3 rounded-lg border border-destructive/30 p-4",children:[(0,i.jsx)("p",{className:"text-sm text-muted-foreground",children:"Deleting this server is permanent and cannot be undone. All channels, messages, and members will be permanently removed."}),(0,i.jsxs)(T.Button,{variant:"destructive",size:"sm",onClick:l,children:[(0,i.jsx)(b.Trash2,{className:"size-4"})," Delete Server"]})]})]})]})}function ew({members:e,loading:n,loadingMore:t,hasMore:r,total:a,onLoadMore:l,onSearch:o,onOpenProfile:d,onKickMember:c,onSetRole:m}){let[x,u]=(0,s.useState)(""),h=(0,s.useRef)(null),g=(0,s.useRef)(null);(0,s.useEffect)(()=>{if(!o)return;let e=setTimeout(()=>o(x),200);return()=>clearTimeout(e)},[x,o]);let v=(0,ex.useVirtualizer)({count:e.length,getScrollElement:()=>h.current,estimateSize:()=>68,overscan:8});if((0,s.useEffect)(()=>{if(!l||!r)return;let e=g.current,s=h.current;if(!e||!s)return;let n=new IntersectionObserver(e=>{for(let s of e)s.isIntersecting&&!t&&l()},{root:s,rootMargin:"100px"});return n.observe(e),()=>n.disconnect()},[l,r,t]),n&&0===e.length&&!x)return(0,i.jsx)(eI,{});let f=a??e.length;return(0,i.jsxs)("div",{className:"mx-auto flex h-full min-h-0 max-w-xl flex-col",children:[o&&(0,i.jsxs)("div",{className:"relative mb-3 shrink-0",children:[(0,i.jsx)(W.Search,{className:"absolute left-2 top-1/2 size-4 -translate-y-1/2 text-muted-foreground"}),(0,i.jsx)(E.Input,{className:"h-9 pl-8",placeholder:"Search members",value:x,onChange:e=>u(e.target.value)})]}),(0,i.jsx)("div",{className:"mb-3 shrink-0 text-sm text-muted-foreground",children:x?`${e.length} matches`:`${f} members`}),(0,i.jsxs)("div",{ref:h,className:"min-h-0 flex-1 overflow-y-auto thin-scrollbar",children:[(0,i.jsx)("div",{style:{height:v.getTotalSize(),position:"relative",width:"100%"},children:v.getVirtualItems().map(s=>{let n=e[s.index];return(0,i.jsx)("div",{role:"listitem","data-index":s.index,ref:v.measureElement,style:{position:"absolute",top:0,left:0,width:"100%",transform:`translateY(${s.start}px)`,paddingBottom:8},children:(0,i.jsxs)("div",{className:"flex items-center gap-3 rounded-lg border border-border bg-card px-4 py-2",children:[(0,i.jsx)("button",{onClick:e=>d?.(n.name,e,void 0,n.userId),className:"shrink-0",children:(0,i.jsx)(_.Avatar,{label:n.avatar,seed:n.userId,size:32,presence:n.status,ringColor:"var(--card)"})}),(0,i.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,i.jsx)("div",{className:"truncate text-[15px] font-medium",children:n.name}),(0,i.jsx)("div",{className:"text-xs text-muted-foreground",children:ey(n.role)})]}),(0,eb.isServerOwner)(n.role)?(0,i.jsxs)(ev.Badge,{variant:"secondary",className:"gap-1",children:[(0,i.jsx)(eh.Shield,{className:"size-3.5"})," Owner"]}):(0,i.jsxs)(p.DropdownMenu,{children:[(0,i.jsxs)(p.DropdownMenuTrigger,{render:(0,i.jsx)("button",{className:(0,ev.badgeVariants)({variant:"secondary"})+" cursor-pointer gap-1"}),children:[(0,i.jsx)(eh.Shield,{className:"size-3.5"})," ",ey(n.role)]}),(0,i.jsx)(p.DropdownMenuContent,{align:"end",className:"w-32",children:eN.map(e=>(0,i.jsx)(p.DropdownMenuItem,{onClick:()=>m?.(n.id,e),children:ey(e)},e))})]}),"owner"!==n.role&&(0,i.jsx)(T.Button,{variant:"ghost",size:"icon-sm",className:"text-muted-foreground hover:text-destructive","aria-label":"Kick member",onClick:()=>c?.(n.id),children:(0,i.jsx)(b.Trash2,{className:"size-4"})})]})},n.id)})}),r&&(0,i.jsx)("div",{ref:g,className:"py-3 text-center text-xs text-muted-foreground",children:t?"Loading…":""})]})]})}function eS({invites:e,loading:n,onRevokeInvite:t,onCopyInvite:r}){let[a,l]=(0,s.useState)(null);return n&&0===e.length?(0,i.jsx)(eD,{}):(0,i.jsxs)("div",{className:"mx-auto max-w-xl space-y-2",children:[0===e.length&&(0,i.jsx)("p",{className:"text-sm text-muted-foreground",children:"No active invites — use the invite icon in the sidebar header to share this server."}),e.map(e=>(0,i.jsxs)("div",{className:"flex items-center gap-3 rounded-lg border border-border bg-card px-4 py-3",children:[(0,i.jsx)(d.Link2,{className:"size-5 shrink-0 text-muted-foreground"}),(0,i.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,i.jsx)("div",{className:"truncate font-mono text-sm",children:e.code}),(0,i.jsxs)("div",{className:"text-xs text-muted-foreground",suppressHydrationWarning:!0,children:["by ",e.by," · ",e.uses,e.maxUses?` / ${e.maxUses}`:""," uses · ",e.expiresAt?`expires ${(0,eg.formatRelativeTime)(e.expiresAt)}`:"never expires"]})]}),(0,i.jsx)(T.Button,{variant:"secondary",size:"sm",onClick:()=>r?.(e.code),children:"Copy"}),(0,i.jsx)(T.Button,{variant:"ghost",size:"icon-sm",className:"text-muted-foreground hover:text-destructive","aria-label":"Revoke invite",onClick:()=>l(e.code),children:(0,i.jsx)(eu.X,{className:"size-4"})})]},e.code)),(0,i.jsx)(y.ConfirmDialog,{open:null!==a,onOpenChange:e=>{e||l(null)},title:"Revoke this invite?",description:"Anyone who hasn't used it yet won't be able to join with this link. Existing members aren't affected.",confirmLabel:"Revoke invite",onConfirm:()=>{a&&t?.(a),l(null)}})]})}function ek({level:e,onSetLevel:s}){return(0,i.jsxs)("div",{className:"mx-auto max-w-md space-y-2",children:[(0,i.jsx)("div",{className:"mb-3 text-sm text-muted-foreground",children:"Default notifications for this server"}),[{value:"All messages",label:"Every message",hint:"Notify for every new message on this server"},{value:"Only @mentions",label:"Mentions only",hint:"Notify when someone @s you"},{value:"Nothing",label:"Muted",hint:"No notifications, no badges"}].map(n=>(0,i.jsxs)("button",{onClick:()=>s?.(n.value),className:"flex w-full items-center gap-3 rounded-lg border border-border bg-card px-4 py-3 text-left hover:bg-accent",children:[(0,i.jsx)("span",{className:`grid size-4 shrink-0 place-items-center rounded-full border ${e===n.value?"border-primary":"border-muted-foreground"}`,children:e===n.value&&(0,i.jsx)("span",{className:"size-2 rounded-full bg-primary"})}),(0,i.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,i.jsx)("div",{className:"text-sm font-medium",children:n.label}),(0,i.jsx)("div",{className:"text-xs text-muted-foreground",children:n.hint})]})]},n.value))]})}function ez({auditLog:e,loading:s}){return s&&0===e.length?(0,i.jsx)(eM,{}):(0,i.jsxs)("div",{className:"mx-auto max-w-xl space-y-2",children:[0===e.length&&(0,i.jsx)("p",{className:"text-sm text-muted-foreground",children:"No audit log entries yet. Admin actions will be recorded here."}),e.map((e,s)=>(0,i.jsxs)("div",{className:"flex items-center gap-3 rounded-md px-2 py-2 hover:bg-accent",children:[(0,i.jsx)(m,{className:"size-4 shrink-0 text-muted-foreground"}),(0,i.jsxs)("div",{className:"min-w-0 flex-1 text-sm",children:[(0,i.jsx)("span",{className:"font-medium",children:e.actor})," ",(0,i.jsx)("span",{className:"text-muted-foreground",children:e.action})," ",(0,i.jsx)("span",{className:"font-medium",children:e.target})]}),(0,i.jsx)("span",{className:"shrink-0 text-xs text-muted-foreground",suppressHydrationWarning:!0,children:(0,eg.formatMessageTime)(e.createdAt)})]},s))]})}function eI(){return(0,i.jsxs)("div",{className:"mx-auto max-w-xl space-y-2",children:[(0,i.jsx)(v.Skeleton,{className:"mb-3 h-4 w-24 rounded"}),Array.from({length:5}).map((e,s)=>(0,i.jsxs)("div",{className:"flex items-center gap-3 rounded-lg border border-border bg-card px-4 py-2",children:[(0,i.jsx)(v.Skeleton,{className:"size-8 shrink-0 rounded-full"}),(0,i.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col gap-2",children:[(0,i.jsx)(v.Skeleton,{className:"h-4 w-2/5 rounded"}),(0,i.jsx)(v.Skeleton,{className:"h-3 w-16 rounded"})]}),(0,i.jsx)(v.Skeleton,{className:"h-6 w-16 rounded-full"}),(0,i.jsx)(v.Skeleton,{className:"size-7 shrink-0 rounded-md"})]},s))]})}function eD(){return(0,i.jsx)("div",{className:"mx-auto max-w-xl space-y-2",children:Array.from({length:3}).map((e,s)=>(0,i.jsxs)("div",{className:"flex items-center gap-3 rounded-lg border border-border bg-card px-4 py-3",children:[(0,i.jsx)(v.Skeleton,{className:"size-5 shrink-0 rounded"}),(0,i.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col gap-2",children:[(0,i.jsx)(v.Skeleton,{className:"h-4 w-1/2 rounded"}),(0,i.jsx)(v.Skeleton,{className:"h-3 w-3/4 rounded"})]}),(0,i.jsx)(v.Skeleton,{className:"h-8 w-16 rounded-md"}),(0,i.jsx)(v.Skeleton,{className:"size-7 shrink-0 rounded-md"})]},s))})}function eM(){return(0,i.jsx)("div",{className:"mx-auto max-w-xl space-y-2",children:Array.from({length:6}).map((e,s)=>(0,i.jsxs)("div",{className:"flex items-center gap-3 rounded-md px-2 py-2",children:[(0,i.jsx)(v.Skeleton,{className:"size-4 shrink-0 rounded"}),(0,i.jsx)(v.Skeleton,{className:"h-4 flex-1 rounded",style:{maxWidth:360+37*s%80}}),(0,i.jsx)(v.Skeleton,{className:"h-3 w-16 shrink-0 rounded"})]},s))})}e.s(["ServerSettings",0,function({section:e,setSection:n,onClose:t,serverName:r,serverDescription:a,serverIcon:x,members:u,membersLoading:h,membersLoadingMore:g,membersHasMore:p,membersTotal:v,onLoadMoreMembers:f,onSearchMembers:j,invites:b,invitesLoading:N,auditLog:C,auditLogLoading:w,onOpenProfile:S,onKickMember:k,onSetRole:z,onRevokeInvite:I,onCopyInvite:D,onDeleteServer:M,onUploadIcon:O,onUpdateServer:E,notifLevel:A,onSetNotifLevel:$}){let[P,B]=(0,s.useState)(!1),L=[{id:"overview",label:"Overview",icon:l.Settings},{id:"members",label:"Members",icon:o.Users},{id:"invites",label:"Invites",icon:d.Link2},{id:"notifications",label:"Notifications",icon:c.Bell},{id:"audit",label:"Audit Log",icon:m}];return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(y.ConfirmDialog,{open:P,onOpenChange:B,title:`Delete "${r}"?`,description:"This cannot be undone. All channels, messages, and members will be permanently removed.",confirmLabel:"Delete Server",confirmVariant:"destructive",onConfirm:()=>{B(!1),M?.()}}),(0,i.jsxs)(ef.Tabs,{orientation:"vertical",value:e,onValueChange:e=>n(e),className:"min-h-0 flex-1 flex-row gap-0",children:[(0,i.jsxs)("nav",{className:"flex w-60 shrink-0 flex-col gap-2 overflow-y-auto thin-scrollbar border-r border-border p-4",style:{background:"var(--d-rail)"},children:[(0,i.jsx)("div",{className:"px-2 text-xs font-semibold text-muted-foreground",children:r}),(0,i.jsx)(ef.TabsList,{variant:"line",className:"h-auto w-full flex-col gap-1",children:L.map(e=>(0,i.jsxs)(ef.TabsTrigger,{value:e.id,className:"h-9 w-full justify-start gap-2",children:[(0,i.jsx)(e.icon,{className:"size-4"})," ",e.label]},e.id))})]}),(0,i.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col bg-background",children:[(0,i.jsxs)("header",{className:"flex h-12 shrink-0 items-center border-b border-border px-4",children:[(0,i.jsx)("h1",{className:"flex-1 text-lg font-semibold capitalize",children:"audit"===e?"Audit Log":e}),(0,i.jsx)(T.Button,{variant:"ghost",size:"icon-sm",onClick:t,"aria-label":"Close settings",children:(0,i.jsx)(eu.X,{className:"size-4"})})]}),(0,i.jsxs)("div",{className:"flex-1 overflow-y-auto thin-scrollbar p-4",children:[(0,i.jsx)(ef.TabsContent,{value:"overview",children:(0,i.jsx)(eC,{serverName:r,serverDescription:a,serverIcon:x,onUploadIcon:O,onUpdateServer:E,onRequestDelete:()=>B(!0)})}),(0,i.jsx)(ef.TabsContent,{value:"members",children:(0,i.jsx)(ew,{members:u,loading:h,loadingMore:g,hasMore:p,total:v,onLoadMore:f,onSearch:j,onOpenProfile:S,onKickMember:k,onSetRole:z})}),(0,i.jsx)(ef.TabsContent,{value:"invites",children:(0,i.jsx)(eS,{invites:b,loading:N,onRevokeInvite:I,onCopyInvite:D})}),(0,i.jsx)(ef.TabsContent,{value:"notifications",children:(0,i.jsx)(ek,{level:A??"Only @mentions",onSetLevel:$})}),(0,i.jsx)(ef.TabsContent,{value:"audit",children:(0,i.jsx)(ez,{auditLog:C,loading:w})})]})]})]})]})}],176828)}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,969355,e=>{"use strict";var t=e.i(818404);e.s(["Check",()=>t.default])},288329,e=>{"use strict";var t=e.i(636407),s=e.i(147156),n=e.i(613349);e.s(["SheetResizeHandle",0,function({onPointerDown:e,onPointerMove:s,onPointerUp:r,className:a,withHandle:i=!0}){return(0,t.jsx)("div",{onPointerDown:e,onPointerMove:s,onPointerUp:r,onLostPointerCapture:r,className:(0,n.cn)("hidden sm:flex absolute left-0 top-0 bottom-0 w-1.5 cursor-col-resize z-10 items-center justify-center hover:bg-primary/10 active:bg-primary/20 transition-colors rounded-l-xl",a),children:i&&(0,t.jsx)("div",{className:"h-6 w-1 rounded-lg bg-border"})})},"useSheetResize",0,function({defaultWidth:e=480,minWidth:t=320,maxWidthRatio:n=.8}={}){let[r,a]=(0,s.useState)(e),i=(0,s.useRef)(!1),l=(0,s.useCallback)(e=>{e.preventDefault(),e.target.setPointerCapture(e.pointerId),i.current=!0},[]);return{width:r,onPointerDown:l,onPointerMove:(0,s.useCallback)(e=>{i.current&&a(Math.min(window.innerWidth*n,Math.max(t,window.innerWidth-e.clientX)))},[t,n]),onPointerUp:(0,s.useCallback)(e=>{i.current=!1,e.target.releasePointerCapture(e.pointerId)},[])}}])},169678,364079,721387,e=>{"use strict";var t=e.i(636407),s=e.i(147156),n=e.i(332680),r=e.i(186339),a=e.i(740513),i=e.i(728886),l=e.i(288329),d=e.i(224950),o=e.i(89110),c=e.i(382649),u=e.i(969355),m=e.i(164039),x=e.i(591982),h=e.i(169037),f=e.i(383152),p=e.i(34467),g=e.i(29750),j=e.i(371684),b=e.i(378979),v=e.i(613349),N=e.i(516266);e.i(68322);var y=e.i(522281),w=e.i(418277),k=e.i(742204);e.i(427681);var S=e.i(867002),C=e.i(941308);let z=new Set(["application/json","application/xml","application/javascript","application/typescript","application/x-yaml","application/toml","application/sql"]);function _(e){return!!(e.startsWith("text/")||z.has(e))}function R(e){return e.startsWith("text/html")}function T(e){return e.startsWith("image/")}function P(e){return _(e.content_type)||T(e.content_type)}function A(e,t,s){let n=new URLSearchParams({workspace_id:t});return s&&n.set("download","1"),`/api/artifacts/${e}/content?${n}`}function D({artifact:e,workspaceId:n}){let[r,a]=(0,s.useState)(null),[i,l]=(0,s.useState)(!1),d=A(e.id,n);if((0,s.useEffect)(()=>{_(e.content_type)&&!R(e.content_type)&&(l(!0),a(null),(0,S.getArtifactContent)(e.id,n).then(a).catch(()=>a("(failed to load content)")).finally(()=>l(!1)))},[e.id,e.content_type,n]),i)return(0,t.jsx)("div",{className:"flex justify-center py-8",children:(0,t.jsx)(f.Loader2,{className:"size-5 animate-spin text-muted-foreground"})});if(T(e.content_type))return(0,t.jsx)("div",{className:"flex justify-center",children:(0,t.jsx)("img",{src:d,alt:e.filename,className:"max-w-full rounded-md"})});if(R(e.content_type))return(0,t.jsx)($,{url:d,title:e.filename});if(_(e.content_type)){var o;return(o=e.filename,/\.md$/i.test(o))?(0,t.jsx)("div",{className:"markdown text-sm",children:(0,t.jsx)(y.Streamdown,{plugins:{mermaid:w.mermaid,cjk:k.cjk},children:r??""})}):(0,t.jsx)("pre",{className:"whitespace-pre-wrap text-sm font-mono text-foreground",children:r})}return(0,t.jsxs)("div",{className:"flex flex-col items-center gap-3 py-8 text-center",children:[(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"This file type cannot be previewed."}),(0,t.jsxs)("a",{href:A(e.id,n,!0),download:e.filename,className:"inline-flex items-center gap-2 rounded-md border border-input bg-background px-3 py-2 text-sm font-medium hover:bg-accent hover:text-accent-foreground transition-colors",children:[(0,t.jsx)(C.Download,{className:"size-3.5"}),"Download"]})]})}function $({url:e,title:s}){return(0,t.jsx)("iframe",{src:e,sandbox:"allow-same-origin",className:"w-full h-full rounded-b-xl overflow-hidden",style:{border:"none",display:"block"},title:s})}e.s(["ArtifactContentRenderer",0,D,"computeArtifactVersions",0,function(e){let t=new Map;for(let s of e){let e=t.get(s.filename)||[];e.push(s),t.set(s.filename,e)}let s=new Map,n=new Set;for(let[e,r]of t)r.sort((e,t)=>e.created_at.localeCompare(t.created_at)),r.length>1&&n.add(e),r.forEach((e,t)=>s.set(e.id,t+1));return{versionMap:s,duplicateFilenames:n}},"getArtifactThumbnailUrl",0,function(e,t){let s=new URLSearchParams({workspace_id:t});return`/api/artifacts/${e}/thumbnail?${s}`},"getArtifactUrl",0,A,"isHtmlType",0,R,"isPreviewable",0,P],364079);var E=e.i(833813),U=e.i(506522);function B(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}e.s(["ArtifactSheet",0,function({open:e,onOpenChange:a,artifacts:i,workspaceId:d,initialArtifact:o=null,versionMap:c,duplicateFilenames:u}){let[m,x]=(0,s.useState)(null),{width:h,onPointerDown:f,onPointerMove:p,onPointerUp:g}=(0,l.useSheetResize)({defaultWidth:448,minWidth:320,maxWidthRatio:.8});(0,s.useEffect)(()=>{e&&o&&x(o)},[e,o]);let j=e=>{a(e),e||setTimeout(()=>x(null),300)};return(0,t.jsx)(n.Sheet,{open:e,onOpenChange:j,children:(0,t.jsxs)(n.SheetContent,{side:"right",showCloseButton:!1,style:{width:`min(${h}px, 100vw)`,maxWidth:"none"},className:"data-[side=right]:sm:inset-y-2 data-[side=right]:sm:right-2 data-[side=right]:sm:h-auto data-[side=right]:sm:rounded-xl data-[side=right]:sm:border",children:[(0,t.jsx)(l.SheetResizeHandle,{onPointerDown:f,onPointerMove:p,onPointerUp:g}),m?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.SheetHeader,{children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(r.Button,{variant:"ghost",size:"icon-sm",className:"shrink-0 sm:hidden",onClick:()=>j(!1),children:(0,t.jsx)(U.ArrowLeft,{className:"size-4"})}),(0,t.jsxs)(n.SheetTitle,{className:"truncate flex-1",children:[m.filename,u.has(m.filename)&&(0,t.jsxs)("span",{className:"ml-2 text-xs text-muted-foreground bg-muted rounded-full px-2 py-1 font-normal",children:["v",c.get(m.id)??1]})]}),(0,t.jsx)(r.Button,{variant:"ghost",size:"icon-sm",className:"shrink-0",onClick:()=>window.open(A(m.id,d,!0),"_blank"),children:(0,t.jsx)(C.Download,{className:"size-4"})})]})}),(0,t.jsx)(n.SheetBody,{className:(0,v.cn)("thin-scrollbar",R(m.content_type)&&"p-0! overflow-hidden!"),children:(0,t.jsx)(D,{artifact:m,workspaceId:d})})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.SheetHeader,{children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(r.Button,{variant:"ghost",size:"icon-sm",className:"shrink-0 sm:hidden",onClick:()=>j(!1),children:(0,t.jsx)(U.ArrowLeft,{className:"size-4"})}),(0,t.jsx)(n.SheetTitle,{className:"flex-1",children:"Artifacts"})]})}),(0,t.jsx)(n.SheetBody,{className:"thin-scrollbar",children:0===i.length?(0,t.jsx)("p",{className:"text-sm text-muted-foreground py-8 text-center",children:"No artifacts uploaded yet."}):(0,t.jsx)("div",{className:"space-y-1",children:i.map(e=>(0,t.jsxs)("button",{onClick:()=>x(e),className:"flex items-center gap-3 w-full rounded-lg px-3 py-2 text-left hover:bg-muted/50 transition-colors",children:[(0,t.jsx)(E.FileText,{className:"size-4 shrink-0 text-muted-foreground"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsxs)("p",{className:"text-sm font-medium truncate",children:[e.filename,u.has(e.filename)&&(0,t.jsxs)("span",{className:"ml-2 text-xs text-muted-foreground bg-muted rounded-full px-2 py-1 font-normal",children:["v",c.get(e.id)??1]})]}),(0,t.jsxs)("p",{className:"text-xs text-muted-foreground",children:[B(e.size)," · ",new Date(e.created_at).toLocaleString()]})]})]},e.id))})})]})]})})},"formatSize",0,B],721387),e.i(954194);var I=e.i(582168),F=e.i(439769),L=e.i(214644);e.i(400175);var W=e.i(126366),K=e.i(393153),M=e.i(397004),H=e.i(520582);let O="h-7 border-0 bg-transparent px-2 text-xs text-foreground hover:bg-accent transition-colors -ml-2",q=["todo","in_progress","review","done"];function V(e){return"done"===e?"Complete":e.replace(/_/g," ").replace(/\b\w/g,e=>e.toUpperCase())}function X({agent:e,size:s=24}){let n=(0,W.parseAvatarUrl)(e?.avatar_url);return n?(0,t.jsx)(W.AvatarRenderer,{config:n,size:s,className:"shrink-0 rounded-full"}):(0,t.jsx)("span",{className:"flex shrink-0 items-center justify-center rounded-full border border-border bg-muted text-[11px] font-medium text-muted-foreground",style:{width:s,height:s},children:(e?.name??"?").slice(0,1).toUpperCase()})}function G({agent:e,size:s=24}){let n=e.email_handle?(0,F.toAlookAddress)(e.email_handle):"";return(0,t.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,t.jsx)(X,{agent:e,size:s}),(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-2",children:[(0,t.jsx)("div",{className:"truncate text-xs font-medium",children:e.name}),n?(0,t.jsx)("div",{className:"truncate text-[11px] text-muted-foreground",children:n}):null]})]})}function J({icon:e,children:s}){return(0,t.jsxs)("div",{className:"group flex items-center gap-2",children:[(0,t.jsx)("span",{className:"inline-flex size-6 shrink-0 items-center justify-center text-muted-foreground",children:e}),(0,t.jsx)("div",{className:"flex min-w-0 flex-wrap items-center gap-1",children:s})]})}function Y({message:e}){return"event"===e.role?(0,t.jsx)("div",{className:"rounded-md border bg-muted/50 text-muted-foreground text-xs px-3 py-2",children:e.content}):(0,t.jsxs)("div",{className:"rounded-lg border border-border/60 bg-background/55 p-3",children:[(0,t.jsxs)("div",{className:"mb-1 flex items-center justify-between gap-2 text-xs text-muted-foreground",children:[(0,t.jsx)("span",{className:"capitalize",children:e.role}),(0,t.jsx)("span",{children:new Date(e.created_at).toLocaleString()})]}),(0,t.jsx)("div",{className:"prose prose-sm dark:prose-invert max-w-none text-sm wrap-break-word",children:(0,t.jsx)(y.Streamdown,{plugins:{mermaid:w.mermaid,cjk:k.cjk},children:e.content})})]})}function Q({comment:e,agents:s}){let n="agent"===e.author_type?s.find(t=>t.id===e.author_id)?.name??"Agent":"You";return(0,t.jsxs)("div",{className:"rounded-lg border border-border/60 bg-background p-3",children:[(0,t.jsxs)("div",{className:"mb-1 flex items-center justify-between gap-2 text-xs text-muted-foreground",children:[(0,t.jsx)("span",{className:"font-medium",children:n}),(0,t.jsx)("span",{children:new Date(e.created_at).toLocaleString()})]}),(0,t.jsx)("div",{className:"prose prose-sm dark:prose-invert max-w-none text-sm wrap-break-word",children:(0,t.jsx)(y.Streamdown,{plugins:{mermaid:w.mermaid,cjk:k.cjk},children:e.content})})]})}function Z({artifacts:e,workspaceId:s,onArtifactClick:n}){if(0===e.length)return null;let r="flex items-center gap-2 rounded-md px-2 py-2 text-sm transition-colors hover:bg-accent";return(0,t.jsx)("div",{className:"space-y-1",children:e.map(e=>{let a=n&&P(e),i=(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(x.File,{className:"size-3.5 shrink-0 text-muted-foreground"}),(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate",children:e.filename}),(0,t.jsx)("span",{className:"shrink-0 text-xs text-muted-foreground",children:B(e.size)})]});return a?(0,t.jsx)("button",{type:"button",onClick:()=>n(e),className:(0,v.cn)(r,"w-full text-left"),children:i},e.id):(0,t.jsx)("a",{href:A(e.id,s,!0),target:"_blank",rel:"noopener noreferrer",className:r,children:i},e.id)})})}e.s(["IssueSheet",0,function({open:e,onOpenChange:x,agents:y,issue:w,detail:k,detailLoading:S,activeTask:C,traceTasks:z,submitting:_,defaultAgentId:R,slug:T,workspaceId:P,draft:A,onDraftChange:D,onCreate:$,onUpdate:E,onStatusChange:U,onCommented:B,onDispatched:F,onArtifactClick:W}){let ee,et,es=w?"detail":"create",[en,er]=(0,s.useState)(""),[ea,ei]=(0,s.useState)(""),[el,ed]=(0,s.useState)(R??""),[eo,ec]=(0,s.useState)(!1),[eu,em]=(0,s.useState)(""),[ex,eh]=(0,s.useState)(!1),[ef,ep]=(0,s.useState)(null),[eg,ej]=(0,s.useState)(!1),eb=(0,s.useRef)(null),ev=(0,s.useRef)(null),eN=C&&!["completed","failed","cancelled","superseded"].includes(C.status),ey=z?.some(e=>["queued","dispatched","running"].includes(e.status))??!1;(0,s.useEffect)(()=>{e&&(w?(er(w.title),ei(w.description??"")):(er(A?.title??""),ei(A?.description??""),ed(A?.agentId||R||"")))},[e,w?.id]),(0,s.useEffect)(()=>{"create"===es&&e&&D?.({title:en,description:ea,agentId:el})},[en,ea,el,es,e]),(0,s.useEffect)(()=>{ev.current&&(ev.current.scrollTop=ev.current.scrollHeight)},[k?.messages?.length,k?.comments?.length,z?.length]);let ew=(0,s.useRef)(null),ek=(0,s.useRef)(E);(0,s.useEffect)(()=>{ek.current=E},[E]);let eS=(0,s.useRef)(en);(0,s.useEffect)(()=>{eS.current=en},[en]);let eC=(0,s.useRef)(ea);(0,s.useEffect)(()=>{eC.current=ea},[ea]);let ez=(0,s.useRef)(w);(0,s.useEffect)(()=>{ez.current=w},[w]);let e_=(0,s.useCallback)(()=>{ew.current&&clearTimeout(ew.current),ew.current=null;let e=ez.current;if(!e)return;let t=eS.current!==e.title,s=eC.current!==(e.description??"");if(!t&&!s||!eS.current.trim())return;let n={};t&&(n.title=eS.current.trim()),s&&(n.description=eC.current.trim()),ek.current?.(e.id,n)},[]);(0,s.useEffect)(()=>{if("detail"!==es||!w||!e)return;let t=en!==w.title,s=ea!==(w.description??"");if((t||s)&&en.trim())return ew.current&&clearTimeout(ew.current),ew.current=setTimeout(e_,500),()=>{ew.current&&clearTimeout(ew.current)}},[en,ea,es,w,e,e_]);let eR=(0,s.useRef)(e);(0,s.useEffect)(()=>{eR.current&&!e&&"detail"===es&&e_(),eR.current=e},[e,es,e_]);let{width:eT,onPointerDown:eP,onPointerMove:eA,onPointerUp:eD}=(0,l.useSheetResize)({defaultWidth:448,minWidth:320,maxWidthRatio:.8}),e$=async()=>{en.trim()&&!_&&await $?.({agent_id:el||void 0,title:en.trim(),description:ea.trim()})},eE=async()=>{if(eu.trim()&&!ex&&w){eh(!0);try{if(!(await fetch(`/api/issues/${w.id}/comments?workspace_id=${P}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:eu.trim()})})).ok)throw Error("Failed to send comment");em(""),B?.()}catch{N.toast.error("Failed to send comment")}finally{eh(!1)}}},eU=(0,s.useRef)(null),eB=(0,s.useCallback)(e=>{"Enter"===e.key&&e.shiftKey&&"create"===es&&(eU.current&&eU.current.contains(e.target)||(e.preventDefault(),e.stopPropagation(),e$()))},[es,en,ea,el,_]),eI="detail"===es&&w?.status==="todo",eF=y.find(e=>e.id===el)??null,eL=w?.agent_id?y.find(e=>e.id===w.agent_id)??null:null,[eW,eK]=(0,s.useState)("issue");(0,s.useEffect)(()=>{eK("issue")},[w?.id,es]);let eM=(0,t.jsx)(t.Fragment,{children:S?(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)(i.Skeleton,{className:"h-12"}),(0,t.jsx)(i.Skeleton,{className:"h-8"}),(0,t.jsx)(i.Skeleton,{className:"h-12"})]}):0!==(et=[...(k?.messages??[]).filter(e=>"event"===e.role).map(e=>({kind:"event",id:e.id,created_at:e.created_at,data:e})),...(k?.comments??[]).map(e=>({kind:"comment",id:e.id,created_at:e.created_at,data:e}))].sort((e,t)=>new Date(e.created_at).getTime()-new Date(t.created_at).getTime())).length||eN?(0,t.jsxs)("div",{className:"relative pl-4",children:[(0,t.jsx)("div",{className:"absolute left-[4.5px] top-2 bottom-2 w-px bg-border"}),(0,t.jsxs)("div",{className:"space-y-3",children:[et.map(e=>(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("div",{className:"absolute -left-4 top-2 size-2.5 rounded-full border-2 border-background bg-muted-foreground/40"}),"event"===e.kind?(0,t.jsx)(Y,{message:e.data}):(0,t.jsx)(Q,{comment:e.data,agents:y})]},e.id)),(eN||ey)&&((ee=z?.filter(e=>["queued","dispatched","running"].includes(e.status)))&&ee.length>0?ee.map(e=>{let s="running"===e.status;return(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("div",{className:(0,v.cn)("absolute -left-4 top-2 size-2.5 rounded-full border-2 border-background",s?"bg-emerald-500 animate-pulse":"bg-muted-foreground/40")}),(0,t.jsx)("div",{className:(0,v.cn)("rounded-md border px-3 py-2",s?"border-emerald-500/30 bg-emerald-500/10":"border-border/60 bg-muted/30"),children:(0,t.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[e.agent&&(0,t.jsx)(X,{agent:{avatar_url:e.agent.avatarUrl,name:e.agent.name},size:16}),(0,t.jsxs)("span",{className:s?"text-emerald-600 dark:text-emerald-400":"text-muted-foreground",children:[e.agent?.name??"Agent"," ",s?"is working":"— queued"]})]})})]},e.id)}):(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("div",{className:"absolute -left-4 top-2 size-2.5 rounded-full border-2 border-background bg-emerald-500 animate-pulse"}),(0,t.jsx)("div",{className:"rounded-md border border-emerald-500/30 bg-emerald-500/10 px-3 py-2",children:(0,t.jsx)("div",{className:"flex items-center gap-2 text-xs text-emerald-600 dark:text-emerald-400",children:"Working"})})]}))]})]}):(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:"No activity yet."})}),eH="detail"!==es||!w||eI||eN||(0,I.isTerminalIssueStatus)(w.status)?null:(0,t.jsxs)("div",{className:"flex flex-col rounded-xl border bg-background/60 transition-colors duration-200 focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50",children:[(0,t.jsx)("textarea",{ref:eU,placeholder:"Leave a comment...",value:eu,onChange:e=>em(e.target.value),className:"w-full resize-none bg-transparent px-4 py-2 text-sm leading-relaxed outline-none placeholder:text-muted-foreground field-sizing-content min-h-15 max-h-32 thin-scrollbar overflow-y-auto",onKeyDown:e=>{"Enter"===e.key&&e.shiftKey&&(e.preventDefault(),eE())}}),(0,t.jsxs)("div",{className:"flex items-center justify-between px-2 pb-2 pt-0.5",children:[(0,t.jsx)(M.Kbd,{className:"text-[11px] text-muted-foreground/50",children:"⇧↵"}),(0,t.jsx)(r.Button,{size:"icon-sm",onClick:eE,disabled:!eu.trim()||ex,className:(0,v.cn)("rounded-lg transition-opacity duration-200",!eu.trim()&&!ex&&"opacity-40"),children:ex?(0,t.jsx)(f.Loader2,{className:"size-3.5 animate-spin"}):(0,t.jsx)(c.ArrowUp,{className:"size-3.5"})})]})]}),eO=(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"shrink-0 px-2 sm:px-3 pt-5 pb-1",children:(0,t.jsx)(H.AutoResizeTextarea,{value:en,onChange:e=>er(e.target.value),onKeyDown:e=>{if("Enter"===e.key&&!e.shiftKey){e.preventDefault();let t=eb.current?.querySelector('[contenteditable="true"]');t?.focus()}},placeholder:"create"===es?"New issue":"Untitled",autoFocus:"create"===es,rows:1,className:"w-full rounded-none border-0 bg-transparent px-0 py-1 font-news text-2xl sm:text-3xl font-medium leading-[1.2] tracking-tight shadow-none outline-none focus-visible:border-0 focus-visible:ring-0 focus-visible:ring-offset-0 placeholder:text-muted-foreground/40 placeholder:font-normal"})}),(0,t.jsxs)("div",{className:"shrink-0 space-y-2 px-2 sm:px-3 py-2",children:[(0,t.jsx)(J,{icon:(0,t.jsx)(g.User,{className:"size-3.5"}),children:"create"===es||eI?(0,t.jsxs)(d.Popover,{open:eo,onOpenChange:ec,children:[(0,t.jsx)(d.PopoverTrigger,{render:(0,t.jsx)("button",{type:"button",disabled:_||eg,className:(0,v.cn)(O,"flex items-center gap-2 rounded-md")}),children:eF?(0,t.jsx)("span",{className:"truncate",children:eF.name}):(0,t.jsx)("span",{className:"text-muted-foreground/70",children:"Unassigned"})}),(0,t.jsxs)(d.PopoverContent,{align:"start",className:"max-h-64 w-72 overflow-y-auto thin-scrollbar p-1",children:[!eI&&(0,t.jsxs)("button",{type:"button",onClick:()=>{ed(""),ec(!1)},className:"flex w-full items-center justify-between gap-2 rounded-md px-2 py-2 text-left text-sm transition-colors hover:bg-accent hover:text-accent-foreground",children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:"None (unassigned)"}),el?null:(0,t.jsx)(u.Check,{className:"size-3.5 shrink-0"})]}),y.map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>{eI?ep(e):ed(e.id),ec(!1)},className:"flex w-full items-center justify-between gap-2 rounded-md px-2 py-2 text-left text-sm transition-colors hover:bg-accent hover:text-accent-foreground",children:[(0,t.jsx)(G,{agent:e,size:18}),el===e.id?(0,t.jsx)(u.Check,{className:"size-3.5 shrink-0"}):null]},e.id))]})]}):(0,t.jsx)("span",{className:"text-xs truncate",children:eL?eL.name:(0,t.jsx)("span",{className:"text-muted-foreground/70",children:"Unassigned"})})}),"detail"===es&&w&&(0,t.jsx)(J,{icon:(0,t.jsx)(m.CircleDot,{className:"size-3.5"}),children:(0,t.jsxs)(o.Select,{value:w.status,onValueChange:e=>{e&&w&&e!==w.status&&U?.(w.id,e)},items:(eI?["todo","done"]:q).map(e=>({value:e,label:V(e)})),children:[(0,t.jsx)(o.SelectTrigger,{className:"h-7 w-auto border-none bg-transparent px-2 shadow-none text-xs text-foreground hover:bg-accent transition-colors rounded-md",children:(0,t.jsx)(o.SelectValue,{})}),(0,t.jsx)(o.SelectContent,{children:(eI?["todo","done"]:q).map(e=>(0,t.jsx)(o.SelectItem,{value:e,children:V(e)},e))})]})}),"detail"===es&&w?.agent_id&&w?.conversation_id&&(0,t.jsx)(J,{icon:(0,t.jsx)(p.MessageSquare,{className:"size-3.5"}),children:(0,t.jsx)(b.default,{href:`/w/${T}/agents/${w.agent_id}?conv=${w.conversation_id}${w.latest_task_id?`&task=${w.latest_task_id}`:""}`,className:(0,v.cn)(O,"inline-flex items-center rounded-md"),children:"Chat"})}),"detail"===es&&k?.traceId&&(0,t.jsx)(J,{icon:(0,t.jsx)(h.GitBranch,{className:"size-3.5"}),children:(0,t.jsx)(b.default,{href:`/w/${T}/traces/${k.traceId}`,className:(0,v.cn)(O,"inline-flex items-center rounded-md"),children:"Thread"})})]}),(0,t.jsx)("div",{className:(0,v.cn)("px-2 sm:px-3 py-2 flex-1 min-h-0 overflow-y-auto thin-scrollbar"),ref:eb,children:(0,t.jsx)(a.MarkdownEditor,{value:ea,onChange:ei,placeholder:"Describe the issue...",minHeight:"create"===es?"10rem":"4rem",variant:"seamless",contentType:"markdown",agents:y},w?.id??"new")}),"detail"===es&&k?.artifacts&&k.artifacts.length>0&&(0,t.jsx)("div",{className:"shrink-0 px-2 sm:px-3 py-2",children:(0,t.jsx)(Z,{artifacts:k.artifacts,workspaceId:P,onArtifactClick:W})})]});return(0,t.jsxs)(n.Sheet,{open:e,onOpenChange:x,children:[(0,t.jsxs)(n.SheetContent,{side:"right",showCloseButton:!1,className:"data-[side=right]:sm:inset-y-2 data-[side=right]:sm:right-2 data-[side=right]:sm:h-auto data-[side=right]:sm:rounded-xl data-[side=right]:sm:border overflow-visible",style:{width:`min(${eT}px, 100vw)`,maxWidth:"none"},children:[(0,t.jsx)(l.SheetResizeHandle,{onPointerDown:eP,onPointerMove:eA,onPointerUp:eD}),(0,t.jsxs)(n.SheetClose,{render:(0,t.jsx)(r.Button,{variant:"ghost",size:"icon-sm"}),className:"absolute top-3 right-3 z-10 sm:hidden",children:[(0,t.jsx)(j.XIcon,{}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]}),"detail"===es&&!eI&&(0,t.jsxs)("div",{className:"hidden lg:flex absolute right-full top-0 bottom-0 mr-2 w-90 flex-col rounded-xl border bg-background shadow-lg overflow-hidden",children:[(0,t.jsx)("div",{className:"shrink-0 flex items-center border-b px-4 py-2",children:(0,t.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:"Activity"})}),(0,t.jsx)("div",{ref:ev,className:"flex-1 min-h-0 overflow-y-auto thin-scrollbar px-4 py-4 space-y-3",children:eM}),eH&&(0,t.jsx)("div",{className:"shrink-0 border-t px-4 py-3",children:eH})]}),(0,t.jsx)(n.SheetTitle,{className:"sr-only",children:"create"===es?"New Issue":w?.title??"Issue"}),(0,t.jsxs)("div",{className:"flex flex-1 min-h-0 flex-col",onKeyDownCapture:eB,children:["detail"===es&&!eI&&(0,t.jsxs)("div",{className:"shrink-0 flex items-center gap-1 border-b px-2 py-2 lg:hidden",children:[(0,t.jsx)("button",{type:"button",onClick:()=>eK("issue"),className:(0,v.cn)("rounded-md px-2 py-1 text-xs font-medium transition-colors","issue"===eW?"bg-accent text-foreground":"text-muted-foreground hover:text-foreground"),children:"Issue"}),(0,t.jsx)("button",{type:"button",onClick:()=>eK("activity"),className:(0,v.cn)("rounded-md px-2 py-1 text-xs font-medium transition-colors","activity"===eW?"bg-accent text-foreground":"text-muted-foreground hover:text-foreground"),children:"Activity"})]}),(0,t.jsxs)(n.SheetBody,{className:"flex flex-col gap-0 p-0 overflow-hidden",children:[(0,t.jsx)("div",{className:(0,v.cn)("flex flex-col flex-1 min-h-0","detail"===es&&"activity"===eW&&"hidden lg:flex"),children:eO}),"detail"===es&&!eI&&"activity"===eW&&(0,t.jsxs)("div",{className:"flex flex-col flex-1 min-h-0 lg:hidden",children:[(0,t.jsx)("div",{className:"flex-1 min-h-0 overflow-y-auto thin-scrollbar px-3 py-4 space-y-3",children:eM}),eH&&(0,t.jsx)("div",{className:"shrink-0 border-t px-3 py-3",children:eH})]})]}),"create"===es&&(0,t.jsxs)(n.SheetFooter,{children:[(0,t.jsx)(r.Button,{variant:"outline",size:"sm",onClick:()=>x(!1),disabled:_,children:"Cancel"}),(0,t.jsxs)(r.Button,{size:"sm",onClick:e$,disabled:!en.trim()||_,children:[_&&(0,t.jsx)(f.Loader2,{className:"mr-2 size-3.5 animate-spin"}),(0,t.jsx)(M.Kbd,{className:"mr-1 hidden sm:inline-flex bg-background/20 text-inherit opacity-60",children:"⇧ + ⏎"}),"Create"]})]})]})]}),(0,t.jsx)(K.ConfirmDialog,{open:!!ef,onOpenChange:e=>{e||ep(null)},title:"Run issue?",description:`This issue will be assigned to ${ef?.name??"the agent"} and start running immediately.`,confirmLabel:"Run",loadingLabel:"Running...",confirmVariant:"default",loading:eg,onConfirm:async()=>{if(ef&&w){ej(!0);try{await (0,L.updateIssue)(P,w.id,{agent_id:ef.id}),ep(null),F?.(w.id)}catch(e){N.toast.error(e instanceof Error?e.message:"Failed to dispatch issue"),ep(null)}finally{ej(!1)}}}})]})}],169678)}]);
|