claude-mux 0.26.2 → 0.26.4

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.
Files changed (157) hide show
  1. package/dist/server/ws-handlers.d.ts.map +1 -1
  2. package/dist/server/ws-handlers.js +37 -6
  3. package/dist/server/ws-handlers.js.map +1 -1
  4. package/dist/tmux/pane.d.ts +13 -3
  5. package/dist/tmux/pane.d.ts.map +1 -1
  6. package/dist/tmux/pane.js +113 -36
  7. package/dist/tmux/pane.js.map +1 -1
  8. package/dist/transcript/context-peek.d.ts +18 -0
  9. package/dist/transcript/context-peek.d.ts.map +1 -1
  10. package/dist/transcript/context-peek.js +59 -12
  11. package/dist/transcript/context-peek.js.map +1 -1
  12. package/dist/types/ws-messages.d.ts +6 -0
  13. package/dist/types/ws-messages.d.ts.map +1 -1
  14. package/dist/types/ws-messages.js +2 -0
  15. package/dist/types/ws-messages.js.map +1 -1
  16. package/dist/utils/version.d.ts +1 -1
  17. package/dist/utils/version.js +1 -1
  18. package/dist/web/client/_app/immutable/assets/0.CiLJk_Xe.css +1 -0
  19. package/{web/.svelte-kit/adapter-bun/_app/immutable/assets/_page.XJ3XhAQU.css → dist/web/client/_app/immutable/assets/3.DIECCPxi.css} +1 -1
  20. package/dist/web/client/_app/immutable/chunks/Bjgls5C2.js +2 -0
  21. package/{web/.svelte-kit/output/client/_app/immutable/chunks/Cotx9uI_.js → dist/web/client/_app/immutable/chunks/C8V5fK-3.js} +1 -1
  22. package/dist/web/client/_app/immutable/chunks/DnC9WjQh.js +57 -0
  23. package/dist/web/client/_app/immutable/chunks/MhGpinwS.js +1 -0
  24. package/dist/web/client/_app/immutable/chunks/cJslalWy.js +1 -0
  25. package/dist/web/client/_app/immutable/entry/{app.DXHW0aPL.js → app.tijMyuHe.js} +2 -2
  26. package/dist/web/client/_app/immutable/entry/start.BjUUmuae.js +1 -0
  27. package/dist/web/client/_app/immutable/nodes/{0.DAnv2asW.js → 0.Dh-WcEW1.js} +1 -1
  28. package/dist/web/client/_app/immutable/nodes/{1.CU8f4oNB.js → 1.haoM4e9N.js} +1 -1
  29. package/dist/web/client/_app/immutable/nodes/{2.BYpvCgtu.js → 2.DtC9KdX8.js} +1 -1
  30. package/dist/web/client/_app/immutable/nodes/3.FZTTKJCk.js +168 -0
  31. package/dist/web/client/_app/version.json +1 -1
  32. package/dist/web/server/chunks/{0-C-AAPmon.js → 0-Cw5iP0WY.js} +9 -9
  33. package/dist/web/server/chunks/{0-C-AAPmon.js.map → 0-Cw5iP0WY.js.map} +1 -1
  34. package/dist/web/server/chunks/{1-T_dogl8W.js → 1-CR_g4jt5.js} +3 -3
  35. package/dist/web/server/chunks/{1-T_dogl8W.js.map → 1-CR_g4jt5.js.map} +1 -1
  36. package/dist/web/server/chunks/{2-FlchE_4u.js → 2-Cy0TJi3N.js} +7 -7
  37. package/dist/web/server/chunks/{2-FlchE_4u.js.map → 2-Cy0TJi3N.js.map} +1 -1
  38. package/dist/web/server/chunks/{3-U2bTntXU.js → 3-D9Ui86YT.js} +7 -7
  39. package/dist/web/server/chunks/{3-U2bTntXU.js.map → 3-D9Ui86YT.js.map} +1 -1
  40. package/dist/web/server/chunks/{_layout.svelte-Ddn9Wu-V.js → _layout.svelte-DZ2sqwz3.js} +4 -4
  41. package/dist/web/server/chunks/{_layout.svelte-Ddn9Wu-V.js.map → _layout.svelte-DZ2sqwz3.js.map} +1 -1
  42. package/dist/web/server/chunks/{_page.svelte-_F3qltju.js → _page.svelte--yq9E8Jb.js} +2 -2
  43. package/dist/web/server/chunks/{_page.svelte-_F3qltju.js.map → _page.svelte--yq9E8Jb.js.map} +1 -1
  44. package/dist/web/server/chunks/{_server.ts-CNU4yPZZ.js → _server.ts-BCCIAioG.js} +4 -2
  45. package/dist/web/server/chunks/_server.ts-BCCIAioG.js.map +1 -0
  46. package/dist/web/server/chunks/{_server.ts-CtsPyICr.js → _server.ts-BMZtxwLP.js} +2 -2
  47. package/dist/web/server/chunks/{_server.ts-CtsPyICr.js.map → _server.ts-BMZtxwLP.js.map} +1 -1
  48. package/dist/web/server/chunks/{_server.ts-BBrtrcEt.js → _server.ts-CONr9rjv.js} +2 -2
  49. package/dist/web/server/chunks/{_server.ts-BBrtrcEt.js.map → _server.ts-CONr9rjv.js.map} +1 -1
  50. package/dist/web/server/chunks/{_server.ts-fnuGtMqr.js → _server.ts-CSKVHlMn.js} +3 -3
  51. package/dist/web/server/chunks/{_server.ts-fnuGtMqr.js.map → _server.ts-CSKVHlMn.js.map} +1 -1
  52. package/dist/web/server/chunks/{_server.ts-Df32fD_Q.js → _server.ts-D1PwUVXn.js} +2 -2
  53. package/dist/web/server/chunks/{_server.ts-Df32fD_Q.js.map → _server.ts-D1PwUVXn.js.map} +1 -1
  54. package/dist/web/server/chunks/{_server.ts-C00ejke7.js → _server.ts-D4xa8gs1.js} +2 -2
  55. package/dist/web/server/chunks/{_server.ts-C00ejke7.js.map → _server.ts-D4xa8gs1.js.map} +1 -1
  56. package/dist/web/server/chunks/{_server.ts-C6MJsvPN.js → _server.ts-DxjUBscT.js} +3 -3
  57. package/dist/web/server/chunks/{_server.ts-C6MJsvPN.js.map → _server.ts-DxjUBscT.js.map} +1 -1
  58. package/dist/web/server/chunks/{button-C1GVS_oY.js → button-BxVvCjdl.js} +24 -4
  59. package/dist/web/server/chunks/{button-C1GVS_oY.js.map → button-BxVvCjdl.js.map} +1 -1
  60. package/dist/web/server/chunks/{hooks.server-DG_lyHkY.js → hooks.server-B8dJh24b.js} +3 -3
  61. package/dist/web/server/chunks/{hooks.server-DG_lyHkY.js.map → hooks.server-B8dJh24b.js.map} +1 -1
  62. package/dist/web/server/chunks/{ws-handlers-BQ2RtlNl.js → ws-handlers-fSFiSfwn.js} +150 -43
  63. package/dist/web/server/chunks/ws-handlers-fSFiSfwn.js.map +1 -0
  64. package/dist/web/server/chunks/{ws-managers-DLQiiQnX.js → ws-managers-Cv1gfcBO.js} +2 -2
  65. package/dist/web/server/chunks/{ws-managers-DLQiiQnX.js.map → ws-managers-Cv1gfcBO.js.map} +1 -1
  66. package/dist/web/server/index.js +2 -2
  67. package/dist/web/server/index.js.map +1 -1
  68. package/dist/web/server/manifest.js +17 -17
  69. package/dist/web/server/manifest.js.map +1 -1
  70. package/package.json +1 -1
  71. package/src/server/ws-handlers.ts +35 -6
  72. package/src/tmux/pane.ts +124 -33
  73. package/src/transcript/context-peek.ts +71 -13
  74. package/src/types/ws-messages.ts +2 -0
  75. package/src/utils/version.ts +1 -1
  76. package/tests/tmux/activity-line.test.ts +47 -0
  77. package/tests/tmux/prompt-options.test.ts +49 -4
  78. package/tests/transcript/title-peek.test.ts +54 -0
  79. package/web/.svelte-kit/adapter-bun/.vite/manifest.json +4 -8
  80. package/web/.svelte-kit/adapter-bun/_app/immutable/assets/_layout.6tlxP3iE.css +1 -0
  81. package/{dist/web/client/_app/immutable/assets/3.XJ3XhAQU.css → web/.svelte-kit/adapter-bun/_app/immutable/assets/_page.DIECCPxi.css} +1 -1
  82. package/web/.svelte-kit/adapter-bun/chunks/button.js +24 -1
  83. package/web/.svelte-kit/adapter-bun/chunks/internal2.js +1 -1
  84. package/web/.svelte-kit/adapter-bun/chunks/ws-handlers.js +137 -40
  85. package/web/.svelte-kit/adapter-bun/chunks/ws-managers.js +1 -1
  86. package/web/.svelte-kit/adapter-bun/entries/endpoints/api/projects/new-session/_server.ts.js +3 -1
  87. package/web/.svelte-kit/adapter-bun/entries/endpoints/api/sessions/_server.ts.js +1 -1
  88. package/web/.svelte-kit/adapter-bun/entries/endpoints/api/settings/_server.ts.js +1 -1
  89. package/web/.svelte-kit/adapter-bun/entries/pages/_layout.svelte.js +2 -2
  90. package/web/.svelte-kit/adapter-bun/entries/pages/session/_target_/_page.svelte.js +2 -1
  91. package/web/.svelte-kit/adapter-bun/manifest-full.js +1 -1
  92. package/web/.svelte-kit/adapter-bun/manifest.js +1 -1
  93. package/web/.svelte-kit/adapter-bun/nodes/0.js +2 -2
  94. package/web/.svelte-kit/adapter-bun/nodes/1.js +1 -1
  95. package/web/.svelte-kit/adapter-bun/nodes/2.js +1 -1
  96. package/web/.svelte-kit/adapter-bun/nodes/3.js +2 -2
  97. package/web/.svelte-kit/generated/server/internal.js +1 -1
  98. package/web/.svelte-kit/output/client/.vite/manifest.json +59 -59
  99. package/web/.svelte-kit/output/client/_app/immutable/assets/0.CiLJk_Xe.css +1 -0
  100. package/web/.svelte-kit/output/client/_app/immutable/assets/{3.XJ3XhAQU.css → 3.DIECCPxi.css} +1 -1
  101. package/web/.svelte-kit/output/client/_app/immutable/chunks/Bjgls5C2.js +2 -0
  102. package/{dist/web/client/_app/immutable/chunks/Cotx9uI_.js → web/.svelte-kit/output/client/_app/immutable/chunks/C8V5fK-3.js} +1 -1
  103. package/web/.svelte-kit/output/client/_app/immutable/chunks/DnC9WjQh.js +57 -0
  104. package/web/.svelte-kit/output/client/_app/immutable/chunks/MhGpinwS.js +1 -0
  105. package/web/.svelte-kit/output/client/_app/immutable/chunks/cJslalWy.js +1 -0
  106. package/web/.svelte-kit/output/client/_app/immutable/entry/{app.DXHW0aPL.js → app.tijMyuHe.js} +2 -2
  107. package/web/.svelte-kit/output/client/_app/immutable/entry/start.BjUUmuae.js +1 -0
  108. package/web/.svelte-kit/output/client/_app/immutable/nodes/{0.DAnv2asW.js → 0.Dh-WcEW1.js} +1 -1
  109. package/web/.svelte-kit/output/client/_app/immutable/nodes/{1.CU8f4oNB.js → 1.haoM4e9N.js} +1 -1
  110. package/web/.svelte-kit/output/client/_app/immutable/nodes/{2.BYpvCgtu.js → 2.DtC9KdX8.js} +1 -1
  111. package/web/.svelte-kit/output/client/_app/immutable/nodes/3.FZTTKJCk.js +168 -0
  112. package/web/.svelte-kit/output/client/_app/version.json +1 -1
  113. package/web/.svelte-kit/output/server/.vite/manifest.json +4 -8
  114. package/web/.svelte-kit/output/server/_app/immutable/assets/_layout.6tlxP3iE.css +1 -0
  115. package/web/.svelte-kit/output/server/_app/immutable/assets/{_page.XJ3XhAQU.css → _page.DIECCPxi.css} +1 -1
  116. package/web/.svelte-kit/output/server/chunks/button.js +24 -1
  117. package/web/.svelte-kit/output/server/chunks/internal2.js +1 -1
  118. package/web/.svelte-kit/output/server/chunks/ws-handlers.js +137 -40
  119. package/web/.svelte-kit/output/server/chunks/ws-managers.js +1 -1
  120. package/web/.svelte-kit/output/server/entries/endpoints/api/projects/new-session/_server.ts.js +3 -1
  121. package/web/.svelte-kit/output/server/entries/endpoints/api/sessions/_server.ts.js +1 -1
  122. package/web/.svelte-kit/output/server/entries/endpoints/api/settings/_server.ts.js +1 -1
  123. package/web/.svelte-kit/output/server/entries/pages/_layout.svelte.js +2 -2
  124. package/web/.svelte-kit/output/server/entries/pages/session/_target_/_page.svelte.js +2 -1
  125. package/web/.svelte-kit/output/server/manifest-full.js +1 -1
  126. package/web/.svelte-kit/output/server/manifest.js +1 -1
  127. package/web/.svelte-kit/output/server/nodes/0.js +2 -2
  128. package/web/.svelte-kit/output/server/nodes/1.js +1 -1
  129. package/web/.svelte-kit/output/server/nodes/2.js +1 -1
  130. package/web/.svelte-kit/output/server/nodes/3.js +2 -2
  131. package/web/src/lib/actions/longPress.ts +52 -6
  132. package/web/src/lib/components/AllSessionsPanel.svelte +12 -3
  133. package/web/src/lib/stores/websocket-base.svelte.ts +24 -1
  134. package/web/src/routes/api/projects/new-session/+server.ts +3 -0
  135. package/web/src/routes/session/[target]/+page.svelte +60 -12
  136. package/dist/web/client/_app/immutable/assets/0.DwaaTdPO.css +0 -1
  137. package/dist/web/client/_app/immutable/chunks/1pIWnoD_.js +0 -1
  138. package/dist/web/client/_app/immutable/chunks/DfoR1zCV.js +0 -1
  139. package/dist/web/client/_app/immutable/chunks/DmEI2TOa.js +0 -57
  140. package/dist/web/client/_app/immutable/chunks/DtVU-s3j.js +0 -2
  141. package/dist/web/client/_app/immutable/entry/start.CchjowOg.js +0 -1
  142. package/dist/web/client/_app/immutable/nodes/3.DuMzeRg3.js +0 -168
  143. package/dist/web/server/chunks/_server.ts-CNU4yPZZ.js.map +0 -1
  144. package/dist/web/server/chunks/geometry-CUMMOI9q.js +0 -46
  145. package/dist/web/server/chunks/geometry-CUMMOI9q.js.map +0 -1
  146. package/dist/web/server/chunks/ws-handlers-BQ2RtlNl.js.map +0 -1
  147. package/web/.svelte-kit/adapter-bun/_app/immutable/assets/_layout.Bpy37C6o.css +0 -1
  148. package/web/.svelte-kit/adapter-bun/chunks/geometry.js +0 -32
  149. package/web/.svelte-kit/output/client/_app/immutable/assets/0.DwaaTdPO.css +0 -1
  150. package/web/.svelte-kit/output/client/_app/immutable/chunks/1pIWnoD_.js +0 -1
  151. package/web/.svelte-kit/output/client/_app/immutable/chunks/DfoR1zCV.js +0 -1
  152. package/web/.svelte-kit/output/client/_app/immutable/chunks/DmEI2TOa.js +0 -57
  153. package/web/.svelte-kit/output/client/_app/immutable/chunks/DtVU-s3j.js +0 -2
  154. package/web/.svelte-kit/output/client/_app/immutable/entry/start.CchjowOg.js +0 -1
  155. package/web/.svelte-kit/output/client/_app/immutable/nodes/3.DuMzeRg3.js +0 -168
  156. package/web/.svelte-kit/output/server/_app/immutable/assets/_layout.Bpy37C6o.css +0 -1
  157. package/web/.svelte-kit/output/server/chunks/geometry.js +0 -32
@@ -21,6 +21,7 @@
21
21
  import * as AlertDialog from '$lib/components/ui/alert-dialog';
22
22
  import * as Dialog from '$lib/components/ui/dialog';
23
23
  import * as Popover from '$lib/components/ui/popover';
24
+ import { browser } from '$app/environment';
24
25
  import { longPress } from '$lib/actions/longPress';
25
26
  import ServerPicker from './ServerPicker.svelte';
26
27
  import RenameSessionDialog from './RenameSessionDialog.svelte';
@@ -364,6 +365,14 @@
364
365
  return side === 'a' ? 'A' : side === 'b' ? 'B' : null;
365
366
  }
366
367
 
368
+ /**
369
+ * Rows drag only under a mouse. A finger's long press is the rename (and
370
+ * the agent picker) here, and on the browsers that start a native drag
371
+ * from the same hold the two fight over it — for a split no phone is wide
372
+ * enough to show anyway (see MIN_PANE_PX).
373
+ */
374
+ const canDrag = browser && window.matchMedia('(pointer: fine)').matches;
375
+
367
376
  /** A row leaves as a pane ref; the panes and the page's right edge catch it. */
368
377
  function dragStart(e: DragEvent, machine: Machine, tmuxTarget: string) {
369
378
  if (!e.dataTransfer) return;
@@ -529,12 +538,12 @@
529
538
  class:orch={row.orchestrator}
530
539
  class:inA={tag === 'A'}
531
540
  class:inB={tag === 'B'}
532
- draggable={s.tmux_target ? 'true' : 'false'}
541
+ draggable={canDrag && s.tmux_target ? 'true' : 'false'}
533
542
  ondragstart={(e) => s.tmux_target && dragStart(e, machine, s.tmux_target)}
534
543
  ondragend={dragEnd}
535
544
  onclick={(e) => handleRowClick(e, machine, s)}
536
545
  use:longPress={{ onTrigger: () => { if (machine.local) renameId = s.id; } }}
537
- title={(machine.local ? 'Double-click or long-press to rename' : `On ${machine.server.hostname}`) + ' · ⌥-click or drag to open side by side'}
546
+ title={(machine.local ? 'Double-click or long-press to rename' : `On ${machine.server.hostname}`) + (canDrag ? ' · ⌥-click or drag to open side by side' : '')}
538
547
  >
539
548
  <span class="st"><SessionStateIndicator state={s.state} size="sm" title={s.current_action} /></span>
540
549
  <span class="name">
@@ -581,7 +590,7 @@
581
590
  href="/session/{encodeURIComponent(pane.target)}"
582
591
  class="row tmux"
583
592
  class:cur={isActive}
584
- draggable="true"
593
+ draggable={canDrag ? 'true' : 'false'}
585
594
  ondragstart={(e) => dragStart(e, machine, pane.target)}
586
595
  ondragend={dragEnd}
587
596
  onclick={(e) => { e.preventDefault(); openSession(machine, pane.target, e.altKey); }}
@@ -182,7 +182,27 @@ export abstract class ReliableWebSocket {
182
182
  }, this.config.pingInterval);
183
183
  }
184
184
 
185
+ /** How long a ping sent on returning to the page may go unanswered. */
186
+ private static readonly WAKE_PONG_TIMEOUT = 3000;
187
+ private wakeTimer: ReturnType<typeof setTimeout> | null = null;
188
+
189
+ private expectPong(): void {
190
+ if (this.wakeTimer) clearTimeout(this.wakeTimer);
191
+ const asked = Date.now();
192
+ this.wakeTimer = setTimeout(() => {
193
+ this.wakeTimer = null;
194
+ if (this.ws && this.lastPong < asked) {
195
+ if (import.meta.env.DEV) console.debug(`${this.getLogPrefix()} No pong after wake, forcing reconnect`);
196
+ this.forceReconnect();
197
+ }
198
+ }, ReliableWebSocket.WAKE_PONG_TIMEOUT);
199
+ }
200
+
185
201
  private stopPingTimer(): void {
202
+ if (this.wakeTimer) {
203
+ clearTimeout(this.wakeTimer);
204
+ this.wakeTimer = null;
205
+ }
186
206
  if (this.pingTimer) {
187
207
  clearInterval(this.pingTimer);
188
208
  this.pingTimer = null;
@@ -216,8 +236,11 @@ export abstract class ReliableWebSocket {
216
236
  if (import.meta.env.DEV) console.debug(`${this.getLogPrefix()} Connection lost while hidden, reconnecting`);
217
237
  this.forceReconnect();
218
238
  } else {
219
- // Send a ping to verify connection is alive
239
+ // The socket says open, but a phone that slept may hold one the
240
+ // network has long since dropped, and the regular stale check is up
241
+ // to a ping interval away. Ask now and give up quickly.
220
242
  this.ws.send('ping');
243
+ this.expectPong();
221
244
  }
222
245
  }
223
246
  };
@@ -8,6 +8,7 @@ import { sizeArgsForNewSession } from '$shared/tmux/geometry.js';
8
8
  import { homedir } from 'os';
9
9
  import { join } from 'path';
10
10
  import { projectSlug } from '$shared/utils/slug.js';
11
+ import { broadcastSessions } from '$lib/server/ws-managers.js';
11
12
 
12
13
  /** Pre-trust a workspace directory in ~/.claude.json so Claude skips the trust dialog */
13
14
  function ensureWorkspaceTrusted(cwd: string) {
@@ -86,6 +87,8 @@ export const POST: RequestHandler = async ({ request }) => {
86
87
  state: 'idle',
87
88
  agent: selectedAgent
88
89
  });
90
+ // The sidebar sees the row now, not at the watcher's next poll.
91
+ broadcastSessions();
89
92
 
90
93
  return json({ ok: true, session: sessionName, tmuxTarget, agent: selectedAgent, record });
91
94
  } catch (err) {
@@ -392,7 +392,34 @@
392
392
  * The dialog's "Type something" row is open for typing. The field stays
393
393
  * put then, because what you type is the answer, and the rows step aside.
394
394
  */
395
- const answering = $derived(paneChoice?.typing === true);
395
+ /**
396
+ * The free-text row was just picked here. Highlighting it is what opens
397
+ * it, and the pane will say so on its next tick — but a tap that seems to
398
+ * do nothing gets tapped again, and a second Enter on the open, empty row
399
+ * declines the whole question. So the field takes over at once, and this
400
+ * clears when the pane confirms, the dialog closes, or enough time passes.
401
+ */
402
+ let pendingAnswer = $state(false);
403
+ let pendingAnswerTimer: ReturnType<typeof setTimeout> | null = null;
404
+ const PENDING_ANSWER_MS = 4000;
405
+ function expectTyping() {
406
+ pendingAnswer = true;
407
+ if (pendingAnswerTimer) clearTimeout(pendingAnswerTimer);
408
+ pendingAnswerTimer = setTimeout(() => {
409
+ pendingAnswerTimer = null;
410
+ pendingAnswer = false;
411
+ }, PENDING_ANSWER_MS);
412
+ }
413
+ $effect(() => {
414
+ if (pendingAnswer && (paneChoice === null || paneChoice.typing === true)) {
415
+ pendingAnswer = false;
416
+ if (pendingAnswerTimer) {
417
+ clearTimeout(pendingAnswerTimer);
418
+ pendingAnswerTimer = null;
419
+ }
420
+ }
421
+ });
422
+ const answering = $derived(paneChoice?.typing === true || pendingAnswer);
396
423
 
397
424
  /**
398
425
  * The numbered options the pane is offering, standing in for the field.
@@ -453,6 +480,12 @@
453
480
  const key = e.key === 'Enter' || e.key === 'Escape' ? e.key : ARROW_KEYS[e.key];
454
481
  if (!key) return false;
455
482
  e.preventDefault();
483
+ // Enter on the highlighted free-text row would decline the question:
484
+ // the row is already open, so the field takes over instead.
485
+ if (key === 'Enter' && choice.options.find((o) => o.selected)?.text) {
486
+ expectTyping();
487
+ return true;
488
+ }
456
489
  void sendKeys(key);
457
490
  return true;
458
491
  }
@@ -465,11 +498,18 @@
465
498
  */
466
499
  async function pickOption(n: number) {
467
500
  const options = choice?.options ?? [];
468
- const keys = keysForOptionPick(
469
- options.findIndex((o) => o.selected),
470
- options.findIndex((o) => o.n === n),
471
- options.length
472
- );
501
+ const from = options.findIndex((o) => o.selected);
502
+ const to = options.findIndex((o) => o.n === n);
503
+ // The free-text row opens on the highlight alone; Enter on it while it
504
+ // is still empty declines the question, so the arrows go without it.
505
+ if (options[to]?.text) {
506
+ const move = keysForOptionMove(from, to, options.length);
507
+ if (move === null) return;
508
+ expectTyping();
509
+ if (move) await sendKeys(move);
510
+ return;
511
+ }
512
+ const keys = keysForOptionPick(from, to, options.length);
473
513
  if (keys) await sendKeys(keys);
474
514
  }
475
515
 
@@ -482,11 +522,10 @@
482
522
  */
483
523
  async function highlightOption(n: number) {
484
524
  const options = choice?.options ?? [];
485
- const keys = keysForOptionMove(
486
- options.findIndex((o) => o.selected),
487
- options.findIndex((o) => o.n === n),
488
- options.length
489
- );
525
+ const to = options.findIndex((o) => o.n === n);
526
+ const keys = keysForOptionMove(options.findIndex((o) => o.selected), to, options.length);
527
+ if (keys === null) return;
528
+ if (options[to]?.text) expectTyping();
490
529
  if (keys) await sendKeys(keys);
491
530
  }
492
531
 
@@ -899,6 +938,8 @@
899
938
  await sendText();
900
939
  return;
901
940
  }
941
+ // Nothing typed into the dialog's text row: a bare Enter would decline it.
942
+ if (answering) return;
902
943
  if (emptyEnterTimer) {
903
944
  clearTimeout(emptyEnterTimer);
904
945
  emptyEnterTimer = null;
@@ -947,7 +988,9 @@
947
988
  }
948
989
  const paths = readyPaths;
949
990
  if (!textInput.trim() && paths.length === 0) {
950
- // Empty input: just send Enter key
991
+ // Empty input: just send Enter key — unless the dialog's text row is
992
+ // open, where an empty Enter declines the question.
993
+ if (answering) return;
951
994
  await sendKeys('Enter');
952
995
  return;
953
996
  }
@@ -2875,6 +2918,9 @@
2875
2918
  font-size: 13px;
2876
2919
  line-height: 1.4;
2877
2920
  color: #a8a29e;
2921
+ /* Carried whole from the pane, with the breaks the dialog drew itself. */
2922
+ white-space: pre-line;
2923
+ overflow-wrap: anywhere;
2878
2924
  }
2879
2925
  .optrow {
2880
2926
  display: flex;
@@ -2917,6 +2963,8 @@
2917
2963
  font-size: 11.5px;
2918
2964
  line-height: 1.35;
2919
2965
  color: #78716c;
2966
+ white-space: pre-line;
2967
+ overflow-wrap: anywhere;
2920
2968
  }
2921
2969
  .optrow.sel .optlabel em {
2922
2970
  color: #c8a94a;
@@ -1 +0,0 @@
1
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:"SF Mono", Monaco, "Cascadia Code", monospace;--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-sky-400:oklch(74.6% .16 232.661);--color-fuchsia-400:oklch(74% .238 322.16);--color-stone-100:oklch(97% .001 106.424);--color-stone-400:oklch(70.9% .01 56.259);--color-stone-500:oklch(55.3% .013 58.071);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-lg:32rem;--container-xl:36rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--font-weight-medium:500;--font-weight-semibold:600;--tracking-wide:.025em;--radius-xs:.125rem;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:"SF Mono", Monaco, "Cascadia Code", monospace}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){*{outline-color:color-mix(in oklab,var(--ring) 50%,transparent)}}html{height:100%}body{overscroll-behavior:none;background-color:var(--background);min-height:100%;color:var(--foreground)}}@layer components;@layer utilities{.\@container{container-type:inline-size}.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:0}.end-4{inset-inline-end:calc(var(--spacing) * 4)}.top-4{top:calc(var(--spacing) * 4)}.top-\[50\%\]{top:50%}.left-\[50\%\]{left:50%}.z-50{z-index:50}.z-\[70\]{z-index:70}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.field-sizing-content{field-sizing:content}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-full{width:100%;height:100%}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-\[85dvh\]{height:85dvh}.h-auto{height:auto}.h-full{height:100%}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-\[85dvh\]{max-height:85dvh}.min-h-0{min-height:0}.min-h-11{min-height:calc(var(--spacing) * 11)}.min-h-12{min-height:calc(var(--spacing) * 12)}.min-h-16{min-height:calc(var(--spacing) * 16)}.min-h-24{min-height:calc(var(--spacing) * 24)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-72{width:calc(var(--spacing) * 72)}.w-\[calc\(100\%-1\.5rem\)\]{width:calc(100% - 1.5rem)}.w-\[calc\(100\%-1rem\)\]{width:calc(100% - 1rem)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.max-w-\[280px\]{max-width:280px}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-lg{max-width:var(--container-lg)}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:0}.min-w-11{min-width:calc(var(--spacing) * 11)}.min-w-14{min-width:calc(var(--spacing) * 14)}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.origin-\(--bits-popover-content-transform-origin\){transform-origin:var(--bits-popover-content-transform-origin)}.origin-\(--bits-tooltip-content-transform-origin\){transform-origin:var(--bits-tooltip-content-transform-origin)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[calc\(-50\%-2px\)\]{--tw-translate-y: calc(-50% - 2px) ;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-45{rotate:45deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize{resize:both}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-center{justify-content:center}.gap-0{gap:0}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-4{gap:calc(var(--spacing) * 4)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.rounded{border-radius:.25rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[4px\]{border-radius:4px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xs{border-radius:var(--radius-xs)}.border{border-style:var(--tw-border-style);border-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-s{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-\[\#333\]{border-color:#333}.border-\[\#262626\]{border-color:#262626}.border-input{border-color:var(--input)}.border-transparent{border-color:#0000}.border-s-transparent{border-inline-start-color:#0000}.border-t-transparent{border-top-color:#0000}.bg-\[\#1a1a1a\]{background-color:#1a1a1a}.bg-\[\#2a2a2a\]{background-color:#2a2a2a}.bg-\[\#222\]{background-color:#222}.bg-\[\#161616\]{background-color:#161616}.bg-amber-700{background-color:var(--color-amber-700)}.bg-background{background-color:var(--background)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.bg-border{background-color:var(--border)}.bg-destructive{background-color:var(--destructive)}.bg-emerald-600{background-color:var(--color-emerald-600)}.bg-foreground{background-color:var(--foreground)}.bg-popover{background-color:var(--popover)}.bg-primary{background-color:var(--primary)}.bg-red-900{background-color:var(--color-red-900)}.bg-secondary{background-color:var(--secondary)}.bg-transparent{background-color:#0000}.fill-foreground{fill:var(--foreground)}.p-0{padding:0}.p-1{padding:var(--spacing)}.p-2{padding:calc(var(--spacing) * 2)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-px{padding:1px}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pb-2\.5{padding-bottom:calc(var(--spacing) * 2.5)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:SF Mono,Monaco,Cascadia Code,monospace}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-none{--tw-leading:1;line-height:1}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.14em\]{--tw-tracking:.14em;letter-spacing:.14em}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.text-wrap{text-wrap:wrap}.whitespace-nowrap{white-space:nowrap}.text-\[\#6f6f6f\]{color:#6f6f6f}.text-amber-100{color:var(--color-amber-100)}.text-background{color:var(--background)}.text-current{color:currentColor}.text-emerald-400{color:var(--color-emerald-400)}.text-foreground{color:var(--foreground)}.text-fuchsia-400{color:var(--color-fuchsia-400)}.text-muted-foreground{color:var(--muted-foreground)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-red-300{color:var(--color-red-300)}.text-red-400{color:var(--color-red-400)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-sky-400{color:var(--color-sky-400)}.text-stone-100{color:var(--color-stone-100)}.text-stone-400{color:var(--color-stone-400)}.text-stone-500{color:var(--color-stone-500)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-70{opacity:.7}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-ring\/10{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.ring-ring\/10{--tw-ring-color:color-mix(in oklab, var(--ring) 10%, transparent)}}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.outline-ring\/50{outline-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.outline-ring\/50{outline-color:color-mix(in oklab,var(--ring) 50%,transparent)}}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-none{transition-property:none}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.paused{animation-play-state:paused}.running{animation-play-state:running}.selection\:bg-primary ::selection{background-color:var(--primary)}.selection\:bg-primary::selection{background-color:var(--primary)}.selection\:text-primary-foreground ::selection{color:var(--primary-foreground)}.selection\:text-primary-foreground::selection{color:var(--primary-foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.placeholder\:text-stone-500::placeholder{color:var(--color-stone-500)}@media(hover:hover){.hover\:bg-\[\#222\]:hover{background-color:#222}.hover\:bg-\[\#333\]:hover{background-color:#333}.hover\:bg-\[\#262626\]:hover{background-color:#262626}.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-amber-600:hover{background-color:var(--color-amber-600)}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive) 90%,transparent)}}.hover\:bg-emerald-500:hover{background-color:var(--color-emerald-500)}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary) 90%,transparent)}}.hover\:bg-red-800:hover{background-color:var(--color-red-800)}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-stone-100:hover{color:var(--color-stone-100)}.hover\:text-white:hover{color:var(--color-white)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-4:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.active\:bg-emerald-700:active{background-color:var(--color-emerald-700)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.has-data-\[slot\=kbd\]\:pr-1\.5:has([data-slot=kbd]){padding-right:calc(var(--spacing) * 1.5)}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing) * 2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing) * 3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing) * 4)}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.data-closed\:animate-out[data-closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-closed\:fade-out-0[data-closed]{--tw-exit-opacity:0}.data-closed\:zoom-out-95[data-closed]{--tw-exit-scale:.95}.data-open\:animate-in[data-open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-open\:fade-in-0[data-open]{--tw-enter-opacity:0}.data-open\:zoom-in-95[data-open]{--tw-enter-scale:.95}.data-\[side\=bottom\]\:-translate-x-1\/2[data-side=bottom]{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=bottom\]\:-translate-y-\[calc\(-50\%\+1px\)\][data-side=bottom]{--tw-translate-y: calc((-50% + 1px)*-1) ;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:-translate-y-\[calc\(50\%-3px\)\][data-side=left]{--tw-translate-y: calc((50% - 3px)*-1) ;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=left\]\:slide-in-from-end-2[data-side=left]:where(:dir(ltr),[dir=ltr]){--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=left\]\:slide-in-from-end-2[data-side=left]:where(:dir(rtl),[dir=rtl]){--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:translate-x-\[calc\(50\%\+2px\)\][data-side=right]{--tw-translate-x: calc(50% + 2px) ;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=right\]\:translate-y-1\/2[data-side=right]{--tw-translate-y: 50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=right\]\:slide-in-from-start-2[data-side=right]:where(:dir(ltr),[dir=ltr]){--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=right\]\:slide-in-from-start-2[data-side=right]:where(:dir(rtl),[dir=rtl]){--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:translate-x-1\/2[data-side=top]{--tw-translate-x: 50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=top\]\:translate-y-\[calc\(-50\%\+2px\)\][data-side=top]{--tw-translate-y: calc(-50% + 2px) ;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}:is(.\*\*\:data-\[slot\=kbd\]\:relative *)[data-slot=kbd]{position:relative}:is(.\*\*\:data-\[slot\=kbd\]\:isolate *)[data-slot=kbd]{isolation:isolate}:is(.\*\*\:data-\[slot\=kbd\]\:z-50 *)[data-slot=kbd]{z-index:50}:is(.\*\*\:data-\[slot\=kbd\]\:rounded-sm *)[data-slot=kbd]{border-radius:calc(var(--radius) - 4px)}.data-\[state\=checked\]\:border-primary[data-state=checked]{border-color:var(--primary)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--primary)}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:var(--primary-foreground)}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=delayed-open\]\:animate-in[data-state=delayed-open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=delayed-open\]\:fade-in-0[data-state=delayed-open]{--tw-enter-opacity:0}.data-\[state\=delayed-open\]\:zoom-in-95[data-state=delayed-open]{--tw-enter-scale:.95}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}@media(min-width:40rem){.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:max-w-xl{max-width:var(--container-xl)}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:text-start{text-align:start}}@media(min-width:48rem){.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:bg-destructive\/60:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-destructive\/60:is(.dark *){background-color:color-mix(in oklab,var(--destructive) 60%,transparent)}}.dark\:bg-destructive\/70:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-destructive\/70:is(.dark *){background-color:color-mix(in oklab,var(--destructive) 70%,transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab,var(--input) 30%,transparent)}}.dark\:ring-ring\/20:is(.dark *){--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.dark\:ring-ring\/20:is(.dark *){--tw-ring-color:color-mix(in oklab, var(--ring) 20%, transparent)}}.dark\:outline-ring\/40:is(.dark *){outline-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.dark\:outline-ring\/40:is(.dark *){outline-color:color-mix(in oklab,var(--ring) 40%,transparent)}}@media(hover:hover){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--input) 50%,transparent)}}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:data-\[state\=checked\]\:bg-primary:is(.dark *)[data-state=checked]{background-color:var(--primary)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-\[18px\] svg{width:18px;height:18px}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3>svg{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}@media(hover:hover){a.\[a\&\]\:hover\:bg-accent:hover{background-color:var(--accent)}a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive) 90%,transparent)}}a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary) 90%,transparent)}}a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:color-mix(in oklab,var(--secondary) 90%,transparent)}}a.\[a\&\]\:hover\:text-accent-foreground:hover{color:var(--accent-foreground)}}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--radius:.625rem;--background:oklch(100% 0 0);--foreground:oklch(14.7% .004 49.25);--card:oklch(100% 0 0);--card-foreground:oklch(14.7% .004 49.25);--popover:oklch(100% 0 0);--popover-foreground:oklch(14.7% .004 49.25);--primary:oklch(21.6% .006 56.043);--primary-foreground:oklch(98.5% .001 106.423);--secondary:oklch(97% .001 106.424);--secondary-foreground:oklch(21.6% .006 56.043);--muted:oklch(97% .001 106.424);--muted-foreground:oklch(55.3% .013 58.071);--accent:oklch(97% .001 106.424);--accent-foreground:oklch(21.6% .006 56.043);--destructive:oklch(57.7% .245 27.325);--border:oklch(92.3% .003 48.717);--input:oklch(92.3% .003 48.717);--ring:oklch(70.9% .01 56.259);--chart-1:oklch(64.6% .222 41.116);--chart-2:oklch(60% .118 184.704);--chart-3:oklch(39.8% .07 227.392);--chart-4:oklch(82.8% .189 84.429);--chart-5:oklch(76.9% .188 70.08);--sidebar:oklch(98.5% .001 106.423);--sidebar-foreground:oklch(14.7% .004 49.25);--sidebar-primary:oklch(21.6% .006 56.043);--sidebar-primary-foreground:oklch(98.5% .001 106.423);--sidebar-accent:oklch(97% .001 106.424);--sidebar-accent-foreground:oklch(21.6% .006 56.043);--sidebar-border:oklch(92.3% .003 48.717);--sidebar-ring:oklch(70.9% .01 56.259)}.dark{--background:oklch(14.7% .004 49.25);--foreground:oklch(98.5% .001 106.423);--card:oklch(21.6% .006 56.043);--card-foreground:oklch(98.5% .001 106.423);--popover:oklch(21.6% .006 56.043);--popover-foreground:oklch(98.5% .001 106.423);--primary:oklch(92.3% .003 48.717);--primary-foreground:oklch(21.6% .006 56.043);--secondary:oklch(26.8% .007 34.298);--secondary-foreground:oklch(98.5% .001 106.423);--muted:oklch(26.8% .007 34.298);--muted-foreground:oklch(70.9% .01 56.259);--accent:oklch(26.8% .007 34.298);--accent-foreground:oklch(98.5% .001 106.423);--destructive:oklch(70.4% .191 22.216);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(55.3% .013 58.071);--chart-1:oklch(48.8% .243 264.376);--chart-2:oklch(69.6% .17 162.48);--chart-3:oklch(76.9% .188 70.08);--chart-4:oklch(62.7% .265 303.9);--chart-5:oklch(64.5% .246 16.439);--sidebar:oklch(21.6% .006 56.043);--sidebar-foreground:oklch(98.5% .001 106.423);--sidebar-primary:oklch(48.8% .243 264.376);--sidebar-primary-foreground:oklch(98.5% .001 106.423);--sidebar-accent:oklch(26.8% .007 34.298);--sidebar-accent-foreground:oklch(98.5% .001 106.423);--sidebar-border:oklch(100% 0 0/.1);--sidebar-ring:oklch(55.3% .013 58.071)}.pulse-dot{animation:1.4s ease-in-out infinite claude-mux-pulse}@keyframes claude-mux-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.75)}}@media(prefers-reduced-motion:reduce){.pulse-dot{animation:none}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}.accordion.svelte-18mom4e{border-top:1px solid hsl(var(--border) / .5)}.accordion-header.svelte-18mom4e{display:flex;align-items:center;gap:6px;width:100%;padding:5px 10px;border:none;background:hsl(var(--muted) / .3);color:hsl(var(--muted-foreground));font-family:inherit;font-size:11px;font-weight:500;cursor:pointer;text-align:left;text-transform:uppercase;letter-spacing:.03em}.accordion-header.svelte-18mom4e:hover{background:hsl(var(--muted) / .6);color:hsl(var(--foreground))}.accordion.expanded.svelte-18mom4e .accordion-header:where(.svelte-18mom4e){color:hsl(var(--foreground))}.header-icon.svelte-18mom4e{font-size:13px;opacity:.7}.count.svelte-18mom4e{margin-left:auto;font-size:10px;font-weight:600;color:hsl(var(--muted-foreground));min-width:14px;text-align:center}.accordion-title.svelte-18mom4e{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chevron.svelte-18mom4e{font-size:14px;opacity:.5}.accordion-content.svelte-18mom4e{padding:6px 10px 8px 14px;border-left:2px solid hsl(var(--border) / .3);margin-left:10px}.screenshots-grid.svelte-i8iwb7{display:grid;grid-template-columns:repeat(2,1fr);gap:4px}.screenshot-item.svelte-i8iwb7{position:relative;aspect-ratio:16 / 10;border-radius:4px;overflow:hidden;background:hsl(var(--muted))}.thumbnail.svelte-i8iwb7{display:block;width:100%;height:100%;padding:0;border:none;background:transparent;cursor:pointer}.thumbnail.svelte-i8iwb7 img:where(.svelte-i8iwb7){width:100%;height:100%;object-fit:cover}.thumbnail.svelte-i8iwb7:hover{opacity:.9}.screenshot-item.svelte-i8iwb7 .dismiss-btn{position:absolute;top:4px;right:4px;width:24px;height:24px;background:hsl(var(--background) / .8);border-radius:4px;opacity:0;transition:opacity .15s}.screenshot-item.svelte-i8iwb7:hover .dismiss-btn{opacity:1}.screenshot-item.svelte-i8iwb7 .dismiss-btn:hover{background:hsl(var(--destructive));color:hsl(var(--destructive-foreground))}.empty.svelte-i8iwb7{color:hsl(var(--muted-foreground));font-size:11px;margin:0}.modal-overlay.svelte-i8iwb7{position:fixed;inset:0;z-index:1000;background:#000000e6;display:flex;align-items:center;justify-content:center;padding:16px}.modal-content.svelte-i8iwb7{position:relative;max-width:100%;max-height:100%;display:flex;flex-direction:column;align-items:center;gap:16px;transition:transform .1s ease-out}.modal-image.svelte-i8iwb7{max-width:100%;max-height:calc(100vh - 120px);object-fit:contain;border-radius:8px;box-shadow:0 4px 24px #00000080}.modal-actions.svelte-i8iwb7{display:flex;gap:12px}.modal-actions.svelte-i8iwb7 .modal-btn{display:flex;align-items:center;gap:6px}.swipe-hint.svelte-i8iwb7{display:none;align-items:center;gap:6px;color:hsl(var(--muted-foreground));font-size:12px}@media(max-width:768px){.swipe-hint.svelte-i8iwb7{display:flex}}.empty-text.svelte-p8s4ss{color:hsl(var(--muted-foreground));font-size:11px;margin:0}.queue-list.svelte-p8s4ss{display:flex;flex-direction:column;gap:3px}.queue-item.svelte-p8s4ss{display:flex;align-items:flex-start;gap:3px;padding:4px 6px;background:#1a1a1a;border-radius:4px;border:1px solid #2a2a2a}.queue-item-content.svelte-p8s4ss{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.queue-text.svelte-p8s4ss{font-size:11px;color:#ccc;word-break:break-word;line-height:1.3}.queue-time.svelte-p8s4ss{font-size:9px;color:#666}.queue-tag.svelte-p8s4ss{margin-left:4px;padding:0 4px;border-radius:3px;background:#2a2a2a;color:#888}.queue-item-actions.svelte-p8s4ss{display:flex;gap:1px;flex-shrink:0}.queue-btn.svelte-p8s4ss{display:flex;align-items:center;justify-content:center;width:18px;height:18px;border:none;border-radius:3px;background:transparent;color:#888;cursor:pointer;padding:0}.queue-btn.svelte-p8s4ss:hover:not(:disabled){background:#333;color:#ccc}.queue-btn.svelte-p8s4ss:disabled{opacity:.3;cursor:default}.queue-btn-delete.svelte-p8s4ss:hover:not(:disabled){background:#3a1a1a;color:#e74c3c}.clear-all.svelte-p8s4ss{display:block;width:100%;margin-top:4px;padding:3px;border:none;border-radius:3px;background:transparent;color:#888;font-size:10px;cursor:pointer;text-align:center}.clear-all.svelte-p8s4ss:hover{background:#3a1a1a;color:#e74c3c}.sidebar-meters.svelte-uooa92{padding:8px 12px;border-top:1px solid hsl(var(--border));background:hsl(var(--background))}.strip.svelte-uooa92{display:flex;align-items:flex-end;flex-wrap:wrap;gap:6px 10px;text-decoration:none;color:inherit;margin:-4px -6px;padding:4px 6px;border-radius:6px}.strip.svelte-uooa92:hover{background:#ffffff08}.group.svelte-uooa92{display:flex;align-items:flex-end;gap:3px;min-width:0}.spark.svelte-uooa92{flex:1 1 auto;min-width:96px;flex-direction:column;align-items:stretch;gap:3px}.ticks.svelte-uooa92{display:flex;align-items:flex-end;gap:1px;height:26px}.ticks.svelte-uooa92 .track:where(.svelte-uooa92){flex:1 1 0;min-width:2px;background:transparent}.col.svelte-uooa92{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:21px}.val.svelte-uooa92{font-size:9px;line-height:1;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.val.spend.svelte-uooa92{font-size:11px;color:hsl(var(--foreground))}.line.svelte-uooa92{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.track.svelte-uooa92{position:relative;display:block;width:7px;height:26px;border-radius:2px;background:#ffffff14;overflow:hidden}.fill.svelte-uooa92{position:absolute;left:0;right:0;bottom:0;border-radius:2px;transition:height .6s ease}.tag.svelte-uooa92{font-size:9px;line-height:1;text-transform:uppercase;letter-spacing:.04em;color:#a8a29e;white-space:nowrap}.awake-row.svelte-uooa92{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:11px;color:hsl(var(--muted-foreground));cursor:pointer;user-select:none}.awake-row.svelte-uooa92 input:where(.svelte-uooa92){margin:0;cursor:pointer}.split.svelte-qscfzl{display:grid;height:100%;min-height:0;min-width:0}.pane.svelte-qscfzl{position:relative;min-width:0;min-height:0;overflow:hidden}.pane.hidden.svelte-qscfzl{display:none}iframe.svelte-qscfzl{display:block;width:100%;height:100%;border:0;background:#0a0a0a}.divider.svelte-qscfzl{background:#1f1f21;position:relative;cursor:col-resize;touch-action:none}.divider.hidden.svelte-qscfzl{display:none}.divider.svelte-qscfzl:after{content:"";position:absolute;left:1px;right:1px;top:50%;height:40px;transform:translateY(-50%);border-radius:2px;background:#2a2a2c}.divider.svelte-qscfzl:hover:after,.split.resizing.svelte-qscfzl .divider:where(.svelte-qscfzl):after{background:#f59e0b}.shield.svelte-qscfzl{position:absolute;inset:0}.drop.svelte-qscfzl{position:absolute;inset:10px 10px 110px;display:grid;place-items:center;border:2px dashed #818cf8;border-radius:12px;background:#818cf81a;color:#a5b4fc;font:500 13px system-ui,sans-serif}.unreachable.svelte-qscfzl{height:100%;display:grid;place-content:center;justify-items:center;gap:8px;color:#a8a29e;font:14px system-ui,sans-serif}.unreachable.svelte-qscfzl iconify-icon:where(.svelte-qscfzl){font-size:28px;color:#6b6764}.unreachable.svelte-qscfzl b:where(.svelte-qscfzl){color:#e7e5e4;font-weight:500}.unreachable.svelte-qscfzl button:where(.svelte-qscfzl){height:30px;padding:0 12px;border:1px solid #2a2a2c;border-radius:8px;background:#151516;color:#d6d3d1;cursor:pointer}body{margin:0;min-height:100dvh;background:#111}iconify-icon{font-size:18px}iconify-icon.spin{animation:svelte-12qhfyh-spin 1s linear infinite}@keyframes svelte-12qhfyh-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.app-shell.svelte-12qhfyh{display:flex;height:100dvh;overflow:hidden;box-sizing:border-box;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.app-shell.resizing-any.svelte-12qhfyh{cursor:col-resize;user-select:none}.sidebar.svelte-12qhfyh{width:var(--sidebar-width, 300px);flex-shrink:0;background:hsl(var(--background));border-right:1px solid hsl(var(--border));overflow:hidden;position:relative;display:flex;flex-direction:column}.sidebar.resizing.svelte-12qhfyh{user-select:none}.sidebar-content.svelte-12qhfyh{display:flex;flex-direction:column;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden}.sidebar-panel.svelte-12qhfyh{flex-shrink:0}.split-drop.svelte-12qhfyh{position:absolute;top:12px;right:12px;bottom:12px;width:min(38%,420px);display:grid;place-items:center;border:2px dashed #818cf8;border-radius:12px;background:#818cf81a;color:#a5b4fc;font:500 13px system-ui,sans-serif;z-index:30}.sidebar-foot.svelte-12qhfyh{flex-shrink:0;margin:0 10px 10px;background:#151516;border:1px solid #2a2a2c;border-radius:14px;overflow:hidden}.sidebar-foot.svelte-12qhfyh .sidebar-panel:where(.svelte-12qhfyh)+.sidebar-panel:where(.svelte-12qhfyh),.sidebar-foot.svelte-12qhfyh .sidebar-panel:where(.svelte-12qhfyh)+*{border-top:1px solid #1f1f21}.resize-handle.svelte-12qhfyh{position:absolute;top:0;right:0;width:4px;height:100%;cursor:col-resize;background:transparent;transition:background .15s}.resize-handle.svelte-12qhfyh:hover,.sidebar.resizing.svelte-12qhfyh .resize-handle:where(.svelte-12qhfyh){background:color-mix(in oklch,var(--primary),transparent 50%)}.content.svelte-12qhfyh{flex:1;overflow:hidden;position:relative}.embed-shell.svelte-12qhfyh{height:100dvh;overflow:hidden;position:relative}.backdrop.svelte-12qhfyh{display:none}@media(max-width:768px){.sidebar.svelte-12qhfyh{position:fixed;left:0;top:0;bottom:0;width:100%!important;box-sizing:border-box;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);z-index:60;transform:translate(-100%);transition:transform .2s ease;background:hsl(var(--background) / .85);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.sidebar.svelte-12qhfyh:not(.open){content-visibility:hidden}.sidebar.open.svelte-12qhfyh{transform:translate(0)}.resize-handle.svelte-12qhfyh{display:none}.backdrop.svelte-12qhfyh{display:block;position:fixed;inset:0;background:#0006;z-index:55;border:none;cursor:pointer}}
@@ -1 +0,0 @@
1
- import{c as lt,a as c,o as Ve,p as Le,f as w,d as yr,s as E,b as dt,t as zt,e as We}from"./BuvGONG-.js";import{l as _,j as e,k as l,v as Ce,aa as m,u as Ct,O as Ie,p as gt,f as C,g as _t,y as Lt,a7 as Ps,m as $,n as x,a8 as _r,q as d,o as vt,t as R,ab as Dt,a9 as $s}from"./RhyL4cOo.js";import{i as A,p as ot,r as Et,c as At,b as sr,s as Ts,a as Cs}from"./ukOf9Kzz.js";import{j as ke,b as $t,s as tt,e as Ft,d as Tt,r as es,k as ks,a as je}from"./BpsTpPGB.js";import{c as st}from"./CjMoR7Dp.js";import{s as It,b as pt,c as xr,R as Ns,d as qs,i as Rs,A as Ds,o as zs,w as rs,e as Pt,a as Qt,f as wr,C as Ue,g as ge,D as As,u as Es,h as Os,j as Ms,m as te,k as Ws,l as He,P as ss,n as os,q as ns,r as is,v as as,x as ls,y as cs,z as js,B as Ur,E as us,F as hs,G as Vs,H as Is,I as mr,J as Ls,K as Us,L as Hr,M as Fr,N as Hs,O as Fs,Q as Ys,T as Bs,U as Xs,V as Ks,W as Js,X as Gs,Y as Zs,Z as br,_ as gr,$ as Qs,a0 as er,a1 as Yr,a2 as to,a3 as Br,a4 as eo,S as ro,p as so}from"./DmEI2TOa.js";import{g as Sr}from"./DtVU-s3j.js";const Xr=xr("claude-mux-machine","all");class oo extends Ns{constructor(t){super(),this.server=t}server;#t=_(Ce([]));get sessions(){return e(this.#t)}set sessions(t){l(this.#t,t,!0)}#e=_(Ce([]));get projects(){return e(this.#e)}set projects(t){l(this.#e,t,!0)}connect(){this.doConnect()}disconnect(){this.doDisconnect()}getWsUrl(){const t=new URL(this.server.url);return t.protocol=t.protocol==="https:"?"wss:":"ws:",t.pathname="/api/sessions/stream",t.search="",t.toString()}getLogPrefix(){return`[fleet:${this.server.hostname}]`}handleMessage(t){let r;try{r=JSON.parse(t.data)}catch{return}const o=qs.safeParse(r);if(!o.success)return;const i=o.data;i.type!=="sessions"&&i.type!=="connected"||(this.sessions=i.sessions,i.projects&&(this.projects=i.projects))}}class no{#t=_("all");get selected(){return e(this.#t)}set selected(t){l(this.#t,t,!0)}#e=_(Ce([]));get remotes(){return e(this.#e)}set remotes(t){l(this.#e,t,!0)}started=!1;#r=m(()=>{const t={server:{hostname:pt.self||pt.current.hostname,url:pt.current.url},local:!0,connected:It.connected,sessions:It.sessions,projects:It.savedProjects},r=this.remotes.map(o=>({server:o.server,local:!1,connected:o.connected,sessions:o.sessions,projects:o.projects})).sort((o,i)=>o.server.hostname.localeCompare(i.server.hostname));return[t,...r]});get machines(){return e(this.#r)}set machines(t){l(this.#r,t)}#s=m(()=>this.selected==="all"?this.machines:this.machines.filter(t=>t.server.hostname===this.selected));get visible(){return e(this.#s)}set visible(t){l(this.#s,t)}#o=m(()=>this.machines.length>1);get fleet(){return e(this.#o)}set fleet(t){l(this.#o,t)}start(){this.started||(this.started=!0,this.selected=Xr.load(),pt.init(),pt.refresh())}sync(){const t=pt.current.hostname,r=pt.self,o=pt.servers.filter(u=>u.hostname&&u.url&&u.hostname!==t&&u.hostname!==r),i=new Map(this.remotes.map(u=>[u.server.hostname,u]));let v=!1;for(const u of o){const p=i.get(u.hostname);if(p&&p.server.url===u.url)continue;p&&p.disconnect();const b=new oo(u);b.connect(),i.set(u.hostname,b),v=!0}for(const[u,p]of i)o.some(b=>b.hostname===u)||(p.disconnect(),i.delete(u),v=!0);v&&(this.remotes=[...i.values()])}select(t){this.selected=t,Xr.save(t)}}const Vt=new no;function io(a,t){if(Rs(a)){const o=a();return o===void 0?t:o}return a===void 0?t:a}function ir(a,t){let r=_(null);const o=m(()=>io(t,250));function i(...v){if(e(r))e(r).timeout&&clearTimeout(e(r).timeout);else{let u,p;const b=new Promise((y,S)=>{u=y,p=S});l(r,{timeout:null,runner:null,promise:b,resolve:u,reject:p},!0)}return e(r).runner=async()=>{if(!e(r))return;const u=e(r);l(r,null);try{u.resolve(await a.apply(this,v))}catch(p){u.reject(p)}},e(r).timeout=setTimeout(e(r).runner,e(o)),e(r).promise}return i.cancel=async()=>{(!e(r)||e(r).timeout===null)&&(await new Promise(v=>setTimeout(v,0)),!e(r)||e(r).timeout===null)||(clearTimeout(e(r).timeout),e(r).reject("Cancelled"),l(r,null))},i.runScheduledNow=async()=>{(!e(r)||!e(r).timeout)&&(await new Promise(v=>setTimeout(v,0)),!e(r)||!e(r).timeout)||(clearTimeout(e(r).timeout),e(r).timeout=null,await e(r).runner?.())},Object.defineProperty(i,"pending",{enumerable:!0,get(){return!!e(r)?.timeout}}),i}class Pr{#t=_(!1);constructor(){Ct(()=>(Ie(()=>l(this.#t,!0)),()=>{l(this.#t,!1)}))}get current(){return e(this.#t)}}class Ne{#t;#e;constructor(t,r){this.#t=t,this.#e=r,this.handler=this.handler.bind(this),Ct(this.handler)}handler(){let t=0;const r=this.#t();if(!r)return;const o=new ResizeObserver(()=>{cancelAnimationFrame(t),t=window.requestAnimationFrame(this.#e)});return o.observe(r),()=>{window.cancelAnimationFrame(t),o.unobserve(r)}}}class ao{opts;present;#t;#e=_(!1);#r=!1;#s=_(void 0);#o=null;constructor(t){this.opts=t,this.present=this.opts.open,l(this.#e,t.open.current,!0),this.#t=new Ds({ref:this.opts.ref,afterTick:this.opts.open}),zs(()=>this.#i()),rs(()=>this.present.current,r=>{if(!this.#r){this.#r=!0;return}this.#i(),r&&l(this.#e,!0),l(this.#s,r?"starting":"ending",!0),r&&(this.#o=window.requestAnimationFrame(()=>{this.#o=null,this.present.current&&l(this.#s,void 0)})),this.#t.run(()=>{r===this.present.current&&(r||l(this.#e,!1),l(this.#s,void 0))})})}#n=m(()=>e(this.#e));get isPresent(){return e(this.#n)}set isPresent(t){l(this.#n,t)}get transitionStatus(){return e(this.#s)}#i(){this.#o!==null&&(window.cancelAnimationFrame(this.#o),this.#o=null)}}function ar(a,t){gt(t,!0);const r=new ao({open:Pt(()=>t.open),ref:t.ref});var o=lt(),i=C(o);{var v=u=>{var p=lt(),b=C(p);Qt(b,()=>t.presence??Lt,()=>({present:r.isPresent,transitionStatus:r.transitionStatus})),c(u,p)};A(i,u=>{(t.forceMount||t.open||r.isPresent)&&u(v)})}c(a,o),_t()}function lo(a,t,r){return Math.min(r,Math.max(t,a))}class co{state;#t;constructor(t,r){this.state=wr(t),this.#t=r,this.dispatch=this.dispatch.bind(this)}#e(t){return this.#t[this.state.current][t]??this.state.current}dispatch(t){this.state.current=this.#e(t)}}const Fe=Os({component:"scroll-area",parts:["root","viewport","corner","thumb","scrollbar"]}),Ye=new Ue("ScrollArea.Root"),Be=new Ue("ScrollArea.Scrollbar"),lr=new Ue("ScrollArea.ScrollbarVisible"),$r=new Ue("ScrollArea.ScrollbarAxis"),ds=new Ue("ScrollArea.ScrollbarShared");class Tr{static create(t){return Ye.set(new Tr(t))}opts;attachment;#t=_(null);get scrollAreaNode(){return e(this.#t)}set scrollAreaNode(t){l(this.#t,t,!0)}#e=_(null);get viewportNode(){return e(this.#e)}set viewportNode(t){l(this.#e,t,!0)}#r=_(null);get contentNode(){return e(this.#r)}set contentNode(t){l(this.#r,t,!0)}#s=_(null);get scrollbarXNode(){return e(this.#s)}set scrollbarXNode(t){l(this.#s,t,!0)}#o=_(null);get scrollbarYNode(){return e(this.#o)}set scrollbarYNode(t){l(this.#o,t,!0)}#n=_(0);get cornerWidth(){return e(this.#n)}set cornerWidth(t){l(this.#n,t,!0)}#i=_(0);get cornerHeight(){return e(this.#i)}set cornerHeight(t){l(this.#i,t,!0)}#a=_(!1);get scrollbarXEnabled(){return e(this.#a)}set scrollbarXEnabled(t){l(this.#a,t,!0)}#l=_(!1);get scrollbarYEnabled(){return e(this.#l)}set scrollbarYEnabled(t){l(this.#l,t,!0)}domContext;constructor(t){this.opts=t,this.attachment=ge(t.ref,r=>this.scrollAreaNode=r),this.domContext=new As(t.ref)}#c=m(()=>({id:this.opts.id.current,dir:this.opts.dir.current,style:{position:"relative","--bits-scroll-area-corner-height":`${this.cornerHeight}px`,"--bits-scroll-area-corner-width":`${this.cornerWidth}px`},[Fe.root]:"",...this.attachment}));get props(){return e(this.#c)}set props(t){l(this.#c,t)}}class Cr{static create(t){return new Cr(t,Ye.get())}opts;root;attachment;#t=wr(Es());#e=wr(null);contentAttachment=ge(this.#e,t=>this.root.contentNode=t);constructor(t,r){this.opts=t,this.root=r,this.attachment=ge(t.ref,o=>this.root.viewportNode=o)}#r=m(()=>({id:this.opts.id.current,style:{overflowX:this.root.scrollbarXEnabled?"scroll":"hidden",overflowY:this.root.scrollbarYEnabled?"scroll":"hidden"},[Fe.viewport]:"",...this.attachment}));get props(){return e(this.#r)}set props(t){l(this.#r,t)}#s=m(()=>({id:this.#t.current,"data-scroll-area-content":"",style:{minWidth:this.root.scrollbarXEnabled?"fit-content":void 0},...this.contentAttachment}));get contentProps(){return e(this.#s)}set contentProps(t){l(this.#s,t)}}class kr{static create(t){return Be.set(new kr(t,Ye.get()))}opts;root;#t=m(()=>this.opts.orientation.current==="horizontal");get isHorizontal(){return e(this.#t)}set isHorizontal(t){l(this.#t,t)}#e=_(!1);get hasThumb(){return e(this.#e)}set hasThumb(t){l(this.#e,t,!0)}constructor(t,r){this.opts=t,this.root=r,rs(()=>this.isHorizontal,o=>o?(this.root.scrollbarXEnabled=!0,()=>{this.root.scrollbarXEnabled=!1}):(this.root.scrollbarYEnabled=!0,()=>{this.root.scrollbarYEnabled=!1}))}}class Nr{static create(){return new Nr(Be.get())}scrollbar;root;#t=_(!1);get isVisible(){return e(this.#t)}set isVisible(t){l(this.#t,t,!0)}constructor(t){this.scrollbar=t,this.root=t.root,Ct(()=>{const r=this.root.scrollAreaNode,o=this.root.opts.scrollHideDelay.current;let i=0;if(!r)return;const v=()=>{this.root.domContext.clearTimeout(i),Ie(()=>this.isVisible=!0)},u=()=>{i&&this.root.domContext.clearTimeout(i),i=this.root.domContext.setTimeout(()=>{Ie(()=>{this.scrollbar.hasThumb=!1,this.isVisible=!1})},o)},p=Ms(Ve(r,"pointerenter",v),Ve(r,"pointerleave",u));return()=>{this.root.domContext.getWindow().clearTimeout(i),p()}})}#e=m(()=>({"data-state":this.isVisible?"visible":"hidden"}));get props(){return e(this.#e)}set props(t){l(this.#e,t)}}class qr{static create(){return new qr(Be.get())}scrollbar;root;machine=new co("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});#t=m(()=>this.machine.state.current==="hidden");get isHidden(){return e(this.#t)}set isHidden(t){l(this.#t,t)}constructor(t){this.scrollbar=t,this.root=t.root;const r=ir(()=>this.machine.dispatch("SCROLL_END"),100);Ct(()=>{const o=this.machine.state.current,i=this.root.opts.scrollHideDelay.current;if(o==="idle"){const v=this.root.domContext.setTimeout(()=>this.machine.dispatch("HIDE"),i);return()=>this.root.domContext.clearTimeout(v)}}),Ct(()=>{const o=this.root.viewportNode;if(!o)return;const i=this.scrollbar.isHorizontal?"scrollLeft":"scrollTop";let v=o[i];return Ve(o,"scroll",()=>{const b=o[i];v!==b&&(this.machine.dispatch("SCROLL"),r()),v=b})}),this.onpointerenter=this.onpointerenter.bind(this),this.onpointerleave=this.onpointerleave.bind(this)}onpointerenter(t){this.machine.dispatch("POINTER_ENTER")}onpointerleave(t){this.machine.dispatch("POINTER_LEAVE")}#e=m(()=>({"data-state":this.machine.state.current==="hidden"?"hidden":"visible",onpointerenter:this.onpointerenter,onpointerleave:this.onpointerleave}));get props(){return e(this.#e)}set props(t){l(this.#e,t)}}class cr{static create(){return new cr(Be.get())}scrollbar;root;#t=_(!1);get isVisible(){return e(this.#t)}set isVisible(t){l(this.#t,t,!0)}constructor(t){this.scrollbar=t,this.root=t.root;const r=ir(()=>{const o=this.root.viewportNode;if(!o)return;const i=o.offsetWidth<o.scrollWidth,v=o.offsetHeight<o.scrollHeight;this.isVisible=this.scrollbar.isHorizontal?i:v},10);new Ne(()=>this.root.viewportNode,r),new Ne(()=>this.root.contentNode,r)}#e=m(()=>({"data-state":this.isVisible?"visible":"hidden"}));get props(){return e(this.#e)}set props(t){l(this.#e,t)}}class Rr{static create(){return lr.set(new Rr(Be.get()))}scrollbar;root;#t=_(null);get thumbNode(){return e(this.#t)}set thumbNode(t){l(this.#t,t,!0)}#e=_(0);get pointerOffset(){return e(this.#e)}set pointerOffset(t){l(this.#e,t,!0)}#r=_({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}});get sizes(){return e(this.#r)}set sizes(t){l(this.#r,t)}#s=m(()=>vs(this.sizes.viewport,this.sizes.content));get thumbRatio(){return e(this.#s)}set thumbRatio(t){l(this.#s,t)}#o=m(()=>this.thumbRatio>0&&this.thumbRatio<1);get hasThumb(){return e(this.#o)}set hasThumb(t){l(this.#o,t)}#n=_("");get prevTransformStyle(){return e(this.#n)}set prevTransformStyle(t){l(this.#n,t,!0)}constructor(t){this.scrollbar=t,this.root=t.root,Ct(()=>{this.scrollbar.hasThumb=this.hasThumb}),Ct(()=>{!this.scrollbar.hasThumb&&this.thumbNode&&(this.prevTransformStyle=this.thumbNode.style.transform)})}setSizes(t){this.sizes=t}getScrollPosition(t,r){return uo({pointerPos:t,pointerOffset:this.pointerOffset,sizes:this.sizes,dir:r})}onThumbPointerUp(){this.pointerOffset=0}onThumbPointerDown(t){this.pointerOffset=t}xOnThumbPositionChange(){if(!(this.root.viewportNode&&this.thumbNode))return;const t=this.root.viewportNode.scrollLeft,o=`translate3d(${Kr({scrollPos:t,sizes:this.sizes,dir:this.root.opts.dir.current})}px, 0, 0)`;this.thumbNode.style.transform=o,this.prevTransformStyle=o}xOnWheelScroll(t){this.root.viewportNode&&(this.root.viewportNode.scrollLeft=t)}xOnDragScroll(t){this.root.viewportNode&&(this.root.viewportNode.scrollLeft=this.getScrollPosition(t,this.root.opts.dir.current))}yOnThumbPositionChange(){if(!(this.root.viewportNode&&this.thumbNode))return;const t=this.root.viewportNode.scrollTop,o=`translate3d(0, ${Kr({scrollPos:t,sizes:this.sizes})}px, 0)`;this.thumbNode.style.transform=o,this.prevTransformStyle=o}yOnWheelScroll(t){this.root.viewportNode&&(this.root.viewportNode.scrollTop=t)}yOnDragScroll(t){this.root.viewportNode&&(this.root.viewportNode.scrollTop=this.getScrollPosition(t,this.root.opts.dir.current))}}class Dr{static create(t){return $r.set(new Dr(t,lr.get()))}opts;scrollbarVis;root;scrollbar;attachment;#t=_();get computedStyle(){return e(this.#t)}set computedStyle(t){l(this.#t,t,!0)}constructor(t,r){this.opts=t,this.scrollbarVis=r,this.root=r.root,this.scrollbar=r.scrollbar,this.attachment=ge(this.scrollbar.opts.ref,o=>this.root.scrollbarXNode=o),Ct(()=>{this.scrollbar.opts.ref.current&&this.opts.mounted.current&&(this.computedStyle=getComputedStyle(this.scrollbar.opts.ref.current))}),Ct(()=>{this.onResize()})}onThumbPointerDown=t=>{this.scrollbarVis.onThumbPointerDown(t.x)};onDragScroll=t=>{this.scrollbarVis.xOnDragScroll(t.x)};onThumbPointerUp=()=>{this.scrollbarVis.onThumbPointerUp()};onThumbPositionChange=()=>{this.scrollbarVis.xOnThumbPositionChange()};onWheelScroll=(t,r)=>{if(!this.root.viewportNode)return;const o=this.root.viewportNode.scrollLeft+t.deltaX;this.scrollbarVis.xOnWheelScroll(o),ps(o,r)&&t.preventDefault()};onResize=()=>{this.scrollbar.opts.ref.current&&this.root.viewportNode&&this.computedStyle&&this.scrollbarVis.setSizes({content:this.root.viewportNode.scrollWidth,viewport:this.root.viewportNode.offsetWidth,scrollbar:{size:this.scrollbar.opts.ref.current.clientWidth,paddingStart:or(this.computedStyle.paddingLeft),paddingEnd:or(this.computedStyle.paddingRight)}})};#e=m(()=>ur(this.scrollbarVis.sizes));get thumbSize(){return e(this.#e)}set thumbSize(t){l(this.#e,t)}#r=m(()=>({id:this.scrollbar.opts.id.current,"data-orientation":"horizontal",style:{bottom:0,left:this.root.opts.dir.current==="rtl"?"var(--bits-scroll-area-corner-width)":0,right:this.root.opts.dir.current==="ltr"?"var(--bits-scroll-area-corner-width)":0,"--bits-scroll-area-thumb-width":`${this.thumbSize}px`},...this.attachment}));get props(){return e(this.#r)}set props(t){l(this.#r,t)}}class zr{static create(t){return $r.set(new zr(t,lr.get()))}opts;scrollbarVis;root;scrollbar;attachment;#t=_();get computedStyle(){return e(this.#t)}set computedStyle(t){l(this.#t,t,!0)}constructor(t,r){this.opts=t,this.scrollbarVis=r,this.root=r.root,this.scrollbar=r.scrollbar,this.attachment=ge(this.scrollbar.opts.ref,o=>this.root.scrollbarYNode=o),Ct(()=>{this.scrollbar.opts.ref.current&&this.opts.mounted.current&&(this.computedStyle=getComputedStyle(this.scrollbar.opts.ref.current))}),Ct(()=>{this.onResize()}),this.onThumbPointerDown=this.onThumbPointerDown.bind(this),this.onDragScroll=this.onDragScroll.bind(this),this.onThumbPointerUp=this.onThumbPointerUp.bind(this),this.onThumbPositionChange=this.onThumbPositionChange.bind(this),this.onWheelScroll=this.onWheelScroll.bind(this),this.onResize=this.onResize.bind(this)}onThumbPointerDown(t){this.scrollbarVis.onThumbPointerDown(t.y)}onDragScroll(t){this.scrollbarVis.yOnDragScroll(t.y)}onThumbPointerUp(){this.scrollbarVis.onThumbPointerUp()}onThumbPositionChange(){this.scrollbarVis.yOnThumbPositionChange()}onWheelScroll(t,r){if(!this.root.viewportNode)return;const o=this.root.viewportNode.scrollTop+t.deltaY;this.scrollbarVis.yOnWheelScroll(o),ps(o,r)&&t.preventDefault()}onResize(){this.scrollbar.opts.ref.current&&this.root.viewportNode&&this.computedStyle&&this.scrollbarVis.setSizes({content:this.root.viewportNode.scrollHeight,viewport:this.root.viewportNode.offsetHeight,scrollbar:{size:this.scrollbar.opts.ref.current.clientHeight,paddingStart:or(this.computedStyle.paddingTop),paddingEnd:or(this.computedStyle.paddingBottom)}})}#e=m(()=>ur(this.scrollbarVis.sizes));get thumbSize(){return e(this.#e)}set thumbSize(t){l(this.#e,t)}#r=m(()=>({id:this.scrollbar.opts.id.current,"data-orientation":"vertical",style:{top:0,right:this.root.opts.dir.current==="ltr"?0:void 0,left:this.root.opts.dir.current==="rtl"?0:void 0,bottom:"var(--bits-scroll-area-corner-height)","--bits-scroll-area-thumb-height":`${this.thumbSize}px`},...this.attachment}));get props(){return e(this.#r)}set props(t){l(this.#r,t)}}class Ar{static create(){return ds.set(new Ar($r.get()))}scrollbarState;root;scrollbarVis;scrollbar;#t=_(null);get rect(){return e(this.#t)}set rect(t){l(this.#t,t)}#e=_("");get prevWebkitUserSelect(){return e(this.#e)}set prevWebkitUserSelect(t){l(this.#e,t,!0)}handleResize;handleThumbPositionChange;handleWheelScroll;handleThumbPointerDown;handleThumbPointerUp;#r=m(()=>this.scrollbarVis.sizes.content-this.scrollbarVis.sizes.viewport);get maxScrollPos(){return e(this.#r)}set maxScrollPos(t){l(this.#r,t)}constructor(t){this.scrollbarState=t,this.root=t.root,this.scrollbarVis=t.scrollbarVis,this.scrollbar=t.scrollbarVis.scrollbar,this.handleResize=ir(()=>this.scrollbarState.onResize(),10),this.handleThumbPositionChange=this.scrollbarState.onThumbPositionChange,this.handleWheelScroll=this.scrollbarState.onWheelScroll,this.handleThumbPointerDown=this.scrollbarState.onThumbPointerDown,this.handleThumbPointerUp=this.scrollbarState.onThumbPointerUp,Ct(()=>{const r=this.maxScrollPos,o=this.scrollbar.opts.ref.current;this.root.viewportNode;const i=u=>{const p=u.target;o?.contains(p)&&this.handleWheelScroll(u,r)};return Ve(this.root.domContext.getDocument(),"wheel",i,{passive:!1})}),Ps(()=>{this.scrollbarVis.sizes,Ie(()=>this.handleThumbPositionChange())}),new Ne(()=>this.scrollbar.opts.ref.current,this.handleResize),new Ne(()=>this.root.contentNode,this.handleResize),this.onpointerdown=this.onpointerdown.bind(this),this.onpointermove=this.onpointermove.bind(this),this.onpointerup=this.onpointerup.bind(this),this.onlostpointercapture=this.onlostpointercapture.bind(this)}handleDragScroll(t){if(!this.rect)return;const r=t.clientX-this.rect.left,o=t.clientY-this.rect.top;this.scrollbarState.onDragScroll({x:r,y:o})}#s(){this.rect!==null&&(this.root.domContext.getDocument().body.style.webkitUserSelect=this.prevWebkitUserSelect,this.root.viewportNode&&(this.root.viewportNode.style.scrollBehavior=""),this.rect=null)}onpointerdown(t){if(t.button!==0)return;t.target.setPointerCapture(t.pointerId),this.rect=this.scrollbar.opts.ref.current?.getBoundingClientRect()??null,this.prevWebkitUserSelect=this.root.domContext.getDocument().body.style.webkitUserSelect,this.root.domContext.getDocument().body.style.webkitUserSelect="none",this.root.viewportNode&&(this.root.viewportNode.style.scrollBehavior="auto"),this.handleDragScroll(t)}onpointermove(t){this.handleDragScroll(t)}onpointerup(t){const r=t.target;r.hasPointerCapture(t.pointerId)&&r.releasePointerCapture(t.pointerId),this.#s()}onlostpointercapture(t){this.#s()}#o=m(()=>te({...this.scrollbarState.props,style:{position:"absolute",...this.scrollbarState.props.style},[Fe.scrollbar]:"",onpointerdown:this.onpointerdown,onpointermove:this.onpointermove,onpointerup:this.onpointerup,onlostpointercapture:this.onlostpointercapture}));get props(){return e(this.#o)}set props(t){l(this.#o,t)}}class Er{static create(t){return new Er(t,ds.get())}opts;scrollbarState;attachment;#t;#e=_();#r=ir(()=>{e(this.#e)&&(e(this.#e)(),l(this.#e,void 0))},100);constructor(t,r){this.opts=t,this.scrollbarState=r,this.#t=r.root,this.attachment=ge(this.opts.ref,o=>this.scrollbarState.scrollbarVis.thumbNode=o),Ct(()=>{const o=this.#t.viewportNode;if(!o)return;const i=()=>{if(this.#r(),!e(this.#e)){const u=ho(o,this.scrollbarState.handleThumbPositionChange);l(this.#e,u,!0),this.scrollbarState.handleThumbPositionChange()}};return Ie(()=>this.scrollbarState.handleThumbPositionChange()),Ve(o,"scroll",i)}),this.onpointerdowncapture=this.onpointerdowncapture.bind(this),this.onpointerup=this.onpointerup.bind(this)}onpointerdowncapture(t){const r=t.target;if(!r)return;const o=r.getBoundingClientRect(),i=t.clientX-o.left,v=t.clientY-o.top;this.scrollbarState.handleThumbPointerDown({x:i,y:v})}onpointerup(t){this.scrollbarState.handleThumbPointerUp()}#s=m(()=>({id:this.opts.id.current,"data-state":this.scrollbarState.scrollbarVis.hasThumb?"visible":"hidden",style:{width:"var(--bits-scroll-area-thumb-width)",height:"var(--bits-scroll-area-thumb-height)",transform:this.scrollbarState.scrollbarVis.prevTransformStyle},onpointerdowncapture:this.onpointerdowncapture,onpointerup:this.onpointerup,[Fe.thumb]:"",...this.attachment}));get props(){return e(this.#s)}set props(t){l(this.#s,t)}}class Or{static create(t){return new Or(t,Ye.get())}opts;root;attachment;#t=_(0);#e=_(0);#r=m(()=>!!(e(this.#t)&&e(this.#e)));get hasSize(){return e(this.#r)}set hasSize(t){l(this.#r,t)}constructor(t,r){this.opts=t,this.root=r,this.attachment=ge(this.opts.ref),new Ne(()=>this.root.scrollbarXNode,()=>{const o=this.root.scrollbarXNode?.offsetHeight||0;this.root.cornerHeight=o,l(this.#e,o,!0)}),new Ne(()=>this.root.scrollbarYNode,()=>{const o=this.root.scrollbarYNode?.offsetWidth||0;this.root.cornerWidth=o,l(this.#t,o,!0)})}#s=m(()=>({id:this.opts.id.current,style:{width:e(this.#t),height:e(this.#e),position:"absolute",right:this.root.opts.dir.current==="ltr"?0:void 0,left:this.root.opts.dir.current==="rtl"?0:void 0,bottom:0},[Fe.corner]:"",...this.attachment}));get props(){return e(this.#s)}set props(t){l(this.#s,t)}}function or(a){return a?Number.parseInt(a,10):0}function vs(a,t){const r=a/t;return Number.isNaN(r)?0:r}function ur(a){const t=vs(a.viewport,a.content),r=a.scrollbar.paddingStart+a.scrollbar.paddingEnd,o=(a.scrollbar.size-r)*t;return Math.max(o,18)}function uo({pointerPos:a,pointerOffset:t,sizes:r,dir:o="ltr"}){const i=ur(r),v=i/2,u=t||v,p=i-u,b=r.scrollbar.paddingStart+u,y=r.scrollbar.size-r.scrollbar.paddingEnd-p,S=r.content-r.viewport,k=o==="ltr"?[0,S]:[S*-1,0];return fs([b,y],k)(a)}function Kr({scrollPos:a,sizes:t,dir:r="ltr"}){const o=ur(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,v=t.scrollbar.size-i,u=t.content-t.viewport,p=v-o,b=r==="ltr"?[0,u]:[u*-1,0],y=lo(a,b[0],b[1]);return fs([0,u],[0,p])(y)}function fs(a,t){return r=>{if(a[0]===a[1]||t[0]===t[1])return t[0];const o=(t[1]-t[0])/(a[1]-a[0]);return t[0]+o*(r-a[0])}}function ps(a,t){return a>0&&a<t}function ho(a,t){let r={left:a.scrollLeft,top:a.scrollTop},o=0;const i=Ws(a);return(function v(){const u={left:a.scrollLeft,top:a.scrollTop},p=r.left!==u.left,b=r.top!==u.top;(p||b)&&t(),r=u,o=i.requestAnimationFrame(v)})(),()=>i.cancelAnimationFrame(o)}var vo=new Set(["$$slots","$$events","$$legacy","ref","id","type","dir","scrollHideDelay","children","child"]),fo=w("<div><!></div>");function po(a,t){const r=Le();gt(t,!0);let o=ot(t,"ref",15,null),i=ot(t,"id",19,()=>He(r)),v=ot(t,"type",3,"hover"),u=ot(t,"dir",3,"ltr"),p=ot(t,"scrollHideDelay",3,600),b=Et(t,vo);const y=Tr.create({type:Pt(()=>v()),dir:Pt(()=>u()),scrollHideDelay:Pt(()=>p()),id:Pt(()=>i()),ref:Pt(()=>o(),ct=>o(ct))}),S=m(()=>te(b,y.props));var k=lt(),O=C(k);{var Z=ct=>{var ut=lt(),St=C(ut);Qt(St,()=>t.child,()=>({props:e(S)})),c(ct,ut)},Q=ct=>{var ut=fo();ke(ut,()=>({...e(S)}));var St=$(ut);Qt(St,()=>t.children??Lt),x(ut),c(ct,ut)};A(O,ct=>{t.child?ct(Z):ct(Q,-1)})}c(a,k),_t()}var mo=new Set(["$$slots","$$events","$$legacy","ref","id","children"]),bo=w("<div><div><!></div></div>");function go(a,t){const r=Le();gt(t,!0);let o=ot(t,"ref",15,null),i=ot(t,"id",19,()=>He(r)),v=Et(t,mo);const u=Cr.create({id:Pt(()=>i()),ref:Pt(()=>o(),O=>o(O))}),p=m(()=>te(v,u.props)),b=m(()=>te({},u.contentProps));var y=bo();ke(y,()=>({...e(p)}));var S=$(y);ke(S,()=>({...e(b)}));var k=$(S);Qt(k,()=>t.children??Lt),x(S),x(y),c(a,y),_t()}var _o=new Set(["$$slots","$$events","$$legacy","child","children"]),wo=w("<div><!></div>");function ms(a,t){gt(t,!0);let r=Et(t,_o);const o=Ar.create(),i=m(()=>te(r,o.props));var v=lt(),u=C(v);{var p=y=>{var S=lt(),k=C(S);Qt(k,()=>t.child,()=>({props:e(i)})),c(y,S)},b=y=>{var S=wo();ke(S,()=>({...e(i)}));var k=$(S);Qt(k,()=>t.children??Lt),x(S),c(y,S)};A(u,y=>{t.child?y(p):y(b,-1)})}c(a,v),_t()}var So=new Set(["$$slots","$$events","$$legacy"]);function yo(a,t){gt(t,!0);let r=Et(t,So);const o=new Pr,i=Dr.create({mounted:Pt(()=>o.current)}),v=m(()=>te(r,i.props));ms(a,At(()=>e(v))),_t()}var xo=new Set(["$$slots","$$events","$$legacy"]);function Po(a,t){gt(t,!0);let r=Et(t,xo);const o=new Pr,i=zr.create({mounted:Pt(()=>o.current)}),v=m(()=>te(r,i.props));ms(a,At(()=>e(v))),_t()}var $o=new Set(["$$slots","$$events","$$legacy"]);function hr(a,t){gt(t,!0);let r=Et(t,$o);const o=Rr.create();var i=lt(),v=C(i);{var u=b=>{yo(b,At(()=>r))},p=b=>{Po(b,At(()=>r))};A(v,b=>{o.scrollbar.opts.orientation.current==="horizontal"?b(u):b(p,-1)})}c(a,i),_t()}var To=new Set(["$$slots","$$events","$$legacy","forceMount"]);function Co(a,t){gt(t,!0);let r=ot(t,"forceMount",3,!1),o=Et(t,To);const i=cr.create(),v=m(()=>te(o,i.props));{const u=b=>{hr(b,At(()=>e(v)))};let p=m(()=>r()||i.isVisible);ar(a,{get open(){return e(p)},get ref(){return i.scrollbar.opts.ref},presence:u,$$slots:{presence:!0}})}_t()}var ko=new Set(["$$slots","$$events","$$legacy","forceMount"]);function No(a,t){gt(t,!0);let r=ot(t,"forceMount",3,!1),o=Et(t,ko);const i=qr.create(),v=m(()=>te(o,i.props));{const u=b=>{hr(b,At(()=>e(v)))};let p=m(()=>r()||!i.isHidden);ar(a,At(()=>e(v),{get open(){return e(p)},get ref(){return i.scrollbar.opts.ref},presence:u,$$slots:{presence:!0}}))}_t()}var qo=new Set(["$$slots","$$events","$$legacy","forceMount"]);function Ro(a,t){gt(t,!0);let r=ot(t,"forceMount",3,!1),o=Et(t,qo);const i=Nr.create(),v=cr.create(),u=m(()=>te(o,i.props,v.props,{"data-state":i.isVisible?"visible":"hidden"})),p=m(()=>r()||i.isVisible&&v.isVisible);ar(a,{get open(){return e(p)},get ref(){return v.scrollbar.opts.ref},presence:y=>{hr(y,At(()=>e(u)))},$$slots:{presence:!0}}),_t()}var Do=new Set(["$$slots","$$events","$$legacy","ref","id","orientation"]);function zo(a,t){const r=Le();gt(t,!0);let o=ot(t,"ref",15,null),i=ot(t,"id",19,()=>He(r)),v=Et(t,Do);const u=kr.create({orientation:Pt(()=>t.orientation),id:Pt(()=>i()),ref:Pt(()=>o(),Q=>o(Q))}),p=m(()=>u.root.opts.type.current);var b=lt(),y=C(b);{var S=Q=>{Ro(Q,At(()=>v,{get id(){return i()}}))},k=Q=>{No(Q,At(()=>v,{get id(){return i()}}))},O=Q=>{Co(Q,At(()=>v,{get id(){return i()}}))},Z=Q=>{hr(Q,At(()=>v,{get id(){return i()}}))};A(y,Q=>{e(p)==="hover"?Q(S):e(p)==="scroll"?Q(k,1):e(p)==="auto"?Q(O,2):e(p)==="always"&&Q(Z,3)})}c(a,b),_t()}var Ao=new Set(["$$slots","$$events","$$legacy","ref","id","child","children","present"]),Eo=w("<div><!></div>");function Oo(a,t){gt(t,!0);let r=ot(t,"ref",15,null),o=Et(t,Ao);const i=new Pr,v=Er.create({id:Pt(()=>t.id),ref:Pt(()=>r(),k=>r(k)),mounted:Pt(()=>i.current)}),u=m(()=>te(o,v.props,{style:{hidden:!t.present}}));var p=lt(),b=C(p);{var y=k=>{var O=lt(),Z=C(O);Qt(Z,()=>t.child,()=>({props:e(u)})),c(k,O)},S=k=>{var O=Eo();ke(O,()=>({...e(u)}));var Z=$(O);Qt(Z,()=>t.children??Lt),x(O),c(k,O)};A(b,k=>{t.child?k(y):k(S,-1)})}c(a,p),_t()}var Mo=new Set(["$$slots","$$events","$$legacy","id","ref","forceMount"]);function Wo(a,t){const r=Le();gt(t,!0);let o=ot(t,"id",19,()=>He(r)),i=ot(t,"ref",15,null),v=ot(t,"forceMount",3,!1),u=Et(t,Mo);const p=lr.get();{const b=(S,k)=>{let O=()=>(k?.()).present;Oo(S,At(()=>u,{get id(){return o()},get present(){return O()},get ref(){return i()},set ref(Z){i(Z)}}))};let y=m(()=>v()||p.hasThumb);ar(a,{get open(){return e(y)},get ref(){return p.scrollbar.opts.ref},presence:b,$$slots:{presence:!0}})}_t()}var jo=new Set(["$$slots","$$events","$$legacy","ref","id","children","child"]),Vo=w("<div><!></div>");function Io(a,t){gt(t,!0);let r=ot(t,"ref",15,null),o=Et(t,jo);const i=Or.create({id:Pt(()=>t.id),ref:Pt(()=>r(),S=>r(S))}),v=m(()=>te(o,i.props));var u=lt(),p=C(u);{var b=S=>{var k=lt(),O=C(k);Qt(O,()=>t.child,()=>({props:e(v)})),c(S,k)},y=S=>{var k=Vo();ke(k,()=>({...e(v)}));var O=$(k);Qt(O,()=>t.children??Lt),x(k),c(S,k)};A(p,S=>{t.child?S(b):S(y,-1)})}c(a,u),_t()}var Lo=new Set(["$$slots","$$events","$$legacy","ref","id"]);function Uo(a,t){const r=Le();gt(t,!0);let o=ot(t,"ref",15,null),i=ot(t,"id",19,()=>He(r)),v=Et(t,Lo);const u=Ye.get(),p=m(()=>!!(u.scrollbarXNode&&u.scrollbarYNode)),b=m(()=>u.opts.type.current!=="scroll"&&e(p));var y=lt(),S=C(y);{var k=O=>{Io(O,At(()=>v,{get id(){return i()},get ref(){return o()},set ref(Z){o(Z)}}))};A(S,O=>{e(b)&&O(k)})}c(a,y),_t()}var Ho=w('<span class="dot"></span> <span class="hostname"> </span> <iconify-icon></iconify-icon>',3),Fo=w('<div class="error svelte-o2oefv"> </div>'),Yo=w("<iconify-icon></iconify-icon>",2),Bo=w('<li><a><span></span> <span class="hostname svelte-o2oefv"> </span> <!></a></li>'),Xo=w('<header class="picker-header svelte-o2oefv"><span class="picker-title svelte-o2oefv">Servers</span> <button class="refresh-btn svelte-o2oefv" title="Refresh server list"><iconify-icon></iconify-icon></button></header> <!> <ul class="server-list svelte-o2oefv"></ul>',3),Ko=w("<!> <!>",1);function Jo(a,t){gt(t,!0);let r=_(!1);_r(()=>{pt.init()});function o(){pt.refresh()}var i=lt(),v=C(i);st(v,()=>ns,(u,p)=>{p(u,{get open(){return e(r)},set open(b){l(r,b,!0)},children:(b,y)=>{var S=Ko(),k=C(S);st(k,()=>ss,(Z,Q)=>{Q(Z,{class:"server-picker-trigger","aria-label":"Switch server",children:(ct,ut)=>{var St=Ho(),Ot=d(C(St),2),kt=vt(Ot,!0),Yt=d(Ot,2);$t(Yt,"icon","mdi:chevron-down"),tt(Yt,1,"chev"),R(()=>E(kt,pt.current.hostname||"claude-mux")),c(ct,St)},$$slots:{default:!0}})});var O=d(k,2);st(O,()=>os,(Z,Q)=>{Q(Z,{class:"server-picker-content",align:"start",sideOffset:4,children:(ct,ut)=>{var St=Xo(),Ot=C(St),kt=d($(Ot),2),Yt=$(kt);$t(Yt,"icon","mdi:refresh");let Mt;x(kt),x(Ot);var nt=d(Ot,2);{var M=H=>{var ft=Fo(),Nt=vt(ft,!0);R(()=>E(Nt,pt.error)),c(H,ft)};A(nt,H=>{pt.error&&H(M)})}var et=d(nt,2);Ft(et,21,()=>pt.servers,H=>H.hostname,(H,ft)=>{const Nt=m(()=>e(ft).hostname===pt.current.hostname);var de=Bo(),Bt=$(de);let _e;var ae=$(Bt);let qe;var le=d(ae,2),ce=vt(le,!0),ve=d(le,2);{var ee=ne=>{var Jt=Yo();$t(Jt,"icon","mdi:check"),tt(Jt,1,"check svelte-o2oefv"),c(ne,Jt)};A(ve,ne=>{e(Nt)&&ne(ee)})}x(Bt),x(de),R(()=>{Tt(Bt,"href",`${e(ft).url??""}/`),_e=tt(Bt,1,"server-item svelte-o2oefv",null,_e,{active:e(Nt)}),Tt(Bt,"aria-current",e(Nt)?"page":void 0),qe=tt(ae,1,"dot svelte-o2oefv",null,qe,{active:e(Nt)}),E(ce,e(ft).hostname)}),c(H,de)}),x(et),R(()=>{kt.disabled=pt.loading,Mt=tt(Yt,1,"",null,Mt,{spin:pt.loading})}),dt("click",kt,o),c(ct,St)},$$slots:{default:!0}})}),c(b,S)},$$slots:{default:!0}})}),c(a,i),_t()}yr(["click"]);var Go=new Set(["$$slots","$$events","$$legacy","ref","class","orientation","children"]),Zo=w("<!> <!>",1);function Jr(a,t){gt(t,!0);let r=ot(t,"ref",15,null),o=ot(t,"orientation",3,"vertical"),i=Et(t,Go);var v=lt(),u=C(v);{let p=m(()=>is("flex touch-none p-px transition-colors select-none",o()==="vertical"&&"h-full w-2.5 border-s border-s-transparent",o()==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent",t.class));st(u,()=>zo,(b,y)=>{y(b,At({"data-slot":"scroll-area-scrollbar",get orientation(){return o()},get class(){return e(p)}},()=>i,{get ref(){return r()},set ref(S){r(S)},children:(S,k)=>{var O=Zo(),Z=C(O);Qt(Z,()=>t.children??Lt);var Q=d(Z,2);st(Q,()=>Wo,(ct,ut)=>{ut(ct,{"data-slot":"scroll-area-thumb",class:"bg-border relative flex-1 rounded-full"})}),c(S,O)},$$slots:{default:!0}}))})}c(a,v),_t()}var Qo=new Set(["$$slots","$$events","$$legacy","ref","viewportRef","class","orientation","scrollbarXClasses","scrollbarYClasses","children"]),tn=w("<!> <!> <!> <!>",1);function en(a,t){gt(t,!0);let r=ot(t,"ref",15,null),o=ot(t,"viewportRef",15,null),i=ot(t,"orientation",3,"vertical"),v=ot(t,"scrollbarXClasses",3,""),u=ot(t,"scrollbarYClasses",3,""),p=Et(t,Qo);var b=lt(),y=C(b);{let S=m(()=>is("relative",t.class));st(y,()=>po,(k,O)=>{O(k,At({"data-slot":"scroll-area",get class(){return e(S)}},()=>p,{get ref(){return r()},set ref(Z){r(Z)},children:(Z,Q)=>{var ct=tn(),ut=C(ct);st(ut,()=>go,(nt,M)=>{M(nt,{"data-slot":"scroll-area-viewport",class:"ring-ring/10 dark:ring-ring/20 dark:outline-ring/40 outline-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] focus-visible:ring-4 focus-visible:outline-1",get ref(){return o()},set ref(et){o(et)},children:(et,H)=>{var ft=lt(),Nt=C(ft);Qt(Nt,()=>t.children??Lt),c(et,ft)},$$slots:{default:!0}})});var St=d(ut,2);{var Ot=nt=>{Jr(nt,{orientation:"vertical",get class(){return u()}})};A(St,nt=>{(i()==="vertical"||i()==="both")&&nt(Ot)})}var kt=d(St,2);{var Yt=nt=>{Jr(nt,{orientation:"horizontal",get class(){return v()}})};A(kt,nt=>{(i()==="horizontal"||i()==="both")&&nt(Yt)})}var Mt=d(kt,2);st(Mt,()=>Uo,(nt,M)=>{M(nt,{})}),c(Z,ct)},$$slots:{default:!0}}))})}c(a,b),_t()}var rn=w('<span class="fb-sep svelte-57drpi" aria-hidden="true">/</span>'),sn=w("<!> <button> </button>",1),on=w('<p class="fb-error svelte-57drpi"> </p>'),nn=w('<mark class="svelte-57drpi"> </mark>'),an=w('<span class="fb-tag svelte-57drpi">git</span>'),ln=w('<button><span class="fb-name svelte-57drpi"><!></span> <!></button>'),cn=w('No folder here matches <span class="fb-empty-q svelte-57drpi"> </span>. Backspace to clear.',1),un=w('<p class="fb-empty svelte-57drpi"><!></p>'),hn=w("<div></div>"),dn=w('<!> <!> <nav class="fb-crumbs svelte-57drpi" aria-label="Current path"></nav> <div class="fb-prompt svelte-57drpi"><span class="fb-caret svelte-57drpi" aria-hidden="true">❯</span> <input type="text" placeholder="type to filter" aria-label="Filter folders in this directory" autocomplete="off" autocapitalize="off" spellcheck="false" enterkeyhint="go" class="svelte-57drpi"/> <span class="fb-count svelte-57drpi"> </span></div> <!> <!> <div class="fb-keys svelte-57drpi"><span class="fb-hints svelte-57drpi">↑↓ move · ⏎ enter folder · ⌫ go up · ⌘⏎ open here</span> <div class="fb-hidden svelte-57drpi"><!> <label for="fb-show-hidden" class="svelte-57drpi">hidden</label></div></div> <div class="fb-footer svelte-57drpi"><!> <!></div>',1);function vn(a,t){gt(t,!0);let r=ot(t,"open",15),o=_(""),i=_(""),v=_(null),u=_(Ce([])),p=_(!1),b=_(""),y=_(""),S=_(0),k=_(null),O=_(null);const Z=m(()=>{const M=e(y).trim();return e(u).flatMap(et=>{const H=Vs(et.name,M);return H?[{folder:et,score:H.score,runs:M?Is(et.name,H.positions):null}]:[]}).sort((et,H)=>H.score-et.score)}),Q=m(()=>{if(!e(o))return[];const M=e(i)!==""&&`${e(o)}/`.startsWith(`${e(i)}/`),et=(M?e(o).slice(e(i).length):e(o)).split("/").filter(Boolean),H=M?[{label:"~",path:e(i)}]:[{label:"/",path:"/"}];let ft=M?e(i):"";for(const Nt of et)ft=`${ft}/${Nt}`,H.push({label:Nt,path:ft});return H});Ct(()=>{e(Z),l(S,0)});async function ct(M="~"){r(!0),await ut(M),window.matchMedia?.("(pointer: coarse)").matches||e(k)?.focus()}async function ut(M,et=!1){l(b,"");const ft=await(await fetch(`/api/browse?path=${encodeURIComponent(M)}&showHidden=${e(p)}`)).json();if(ft.error){l(b,ft.error,!0);return}l(o,ft.current,!0),l(i,ft.home,!0),l(v,ft.parent,!0),l(u,ft.folders,!0),et||l(y,""),await $s(),e(O)?.scrollTo({top:0})}function St(M){const et=e(Z).length;et!==0&&(l(S,(e(S)+M+et)%et),e(O)?.children[e(S)]?.scrollIntoView({block:"nearest"}))}function Ot(){r(!1),t.onpick(e(o))}function kt(M){if(M.key==="ArrowDown"||M.key==="n"&&M.ctrlKey)M.preventDefault(),St(1);else if(M.key==="ArrowUp"||M.key==="p"&&M.ctrlKey)M.preventDefault(),St(-1);else if(M.key==="Enter"){if(M.preventDefault(),M.metaKey||M.ctrlKey){Ot();return}const et=e(Z)[e(S)];et?ut(et.folder.path):Ot()}else M.key==="Backspace"&&e(y)===""&&e(v)&&(M.preventDefault(),ut(e(v)))}var Yt={openAt:ct},Mt=lt(),nt=C(Mt);return st(nt,()=>hs,(M,et)=>{et(M,{get open(){return r()},set open(H){r(H)},children:(H,ft)=>{var Nt=lt(),de=C(Nt);st(de,()=>as,(Bt,_e)=>{_e(Bt,{class:"w-[calc(100%-1.5rem)] max-w-lg gap-0 overflow-hidden border-[#333] bg-[#161616] p-0 sm:max-w-lg",style:"--fb-accent: #e8b35c;",showCloseButton:!1,onOpenAutoFocus:ae=>{ae.preventDefault()},children:(ae,qe)=>{var le=dn(),ce=C(le);st(ce,()=>ls,(it,Wt)=>{Wt(it,{class:"px-4 pt-3 pb-2.5 font-mono text-[11px] font-medium tracking-[0.14em] text-[#6f6f6f] uppercase",children:(mt,qt)=>{Dt();var yt=zt("open project");c(mt,yt)},$$slots:{default:!0}})});var ve=d(ce,2);st(ve,()=>cs,(it,Wt)=>{Wt(it,{class:"sr-only",children:(mt,qt)=>{Dt();var yt=zt("Browse to a folder and start a session in it. Type to filter this folder.");c(mt,yt)},$$slots:{default:!0}})});var ee=d(ve,2);Ft(ee,23,()=>e(Q),it=>it.path,(it,Wt,mt)=>{const qt=m(()=>e(mt)===e(Q).length-1);var yt=sn(),re=C(yt);{var Xt=ie=>{var fe=rn();c(ie,fe)};A(re,ie=>{e(mt)>0&&ie(Xt)})}var Ut=d(re,2);let Rt;var Gt=vt(Ut,!0);R(()=>{Rt=tt(Ut,1,"fb-crumb svelte-57drpi",null,Rt,{here:e(qt)}),Tt(Ut,"aria-current",e(qt)?"location":void 0),E(Gt,e(Wt).label)}),dt("click",Ut,()=>ut(e(Wt).path)),c(it,yt)}),x(ee);var ne=d(ee,2),Jt=d($(ne),2);es(Jt),sr(Jt,it=>l(k,it),()=>e(k));var dr=d(Jt,2),Re=vt(dr,!0);x(ne);var we=d(ne,2);{var Xe=it=>{var Wt=on(),mt=vt(Wt,!0);R(()=>E(mt,e(b))),c(it,Wt)};A(we,it=>{e(b)&&it(Xe)})}var Ke=d(we,2);en(Ke,{class:"max-h-72 min-h-24 border-y border-[#333]",children:(it,Wt)=>{var mt=hn();Ft(mt,23,()=>e(Z),qt=>qt.folder.path,(qt,yt,re)=>{var Xt=ln();let Ut;var Rt=$(Xt),Gt=$(Rt);{var ie=Kt=>{var Zt=lt(),Ge=C(Zt);Ft(Ge,17,()=>e(yt).runs,ks,(Oe,ye)=>{var ue=lt(),Ze=C(ue);{var pr=se=>{var he=nn(),tr=vt(he,!0);R(()=>E(tr,e(ye).text)),c(se,he)},Qe=se=>{var he=zt();R(()=>E(he,e(ye).text)),c(se,he)};A(Ze,se=>{e(ye).hit?se(pr):se(Qe,-1)})}c(Oe,ue)}),c(Kt,Zt)},fe=Kt=>{var Zt=zt();R(()=>E(Zt,e(yt).folder.name)),c(Kt,Zt)};A(Gt,Kt=>{e(yt).runs?Kt(ie):Kt(fe,-1)})}x(Rt);var fr=d(Rt,2);{var Je=Kt=>{var Zt=an();c(Kt,Zt)};A(fr,Kt=>{e(yt).folder.git&&Kt(Je)})}x(Xt),R(()=>Ut=tt(Xt,1,"fb-item svelte-57drpi",null,Ut,{active:e(re)===e(S)})),We("mouseenter",Xt,()=>l(S,e(re),!0)),dt("click",Xt,()=>ut(e(yt).folder.path)),c(qt,Xt)},qt=>{var yt=un(),re=$(yt);{var Xt=Rt=>{var Gt=cn(),ie=d(C(Gt)),fe=vt(ie,!0);Dt(),R(()=>E(fe,e(y))),c(Rt,Gt)},Ut=Rt=>{var Gt=zt("No folders here. Open this one, or go up a level.");c(Rt,Gt)};A(re,Rt=>{e(y)?Rt(Xt):Rt(Ut,-1)})}x(yt),c(qt,yt)}),x(mt),sr(mt,qt=>l(O,qt),()=>e(O)),c(it,mt)},$$slots:{default:!0}});var De=d(Ke,2),ze=d($(De),2),Ae=$(ze);js(Ae,{id:"fb-show-hidden",get checked(){return e(p)},onCheckedChange:it=>{l(p,!!it),ut(e(o),!0)}}),Dt(2),x(ze),x(De);var Ee=d(De,2),Se=$(Ee);Ur(Se,{variant:"ghost",size:"sm",onclick:()=>r(!1),children:(it,Wt)=>{Dt();var mt=zt("Cancel");c(it,mt)},$$slots:{default:!0}});var vr=d(Se,2);Ur(vr,{size:"sm",onclick:Ot,children:(it,Wt)=>{Dt();var mt=zt("Open here");c(it,mt)},$$slots:{default:!0}}),x(Ee),R(()=>E(Re,e(y)?`${e(Z).length}/${e(u).length}`:e(u).length)),dt("keydown",Jt,kt),us(Jt,()=>e(y),it=>l(y,it)),c(ae,le)},$$slots:{default:!0}})}),c(H,Nt)},$$slots:{default:!0}})}),c(a,Mt),_t(Yt)}yr(["click","keydown"]);function ri(a){const t=a.trim();if(!t)return null;const r=t.indexOf("@");if(r===-1)return{host:null,target:t};const o=t.slice(0,r),i=t.slice(r+1);return!o||!i||o.includes(":")||o.includes("/")?null:{host:o,target:i}}function nr(a){return a.host?`${a.host}@${a.target}`:a.target}function be(a,t){return!a||!t?a===t:(a.host??null)===(t.host??null)&&a.target===t.target}function bs(a,t,r){return!a.host||a.host===r?"":t.find(i=>i.hostname===a.host)?.url.replace(/\/$/,"")??null}function si(a,t,r){const o=bs(a,t,r);return o===null?null:`${o}/session/${encodeURIComponent(a.target)}?embed=1`}function Gr(a,t,r){const o=bs(a,t,r);return o===null?null:`${o}/session/${encodeURIComponent(a.target)}`}function rr(a,t){return`/session/${encodeURIComponent(nr(a))}?with=${encodeURIComponent(nr(t))}`}const Zr=xr("claude-mux-split-ratio",.5),oi=440;function $e(a){a&&(a.startsWith("/")?Sr(a):window.location.href=a)}class fn{#t=_(null);get a(){return e(this.#t)}set a(t){l(this.#t,t,!0)}#e=_(null);get b(){return e(this.#e)}set b(t){l(this.#e,t,!0)}#r=_("a");get focus(){return e(this.#r)}set focus(t){l(this.#r,t,!0)}#s=_(null);get zoom(){return e(this.#s)}set zoom(t){l(this.#s,t,!0)}#o=_(.5);get ratio(){return e(this.#o)}set ratio(t){l(this.#o,t,!0)}#n=_(!1);get dragging(){return e(this.#n)}set dragging(t){l(this.#n,t,!0)}#i=m(()=>this.a!==null&&this.b!==null);get active(){return e(this.#i)}set active(t){l(this.#i,t)}constructor(){{const t=Zr.load();t>.2&&t<.8&&(this.ratio=t)}}setPanes(t,r){be(this.a,t)||(this.a=t),be(this.b,r)||(this.b=r),this.active||(this.zoom=null)}pane(t){return t==="a"?this.a:this.b}sideOf(t){return be(this.a,t)?"a":be(this.b,t)?"b":null}setFocus(t){this.focus=t}other(t){return t==="a"?"b":"a"}openIn(t,r,o){const i=t==="focus"?this.focus:t==="other"?this.other(this.focus):t;if(this.active&&this.a&&this.b){const v=i==="a"?r:this.a,u=i==="b"?r:this.b;if(be(v,u))return;$e(rr(v,u)),this.focus=i;return}if(i==="b"&&o&&!be(o,r)){$e(rr(o,r)),this.focus="b";return}$e(Gr(r,pt.servers,pt.self))}splitWith(t,r){!r||be(r,t)||($e(rr(r,t)),this.focus="b")}close(t){const r=this.pane(this.other(t));r&&(this.zoom=null,this.focus="a",$e(Gr(r,pt.servers,pt.self)))}swap(){!this.a||!this.b||(this.focus=this.other(this.focus),this.zoom&&(this.zoom=this.other(this.zoom)),$e(rr(this.b,this.a)))}toggleZoom(t){this.zoom=this.zoom===t?null:t,this.focus=t}setRatio(t){this.ratio=Math.min(.8,Math.max(.2,t)),Zr.save(this.ratio)}label(t){return nr(t)}}const oe=new fn,pn=(a,t=Lt)=>{var r=lt(),o=C(r);{var i=u=>{var p=mn();let b;R(y=>{b=tt(p,1,"ctx svelte-183q6rw",null,b,{warn:t()>=70&&t()<90,hot:t()>=90}),je(p,`--p: ${y??""}`),Tt(p,"title",`${t()??""}% of the context window`)},[()=>Math.min(100,Math.max(0,t()))]),c(u,p)},v=u=>{var p=bn();c(u,p)};A(o,u=>{t()!==null&&t()!==void 0?u(i):u(v,-1)})}c(a,r)};var mn=w("<span></span>"),bn=w('<span class="ctx none svelte-183q6rw"></span>'),gn=w('<span class="path svelte-183q6rw">orch</span>'),_n=w('<span class="path svelte-183q6rw"> </span>'),wn=w('<span class="ptag svelte-183q6rw"> </span>'),Qr=w("<iconify-icon></iconify-icon>",2),ts=w('<span class="pill svelte-183q6rw">wants you</span>'),Sn=w('<span class="when svelte-183q6rw"> </span>'),yn=w('<button type="button" class="kill svelte-183q6rw" title="Kill session"><iconify-icon></iconify-icon></button>',2),xn=w("<iconify-icon></iconify-icon> ",3),Pn=w('<a><span class="st svelte-183q6rw"><!></span> <span class="name svelte-183q6rw"><!> </span> <span class="meta svelte-183q6rw"><!> <!> <!></span> <!> <!> <span><!></span></a>'),$n=w('<a draggable="true"><span class="st svelte-183q6rw"><iconify-icon></iconify-icon></span> <span class="name mono svelte-183q6rw"> </span> <span class="meta svelte-183q6rw"><span class="when svelte-183q6rw"> </span></span> <span class="ctx none svelte-183q6rw"></span></a>',2),Tn=w('<button type="button" class="sweep svelte-183q6rw">clear</button>'),Cn=w('<div class="dead svelte-183q6rw"><span class="n svelte-183q6rw"> </span> <!></div>'),kn=w('<section><div class="proj-h svelte-183q6rw"><span class="chip svelte-183q6rw"> </span> <span class="pname svelte-183q6rw"> </span> <span class="pcount svelte-183q6rw"> </span> <button type="button" class="pbtn svelte-183q6rw" title="New session here (right-click or hold for another agent)"><iconify-icon></iconify-icon></button> <button type="button" class="pbtn pclose svelte-183q6rw" title="Close project"><iconify-icon></iconify-icon></button></div> <!> <!> <!></section>',2),Nn=w('<button type="button"><iconify-icon></iconify-icon> </button>',2),Te=w("<!> <!>",1),qn=w('<input class="search svelte-183q6rw" type="search" placeholder="Project or session…"/>'),Rn=w('<span class="n svelte-183q6rw"> </span>'),Dn=w('<button type="button" role="tab"><span></span> <!></button>'),zn=w('<div class="machines svelte-183q6rw" role="tablist" aria-label="Machines"><button type="button" role="tab">all</button> <!></div>'),An=w('No sessions yet. <button type="button" class="link svelte-183q6rw">Open a project</button> to start one.',1),En=w('<div class="empty svelte-183q6rw"><!></div>'),On=w('<span class="mcount svelte-183q6rw"><!> <!></span>'),Mn=w('<button type="button"><iconify-icon></iconify-icon> <span></span> <span class="mname svelte-183q6rw"> </span> <span class="mline svelte-183q6rw"></span> <!></button>',2),Wn=w('<button type="button" class="sweep svelte-183q6rw" title="Forget the closed sessions in these projects"> </button>'),jn=w('<span class="qdead svelte-183q6rw"> </span>'),Vn=w('<span class="q svelte-183q6rw"><button type="button" class="qopen svelte-183q6rw"><span class="chip svelte-183q6rw"></span> <!></button> <button type="button" class="qx svelte-183q6rw" title="Remove from the list"><iconify-icon></iconify-icon></button></span>',2),In=w('<section class="card quiet svelte-183q6rw"><span class="lbl svelte-183q6rw">no session <!></span> <!></section>'),Ln=w('<section class="card proj loose svelte-183q6rw"><div class="proj-h svelte-183q6rw"><span class="chip dim svelte-183q6rw">~</span> <span class="pname svelte-183q6rw">outside any project</span> <span class="pcount svelte-183q6rw"> </span></div> <!> <!></section>'),Un=w("<!> <!> <!>",1),Hn=w(" <!>.",1),Fn=w("<!> Choose which agent to launch.",1),Yn=w('<button class="agent-choice svelte-183q6rw"><iconify-icon></iconify-icon> <div class="agent-choice-text"><div class="agent-choice-name svelte-183q6rw"> </div> <div class="agent-choice-cmd svelte-183q6rw"> </div></div></button>',2),Bn=w('<!> <div class="agent-choices svelte-183q6rw"></div>',1),Xn=w('<div><header class="card head svelte-183q6rw"><!> <button type="button" title="Find a session"><iconify-icon></iconify-icon></button> <!> <button type="button" class="new svelte-183q6rw" title="New project or session"><iconify-icon></iconify-icon>New</button></header> <!> <!> <div class="list svelte-183q6rw"><!> <!></div></div> <!> <!> <!> <!>',3);function ni(a,t){gt(t,!0);const r=()=>Cs(so,"$page",o),[o,i]=Ts(),v=(n,s=Lt,h=Lt)=>{const f=m(()=>h().session),N=m(()=>s().local&&e(f).tmux_target===e(Bt)),Y=m(()=>s().local&&!e(N)&&e(f).tmux_target?Br.get(e(f).tmux_target):""),q=m(()=>ce(e(f))),V=m(()=>it(s(),e(f).tmux_target));var I=Pn();let g;var T=$(I),K=$(T);Qs(K,{get state(){return e(f).state},size:"sm",get title(){return e(f).current_action}}),x(T);var B=d(T,2),rt=$(B);{var J=P=>{var z=gn();c(P,z)},W=P=>{var z=_n(),Ht=vt(z,!0);R(()=>{Tt(z,"title",e(f).cwd),E(Ht,h().rel)}),c(P,z)};A(rt,P=>{h().orchestrator?P(J):h().rel&&P(W,1)})}var X=d(rt);x(B);var U=d(B,2),G=$(U);{var at=P=>{var z=wn(),Ht=vt(z,!0);R(()=>{Tt(z,"title",`Open in pane ${e(V)??""}`),E(Ht,e(V))}),c(P,z)};A(G,P=>{e(V)&&P(at)})}var D=d(G,2);{var F=P=>{var z=Qr();$t(z,"icon","mdi:cellphone-link"),tt(z,1,"rc svelte-183q6rw"),$t(z,"title","Remote Control active"),c(P,z)};A(D,P=>{e(f).rc_url&&P(F)})}var ht=d(D,2);{var L=P=>{var z=ts();c(P,z)},j=P=>{var z=Sn(),Ht=vt(z,!0);R(Pe=>E(Ht,Pe),[()=>Ke(e(f).last_update)]),c(P,z)};A(ht,P=>{e(q)?P(L):P(j,-1)})}x(U);var xt=d(U,2);pn(xt,()=>e(f).context_pct);var jt=d(xt,2);{var bt=P=>{var z=yn(),Ht=$(z);$t(Ht,"icon","mdi:power"),tt(Ht,1,"svelte-183q6rw"),x(z),dt("click",z,Pe=>{Pe.preventDefault(),Pe.stopPropagation(),yt(s(),e(f))}),c(P,z)};A(jt,P=>{s().local&&!O()&&P(bt)})}var wt=d(jt,2);let pe;var xe=$(wt);{var me=P=>{var z=xn(),Ht=C(z);$t(Ht,"icon","mdi:pencil-outline"),tt(Ht,1,"svelte-183q6rw");var Pe=d(Ht,1,!0);R(xs=>E(Pe,xs),[()=>Br.preview(e(f).tmux_target)]),c(P,z)},Me=P=>{var z=zt();R(()=>E(z,e(f).current_action||e(f).state)),c(P,z)};A(xe,P=>{e(Y)?P(me):P(Me,-1)})}x(wt),x(I),br(I,(P,z)=>gr?.(P,z),()=>({onTrigger:()=>{s().local&&l(kt,e(f).id,!0)}})),R((P,z)=>{Tt(I,"href",P),g=tt(I,1,"row svelte-183q6rw",null,g,{cur:e(N)||e(V)!==null,orch:h().orchestrator,inA:e(V)==="A",inB:e(V)==="B"}),Tt(I,"draggable",e(f).tmux_target?"true":"false"),Tt(I,"title",(s().local?"Double-click or long-press to rename":`On ${s().server.hostname}`)+" · ⌥-click or drag to open side by side"),E(X,` ${z??""}`),pe=tt(wt,1,"sub svelte-183q6rw",null,pe,{draft:!!e(Y)}),Tt(wt,"title",e(Y)||e(f).current_action||e(f).state)},[()=>s().local&&e(f).tmux_target?`/session/${encodeURIComponent(e(f).tmux_target)}`:`${s().server.url}/session/${encodeURIComponent(e(f).tmux_target??"")}`,()=>er(e(f))]),We("dragstart",I,P=>e(f).tmux_target&&Wt(P,s(),e(f).tmux_target)),We("dragend",I,mt),dt("click",I,P=>vr(P,s(),e(f))),c(n,I)},u=(n,s=Lt,h=Lt)=>{const f=m(()=>h().target===e(Bt)),N=m(()=>De(h().command||"")),Y=m(()=>e(N)?Hr[e(N)]:null);var q=$n();let V;var I=$(q),g=$(I);R(()=>$t(g,"icon",e(Y)?.icon??"mdi:console-line")),tt(g,1,"svelte-183q6rw"),x(I);var T=d(I,2),K=vt(T,!0),B=d(T,2),rt=$(B),J=vt(rt,!0);x(B),Dt(2),x(q),R(W=>{Tt(q,"href",`/session/${W??""}`),V=tt(q,1,"row tmux svelte-183q6rw",null,V,{cur:e(f)}),je(g,e(Y)?`color:${e(Y).color}`:""),E(K,h().target),E(J,e(Y)?.label??h().command)},[()=>encodeURIComponent(h().target)]),We("dragstart",q,W=>Wt(W,s(),h().target)),We("dragend",q,mt),dt("click",q,W=>{W.preventDefault(),Se(s(),h().target,W.altKey)}),c(n,q)},p=(n,s=Lt,h=Lt)=>{var f=kn();let N;var Y=$(f),q=$(Y),V=vt(q,!0),I=d(q,2),g=vt(I,!0),T=d(I,2),K=vt(T,!0),B=d(T,2),rt=$(B);$t(rt,"icon","mdi:plus"),tt(rt,1,"svelte-183q6rw"),x(B),br(B,(D,F)=>gr?.(D,F),()=>({onTrigger:()=>l(H,{machine:s(),cwd:h().cwd},!0)}));var J=d(B,2),W=$(J);$t(W,"icon","mdi:close"),tt(W,1,"svelte-183q6rw"),x(J),x(Y);var X=d(Y,2);Ft(X,17,()=>h().rows,D=>D.session.id,(D,F)=>{v(D,s,()=>e(F))});var U=d(X,2);Ft(U,17,()=>h().panes,D=>D.target,(D,F)=>{u(D,s,()=>e(F))});var G=d(U,2);{var at=D=>{var F=Cn(),ht=$(F),L=vt(ht,!0),j=d(ht),xt=d(j);{var jt=bt=>{var wt=Tn();dt("click",wt,()=>re(s(),h().dead)),c(bt,wt)};A(xt,bt=>{s().local&&bt(jt)})}x(F),R(()=>{E(L,h().dead.length),E(j,` ${h().dead.length===1?"closed session":"closed sessions"} `)}),c(D,F)};A(G,D=>{h().dead.length>0&&D(at)})}x(f),R((D,F)=>{N=tt(f,1,"card proj svelte-183q6rw",null,N,{wants:h().wants}),je(q,`background:${h().color??""}`),E(V,D),Tt(I,"title",h().cwd),E(g,h().name),E(K,F)},[()=>h().name.slice(0,1).toLowerCase(),()=>h().rows.filter(D=>!D.orchestrator).length]),dt("click",B,()=>{Ut(s(),h().cwd)}),dt("contextmenu",B,D=>{D.preventDefault(),l(H,{machine:s(),cwd:h().cwd},!0)}),dt("click",J,()=>Xt(s(),h())),c(n,f)},b=xr("claude-mux-folded-machines",{});let y=_(Ce({}));_r(()=>{l(y,b.load(),!0)});function S(n){return e(y)[n.server.hostname]??!n.local}function k(n){l(y,{...e(y),[n.server.hostname]:!S(n)},!0),b.save(e(y))}let O=ot(t,"compact",3,!1),Z=_(!1),Q=_(null),ct=_(!1),ut=_(""),St=_(""),Ot=_(()=>{}),kt=_(null),Yt=_(!1),Mt=_(!1),nt=_(""),M=_(null);function et(n,s,h){l(ut,n,!0),l(St,s,!0),l(Ot,h,!0),l(ct,!0)}let H=_(null);function ft(n){const s=e(H);l(H,null),s&&Ut(s.machine,s.cwd,n)}const Nt=m(()=>mr.panes),de=m(()=>mr.loaded),Bt=m(()=>r().url.pathname.startsWith("/session/")?decodeURIComponent(r().url.pathname.split("/session/")[1]):null);function _e(n){return n.split("/").filter(Boolean).length<=2?!0:/^\/(?:mnt|media|Volumes)\/[^/]+$/.test(n)}function ae(n,s){return n===s||n.startsWith(s+"/")}function qe(n){const s=[...n.projects],h=n.sessions.map(f=>f.cwd).filter(f=>!!f&&!_e(f)).sort((f,N)=>f.length-N.length);for(const f of h)s.some(N=>ae(f,N))||s.push(f);return s}function le(n,s){return n===s?null:n.slice(s.length+1)+"/"}function ce(n){return n.state==="waiting"||n.state==="permission"}function ve(n,s){const h=[];for(const f of eo(n))f.type==="pair"?(h.push({session:f.main,rel:s?le(f.main.cwd,s):null,orchestrator:!1}),h.push({session:f.orchestrator,rel:null,orchestrator:!0})):h.push({session:f.session,rel:s?le(f.session.cwd,s):null,orchestrator:!1});return h}function ee(n){const s=e(nt).trim().toLowerCase();return!s||n.toLowerCase().includes(s)}function ne(n){const s=qe(n),h=new Set(n.sessions.map(g=>g.tmux_target)),f=n.local?e(Nt).filter(g=>!h.has(g.target)):[],N=new Map;for(const g of s)N.set(g,{live:[],dead:[],panes:[]});const Y=[];for(const g of n.sessions){const T=g.cwd?Yr(g.cwd,s):null;if(!T){Y.push(g);continue}const K=N.get(T);(g.pane_alive===!1?K.dead:K.live).push(g)}const q=[];for(const g of f){const T=g.cwd?Yr(g.cwd,s):null;T?N.get(T).panes.push(g):q.push(g)}const V=[],I=[];for(const g of s){const T=N.get(g),K=g.split("/").pop()||g,B=ve(T.live,g),rt={cwd:g,name:K,color:to(g),wants:T.live.some(ce),rows:B,dead:T.dead,panes:T.panes,recent:Math.max(0,...T.live.map(J=>J.last_update??0))};e(nt).trim()&&!(ee(K)||B.some(W=>ee(er(W.session))))||(B.length===0&&T.panes.length===0?I.push(rt):V.push(rt))}return V.sort((g,T)=>g.wants!==T.wants?g.wants?-1:1:g.recent!==T.recent?T.recent-g.recent:g.name.localeCompare(T.name)),I.sort((g,T)=>g.name.localeCompare(T.name)),{machine:n,cards:V,quiet:I,loose:ve(Y.filter(g=>ee(er(g))),null),loosePanes:e(nt).trim()?q.filter(g=>ee(g.target)):q}}const Jt=m(()=>Vt.visible.map(ne)),dr=m(()=>e(Jt).some(n=>n.cards.length+n.quiet.length+n.loose.length+n.loosePanes.length>0));function Re(n){return n.sessions.filter(s=>s.pane_alive!==!1).length}function we(n){return n.sessions.some(s=>s.pane_alive!==!1&&ce(s))}let Xe=_(Ce(Date.now()));_r(()=>{Vt.start();const n=setInterval(()=>l(Xe,Date.now(),!0),3e4),s=mr.subscribe();return()=>{clearInterval(n),s?.()}}),Ct(()=>{Vt.sync()}),Ct(()=>{e(Mt)&&e(M)?.focus()});function Ke(n){if(!n)return"";const s=Math.max(0,Math.round((e(Xe)-n)/1e3));return s<60?"now":s<3600?`${Math.round(s/60)}m`:s<86400?`${Math.round(s/3600)}h`:`${Math.round(s/86400)}d`}function De(n){const s=n.toLowerCase();for(const h of Fr)if(s.includes(h))return h;return null}function ze(n){return n.local?"":n.server.url}function Ae(n,s){return{host:n.local?null:n.server.hostname,target:s}}function Ee(){return oe.active?oe.pane(oe.focus):e(Bt)?{host:null,target:e(Bt)}:null}function Se(n,s,h=!1){const f=Ae(n,s);if(oe.active){oe.openIn(h?"other":"focus",f,Ee()),t.onSessionSelect?.();return}if(h&&e(Bt)){oe.splitWith(f,Ee()),t.onSessionSelect?.();return}n.local?(Sr(`/session/${encodeURIComponent(s)}`),t.onSessionSelect?.()):window.location.href=`${n.server.url}/session/${encodeURIComponent(s)}`}function vr(n,s,h){if(n.preventDefault(),n.detail>=2&&s.local){l(kt,h.id,!0);return}h.tmux_target&&Se(s,h.tmux_target,n.altKey)}function it(n,s){if(!s||!oe.active)return null;const h=oe.sideOf(Ae(n,s));return h==="a"?"A":h==="b"?"B":null}function Wt(n,s,h){n.dataTransfer&&(n.dataTransfer.setData("text/claude-mux-session",nr(Ae(s,h))),n.dataTransfer.effectAllowed="link",oe.dragging=!0)}function mt(){oe.dragging=!1}function qt(n,s){return fetch(`${ze(n)}/api/sessions/${encodeURIComponent(s.id)}/kill`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({pid:s.pid,tmux_target:s.tmux_target})})}function yt(n,s){et("Kill session",`Kill “${er(s)}”?`,()=>{qt(n,s)})}function re(n,s){for(const h of s)qt(n,h)}function Xt(n,s){const h=s.rows.filter(N=>!N.orchestrator).map(N=>N.session),f=h.length>0?`Kill ${h.length} session${h.length===1?"":"s"} in ${s.name} and remove the project?`:`Remove ${s.name} from the list? Its sessions are gone; the folder stays.`;et("Close project",f,async()=>{await Promise.all([...h,...s.dead].map(N=>qt(n,N))),n.local?It.removeProject(s.cwd):fetch(`${n.server.url}/api/projects`,{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:s.cwd})})})}async function Ut(n,s,h="claude"){const N=await(await fetch(`${ze(n)}/api/projects/new-session`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:s,agent:h})})).json();if(!N.ok){alert(`Failed to create session: ${N.detail||N.error||"Unknown error"}`);return}n.local&&(It.saveProject(s),N.record&&It.optimisticAdd(N.record));const Y=N.tmuxTarget||N.session+":0.0";Se(n,Y)}const Rt=m(()=>Vt.visible.length===1?Vt.visible[0]:Vt.machines[0]);function Gt(){e(Rt).local?e(Q)?.openAt():window.location.href=`${e(Rt).server.url}/`}async function ie(){await fetch("/api/chrome",{method:"DELETE"})}const fe=new Set([ro.lastSession]);function fr(){et("Reset local data","This clears preferences and cached data in this browser. Your projects stay on the server. The page will reload.",()=>{for(let n=localStorage.length-1;n>=0;n--){const s=localStorage.key(n);s&&s.startsWith("claude-mux-")&&!fe.has(s)&&localStorage.removeItem(s)}window.location.reload()})}const Je=m(()=>[{label:"Usage",icon:"mdi:chart-line",run:()=>{Sr("/usage")}},{label:"Close Chrome",icon:"mdi:google-chrome",run:()=>{ie()}},{label:"Refresh",icon:"mdi:refresh",run:()=>location.reload()},{label:It.paused?"Resume updates":"Pause updates",icon:It.paused?"mdi:play":"mdi:pause",run:()=>It.togglePause(),variant:It.paused?"destructive":"secondary"},...It.settings?[{label:It.settings.autoRemoteControl?"Remote Control on new sessions: on":"Remote Control on new sessions: off",icon:It.settings.autoRemoteControl?"mdi:cellphone-link":"mdi:cellphone-link-off",run:()=>It.setSetting({autoRemoteControl:!It.settings?.autoRemoteControl})}]:[],{label:"Reset data",icon:"mdi:database-refresh",run:()=>fr(),danger:!0}]);Ct(()=>{Ls.set([...e(Je),{label:"New project",icon:"mdi:plus",run:()=>Gt()}])});var Kt=Xn(),Zt=C(Kt);let Ge;var Oe=$(Zt),ye=$(Oe);Jo(ye,{});var ue=d(ye,2);let Ze;var pr=$(ue);$t(pr,"icon","mdi:magnify"),x(ue);var Qe=d(ue,2);st(Qe,()=>ns,(n,s)=>{s(n,{get open(){return e(Yt)},set open(h){l(Yt,h,!0)},children:(h,f)=>{var N=Te(),Y=C(N);st(Y,()=>ss,(V,I)=>{I(V,{class:"ghost",title:"More",children:(g,T)=>{var K=Qr();$t(K,"icon","mdi:dots-horizontal"),c(g,K)},$$slots:{default:!0}})});var q=d(Y,2);st(q,()=>os,(V,I)=>{I(V,{class:"menu",align:"end",sideOffset:6,children:(g,T)=>{var K=lt(),B=C(K);Ft(B,17,()=>e(Je),rt=>rt.label,(rt,J)=>{var W=Nn();let X;var U=$(W);R(()=>$t(U,"icon",e(J).icon)),tt(U,1,"svelte-183q6rw");var G=d(U,1,!0);x(W),R(()=>{X=tt(W,1,"mitem svelte-183q6rw",null,X,{danger:e(J).danger}),E(G,e(J).label)}),dt("click",W,()=>{l(Yt,!1),e(J).run()}),c(rt,W)}),c(g,K)},$$slots:{default:!0}})}),c(h,N)},$$slots:{default:!0}})});var se=d(Qe,2),he=$(se);$t(he,"icon","mdi:plus"),tt(he,1,"svelte-183q6rw"),Dt(),x(se),x(Oe);var tr=d(Oe,2);{var gs=n=>{var s=qn();es(s),sr(s,h=>l(M,h),()=>e(M)),dt("keydown",s,h=>{h.key==="Escape"&&(l(Mt,!1),l(nt,""))}),us(s,()=>e(nt),h=>l(nt,h)),c(n,s)};A(tr,n=>{e(Mt)&&n(gs)})}var Mr=d(tr,2);{var _s=n=>{var s=zn(),h=$(s);let f;var N=d(h,2);Ft(N,17,()=>Vt.machines,Y=>Y.server.hostname,(Y,q)=>{var V=Dn();let I;var g=$(V);let T;var K=d(g),B=d(K);{var rt=W=>{var X=Rn(),U=vt(X,!0);R(G=>E(U,G),[()=>Re(e(q))]),c(W,X)},J=m(()=>Re(e(q))>0);A(B,W=>{e(J)&&W(rt)})}x(V),R(W=>{I=tt(V,1,"m svelte-183q6rw",null,I,{on:Vt.selected===e(q).server.hostname,wants:W}),Tt(V,"title",e(q).connected?e(q).server.url:`${e(q).server.hostname} is unreachable`),T=tt(g,1,"dot svelte-183q6rw",null,T,{off:!e(q).connected}),E(K,` ${(e(q).server.hostname||"this machine")??""} `)},[()=>we(e(q))]),dt("click",V,()=>Vt.select(e(q).server.hostname)),c(Y,V)}),x(s),R(()=>f=tt(h,1,"m svelte-183q6rw",null,f,{on:Vt.selected==="all"})),dt("click",h,()=>Vt.select("all")),c(n,s)};A(Mr,n=>{Vt.fleet&&n(_s)})}var Wr=d(Mr,2),jr=$(Wr);{var ws=n=>{var s=En(),h=$(s);{var f=q=>{var V=zt();R(()=>E(V,`Nothing matches “${e(nt)??""}”.`)),c(q,V)},N=m(()=>e(nt).trim()),Y=q=>{var V=An(),I=d(C(V));Dt(),dt("click",I,Gt),c(q,V)};A(h,q=>{e(N)?q(f):q(Y,-1)})}x(s),c(n,s)};A(jr,n=>{e(dr)||n(ws)})}var Ss=d(jr,2);Ft(Ss,17,()=>e(Jt),n=>n.machine.server.hostname,(n,s)=>{const h=m(()=>Vt.fleet&&Vt.selected==="all"),f=m(()=>e(h)&&S(e(s).machine));var N=Te(),Y=C(N);{var q=g=>{var T=Mn();let K;var B=$(T);R(()=>$t(B,"icon",e(f)?"mdi:chevron-right":"mdi:chevron-down")),tt(B,1,"svelte-183q6rw");var rt=d(B,2);let J;var W=d(rt,2),X=vt(W,!0),U=d(W,4);{var G=at=>{var D=On(),F=$(D);{var ht=bt=>{var wt=ts();c(bt,wt)},L=m(()=>we(e(s).machine));A(F,bt=>{e(L)&&bt(ht)})}var j=d(F),xt=d(j);{var jt=bt=>{var wt=zt();R(()=>E(wt,`· ${e(s).quiet.length??""} quiet`)),c(bt,wt)};A(xt,bt=>{e(s).quiet.length>0&&bt(jt)})}x(D),R(bt=>E(j,` ${bt??""} live `),[()=>Re(e(s).machine)]),c(at,D)};A(U,at=>{e(f)&&at(G)})}x(T),R(at=>{K=tt(T,1,"mlabel svelte-183q6rw",null,K,{shut:e(f),wants:at}),Tt(T,"aria-expanded",!e(f)),Tt(T,"title",e(f)?"Show this machine":"Fold this machine"),J=tt(rt,1,"dot svelte-183q6rw",null,J,{off:!e(s).machine.connected}),E(X,e(s).machine.server.hostname||"this machine")},[()=>e(f)&&we(e(s).machine)]),dt("click",T,()=>k(e(s).machine)),c(g,T)};A(Y,g=>{e(h)&&g(q)})}var V=d(Y,2);{var I=g=>{var T=Un(),K=C(T);Ft(K,17,()=>e(s).cards,X=>X.cwd,(X,U)=>{p(X,()=>e(s).machine,()=>e(U))});var B=d(K,2);{var rt=X=>{const U=m(()=>e(s).quiet.flatMap(L=>L.dead));var G=In(),at=$(G),D=d($(at));{var F=L=>{var j=Wn(),xt=vt(j);R(()=>E(xt,`clear ${e(U).length??""} closed`)),dt("click",j,()=>re(e(s).machine,e(U))),c(L,j)};A(D,L=>{e(U).length>0&&e(s).machine.local&&L(F)})}x(at);var ht=d(at,2);Ft(ht,17,()=>e(s).quiet,L=>L.cwd,(L,j)=>{var xt=Vn(),jt=$(xt),bt=$(jt),wt=d(bt),pe=d(wt);{var xe=P=>{var z=jn(),Ht=vt(z);R(()=>{Tt(z,"title",`${e(j).dead.length??""} closed session${e(j).dead.length===1?"":"s"}`),E(Ht,`·${e(j).dead.length??""}`)}),c(P,z)};A(pe,P=>{e(j).dead.length>0&&P(xe)})}x(jt),br(jt,(P,z)=>gr?.(P,z),()=>({onTrigger:()=>l(H,{machine:e(s).machine,cwd:e(j).cwd},!0)}));var me=d(jt,2),Me=$(me);$t(Me,"icon","mdi:close"),x(me),x(xt),R(()=>{Tt(xt,"title",e(j).cwd),je(bt,`background:${e(j).color??""}`),E(wt,`${e(j).name??""} `)}),dt("click",jt,()=>{Ut(e(s).machine,e(j).cwd)}),dt("contextmenu",jt,P=>{P.preventDefault(),l(H,{machine:e(s).machine,cwd:e(j).cwd},!0)}),dt("click",me,()=>Xt(e(s).machine,e(j))),c(L,xt)}),x(G),c(X,G)};A(B,X=>{e(s).quiet.length>0&&X(rt)})}var J=d(B,2);{var W=X=>{var U=Ln(),G=$(U),at=d($(G),4),D=vt(at,!0);x(G);var F=d(G,2);Ft(F,17,()=>e(s).loose,L=>L.session.id,(L,j)=>{v(L,()=>e(s).machine,()=>e(j))});var ht=d(F,2);Ft(ht,17,()=>e(s).loosePanes,L=>L.target,(L,j)=>{u(L,()=>e(s).machine,()=>e(j))}),x(U),R(L=>E(D,L),[()=>e(s).loose.filter(L=>!L.orchestrator).length+e(s).loosePanes.length]),c(X,U)};A(J,X=>{(e(s).loose.length>0||e(de)&&e(s).loosePanes.length>0)&&X(W)})}c(g,T)};A(V,g=>{e(f)||g(I)})}c(n,N)}),x(Wr),x(Zt);var Vr=d(Zt,2);sr(vn(Vr,{onpick:n=>{Ut(Vt.machines[0],n)},get open(){return e(Z)},set open(n){l(Z,n,!0)}}),n=>l(Q,n,!0),()=>e(Q));var Ir=d(Vr,2);{let n=m(()=>e(H)!==null);st(Ir,()=>hs,(s,h)=>{h(s,{get open(){return e(n)},onOpenChange:f=>{f||l(H,null)},children:(f,N)=>{var Y=lt(),q=C(Y);st(q,()=>as,(V,I)=>{I(V,{class:"max-w-sm",children:(g,T)=>{var K=Bn(),B=C(K);st(B,()=>Us,(J,W)=>{W(J,{children:(X,U)=>{var G=Te(),at=C(G);st(at,()=>ls,(F,ht)=>{ht(F,{children:(L,j)=>{Dt();var xt=zt("New session");c(L,xt)},$$slots:{default:!0}})});var D=d(at,2);st(D,()=>cs,(F,ht)=>{ht(F,{children:(L,j)=>{var xt=Fn(),jt=C(xt);{var bt=wt=>{var pe=Hn(),xe=C(pe),me=d(xe);{var Me=P=>{var z=zt();R(()=>E(z,`on ${e(H).machine.server.hostname??""}`)),c(P,z)};A(me,P=>{e(H).machine.local||P(Me)})}Dt(),R(()=>E(xe,`In ${e(H).cwd??""}`)),c(wt,pe)};A(jt,wt=>{e(H)&&wt(bt)})}Dt(),c(L,xt)},$$slots:{default:!0}})}),c(X,G)},$$slots:{default:!0}})});var rt=d(B,2);Ft(rt,20,()=>Fr,J=>J,(J,W)=>{const X=m(()=>Hr[W]);var U=Yn(),G=$(U);R(()=>$t(G,"icon",e(X).icon)),tt(G,1,"svelte-183q6rw");var at=d(G,2),D=$(at),F=vt(D,!0),ht=d(D,2),L=vt(ht,!0);x(at),x(U),R(()=>{je(G,`color: ${e(X).color??""};`),E(F,e(X).label),E(L,e(X).command)}),dt("click",U,()=>ft(W)),c(J,U)}),x(rt),c(g,K)},$$slots:{default:!0}})}),c(f,Y)},$$slots:{default:!0}})})}var Lr=d(Ir,2);Hs(Lr,{get sessionId(){return e(kt)},onClose:()=>l(kt,null)});var ys=d(Lr,2);st(ys,()=>Zs,(n,s)=>{s(n,{get open(){return e(ct)},set open(h){l(ct,h,!0)},children:(h,f)=>{var N=lt(),Y=C(N);st(Y,()=>Fs,(q,V)=>{V(q,{children:(I,g)=>{var T=Te(),K=C(T);st(K,()=>Ys,(rt,J)=>{J(rt,{children:(W,X)=>{var U=Te(),G=C(U);st(G,()=>Bs,(D,F)=>{F(D,{children:(ht,L)=>{Dt();var j=zt();R(()=>E(j,e(ut))),c(ht,j)},$$slots:{default:!0}})});var at=d(G,2);st(at,()=>Xs,(D,F)=>{F(D,{children:(ht,L)=>{Dt();var j=zt();R(()=>E(j,e(St))),c(ht,j)},$$slots:{default:!0}})}),c(W,U)},$$slots:{default:!0}})});var B=d(K,2);st(B,()=>Ks,(rt,J)=>{J(rt,{children:(W,X)=>{var U=Te(),G=C(U);st(G,()=>Js,(D,F)=>{F(D,{children:(ht,L)=>{Dt();var j=zt("Cancel");c(ht,j)},$$slots:{default:!0}})});var at=d(G,2);st(at,()=>Gs,(D,F)=>{F(D,{onclick:()=>{e(Ot)(),l(ct,!1)},class:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:(ht,L)=>{Dt();var j=zt("Confirm");c(ht,j)},$$slots:{default:!0}})}),c(W,U)},$$slots:{default:!0}})}),c(I,T)},$$slots:{default:!0}})}),c(h,N)},$$slots:{default:!0}})}),R(()=>{Ge=tt(Zt,1,"panel svelte-183q6rw",null,Ge,{compact:O()}),Ze=tt(ue,1,"ghost",null,Ze,{lit:e(Mt)})}),dt("click",ue,()=>{l(Mt,!e(Mt)),e(Mt)||l(nt,"")}),dt("click",se,Gt),c(a,Kt),_t(),i()}yr(["click","contextmenu","keydown"]);export{ni as A,oi as M,ri as a,si as p,oe as s};
@@ -1 +0,0 @@
1
- import{bg as S,a8 as w,l as c,j as u,k as f}from"./RhyL4cOo.js";new URL("sveltekit-internal://");function Y(t,e){return t==="/"||e==="ignore"?t:e==="never"?t.endsWith("/")?t.slice(0,-1):t:e==="always"&&!t.endsWith("/")?t+"/":t}function q(t){return t.split("%25").map(decodeURI).join("%25")}function H(t){for(const e in t)t[e]=decodeURIComponent(t[e]);return t}function K({href:t}){return t.split("#")[0]}function B(t,e,n,r=!1){const s=new URL(t);Object.defineProperty(s,"searchParams",{value:new Proxy(s.searchParams,{get(o,a){if(a==="get"||a==="getAll"||a==="has")return(g,...U)=>(n(g),o[a](g,...U));e();const l=Reflect.get(o,a);return typeof l=="function"?l.bind(o):l}}),enumerable:!0,configurable:!0});const i=["href","pathname","search","toString","toJSON"];r&&i.push("hash");for(const o of i)Object.defineProperty(s,o,{get(){return e(),t[o]},enumerable:!0,configurable:!0});return s}function O(){}function N(...t){let e=5381;for(const n of t)if(typeof n=="string"){let r=n.length;for(;r;)e=e*33^n.charCodeAt(--r)}else if(ArrayBuffer.isView(n)){const r=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);let s=r.length;for(;s;)e=e*33^r[--s]}else throw new TypeError("value must be a string or TypedArray");return(e>>>0).toString(36)}new TextEncoder;function I(t){const e=atob(t),n=new Uint8Array(e.length);for(let r=0;r<e.length;r++)n[r]=e.charCodeAt(r);return n}const L=window.fetch;window.fetch=(t,e)=>((t instanceof Request?t.method:e?.method||"GET")!=="GET"&&h.delete(_(t)),L(t,e));const h=new Map;function D(t,e){const n=_(t,e),r=document.querySelector(n);if(r?.textContent){r.remove();let{body:s,...i}=JSON.parse(r.textContent);r.getAttribute("data-b64")!==null&&(s=I(s));const a=r.getAttribute("data-ttl");return a&&h.set(n,{body:s,init:i,ttl:1e3*Number(a)}),Promise.resolve(new Response(s,i))}return window.fetch(t,e)}function J(t,e,n){if(h.size>0){const r=_(t,n),s=h.get(r);if(s){if(performance.now()<s.ttl&&["default","force-cache","only-if-cached",void 0].includes(n?.cache))return new Response(s.body,s.init);h.delete(r)}}return window.fetch(e,n)}function _(t,e){let r=`script[data-sveltekit-fetched][data-url=${JSON.stringify(t instanceof Request?t.url:t)}]`;if(e?.headers||e?.body){const s=[];e.headers&&s.push([...new Headers(e.headers)].join(",")),e.body&&(typeof e.body=="string"||ArrayBuffer.isView(e.body))&&s.push(e.body),r+=`[data-hash="${N(...s)}"]`}return r}const x=globalThis.__sveltekit_7677w9?.base??"",P=globalThis.__sveltekit_7677w9?.assets??x??"",$="1788390982146",W="sveltekit:snapshot",X="sveltekit:scroll",z="sveltekit:states",M="sveltekit:pageurl",F="sveltekit:history",Q="sveltekit:navigation",m={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},A=location.origin;function Z(t){if(t instanceof URL)return t;let e=document.baseURI;if(!e){const n=document.getElementsByTagName("base");e=n.length?n[0].href:document.URL}return new URL(t,e)}function ee(){return{x:pageXOffset,y:pageYOffset}}function d(t,e){return t.getAttribute(`data-sveltekit-${e}`)}const v={...m,"":m.hover};function k(t){let e=t.assignedSlot??t.parentNode;return e?.nodeType===11&&(e=e.host),e}function te(t,e){for(;t&&t!==e;){if(t.nodeName.toUpperCase()==="A"&&t.hasAttribute("href"))return t;t=k(t)}}function ne(t,e,n){let r;try{if(r=new URL(t instanceof SVGAElement?t.href.baseVal:t.href,document.baseURI),n&&r.hash.match(/^#[^/]/)){const a=location.hash.split("#")[1]||"/";r.hash=`#${a}${r.hash}`}}catch{}const s=t instanceof SVGAElement?t.target.baseVal:t.target,i=!r||!!s||j(r,e,n)||(t.getAttribute("rel")||"").split(/\s+/).includes("external"),o=r?.origin===A&&t.hasAttribute("download");return{url:r,external:i,target:s,download:o}}function re(t){let e=null,n=null,r=null,s=null,i=null,o=null,a=t;for(;a&&a!==document.documentElement;)r===null&&(r=d(a,"preload-code")),s===null&&(s=d(a,"preload-data")),e===null&&(e=d(a,"keepfocus")),n===null&&(n=d(a,"noscroll")),i===null&&(i=d(a,"reload")),o===null&&(o=d(a,"replacestate")),a=k(a);function l(g){switch(g){case"":case"true":return!0;case"off":case"false":return!1;default:return}}return{preload_code:v[r??"off"],preload_data:v[s??"off"],keepfocus:l(e),noscroll:l(n),reload:l(i),replace_state:l(o)}}function se(t){const e=S(t);let n=!0;function r(){n=!0,e.update(o=>o)}function s(o){n=!1,e.set(o)}function i(o){let a;return e.subscribe(l=>{(a===void 0||n&&l!==a)&&o(a=l)})}return{notify:r,set:s,subscribe:i}}const E={v:O};function ae(){const{set:t,subscribe:e}=S(!1);let n;async function r(){clearTimeout(n);try{const s=await fetch(`${P}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!s.ok)return!1;const o=(await s.json()).version!==$;return o&&(t(!0),E.v(),clearTimeout(n)),o}catch{return!1}}return{subscribe:e,check:r}}function j(t,e,n){return t.origin!==A||!t.pathname.startsWith(e)?!0:n?t.pathname!==location.pathname:!1}function oe(t){}const T=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);[...T];const C=new Set([...T]);[...C];let b,y,p;const V=w.toString().includes("$$")||/function \w+\(\) \{\}/.test(w.toString()),R="a:";V?(b={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL(R)},y={current:null},p={current:!1}):(b=new class{#e=c({});get data(){return u(this.#e)}set data(e){f(this.#e,e)}#t=c(null);get form(){return u(this.#t)}set form(e){f(this.#t,e)}#n=c(null);get error(){return u(this.#n)}set error(e){f(this.#n,e)}#r=c({});get params(){return u(this.#r)}set params(e){f(this.#r,e)}#s=c({id:null});get route(){return u(this.#s)}set route(e){f(this.#s,e)}#a=c({});get state(){return u(this.#a)}set state(e){f(this.#a,e)}#o=c(-1);get status(){return u(this.#o)}set status(e){f(this.#o,e)}#i=c(new URL(R));get url(){return u(this.#i)}set url(e){f(this.#i,e)}},y=new class{#e=c(null);get current(){return u(this.#e)}set current(e){f(this.#e,e)}},p=new class{#e=c(!1);get current(){return u(this.#e)}set current(e){f(this.#e,e)}},E.v=()=>p.current=!0);function ue(t){Object.assign(b,t)}export{F as H,Q as N,M as P,z as S,y as a,x as b,ae as c,H as d,q as e,Y as f,J as g,D as h,j as i,te as j,ne as k,re as l,B as m,O as n,A as o,b as p,K as q,Z as r,ee as s,m as t,ue as u,X as v,W as w,se as x,oe as y};