@alook/app 0.1.13 → 0.1.14
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/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/0689_howe9r8w.js +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/{3qjq6unr3_6zh.js → 1dhdj9k7esa01.js} +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/{1f4gx6ss03t8p.js → 1sr2s86q3q3ym.js} +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/1wbsy2cyw8it0.js +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/2cad_ipsdoena.js +3 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/2gfkwzxzteqhj.js +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/372jk5rjn6j78.js +3 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/3e96p59cyz74j.css +1 -0
- package/bundled/web/.open-next/cache/{WzFwGURMqI_7y4mlZt8go → RijueMWWtDXbmjaeEVsuX}/_global-error.cache +1 -1
- package/bundled/web/.open-next/cache/{WzFwGURMqI_7y4mlZt8go → RijueMWWtDXbmjaeEVsuX}/_not-found.cache +1 -1
- package/bundled/web/.open-next/cache/{WzFwGURMqI_7y4mlZt8go → RijueMWWtDXbmjaeEVsuX}/blog/feed.xml.cache +1 -1
- package/bundled/web/.open-next/cache/{WzFwGURMqI_7y4mlZt8go → RijueMWWtDXbmjaeEVsuX}/blog.cache +1 -1
- package/bundled/web/.open-next/cache/{WzFwGURMqI_7y4mlZt8go → RijueMWWtDXbmjaeEVsuX}/c/me/bots.cache +1 -1
- package/bundled/web/.open-next/cache/{WzFwGURMqI_7y4mlZt8go → RijueMWWtDXbmjaeEVsuX}/c/me/machines.cache +1 -1
- package/bundled/web/.open-next/cache/{WzFwGURMqI_7y4mlZt8go → RijueMWWtDXbmjaeEVsuX}/c/me.cache +1 -1
- package/bundled/web/.open-next/cache/{WzFwGURMqI_7y4mlZt8go → RijueMWWtDXbmjaeEVsuX}/c.cache +1 -1
- package/bundled/web/.open-next/cache/{WzFwGURMqI_7y4mlZt8go → RijueMWWtDXbmjaeEVsuX}/device.cache +1 -1
- package/bundled/web/.open-next/cache/{WzFwGURMqI_7y4mlZt8go → RijueMWWtDXbmjaeEVsuX}/privacy.cache +1 -1
- package/bundled/web/.open-next/cache/{WzFwGURMqI_7y4mlZt8go → RijueMWWtDXbmjaeEVsuX}/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/blog/[slug]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/blog/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/c/channels/[serverId]/[channelId]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/c/channels/[serverId]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/c/channels/[serverId]/settings/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/c/invite/[token]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/c/me/[dmId]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/c/me/bots/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/c/me/machines/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/c/me/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/c/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/landing-legacy/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 +21 -21
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__03h9fml._.js → [root-of-the-server]__08_wx1z._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[turbopack]_runtime.js +21 -21
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_0w_xjb3._.js → _01mpw9e._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_0-71fzu._.js → _0_xatyk._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_0a2_w4y._.js → _0uu4l16._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_0hc0ylf._.js → _1xew-at._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_1071vrn._.js → node_modules__pnpm_0ksf9mp._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_0sir-i2._.js → node_modules__pnpm_0lb3o08._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_0syfy8c._.js → node_modules__pnpm_0m12va9._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_0dgaeef._.js → node_modules__pnpm_0sstc2x._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_02qa66o._.js → node_modules__pnpm_0sur5d2._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_1hekpxx._.js → node_modules__pnpm_0t0286e._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_1bzpz9y._.js → node_modules__pnpm_0tmwrl0._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_0m5a_ca._.js → node_modules__pnpm_0ytz4gl._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_07g_cjo._.js → node_modules__pnpm_11z1ecf._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_0yx-x0b._.js → node_modules__pnpm_134gkx6._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_1wag6jn._.js → node_modules__pnpm_16tz6mu._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_0uvm1gv._.js → node_modules__pnpm_1jdfo8i._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_1e9xte7._.js → node_modules__pnpm_1ngdb96._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_0vlzxdm._.js → node_modules__pnpm_1puvp7j._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_20-iep6._.js → node_modules__pnpm_1wqp9kx._.js} +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_0_9ypic._.js → node_modules__pnpm_1xo4ew9._.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_components_community_machines_machine-card_tsx_0b11c0k._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_components_community_messages_message-list_tsx_152pgjg._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_components_community_messages_message_tsx_1ij_lax._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_components_home_1vluxxn._.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 +101 -101
- package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs.meta.json +254 -254
- package/bundled/web/.open-next/server-functions/default/src/web/index.mjs +4 -4
- package/dist/daemon/index.js +5 -7
- package/package.json +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/171w9ziua75pc.js +0 -3
- package/bundled/web/.open-next/assets/_next/static/chunks/1ba2i14ficz1n.css +0 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/1blkytltvz6wh.js +0 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/1ztd4b7x0f3ma.js +0 -3
- package/bundled/web/.open-next/assets/_next/static/chunks/2r8ucgbpj0aj5.js +0 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/3scjok5e-_g_v.js +0 -1
- /package/bundled/web/.open-next/assets/_next/static/{WzFwGURMqI_7y4mlZt8go → RijueMWWtDXbmjaeEVsuX}/_buildManifest.js +0 -0
- /package/bundled/web/.open-next/assets/_next/static/{WzFwGURMqI_7y4mlZt8go → RijueMWWtDXbmjaeEVsuX}/_clientMiddlewareManifest.js +0 -0
- /package/bundled/web/.open-next/assets/_next/static/{WzFwGURMqI_7y4mlZt8go → RijueMWWtDXbmjaeEVsuX}/_ssgManifest.js +0 -0
- /package/bundled/web/.open-next/cache/{WzFwGURMqI_7y4mlZt8go → RijueMWWtDXbmjaeEVsuX}/favicon.ico.cache +0 -0
- /package/bundled/web/.open-next/cache/{WzFwGURMqI_7y4mlZt8go → RijueMWWtDXbmjaeEVsuX}/llms.txt.cache +0 -0
- /package/bundled/web/.open-next/cache/{WzFwGURMqI_7y4mlZt8go → RijueMWWtDXbmjaeEVsuX}/robots.txt.cache +0 -0
|
@@ -156,7 +156,7 @@ var DOQueueHandler = class extends DurableObject {
|
|
|
156
156
|
method: "HEAD",
|
|
157
157
|
headers: {
|
|
158
158
|
// This is defined during build
|
|
159
|
-
"x-prerender-revalidate": "
|
|
159
|
+
"x-prerender-revalidate": "7d44de899e3a9c8c45c07286b858443e",
|
|
160
160
|
"x-isr": "1"
|
|
161
161
|
},
|
|
162
162
|
// This one is kind of problematic, it will always show the wall time of the revalidation to `this.revalidationTimeout`
|
|
@@ -180,7 +180,7 @@ var DOQueueHandler = class extends DurableObject {
|
|
|
180
180
|
"INSERT OR REPLACE INTO sync (id, lastSuccess, buildId) VALUES (?, unixepoch(), ?)",
|
|
181
181
|
// We cannot use the deduplication id because it's not unique per route - every time a route is revalidated, the deduplication id is different.
|
|
182
182
|
`${host}${url}`,
|
|
183
|
-
"
|
|
183
|
+
"RijueMWWtDXbmjaeEVsuX"
|
|
184
184
|
);
|
|
185
185
|
}
|
|
186
186
|
this.routeInFailedState.delete(msg.MessageDeduplicationId);
|
|
@@ -232,7 +232,7 @@ var DOQueueHandler = class extends DurableObject {
|
|
|
232
232
|
}
|
|
233
233
|
this.routeInFailedState.set(msg.MessageDeduplicationId, updatedFailedState);
|
|
234
234
|
if (!this.disableSQLite) {
|
|
235
|
-
this.sql.exec("INSERT OR REPLACE INTO failed_state (id, data, buildId) VALUES (?, ?, ?)", msg.MessageDeduplicationId, JSON.stringify(updatedFailedState), "
|
|
235
|
+
this.sql.exec("INSERT OR REPLACE INTO failed_state (id, data, buildId) VALUES (?, ?, ?)", msg.MessageDeduplicationId, JSON.stringify(updatedFailedState), "RijueMWWtDXbmjaeEVsuX");
|
|
236
236
|
}
|
|
237
237
|
await this.addAlarm();
|
|
238
238
|
}
|
|
@@ -256,8 +256,8 @@ var DOQueueHandler = class extends DurableObject {
|
|
|
256
256
|
return;
|
|
257
257
|
this.sql.exec("CREATE TABLE IF NOT EXISTS failed_state (id TEXT PRIMARY KEY, data TEXT, buildId TEXT)");
|
|
258
258
|
this.sql.exec("CREATE TABLE IF NOT EXISTS sync (id TEXT PRIMARY KEY, lastSuccess INTEGER, buildId TEXT)");
|
|
259
|
-
this.sql.exec("DELETE FROM failed_state WHERE buildId != ?", "
|
|
260
|
-
this.sql.exec("DELETE FROM sync WHERE buildId != ?", "
|
|
259
|
+
this.sql.exec("DELETE FROM failed_state WHERE buildId != ?", "RijueMWWtDXbmjaeEVsuX");
|
|
260
|
+
this.sql.exec("DELETE FROM sync WHERE buildId != ?", "RijueMWWtDXbmjaeEVsuX");
|
|
261
261
|
const failedStateCursor = this.sql.exec("SELECT * FROM failed_state");
|
|
262
262
|
for (const row of failedStateCursor) {
|
|
263
263
|
this.routeInFailedState.set(row.id, JSON.parse(row.data));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
RijueMWWtDXbmjaeEVsuX
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,124141,e=>{"use strict";var t=e.i(406146);e.s(["CircleAlert",()=>t.default])},288052,e=>{"use strict";let t=(0,e.i(281277).default)("ellipsis-vertical",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"12",cy:"5",r:"1",key:"gxeob9"}],["circle",{cx:"12",cy:"19",r:"1",key:"lyex9k"}]]);e.s(["MoreVertical",0,t],288052)},407478,110696,468099,e=>{"use strict";var t=e.i(633940),a=e.i(579848),s=e.i(957730),r=e.i(288052);e.i(954194);var n=e.i(846367),i=e.i(934351),l=e.i(186339),o=e.i(329686),c=e.i(89164),d=e.i(450463),m=e.i(130901),u=e.i(381153),x=e.i(124141),h=e.i(855372),f=e.i(613349);let p="inline-flex max-w-[160px] items-center gap-2 rounded-md border border-border bg-card px-2 py-1 text-[11px]";function L({runtimes:e}){let a=e??[];if(0===a.length)return null;let s=a.toSorted((e,t)=>Number("unhealthy"===e.status)-Number("unhealthy"===t.status));return(0,t.jsx)("div",{className:"flex flex-wrap items-center gap-2",children:s.map(e=>(0,t.jsx)(g,{runtime:e},e.id))})}function g({runtime:e}){let a="unhealthy"===e.status,s=a?e.lastError?`Unavailable (${e.lastError}) — check daemon logs`:"Unavailable — check daemon logs":e.version,r=(0,t.jsxs)(t.Fragment,{children:[a?(0,t.jsx)(x.CircleAlert,{className:"size-3 shrink-0","aria-hidden":!0}):(0,t.jsx)(h.ProviderLogo,{provider:e.id,className:"size-3.5 shrink-0"}),(0,t.jsx)("span",{className:"truncate font-medium text-foreground",children:e.id})]});return s?(0,t.jsxs)(o.Tooltip,{children:[(0,t.jsx)(o.TooltipTrigger,{render:(0,t.jsx)("button",{type:"button","aria-label":a?`${e.id} unavailable`:`${e.id} ${e.version}`,className:(0,f.cn)(p,a&&"opacity-40 cursor-not-allowed",!a&&"transition-colors hover:bg-accent","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2"),children:r})}),(0,t.jsx)(o.TooltipContent,{side:"top",sideOffset:4,children:s})]}):(0,t.jsx)("span",{className:(0,f.cn)(p,a&&"opacity-40"),children:r})}e.s(["MachineCard",0,function({machine:e,onDelete:x,onReconnect:h,onUpdate:f}){let p=(0,n.isPresenceOnline)(e.status),g=(0,a.useMemo)(()=>e.lastSeenAt?`Last seen \xb7 ${(0,d.timeAgo)(e.lastSeenAt)}`:"Never seen",[e.lastSeenAt]);return(0,t.jsxs)(i.Card,{className:"flex flex-col gap-3 p-4",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,t.jsxs)("div",{className:"flex items-start gap-3",children:[(0,t.jsx)("div",{className:"grid size-10 place-items-center rounded-xl bg-secondary text-muted-foreground",children:(0,t.jsx)(s.Monitor,{className:"size-5"})}),(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[15px] font-medium text-foreground",children:(0,m.machineName)(e)}),(0,t.jsxs)("span",{className:["inline-flex items-center gap-1 rounded-full px-2 py-1 text-[11px] font-medium",p?"bg-emerald-500/10 text-emerald-600 dark:text-emerald-400":"bg-muted text-muted-foreground"].join(" "),children:[(0,t.jsx)("span",{className:["inline-block size-1.5 rounded-full",p?"bg-status-online":"bg-muted-foreground"].join(" ")}),p?"Online":"Offline"]})]}),(0,t.jsxs)("span",{className:"text-xs text-muted-foreground",children:[[e.platform,e.arch].filter(Boolean).join(" · "),e.daemonVersion?` \xb7 v${e.daemonVersion}`:""]}),(0,t.jsx)(L,{runtimes:e.availableRuntimes}),(0,t.jsxs)(o.Tooltip,{children:[(0,t.jsx)(o.TooltipTrigger,{render:(0,t.jsx)("span",{className:"text-xs text-muted-foreground"}),children:g}),(0,t.jsx)(o.TooltipContent,{side:"bottom",sideOffset:4,children:e.lastSeenAt??"—"})]}),e.lastRuntimeError&&(0,t.jsxs)("div",{className:"mt-2 rounded-md border border-destructive/20 bg-destructive/5 p-2 text-xs text-destructive",children:[(0,t.jsx)("span",{className:"font-medium",children:"Runtime not available"}),(0,t.jsxs)("span",{className:"ml-1 text-destructive/80",children:["— requested ",e.lastRuntimeError.requested||"runtime",", installed:"," ",e.lastRuntimeError.available.length>0?e.lastRuntimeError.available.join(", "):"none"]})]})]})]}),(0,t.jsxs)(c.DropdownMenu,{children:[(0,t.jsx)(c.DropdownMenuTrigger,{render:(0,t.jsx)("button",{"aria-label":"Machine actions","data-testid":u.tid.machineActions(e.id),className:"grid size-8 place-items-center rounded-md text-muted-foreground hover:bg-accent hover:text-foreground",children:(0,t.jsx)(r.MoreVertical,{className:"size-4"})})}),(0,t.jsxs)(c.DropdownMenuContent,{align:"end",children:[f&&(0,t.jsx)(c.DropdownMenuItem,{"data-testid":u.tid.machineUpdate(e.id),onClick:f,children:"Update daemon…"}),(0,t.jsx)(c.DropdownMenuItem,{onClick:h,children:"Reconnect…"}),(0,t.jsx)(c.DropdownMenuItem,{onClick:x,className:"text-destructive",children:"Delete"})]})]})]}),!p&&(0,t.jsx)("div",{className:"flex justify-end",children:(0,t.jsx)(l.Button,{variant:"outline",size:"sm","data-onboarding-target":"reconnect-machine","data-onboarding-id":e.id,onClick:h,children:"Reconnect"})})]})}],407478);var j=e.i(998808),C=e.i(285754),v=e.i(908180),y=e.i(824863),N=e.i(332680),b=e.i(849050),k=e.i(603408);function w(e,t){return"string"==typeof e&&e.trim()?e.trim():e instanceof Error&&e.message?e.message:t}function M({command:e,generating:a,onCopy:s,connectedHostname:r,step1MotionTarget:n,step2MotionTarget:i,step1ClassName:l,step2ClassName:o,headingAs:c="h3",desktopNative:d=!1,checkingRuntime:m=!1,runtimeCapability:u=null,launchError:x=null,connecting:h=!1,started:f=!1,onConnectDesktop:p}){return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{"data-motion-target":n,className:l,children:(0,t.jsx)(A,{command:e,generating:a,onCopy:s,headingAs:c,desktopNative:d,checkingRuntime:m,runtimeCapability:u,launchError:x,connecting:h,started:f,onConnectDesktop:p})}),(0,t.jsx)("div",{"data-motion-target":i,className:o,children:(0,t.jsx)(H,{ready:d&&u?.available?f:!!e,connectedHostname:r,headingAs:c})})]})}function A({command:e,generating:a,onCopy:s,headingAs:r,desktopNative:n,checkingRuntime:i,runtimeCapability:o,launchError:c,connecting:d,started:m,onConnectDesktop:x}){return(0,t.jsxs)("section",{className:"flex flex-col gap-3",children:[(0,t.jsxs)("header",{className:"flex items-center gap-2",children:[(0,t.jsx)(O,{n:1,done:!a}),(0,t.jsx)(r,{className:"font-heading text-sm font-medium leading-tight tracking-[-0.015em] text-foreground",children:"Run this on your machine"})]}),(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"Open a terminal on the computer you want to connect, paste the command, and hit enter. Node.js with npm is required."}),a?(0,t.jsxs)("div",{className:"flex items-center gap-2 rounded-lg border bg-muted/30 p-3 text-sm text-muted-foreground",children:[(0,t.jsx)(v.Loader2,{className:"size-4 animate-spin"}),"Preparing your command…"]}):(0,t.jsxs)(t.Fragment,{children:[n&&(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[o?.available&&(0,t.jsxs)(l.Button,{"data-testid":u.tid.machinePairDesktopConnect,onClick:x,disabled:d||m,className:"w-full",children:[d&&(0,t.jsx)(v.Loader2,{className:"size-4 animate-spin"}),d?"Connecting…":m?"Daemon started":"Connect this computer"]}),(i||!o?.available||c)&&(0,t.jsx)("p",{"data-testid":u.tid.machinePairRuntimeHint,role:c||o?.reason?"status":void 0,className:"text-sm text-muted-foreground",children:c?`${c} The terminal command remains available below.`:i?"Checking this computer for Node.js and npm…":o?.reason??"Node.js and npm are required for one-click connection."})]}),(0,t.jsxs)("div",{className:"flex items-start gap-2 rounded-lg border bg-muted/30 p-3 font-mono text-xs",children:[(0,t.jsx)("code",{"data-testid":u.tid.machinePairCommand,className:"flex-1 break-all",children:e}),(0,t.jsx)("button",{"data-testid":u.tid.machinePairCopy,onClick:s,className:"grid size-6 shrink-0 place-items-center rounded text-muted-foreground hover:bg-accent hover:text-foreground","aria-label":"Copy command",children:(0,t.jsx)(C.Copy,{className:"size-3.5"})})]})]})]})}function H({ready:e,connectedHostname:a,headingAs:s}){return a?(0,t.jsxs)("section",{"data-testid":u.tid.machinePairStatus,className:"flex flex-col gap-3",children:[(0,t.jsxs)("header",{className:"flex items-center gap-2",children:[(0,t.jsx)(O,{n:2,done:!0}),(0,t.jsx)(s,{className:"font-heading text-sm font-medium leading-tight tracking-[-0.015em] text-foreground",children:"Connected"})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-1 text-sm",children:[(0,t.jsxs)("span",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[15px] font-medium text-foreground",children:a}),(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full bg-emerald-500/10 px-2 py-1 text-[11px] font-medium text-emerald-600 dark:text-emerald-400",children:[(0,t.jsx)("span",{className:"inline-block size-1.5 rounded-full bg-status-online"}),"Online"]})]}),(0,t.jsx)("span",{className:"text-muted-foreground",children:"is ready for your agent friends."})]})]}):(0,t.jsx)("section",{"data-testid":u.tid.machinePairStatus,className:"flex flex-col gap-3",children:(0,t.jsxs)("header",{className:"flex items-center gap-2",children:[(0,t.jsx)(O,{n:2,muted:!e,spinning:e}),(0,t.jsx)(s,{className:["font-heading text-sm font-medium leading-tight tracking-[-0.015em]",e?"text-foreground":"text-muted-foreground"].join(" "),children:"Waiting for the daemon…"})]})})}function O({n:e,muted:a,done:s,spinning:r}){return(0,t.jsxs)("span",{className:["relative grid size-6 place-items-center rounded-full text-xs font-medium",s?"bg-emerald-500 text-white":a?"bg-muted text-muted-foreground":"bg-primary text-primary-foreground"].join(" "),children:[r&&(0,t.jsx)("span",{className:"absolute -inset-0.75 rounded-full border-2 border-primary/30 border-t-primary animate-spin"}),e]})}e.s(["PairMachineSheet",0,function({open:e,onOpenChange:s,pendingTokenId:r,setPendingTokenId:n,connectedHostname:i,mode:o={kind:"pair"}}){let c="reconnect"===o.kind,[d,m]=(0,a.useState)(!1),[u,x]=(0,a.useState)(!1),[h,p]=(0,a.useState)(!1),[L,g]=(0,a.useState)(!1),[C,v]=(0,a.useState)(null),[A,H]=(0,a.useState)(null),O=(0,a.useRef)(null),D=(0,a.useRef)(!1),P=(0,y.isTauri)()&&(0,y.isDesktop)(),S=(0,a.useCallback)(async()=>{m(!0);try{let e="reconnect"===o.kind?`/api/community/machines/${o.machineId}/reconnect`:"/api/community/machines/pair",t=await (0,b.apiFetch)(e,{method:"POST"});n(t.tokenId)}catch(e){(0,b.toastApiError)(e,"Couldn't generate a key — try again."),console.error(e)}finally{m(!1)}},[n,o]),V=e?"reconnect"===o.kind?`reconnect:${o.machineId}`:"pair":null;(0,a.useEffect)(()=>{if(!V){O.current=null;return}O.current!==V&&(O.current=V,p(!1),n(null),S())},[V,S,n]),(0,a.useEffect)(()=>{if(!e||!P){g(!1),v(null);return}let t=!0;return g(!0),v(null),H(null),(0,y.tauriInvoke)("daemon_runtime_capability").then(e=>{t&&v(e)}).catch(e=>{t&&v({available:!1,reason:w(e,"Alook couldn't check Node.js and npm on this computer."),nodeVersion:null})}).finally(()=>{t&&g(!1)}),()=>{t=!1}},[e,P]);let R=r?function(e,t){let a,s=(0,f.isLocalMode)(),r=t?`reconnect --id ${t} --machine-key ${e}`:`start --machine-key ${e}`,n=`${s?"pnpm daemon":"npx --yes @alook/daemon@latest daemon"} ${r}`;if(!s)return n;let{serverUrl:i,wsUrl:l}=(a=(0,k.websocketUrl)("community-daemon",{local:!0,port:f.WS_DO_PORT_DEFAULT}),{serverUrl:location.origin,wsUrl:a});return`${n} --server-url ${i} --ws-url ${l}`}(r,"reconnect"===o.kind?o.machineId:void 0):"",T=(0,a.useCallback)(async()=>{if(R)try{await navigator.clipboard.writeText(R),j.toast.success("Command copied")}catch{j.toast.error("Copy failed")}},[R]),z=(0,a.useCallback)(async()=>{if(r&&!D.current&&C?.available){D.current=!0,x(!0),H(null);try{let e=await (0,y.tauriInvoke)("daemon_pair",{machineKey:r,machineId:"reconnect"===o.kind?o.machineId:null});if(!e.success)throw Error(e.message||"The daemon did not start");p(!0),j.toast.success(c?"Machine reconnected":"This computer is connecting")}catch(t){let e=w(t,"Couldn't start the daemon. Run the command below in a terminal instead.");H(e),j.toast.error(e)}finally{D.current=!1,x(!1)}}},[r,C?.available,c,o]);return(0,t.jsx)(N.Sheet,{open:e,onOpenChange:s,children:(0,t.jsxs)(N.SheetContent,{side:"right",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.jsxs)(N.SheetHeader,{children:[(0,t.jsx)(N.SheetTitle,{children:c?`Reconnect ${o.hostname||"machine"}`:"Connect a machine"}),(0,t.jsx)(N.SheetDescription,{children:c?"Run this command before it expires. It safely replaces the running daemon, then rotates its key.":"Run this on the computer you want to connect. The key is good for 15 minutes."})]}),(0,t.jsx)(N.SheetBody,{className:"flex flex-col gap-6",children:(0,t.jsx)(M,{command:R,generating:d||!R,onCopy:T,desktopNative:P,checkingRuntime:L,runtimeCapability:C,launchError:A,connecting:u,started:h,onConnectDesktop:z,connectedHostname:i})}),(0,t.jsx)(N.SheetFooter,{children:(0,t.jsx)(N.SheetClose,{render:(0,t.jsx)(l.Button,{variant:"secondary",children:"Done"})})})]})})},"PairMachineSteps",0,M],110696);var D=e.i(732919),P=e.i(848937),S=e.i(909850),V=e.i(621202);let R={x:100,y:32},T={x:57,y:96},z={x:143,y:96};e.s(["ConnectTile",0,function({idPrefix:e="ot-connect"}){let s=(0,a.useRef)(null),r=(0,S.tileIds)(e);return(0,P.useGSAP)(()=>{if(!s.current)return;let e=(e,t,a,s)=>{var r,n;e.set(".ot-packet",{attr:{cx:t.x,cy:t.y,r:4},opacity:0}).to(".ot-packet",{opacity:1,duration:.2}).to(".ot-packet",{attr:{cx:a.x,cy:a.y},duration:.85,ease:"power1.inOut"}).to(".ot-packet",{opacity:0,duration:.14}),r=a.x,n=a.y,e.set(".ot-flare",{attr:{cx:r,cy:n,r:3},opacity:.9}).to(".ot-flare",{attr:{r:12},opacity:0,duration:.7,ease:"power2.out"}).to(s,{filter:"brightness(1.7)",duration:.14,ease:"power2.out"},"<").to(s,{filter:"brightness(1)",duration:.6,ease:"power1.out"},"<0.14"),e.to({},{duration:.25})},t=D.default.timeline({repeat:-1,defaults:{ease:V.OT_EASE}});e(t,T,R,".ot-alook"),e(t,R,z,".ot-phone"),e(t,z,R,".ot-alook"),e(t,R,T,".ot-machine"),t.to({},{duration:.3})},{scope:s}),(0,t.jsxs)("svg",{ref:s,viewBox:"0 0 200 130",className:"ot-svg h-full w-full",children:[(0,t.jsx)(S.TileDefs,{idPrefix:e}),(0,t.jsx)("line",{className:"ot-art",x1:"83.7",y1:"56.3",x2:"70.1",y2:"76.8",opacity:"0.28"}),(0,t.jsx)("line",{className:"ot-art",x1:"116.3",y1:"56.3",x2:"129.9",y2:"76.8",opacity:"0.28"}),(0,t.jsx)("image",{className:"ot-alook ot-center",href:"/alook.svg",x:"83",y:"15",width:"34",height:"34"}),(0,t.jsx)("g",{className:"ot-machine ot-center",children:(0,t.jsx)("svg",{x:"40",y:"79",width:"34",height:"34",viewBox:"0 0 24 24",children:(0,t.jsx)("use",{href:`#${r.monitor}`})})}),(0,t.jsx)("g",{className:"ot-phone ot-center",children:(0,t.jsx)("svg",{x:"130",y:"83",width:"26",height:"26",viewBox:"0 0 24 24",children:(0,t.jsx)("use",{href:`#${r.phone}`})})}),(0,t.jsx)("circle",{className:"ot-art ot-accent ot-flare",cx:"100",cy:"32",r:"4",opacity:"0",strokeWidth:"2.5"}),(0,t.jsx)("circle",{className:"ot-art-fill ot-accent ot-packet",cx:"100",cy:"32",r:"4",opacity:"0"})]})}],468099)},909850,621202,e=>{"use strict";var t=e.i(633940);function a(e){return{disc:`${e}-disc`,monitor:`${e}-ic-monitor`,file:`${e}-ic-file`,moon:`${e}-ic-moon`,book:`${e}-ic-book`,layers:`${e}-ic-layers`,clock:`${e}-ic-clock`,phone:`${e}-ic-phone`,faceA:`${e}-face-a`,faceB:`${e}-face-b`}}e.s(["TileDefs",0,function({idPrefix:e}){let s=a(e);return(0,t.jsxs)("defs",{children:[(0,t.jsx)("clipPath",{id:s.disc,clipPathUnits:"userSpaceOnUse",children:(0,t.jsx)("circle",{cx:"18",cy:"18",r:"18"})}),(0,t.jsxs)("g",{id:s.monitor,children:[(0,t.jsx)("rect",{className:"ot-art",width:"20",height:"14",x:"2",y:"3",rx:"2"}),(0,t.jsx)("line",{className:"ot-art",x1:"8",x2:"16",y1:"21",y2:"21"}),(0,t.jsx)("line",{className:"ot-art",x1:"12",x2:"12",y1:"17",y2:"21"})]}),(0,t.jsxs)("g",{id:s.file,children:[(0,t.jsx)("path",{className:"ot-art",d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"}),(0,t.jsx)("path",{className:"ot-art",d:"M14 2v5a1 1 0 0 0 1 1h5"}),(0,t.jsx)("path",{className:"ot-art",d:"M10 9H8"}),(0,t.jsx)("path",{className:"ot-art",d:"M16 13H8"}),(0,t.jsx)("path",{className:"ot-art",d:"M16 17H8"})]}),(0,t.jsx)("g",{id:s.moon,children:(0,t.jsx)("path",{className:"ot-art",d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"})}),(0,t.jsxs)("g",{id:s.phone,children:[(0,t.jsx)("rect",{className:"ot-art",width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2"}),(0,t.jsx)("path",{className:"ot-art",d:"M12 18h.01"})]}),(0,t.jsxs)("g",{id:s.book,children:[(0,t.jsx)("path",{className:"ot-art",d:"M10 2v8l3-3 3 3V2"}),(0,t.jsx)("path",{className:"ot-art",d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20"})]}),(0,t.jsxs)("g",{id:s.layers,children:[(0,t.jsx)("path",{className:"ot-art",d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z"}),(0,t.jsx)("path",{className:"ot-art",d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12"}),(0,t.jsx)("path",{className:"ot-art",d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17"})]}),(0,t.jsxs)("g",{id:s.clock,children:[(0,t.jsx)("circle",{className:"ot-art",cx:"12",cy:"12",r:"10"}),(0,t.jsx)("path",{className:"ot-art",d:"M12 6v6l4 2"})]}),(0,t.jsxs)("g",{id:s.faceA,children:[(0,t.jsx)("rect",{width:"36",height:"36",fill:"#2a5540"}),(0,t.jsxs)("g",{transform:"translate(1.38 0.40) rotate(-4 18 23.5) translate(-0.18 -0.24) scale(1.010)",children:[(0,t.jsx)("path",{d:"M32.45 23.50 L32.42 24.41 L32.34 25.31 L32.19 26.21 L32.00 27.09 L31.74 27.97 L31.44 28.82 L31.07 29.65 L30.66 30.46 L30.20 31.24 L29.69 31.99 L29.13 32.71 L28.53 33.39 L27.89 34.03 L27.21 34.63 L26.49 35.19 L25.74 35.70 L24.96 36.16 L24.15 36.57 L23.32 36.94 L22.47 37.24 L21.59 37.50 L20.71 37.69 L19.81 37.84 L18.91 37.92 L18.00 37.95 L17.09 37.92 L16.19 37.84 L15.29 37.69 L14.41 37.50 L13.53 37.24 L12.68 36.94 L11.85 36.57 L11.04 36.16 L10.26 35.70 L9.51 35.19 L8.79 34.63 L8.11 34.03 L7.47 33.39 L6.87 32.71 L6.31 31.99 L5.80 31.24 L5.34 30.46 L4.93 29.65 L4.56 28.82 L4.26 27.97 L4.00 27.09 L3.81 26.21 L3.66 25.31 L3.58 24.41 L3.55 23.50 L3.58 22.59 L3.66 21.69 L3.81 20.79 L4.00 19.91 L4.26 19.03 L4.56 18.18 L4.93 17.35 L5.34 16.54 L5.80 15.76 L6.31 15.01 L6.87 14.29 L7.47 13.61 L8.11 12.97 L8.79 12.37 L9.51 11.81 L10.26 11.30 L11.04 10.84 L11.85 10.43 L12.68 10.06 L13.53 9.76 L14.41 9.50 L15.29 9.31 L16.19 9.16 L17.09 9.08 L18.00 9.05 L18.91 9.08 L19.81 9.16 L20.71 9.31 L21.59 9.50 L22.47 9.76 L23.32 10.06 L24.15 10.43 L24.96 10.84 L25.74 11.30 L26.49 11.81 L27.21 12.37 L27.89 12.97 L28.53 13.61 L29.13 14.29 L29.69 15.01 L30.20 15.76 L30.66 16.54 L31.07 17.35 L31.44 18.18 L31.74 19.03 L32.00 19.91 L32.19 20.79 L32.34 21.69 L32.42 22.59 L32.45 23.50 Z",fill:"#e7f3ec"}),(0,t.jsx)("path",{d:"M12.2 20.7 q1.8 -2 3.6 0",stroke:"#12241b",strokeWidth:"1.6",fill:"none",strokeLinecap:"round"}),(0,t.jsx)("path",{d:"M20.2 20.7 q1.8 -2 3.6 0",stroke:"#12241b",strokeWidth:"1.6",fill:"none",strokeLinecap:"round"}),(0,t.jsx)("path",{d:"M14.5 24q3.5 2.6 7 0",stroke:"#12241b",strokeWidth:"1.5",fill:"none",strokeLinecap:"round"})]})]}),(0,t.jsxs)("g",{id:s.faceB,children:[(0,t.jsx)("rect",{width:"36",height:"36",fill:"#2a5540"}),(0,t.jsxs)("g",{transform:"translate(-0.46 0.40) rotate(-3 18 23.5) translate(-0.18 -0.24) scale(1.010)",children:[(0,t.jsx)("path",{d:"M31.53 23.50 L31.44 24.35 L31.18 25.16 L30.76 25.93 L30.22 26.64 L29.57 27.26 L28.86 27.80 L28.13 28.27 L27.40 28.67 L26.70 29.02 L26.07 29.36 L25.50 29.70 L25.01 30.08 L24.58 30.51 L24.20 31.00 L23.86 31.57 L23.52 32.20 L23.17 32.90 L22.77 33.63 L22.30 34.36 L21.76 35.07 L21.14 35.72 L20.43 36.26 L19.66 36.68 L18.85 36.94 L18.00 37.03 L17.15 36.94 L16.34 36.68 L15.57 36.26 L14.86 35.72 L14.24 35.07 L13.70 34.36 L13.23 33.63 L12.83 32.90 L12.48 32.20 L12.14 31.57 L11.80 31.00 L11.42 30.51 L10.99 30.08 L10.50 29.70 L9.93 29.36 L9.30 29.02 L8.60 28.67 L7.87 28.27 L7.14 27.80 L6.43 27.26 L5.78 26.64 L5.24 25.93 L4.82 25.16 L4.56 24.35 L4.47 23.50 L4.56 22.65 L4.82 21.84 L5.24 21.07 L5.78 20.36 L6.43 19.74 L7.14 19.20 L7.87 18.73 L8.60 18.33 L9.30 17.98 L9.93 17.64 L10.50 17.30 L10.99 16.92 L11.42 16.49 L11.80 16.00 L12.14 15.43 L12.48 14.80 L12.83 14.10 L13.23 13.37 L13.70 12.64 L14.24 11.93 L14.86 11.28 L15.57 10.74 L16.34 10.32 L17.15 10.06 L18.00 9.97 L18.85 10.06 L19.66 10.32 L20.43 10.74 L21.14 11.28 L21.76 11.93 L22.30 12.64 L22.77 13.37 L23.17 14.10 L23.52 14.80 L23.86 15.43 L24.20 16.00 L24.58 16.49 L25.01 16.92 L25.50 17.30 L26.07 17.64 L26.70 17.98 L27.40 18.33 L28.13 18.73 L28.86 19.20 L29.57 19.74 L30.22 20.36 L30.76 21.07 L31.18 21.84 L31.44 22.65 L31.53 23.50 Z",fill:"#e7f3ec"}),(0,t.jsx)("circle",{cx:"13",cy:"20",r:"1.9",fill:"#12241b"}),(0,t.jsx)("path",{d:"M21.2 20 q1.8 1.7 3.6 0",stroke:"#12241b",strokeWidth:"1.6",fill:"none",strokeLinecap:"round"}),(0,t.jsx)("path",{d:"M14.5 25q3.5 2.6 7 0",stroke:"#12241b",strokeWidth:"1.5",fill:"none",strokeLinecap:"round"})]})]})]})},"tileIds",0,a],909850);var s=e.i(732919);let r="sine.inOut";e.s(["OT_EASE",0,r,"breathe",0,function(e,t,a=1.02,n=3){return s.default.to(e.querySelectorAll(t),{scale:a,duration:n,ease:r,yoyo:!0,repeat:-1,transformOrigin:"center"})},"comeOnline",0,function(e,t,a,s,r){e.set(t,{opacity:1},r).to(t,{scale:1.35,duration:.18,ease:"power2.out",svgOrigin:`${a} ${s}`},r).to(t,{scale:1,duration:.28,ease:"power2.inOut",svgOrigin:`${a} ${s}`})},"goOffline",0,function(e,t,a,s,r){e.to(t,{scale:.82,duration:.16,ease:"power2.out",svgOrigin:`${a} ${s}`},r).set(t,{opacity:0}).to(t,{scale:1,duration:.2,ease:"power2.inOut",svgOrigin:`${a} ${s}`})}],621202)},855372,e=>{"use strict";var t=e.i(633940),a=e.i(957730);function s({className:e}){return(0,t.jsx)("svg",{viewBox:"0 0 16 16",fill:"#D97757",className:e,children:(0,t.jsx)("path",{d:"m3.127 10.604 3.135-1.76.053-.153-.053-.085H6.11l-.525-.032-1.791-.048-1.554-.065-1.505-.08-.38-.081L0 7.832l.036-.234.32-.214.455.04 1.009.069 1.513.105 1.097.064 1.626.17h.259l.036-.105-.089-.065-.068-.064-1.566-1.062-1.695-1.121-.887-.646-.48-.327-.243-.306-.104-.67.435-.48.585.04.15.04.593.456 1.267.981 1.654 1.218.242.202.097-.068.012-.049-.109-.181-.9-1.626-.96-1.655-.428-.686-.113-.411a2 2 0 0 1-.068-.484l.496-.674L4.446 0l.662.089.279.242.411.94.666 1.48 1.033 2.014.302.597.162.553.06.17h.105v-.097l.085-1.134.157-1.392.154-1.792.052-.504.25-.605.497-.327.387.186.319.456-.045.294-.19 1.23-.37 1.93-.243 1.29h.142l.161-.16.654-.868 1.097-1.372.484-.545.565-.601.363-.287h.686l.505.751-.226.775-.707.895-.585.759-.839 1.13-.524.904.048.072.125-.012 1.897-.403 1.024-.186 1.223-.21.553.258.06.263-.218.536-1.307.323-1.533.307-2.284.54-.028.02.032.04 1.029.098.44.024h1.077l2.005.15.525.346.315.424-.053.323-.807.411-3.631-.863-.872-.218h-.12v.073l.726.71 1.331 1.202 1.667 1.55.084.383-.214.302-.226-.032-1.464-1.101-.565-.497-1.28-1.077h-.084v.113l.295.432 1.557 2.34.08.718-.112.234-.404.141-.444-.08-.911-1.28-.94-1.44-.759-1.291-.093.053-.448 4.821-.21.246-.484.186-.403-.307-.214-.496.214-.98.258-1.28.21-1.016.19-1.263.112-.42-.008-.028-.092.012-.953 1.307-1.448 1.957-1.146 1.227-.274.109-.477-.247.045-.44.266-.39 1.586-2.018.956-1.25.617-.723-.004-.105h-.036l-4.212 2.736-.75.096-.324-.302.04-.496.154-.162 1.267-.871z"})})}function r({className:e}){return(0,t.jsx)("svg",{viewBox:"0 0 16 16",fill:"currentColor",className:e,children:(0,t.jsx)("path",{d:"M14.949 6.547a3.94 3.94 0 0 0-.348-3.273 4.11 4.11 0 0 0-4.4-1.934A4.1 4.1 0 0 0 8.423.2 4.15 4.15 0 0 0 6.305.086a4.1 4.1 0 0 0-1.891.948 4.04 4.04 0 0 0-1.158 1.753 4.1 4.1 0 0 0-1.563.679A4 4 0 0 0 .554 4.72a3.99 3.99 0 0 0 .502 4.731 3.94 3.94 0 0 0 .346 3.274 4.11 4.11 0 0 0 4.402 1.933c.382.425.852.764 1.377.995.526.231 1.095.35 1.67.346 1.78.002 3.358-1.132 3.901-2.804a4.1 4.1 0 0 0 1.563-.68 4 4 0 0 0 1.14-1.253 3.99 3.99 0 0 0-.506-4.716m-6.097 8.406a3.05 3.05 0 0 1-1.945-.694l.096-.054 3.23-1.838a.53.53 0 0 0 .265-.455v-4.49l1.366.778q.02.011.025.035v3.722c-.003 1.653-1.361 2.992-3.037 2.996m-6.53-2.75a2.95 2.95 0 0 1-.36-2.01l.095.057L5.29 12.09a.53.53 0 0 0 .527 0l3.949-2.246v1.555a.05.05 0 0 1-.022.041L6.473 13.3c-1.454.826-3.311.335-4.15-1.098m-.85-6.94A3.02 3.02 0 0 1 3.07 3.949v3.785a.51.51 0 0 0 .262.451l3.93 2.237-1.366.779a.05.05 0 0 1-.048 0L2.585 9.342a2.98 2.98 0 0 1-1.113-4.094zm11.216 2.571L8.747 5.576l1.362-.776a.05.05 0 0 1 .048 0l3.265 1.86a3 3 0 0 1 1.173 1.207 2.96 2.96 0 0 1-.27 3.2 3.05 3.05 0 0 1-1.36.997V8.279a.52.52 0 0 0-.276-.445m1.36-2.015-.097-.057-3.226-1.855a.53.53 0 0 0-.53 0L6.249 6.153V4.598a.04.04 0 0 1 .019-.04L9.533 2.7a3.07 3.07 0 0 1 3.257.139c.474.325.843.778 1.066 1.303.223.526.289 1.103.191 1.664zM5.503 8.575 4.139 7.8a.05.05 0 0 1-.026-.037V4.049c0-.57.166-1.127.476-1.607s.752-.864 1.275-1.105a3.08 3.08 0 0 1 3.234.41l-.096.054-3.23 1.838a.53.53 0 0 0-.265.455zm.742-1.577 1.758-1 1.762 1v2l-1.755 1-1.762-1z"})})}function n({className:e}){return(0,t.jsxs)("svg",{viewBox:"0 0 240 300",fill:"none",className:e,children:[(0,t.jsx)("path",{d:"M180 240H60V120H180V240Z",fill:"#CFCECD"}),(0,t.jsx)("path",{d:"M180 60H60V240H180V60ZM240 300H0V0H240V300Z",fill:"#211E1E"})]})}function i({className:e}){return(0,t.jsxs)("svg",{viewBox:"0 0 16 16",fill:"none",className:e,children:[(0,t.jsx)("path",{d:"M8 2C5.5 2 3.5 4 3.5 6.5S5 10.5 6.5 11v1.5H8V11c.3.1.7.1 1 0v1.5h1.5V11c1.5-.5 3-2.5 3-4.5S10.5 2 8 2Z",fill:"#E8453A"}),(0,t.jsx)("path",{d:"M3.5 5.5C2 5 1 6 1.5 7s2 .5 2.2-.7",fill:"#FF6B5A"}),(0,t.jsx)("path",{d:"M12.5 5.5c1.5-.5 2.5.5 2 1.5s-2 .5-2.2-.7",fill:"#FF6B5A"}),(0,t.jsx)("path",{d:"M6.5 3Q5 1.2 4.3 1.5",stroke:"#FF6B5A",strokeWidth:"0.8",strokeLinecap:"round"}),(0,t.jsx)("path",{d:"M9.5 3Q11 1.2 11.7 1.5",stroke:"#FF6B5A",strokeWidth:"0.8",strokeLinecap:"round"}),(0,t.jsx)("circle",{cx:"6.2",cy:"5.2",r:"0.9",fill:"#050810"}),(0,t.jsx)("circle",{cx:"9.8",cy:"5.2",r:"0.9",fill:"#050810"}),(0,t.jsx)("circle",{cx:"6.4",cy:"5",r:"0.3",fill:"#00E5CC"}),(0,t.jsx)("circle",{cx:"10",cy:"5",r:"0.3",fill:"#00E5CC"})]})}function l({className:e}){return(0,t.jsx)("img",{src:"data:image/webp;base64,UklGRuYDAABXRUJQVlA4INoDAADQEwCdASowADAAPm0uk0ckIiGhKrqpWIANiWkAEyQea/fD8IewvGL5V7Nb3H8u/MA8G9rT+4flL+UfIe42/23GB8zPqF/o3E0UAP5h/h/+F6ZX+x5evnX/r+4T/K/67/u/zg7znogfrusMANZLkn1gvlY/vNsKubtj/9xLSzxTsLr7K9GLdFNs5rwtISRcPXvH4z57n2fg0XR3aQ2D+pPpycwyl7TwAAD+/2DbjivnePzfyHCsdOgJXKlUR/OgAkofD7K4AdmsPKyP5Ml4/4HBYmIm5/efn/H+X3IZtngyaUOvwbFuRS/1yODFYO3vf3qeXGgPdfgIROXd/EPT7K2jysfvY9N71+w6g2gBPs+P6lxYkPf6S9QfpvH/7Pp7i8xRh0nVDBTEQyczSz7V9hoqo4nDJuii+SfibZRR/d5zB+9jkcb1DNN7YnC5Y7+WfGrE3eseXt3hSm+NS5++m1MHbjsrd9z/Q4HPRP/C85Po41XObalGyIUcFUL2j2n3uI/Yh6U8r6trCUJFB4kT3fsv6+8ylX/d96y2hq869FCXLjq4YqEO8vs5BtT52sf7KyDxPAWkH/b06YbfVXf4/7y5THL6Sr/4mOrrY9P2LW81f05HHFN8n0jcyqKOH7AluMm0AHPgFyz8RVrfBdmnPiC2FLMQfNDte5yGFzGC3fMlDed/tS/PO3Q/hjsNLvAXUUjqHyCo3JeN69jyNgWjjf8iUqoBsXT+lJyp2r8p60ad1jxhNyTblyJwda8aWEw1hFDeGjpMGguDF66RL4c+ZO+PhculC6WxvCsZ7IPAsdD7/ywx3w3AowJ66hAAK7k+m6X2QV06OVOCwyIGERex/AUyuBbLUK93X58+M+Si7YfYjVYGpoJ7JvSgD8ExaA21z9OY+si+1wreacDanKnFDmhwBQC3t6MLeXCOGp3VURDKl10K7tdKHQcb4hr48ba+1x/MrMRwHfq3IQrDIXPYCg4b0OLnVN9JyXttKGM63B5imIdKuU0r6hhSslT10lGLjnIJuwO5WKR0RHs+BX5vs6H63y3K7IuuZ1eRN+Aczvbs4QuDs6ZRuzjJ/1DJ5R/3ZrFPrtxvMwT06vAXIgcbhLGNLhOQUYRPdUN5MgyCtL5NH71ArTPLRRkIjhGwoCYXKKqlqIKKT9NX3vwp/nlh4SX71dlYg/mPXbJ9bMeVugyjqFahjFTJ/rT3HtBCWG8h+OvvbOFDFKurCG9BOhO9B719OS7zsP0KPqoymnv7hVvoJyZp0iziCbBvaJpmF9Cvfs8/vWqWr7TUo616WfMW+X9nkgpuqtnfAAAAAA==",alt:"Hermes",className:`${e} rounded-sm`})}function o({className:e}){return(0,t.jsxs)("svg",{viewBox:"0 0 800 800",fill:"none",className:e,children:[(0,t.jsx)("rect",{width:"800",height:"800",rx:"150",fill:"#09090b"}),(0,t.jsx)("path",{fill:"#fff",fillRule:"evenodd",d:"M165.29 165.29H517.36V400H400V517.36H282.65V634.72H165.29ZM282.65 282.65V400H400V282.65Z"}),(0,t.jsx)("path",{fill:"#fff",d:"M517.36 400H634.72V634.72H517.36Z"})]})}function c({className:e}){return(0,t.jsx)("svg",{viewBox:"0 0 24 24",fill:"currentColor",className:e,children:(0,t.jsx)("path",{d:"M12 1C5.9225 1 1 5.9225 1 12C1 16.8675 4.14875 20.9787 8.52125 22.4362C9.07125 22.5325 9.2775 22.2025 9.2775 21.9137C9.2775 21.6525 9.26375 20.7862 9.26375 19.865C6.5 20.3737 5.785 19.1912 5.565 18.5725C5.44125 18.2562 4.905 17.28 4.4375 17.0187C4.0525 16.8125 3.5025 16.3037 4.42375 16.29C5.29 16.2762 5.90875 17.0875 6.115 17.4175C7.105 19.0812 8.68625 18.6137 9.31875 18.325C9.415 17.61 9.70375 17.1287 10.02 16.8537C7.5725 16.5787 5.015 15.63 5.015 11.4225C5.015 10.2262 5.44125 9.23625 6.1425 8.46625C6.0325 8.19125 5.6475 7.06375 6.2525 5.55125C6.2525 5.55125 7.17375 5.2625 9.2775 6.67875C10.1575 6.43125 11.0925 6.3075 12.0275 6.3075C12.9625 6.3075 13.8975 6.43125 14.7775 6.67875C16.8813 5.24875 17.8025 5.55125 17.8025 5.55125C18.4075 7.06375 18.0225 8.19125 17.9125 8.46625C18.6138 9.23625 19.04 10.2125 19.04 11.4225C19.04 15.6437 16.4688 16.5787 14.0213 16.8537C14.42 17.1975 14.7638 17.8575 14.7638 18.8887C14.7638 20.36 14.75 21.5425 14.75 21.9137C14.75 22.2025 14.9563 22.5462 15.5063 22.4362C19.8513 20.9787 23 16.8537 23 12C23 5.9225 18.0775 1 12 1Z"})})}function d({className:e}){return(0,t.jsxs)("svg",{viewBox:"600 300 400 400",fill:"none",className:e,children:[(0,t.jsx)("path",{fill:"#14120B",d:"M999.994 554.294C999.994 559.859 999.994 565.419 999.962 570.984C999.935 575.67 999.882 580.357 999.753 585.038C999.475 595.247 998.875 605.542 997.059 615.639C995.217 625.88 992.212 635.409 987.477 644.718C982.822 653.861 976.738 662.233 969.485 669.491C962.227 676.748 953.861 682.828 944.712 687.482C935.409 692.217 925.875 695.222 915.633 697.065C905.537 698.88 895.242 699.48 885.033 699.759C880.346 699.887 875.665 699.941 870.978 699.968C865.413 700.005 859.853 700 854.288 700H745.695C740.13 700 734.571 700 729.005 699.968C724.319 699.941 719.632 699.887 714.951 699.759C704.742 699.48 694.447 698.88 684.35 697.065C674.109 695.222 664.58 692.217 655.271 687.482C646.128 682.828 637.756 676.743 630.499 669.491C623.241 662.233 617.161 653.866 612.507 644.718C607.772 635.414 604.767 625.88 602.925 615.639C601.109 605.542 600.509 595.247 600.23 585.038C600.102 580.352 600.048 575.67 600.021 570.984C600 565.419 600 559.859 600 554.294V445.701C600 440.136 600 434.576 600.032 429.011C600.059 424.324 600.112 419.637 600.241 414.956C600.52 404.747 601.119 394.452 602.935 384.356C604.778 374.115 607.783 364.586 612.518 355.277C617.172 346.133 623.257 337.762 630.509 330.504C637.767 323.246 646.133 317.167 655.282 312.512C664.586 307.777 674.12 304.772 684.361 302.93C694.458 301.114 704.752 300.514 714.961 300.236C719.648 300.107 724.329 300.054 729.016 300.027C734.576 300 740.136 300 745.701 300H854.294C859.859 300 865.419 300 870.984 300.032C875.67 300.059 880.357 300.112 885.038 300.241C895.247 300.52 905.542 301.119 915.639 302.935C925.88 304.778 935.409 307.783 944.718 312.518C953.861 317.172 962.233 323.257 969.491 330.509C976.748 337.767 982.828 346.133 987.482 355.282C992.217 364.586 995.222 374.12 997.065 384.361C998.88 394.458 999.48 404.752 999.759 414.961C999.887 419.648 999.941 424.329 999.968 429.016C1000.01 434.581 1000 440.141 1000 445.706V554.299L999.994 554.294Z"}),(0,t.jsx)("path",{fill:"#72716D",d:"M800.004 500L923.821 571.486C923.061 572.804 921.957 573.929 920.591 574.716L804.863 641.531C801.858 643.266 798.151 643.266 795.146 641.531L679.417 574.716C678.052 573.929 676.948 572.804 676.188 571.486L800.004 500Z"}),(0,t.jsx)("path",{fill:"#55544F",d:"M800.005 357.168V500L676.188 571.486C675.427 570.168 675.004 568.647 675.004 567.072V432.928C675.004 429.774 676.686 426.865 679.418 425.285L795.141 358.47C796.646 357.602 798.323 357.168 799.999 357.168H800.005Z"}),(0,t.jsx)("path",{fill:"#43413C",d:"M923.815 428.515C923.055 427.197 921.951 426.072 920.586 425.285L804.857 358.47C803.357 357.602 801.68 357.168 800.004 357.168V500L923.821 571.486C924.581 570.168 925.005 568.647 925.005 567.072V432.928C925.005 431.348 924.587 429.838 923.821 428.515H923.815Z"}),(0,t.jsx)("path",{fill:"#D6D5D2",d:"M915.156 433.518C915.857 434.728 915.954 436.281 915.156 437.663L802.764 632.323C802.008 633.641 800 633.1 800 631.584V503.311C800 502.287 799.727 501.302 799.229 500.44L915.15 433.512H915.156V433.518Z"}),(0,t.jsx)("path",{fill:"white",d:"M915.155 433.518L799.233 500.445C798.741 499.588 798.023 498.86 797.134 498.345L686.049 434.209C684.731 433.453 685.272 431.445 686.788 431.445H911.566C913.162 431.445 914.459 432.307 915.155 433.518Z"})]})}function m({className:e}){return(0,t.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",className:e,children:[(0,t.jsx)("path",{d:"M12 24C12 18.2 12 15.5 10.1 13.9C8.5 12 5.8 12 0 12C5.8 12 8.5 12 10.1 10.1C12 8.5 12 5.8 12 0C12 5.8 12 8.5 13.9 10.1C15.5 12 18.2 12 24 12C18.2 12 15.5 12 13.9 13.9C12 15.5 12 18.2 12 24Z",fill:"url(#gemini-gradient)"}),(0,t.jsx)("defs",{children:(0,t.jsxs)("linearGradient",{id:"gemini-gradient",x1:"0",y1:"0",x2:"24",y2:"24",gradientUnits:"userSpaceOnUse",children:[(0,t.jsx)("stop",{stopColor:"#4285F4"}),(0,t.jsx)("stop",{offset:"1",stopColor:"#886FBF"})]})})]})}function u({className:e}){return(0,t.jsxs)("svg",{viewBox:"0 0 16 16",fill:"currentColor",className:e,children:[(0,t.jsx)("path",{d:"M8 1.25a6.75 6.75 0 1 0 0 13.5 6.75 6.75 0 0 0 0-13.5Zm0 1.5a5.25 5.25 0 1 1 0 10.5 5.25 5.25 0 0 1 0-10.5Z"}),(0,t.jsx)("path",{d:"M8 4.5a.75.75 0 0 1 .75.75v3.69l1.22-1.22a.75.75 0 1 1 1.06 1.06l-2.5 2.5a.75.75 0 0 1-1.06 0l-2.5-2.5a.75.75 0 1 1 1.06-1.06l1.22 1.22V5.25A.75.75 0 0 1 8 4.5Z",transform:"rotate(180 8 8)"})]})}function x({className:e}){return(0,t.jsxs)("svg",{viewBox:"0 0 16 16",fill:"currentColor",className:e,children:[(0,t.jsx)("path",{d:"M3.25 2.25a.75.75 0 0 1 .75.75v4.16l4.61-4.69a.75.75 0 0 1 1.07 1.05L6.05 7.21l3.95 5.39a.75.75 0 1 1-1.21.89L5.18 8.5 4 9.7V13a.75.75 0 0 1-1.5 0V3a.75.75 0 0 1 .75-.75Z"}),(0,t.jsx)("circle",{cx:"12.5",cy:"3.5",r:"1"})]})}e.s(["ProviderLogo",0,function({provider:e,className:h="h-4 w-4"}){switch(e){case"claude":return(0,t.jsx)(s,{className:h});case"codex":return(0,t.jsx)(r,{className:h});case"opencode":return(0,t.jsx)(n,{className:h});case"openclaw":return(0,t.jsx)(i,{className:h});case"hermes":return(0,t.jsx)(l,{className:h});case"pi":return(0,t.jsx)(o,{className:h});case"copilot":return(0,t.jsx)(c,{className:h});case"cursor":return(0,t.jsx)(d,{className:h});case"gemini":return(0,t.jsx)(m,{className:h});case"antigravity":return(0,t.jsx)(u,{className:h});case"kimi":return(0,t.jsx)(x,{className:h});default:return(0,t.jsx)(a.Monitor,{className:h})}}])},934351,e=>{"use strict";var t=e.i(633940),a=e.i(613349);e.s(["Card",0,function({className:e,size:s="default",...r}){return(0,t.jsx)("div",{"data-slot":"card","data-size":s,className:(0,a.cn)("group/card flex flex-col gap-4 overflow-hidden rounded-xl bg-card py-4 text-sm text-card-foreground ring-1 ring-foreground/10 has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl",e),...r})},"CardAction",0,function({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"card-action",className:(0,a.cn)("col-start-2 row-span-2 row-start-1 self-start justify-self-end",e),...s})},"CardContent",0,function({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"card-content",className:(0,a.cn)("px-4 group-data-[size=sm]/card:px-3",e),...s})},"CardHeader",0,function({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"card-header",className:(0,a.cn)("group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-4 group-data-[size=sm]/card:px-3 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-4 group-data-[size=sm]/card:[.border-b]:pb-3",e),...s})},"CardTitle",0,function({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"card-title",className:(0,a.cn)("font-heading text-base leading-snug font-medium group-data-[size=sm]/card:text-sm",e),...s})}])},130901,e=>{"use strict";e.s(["machineName",0,function(e){return e?.displayName?.trim()||e?.hostname?.trim()||"Unnamed machine"}])}]);
|
package/bundled/web/.open-next/assets/_next/static/chunks/{3qjq6unr3_6zh.js → 1dhdj9k7esa01.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,716032,e=>{"use strict";var s=e.i(633940),t=e.i(579848),a=e.i(255334),r=e.i(613349),i=e.i(998808),n=e.i(624806);e.i(954194);var l=e.i(991004),c=e.i(500324),d=e.i(23055);e.i(427681);var o=e.i(822755),m=e.i(186339),u=e.i(903477),x=e.i(473131),h=e.i(728886),p=e.i(553617),f=e.i(205189);function g(){let{workspaceId:e,slug:a}=(0,c.useWorkspace)(),r=(0,d.useSession)(),g=(0,n.useRouter)(),[j,v]=(0,t.useState)(""),[N,b]=(0,t.useState)(!0),[w,y]=(0,t.useState)(""),[k,C]=(0,t.useState)(""),[T,S]=(0,t.useState)(""),[E,_]=(0,t.useState)(""),[M,P]=(0,t.useState)(!1),[z,$]=(0,t.useState)({}),[I,O]=(0,t.useState)(""),[R,A]=(0,t.useState)(!1),F=(0,t.useCallback)(async()=>{b(!0);try{let s=r.data?.user?.id,[t,a]=await Promise.all([(0,o.listMembers)(e),(0,o.listWorkspaces)()]),i=t.find(e=>e.user_id===s);v(i?.role??"");let n=a.find(s=>s.id===e);n&&(y(n.name),C(n.slug),S(n.name),_(n.slug))}catch(e){i.toast.error(e instanceof Error?e.message:"Failed to load workspace info")}finally{b(!1)}},[e,r.data?.user?.id]);(0,t.useEffect)(()=>{r.data&&F()},[F,r.data]);let L=w!==T||k!==E,D=async()=>{let s=(0,l.sanitizeSlug)(k);C(s);let t=(0,p.validateWorkspaceForm)({name:w,slug:s});if($(t),!(0,p.hasWorkspaceFormErrors)(t)){P(!0);try{let t=await (0,o.updateWorkspace)(e,{name:w.trim(),slug:s});(0,f.trackSettingsUpdated)({setting_tab:"general"}),S(t.name),_(t.slug),i.toast.success("Workspace updated"),t.slug!==a&&g.replace(`/w/${t.slug}/settings`)}catch(e){i.toast.error(e instanceof Error?e.message:"Failed to update workspace")}finally{P(!1)}}},W=async()=>{if(I===T){A(!0);try{await (0,o.deleteWorkspace)(e,T),i.toast.success("Workspace deleted"),g.replace("/workspaces")}catch(e){i.toast.error(e instanceof Error?e.message:"Failed to delete workspace")}finally{A(!1)}}};return N?(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsx)(h.Skeleton,{className:"h-4 w-32"}),(0,s.jsx)(h.Skeleton,{className:"h-10 w-full"}),(0,s.jsx)(h.Skeleton,{className:"h-10 w-full"})]}):"owner"!==j?(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)(x.Label,{htmlFor:"workspace-name",children:"Name"}),(0,s.jsx)(u.Input,{id:"workspace-name",value:w,onChange:e=>{let s=e.target.value;y(s),z.name&&s.trim()&&$(e=>({...e,name:void 0}))},placeholder:"Workspace name","aria-invalid":!!z.name,"aria-describedby":z.name?"workspace-name-error":void 0}),z.name&&(0,s.jsx)("p",{id:"workspace-name-error",className:"text-xs text-destructive",children:z.name})]}),(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)(x.Label,{htmlFor:"workspace-slug",children:"Slug"}),(0,s.jsx)(u.Input,{id:"workspace-slug",value:k,onChange:e=>{let s=e.target.value.toLowerCase().replace(/[^a-z0-9-]+/g,"-");C(s),z.slug&&s.trim()&&$(e=>({...e,slug:void 0}))},onBlur:()=>C(e=>(0,l.sanitizeSlug)(e)),placeholder:"workspace-slug","aria-invalid":!!z.slug,"aria-describedby":z.slug?"workspace-slug-error":void 0}),z.slug&&(0,s.jsx)("p",{id:"workspace-slug-error",className:"text-xs text-destructive",children:z.slug}),(0,s.jsxs)("p",{className:"text-xs text-muted-foreground/70",children:["Used in URLs: /w/",k,"/"]})]})]}),(0,s.jsx)(m.Button,{size:"sm",onClick:D,disabled:!L||M,children:M?"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)(x.Label,{htmlFor:"delete-confirm",className:"text-xs",children:["Type ",(0,s.jsx)("span",{className:"font-medium text-foreground",children:T})," to confirm"]}),(0,s.jsx)(u.Input,{id:"delete-confirm",value:I,onChange:e=>O(e.target.value),placeholder:T})]}),(0,s.jsx)(m.Button,{size:"sm",variant:"destructive",onClick:W,disabled:I!==T||R,children:R?"Deleting…":"Delete Workspace"})]})]})]})}var j=e.i(740513);function v({ratio:e,size:t=16,stroke:a=1.5}){let i=(t-a)/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:a,className:"text-border"}),(0,s.jsx)("circle",{cx:t/2,cy:t/2,r:i,fill:"none",stroke:"currentColor",strokeWidth:a,strokeDasharray:`${l} ${n-l}`,strokeLinecap:"round",className:(0,r.cn)("transition-all duration-300",e>.9?"text-destructive/70":e>.7?"text-yellow-500/50":"text-muted-foreground/30")})]})}function N(){let{workspaceId:e}=(0,c.useWorkspace)(),[a,r]=(0,t.useState)(""),[n,l]=(0,t.useState)(""),[d,m]=(0,t.useState)(!0),u=(0,t.useRef)(a);(0,t.useEffect)(()=>{u.current=a},[a]);let x=(0,t.useRef)(n);(0,t.useEffect)(()=>{x.current=n},[n]);let p=(0,t.useRef)(null),f=(0,t.useRef)(!1),g=(0,t.useCallback)(async()=>{m(!0);try{let s=await (0,o.getMemberMe)(e);r(s.global_instruction),l(s.global_instruction)}catch(e){i.toast.error(e instanceof Error?e.message:"Failed to load settings")}finally{m(!1)}},[e]);(0,t.useEffect)(()=>{g()},[g]);let N=(0,t.useRef)(()=>{}),b=(0,t.useCallback)(async()=>{if(f.current)return;let s=u.current;if(s!==x.current){f.current=!0;try{let t=await (0,o.updateMemberMe)(e,s);l(t.global_instruction)}catch(e){i.toast.error(e instanceof Error?e.message:"Failed to save")}finally{f.current=!1,u.current!==x.current&&N.current()}}},[e]),w=(0,t.useCallback)(()=>{p.current&&clearTimeout(p.current),p.current=setTimeout(b,500)},[b]);(0,t.useEffect)(()=>{N.current=w},[w]);let y=(0,t.useCallback)(e=>{r(e),w()},[w]);(0,t.useEffect)(()=>{let s=()=>{if(p.current&&clearTimeout(p.current),u.current!==x.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!==x.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=a.length/5e4;return d?(0,s.jsxs)("div",{className:"px-6 py-6 space-y-4",children:[(0,s.jsx)(h.Skeleton,{className:"h-4 w-48"}),(0,s.jsx)(h.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)(j.MarkdownEditor,{value:a,onChange:y,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)(v,{ratio:k}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:"This instruction is prepended to every agent's individual instruction."})]})]})}var b=e.i(285754),w=e.i(458009),y=e.i(64412),k=e.i(443254),C=e.i(329686),T=e.i(132977);e.i(400175);var S=e.i(209274);function E(e){return`${window.location.origin}/invite/${e}`}function _(){let{workspaceId:e}=(0,c.useWorkspace)(),a=(0,d.useSession)(),n=a.data?.user?.id,[l,u]=(0,t.useState)([]),[x,p]=(0,t.useState)([]),[g,j]=(0,t.useState)(!0),[v,N]=(0,t.useState)(!1),_=l.find(e=>e.user_id===n)?.role==="owner",M=(0,t.useCallback)(async()=>{j(!0);try{let[s,t]=await Promise.all([(0,o.listMembers)(e),(0,o.listInvites)(e).catch(()=>[])]);u(s),p(t)}catch(e){i.toast.error(e instanceof Error?e.message:"Failed to load members")}finally{j(!1)}},[e]);(0,t.useEffect)(()=>{M()},[M]);let P=async()=>{N(!0);try{let s=await (0,o.createInvite)(e);(0,f.trackTeamMemberInvited)({workspace_id:e}),p(e=>[...e,s]);let t=E(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{N(!1)}},z=async e=>{let s=E(e);try{await navigator.clipboard.writeText(s),i.toast.success("Invite link copied")}catch{i.toast.error("Failed to copy link")}},$=async s=>{try{await (0,o.revokeInvite)(e,s),p(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,o.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)(h.Skeleton,{className:"h-4 w-24"}),(0,s.jsx)(h.Skeleton,{className:"h-10 w-full"}),(0,s.jsx)(h.Skeleton,{className:"h-10 w-full"}),(0,s.jsx)(h.Skeleton,{className:"h-4 w-24 mt-6"}),(0,s.jsx)(h.Skeleton,{className:"h-10 w-full"}),(0,s.jsx)(h.Skeleton,{className:"h-10 w-full"})]}):(0,s.jsxs)("div",{className:"space-y-8",children:[_&&(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)(m.Button,{size:"sm",variant:"outline",onClick:P,disabled:v,children:[(0,s.jsx)(y.Plus,{className:"size-3.5 mr-1"}),v?"Generating…":"Generate invite link"]})]}),0===x.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:x.map(e=>{let t=new Date(e.expires_at),a=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,r.cn)("font-mono truncate",a&&"text-muted-foreground line-through"),children:["/invite/",e.token.slice(0,12),"…"]}),(0,s.jsx)("p",{className:(0,r.cn)("text-muted-foreground/70 mt-1",a&&"text-destructive/70"),children:a?"Expired":`Expires ${t.toLocaleDateString()}`})]}),(0,s.jsxs)("div",{className:"flex items-center gap-1 ml-2 shrink-0",children:[!a&&(0,s.jsxs)(C.Tooltip,{children:[(0,s.jsx)(C.TooltipTrigger,{render:(0,s.jsx)(m.Button,{size:"sm",variant:"ghost",className:"h-7 w-7 p-0",onClick:()=>z(e.token)}),children:(0,s.jsx)(b.Copy,{className:"size-3.5"})}),(0,s.jsx)(C.TooltipContent,{children:"Copy invite link"})]}),(0,s.jsxs)(C.Tooltip,{children:[(0,s.jsx)(C.TooltipTrigger,{render:(0,s.jsx)(m.Button,{size:"sm",variant:"ghost",className:"h-7 w-7 p-0 text-destructive hover:text-destructive",onClick:()=>$(e.id)}),children:(0,s.jsx)(w.Trash2,{className:"size-3.5"})}),(0,s.jsx)(C.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:l.map(e=>{let t=e.user_id===n;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)(S.ProfileAvatar,{label:(0,T.displayName)(e),seed:e.user_id,src:e.image,size:28,"data-testid":`members-avatar-${e.user_id}`}),(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,T.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,r.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}),_&&!t&&(0,s.jsxs)(C.Tooltip,{children:[(0,s.jsx)(C.TooltipTrigger,{render:(0,s.jsx)(m.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)(k.UserMinus,{className:"size-3.5"})}),(0,s.jsx)(C.TooltipContent,{children:"Remove member"})]})]},e.id)})})]})]})}var M=e.i(885515),P=e.i(254618),z=e.i(980630);function $(){let[e,a]=(0,t.useState)(!1),[r,n]=(0,t.useState)([...z.NOTIFICATION_EVENTS]),[l,c]=(0,t.useState)(!0),[d,o]=(0,t.useState)(!1);(0,t.useEffect)(()=>{c((0,z.isNotificationSupported)()),a((0,z.getNotificationEnabled)()),n((0,z.getNotificationEvents)()),(0,z.isNotificationSupported)()&&o("denied"===Notification.permission)},[]);let m=async e=>{if(!e){a(!1),(0,z.setNotificationEnabled)(!1);return}await (0,z.requestNotificationPermission)()?(a(!0),(0,z.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)(P.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:"}),z.NOTIFICATION_EVENTS.map(e=>(0,s.jsxs)("label",{className:"flex items-center gap-2 text-sm cursor-pointer select-none",children:[(0,s.jsx)(M.Checkbox,{checked:r.includes(e),onCheckedChange:()=>{n(s=>{let t=s.includes(e)?s.filter(s=>s!==e):[...s,e];return(0,z.setNotificationEvents)(t),t})}}),z.NOTIFICATION_EVENT_LABELS[e]]},e))]})]})]})}):(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:"Your browser does not support notifications."})}var I=e.i(281277);let O=(0,I.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 R=e.i(399561),A=e.i(460520),F=e.i(961909),L=e.i(790961);function D(){let[e,a]=(0,t.useState)(!1),[i,n]=(0,t.useState)(R.CLOUD_CODE_MONSTER_PET_PRESETS[0].id),l=(0,R.getCloudCodeMonsterPreset)(i);return(0,t.useEffect)(()=>{a((0,L.readHomePetSettings)().enabled),n((0,R.readCloudCodeMonsterPetPresetId)());let e=e=>{let s=e.detail?.presetId;n(s?(0,R.getCloudCodeMonsterPreset)(s).id:(0,R.readCloudCodeMonsterPetPresetId)())};return window.addEventListener(A.CLOUD_CODE_MONSTER_PRESET_CHANGED_EVENT,e),()=>{window.removeEventListener(A.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)(x.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)(P.Switch,{id:"pet-enabled",checked:e,onCheckedChange:e=>{a(e),(0,L.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)(F.CloudCodeMonsterPresetPreview,{preset:l,className:"size-11"})})]}),(0,s.jsx)("div",{className:"grid grid-cols-2 gap-2 sm:grid-cols-3",children:R.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,R.writeCloudCodeMonsterPetPresetId)(e.id))},className:(0,r.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)(F.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)(O,{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 W=e.i(132716),B=e.i(934351),U=e.i(875061),H=e.i(322292),G=e.i(700595),V=e.i(758038),q=e.i(355640),J=e.i(957730);let K=(0,I.default)("zap",[["path",{d:"M15.914 4a1.5 1.5 0 00-2.474-1.561l-9 9A1.5 1.5 0 005.5 14h4.002a.5.5 0 01.471.666L8.086 20a1.5 1.5 0 002.475 1.56l9-9A1.5 1.5 0 0018.5 10h-3.997a.5.5 0 01-.472-.667z",key:"1v7up4"}]]);function Q({icon:e,label:t,value:a,sub:r}){return(0,s.jsx)(B.Card,{size:"sm",children:(0,s.jsxs)(B.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:a}),r&&(0,s.jsx)(U.Badge,{variant:"secondary",className:"text-[10px] px-2 h-4 font-normal",children:r})]}),(0,s.jsx)("p",{className:"mt-1 text-xs text-muted-foreground truncate",children:t})]})]})})}function Y({agents:e,runtimes:t,activeTaskCounts:a,overview:r}){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(a).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)(Q,{icon:J.Monitor,label:"Machines",value:`${l}/${n}`,sub:"online"}),(0,s.jsx)(Q,{icon:H.Bot,label:"Agents",value:e.length,sub:`${d} online`}),(0,s.jsx)(Q,{icon:q.Users,label:"Members",value:r.members.length,sub:r.pending_invites>0?`${r.pending_invites} pending`:void 0}),(0,s.jsx)(Q,{icon:K,label:"Active Tasks",value:c,sub:r.task_stats.queued>0?`${r.task_stats.queued} queued`:void 0}),(0,s.jsx)(Q,{icon:V.Send,label:"Emails Sent",value:r.email_stats.outbound,sub:`${r.email_stats.unread} unread`}),(0,s.jsx)(Q,{icon:G.Mail,label:"Custom Emails",value:r.email_accounts.length})]})}function Z({overview:e}){let{completed:t,failed:a,cancelled:r,queued:i,stale:n}=e.task_stats,l=t+a,c=l>0?(a/l*100).toFixed(1):"0";return(0,s.jsxs)(B.Card,{children:[(0,s.jsx)(B.CardHeader,{children:(0,s.jsx)(B.CardTitle,{children:"Task Health (Today)"})}),(0,s.jsx)(B.CardContent,{children:(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,s.jsx)(X,{label:"Completed",value:t}),(0,s.jsx)(X,{label:"Failed",value:a,className:a>0?"text-destructive":void 0}),(0,s.jsx)(X,{label:"Cancelled",value:r}),(0,s.jsx)(X,{label:"Failure Rate",value:`${c}%`,className:Number(c)>10?"text-destructive":void 0}),(0,s.jsx)(X,{label:"Queue Backlog",value:i,className:i>10?"text-amber-500":void 0}),(0,s.jsx)(X,{label:"Stale Tasks",value:n,className:n>0?"text-destructive":void 0})]})})]})}function X({label:e,value:t,className:a}){return(0,s.jsxs)("div",{children:[(0,s.jsx)("p",{className:`text-xl font-semibold ${a??""}`,children:t}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:e})]})}function ee({overview:e,agents:t}){let{inbound:a,outbound:r,unread:i,rejected:n}=e.email_stats,l=new Map(t.map(e=>[e.id,e.name]));return(0,s.jsxs)(B.Card,{children:[(0,s.jsx)(B.CardHeader,{children:(0,s.jsx)(B.CardTitle,{children:"Email Summary"})}),(0,s.jsxs)(B.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:a}),(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:r}),(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)(C.Tooltip,{children:[(0,s.jsx)(C.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)(C.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 es=e.i(489824);function et({runtimes:e,agents:t}){let a=(0,n.useRouter)(),{slug:r}=(0,c.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 l=[...i.entries()];return 0===l.length?(0,s.jsxs)(B.Card,{children:[(0,s.jsxs)(B.CardHeader,{children:[(0,s.jsx)(B.CardTitle,{children:"Machines"}),(0,s.jsx)(B.CardAction,{children:(0,s.jsx)("button",{type:"button",onClick:()=>a.push(`/w/${r}/runtimes`),className:"text-muted-foreground hover:text-foreground transition-colors cursor-pointer",children:(0,s.jsx)(es.ArrowUpRight,{className:"size-4"})})})]}),(0,s.jsx)(B.CardContent,{children:(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:"No machines connected."})})]}):(0,s.jsxs)(B.Card,{children:[(0,s.jsx)(B.CardHeader,{children:(0,s.jsx)(B.CardTitle,{children:"Machines"})}),(0,s.jsx)(B.CardContent,{className:"space-y-3",children:l.map(([e,a])=>{let r=a.runtimes.some(e=>"online"===e.status),i=a.runtimes.map(e=>e.last_seen_at).filter(Boolean).sort().reverse()[0],n=t.filter(e=>a.runtimes.some(s=>s.id===e.runtime_id)),l=a.runtimes.some(e=>e.pending_update_version),c=a.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)(C.Tooltip,{children:[(0,s.jsx)(C.TooltipTrigger,{render:(0,s.jsx)("span",{className:`mt-1 size-2 shrink-0 rounded-full ${r?"bg-emerald-500":"bg-muted-foreground/30"}`})}),(0,s.jsx)(C.TooltipContent,{side:"top",children:r?"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:a.deviceInfo||e.slice(0,12)}),l&&(0,s.jsxs)(C.Tooltip,{children:[(0,s.jsx)(C.TooltipTrigger,{render:(0,s.jsx)("span",{children:(0,s.jsx)(U.Badge,{variant:"outline",className:"text-[10px] px-2 py-0 text-amber-500 border-amber-500/30",children:"update"})})}),(0,s.jsxs)(C.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 a=Math.floor(t/60);return a<24?`${a}h ago`:`${Math.floor(a/24)}d ago`}(i??null)]})]})]},e)})})]})}function ea({overview:e}){let t=(0,n.useRouter)(),{slug:a}=(0,c.useWorkspace)(),{members:r,pending_invites:i}=e;return(0,s.jsxs)(B.Card,{children:[(0,s.jsxs)(B.CardHeader,{children:[(0,s.jsx)(B.CardAction,{children:(0,s.jsx)("button",{type:"button",onClick:()=>t.push(`/w/${a}/settings`),className:"text-muted-foreground hover:text-foreground transition-colors cursor-pointer",children:(0,s.jsx)(es.ArrowUpRight,{className:"size-4"})})}),(0,s.jsxs)(B.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)(B.CardContent,{className:"p-0",children:(0,s.jsx)("div",{className:"divide-y divide-border/50",children:[...r].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:[(0,s.jsx)(S.ProfileAvatar,{label:(0,T.displayName)(e),seed:e.user_id,src:e.image,size:28,"data-testid":`team-access-avatar-${e.user_id}`}),(0,s.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,s.jsx)("span",{className:"text-sm font-medium truncate block",children:(0,T.displayName)(e)}),e.name&&(0,s.jsx)("span",{className:"text-xs text-muted-foreground truncate block",children:e.email})]}),(0,s.jsx)(U.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:a,loading:r,activeTaskCounts:i}=(0,W.useAgentContext)(),{workspaceId:n}=(0,c.useWorkspace)(),[l,d]=(0,t.useState)(null),[m,u]=(0,t.useState)(!1);return((0,t.useEffect)(()=>{if(r)return;let e=!1;return u(!0),(0,o.getWorkspaceOverview)(n).then(s=>{e||d(s)}).catch(()=>{}).finally(()=>{e||u(!1)}),()=>{e=!0}},[r,n]),m||!l)?(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsx)(h.Skeleton,{className:"h-44 rounded-xl"}),(0,s.jsx)(h.Skeleton,{className:"h-44 rounded-xl"}),(0,s.jsx)(h.Skeleton,{className:"h-44 rounded-xl"}),(0,s.jsx)(h.Skeleton,{className:"h-44 rounded-xl"})]}):(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsx)(Y,{agents:e,runtimes:a,activeTaskCounts:i,overview:l}),(0,s.jsxs)("div",{className:"grid gap-4 lg:grid-cols-2",children:[(0,s.jsx)(Z,{overview:l}),(0,s.jsx)(ee,{overview:l,agents:e})]}),(0,s.jsxs)("div",{className:"grid gap-4 lg:grid-cols-2",children:[(0,s.jsx)(et,{runtimes:a,agents:e}),(0,s.jsx)(ea,{overview:l})]})]})}let ei=[{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:ei.map(t=>(0,s.jsx)("button",{onClick:()=>i(t.id),className:(0,r.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.1.13"]})]}),(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)(a.Tabs,{className:"items-center",value:e,onValueChange:e=>i(e),children:(0,s.jsx)(a.TabsList,{className:"h-auto gap-1",children:ei.map(e=>(0,s.jsx)(a.TabsTrigger,{value:e.id,children:e.label},e.id))})})}),(0,s.jsx)("div",{className:(0,r.cn)("flex-1 overflow-y-auto thin-scrollbar","instruction"!==e&&"px-4 py-4"),children:"instruction"===e?(0,s.jsx)(N,{}):"usages"===e?(0,s.jsx)(er,{}):(0,s.jsxs)("div",{className:"mx-auto max-w-md",children:["general"===e&&(0,s.jsx)(g,{}),"pet"===e&&(0,s.jsx)(D,{}),"notifications"===e&&(0,s.jsx)($,{}),"members"===e&&(0,s.jsx)(_,{})]})}),(0,s.jsxs)("div",{className:"px-4 py-2 text-[11px] text-muted-foreground/60 sm:hidden",children:["v","0.1.13"]})]})]})]})}],716032)}]);
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,716032,e=>{"use strict";var s=e.i(633940),t=e.i(579848),a=e.i(255334),r=e.i(613349),i=e.i(998808),n=e.i(624806);e.i(954194);var l=e.i(991004),c=e.i(500324),d=e.i(23055);e.i(427681);var o=e.i(822755),m=e.i(186339),u=e.i(903477),x=e.i(473131),h=e.i(728886),p=e.i(553617),f=e.i(205189);function g(){let{workspaceId:e,slug:a}=(0,c.useWorkspace)(),r=(0,d.useSession)(),g=(0,n.useRouter)(),[j,v]=(0,t.useState)(""),[N,b]=(0,t.useState)(!0),[w,y]=(0,t.useState)(""),[k,C]=(0,t.useState)(""),[T,S]=(0,t.useState)(""),[E,_]=(0,t.useState)(""),[M,P]=(0,t.useState)(!1),[z,$]=(0,t.useState)({}),[I,O]=(0,t.useState)(""),[R,A]=(0,t.useState)(!1),F=(0,t.useCallback)(async()=>{b(!0);try{let s=r.data?.user?.id,[t,a]=await Promise.all([(0,o.listMembers)(e),(0,o.listWorkspaces)()]),i=t.find(e=>e.user_id===s);v(i?.role??"");let n=a.find(s=>s.id===e);n&&(y(n.name),C(n.slug),S(n.name),_(n.slug))}catch(e){i.toast.error(e instanceof Error?e.message:"Failed to load workspace info")}finally{b(!1)}},[e,r.data?.user?.id]);(0,t.useEffect)(()=>{r.data&&F()},[F,r.data]);let L=w!==T||k!==E,D=async()=>{let s=(0,l.sanitizeSlug)(k);C(s);let t=(0,p.validateWorkspaceForm)({name:w,slug:s});if($(t),!(0,p.hasWorkspaceFormErrors)(t)){P(!0);try{let t=await (0,o.updateWorkspace)(e,{name:w.trim(),slug:s});(0,f.trackSettingsUpdated)({setting_tab:"general"}),S(t.name),_(t.slug),i.toast.success("Workspace updated"),t.slug!==a&&g.replace(`/w/${t.slug}/settings`)}catch(e){i.toast.error(e instanceof Error?e.message:"Failed to update workspace")}finally{P(!1)}}},W=async()=>{if(I===T){A(!0);try{await (0,o.deleteWorkspace)(e,T),i.toast.success("Workspace deleted"),g.replace("/workspaces")}catch(e){i.toast.error(e instanceof Error?e.message:"Failed to delete workspace")}finally{A(!1)}}};return N?(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsx)(h.Skeleton,{className:"h-4 w-32"}),(0,s.jsx)(h.Skeleton,{className:"h-10 w-full"}),(0,s.jsx)(h.Skeleton,{className:"h-10 w-full"})]}):"owner"!==j?(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)(x.Label,{htmlFor:"workspace-name",children:"Name"}),(0,s.jsx)(u.Input,{id:"workspace-name",value:w,onChange:e=>{let s=e.target.value;y(s),z.name&&s.trim()&&$(e=>({...e,name:void 0}))},placeholder:"Workspace name","aria-invalid":!!z.name,"aria-describedby":z.name?"workspace-name-error":void 0}),z.name&&(0,s.jsx)("p",{id:"workspace-name-error",className:"text-xs text-destructive",children:z.name})]}),(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)(x.Label,{htmlFor:"workspace-slug",children:"Slug"}),(0,s.jsx)(u.Input,{id:"workspace-slug",value:k,onChange:e=>{let s=e.target.value.toLowerCase().replace(/[^a-z0-9-]+/g,"-");C(s),z.slug&&s.trim()&&$(e=>({...e,slug:void 0}))},onBlur:()=>C(e=>(0,l.sanitizeSlug)(e)),placeholder:"workspace-slug","aria-invalid":!!z.slug,"aria-describedby":z.slug?"workspace-slug-error":void 0}),z.slug&&(0,s.jsx)("p",{id:"workspace-slug-error",className:"text-xs text-destructive",children:z.slug}),(0,s.jsxs)("p",{className:"text-xs text-muted-foreground/70",children:["Used in URLs: /w/",k,"/"]})]})]}),(0,s.jsx)(m.Button,{size:"sm",onClick:D,disabled:!L||M,children:M?"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)(x.Label,{htmlFor:"delete-confirm",className:"text-xs",children:["Type ",(0,s.jsx)("span",{className:"font-medium text-foreground",children:T})," to confirm"]}),(0,s.jsx)(u.Input,{id:"delete-confirm",value:I,onChange:e=>O(e.target.value),placeholder:T})]}),(0,s.jsx)(m.Button,{size:"sm",variant:"destructive",onClick:W,disabled:I!==T||R,children:R?"Deleting…":"Delete Workspace"})]})]})]})}var j=e.i(740513);function v({ratio:e,size:t=16,stroke:a=1.5}){let i=(t-a)/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:a,className:"text-border"}),(0,s.jsx)("circle",{cx:t/2,cy:t/2,r:i,fill:"none",stroke:"currentColor",strokeWidth:a,strokeDasharray:`${l} ${n-l}`,strokeLinecap:"round",className:(0,r.cn)("transition-all duration-300",e>.9?"text-destructive/70":e>.7?"text-yellow-500/50":"text-muted-foreground/30")})]})}function N(){let{workspaceId:e}=(0,c.useWorkspace)(),[a,r]=(0,t.useState)(""),[n,l]=(0,t.useState)(""),[d,m]=(0,t.useState)(!0),u=(0,t.useRef)(a);(0,t.useEffect)(()=>{u.current=a},[a]);let x=(0,t.useRef)(n);(0,t.useEffect)(()=>{x.current=n},[n]);let p=(0,t.useRef)(null),f=(0,t.useRef)(!1),g=(0,t.useCallback)(async()=>{m(!0);try{let s=await (0,o.getMemberMe)(e);r(s.global_instruction),l(s.global_instruction)}catch(e){i.toast.error(e instanceof Error?e.message:"Failed to load settings")}finally{m(!1)}},[e]);(0,t.useEffect)(()=>{g()},[g]);let N=(0,t.useRef)(()=>{}),b=(0,t.useCallback)(async()=>{if(f.current)return;let s=u.current;if(s!==x.current){f.current=!0;try{let t=await (0,o.updateMemberMe)(e,s);l(t.global_instruction)}catch(e){i.toast.error(e instanceof Error?e.message:"Failed to save")}finally{f.current=!1,u.current!==x.current&&N.current()}}},[e]),w=(0,t.useCallback)(()=>{p.current&&clearTimeout(p.current),p.current=setTimeout(b,500)},[b]);(0,t.useEffect)(()=>{N.current=w},[w]);let y=(0,t.useCallback)(e=>{r(e),w()},[w]);(0,t.useEffect)(()=>{let s=()=>{if(p.current&&clearTimeout(p.current),u.current!==x.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!==x.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=a.length/5e4;return d?(0,s.jsxs)("div",{className:"px-6 py-6 space-y-4",children:[(0,s.jsx)(h.Skeleton,{className:"h-4 w-48"}),(0,s.jsx)(h.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)(j.MarkdownEditor,{value:a,onChange:y,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)(v,{ratio:k}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:"This instruction is prepended to every agent's individual instruction."})]})]})}var b=e.i(285754),w=e.i(458009),y=e.i(64412),k=e.i(443254),C=e.i(329686),T=e.i(132977);e.i(400175);var S=e.i(209274);function E(e){return`${window.location.origin}/invite/${e}`}function _(){let{workspaceId:e}=(0,c.useWorkspace)(),a=(0,d.useSession)(),n=a.data?.user?.id,[l,u]=(0,t.useState)([]),[x,p]=(0,t.useState)([]),[g,j]=(0,t.useState)(!0),[v,N]=(0,t.useState)(!1),_=l.find(e=>e.user_id===n)?.role==="owner",M=(0,t.useCallback)(async()=>{j(!0);try{let[s,t]=await Promise.all([(0,o.listMembers)(e),(0,o.listInvites)(e).catch(()=>[])]);u(s),p(t)}catch(e){i.toast.error(e instanceof Error?e.message:"Failed to load members")}finally{j(!1)}},[e]);(0,t.useEffect)(()=>{M()},[M]);let P=async()=>{N(!0);try{let s=await (0,o.createInvite)(e);(0,f.trackTeamMemberInvited)({workspace_id:e}),p(e=>[...e,s]);let t=E(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{N(!1)}},z=async e=>{let s=E(e);try{await navigator.clipboard.writeText(s),i.toast.success("Invite link copied")}catch{i.toast.error("Failed to copy link")}},$=async s=>{try{await (0,o.revokeInvite)(e,s),p(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,o.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)(h.Skeleton,{className:"h-4 w-24"}),(0,s.jsx)(h.Skeleton,{className:"h-10 w-full"}),(0,s.jsx)(h.Skeleton,{className:"h-10 w-full"}),(0,s.jsx)(h.Skeleton,{className:"h-4 w-24 mt-6"}),(0,s.jsx)(h.Skeleton,{className:"h-10 w-full"}),(0,s.jsx)(h.Skeleton,{className:"h-10 w-full"})]}):(0,s.jsxs)("div",{className:"space-y-8",children:[_&&(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)(m.Button,{size:"sm",variant:"outline",onClick:P,disabled:v,children:[(0,s.jsx)(y.Plus,{className:"size-3.5 mr-1"}),v?"Generating…":"Generate invite link"]})]}),0===x.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:x.map(e=>{let t=new Date(e.expires_at),a=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,r.cn)("font-mono truncate",a&&"text-muted-foreground line-through"),children:["/invite/",e.token.slice(0,12),"…"]}),(0,s.jsx)("p",{className:(0,r.cn)("text-muted-foreground/70 mt-1",a&&"text-destructive/70"),children:a?"Expired":`Expires ${t.toLocaleDateString()}`})]}),(0,s.jsxs)("div",{className:"flex items-center gap-1 ml-2 shrink-0",children:[!a&&(0,s.jsxs)(C.Tooltip,{children:[(0,s.jsx)(C.TooltipTrigger,{render:(0,s.jsx)(m.Button,{size:"sm",variant:"ghost",className:"h-7 w-7 p-0",onClick:()=>z(e.token)}),children:(0,s.jsx)(b.Copy,{className:"size-3.5"})}),(0,s.jsx)(C.TooltipContent,{children:"Copy invite link"})]}),(0,s.jsxs)(C.Tooltip,{children:[(0,s.jsx)(C.TooltipTrigger,{render:(0,s.jsx)(m.Button,{size:"sm",variant:"ghost",className:"h-7 w-7 p-0 text-destructive hover:text-destructive",onClick:()=>$(e.id)}),children:(0,s.jsx)(w.Trash2,{className:"size-3.5"})}),(0,s.jsx)(C.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:l.map(e=>{let t=e.user_id===n;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)(S.ProfileAvatar,{label:(0,T.displayName)(e),seed:e.user_id,src:e.image,size:28,"data-testid":`members-avatar-${e.user_id}`}),(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,T.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,r.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}),_&&!t&&(0,s.jsxs)(C.Tooltip,{children:[(0,s.jsx)(C.TooltipTrigger,{render:(0,s.jsx)(m.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)(k.UserMinus,{className:"size-3.5"})}),(0,s.jsx)(C.TooltipContent,{children:"Remove member"})]})]},e.id)})})]})]})}var M=e.i(885515),P=e.i(254618),z=e.i(980630);function $(){let[e,a]=(0,t.useState)(!1),[r,n]=(0,t.useState)([...z.NOTIFICATION_EVENTS]),[l,c]=(0,t.useState)(!0),[d,o]=(0,t.useState)(!1);(0,t.useEffect)(()=>{c((0,z.isNotificationSupported)()),a((0,z.getNotificationEnabled)()),n((0,z.getNotificationEvents)()),(0,z.isNotificationSupported)()&&o("denied"===Notification.permission)},[]);let m=async e=>{if(!e){a(!1),(0,z.setNotificationEnabled)(!1);return}await (0,z.requestNotificationPermission)()?(a(!0),(0,z.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)(P.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:"}),z.NOTIFICATION_EVENTS.map(e=>(0,s.jsxs)("label",{className:"flex items-center gap-2 text-sm cursor-pointer select-none",children:[(0,s.jsx)(M.Checkbox,{checked:r.includes(e),onCheckedChange:()=>{n(s=>{let t=s.includes(e)?s.filter(s=>s!==e):[...s,e];return(0,z.setNotificationEvents)(t),t})}}),z.NOTIFICATION_EVENT_LABELS[e]]},e))]})]})]})}):(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:"Your browser does not support notifications."})}var I=e.i(281277);let O=(0,I.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 R=e.i(399561),A=e.i(460520),F=e.i(961909),L=e.i(790961);function D(){let[e,a]=(0,t.useState)(!1),[i,n]=(0,t.useState)(R.CLOUD_CODE_MONSTER_PET_PRESETS[0].id),l=(0,R.getCloudCodeMonsterPreset)(i);return(0,t.useEffect)(()=>{a((0,L.readHomePetSettings)().enabled),n((0,R.readCloudCodeMonsterPetPresetId)());let e=e=>{let s=e.detail?.presetId;n(s?(0,R.getCloudCodeMonsterPreset)(s).id:(0,R.readCloudCodeMonsterPetPresetId)())};return window.addEventListener(A.CLOUD_CODE_MONSTER_PRESET_CHANGED_EVENT,e),()=>{window.removeEventListener(A.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)(x.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)(P.Switch,{id:"pet-enabled",checked:e,onCheckedChange:e=>{a(e),(0,L.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)(F.CloudCodeMonsterPresetPreview,{preset:l,className:"size-11"})})]}),(0,s.jsx)("div",{className:"grid grid-cols-2 gap-2 sm:grid-cols-3",children:R.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,R.writeCloudCodeMonsterPetPresetId)(e.id))},className:(0,r.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)(F.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)(O,{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 W=e.i(132716),B=e.i(934351),U=e.i(875061),H=e.i(322292),G=e.i(700595),V=e.i(758038),q=e.i(355640),J=e.i(957730);let K=(0,I.default)("zap",[["path",{d:"M15.914 4a1.5 1.5 0 00-2.474-1.561l-9 9A1.5 1.5 0 005.5 14h4.002a.5.5 0 01.471.666L8.086 20a1.5 1.5 0 002.475 1.56l9-9A1.5 1.5 0 0018.5 10h-3.997a.5.5 0 01-.472-.667z",key:"1v7up4"}]]);function Q({icon:e,label:t,value:a,sub:r}){return(0,s.jsx)(B.Card,{size:"sm",children:(0,s.jsxs)(B.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:a}),r&&(0,s.jsx)(U.Badge,{variant:"secondary",className:"text-[10px] px-2 h-4 font-normal",children:r})]}),(0,s.jsx)("p",{className:"mt-1 text-xs text-muted-foreground truncate",children:t})]})]})})}function Y({agents:e,runtimes:t,activeTaskCounts:a,overview:r}){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(a).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)(Q,{icon:J.Monitor,label:"Machines",value:`${l}/${n}`,sub:"online"}),(0,s.jsx)(Q,{icon:H.Bot,label:"Agents",value:e.length,sub:`${d} online`}),(0,s.jsx)(Q,{icon:q.Users,label:"Members",value:r.members.length,sub:r.pending_invites>0?`${r.pending_invites} pending`:void 0}),(0,s.jsx)(Q,{icon:K,label:"Active Tasks",value:c,sub:r.task_stats.queued>0?`${r.task_stats.queued} queued`:void 0}),(0,s.jsx)(Q,{icon:V.Send,label:"Emails Sent",value:r.email_stats.outbound,sub:`${r.email_stats.unread} unread`}),(0,s.jsx)(Q,{icon:G.Mail,label:"Custom Emails",value:r.email_accounts.length})]})}function Z({overview:e}){let{completed:t,failed:a,cancelled:r,queued:i,stale:n}=e.task_stats,l=t+a,c=l>0?(a/l*100).toFixed(1):"0";return(0,s.jsxs)(B.Card,{children:[(0,s.jsx)(B.CardHeader,{children:(0,s.jsx)(B.CardTitle,{children:"Task Health (Today)"})}),(0,s.jsx)(B.CardContent,{children:(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,s.jsx)(X,{label:"Completed",value:t}),(0,s.jsx)(X,{label:"Failed",value:a,className:a>0?"text-destructive":void 0}),(0,s.jsx)(X,{label:"Cancelled",value:r}),(0,s.jsx)(X,{label:"Failure Rate",value:`${c}%`,className:Number(c)>10?"text-destructive":void 0}),(0,s.jsx)(X,{label:"Queue Backlog",value:i,className:i>10?"text-amber-500":void 0}),(0,s.jsx)(X,{label:"Stale Tasks",value:n,className:n>0?"text-destructive":void 0})]})})]})}function X({label:e,value:t,className:a}){return(0,s.jsxs)("div",{children:[(0,s.jsx)("p",{className:`text-xl font-semibold ${a??""}`,children:t}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:e})]})}function ee({overview:e,agents:t}){let{inbound:a,outbound:r,unread:i,rejected:n}=e.email_stats,l=new Map(t.map(e=>[e.id,e.name]));return(0,s.jsxs)(B.Card,{children:[(0,s.jsx)(B.CardHeader,{children:(0,s.jsx)(B.CardTitle,{children:"Email Summary"})}),(0,s.jsxs)(B.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:a}),(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:r}),(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)(C.Tooltip,{children:[(0,s.jsx)(C.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)(C.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 es=e.i(489824);function et({runtimes:e,agents:t}){let a=(0,n.useRouter)(),{slug:r}=(0,c.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 l=[...i.entries()];return 0===l.length?(0,s.jsxs)(B.Card,{children:[(0,s.jsxs)(B.CardHeader,{children:[(0,s.jsx)(B.CardTitle,{children:"Machines"}),(0,s.jsx)(B.CardAction,{children:(0,s.jsx)("button",{type:"button",onClick:()=>a.push(`/w/${r}/runtimes`),className:"text-muted-foreground hover:text-foreground transition-colors cursor-pointer",children:(0,s.jsx)(es.ArrowUpRight,{className:"size-4"})})})]}),(0,s.jsx)(B.CardContent,{children:(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:"No machines connected."})})]}):(0,s.jsxs)(B.Card,{children:[(0,s.jsx)(B.CardHeader,{children:(0,s.jsx)(B.CardTitle,{children:"Machines"})}),(0,s.jsx)(B.CardContent,{className:"space-y-3",children:l.map(([e,a])=>{let r=a.runtimes.some(e=>"online"===e.status),i=a.runtimes.map(e=>e.last_seen_at).filter(Boolean).sort().reverse()[0],n=t.filter(e=>a.runtimes.some(s=>s.id===e.runtime_id)),l=a.runtimes.some(e=>e.pending_update_version),c=a.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)(C.Tooltip,{children:[(0,s.jsx)(C.TooltipTrigger,{render:(0,s.jsx)("span",{className:`mt-1 size-2 shrink-0 rounded-full ${r?"bg-emerald-500":"bg-muted-foreground/30"}`})}),(0,s.jsx)(C.TooltipContent,{side:"top",children:r?"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:a.deviceInfo||e.slice(0,12)}),l&&(0,s.jsxs)(C.Tooltip,{children:[(0,s.jsx)(C.TooltipTrigger,{render:(0,s.jsx)("span",{children:(0,s.jsx)(U.Badge,{variant:"outline",className:"text-[10px] px-2 py-0 text-amber-500 border-amber-500/30",children:"update"})})}),(0,s.jsxs)(C.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 a=Math.floor(t/60);return a<24?`${a}h ago`:`${Math.floor(a/24)}d ago`}(i??null)]})]})]},e)})})]})}function ea({overview:e}){let t=(0,n.useRouter)(),{slug:a}=(0,c.useWorkspace)(),{members:r,pending_invites:i}=e;return(0,s.jsxs)(B.Card,{children:[(0,s.jsxs)(B.CardHeader,{children:[(0,s.jsx)(B.CardAction,{children:(0,s.jsx)("button",{type:"button",onClick:()=>t.push(`/w/${a}/settings`),className:"text-muted-foreground hover:text-foreground transition-colors cursor-pointer",children:(0,s.jsx)(es.ArrowUpRight,{className:"size-4"})})}),(0,s.jsxs)(B.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)(B.CardContent,{className:"p-0",children:(0,s.jsx)("div",{className:"divide-y divide-border/50",children:[...r].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:[(0,s.jsx)(S.ProfileAvatar,{label:(0,T.displayName)(e),seed:e.user_id,src:e.image,size:28,"data-testid":`team-access-avatar-${e.user_id}`}),(0,s.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,s.jsx)("span",{className:"text-sm font-medium truncate block",children:(0,T.displayName)(e)}),e.name&&(0,s.jsx)("span",{className:"text-xs text-muted-foreground truncate block",children:e.email})]}),(0,s.jsx)(U.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:a,loading:r,activeTaskCounts:i}=(0,W.useAgentContext)(),{workspaceId:n}=(0,c.useWorkspace)(),[l,d]=(0,t.useState)(null),[m,u]=(0,t.useState)(!1);return((0,t.useEffect)(()=>{if(r)return;let e=!1;return u(!0),(0,o.getWorkspaceOverview)(n).then(s=>{e||d(s)}).catch(()=>{}).finally(()=>{e||u(!1)}),()=>{e=!0}},[r,n]),m||!l)?(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsx)(h.Skeleton,{className:"h-44 rounded-xl"}),(0,s.jsx)(h.Skeleton,{className:"h-44 rounded-xl"}),(0,s.jsx)(h.Skeleton,{className:"h-44 rounded-xl"}),(0,s.jsx)(h.Skeleton,{className:"h-44 rounded-xl"})]}):(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsx)(Y,{agents:e,runtimes:a,activeTaskCounts:i,overview:l}),(0,s.jsxs)("div",{className:"grid gap-4 lg:grid-cols-2",children:[(0,s.jsx)(Z,{overview:l}),(0,s.jsx)(ee,{overview:l,agents:e})]}),(0,s.jsxs)("div",{className:"grid gap-4 lg:grid-cols-2",children:[(0,s.jsx)(et,{runtimes:a,agents:e}),(0,s.jsx)(ea,{overview:l})]})]})}let ei=[{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:ei.map(t=>(0,s.jsx)("button",{onClick:()=>i(t.id),className:(0,r.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.1.14"]})]}),(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)(a.Tabs,{className:"items-center",value:e,onValueChange:e=>i(e),children:(0,s.jsx)(a.TabsList,{className:"h-auto gap-1",children:ei.map(e=>(0,s.jsx)(a.TabsTrigger,{value:e.id,children:e.label},e.id))})})}),(0,s.jsx)("div",{className:(0,r.cn)("flex-1 overflow-y-auto thin-scrollbar","instruction"!==e&&"px-4 py-4"),children:"instruction"===e?(0,s.jsx)(N,{}):"usages"===e?(0,s.jsx)(er,{}):(0,s.jsxs)("div",{className:"mx-auto max-w-md",children:["general"===e&&(0,s.jsx)(g,{}),"pet"===e&&(0,s.jsx)(D,{}),"notifications"===e&&(0,s.jsx)($,{}),"members"===e&&(0,s.jsx)(_,{})]})}),(0,s.jsxs)("div",{className:"px-4 py-2 text-[11px] text-muted-foreground/60 sm:hidden",children:["v","0.1.14"]})]})]})]})}],716032)}]);
|
package/bundled/web/.open-next/assets/_next/static/chunks/{1f4gx6ss03t8p.js → 1sr2s86q3q3ym.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,442827,42308,264921,720182,959784,680714,e=>{"use strict";let t;var r=e.i(633940),n=e.i(579848),l=e.i(344431),a=e.i(267760),i=e.i(605686);function o(e,t,r){if("backward"===r.scrollDirection)return!1;let n=(r.scrollOffset??0)+r.scrollAdjustments;return r.itemSizeCache.has(e.key)?e.end<=n:e.start<n}function s(e,t){for(let r=0;r<e.length;r++){let n=e[r];if("message"===n.kind&&n.m.id===t)return r}return null}function d({scrollRef:e,hasMore:t,isFetching:r,onLoad:l,edge:a}){let i=(0,n.useRef)(null),o=(0,n.useRef)({onLoad:l,hasMore:t,isFetching:r}),s=(0,n.useRef)(!1),c=(0,n.useRef)(!1),u=(0,n.useRef)(r);return(0,n.useEffect)(()=>{o.current={onLoad:l,hasMore:t,isFetching:r}}),(0,n.useEffect)(()=>{let e=u.current;if(u.current=r,!t){c.current=!1,s.current=!1;return}e&&!r&&c.current&&s.current&&l&&(c.current=!1,l())},[t,r,l]),(0,n.useEffect)(()=>{let t=i.current,r=e.current;if(!t||!r)return;let n=new IntersectionObserver(e=>{let t=o.current;for(let r of e)if(s.current=r.isIntersecting,r.isIntersecting&&t.onLoad&&t.hasMore){t.isFetching?c.current=!0:t.onLoad();break}},{root:r,rootMargin:"200px"}),l=r.scrollTop,d=()=>{let e=r.scrollTop,t="start"===a?e<l:e>l;l=e;let n="start"===a?e<=200:r.scrollHeight-r.clientHeight-e<=200,i=o.current;t&&n&&s.current&&i.hasMore&&i.isFetching&&(c.current=!0)};return n.observe(t),r.addEventListener("scroll",d,{passive:!0}),()=>{c.current=!1,s.current=!1,r.removeEventListener("scroll",d),n.disconnect()}},[a,t,e]),i}e.s(["useVirtualCursorSentinel",0,d],42308);var c=e.i(853049),u=e.i(434433),m=e.i(381153);function h({label:e}){return(0,r.jsxs)("div",{className:"my-2 flex items-center gap-2",children:[(0,r.jsx)(u.Separator,{className:"flex-1"}),(0,r.jsx)("span",{className:"text-xs text-muted-foreground",suppressHydrationWarning:!0,children:e}),(0,r.jsx)(u.Separator,{className:"flex-1"})]})}function f({dateLabel:e}){return(0,r.jsxs)("div",{"data-new-divider":!0,"data-testid":m.tid.newDivider,className:"relative my-1 flex items-center gap-2",children:[(0,r.jsx)(u.Separator,{className:"flex-1 bg-destructive/60"}),e&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"text-xs font-semibold text-destructive",suppressHydrationWarning:!0,children:e}),(0,r.jsx)(u.Separator,{className:"flex-1 bg-destructive/60"})]}),(0,r.jsx)("span",{className:"pointer-events-none absolute right-0 top-1/2 -translate-y-1/2 rounded-sm bg-destructive px-1.5 py-0.5 text-xs font-semibold text-white",style:{WebkitTextStroke:"0.4px currentColor"},children:"New"})]})}e.s(["DateDivider",0,h,"NewDivider",0,f],264921);var g=e.i(830028);let p=(0,n.memo)(function(e){let{m:t,viewerUserId:l,hoverCapable:a,pinned:i,highlighted:o,onOpenThread:s,onOpenProfile:d,onToggleReactionId:c,onReactId:u,onReplyId:m,onPinId:h,onMarkId:f,onCreateThreadId:p,onCopyId:x,onEditId:w,onRetryId:y,onDismissId:v,onJumpToId:b,onPreviewImage:j,onPreviewAttachment:S,onDownloadFile:k,resolveUserName:C,onImageLoad:N,selectMode:E,selected:T,onToggleSelectId:I,onEnterSelectId:R,onShareSingleId:A}=e,L=t.id,M=t.replyTo?.id,P=(0,n.useCallback)(e=>c?.(L,e),[c,L]),$=(0,n.useCallback)(e=>u?.(L,e),[u,L]),D=(0,n.useCallback)(()=>m?.(L),[m,L]),F=(0,n.useCallback)(()=>h?.(L),[h,L]),O=(0,n.useCallback)(()=>f?.(L),[f,L]),z=(0,n.useCallback)(()=>p?.(L),[p,L]),H=(0,n.useCallback)(()=>x?.(L),[x,L]),U=(0,n.useCallback)(()=>w?.(L),[w,L]),q=(0,n.useCallback)(()=>y?.(L),[y,L]),B=(0,n.useCallback)(()=>v?.(L),[v,L]),V=(0,n.useCallback)(()=>{M&&b?.(M)},[b,M]),_=(0,n.useCallback)(()=>I?.(L),[I,L]),W=(0,n.useCallback)(()=>R?.(L),[R,L]),K=(0,n.useCallback)(()=>A?.(L),[A,L]);return(0,r.jsx)(g.Message,{m:t,viewerUserId:l,hoverCapable:a,pinned:i,highlighted:o,onOpenThread:s,onOpenProfile:d,onJumpReply:b&&M?V:void 0,onToggleReaction:c?P:void 0,onReact:u?$:void 0,onReply:m?D:void 0,onPin:h?F:void 0,onMark:f?O:void 0,onCreateThread:p?z:void 0,onCopy:x?H:void 0,onEdit:w?U:void 0,onRetry:y?q:void 0,onDismiss:v?B:void 0,onPreviewImage:j,onPreviewAttachment:S,onDownloadFile:k,resolveUserName:C,onImageLoad:N,selectMode:E,selected:T,onToggleSelect:I?_:void 0,onEnterSelect:R?W:void 0,onShareSingle:A?K:void 0})});e.s(["MessageRow",0,p],720182);var x=e.i(652239),w=e.i(307215),y=e.i(350760),v=e.i(186339),b=e.i(728886),j=e.i(334240),S=e.i(323086),k=e.i(722445),C=e.i(57331);let N=(t=0,()=>(t+=1,`u${`0000${(1679616*Math.random()|0).toString(36)}`.slice(-4)}${t}`));function E(e){let t=[];for(let r=0,n=e.length;r<n;r++)t.push(e[r]);return t}let T=null;function I(e={}){return T||(T=e.includeStyleProperties?e.includeStyleProperties:E(window.getComputedStyle(document.documentElement)))}function R(e,t){let r=(e.ownerDocument.defaultView||window).getComputedStyle(e).getPropertyValue(t);return r?parseFloat(r.replace("px","")):0}function A(e,t={}){let r,n,l,a;return{width:t.width||(r=R(e,"border-left-width"),n=R(e,"border-right-width"),e.clientWidth+r+n),height:t.height||(l=R(e,"border-top-width"),a=R(e,"border-bottom-width"),e.clientHeight+l+a)}}function L(e){return new Promise((t,r)=>{let n=new Image;n.onload=()=>{n.decode().then(()=>{requestAnimationFrame(()=>t(n))})},n.onerror=r,n.crossOrigin="anonymous",n.decoding="async",n.src=e})}async function M(e){return Promise.resolve().then(()=>new XMLSerializer().serializeToString(e)).then(encodeURIComponent).then(e=>`data:image/svg+xml;charset=utf-8,${e}`)}async function P(e,t,r){let n="http://www.w3.org/2000/svg",l=document.createElementNS(n,"svg"),a=document.createElementNS(n,"foreignObject");return l.setAttribute("width",`${t}`),l.setAttribute("height",`${r}`),l.setAttribute("viewBox",`0 0 ${t} ${r}`),a.setAttribute("width","100%"),a.setAttribute("height","100%"),a.setAttribute("x","0"),a.setAttribute("y","0"),a.setAttribute("externalResourcesRequired","true"),l.appendChild(a),a.appendChild(e),M(l)}let $=(e,t)=>{if(e instanceof t)return!0;let r=Object.getPrototypeOf(e);return null!==r&&(r.constructor.name===t.name||$(r,t))};function D(e,t,r,n){let l,a,i,o=window.getComputedStyle(e,r),s=o.getPropertyValue("content");if(""===s||"none"===s)return;let d=N();try{t.className=`${t.className} ${d}`}catch(e){return}let c=document.createElement("style");c.appendChild((l=`.${d}:${r}`,i=o.cssText?(a=o.getPropertyValue("content"),`${o.cssText} content: '${a.replace(/'|"/g,"")}';`):I(n).map(e=>{let t=o.getPropertyValue(e),r=o.getPropertyPriority(e);return`${e}: ${t}${r?" !important":""};`}).join(" "),document.createTextNode(`${l}{${i}}`))),t.appendChild(c)}let F="application/font-woff",O="image/jpeg",z={woff:F,woff2:F,ttf:"application/font-truetype",eot:"application/vnd.ms-fontobject",png:"image/png",jpg:O,jpeg:O,gif:"image/gif",tiff:"image/tiff",svg:"image/svg+xml",webp:"image/webp"};function H(e){let t;return z[((t=/\.([^./]*?)$/g.exec(e))?t[1]:"").toLowerCase()]||""}function U(e){return -1!==e.search(/^(data:)/)}function q(e,t){return`data:${t};base64,${e}`}async function B(e,t,r){let n=await fetch(e,t);if(404===n.status)throw Error(`Resource "${n.url}" not found`);let l=await n.blob();return new Promise((e,t)=>{let a=new FileReader;a.onerror=t,a.onloadend=()=>{try{e(r({res:n,result:a.result}))}catch(e){t(e)}},a.readAsDataURL(l)})}let V={};async function _(e,t,r){var n,l,a;let i,o,s=(n=e,l=t,a=r.includeQueryParams,o=n.replace(/\?.*/,""),a&&(o=n),/ttf|otf|eot|woff2?/i.test(o)&&(o=o.replace(/.*\//,"")),l?`[${l}]${o}`:o);if(null!=V[s])return V[s];r.cacheBust&&(e+=(/\?/.test(e)?"&":"?")+new Date().getTime());try{let n=await B(e,r.fetchRequestInit,({res:e,result:r})=>(t||(t=e.headers.get("Content-Type")||""),r.split(/,/)[1]));i=q(n,t)}catch(n){i=r.imagePlaceholder||"";let t=`Failed to fetch resource: ${e}`;n&&(t="string"==typeof n?n:n.message),t&&console.warn(t)}return V[s]=i,i}async function W(e){let t=e.toDataURL();return"data:,"===t?e.cloneNode(!1):L(t)}async function K(e,t){if(e.currentSrc){let t=document.createElement("canvas"),r=t.getContext("2d");return t.width=e.clientWidth,t.height=e.clientHeight,null==r||r.drawImage(e,0,0,t.width,t.height),L(t.toDataURL())}let r=e.poster,n=H(r);return L(await _(r,n,t))}async function J(e,t){var r;try{if(null==(r=null==e?void 0:e.contentDocument)?void 0:r.body)return await Z(e.contentDocument.body,t,!0)}catch(e){}return e.cloneNode(!1)}async function X(e,t){return $(e,HTMLCanvasElement)?W(e):$(e,HTMLVideoElement)?K(e,t):$(e,HTMLIFrameElement)?J(e,t):e.cloneNode(G(e))}let G=e=>null!=e.tagName&&"SVG"===e.tagName.toUpperCase();async function Y(e,t,r){var n,l;if(G(t))return t;let a=[];return 0===(a=null!=e.tagName&&"SLOT"===e.tagName.toUpperCase()&&e.assignedNodes?E(e.assignedNodes()):$(e,HTMLIFrameElement)&&(null==(n=e.contentDocument)?void 0:n.body)?E(e.contentDocument.body.childNodes):E((null!=(l=e.shadowRoot)?l:e).childNodes)).length||$(e,HTMLVideoElement)||await a.reduce((e,n)=>e.then(()=>Z(n,r)).then(e=>{e&&t.appendChild(e)}),Promise.resolve()),t}async function Q(e,t){let r=e.querySelectorAll?e.querySelectorAll("use"):[];if(0===r.length)return e;let n={};for(let l=0;l<r.length;l++){let a=r[l].getAttribute("xlink:href");if(a){let r=e.querySelector(a),l=document.querySelector(a);r||!l||n[a]||(n[a]=await Z(l,t,!0))}}let l=Object.values(n);if(l.length){let t="http://www.w3.org/1999/xhtml",r=document.createElementNS(t,"svg");r.setAttribute("xmlns",t),r.style.position="absolute",r.style.width="0",r.style.height="0",r.style.overflow="hidden",r.style.display="none";let n=document.createElementNS(t,"defs");r.appendChild(n);for(let e=0;e<l.length;e++)n.appendChild(l[e]);e.appendChild(r)}return e}async function Z(e,t,r){return r||!t.filter||t.filter(e)?Promise.resolve(e).then(e=>X(e,t)).then(r=>Y(e,r,t)).then(r=>(function(e,t,r){if($(t,Element)&&(!function(e,t,r){let n=t.style;if(!n)return;let l=window.getComputedStyle(e);l.cssText?(n.cssText=l.cssText,n.transformOrigin=l.transformOrigin):I(r).forEach(r=>{let a=l.getPropertyValue(r);if("font-size"===r&&a.endsWith("px")){let e=Math.floor(parseFloat(a.substring(0,a.length-2)))-.1;a=`${e}px`}$(e,HTMLIFrameElement)&&"display"===r&&"inline"===a&&(a="block"),"d"===r&&t.getAttribute("d")&&(a=`path(${t.getAttribute("d")})`),n.setProperty(r,a,l.getPropertyPriority(r))})}(e,t,r),D(e,t,":before",r),D(e,t,":after",r),$(e,HTMLTextAreaElement)&&(t.innerHTML=e.value),$(e,HTMLInputElement)&&t.setAttribute("value",e.value),$(e,HTMLSelectElement))){let r=Array.from(t.children).find(t=>e.value===t.getAttribute("value"));r&&r.setAttribute("selected","")}return t})(e,r,t)).then(e=>Q(e,t)):null}let ee=/url\((['"]?)([^'"]+?)\1\)/g,et=/url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g,er=/src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g;async function en(e,t,r,n,l){try{let a,i,o=r?function(e,t){if(e.match(/^[a-z]+:\/\//i))return e;if(e.match(/^\/\//))return window.location.protocol+e;if(e.match(/^[a-z]+:/i))return e;let r=document.implementation.createHTMLDocument(),n=r.createElement("base"),l=r.createElement("a");return r.head.appendChild(n),r.body.appendChild(l),t&&(n.href=t),l.href=e,l.href}(t,r):t,s=H(t);if(l){let e=await l(o);a=q(e,s)}else a=await _(o,s,n);return e.replace((i=t.replace(/([.*+?^${}()|\[\]\/\\])/g,"\\$1"),RegExp(`(url\\(['"]?)(${i})(['"]?\\))`,"g")),`$1${a}$3`)}catch(e){}return e}function el(e){return -1!==e.search(ee)}async function ea(e,t,r){let n;if(!el(e))return e;let l=function(e,{preferredFontFormat:t}){return t?e.replace(er,e=>{for(;;){let[r,,n]=et.exec(e)||[];if(!n)return"";if(n===t)return`src: ${r};`}}):e}(e,r);return(n=[],l.replace(ee,(e,t,r)=>(n.push(r),e)),n.filter(e=>!U(e))).reduce((e,n)=>e.then(e=>en(e,n,t,r)),Promise.resolve(l))}async function ei(e,t,r){var n;let l=null==(n=t.style)?void 0:n.getPropertyValue(e);if(l){let n=await ea(l,null,r);return t.style.setProperty(e,n,t.style.getPropertyPriority(e)),!0}return!1}async function eo(e,t){await ei("background",e,t)||await ei("background-image",e,t),await ei("mask",e,t)||await ei("-webkit-mask",e,t)||await ei("mask-image",e,t)||await ei("-webkit-mask-image",e,t)}async function es(e,t){let r=$(e,HTMLImageElement);if(!(r&&!U(e.src))&&!($(e,SVGImageElement)&&!U(e.href.baseVal)))return;let n=r?e.src:e.href.baseVal,l=await _(n,H(n),t);await new Promise((n,a)=>{e.onload=n,e.onerror=t.onImageErrorHandler?(...e)=>{try{n(t.onImageErrorHandler(...e))}catch(e){a(e)}}:a,e.decode&&(e.decode=n),"lazy"===e.loading&&(e.loading="eager"),r?(e.srcset="",e.src=l):e.href.baseVal=l})}async function ed(e,t){let r=E(e.childNodes).map(e=>ec(e,t));await Promise.all(r).then(()=>e)}async function ec(e,t){$(e,Element)&&(await eo(e,t),await es(e,t),await ed(e,t))}let eu={};async function em(e){let t=eu[e];if(null!=t)return t;let r=await fetch(e);return t={url:e,cssText:await r.text()},eu[e]=t,t}async function eh(e,t){let r=e.cssText,n=/url\(["']?([^"')]+)["']?\)/g;return Promise.all((r.match(/url\([^)]+\)/g)||[]).map(async l=>{let a=l.replace(n,"$1");return a.startsWith("https://")||(a=new URL(a,e.url).href),B(a,t.fetchRequestInit,({result:e})=>(r=r.replace(l,`url(${e})`),[l,e]))})).then(()=>r)}function ef(e){if(null==e)return[];let t=[],r=e.replace(/(\/\*[\s\S]*?\*\/)/gi,""),n=RegExp("((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})","gi");for(;;){let e=n.exec(r);if(null===e)break;t.push(e[0])}r=r.replace(n,"");let l=/@import[\s\S]*?url\([^)]*\)[\s\S]*?;/gi,a=RegExp("((\\s*?(?:\\/\\*[\\s\\S]*?\\*\\/)?\\s*?@media[\\s\\S]*?){([\\s\\S]*?)}\\s*?})|(([\\s\\S]*?){([\\s\\S]*?)})","gi");for(;;){let e=l.exec(r);if(null===e){if(null===(e=a.exec(r)))break;l.lastIndex=a.lastIndex}else a.lastIndex=l.lastIndex;t.push(e[0])}return t}async function eg(e,t){let r=[],n=[];return e.forEach(r=>{if("cssRules"in r)try{E(r.cssRules||[]).forEach((e,l)=>{if(e.type===CSSRule.IMPORT_RULE){let a=l+1,i=e.href,o=em(i).then(e=>eh(e,t)).then(e=>ef(e).forEach(e=>{try{r.insertRule(e,e.startsWith("@import")?a+=1:r.cssRules.length)}catch(t){console.error("Error inserting rule from remote css",{rule:e,error:t})}})).catch(e=>{console.error("Error loading remote css",e.toString())});n.push(o)}})}catch(a){let l=e.find(e=>null==e.href)||document.styleSheets[0];null!=r.href&&n.push(em(r.href).then(e=>eh(e,t)).then(e=>ef(e).forEach(e=>{l.insertRule(e,l.cssRules.length)})).catch(e=>{console.error("Error loading remote stylesheet",e)})),console.error("Error inlining remote css file",a)}}),Promise.all(n).then(()=>(e.forEach(e=>{if("cssRules"in e)try{E(e.cssRules||[]).forEach(e=>{r.push(e)})}catch(t){console.error(`Error while reading CSS rules from ${e.href}`,t)}}),r))}async function ep(e,t){if(null==e.ownerDocument)throw Error("Provided element is not within a Document");let r=E(e.ownerDocument.styleSheets);return(await eg(r,t)).filter(e=>e.type===CSSRule.FONT_FACE_RULE).filter(e=>el(e.style.getPropertyValue("src")))}function ex(e){return e.trim().replace(/["']/g,"")}async function ew(e,t){let r,n=await ep(e,t),l=(r=new Set,!function e(t){(t.style.fontFamily||getComputedStyle(t).fontFamily).split(",").forEach(e=>{r.add(ex(e))}),Array.from(t.children).forEach(t=>{t instanceof HTMLElement&&e(t)})}(e),r);return(await Promise.all(n.filter(e=>l.has(ex(e.style.fontFamily))).map(e=>{let r=e.parentStyleSheet?e.parentStyleSheet.href:null;return ea(e.cssText,r,t)}))).join("\n")}async function ey(e,t){let r=null!=t.fontEmbedCSS?t.fontEmbedCSS:t.skipFonts?null:await ew(e,t);if(r){let t=document.createElement("style"),n=document.createTextNode(r);t.appendChild(n),e.firstChild?e.insertBefore(t,e.firstChild):e.appendChild(t)}}async function ev(e,t={}){let{width:r,height:n}=A(e,t),l=await Z(e,t,!0);return await ey(l,t),await ec(l,t),!function(e,t){let{style:r}=e;t.backgroundColor&&(r.backgroundColor=t.backgroundColor),t.width&&(r.width=`${t.width}px`),t.height&&(r.height=`${t.height}px`);let n=t.style;null!=n&&Object.keys(n).forEach(e=>{r[e]=n[e]})}(l,t),await P(l,r,n)}async function eb(e,t={}){let{width:r,height:n}=A(e,t),l=await ev(e,t),a=await L(l),i=document.createElement("canvas"),o=i.getContext("2d"),s=t.pixelRatio||function(){let e,t;try{t=C.default}catch(e){}let r=t&&t.env?t.env.devicePixelRatio:null;return r&&Number.isNaN(e=parseInt(r,10))&&(e=1),e||window.devicePixelRatio||1}(),d=t.canvasWidth||r,c=t.canvasHeight||n;return i.width=d*s,i.height=c*s,!t.skipAutoScale&&(i.width>16384||i.height>16384)&&(i.width>16384&&i.height>16384?i.width>i.height?(i.height*=16384/i.width,i.width=16384):(i.width*=16384/i.height,i.height=16384):i.width>16384?(i.height*=16384/i.width,i.width=16384):(i.width*=16384/i.height,i.height=16384)),i.style.width=`${d}`,i.style.height=`${c}`,t.backgroundColor&&(o.fillStyle=t.backgroundColor,o.fillRect(0,0,i.width,i.height)),o.drawImage(a,0,0,i.width,i.height),i}async function ej(e,t={}){let r=await eb(e,t);return await function(e,t={}){return new Promise(e.toBlob?r=>{e.toBlob(r,t.type?t.type:"image/png",t.quality?t.quality:1)}:r=>{let n=window.atob(e.toDataURL(t.type?t.type:void 0,t.quality?t.quality:void 0).split(",")[1]),l=n.length,a=new Uint8Array(l);for(let e=0;e<l;e+=1)a[e]=n.charCodeAt(e);r(new Blob([a],{type:t.type?t.type:"image/png"}))})}(r)}var eS=e.i(998808),ek=e.i(423009),eC=e.i(285754),eN=e.i(216075);let eE=(0,e.i(281277).default)("highlighter",[["path",{d:"m9 11-6 6v3h9l3-3",key:"1a3l36"}],["path",{d:"m22 12-4.6 4.6a2 2 0 0 1-2.8 0l-5.2-5.2a2 2 0 0 1 0-2.8L14 4",key:"14a9rk"}]]);var eT=e.i(908180);e.i(954194);var eI=e.i(275130),eR=e.i(779646),eA=e.i(531342),eL=e.i(655041),eM=e.i(562080);let eP="data-hl";class e$ extends Error{constructor(){super("A share-card image did not finish loading in time"),this.name="ShareCardImageTimeoutError"}}async function eD(e,t){if(!e.complete&&!await new Promise(r=>{let n=!1,l=t=>{n||(n=!0,e.removeEventListener("load",a),e.removeEventListener("error",a),clearTimeout(i),r(t))},a=()=>l(!0),i=setTimeout(()=>l(!1),t);e.addEventListener("load",a,{once:!0}),e.addEventListener("error",a,{once:!0}),e.complete&&a()}))throw new e$;e.naturalWidth>0&&e.decode&&await new Promise(r=>{let n=!1,l=()=>{n||(n=!0,clearTimeout(a),r())},a=setTimeout(l,t);Promise.resolve().then(()=>e.decode()).then(l,l)})}function eF(){return"function"!=typeof requestAnimationFrame?Promise.resolve():new Promise(e=>requestAnimationFrame(()=>e()))}async function eO(e,t=eF,r=5e3){await Promise.all([...e.querySelectorAll("img")].map(e=>eD(e,r))),await t()}function ez({m:e,open:t,onClose:l}){let a=(0,n.useMemo)(()=>Array.isArray(e)?e:[e],[e]),i=(0,n.useRef)(null),o=(0,n.useRef)(new Map),[s,d]=(0,n.useState)(null),[c,u]=(0,n.useState)(!1),[h,f]=(0,n.useState)(!1),g=(0,n.useCallback)(()=>[...o.current.values()].some(e=>e&&null!==e.querySelector(`mark[${eP}]`)),[]),p=(0,n.useCallback)(e=>{let t=o.current.get(e);if(!t)return;let r=window.getSelection?.();if(!r||r.isCollapsed||0===r.rangeCount)return;let n=r.getRangeAt(0);if(!t.contains(n.commonAncestorContainer))return;let l=function(e,t){if(t.collapsed)return 0;let r=function(e){let t=(e.ownerDocument??document).createTreeWalker(e,NodeFilter.SHOW_TEXT,{acceptNode:e=>e.data.length?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}),r=[],n=t.nextNode();for(;n;)r.push(n),n=t.nextNode();return r}(e);if(0===r.length)return 0;let n=function(e){let t=-1,r=-1;for(let n=0;n<e.length;n++)e[n].covered&&(-1===t&&(t=n),r=n);if(-1===t)return[];let n=e[t].startOffset??0,l=e[r].endOffset??e[r].length;return function(e,t){let{startIdx:r,startOffset:n,endIdx:l,endOffset:a}=t;if(r>l)return[];let i=[];for(let t=r;t<=l;t++){let o=e[t];if(!o||o.insideMark)continue;let s=t===r?n:0,d=t===l?a:o.length,c=Math.max(0,Math.min(s,o.length)),u=Math.max(0,Math.min(d,o.length));u>c&&i.push({idx:t,sliceStart:c,sliceEnd:u})}return i}(e,{startIdx:t,startOffset:n,endIdx:r,endOffset:l})}(r.map(e=>{let r="function"==typeof t.intersectsNode?t.intersectsNode(e):0===t.comparePoint(e,0)||0===t.comparePoint(e,e.data.length);return{length:e.data.length,insideMark:function(e){let t=e.parentNode,r=e.ownerDocument?.body??null;for(;t&&t!==r;){if(1===t.nodeType&&t.hasAttribute?.(eP))return!0;t=t.parentNode}return!1}(e),covered:r,...e===t.startContainer?{startOffset:t.startOffset}:{},...e===t.endContainer?{endOffset:t.endOffset}:{}}}));for(let e=n.length-1;e>=0;e--){let t=n[e];!function(e,t,r){let n=e;r<n.data.length&&n.splitText(r),t>0&&(n=n.splitText(t));let l=(n.ownerDocument??document).createElement("mark");l.setAttribute(eP,""),l.className="share-hl",n.parentNode?.replaceChild(l,n),l.appendChild(n)}(r[t.idx],t.sliceStart,t.sliceEnd)}return n.length}(t,n);r.removeAllRanges(),l>0&&f(g())},[g]),x=(0,n.useCallback)(()=>{for(let e of o.current.values())e&&(e.querySelectorAll(`mark[${eP}]`).forEach(e=>{let t=e.parentNode;if(t){for(;e.firstChild;)t.insertBefore(e.firstChild,e);t.removeChild(e)}}),e.normalize());f(!1)},[]),w=async()=>{let e=i.current;if(!e)return null;await eO(e);try{let e=getComputedStyle(document.documentElement).getPropertyValue("--font-caveat").trim();document.fonts?.load&&e&&await document.fonts.load(`16px ${e}`),await document.fonts?.ready}catch{}return ej(e,{pixelRatio:2,cacheBust:!0,fetchRequestInit:{credentials:"same-origin"},backgroundColor:getComputedStyle(e).getPropertyValue("--card")?.trim()||void 0})},y=async()=>{d("copy");try{let e=await w();if(!e)throw Error("render failed");await navigator.clipboard.write([new ClipboardItem({"image/png":e})]),u(!0),eS.toast.success("Image copied to clipboard"),window.setTimeout(()=>u(!1),1600)}catch{eS.toast.error("Couldn't copy image — try Download instead")}finally{d(null)}},b=async()=>{d("download");try{let e=await w();if(!e)throw Error("render failed");let t=URL.createObjectURL(e),r=document.createElement("a");r.href=t,r.download=`alook-message-${a[0]?.authorName??"share"}.png`,r.click(),URL.revokeObjectURL(t)}catch{eS.toast.error("Couldn't generate image")}finally{d(null)}};return(0,r.jsx)(eR.Dialog,{open:t,onOpenChange:e=>!e&&l(),children:(0,r.jsxs)(eR.DialogContent,{className:"w-180 max-w-[calc(100vw-2rem)] sm:max-w-[calc(100vw-2rem)] gap-0 p-0",children:[(0,r.jsx)(eR.DialogHeader,{className:"px-5 pt-5 pb-3",children:(0,r.jsx)(eR.DialogTitle,{children:a.length>1?`Share ${a.length} messages`:"Share message"})}),(0,r.jsx)("div",{className:"max-h-[60vh] overflow-y-auto bg-muted/40 px-6 py-6",children:(0,r.jsxs)("div",{ref:i,className:"rounded-xl bg-card p-5 shadow-(--e1)",children:[a.map(e=>(0,r.jsxs)("div",{className:e.grouped?"mt-0.5":"mt-3 first:mt-0",children:[e.replyTo&&(0,r.jsxs)("div",{"data-testid":`message-share-reply-${e.id}`,className:"mb-1 ml-13 flex min-w-0 max-w-[calc(100%-3.25rem)] items-center gap-2 text-[13px] text-muted-foreground",children:[(0,r.jsx)("div",{className:"h-2 w-4 shrink-0 rounded-tl-md border-l-2 border-t-2 border-border"}),e.replyTo.deleted?(0,r.jsx)("span",{className:"italic",children:"Original message was deleted"}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("span",{className:"shrink-0 font-medium text-foreground/80",children:["@",e.replyTo.authorName]}),(0,r.jsx)("span",{className:"min-w-0 truncate",children:(0,eI.stripInlineMarkup)(e.replyTo.text)})]})]}),(0,r.jsxs)("div",{className:"flex gap-3",children:[e.grouped?(0,r.jsx)("div",{className:"w-10 shrink-0","aria-hidden":!0}):(0,r.jsx)(eA.Avatar,{label:e.authorName??"Unknown",src:e.authorAvatar,seed:e.authorId,size:40}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[!e.grouped&&(0,r.jsx)("div",{className:"mb-0.5 text-[15px] font-semibold",style:{color:e.color??"var(--foreground)"},children:e.authorName}),e.content&&(0,r.jsx)("div",{ref:t=>{o.current.set(e.id,t)},onMouseUp:()=>p(e.id),className:"max-h-164 overflow-hidden line-clamp-32 [&_mark[data-hl]]:rounded-xs [&_mark[data-hl]]:bg-[rgba(255,208,92,0.5)] [&_mark[data-hl]]:p-[0_1px] [&_mark[data-hl]]:[box-decoration-break:clone] [&_mark[data-hl]]:[-webkit-box-decoration-break:clone] [&_mark[data-hl]]:text-inherit",children:(0,r.jsx)(eL.MessageBody,{text:e.content,perspective:"neutral"})}),e.attachments?.some(e=>"image"===e.kind)&&(0,r.jsx)("div",{"data-testid":`message-share-images-${e.id}`,className:"mt-2 flex flex-col gap-2",children:e.attachments.map((t,n)=>"image"===t.kind&&(0,r.jsx)("div",{className:"w-fit max-w-full overflow-hidden rounded-lg border border-border",children:(0,r.jsx)("img",{"data-testid":`message-share-image-${e.id}-${n}`,src:t.url,alt:t.name,width:t.width,height:t.height,loading:"eager",className:"block h-auto w-auto max-h-75 max-w-full rounded-lg object-contain",style:{aspectRatio:(0,eM.attachmentAspectRatio)(t.width,t.height)}})},`${t.name}-${n}`))}),e.reactions&&e.reactions.length>0&&(0,r.jsx)("div",{"data-testid":`message-share-reactions-${e.id}`,className:"mt-2 flex flex-wrap gap-1",children:e.reactions.map(e=>(0,r.jsxs)("span",{className:["flex h-6 items-center gap-1 rounded-md px-2 text-sm",e.me?"border border-primary/50 bg-accent":"bg-secondary"].join(" "),children:[(0,r.jsx)("span",{children:e.emoji}),(0,r.jsx)("span",{className:"text-xs text-muted-foreground",children:e.count})]},e.emoji))})]})]})]},e.id)),(0,r.jsxs)("div",{className:"mt-4 flex items-center gap-1.5 border-t border-border/50 pt-3",children:[(0,r.jsx)(k.default,{src:"/alook.svg",alt:"",width:16,height:16}),(0,r.jsx)("span",{className:"text-sm font-bold tracking-tight text-muted-foreground",style:{fontFamily:"var(--font-brand)"},children:"Alook"})]})]})}),(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2 px-5 pt-3 pb-5",children:[(0,r.jsx)("div",{children:h&&(0,r.jsxs)(v.Button,{variant:"ghost",size:"sm",onClick:x,disabled:null!==s,children:[(0,r.jsx)(eE,{}),"Reset highlight"]})}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsxs)(v.Button,{variant:"ghost",size:"sm",onClick:b,disabled:null!==s,children:["download"===s?(0,r.jsx)(eT.Loader2,{className:"animate-spin"}):(0,r.jsx)(eN.Download,{}),"Download"]}),(0,r.jsxs)(v.Button,{size:"sm","data-testid":m.tid.messageShareCopy,onClick:y,disabled:null!==s,children:["copy"===s?(0,r.jsx)(eT.Loader2,{className:"animate-spin"}):c?(0,r.jsx)(ek.Check,{}):(0,r.jsx)(eC.Copy,{}),c?"Copied":"Copy image"]})]})]})]})})}function eH({names:e}){let t=e.length>0,n=0===e.length?null:1===e.length?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"font-medium text-foreground",children:e[0]})," is typing…"]}):e.length<=3?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("span",{className:"font-medium text-foreground",children:[e.slice(0,-1).join(", ")," and ",e[e.length-1]]})," are typing…"]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("span",{className:"font-medium text-foreground",children:[e.length," people"]})," are typing…"]});return(0,r.jsx)("div",{"data-testid":t?m.tid.typingIndicator:void 0,className:`pointer-events-none absolute bottom-3 left-3 z-10 transition-all duration-200 ease-out ${t?"translate-y-0 opacity-100":"translate-y-2 opacity-0"}`,children:(0,r.jsxs)("div",{className:"flex h-8 items-center gap-2 rounded-full border border-border bg-background/90 px-3 text-xs text-muted-foreground shadow-(--e1) backdrop-blur-sm",children:[(0,r.jsx)("span",{className:"flex gap-1",children:[0,1,2].map(e=>(0,r.jsx)("span",{className:"size-1.5 rounded-full bg-muted-foreground",style:{animation:"typing-dot 1.4s ease-in-out infinite",animationDelay:`${160*e}ms`}},e))}),(0,r.jsx)("span",{children:n})]})})}function eU({count:e,mode:t="scroll",onClick:n}){let l=e>0,a="jump"===t?`Jump to present, ${e} unread below`:`Scroll to bottom, ${e} more below`;return(0,r.jsx)("div",{className:`pointer-events-none absolute bottom-3 left-1/2 z-10 -translate-x-1/2 transition-all duration-200 ease-out ${l?"translate-y-0 opacity-100":"translate-y-2 opacity-0"}`,children:(0,r.jsxs)("button",{type:"button",onClick:n,"aria-label":a,className:`pointer-events-auto flex h-8 items-center gap-1.5 rounded-full border border-border bg-background/90 pl-2 pr-3 text-xs font-medium text-foreground shadow-(--e1) backdrop-blur-sm transition-colors hover:bg-accent ${l?"":"pointer-events-none"}`,children:[(0,r.jsx)(x.ArrowDown,{className:"size-3.5 text-muted-foreground"}),(0,r.jsx)(j.NumberTicker,{value:e})]})})}function eq({variant:e}){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"mb-6",children:"dm"===e?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(b.Skeleton,{className:"mb-3 size-16 rounded-full"}),(0,r.jsx)(b.Skeleton,{className:"h-7 w-48 rounded"}),(0,r.jsx)(b.Skeleton,{className:"mt-2 h-3.5 w-72 rounded"})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(b.Skeleton,{className:"mb-2 size-12 rounded-full"}),(0,r.jsx)(b.Skeleton,{className:"h-5 w-40 rounded"}),(0,r.jsx)(b.Skeleton,{className:"mt-2 h-3.5 w-80 max-w-full rounded"})]})}),(0,r.jsx)("div",{className:"flex flex-col gap-3",children:[[220,140],[180],[260,90,200],[120,240],[200]].map((e,t)=>(0,r.jsxs)("div",{className:"flex gap-3 pt-1.5",children:[(0,r.jsx)(b.Skeleton,{className:"size-10 shrink-0 rounded-full"}),(0,r.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col gap-2",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(b.Skeleton,{className:"h-4 w-24 rounded"}),(0,r.jsx)(b.Skeleton,{className:"h-3 w-14 rounded"})]}),e.map((e,t)=>(0,r.jsx)(b.Skeleton,{className:"h-3.5 rounded",style:{width:e}},t))]})]},t))})]})}function eB({items:e,virtualizer:t,itemKey:n,renderItem:l}){return(0,r.jsx)("div",{ref:t.containerRef,style:{position:"relative",width:"100%"},children:t.getVirtualItems().map(a=>{let i=e[a.index];return(0,r.jsx)("div",{"data-index":a.index,ref:t.measureElement,style:{position:"absolute",top:0,left:0,width:"100%"},children:l(i,a.index)},n(i))})})}e.s(["MessageShareDialog",0,ez],959784),e.s(["VirtualRows",0,eB],680714),e.s(["MessageList",0,function({variant:e="channel",initialScrollReady:t=!0,...u}){var g;let x=(0,c.useHoverCapable)(),b={...u,variant:e,initialScrollReady:t,hoverCapable:x},j=function({messages:e,loading:t,newDividerBefore:r,scrollToMessageId:c,initialScrollReady:u,hasMore:m,hasMoreNewer:h,isFetchingOlder:f,isFetchingNewer:g,onLoadOlder:p,onLoadNewer:x,onJumpToPresent:w,presentVersion:y,unreadCount:v,viewerUserId:b,hero:j,onScrollRoot:S,onScrollTargetConsumed:k}){let[C,N]=(0,n.useState)(null),E=(0,n.useMemo)(()=>(function(e,t,r=!1){let n=[],a=null,i=!1;for(let o of e){let e=a?(0,l.dateKey)(a.createdAt):"",s=(0,l.dateKey)(o.createdAt),d=!!(s&&s!==e),c=o.id===t;d&&c?n.push({kind:"new-divider",key:"new-divider",dateLabel:(0,l.formatDateLabel)(o.createdAt)}):(d&&n.push({kind:"date-divider",label:(0,l.formatDateLabel)(o.createdAt),key:`date:${s}`}),c&&n.push({kind:"new-divider",key:"new-divider"}));let u=!i&&r&&"chat"===o.type||!!(a&&"chat"===o.type&&!o.replyTo&&!d&&a.authorName===o.authorName&&a.createdAt&&o.createdAt&&new Date(o.createdAt).getTime()-new Date(a.createdAt).getTime()<42e4);n.push({kind:"message",m:{...o,grouped:u},key:function(e){let t=e.clientNonce;return!e.authorId||!t||t.startsWith("srv:")?`msg:id:${e.id}`:`msg:client:${JSON.stringify([e.authorId,t])}`}(o)}),i=!0,a=o}return n})(e,r,!!m),[e,r,m]),T=!!c&&e.some(e=>e.id===c),I=c?T:u,[R,A]=(0,n.useState)(!1),[L,M]=(0,n.useState)(()=>new Set),[P,$]=(0,n.useState)(!1),D=(0,n.useCallback)(e=>{A(!0),M(new Set([e]))},[]),F=(0,n.useCallback)(e=>{M(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),r})},[]),O=(0,n.useCallback)(()=>{A(!1),M(new Set)},[]),z=(0,n.useMemo)(()=>{if(0===L.size)return[];let e=E.flatMap(e=>"message"===e.kind&&L.has(e.m.id)?[e.m]:[]),t=null;return e.map(e=>{let r=!!(t&&!e.replyTo&&t.authorName===e.authorName&&t.createdAt&&e.createdAt&&new Date(e.createdAt).getTime()-new Date(t.createdAt).getTime()<42e4);return t=e,{...e,grouped:r}})},[E,L]),H=(0,n.useRef)(null),[U,q]=(0,n.useState)(0),[B,V]=(0,n.useState)(!1),_=!!t&&0===e.length;(0,n.useEffect)(()=>{let e=H.current;if(!e)return;let t=new ResizeObserver(t=>{q(t[0]?.borderBoxSize?.[0]?.blockSize??e.offsetHeight),V(!0)});return t.observe(e),q(e.offsetHeight),V(!0),()=>t.disconnect()},[_,m,j]);let{scrollRef:W,virtualizer:K,belowCount:J,scrollToBottom:X,jumpTo:G,onImageLoad:Y}=function({items:e,newDividerBefore:t,initialScrollReady:r,hasMoreNewer:l,presentVersion:d,viewerUserId:c,heroHeight:u,heroMeasured:m}){let h=(0,n.useRef)(null),f=(0,n.useRef)({didInitialScroll:!1,didDividerConverge:!1,lastTailId:null}),g=function(e){let t=[];for(let r of e)"message"===r.kind&&t.push({id:r.m.id,authorId:r.m.authorId});return t}(e),p=g[g.length-1]?.id??null,x=(0,n.useRef)(!0),w=(0,n.useRef)(!1),y=(0,n.useRef)(new WeakMap),v=(0,n.useRef)(!1),b=(0,a.useVirtualizer)({...i.COMMUNITY_VIRTUALIZER_REACT_OPTIONS,count:e.length,getScrollElement:()=>h.current,estimateSize:t=>(function(e){var t;if("date-divider"===e.kind)return 32;if("new-divider"===e.kind)return e.dateLabel?32:24;let r=e.m,n=24+((t=r.content)?Math.min(20*Math.max(1,Math.ceil(t.length/55)),400):0)+function(e){if(!e.attachments?.length)return 0;let t=0;for(let r of e.attachments)"image"===r.kind&&(t+=r.width&&r.height?Math.min(300,Math.round(320*r.height/r.width)):200);return t}(r);return r.replyTo&&(n+=28),r.embeds?.length&&(n+=120*r.embeds.length),r.reactions?.length&&(n+=32),r.thread&&(n+=36),n})(e[t]),measureElement:e=>{let t=Math.ceil(Math.max(e.getBoundingClientRect().height,e.scrollHeight)),r=y.current.get(e);return y.current.set(e,t),void 0===r||r===t||!x.current||w.current||v.current||(v.current=!0,queueMicrotask(()=>{if(e.isConnected&&!w.current){let e=h.current;e&&(e.scrollTop=e.scrollHeight)}e.ownerDocument.defaultView?.requestAnimationFrame(()=>{if(v.current=!1,e.isConnected&&!w.current){let e=h.current;e&&(e.scrollTop=e.scrollHeight)}})})),t},getItemKey:t=>e[t].key,anchorTo:"end",followOnAppend:!1,scrollEndThreshold:100,scrollMargin:u,overscan:8});b.shouldAdjustScrollPositionOnItemSizeChange=o,(0,n.useLayoutEffect)(()=>{let e=h.current;if(!e)return;let t=e.scrollTop,r=()=>{let r=e.scrollTop,n=b.isAtEnd(100);x.current=n,n?w.current=!1:r<t-1&&(w.current=!0),t=r},n=e=>{e.deltaY<0&&(w.current=!0)},l=e=>{["ArrowUp","PageUp","Home"].includes(e.key)&&(w.current=!0)};return e.addEventListener("scroll",r,{passive:!0}),e.addEventListener("wheel",n,{passive:!0}),e.addEventListener("keydown",l),()=>{e.removeEventListener("scroll",r),e.removeEventListener("wheel",n),e.removeEventListener("keydown",l)}},[b]),(0,n.useLayoutEffect)(()=>{let{action:n,nextState:a}=function(e){let{state:t,messages:r,newDividerBefore:n,initialScrollReady:l,heroMeasured:a,hasMoreNewer:i,viewerUserId:o,isAtEnd:s,userScrolledAway:d}=e,c=r[r.length-1]?.id??null,u=r.length,m={didInitialScroll:t.didInitialScroll,didDividerConverge:t.didDividerConverge,lastTailId:c};if(0===u)return{action:{type:"none"},nextState:{...m,didInitialScroll:!1,didDividerConverge:!1}};if(!t.didInitialScroll)return a&&d?{action:{type:"none"},nextState:{...m,didInitialScroll:!0,didDividerConverge:!0}}:a&&l?{action:{type:"mount",newDividerBefore:n},nextState:{...m,didInitialScroll:!0,didDividerConverge:!0}}:a&&!i?{action:{type:"scrollToEnd"},nextState:{...m,didInitialScroll:!0,didDividerConverge:!1}}:{action:{type:"none"},nextState:{...m,didInitialScroll:!1}};let h=null!==t.lastTailId&&t.lastTailId!==c;if(!t.didDividerConverge&&!h)return l&&a?n&&s&&!d?{action:{type:"mount",newDividerBefore:n},nextState:{...m,didDividerConverge:!0}}:{action:{type:"none"},nextState:{...m,didDividerConverge:!0}}:{action:{type:"none"},nextState:m};if(h){let e={...m,didDividerConverge:!0},t=r[r.length-1];return o&&t?.authorId===o||!i&&s&&!d?{action:{type:"scrollToEnd"},nextState:e}:{action:{type:"none"},nextState:e}}return{action:{type:"none"},nextState:m}}({state:f.current,messages:g,newDividerBefore:t,initialScrollReady:r,heroMeasured:m,hasMoreNewer:l,viewerUserId:c,isAtEnd:x.current,userScrolledAway:w.current});switch(f.current=a,n.type){case"mount":{let t=n.newDividerBefore?function(e,t){let r=s(e,t);if(null===r)return null;let n=e.findIndex(e=>"new-divider"===e.kind);return -1!==n?n:r}(e,n.newDividerBefore):null;null!==t?b.scrollToIndex(t,{align:"center"}):b.scrollToEnd();return}case"scrollToEnd":b.scrollToEnd();return;case"none":return}},[e,t,r,m,l,c,b]);let j=(0,n.useRef)(0);(0,n.useLayoutEffect)(()=>{d&&p&&!l&&j.current!==d&&(j.current=d,f.current={didInitialScroll:!0,didDividerConverge:!0,lastTailId:p},x.current=!0,w.current=!1,b.scrollToEnd())},[l,d,p,b]);let S=(0,n.useRef)(u);(0,n.useLayoutEffect)(()=>{let e=h.current;if(!e)return;let t=u-S.current;S.current=u,0!==t&&(e.scrollTop+=t)},[u]);let k=(0,n.useRef)(0);(0,n.useLayoutEffect)(()=>{let e=h.current;if(!e)return;k.current=e.clientHeight;let t=new ResizeObserver(()=>{let t=k.current,r=e.clientHeight;if(r===t)return;let n=b.isAtEnd(100);k.current=r,n?b.scrollToEnd():e.scrollTop+=t-r});return t.observe(e),()=>t.disconnect()},[b]);let C=b.range?.endIndex??-1,N=b.isAtEnd(100)?0:function(e,t){let r=0;for(let n=t+1;n<e.length;n++)"message"===e[n].kind&&r++;return r}(e,C),E=(0,n.useCallback)(()=>{w.current=!1,x.current=!0,b.scrollToEnd({behavior:"smooth"})},[b]),T=(0,n.useCallback)(()=>{b.isAtEnd(100)&&b.scrollToEnd()},[b]),I=(0,n.useCallback)((t,r="smooth")=>{let n=s(e,t);null!==n&&b.scrollToIndex(n,{align:"center",behavior:r})},[e,b]);return{scrollRef:h,virtualizer:b,belowCount:N,scrollToBottom:E,jumpTo:I,onImageLoad:T}}({items:E,newDividerBefore:r,initialScrollReady:I,hasMoreNewer:h,presentVersion:y,viewerUserId:b,heroHeight:U,heroMeasured:B});(0,n.useEffect)(()=>{if(S)return S(W.current),()=>S(null)},[S,W]);let Q=d({scrollRef:W,hasMore:m,isFetching:f,onLoad:p,edge:"start"}),Z=d({scrollRef:W,hasMore:h,isFetching:g,onLoad:x,edge:"end"}),ee=(0,n.useRef)(null),et=(0,n.useRef)(null),er=(0,n.useCallback)((e,t="smooth")=>{null!==ee.current&&clearTimeout(ee.current),null!==et.current&&window.cancelAnimationFrame(et.current),N(e),G(e,t);let r=0,n=()=>{et.current=null;let t=window.setTimeout(()=>{N(t=>t===e?null:t),ee.current===t&&(ee.current=null)},1600);ee.current=t},l=()=>{let t=W.current,a=t?Array.from(t.querySelectorAll("[data-msg-id]")).find(t=>t.dataset.msgId===e):void 0;if(t&&a){let e=t.getBoundingClientRect(),r=a.getBoundingClientRect();if(r.bottom>e.top&&r.top<e.bottom)return void n()}(r+=1)>=120?n():et.current=window.requestAnimationFrame(l)};et.current=window.requestAnimationFrame(l)},[G,W]);(0,n.useEffect)(()=>()=>{null!==ee.current&&clearTimeout(ee.current),null!==et.current&&window.cancelAnimationFrame(et.current)},[]);let en=(0,n.useRef)(null);(0,n.useEffect)(()=>{if(!c){en.current=null;return}en.current===c||T&&B&&(en.current=c,er(c,"auto"),k?.(c))},[c,T,B,er,k]);let el=!!h,ea=(0,n.useCallback)(()=>{$(!1),O()},[O]);return{items:E,isLoading:_,jumped:C,selectMode:R,selectedIds:L,selectedMessages:z,shareOpen:P,setShareOpen:$,exitSelect:O,closeShare:ea,onEnterSelectId:D,onToggleSelectId:F,heroRef:H,scrollRef:W,virtualizer:K,topSentinelRef:Q,bottomSentinelRef:Z,onImageLoad:Y,jumpTo:er,pillCount:el?(v??J)||0:J,pillMode:el?"jump":"scroll",pillOnClick:el?w??X:X}}(b);return g=()=>(0,r.jsx)(eB,{items:j.items,virtualizer:j.virtualizer,itemKey:e=>e.key,renderItem:e=>(0,r.jsxs)(r.Fragment,{children:["date-divider"===e.kind&&(0,r.jsx)(h,{label:e.label}),"new-divider"===e.kind&&(0,r.jsx)(f,{dateLabel:e.dateLabel}),"message"===e.kind&&(0,r.jsx)("div",{"data-msg-id":e.m.id,"data-testid":m.tid.message(e.m.id),children:(0,r.jsx)(p,{m:e.m,hoverCapable:b.hoverCapable,viewerUserId:b.viewerUserId,pinned:b.pinnedIds?.has(e.m.id),highlighted:j.jumped===e.m.id,onOpenThread:b.onOpenThread,onOpenProfile:b.onOpenProfile,onToggleReactionId:b.onToggleReaction,onReactId:b.onReact,onReplyId:b.onReply,onPinId:b.onPin,onMarkId:b.onMark,onCreateThreadId:b.onCreateThread,onCopyId:b.onCopy,onEditId:e.m.authorId===b.viewerUserId?b.onEdit:void 0,onRetryId:b.onRetry,onDismissId:b.onDismiss,onJumpToId:j.jumpTo,onPreviewImage:b.onPreviewImage,onPreviewAttachment:b.onPreviewAttachment,onDownloadFile:b.onDownloadFile,resolveUserName:b.resolveUserName,onImageLoad:j.onImageLoad,selectMode:j.selectMode,selected:j.selectedIds.has(e.m.id),onToggleSelectId:j.onToggleSelectId,onEnterSelectId:j.onEnterSelectId})})]})}),(0,r.jsxs)("div",{className:"relative flex min-h-0 flex-1 flex-col",children:[(0,r.jsx)(eU,{count:j.isLoading?0:j.pillCount,mode:j.pillMode,onClick:j.pillOnClick}),j.selectMode&&(0,r.jsx)("div",{className:"absolute inset-x-0 bottom-3 z-20 flex justify-center px-4",children:(0,r.jsxs)("div",{className:"flex items-center gap-2 rounded-full border border-border/60 bg-card px-2 py-1.5 shadow-(--e2)",children:[(0,r.jsxs)("span",{className:"px-2 text-sm text-muted-foreground",children:[j.selectedIds.size," selected"]}),(0,r.jsxs)(v.Button,{size:"sm",variant:"ghost",onClick:j.exitSelect,children:[(0,r.jsx)(y.X,{})," Cancel"]}),(0,r.jsxs)(v.Button,{size:"sm",disabled:0===j.selectedIds.size,onClick:()=>j.setShareOpen(!0),children:[(0,r.jsx)(w.ImageIcon,{})," Share ",j.selectedIds.size," as image"]})]})}),j.shareOpen&&j.selectedMessages.length>0&&(0,r.jsx)(ez,{m:j.selectedMessages,open:j.shareOpen,onClose:j.closeShare}),(0,r.jsx)(eH,{names:j.isLoading?[]:b.typingUsers??[]}),(0,r.jsx)("div",{ref:j.scrollRef,className:"flex-1 overflow-x-clip overflow-y-auto thin-scrollbar",children:(0,r.jsx)("div",{className:"flex min-h-full flex-col justify-end px-4 py-8",children:j.isLoading?(0,r.jsx)(eq,{variant:b.variant}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{ref:j.heroRef,className:"mb-6",children:b.hasMore?(0,r.jsx)("div",{ref:j.topSentinelRef,className:"flex h-8 items-center justify-center text-xs text-muted-foreground",children:b.isFetchingOlder?"Loading older messages…":""}):b.hero??(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"mb-2 grid size-12 place-items-center rounded-full bg-muted/60",children:(0,r.jsx)(S.ChannelIcon,{className:"text-xl text-muted-foreground"})}),(0,r.jsx)("h2",{className:"text-xl font-semibold leading-tight",children:b.channel}),(0,r.jsx)("p",{className:"mt-2 text-sm text-muted-foreground",children:"Beginning of the channel. Say hello, share what you're working on, or drop a link."})]})}),g(),b.hasMoreNewer&&(0,r.jsx)("div",{ref:j.bottomSentinelRef,className:"mt-6 flex h-8 items-center justify-center text-xs text-muted-foreground",children:b.isFetchingNewer?"Loading newer messages…":""})]})})})]})}],442827)}]);
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,442827,42308,264921,720182,959784,680714,e=>{"use strict";let t;var r=e.i(633940),n=e.i(579848),l=e.i(344431),a=e.i(267760),i=e.i(605686);function o(e,t,r){if("backward"===r.scrollDirection)return!1;let n=(r.scrollOffset??0)+r.scrollAdjustments;return r.itemSizeCache.has(e.key)?e.end<=n:e.start<n}function s(e,t){for(let r=0;r<e.length;r++){let n=e[r];if("message"===n.kind&&n.m.id===t)return r}return null}function c({scrollRef:e,hasMore:t,isFetching:r,onLoad:l,edge:a}){let i=(0,n.useRef)(null),o=(0,n.useRef)({onLoad:l,hasMore:t,isFetching:r}),s=(0,n.useRef)(!1),d=(0,n.useRef)(!1),u=(0,n.useRef)(r);return(0,n.useEffect)(()=>{o.current={onLoad:l,hasMore:t,isFetching:r}}),(0,n.useEffect)(()=>{let e=u.current;if(u.current=r,!t){d.current=!1,s.current=!1;return}e&&!r&&d.current&&s.current&&l&&(d.current=!1,l())},[t,r,l]),(0,n.useEffect)(()=>{let t=i.current,r=e.current;if(!t||!r)return;let n=new IntersectionObserver(e=>{let t=o.current;for(let r of e)if(s.current=r.isIntersecting,r.isIntersecting&&t.onLoad&&t.hasMore){t.isFetching?d.current=!0:t.onLoad();break}},{root:r,rootMargin:"200px"}),l=r.scrollTop,c=()=>{let e=r.scrollTop,t="start"===a?e<l:e>l;l=e;let n="start"===a?e<=200:r.scrollHeight-r.clientHeight-e<=200,i=o.current;t&&n&&s.current&&i.hasMore&&i.isFetching&&(d.current=!0)};return n.observe(t),r.addEventListener("scroll",c,{passive:!0}),()=>{d.current=!1,s.current=!1,r.removeEventListener("scroll",c),n.disconnect()}},[a,t,e]),i}e.s(["useVirtualCursorSentinel",0,c],42308);var d=e.i(853049),u=e.i(434433),m=e.i(381153);function h({label:e}){return(0,r.jsxs)("div",{className:"my-2 flex items-center gap-2",children:[(0,r.jsx)(u.Separator,{className:"flex-1"}),(0,r.jsx)("span",{className:"text-xs text-muted-foreground",suppressHydrationWarning:!0,children:e}),(0,r.jsx)(u.Separator,{className:"flex-1"})]})}function f({dateLabel:e}){return(0,r.jsxs)("div",{"data-new-divider":!0,"data-testid":m.tid.newDivider,className:"relative my-1 flex items-center gap-2",children:[(0,r.jsx)(u.Separator,{className:"flex-1 bg-destructive/60"}),e&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"text-xs font-semibold text-destructive",suppressHydrationWarning:!0,children:e}),(0,r.jsx)(u.Separator,{className:"flex-1 bg-destructive/60"})]}),(0,r.jsx)("span",{className:"pointer-events-none absolute right-0 top-1/2 -translate-y-1/2 rounded-sm bg-destructive px-1.5 py-0.5 text-xs font-semibold text-white",style:{WebkitTextStroke:"0.4px currentColor"},children:"New"})]})}e.s(["DateDivider",0,h,"NewDivider",0,f],264921);var g=e.i(830028);let p=(0,n.memo)(function(e){let{m:t,viewerUserId:l,hoverCapable:a,pinned:i,highlighted:o,onOpenThread:s,onOpenProfile:c,onToggleReactionId:d,onReactId:u,onReplyId:m,onPinId:h,onMarkId:f,onCreateThreadId:p,onCopyId:x,onEditId:w,onRetryId:y,onDismissId:v,onJumpToId:b,onPreviewImage:S,onPreviewAttachment:k,onDownloadFile:C,resolveUserName:j,onImageLoad:N,selectMode:E,selected:T,onToggleSelectId:I,onEnterSelectId:R,onShareSingleId:A}=e,L=t.id,M=t.replyTo?.id,P=(0,n.useCallback)(e=>d?.(L,e),[d,L]),$=(0,n.useCallback)(e=>u?.(L,e),[u,L]),D=(0,n.useCallback)(()=>m?.(L),[m,L]),O=(0,n.useCallback)(()=>h?.(L),[h,L]),F=(0,n.useCallback)(()=>f?.(L),[f,L]),z=(0,n.useCallback)(()=>p?.(L),[p,L]),H=(0,n.useCallback)(()=>x?.(L),[x,L]),U=(0,n.useCallback)(()=>w?.(L),[w,L]),q=(0,n.useCallback)(()=>y?.(L),[y,L]),B=(0,n.useCallback)(()=>v?.(L),[v,L]),V=(0,n.useCallback)(()=>{M&&b?.(M)},[b,M]),_=(0,n.useCallback)(()=>I?.(L),[I,L]),W=(0,n.useCallback)(()=>R?.(L),[R,L]),K=(0,n.useCallback)(()=>A?.(L),[A,L]);return(0,r.jsx)(g.Message,{m:t,viewerUserId:l,hoverCapable:a,pinned:i,highlighted:o,onOpenThread:s,onOpenProfile:c,onJumpReply:b&&M?V:void 0,onToggleReaction:d?P:void 0,onReact:u?$:void 0,onReply:m?D:void 0,onPin:h?O:void 0,onMark:f?F:void 0,onCreateThread:p?z:void 0,onCopy:x?H:void 0,onEdit:w?U:void 0,onRetry:y?q:void 0,onDismiss:v?B:void 0,onPreviewImage:S,onPreviewAttachment:k,onDownloadFile:C,resolveUserName:j,onImageLoad:N,selectMode:E,selected:T,onToggleSelect:I?_:void 0,onEnterSelect:R?W:void 0,onShareSingle:A?K:void 0})});e.s(["MessageRow",0,p],720182);var x=e.i(652239),w=e.i(307215),y=e.i(350760),v=e.i(186339),b=e.i(728886),S=e.i(334240),k=e.i(323086),C=e.i(722445),j=e.i(57331);let N=(t=0,()=>(t+=1,`u${`0000${(1679616*Math.random()|0).toString(36)}`.slice(-4)}${t}`));function E(e){let t=[];for(let r=0,n=e.length;r<n;r++)t.push(e[r]);return t}let T=null;function I(e={}){return T||(T=e.includeStyleProperties?e.includeStyleProperties:E(window.getComputedStyle(document.documentElement)))}function R(e,t){let r=(e.ownerDocument.defaultView||window).getComputedStyle(e).getPropertyValue(t);return r?parseFloat(r.replace("px","")):0}function A(e,t={}){let r,n,l,a;return{width:t.width||(r=R(e,"border-left-width"),n=R(e,"border-right-width"),e.clientWidth+r+n),height:t.height||(l=R(e,"border-top-width"),a=R(e,"border-bottom-width"),e.clientHeight+l+a)}}function L(e){return new Promise((t,r)=>{let n=new Image;n.onload=()=>{n.decode().then(()=>{requestAnimationFrame(()=>t(n))})},n.onerror=r,n.crossOrigin="anonymous",n.decoding="async",n.src=e})}async function M(e){return Promise.resolve().then(()=>new XMLSerializer().serializeToString(e)).then(encodeURIComponent).then(e=>`data:image/svg+xml;charset=utf-8,${e}`)}async function P(e,t,r){let n="http://www.w3.org/2000/svg",l=document.createElementNS(n,"svg"),a=document.createElementNS(n,"foreignObject");return l.setAttribute("width",`${t}`),l.setAttribute("height",`${r}`),l.setAttribute("viewBox",`0 0 ${t} ${r}`),a.setAttribute("width","100%"),a.setAttribute("height","100%"),a.setAttribute("x","0"),a.setAttribute("y","0"),a.setAttribute("externalResourcesRequired","true"),l.appendChild(a),a.appendChild(e),M(l)}let $=(e,t)=>{if(e instanceof t)return!0;let r=Object.getPrototypeOf(e);return null!==r&&(r.constructor.name===t.name||$(r,t))};function D(e,t,r,n){let l,a,i,o=window.getComputedStyle(e,r),s=o.getPropertyValue("content");if(""===s||"none"===s)return;let c=N();try{t.className=`${t.className} ${c}`}catch(e){return}let d=document.createElement("style");d.appendChild((l=`.${c}:${r}`,i=o.cssText?(a=o.getPropertyValue("content"),`${o.cssText} content: '${a.replace(/'|"/g,"")}';`):I(n).map(e=>{let t=o.getPropertyValue(e),r=o.getPropertyPriority(e);return`${e}: ${t}${r?" !important":""};`}).join(" "),document.createTextNode(`${l}{${i}}`))),t.appendChild(d)}let O="application/font-woff",F="image/jpeg",z={woff:O,woff2:O,ttf:"application/font-truetype",eot:"application/vnd.ms-fontobject",png:"image/png",jpg:F,jpeg:F,gif:"image/gif",tiff:"image/tiff",svg:"image/svg+xml",webp:"image/webp"};function H(e){let t;return z[((t=/\.([^./]*?)$/g.exec(e))?t[1]:"").toLowerCase()]||""}function U(e){return -1!==e.search(/^(data:)/)}function q(e,t){return`data:${t};base64,${e}`}async function B(e,t,r){let n=await fetch(e,t);if(404===n.status)throw Error(`Resource "${n.url}" not found`);let l=await n.blob();return new Promise((e,t)=>{let a=new FileReader;a.onerror=t,a.onloadend=()=>{try{e(r({res:n,result:a.result}))}catch(e){t(e)}},a.readAsDataURL(l)})}let V={};async function _(e,t,r){var n,l,a;let i,o,s=(n=e,l=t,a=r.includeQueryParams,o=n.replace(/\?.*/,""),a&&(o=n),/ttf|otf|eot|woff2?/i.test(o)&&(o=o.replace(/.*\//,"")),l?`[${l}]${o}`:o);if(null!=V[s])return V[s];r.cacheBust&&(e+=(/\?/.test(e)?"&":"?")+new Date().getTime());try{let n=await B(e,r.fetchRequestInit,({res:e,result:r})=>(t||(t=e.headers.get("Content-Type")||""),r.split(/,/)[1]));i=q(n,t)}catch(n){i=r.imagePlaceholder||"";let t=`Failed to fetch resource: ${e}`;n&&(t="string"==typeof n?n:n.message),t&&console.warn(t)}return V[s]=i,i}async function W(e){let t=e.toDataURL();return"data:,"===t?e.cloneNode(!1):L(t)}async function K(e,t){if(e.currentSrc){let t=document.createElement("canvas"),r=t.getContext("2d");return t.width=e.clientWidth,t.height=e.clientHeight,null==r||r.drawImage(e,0,0,t.width,t.height),L(t.toDataURL())}let r=e.poster,n=H(r);return L(await _(r,n,t))}async function J(e,t){var r;try{if(null==(r=null==e?void 0:e.contentDocument)?void 0:r.body)return await Z(e.contentDocument.body,t,!0)}catch(e){}return e.cloneNode(!1)}async function X(e,t){return $(e,HTMLCanvasElement)?W(e):$(e,HTMLVideoElement)?K(e,t):$(e,HTMLIFrameElement)?J(e,t):e.cloneNode(G(e))}let G=e=>null!=e.tagName&&"SVG"===e.tagName.toUpperCase();async function Y(e,t,r){var n,l;if(G(t))return t;let a=[];return 0===(a=null!=e.tagName&&"SLOT"===e.tagName.toUpperCase()&&e.assignedNodes?E(e.assignedNodes()):$(e,HTMLIFrameElement)&&(null==(n=e.contentDocument)?void 0:n.body)?E(e.contentDocument.body.childNodes):E((null!=(l=e.shadowRoot)?l:e).childNodes)).length||$(e,HTMLVideoElement)||await a.reduce((e,n)=>e.then(()=>Z(n,r)).then(e=>{e&&t.appendChild(e)}),Promise.resolve()),t}async function Q(e,t){let r=e.querySelectorAll?e.querySelectorAll("use"):[];if(0===r.length)return e;let n={};for(let l=0;l<r.length;l++){let a=r[l].getAttribute("xlink:href");if(a){let r=e.querySelector(a),l=document.querySelector(a);r||!l||n[a]||(n[a]=await Z(l,t,!0))}}let l=Object.values(n);if(l.length){let t="http://www.w3.org/1999/xhtml",r=document.createElementNS(t,"svg");r.setAttribute("xmlns",t),r.style.position="absolute",r.style.width="0",r.style.height="0",r.style.overflow="hidden",r.style.display="none";let n=document.createElementNS(t,"defs");r.appendChild(n);for(let e=0;e<l.length;e++)n.appendChild(l[e]);e.appendChild(r)}return e}async function Z(e,t,r){return r||!t.filter||t.filter(e)?Promise.resolve(e).then(e=>X(e,t)).then(r=>Y(e,r,t)).then(r=>(function(e,t,r){if($(t,Element)&&(!function(e,t,r){let n=t.style;if(!n)return;let l=window.getComputedStyle(e);l.cssText?(n.cssText=l.cssText,n.transformOrigin=l.transformOrigin):I(r).forEach(r=>{let a=l.getPropertyValue(r);if("font-size"===r&&a.endsWith("px")){let e=Math.floor(parseFloat(a.substring(0,a.length-2)))-.1;a=`${e}px`}$(e,HTMLIFrameElement)&&"display"===r&&"inline"===a&&(a="block"),"d"===r&&t.getAttribute("d")&&(a=`path(${t.getAttribute("d")})`),n.setProperty(r,a,l.getPropertyPriority(r))})}(e,t,r),D(e,t,":before",r),D(e,t,":after",r),$(e,HTMLTextAreaElement)&&(t.innerHTML=e.value),$(e,HTMLInputElement)&&t.setAttribute("value",e.value),$(e,HTMLSelectElement))){let r=Array.from(t.children).find(t=>e.value===t.getAttribute("value"));r&&r.setAttribute("selected","")}return t})(e,r,t)).then(e=>Q(e,t)):null}let ee=/url\((['"]?)([^'"]+?)\1\)/g,et=/url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g,er=/src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g;async function en(e,t,r,n,l){try{let a,i,o=r?function(e,t){if(e.match(/^[a-z]+:\/\//i))return e;if(e.match(/^\/\//))return window.location.protocol+e;if(e.match(/^[a-z]+:/i))return e;let r=document.implementation.createHTMLDocument(),n=r.createElement("base"),l=r.createElement("a");return r.head.appendChild(n),r.body.appendChild(l),t&&(n.href=t),l.href=e,l.href}(t,r):t,s=H(t);if(l){let e=await l(o);a=q(e,s)}else a=await _(o,s,n);return e.replace((i=t.replace(/([.*+?^${}()|\[\]\/\\])/g,"\\$1"),RegExp(`(url\\(['"]?)(${i})(['"]?\\))`,"g")),`$1${a}$3`)}catch(e){}return e}function el(e){return -1!==e.search(ee)}async function ea(e,t,r){let n;if(!el(e))return e;let l=function(e,{preferredFontFormat:t}){return t?e.replace(er,e=>{for(;;){let[r,,n]=et.exec(e)||[];if(!n)return"";if(n===t)return`src: ${r};`}}):e}(e,r);return(n=[],l.replace(ee,(e,t,r)=>(n.push(r),e)),n.filter(e=>!U(e))).reduce((e,n)=>e.then(e=>en(e,n,t,r)),Promise.resolve(l))}async function ei(e,t,r){var n;let l=null==(n=t.style)?void 0:n.getPropertyValue(e);if(l){let n=await ea(l,null,r);return t.style.setProperty(e,n,t.style.getPropertyPriority(e)),!0}return!1}async function eo(e,t){await ei("background",e,t)||await ei("background-image",e,t),await ei("mask",e,t)||await ei("-webkit-mask",e,t)||await ei("mask-image",e,t)||await ei("-webkit-mask-image",e,t)}async function es(e,t){let r=$(e,HTMLImageElement);if(!(r&&!U(e.src))&&!($(e,SVGImageElement)&&!U(e.href.baseVal)))return;let n=r?e.src:e.href.baseVal,l=await _(n,H(n),t);await new Promise((n,a)=>{e.onload=n,e.onerror=t.onImageErrorHandler?(...e)=>{try{n(t.onImageErrorHandler(...e))}catch(e){a(e)}}:a,e.decode&&(e.decode=n),"lazy"===e.loading&&(e.loading="eager"),r?(e.srcset="",e.src=l):e.href.baseVal=l})}async function ec(e,t){let r=E(e.childNodes).map(e=>ed(e,t));await Promise.all(r).then(()=>e)}async function ed(e,t){$(e,Element)&&(await eo(e,t),await es(e,t),await ec(e,t))}let eu={};async function em(e){let t=eu[e];if(null!=t)return t;let r=await fetch(e);return t={url:e,cssText:await r.text()},eu[e]=t,t}async function eh(e,t){let r=e.cssText,n=/url\(["']?([^"')]+)["']?\)/g;return Promise.all((r.match(/url\([^)]+\)/g)||[]).map(async l=>{let a=l.replace(n,"$1");return a.startsWith("https://")||(a=new URL(a,e.url).href),B(a,t.fetchRequestInit,({result:e})=>(r=r.replace(l,`url(${e})`),[l,e]))})).then(()=>r)}function ef(e){if(null==e)return[];let t=[],r=e.replace(/(\/\*[\s\S]*?\*\/)/gi,""),n=RegExp("((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})","gi");for(;;){let e=n.exec(r);if(null===e)break;t.push(e[0])}r=r.replace(n,"");let l=/@import[\s\S]*?url\([^)]*\)[\s\S]*?;/gi,a=RegExp("((\\s*?(?:\\/\\*[\\s\\S]*?\\*\\/)?\\s*?@media[\\s\\S]*?){([\\s\\S]*?)}\\s*?})|(([\\s\\S]*?){([\\s\\S]*?)})","gi");for(;;){let e=l.exec(r);if(null===e){if(null===(e=a.exec(r)))break;l.lastIndex=a.lastIndex}else a.lastIndex=l.lastIndex;t.push(e[0])}return t}async function eg(e,t){let r=[],n=[];return e.forEach(r=>{if("cssRules"in r)try{E(r.cssRules||[]).forEach((e,l)=>{if(e.type===CSSRule.IMPORT_RULE){let a=l+1,i=e.href,o=em(i).then(e=>eh(e,t)).then(e=>ef(e).forEach(e=>{try{r.insertRule(e,e.startsWith("@import")?a+=1:r.cssRules.length)}catch(t){console.error("Error inserting rule from remote css",{rule:e,error:t})}})).catch(e=>{console.error("Error loading remote css",e.toString())});n.push(o)}})}catch(a){let l=e.find(e=>null==e.href)||document.styleSheets[0];null!=r.href&&n.push(em(r.href).then(e=>eh(e,t)).then(e=>ef(e).forEach(e=>{l.insertRule(e,l.cssRules.length)})).catch(e=>{console.error("Error loading remote stylesheet",e)})),console.error("Error inlining remote css file",a)}}),Promise.all(n).then(()=>(e.forEach(e=>{if("cssRules"in e)try{E(e.cssRules||[]).forEach(e=>{r.push(e)})}catch(t){console.error(`Error while reading CSS rules from ${e.href}`,t)}}),r))}async function ep(e,t){if(null==e.ownerDocument)throw Error("Provided element is not within a Document");let r=E(e.ownerDocument.styleSheets);return(await eg(r,t)).filter(e=>e.type===CSSRule.FONT_FACE_RULE).filter(e=>el(e.style.getPropertyValue("src")))}function ex(e){return e.trim().replace(/["']/g,"")}async function ew(e,t){let r,n=await ep(e,t),l=(r=new Set,!function e(t){(t.style.fontFamily||getComputedStyle(t).fontFamily).split(",").forEach(e=>{r.add(ex(e))}),Array.from(t.children).forEach(t=>{t instanceof HTMLElement&&e(t)})}(e),r);return(await Promise.all(n.filter(e=>l.has(ex(e.style.fontFamily))).map(e=>{let r=e.parentStyleSheet?e.parentStyleSheet.href:null;return ea(e.cssText,r,t)}))).join("\n")}async function ey(e,t){let r=null!=t.fontEmbedCSS?t.fontEmbedCSS:t.skipFonts?null:await ew(e,t);if(r){let t=document.createElement("style"),n=document.createTextNode(r);t.appendChild(n),e.firstChild?e.insertBefore(t,e.firstChild):e.appendChild(t)}}async function ev(e,t={}){let{width:r,height:n}=A(e,t),l=await Z(e,t,!0);return await ey(l,t),await ed(l,t),!function(e,t){let{style:r}=e;t.backgroundColor&&(r.backgroundColor=t.backgroundColor),t.width&&(r.width=`${t.width}px`),t.height&&(r.height=`${t.height}px`);let n=t.style;null!=n&&Object.keys(n).forEach(e=>{r[e]=n[e]})}(l,t),await P(l,r,n)}async function eb(e,t={}){let{width:r,height:n}=A(e,t),l=await ev(e,t),a=await L(l),i=document.createElement("canvas"),o=i.getContext("2d"),s=t.pixelRatio||function(){let e,t;try{t=j.default}catch(e){}let r=t&&t.env?t.env.devicePixelRatio:null;return r&&Number.isNaN(e=parseInt(r,10))&&(e=1),e||window.devicePixelRatio||1}(),c=t.canvasWidth||r,d=t.canvasHeight||n;return i.width=c*s,i.height=d*s,!t.skipAutoScale&&(i.width>16384||i.height>16384)&&(i.width>16384&&i.height>16384?i.width>i.height?(i.height*=16384/i.width,i.width=16384):(i.width*=16384/i.height,i.height=16384):i.width>16384?(i.height*=16384/i.width,i.width=16384):(i.width*=16384/i.height,i.height=16384)),i.style.width=`${c}`,i.style.height=`${d}`,t.backgroundColor&&(o.fillStyle=t.backgroundColor,o.fillRect(0,0,i.width,i.height)),o.drawImage(a,0,0,i.width,i.height),i}async function eS(e,t={}){let r=await eb(e,t);return await function(e,t={}){return new Promise(e.toBlob?r=>{e.toBlob(r,t.type?t.type:"image/png",t.quality?t.quality:1)}:r=>{let n=window.atob(e.toDataURL(t.type?t.type:void 0,t.quality?t.quality:void 0).split(",")[1]),l=n.length,a=new Uint8Array(l);for(let e=0;e<l;e+=1)a[e]=n.charCodeAt(e);r(new Blob([a],{type:t.type?t.type:"image/png"}))})}(r)}var ek=e.i(998808),eC=e.i(423009),ej=e.i(285754),eN=e.i(216075);let eE=(0,e.i(281277).default)("highlighter",[["path",{d:"m9 11-6 6v3h9l3-3",key:"1a3l36"}],["path",{d:"m22 12-4.6 4.6a2 2 0 0 1-2.8 0l-5.2-5.2a2 2 0 0 1 0-2.8L14 4",key:"14a9rk"}]]);var eT=e.i(908180);e.i(954194);var eI=e.i(275130),eR=e.i(779646),eA=e.i(531342),eL=e.i(655041),eM=e.i(562080);let eP="data-hl";class e$ extends Error{constructor(){super("A share-card image did not finish loading in time"),this.name="ShareCardImageTimeoutError"}}async function eD(e,t){if(!e.complete&&!await new Promise(r=>{let n=!1,l=t=>{n||(n=!0,e.removeEventListener("load",a),e.removeEventListener("error",a),clearTimeout(i),r(t))},a=()=>l(!0),i=setTimeout(()=>l(!1),t);e.addEventListener("load",a,{once:!0}),e.addEventListener("error",a,{once:!0}),e.complete&&a()}))throw new e$;e.naturalWidth>0&&e.decode&&await new Promise(r=>{let n=!1,l=()=>{n||(n=!0,clearTimeout(a),r())},a=setTimeout(l,t);Promise.resolve().then(()=>e.decode()).then(l,l)})}function eO(){return"function"!=typeof requestAnimationFrame?Promise.resolve():new Promise(e=>requestAnimationFrame(()=>e()))}async function eF(e,t=eO,r=5e3){await Promise.all([...e.querySelectorAll("img")].map(e=>eD(e,r))),await t()}function ez({m:e,open:t,onClose:l}){let a=(0,n.useMemo)(()=>Array.isArray(e)?e:[e],[e]),i=(0,n.useRef)(null),o=(0,n.useRef)(new Map),[s,c]=(0,n.useState)(null),[d,u]=(0,n.useState)(!1),[h,f]=(0,n.useState)(!1),g=(0,n.useCallback)(()=>[...o.current.values()].some(e=>e&&null!==e.querySelector(`mark[${eP}]`)),[]),p=(0,n.useCallback)(e=>{let t=o.current.get(e);if(!t)return;let r=window.getSelection?.();if(!r||r.isCollapsed||0===r.rangeCount)return;let n=r.getRangeAt(0);if(!t.contains(n.commonAncestorContainer))return;let l=function(e,t){if(t.collapsed)return 0;let r=function(e){let t=(e.ownerDocument??document).createTreeWalker(e,NodeFilter.SHOW_TEXT,{acceptNode:e=>e.data.length?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}),r=[],n=t.nextNode();for(;n;)r.push(n),n=t.nextNode();return r}(e);if(0===r.length)return 0;let n=function(e){let t=-1,r=-1;for(let n=0;n<e.length;n++)e[n].covered&&(-1===t&&(t=n),r=n);if(-1===t)return[];let n=e[t].startOffset??0,l=e[r].endOffset??e[r].length;return function(e,t){let{startIdx:r,startOffset:n,endIdx:l,endOffset:a}=t;if(r>l)return[];let i=[];for(let t=r;t<=l;t++){let o=e[t];if(!o||o.insideMark)continue;let s=t===r?n:0,c=t===l?a:o.length,d=Math.max(0,Math.min(s,o.length)),u=Math.max(0,Math.min(c,o.length));u>d&&i.push({idx:t,sliceStart:d,sliceEnd:u})}return i}(e,{startIdx:t,startOffset:n,endIdx:r,endOffset:l})}(r.map(e=>{let r="function"==typeof t.intersectsNode?t.intersectsNode(e):0===t.comparePoint(e,0)||0===t.comparePoint(e,e.data.length);return{length:e.data.length,insideMark:function(e){let t=e.parentNode,r=e.ownerDocument?.body??null;for(;t&&t!==r;){if(1===t.nodeType&&t.hasAttribute?.(eP))return!0;t=t.parentNode}return!1}(e),covered:r,...e===t.startContainer?{startOffset:t.startOffset}:{},...e===t.endContainer?{endOffset:t.endOffset}:{}}}));for(let e=n.length-1;e>=0;e--){let t=n[e];!function(e,t,r){let n=e;r<n.data.length&&n.splitText(r),t>0&&(n=n.splitText(t));let l=(n.ownerDocument??document).createElement("mark");l.setAttribute(eP,""),l.className="share-hl",n.parentNode?.replaceChild(l,n),l.appendChild(n)}(r[t.idx],t.sliceStart,t.sliceEnd)}return n.length}(t,n);r.removeAllRanges(),l>0&&f(g())},[g]),x=(0,n.useCallback)(()=>{for(let e of o.current.values())e&&(e.querySelectorAll(`mark[${eP}]`).forEach(e=>{let t=e.parentNode;if(t){for(;e.firstChild;)t.insertBefore(e.firstChild,e);t.removeChild(e)}}),e.normalize());f(!1)},[]),w=async()=>{let e=i.current;if(!e)return null;await eF(e);try{let e=getComputedStyle(document.documentElement).getPropertyValue("--font-caveat").trim();document.fonts?.load&&e&&await document.fonts.load(`16px ${e}`),await document.fonts?.ready}catch{}return eS(e,{pixelRatio:2,cacheBust:!0,fetchRequestInit:{credentials:"same-origin"},backgroundColor:getComputedStyle(e).getPropertyValue("--card")?.trim()||void 0})},y=async()=>{c("copy");try{let e=await w();if(!e)throw Error("render failed");await navigator.clipboard.write([new ClipboardItem({"image/png":e})]),u(!0),ek.toast.success("Image copied to clipboard"),window.setTimeout(()=>u(!1),1600)}catch{ek.toast.error("Couldn't copy image — try Download instead")}finally{c(null)}},b=async()=>{c("download");try{let e=await w();if(!e)throw Error("render failed");let t=URL.createObjectURL(e),r=document.createElement("a");r.href=t,r.download=`alook-message-${a[0]?.authorName??"share"}.png`,r.click(),URL.revokeObjectURL(t)}catch{ek.toast.error("Couldn't generate image")}finally{c(null)}};return(0,r.jsx)(eR.Dialog,{open:t,onOpenChange:e=>!e&&l(),children:(0,r.jsxs)(eR.DialogContent,{className:"w-180 max-w-[calc(100vw-2rem)] sm:max-w-[calc(100vw-2rem)] gap-0 p-0",children:[(0,r.jsx)(eR.DialogHeader,{className:"px-5 pt-5 pb-3",children:(0,r.jsx)(eR.DialogTitle,{children:a.length>1?`Share ${a.length} messages`:"Share message"})}),(0,r.jsx)("div",{className:"max-h-[60vh] overflow-y-auto bg-muted/40 px-6 py-6",children:(0,r.jsxs)("div",{ref:i,className:"rounded-xl bg-card p-5 shadow-(--e1)",children:[a.map(e=>(0,r.jsxs)("div",{className:e.grouped?"mt-0.5":"mt-3 first:mt-0",children:[e.replyTo&&(0,r.jsxs)("div",{"data-testid":`message-share-reply-${e.id}`,className:"mb-1 ml-13 flex min-w-0 max-w-[calc(100%-3.25rem)] items-center gap-2 text-[13px] text-muted-foreground",children:[(0,r.jsx)("div",{className:"h-2 w-4 shrink-0 rounded-tl-md border-l-2 border-t-2 border-border"}),e.replyTo.deleted?(0,r.jsx)("span",{className:"italic",children:"Original message was deleted"}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("span",{className:"shrink-0 font-medium text-foreground/80",children:["@",e.replyTo.authorName]}),(0,r.jsx)("span",{className:"min-w-0 truncate",children:(0,eI.stripInlineMarkup)(e.replyTo.text)})]})]}),(0,r.jsxs)("div",{className:"flex gap-3",children:[e.grouped?(0,r.jsx)("div",{className:"w-10 shrink-0","aria-hidden":!0}):(0,r.jsx)(eA.Avatar,{label:e.authorName??"Unknown",src:e.authorAvatar,seed:e.authorId,size:40}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[!e.grouped&&(0,r.jsx)("div",{className:"mb-0.5 text-[15px] font-semibold",style:{color:e.color??"var(--foreground)"},children:e.authorName}),e.content&&(0,r.jsx)("div",{ref:t=>{o.current.set(e.id,t)},onMouseUp:()=>p(e.id),className:"max-h-164 overflow-hidden line-clamp-32 [&_mark[data-hl]]:rounded-xs [&_mark[data-hl]]:bg-[rgba(255,208,92,0.5)] [&_mark[data-hl]]:p-[0_1px] [&_mark[data-hl]]:[box-decoration-break:clone] [&_mark[data-hl]]:[-webkit-box-decoration-break:clone] [&_mark[data-hl]]:text-inherit",children:(0,r.jsx)(eL.MessageBody,{text:e.content,perspective:"neutral"})}),e.attachments?.some(e=>"image"===e.kind)&&(0,r.jsx)("div",{"data-testid":`message-share-images-${e.id}`,className:"mt-2 flex flex-col gap-2",children:e.attachments.map((t,n)=>"image"===t.kind&&(0,r.jsx)("div",{className:"w-fit max-w-full overflow-hidden rounded-lg border border-border",children:(0,r.jsx)("img",{"data-testid":`message-share-image-${e.id}-${n}`,src:t.url,alt:t.name,width:t.width,height:t.height,loading:"eager",className:"block h-auto w-auto max-h-75 max-w-full rounded-lg object-contain",style:{aspectRatio:(0,eM.attachmentAspectRatio)(t.width,t.height)}})},`${t.name}-${n}`))}),e.reactions&&e.reactions.length>0&&(0,r.jsx)("div",{"data-testid":`message-share-reactions-${e.id}`,className:"mt-2 flex flex-wrap gap-1",children:e.reactions.map(e=>(0,r.jsxs)("span",{className:["flex h-6 items-center gap-1 rounded-md px-2 text-sm",e.me?"border border-primary/50 bg-accent":"bg-secondary"].join(" "),children:[(0,r.jsx)("span",{children:e.emoji}),(0,r.jsx)("span",{className:"text-xs text-muted-foreground",children:e.count})]},e.emoji))})]})]})]},e.id)),(0,r.jsxs)("div",{className:"mt-4 flex items-center gap-1.5 border-t border-border/50 pt-3",children:[(0,r.jsx)(C.default,{src:"/alook.svg",alt:"",width:16,height:16}),(0,r.jsx)("span",{className:"text-sm font-bold tracking-tight text-muted-foreground",style:{fontFamily:"var(--font-brand)"},children:"Alook"})]})]})}),(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2 px-5 pt-3 pb-5",children:[(0,r.jsx)("div",{children:h&&(0,r.jsxs)(v.Button,{variant:"ghost",size:"sm",onClick:x,disabled:null!==s,children:[(0,r.jsx)(eE,{}),"Reset highlight"]})}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsxs)(v.Button,{variant:"ghost",size:"sm",onClick:b,disabled:null!==s,children:["download"===s?(0,r.jsx)(eT.Loader2,{className:"animate-spin"}):(0,r.jsx)(eN.Download,{}),"Download"]}),(0,r.jsxs)(v.Button,{size:"sm","data-testid":m.tid.messageShareCopy,onClick:y,disabled:null!==s,children:["copy"===s?(0,r.jsx)(eT.Loader2,{className:"animate-spin"}):d?(0,r.jsx)(eC.Check,{}):(0,r.jsx)(ej.Copy,{}),d?"Copied":"Copy image"]})]})]})]})})}e.s(["MessageShareDialog",0,ez],959784);var eH=e.i(853574);function eU({count:e,mode:t="scroll",onClick:n}){let l=e>0,a="jump"===t?`Jump to present, ${e} unread below`:`Scroll to bottom, ${e} more below`;return(0,r.jsx)("div",{className:`pointer-events-none absolute bottom-3 left-1/2 z-10 -translate-x-1/2 transition-all duration-200 ease-out ${l?"translate-y-0 opacity-100":"translate-y-2 opacity-0"}`,children:(0,r.jsxs)("button",{type:"button",onClick:n,"aria-label":a,className:`pointer-events-auto flex h-8 items-center gap-1.5 rounded-full border border-border bg-background/90 pl-2 pr-3 text-xs font-medium text-foreground shadow-(--e1) backdrop-blur-sm transition-colors hover:bg-accent ${l?"":"pointer-events-none"}`,children:[(0,r.jsx)(x.ArrowDown,{className:"size-3.5 text-muted-foreground"}),(0,r.jsx)(S.NumberTicker,{value:e})]})})}function eq({variant:e}){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"mb-6",children:"dm"===e?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(b.Skeleton,{className:"mb-3 size-16 rounded-full"}),(0,r.jsx)(b.Skeleton,{className:"h-7 w-48 rounded"}),(0,r.jsx)(b.Skeleton,{className:"mt-2 h-3.5 w-72 rounded"})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(b.Skeleton,{className:"mb-2 size-12 rounded-full"}),(0,r.jsx)(b.Skeleton,{className:"h-5 w-40 rounded"}),(0,r.jsx)(b.Skeleton,{className:"mt-2 h-3.5 w-80 max-w-full rounded"})]})}),(0,r.jsx)("div",{className:"flex flex-col gap-3",children:[[220,140],[180],[260,90,200],[120,240],[200]].map((e,t)=>(0,r.jsxs)("div",{className:"flex gap-3 pt-1.5",children:[(0,r.jsx)(b.Skeleton,{className:"size-10 shrink-0 rounded-full"}),(0,r.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col gap-2",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(b.Skeleton,{className:"h-4 w-24 rounded"}),(0,r.jsx)(b.Skeleton,{className:"h-3 w-14 rounded"})]}),e.map((e,t)=>(0,r.jsx)(b.Skeleton,{className:"h-3.5 rounded",style:{width:e}},t))]})]},t))})]})}function eB({items:e,virtualizer:t,itemKey:n,renderItem:l}){return(0,r.jsx)("div",{ref:t.containerRef,style:{position:"relative",width:"100%"},children:t.getVirtualItems().map(a=>{let i=e[a.index];return(0,r.jsx)("div",{"data-index":a.index,ref:t.measureElement,style:{position:"absolute",top:0,left:0,width:"100%"},children:l(i,a.index)},n(i))})})}e.s(["VirtualRows",0,eB],680714),e.s(["MessageList",0,function({variant:e="channel",initialScrollReady:t=!0,...u}){var g;let x=(0,d.useHoverCapable)(),b={...u,variant:e,initialScrollReady:t,hoverCapable:x},S=function({messages:e,loading:t,newDividerBefore:r,scrollToMessageId:d,initialScrollReady:u,hasMore:m,hasMoreNewer:h,isFetchingOlder:f,isFetchingNewer:g,onLoadOlder:p,onLoadNewer:x,onJumpToPresent:w,presentVersion:y,unreadCount:v,viewerUserId:b,hero:S,onScrollRoot:k,onScrollTargetConsumed:C}){let[j,N]=(0,n.useState)(null),E=(0,n.useMemo)(()=>(function(e,t,r=!1){let n=[],a=null,i=!1;for(let o of e){let e=a?(0,l.dateKey)(a.createdAt):"",s=(0,l.dateKey)(o.createdAt),c=!!(s&&s!==e),d=o.id===t;c&&d?n.push({kind:"new-divider",key:"new-divider",dateLabel:(0,l.formatDateLabel)(o.createdAt)}):(c&&n.push({kind:"date-divider",label:(0,l.formatDateLabel)(o.createdAt),key:`date:${s}`}),d&&n.push({kind:"new-divider",key:"new-divider"}));let u=!i&&r&&"chat"===o.type||!!(a&&"chat"===o.type&&!o.replyTo&&!c&&a.authorName===o.authorName&&a.createdAt&&o.createdAt&&new Date(o.createdAt).getTime()-new Date(a.createdAt).getTime()<42e4);n.push({kind:"message",m:{...o,grouped:u},key:function(e){let t=e.clientNonce;return!e.authorId||!t||t.startsWith("srv:")?`msg:id:${e.id}`:`msg:client:${JSON.stringify([e.authorId,t])}`}(o)}),i=!0,a=o}return n})(e,r,!!m),[e,r,m]),T=!!d&&e.some(e=>e.id===d),I=d?T:u,[R,A]=(0,n.useState)(!1),[L,M]=(0,n.useState)(()=>new Set),[P,$]=(0,n.useState)(!1),D=(0,n.useCallback)(e=>{A(!0),M(new Set([e]))},[]),O=(0,n.useCallback)(e=>{M(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),r})},[]),F=(0,n.useCallback)(()=>{A(!1),M(new Set)},[]),z=(0,n.useMemo)(()=>{if(0===L.size)return[];let e=E.flatMap(e=>"message"===e.kind&&L.has(e.m.id)?[e.m]:[]),t=null;return e.map(e=>{let r=!!(t&&!e.replyTo&&t.authorName===e.authorName&&t.createdAt&&e.createdAt&&new Date(e.createdAt).getTime()-new Date(t.createdAt).getTime()<42e4);return t=e,{...e,grouped:r}})},[E,L]),H=(0,n.useRef)(null),[U,q]=(0,n.useState)(0),[B,V]=(0,n.useState)(!1),_=!!t&&0===e.length;(0,n.useEffect)(()=>{let e=H.current;if(!e)return;let t=new ResizeObserver(t=>{q(t[0]?.borderBoxSize?.[0]?.blockSize??e.offsetHeight),V(!0)});return t.observe(e),q(e.offsetHeight),V(!0),()=>t.disconnect()},[_,m,S]);let{scrollRef:W,virtualizer:K,belowCount:J,scrollToBottom:X,jumpTo:G,onImageLoad:Y}=function({items:e,newDividerBefore:t,initialScrollReady:r,hasMoreNewer:l,presentVersion:c,viewerUserId:d,heroHeight:u,heroMeasured:m}){let h=(0,n.useRef)(null),f=(0,n.useRef)({didInitialScroll:!1,didDividerConverge:!1,lastTailId:null}),g=function(e){let t=[];for(let r of e)"message"===r.kind&&t.push({id:r.m.id,authorId:r.m.authorId});return t}(e),p=g[g.length-1]?.id??null,x=(0,n.useRef)(!0),w=(0,n.useRef)(!1),y=(0,n.useRef)(new WeakMap),v=(0,n.useRef)(!1),b=(0,a.useVirtualizer)({...i.COMMUNITY_VIRTUALIZER_REACT_OPTIONS,count:e.length,getScrollElement:()=>h.current,estimateSize:t=>(function(e){var t;if("date-divider"===e.kind)return 32;if("new-divider"===e.kind)return e.dateLabel?32:24;let r=e.m,n=24+((t=r.content)?Math.min(20*Math.max(1,Math.ceil(t.length/55)),400):0)+function(e){if(!e.attachments?.length)return 0;let t=0;for(let r of e.attachments)"image"===r.kind&&(t+=r.width&&r.height?Math.min(300,Math.round(320*r.height/r.width)):200);return t}(r);return r.replyTo&&(n+=28),r.embeds?.length&&(n+=120*r.embeds.length),r.reactions?.length&&(n+=32),r.thread&&(n+=36),n})(e[t]),measureElement:e=>{let t=Math.ceil(Math.max(e.getBoundingClientRect().height,e.scrollHeight)),r=y.current.get(e);return y.current.set(e,t),void 0===r||r===t||!x.current||w.current||v.current||(v.current=!0,queueMicrotask(()=>{if(e.isConnected&&!w.current){let e=h.current;e&&(e.scrollTop=e.scrollHeight)}e.ownerDocument.defaultView?.requestAnimationFrame(()=>{if(v.current=!1,e.isConnected&&!w.current){let e=h.current;e&&(e.scrollTop=e.scrollHeight)}})})),t},getItemKey:t=>e[t].key,anchorTo:"end",followOnAppend:!1,scrollEndThreshold:100,scrollMargin:u,overscan:8});b.shouldAdjustScrollPositionOnItemSizeChange=o,(0,n.useLayoutEffect)(()=>{let e=h.current;if(!e)return;let t=e.scrollTop,r=()=>{let r=e.scrollTop,n=b.isAtEnd(100);x.current=n,n?w.current=!1:r<t-1&&(w.current=!0),t=r},n=e=>{e.deltaY<0&&(w.current=!0)},l=e=>{["ArrowUp","PageUp","Home"].includes(e.key)&&(w.current=!0)};return e.addEventListener("scroll",r,{passive:!0}),e.addEventListener("wheel",n,{passive:!0}),e.addEventListener("keydown",l),()=>{e.removeEventListener("scroll",r),e.removeEventListener("wheel",n),e.removeEventListener("keydown",l)}},[b]),(0,n.useLayoutEffect)(()=>{let{action:n,nextState:a}=function(e){let{state:t,messages:r,newDividerBefore:n,initialScrollReady:l,heroMeasured:a,hasMoreNewer:i,viewerUserId:o,isAtEnd:s,userScrolledAway:c}=e,d=r[r.length-1]?.id??null,u=r.length,m={didInitialScroll:t.didInitialScroll,didDividerConverge:t.didDividerConverge,lastTailId:d};if(0===u)return{action:{type:"none"},nextState:{...m,didInitialScroll:!1,didDividerConverge:!1}};if(!t.didInitialScroll)return a&&c?{action:{type:"none"},nextState:{...m,didInitialScroll:!0,didDividerConverge:!0}}:a&&l?{action:{type:"mount",newDividerBefore:n},nextState:{...m,didInitialScroll:!0,didDividerConverge:!0}}:a&&!i?{action:{type:"scrollToEnd"},nextState:{...m,didInitialScroll:!0,didDividerConverge:!1}}:{action:{type:"none"},nextState:{...m,didInitialScroll:!1}};let h=null!==t.lastTailId&&t.lastTailId!==d;if(!t.didDividerConverge&&!h)return l&&a?n&&s&&!c?{action:{type:"mount",newDividerBefore:n},nextState:{...m,didDividerConverge:!0}}:{action:{type:"none"},nextState:{...m,didDividerConverge:!0}}:{action:{type:"none"},nextState:m};if(h){let e={...m,didDividerConverge:!0},t=r[r.length-1];return o&&t?.authorId===o||!i&&s&&!c?{action:{type:"scrollToEnd"},nextState:e}:{action:{type:"none"},nextState:e}}return{action:{type:"none"},nextState:m}}({state:f.current,messages:g,newDividerBefore:t,initialScrollReady:r,heroMeasured:m,hasMoreNewer:l,viewerUserId:d,isAtEnd:x.current,userScrolledAway:w.current});switch(f.current=a,n.type){case"mount":{let t=n.newDividerBefore?function(e,t){let r=s(e,t);if(null===r)return null;let n=e.findIndex(e=>"new-divider"===e.kind);return -1!==n?n:r}(e,n.newDividerBefore):null;null!==t?b.scrollToIndex(t,{align:"center"}):b.scrollToEnd();return}case"scrollToEnd":b.scrollToEnd();return;case"none":return}},[e,t,r,m,l,d,b]);let S=(0,n.useRef)(0);(0,n.useLayoutEffect)(()=>{c&&p&&!l&&S.current!==c&&(S.current=c,f.current={didInitialScroll:!0,didDividerConverge:!0,lastTailId:p},x.current=!0,w.current=!1,b.scrollToEnd())},[l,c,p,b]);let k=(0,n.useRef)(u);(0,n.useLayoutEffect)(()=>{let e=h.current;if(!e)return;let t=u-k.current;k.current=u,0!==t&&(e.scrollTop+=t)},[u]);let C=(0,n.useRef)(0);(0,n.useLayoutEffect)(()=>{let e=h.current;if(!e)return;C.current=e.clientHeight;let t=new ResizeObserver(()=>{let t=C.current,r=e.clientHeight;if(r===t)return;let n=b.isAtEnd(100);C.current=r,n?b.scrollToEnd():e.scrollTop+=t-r});return t.observe(e),()=>t.disconnect()},[b]);let j=b.range?.endIndex??-1,N=b.isAtEnd(100)?0:function(e,t){let r=0;for(let n=t+1;n<e.length;n++)"message"===e[n].kind&&r++;return r}(e,j),E=(0,n.useCallback)(()=>{w.current=!1,x.current=!0,b.scrollToEnd({behavior:"smooth"})},[b]),T=(0,n.useCallback)(()=>{b.isAtEnd(100)&&b.scrollToEnd()},[b]),I=(0,n.useCallback)((t,r="smooth")=>{let n=s(e,t);null!==n&&b.scrollToIndex(n,{align:"center",behavior:r})},[e,b]);return{scrollRef:h,virtualizer:b,belowCount:N,scrollToBottom:E,jumpTo:I,onImageLoad:T}}({items:E,newDividerBefore:r,initialScrollReady:I,hasMoreNewer:h,presentVersion:y,viewerUserId:b,heroHeight:U,heroMeasured:B});(0,n.useEffect)(()=>{if(k)return k(W.current),()=>k(null)},[k,W]);let Q=c({scrollRef:W,hasMore:m,isFetching:f,onLoad:p,edge:"start"}),Z=c({scrollRef:W,hasMore:h,isFetching:g,onLoad:x,edge:"end"}),ee=(0,n.useRef)(null),et=(0,n.useRef)(null),er=(0,n.useCallback)((e,t="smooth")=>{null!==ee.current&&clearTimeout(ee.current),null!==et.current&&window.cancelAnimationFrame(et.current),N(e),G(e,t);let r=0,n=()=>{et.current=null;let t=window.setTimeout(()=>{N(t=>t===e?null:t),ee.current===t&&(ee.current=null)},1600);ee.current=t},l=()=>{let t=W.current,a=t?Array.from(t.querySelectorAll("[data-msg-id]")).find(t=>t.dataset.msgId===e):void 0;if(t&&a){let e=t.getBoundingClientRect(),r=a.getBoundingClientRect();if(r.bottom>e.top&&r.top<e.bottom)return void n()}(r+=1)>=120?n():et.current=window.requestAnimationFrame(l)};et.current=window.requestAnimationFrame(l)},[G,W]);(0,n.useEffect)(()=>()=>{null!==ee.current&&clearTimeout(ee.current),null!==et.current&&window.cancelAnimationFrame(et.current)},[]);let en=(0,n.useRef)(null);(0,n.useEffect)(()=>{if(!d){en.current=null;return}en.current===d||T&&B&&(en.current=d,er(d,"auto"),C?.(d))},[d,T,B,er,C]);let el=!!h,ea=(0,n.useCallback)(()=>{$(!1),F()},[F]);return{items:E,isLoading:_,jumped:j,selectMode:R,selectedIds:L,selectedMessages:z,shareOpen:P,setShareOpen:$,exitSelect:F,closeShare:ea,onEnterSelectId:D,onToggleSelectId:O,heroRef:H,scrollRef:W,virtualizer:K,topSentinelRef:Q,bottomSentinelRef:Z,onImageLoad:Y,jumpTo:er,pillCount:el?(v??J)||0:J,pillMode:el?"jump":"scroll",pillOnClick:el?w??X:X}}(b);return g=()=>(0,r.jsx)(eB,{items:S.items,virtualizer:S.virtualizer,itemKey:e=>e.key,renderItem:e=>(0,r.jsxs)(r.Fragment,{children:["date-divider"===e.kind&&(0,r.jsx)(h,{label:e.label}),"new-divider"===e.kind&&(0,r.jsx)(f,{dateLabel:e.dateLabel}),"message"===e.kind&&(0,r.jsx)("div",{"data-msg-id":e.m.id,"data-testid":m.tid.message(e.m.id),children:(0,r.jsx)(p,{m:e.m,hoverCapable:b.hoverCapable,viewerUserId:b.viewerUserId,pinned:b.pinnedIds?.has(e.m.id),highlighted:S.jumped===e.m.id,onOpenThread:b.onOpenThread,onOpenProfile:b.onOpenProfile,onToggleReactionId:b.onToggleReaction,onReactId:b.onReact,onReplyId:b.onReply,onPinId:b.onPin,onMarkId:b.onMark,onCreateThreadId:b.onCreateThread,onCopyId:b.onCopy,onEditId:e.m.authorId===b.viewerUserId?b.onEdit:void 0,onRetryId:b.onRetry,onDismissId:b.onDismiss,onJumpToId:S.jumpTo,onPreviewImage:b.onPreviewImage,onPreviewAttachment:b.onPreviewAttachment,onDownloadFile:b.onDownloadFile,resolveUserName:b.resolveUserName,onImageLoad:S.onImageLoad,selectMode:S.selectMode,selected:S.selectedIds.has(e.m.id),onToggleSelectId:S.onToggleSelectId,onEnterSelectId:S.onEnterSelectId})})]})}),(0,r.jsxs)("div",{className:"relative flex min-h-0 flex-1 flex-col",children:[(0,r.jsx)(eU,{count:S.isLoading?0:S.pillCount,mode:S.pillMode,onClick:S.pillOnClick}),S.selectMode&&(0,r.jsx)("div",{className:"absolute inset-x-0 bottom-3 z-20 flex justify-center px-4",children:(0,r.jsxs)("div",{className:"flex items-center gap-2 rounded-full border border-border/60 bg-card px-2 py-1.5 shadow-(--e2)",children:[(0,r.jsxs)("span",{className:"px-2 text-sm text-muted-foreground",children:[S.selectedIds.size," selected"]}),(0,r.jsxs)(v.Button,{size:"sm",variant:"ghost",onClick:S.exitSelect,children:[(0,r.jsx)(y.X,{})," Cancel"]}),(0,r.jsxs)(v.Button,{size:"sm",disabled:0===S.selectedIds.size,onClick:()=>S.setShareOpen(!0),children:[(0,r.jsx)(w.ImageIcon,{})," Share ",S.selectedIds.size," as image"]})]})}),S.shareOpen&&S.selectedMessages.length>0&&(0,r.jsx)(ez,{m:S.selectedMessages,open:S.shareOpen,onClose:S.closeShare}),(0,r.jsx)(eH.TypingIndicator,{names:S.isLoading?[]:b.typingUsers??[]}),(0,r.jsx)("div",{ref:S.scrollRef,className:"flex-1 overflow-x-clip overflow-y-auto thin-scrollbar",children:(0,r.jsx)("div",{className:"flex min-h-full flex-col justify-end px-4 py-8",children:S.isLoading?(0,r.jsx)(eq,{variant:b.variant}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{ref:S.heroRef,className:"mb-6",children:b.hasMore?(0,r.jsx)("div",{ref:S.topSentinelRef,className:"flex h-8 items-center justify-center text-xs text-muted-foreground",children:b.isFetchingOlder?"Loading older messages…":""}):b.hero??(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"mb-2 grid size-12 place-items-center rounded-full bg-muted/60",children:(0,r.jsx)(k.ChannelIcon,{className:"text-xl text-muted-foreground"})}),(0,r.jsx)("h2",{className:"text-xl font-semibold leading-tight",children:b.channel}),(0,r.jsx)("p",{className:"mt-2 text-sm text-muted-foreground",children:"Beginning of the channel. Say hello, share what you're working on, or drop a link."})]})}),g(),b.hasMoreNewer&&(0,r.jsx)("div",{ref:S.bottomSentinelRef,className:"mt-6 flex h-8 items-center justify-center text-xs text-muted-foreground",children:b.isFetchingNewer?"Loading newer messages…":""})]})})})]})}],442827)}]);
|