claude-mux 0.7.0

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 (636) hide show
  1. package/.beads/README.md +81 -0
  2. package/.beads/config.yaml +62 -0
  3. package/.beads/interactions.jsonl +0 -0
  4. package/.beads/issues.jsonl +5 -0
  5. package/.beads/metadata.json +4 -0
  6. package/.eslintrc.json +25 -0
  7. package/.gitattributes +3 -0
  8. package/.prettierrc +7 -0
  9. package/CLAUDE.md +123 -0
  10. package/LICENSE +21 -0
  11. package/PLAN-beads-integration.md +250 -0
  12. package/README.md +366 -0
  13. package/dist/app.d.ts +2 -0
  14. package/dist/app.d.ts.map +1 -0
  15. package/dist/app.js +147 -0
  16. package/dist/app.js.map +1 -0
  17. package/dist/cli.d.ts +3 -0
  18. package/dist/cli.d.ts.map +1 -0
  19. package/dist/cli.js +65 -0
  20. package/dist/cli.js.map +1 -0
  21. package/dist/commands/index.d.ts +5 -0
  22. package/dist/commands/index.d.ts.map +1 -0
  23. package/dist/commands/index.js +5 -0
  24. package/dist/commands/index.js.map +1 -0
  25. package/dist/commands/serve.d.ts +8 -0
  26. package/dist/commands/serve.d.ts.map +1 -0
  27. package/dist/commands/serve.js +59 -0
  28. package/dist/commands/serve.js.map +1 -0
  29. package/dist/commands/setup.d.ts +4 -0
  30. package/dist/commands/setup.d.ts.map +1 -0
  31. package/dist/commands/setup.js +12 -0
  32. package/dist/commands/setup.js.map +1 -0
  33. package/dist/commands/tui.d.ts +9 -0
  34. package/dist/commands/tui.d.ts.map +1 -0
  35. package/dist/commands/tui.js +234 -0
  36. package/dist/commands/tui.js.map +1 -0
  37. package/dist/commands/uninstall.d.ts +4 -0
  38. package/dist/commands/uninstall.d.ts.map +1 -0
  39. package/dist/commands/uninstall.js +12 -0
  40. package/dist/commands/uninstall.js.map +1 -0
  41. package/dist/components/Header.d.ts +7 -0
  42. package/dist/components/Header.d.ts.map +1 -0
  43. package/dist/components/Header.js +14 -0
  44. package/dist/components/Header.js.map +1 -0
  45. package/dist/components/HelpDialog.d.ts +6 -0
  46. package/dist/components/HelpDialog.d.ts.map +1 -0
  47. package/dist/components/HelpDialog.js +14 -0
  48. package/dist/components/HelpDialog.js.map +1 -0
  49. package/dist/components/SessionEntry.d.ts +17 -0
  50. package/dist/components/SessionEntry.d.ts.map +1 -0
  51. package/dist/components/SessionEntry.js +102 -0
  52. package/dist/components/SessionEntry.js.map +1 -0
  53. package/dist/components/SessionList.d.ts +14 -0
  54. package/dist/components/SessionList.d.ts.map +1 -0
  55. package/dist/components/SessionList.js +57 -0
  56. package/dist/components/SessionList.js.map +1 -0
  57. package/dist/components/StatusBar.d.ts +6 -0
  58. package/dist/components/StatusBar.d.ts.map +1 -0
  59. package/dist/components/StatusBar.js +7 -0
  60. package/dist/components/StatusBar.js.map +1 -0
  61. package/dist/components/index.d.ts +6 -0
  62. package/dist/components/index.d.ts.map +1 -0
  63. package/dist/components/index.js +6 -0
  64. package/dist/components/index.js.map +1 -0
  65. package/dist/db/index.d.ts +2 -0
  66. package/dist/db/index.d.ts.map +1 -0
  67. package/dist/db/index.js +3 -0
  68. package/dist/db/index.js.map +1 -0
  69. package/dist/db/schema.d.ts +4 -0
  70. package/dist/db/schema.d.ts.map +1 -0
  71. package/dist/db/schema.js +23 -0
  72. package/dist/db/schema.js.map +1 -0
  73. package/dist/db/sessions-json.d.ts +85 -0
  74. package/dist/db/sessions-json.d.ts.map +1 -0
  75. package/dist/db/sessions-json.js +242 -0
  76. package/dist/db/sessions-json.js.map +1 -0
  77. package/dist/db/sessions.d.ts +38 -0
  78. package/dist/db/sessions.d.ts.map +1 -0
  79. package/dist/db/sessions.js +87 -0
  80. package/dist/db/sessions.js.map +1 -0
  81. package/dist/hooks/claude-mux-hook.d.ts +15 -0
  82. package/dist/hooks/claude-mux-hook.d.ts.map +1 -0
  83. package/dist/hooks/claude-mux-hook.js +396 -0
  84. package/dist/hooks/claude-mux-hook.js.map +1 -0
  85. package/dist/hooks/claude-watch-hook.d.ts +15 -0
  86. package/dist/hooks/claude-watch-hook.d.ts.map +1 -0
  87. package/dist/hooks/claude-watch-hook.js +396 -0
  88. package/dist/hooks/claude-watch-hook.js.map +1 -0
  89. package/dist/server/custom-server.d.ts +13 -0
  90. package/dist/server/custom-server.d.ts.map +1 -0
  91. package/dist/server/custom-server.js +63 -0
  92. package/dist/server/custom-server.js.map +1 -0
  93. package/dist/server/index.d.ts +9 -0
  94. package/dist/server/index.d.ts.map +1 -0
  95. package/dist/server/index.js +1143 -0
  96. package/dist/server/index.js.map +1 -0
  97. package/dist/server/middleware/cors.d.ts +2 -0
  98. package/dist/server/middleware/cors.d.ts.map +1 -0
  99. package/dist/server/middleware/cors.js +11 -0
  100. package/dist/server/middleware/cors.js.map +1 -0
  101. package/dist/server/routes/sessions.d.ts +3 -0
  102. package/dist/server/routes/sessions.d.ts.map +1 -0
  103. package/dist/server/routes/sessions.js +78 -0
  104. package/dist/server/routes/sessions.js.map +1 -0
  105. package/dist/server/routes/stream.d.ts +3 -0
  106. package/dist/server/routes/stream.d.ts.map +1 -0
  107. package/dist/server/routes/stream.js +45 -0
  108. package/dist/server/routes/stream.js.map +1 -0
  109. package/dist/server/types.d.ts +28 -0
  110. package/dist/server/types.d.ts.map +1 -0
  111. package/dist/server/types.js +2 -0
  112. package/dist/server/types.js.map +1 -0
  113. package/dist/server/watcher.d.ts +22 -0
  114. package/dist/server/watcher.d.ts.map +1 -0
  115. package/dist/server/watcher.js +119 -0
  116. package/dist/server/watcher.js.map +1 -0
  117. package/dist/server/websocket.d.ts +51 -0
  118. package/dist/server/websocket.d.ts.map +1 -0
  119. package/dist/server/websocket.js +156 -0
  120. package/dist/server/websocket.js.map +1 -0
  121. package/dist/server/ws-handlers.d.ts +174 -0
  122. package/dist/server/ws-handlers.d.ts.map +1 -0
  123. package/dist/server/ws-handlers.js +695 -0
  124. package/dist/server/ws-handlers.js.map +1 -0
  125. package/dist/setup/hooks.d.ts +44 -0
  126. package/dist/setup/hooks.d.ts.map +1 -0
  127. package/dist/setup/hooks.js +267 -0
  128. package/dist/setup/hooks.js.map +1 -0
  129. package/dist/setup/index.d.ts +3 -0
  130. package/dist/setup/index.d.ts.map +1 -0
  131. package/dist/setup/index.js +3 -0
  132. package/dist/setup/index.js.map +1 -0
  133. package/dist/setup/wizard.d.ts +4 -0
  134. package/dist/setup/wizard.d.ts.map +1 -0
  135. package/dist/setup/wizard.js +72 -0
  136. package/dist/setup/wizard.js.map +1 -0
  137. package/dist/tmux/detect.d.ts +25 -0
  138. package/dist/tmux/detect.d.ts.map +1 -0
  139. package/dist/tmux/detect.js +71 -0
  140. package/dist/tmux/detect.js.map +1 -0
  141. package/dist/tmux/navigate.d.ts +13 -0
  142. package/dist/tmux/navigate.d.ts.map +1 -0
  143. package/dist/tmux/navigate.js +41 -0
  144. package/dist/tmux/navigate.js.map +1 -0
  145. package/dist/tmux/pane.d.ts +57 -0
  146. package/dist/tmux/pane.d.ts.map +1 -0
  147. package/dist/tmux/pane.js +156 -0
  148. package/dist/tmux/pane.js.map +1 -0
  149. package/dist/tmux/resize.d.ts +10 -0
  150. package/dist/tmux/resize.d.ts.map +1 -0
  151. package/dist/tmux/resize.js +25 -0
  152. package/dist/tmux/resize.js.map +1 -0
  153. package/dist/utils/paths.d.ts +7 -0
  154. package/dist/utils/paths.d.ts.map +1 -0
  155. package/dist/utils/paths.js +9 -0
  156. package/dist/utils/paths.js.map +1 -0
  157. package/dist/utils/pid.d.ts +5 -0
  158. package/dist/utils/pid.d.ts.map +1 -0
  159. package/dist/utils/pid.js +14 -0
  160. package/dist/utils/pid.js.map +1 -0
  161. package/dist/utils/version.d.ts +6 -0
  162. package/dist/utils/version.d.ts.map +1 -0
  163. package/dist/utils/version.js +6 -0
  164. package/dist/utils/version.js.map +1 -0
  165. package/dist/web/client/_app/immutable/assets/0.WptSHSUl.css +1 -0
  166. package/dist/web/client/_app/immutable/assets/2.s6Kx4oz1.css +1 -0
  167. package/dist/web/client/_app/immutable/assets/4.DoNWy7tW.css +1 -0
  168. package/dist/web/client/_app/immutable/assets/AllSessionsPanel.CGHY3HLy.css +1 -0
  169. package/dist/web/client/_app/immutable/chunks/-3mUPuLP.js +1 -0
  170. package/dist/web/client/_app/immutable/chunks/B5U4_V3d.js +1 -0
  171. package/dist/web/client/_app/immutable/chunks/BHwiZXRv.js +1 -0
  172. package/dist/web/client/_app/immutable/chunks/C9P-coqM.js +1 -0
  173. package/dist/web/client/_app/immutable/chunks/Cegv0r8x.js +1 -0
  174. package/dist/web/client/_app/immutable/chunks/DU91Ml7U.js +3 -0
  175. package/dist/web/client/_app/immutable/chunks/DmdO6ygw.js +1 -0
  176. package/dist/web/client/_app/immutable/chunks/HKNo9LID.js +5 -0
  177. package/dist/web/client/_app/immutable/chunks/U4ip-C0d.js +2 -0
  178. package/dist/web/client/_app/immutable/chunks/cgUjKIhX.js +2 -0
  179. package/dist/web/client/_app/immutable/entry/app.CGIBnoln.js +2 -0
  180. package/dist/web/client/_app/immutable/entry/start.CJk8zB1j.js +1 -0
  181. package/dist/web/client/_app/immutable/nodes/0.CqlJ9a31.js +1 -0
  182. package/dist/web/client/_app/immutable/nodes/1.BQUZh2-w.js +1 -0
  183. package/dist/web/client/_app/immutable/nodes/2.CCV1YdgF.js +1 -0
  184. package/dist/web/client/_app/immutable/nodes/3.D9tDCdq8.js +1 -0
  185. package/dist/web/client/_app/immutable/nodes/4.BqPyNkFA.js +6 -0
  186. package/dist/web/client/_app/version.json +1 -0
  187. package/dist/web/client/robots.txt +3 -0
  188. package/dist/web/env.js +32 -0
  189. package/dist/web/handler.js +744 -0
  190. package/dist/web/index.js +49 -0
  191. package/dist/web/server/chunks/0-BHWsmCJv.js +23 -0
  192. package/dist/web/server/chunks/0-BHWsmCJv.js.map +1 -0
  193. package/dist/web/server/chunks/1-YRx6A8Tm.js +17 -0
  194. package/dist/web/server/chunks/1-YRx6A8Tm.js.map +1 -0
  195. package/dist/web/server/chunks/2-eC6JuGAo.js +22 -0
  196. package/dist/web/server/chunks/2-eC6JuGAo.js.map +1 -0
  197. package/dist/web/server/chunks/3-Bk-wV20p.js +32 -0
  198. package/dist/web/server/chunks/3-Bk-wV20p.js.map +1 -0
  199. package/dist/web/server/chunks/4-nteBgDrW.js +21 -0
  200. package/dist/web/server/chunks/4-nteBgDrW.js.map +1 -0
  201. package/dist/web/server/chunks/AllSessionsPanel.svelte_svelte_type_style_lang-Bt4B0-oi.js +35 -0
  202. package/dist/web/server/chunks/AllSessionsPanel.svelte_svelte_type_style_lang-Bt4B0-oi.js.map +1 -0
  203. package/dist/web/server/chunks/_layout.svelte-BIF9eZCY.js +453 -0
  204. package/dist/web/server/chunks/_layout.svelte-BIF9eZCY.js.map +1 -0
  205. package/dist/web/server/chunks/_page.svelte-Be6iabRn.js +34 -0
  206. package/dist/web/server/chunks/_page.svelte-Be6iabRn.js.map +1 -0
  207. package/dist/web/server/chunks/_page.svelte-C_fGJVSE.js +576 -0
  208. package/dist/web/server/chunks/_page.svelte-C_fGJVSE.js.map +1 -0
  209. package/dist/web/server/chunks/_page.svelte-CnfJk6cu.js +2722 -0
  210. package/dist/web/server/chunks/_page.svelte-CnfJk6cu.js.map +1 -0
  211. package/dist/web/server/chunks/_server.ts-3WAmKvn2.js +34 -0
  212. package/dist/web/server/chunks/_server.ts-3WAmKvn2.js.map +1 -0
  213. package/dist/web/server/chunks/_server.ts-BAWJCSFb.js +29 -0
  214. package/dist/web/server/chunks/_server.ts-BAWJCSFb.js.map +1 -0
  215. package/dist/web/server/chunks/_server.ts-BPpMOZCm.js +24 -0
  216. package/dist/web/server/chunks/_server.ts-BPpMOZCm.js.map +1 -0
  217. package/dist/web/server/chunks/_server.ts-BUKgRb6U.js +13 -0
  218. package/dist/web/server/chunks/_server.ts-BUKgRb6U.js.map +1 -0
  219. package/dist/web/server/chunks/_server.ts-BVHUS8fm.js +41 -0
  220. package/dist/web/server/chunks/_server.ts-BVHUS8fm.js.map +1 -0
  221. package/dist/web/server/chunks/_server.ts-BrF3od0O.js +45 -0
  222. package/dist/web/server/chunks/_server.ts-BrF3od0O.js.map +1 -0
  223. package/dist/web/server/chunks/_server.ts-C4oPmOJR.js +38 -0
  224. package/dist/web/server/chunks/_server.ts-C4oPmOJR.js.map +1 -0
  225. package/dist/web/server/chunks/_server.ts-CDAUUmG_.js +21 -0
  226. package/dist/web/server/chunks/_server.ts-CDAUUmG_.js.map +1 -0
  227. package/dist/web/server/chunks/_server.ts-CR0uWvpz.js +24 -0
  228. package/dist/web/server/chunks/_server.ts-CR0uWvpz.js.map +1 -0
  229. package/dist/web/server/chunks/_server.ts-CSqdCNGi.js +21 -0
  230. package/dist/web/server/chunks/_server.ts-CSqdCNGi.js.map +1 -0
  231. package/dist/web/server/chunks/_server.ts-DI9fzUo9.js +52 -0
  232. package/dist/web/server/chunks/_server.ts-DI9fzUo9.js.map +1 -0
  233. package/dist/web/server/chunks/_server.ts-DNjJTClI.js +46 -0
  234. package/dist/web/server/chunks/_server.ts-DNjJTClI.js.map +1 -0
  235. package/dist/web/server/chunks/_server.ts-DdbOAkOj.js +22 -0
  236. package/dist/web/server/chunks/_server.ts-DdbOAkOj.js.map +1 -0
  237. package/dist/web/server/chunks/_server.ts-Df2isGQc.js +41 -0
  238. package/dist/web/server/chunks/_server.ts-Df2isGQc.js.map +1 -0
  239. package/dist/web/server/chunks/_server.ts-Vpw25_-3.js +12 -0
  240. package/dist/web/server/chunks/_server.ts-Vpw25_-3.js.map +1 -0
  241. package/dist/web/server/chunks/_server.ts-WldRpSRi.js +26 -0
  242. package/dist/web/server/chunks/_server.ts-WldRpSRi.js.map +1 -0
  243. package/dist/web/server/chunks/alert-dialog-description-DDA6u-nS.js +2890 -0
  244. package/dist/web/server/chunks/alert-dialog-description-DDA6u-nS.js.map +1 -0
  245. package/dist/web/server/chunks/auth-DrUf-v4J.js +51 -0
  246. package/dist/web/server/chunks/auth-DrUf-v4J.js.map +1 -0
  247. package/dist/web/server/chunks/button-D6xS9rHt.js +2335 -0
  248. package/dist/web/server/chunks/button-D6xS9rHt.js.map +1 -0
  249. package/dist/web/server/chunks/chunk-EKzHsMy_.js +42 -0
  250. package/dist/web/server/chunks/chunks-DmdqVYC7.js +58 -0
  251. package/dist/web/server/chunks/chunks-DmdqVYC7.js.map +1 -0
  252. package/dist/web/server/chunks/client-CUrSQijh.js +18 -0
  253. package/dist/web/server/chunks/client-CUrSQijh.js.map +1 -0
  254. package/dist/web/server/chunks/clsx-FzI4_gi0.js +332 -0
  255. package/dist/web/server/chunks/clsx-FzI4_gi0.js.map +1 -0
  256. package/dist/web/server/chunks/error.svelte-D-c-9pTE.js +27 -0
  257. package/dist/web/server/chunks/error.svelte-D-c-9pTE.js.map +1 -0
  258. package/dist/web/server/chunks/events-BDBlYddw.js +89 -0
  259. package/dist/web/server/chunks/events-BDBlYddw.js.map +1 -0
  260. package/dist/web/server/chunks/exports-CCurQ-Tl.js +131 -0
  261. package/dist/web/server/chunks/exports-CCurQ-Tl.js.map +1 -0
  262. package/dist/web/server/chunks/hooks.server-BK1bopsh.js +86 -0
  263. package/dist/web/server/chunks/hooks.server-BK1bopsh.js.map +1 -0
  264. package/dist/web/server/chunks/index2-BQnysSj-.js +2588 -0
  265. package/dist/web/server/chunks/index2-BQnysSj-.js.map +1 -0
  266. package/dist/web/server/chunks/internal-DLENj6YI.js +61 -0
  267. package/dist/web/server/chunks/internal-DLENj6YI.js.map +1 -0
  268. package/dist/web/server/chunks/pane-Dg3pKvsm.js +94 -0
  269. package/dist/web/server/chunks/pane-Dg3pKvsm.js.map +1 -0
  270. package/dist/web/server/chunks/sessions-json-DgfkCLO7.js +107 -0
  271. package/dist/web/server/chunks/sessions-json-DgfkCLO7.js.map +1 -0
  272. package/dist/web/server/chunks/sessions.svelte-Ds82MvkB.js +178 -0
  273. package/dist/web/server/chunks/sessions.svelte-Ds82MvkB.js.map +1 -0
  274. package/dist/web/server/chunks/state.svelte-xeAZvWZ6.js +7 -0
  275. package/dist/web/server/chunks/state.svelte-xeAZvWZ6.js.map +1 -0
  276. package/dist/web/server/chunks/ws-handlers-B4r5eSP2.js +733 -0
  277. package/dist/web/server/chunks/ws-handlers-B4r5eSP2.js.map +1 -0
  278. package/dist/web/server/index.js +4907 -0
  279. package/dist/web/server/index.js.map +1 -0
  280. package/dist/web/server/manifest.js +233 -0
  281. package/dist/web/server/manifest.js.map +1 -0
  282. package/docs/images/desktop-dashboard.png +0 -0
  283. package/docs/images/desktop-session.png +0 -0
  284. package/docs/images/mobile-dashboard.png +0 -0
  285. package/docs/images/mobile-session.png +0 -0
  286. package/docs/release-checklist.md +228 -0
  287. package/docs/removing-hooks.md +135 -0
  288. package/docs/state-transitions.md +109 -0
  289. package/package.json +71 -0
  290. package/src/app.tsx +188 -0
  291. package/src/cli.ts +83 -0
  292. package/src/commands/index.ts +4 -0
  293. package/src/commands/serve.ts +75 -0
  294. package/src/commands/setup.ts +13 -0
  295. package/src/commands/tui.ts +255 -0
  296. package/src/commands/uninstall.ts +13 -0
  297. package/src/components/Header.tsx +32 -0
  298. package/src/components/HelpDialog.tsx +45 -0
  299. package/src/components/SessionEntry.tsx +202 -0
  300. package/src/components/SessionList.tsx +98 -0
  301. package/src/components/StatusBar.tsx +26 -0
  302. package/src/components/index.ts +5 -0
  303. package/src/db/index.ts +20 -0
  304. package/src/db/sessions-json.ts +314 -0
  305. package/src/hooks/claude-mux-hook.ts +498 -0
  306. package/src/server/watcher.ts +128 -0
  307. package/src/server/ws-handlers.ts +922 -0
  308. package/src/setup/hooks.ts +333 -0
  309. package/src/setup/index.ts +2 -0
  310. package/src/setup/wizard.ts +81 -0
  311. package/src/tmux/detect.ts +87 -0
  312. package/src/tmux/navigate.ts +42 -0
  313. package/src/tmux/pane.ts +167 -0
  314. package/src/tmux/resize.ts +28 -0
  315. package/src/utils/paths.ts +11 -0
  316. package/src/utils/pid.ts +12 -0
  317. package/src/utils/version.ts +5 -0
  318. package/tests/components/Header.test.tsx +42 -0
  319. package/tests/components/SessionEntry-extended.test.tsx +165 -0
  320. package/tests/components/SessionEntry.test.tsx +138 -0
  321. package/tests/components/SessionList.test.tsx +110 -0
  322. package/tests/components/StatusBar.test.tsx +31 -0
  323. package/tests/db/index.test.ts +78 -0
  324. package/tests/db/sessions.test.ts +230 -0
  325. package/tests/server/integration.test.ts +319 -0
  326. package/tests/server/sessions.test.ts +114 -0
  327. package/tests/setup/hooks-integration.test.ts +148 -0
  328. package/tests/setup/hooks.test.ts +123 -0
  329. package/tests/tmux/detect.test.ts +54 -0
  330. package/tests/tmux/navigate.test.ts +30 -0
  331. package/tests/utils/pid.test.ts +17 -0
  332. package/tsconfig.cli.json +9 -0
  333. package/tsconfig.json +22 -0
  334. package/vitest.config.ts +29 -0
  335. package/web/.svelte-kit/adapter-bun/.vite/manifest.json +408 -0
  336. package/web/.svelte-kit/adapter-bun/_app/immutable/assets/AllSessionsPanel.BKhqOrbV.css +1 -0
  337. package/web/.svelte-kit/adapter-bun/_app/immutable/assets/_layout.WptSHSUl.css +1 -0
  338. package/web/.svelte-kit/adapter-bun/_app/immutable/assets/_page.DldLgTc-.css +1 -0
  339. package/web/.svelte-kit/adapter-bun/_app/immutable/assets/_page.DoNWy7tW.css +1 -0
  340. package/web/.svelte-kit/adapter-bun/chunks/AllSessionsPanel.svelte_svelte_type_style_lang.js +49 -0
  341. package/web/.svelte-kit/adapter-bun/chunks/alert-dialog-description.js +2670 -0
  342. package/web/.svelte-kit/adapter-bun/chunks/auth.js +59 -0
  343. package/web/.svelte-kit/adapter-bun/chunks/button.js +82 -0
  344. package/web/.svelte-kit/adapter-bun/chunks/client.js +29 -0
  345. package/web/.svelte-kit/adapter-bun/chunks/context.js +133 -0
  346. package/web/.svelte-kit/adapter-bun/chunks/environment.js +34 -0
  347. package/web/.svelte-kit/adapter-bun/chunks/events.js +121 -0
  348. package/web/.svelte-kit/adapter-bun/chunks/exports.js +174 -0
  349. package/web/.svelte-kit/adapter-bun/chunks/false.js +4 -0
  350. package/web/.svelte-kit/adapter-bun/chunks/index.js +59 -0
  351. package/web/.svelte-kit/adapter-bun/chunks/index2.js +2828 -0
  352. package/web/.svelte-kit/adapter-bun/chunks/internal.js +920 -0
  353. package/web/.svelte-kit/adapter-bun/chunks/pane.js +82 -0
  354. package/web/.svelte-kit/adapter-bun/chunks/sessions-json.js +124 -0
  355. package/web/.svelte-kit/adapter-bun/chunks/sessions.svelte.js +229 -0
  356. package/web/.svelte-kit/adapter-bun/chunks/shared.js +542 -0
  357. package/web/.svelte-kit/adapter-bun/chunks/state.svelte.js +16 -0
  358. package/web/.svelte-kit/adapter-bun/chunks/utils.js +43 -0
  359. package/web/.svelte-kit/adapter-bun/chunks/ws-handlers.js +782 -0
  360. package/web/.svelte-kit/adapter-bun/entries/endpoints/api/auth/login/_server.ts.js +22 -0
  361. package/web/.svelte-kit/adapter-bun/entries/endpoints/api/auth/logout/_server.ts.js +9 -0
  362. package/web/.svelte-kit/adapter-bun/entries/endpoints/api/beads/_server.ts.js +22 -0
  363. package/web/.svelte-kit/adapter-bun/entries/endpoints/api/browse/_server.ts.js +50 -0
  364. package/web/.svelte-kit/adapter-bun/entries/endpoints/api/chrome/_server.ts.js +30 -0
  365. package/web/.svelte-kit/adapter-bun/entries/endpoints/api/files/image/_server.ts.js +53 -0
  366. package/web/.svelte-kit/adapter-bun/entries/endpoints/api/health/_server.ts.js +7 -0
  367. package/web/.svelte-kit/adapter-bun/entries/endpoints/api/projects/new-session/_server.ts.js +44 -0
  368. package/web/.svelte-kit/adapter-bun/entries/endpoints/api/sessions/_id_/_server.ts.js +20 -0
  369. package/web/.svelte-kit/adapter-bun/entries/endpoints/api/sessions/_id_/kill/_server.ts.js +36 -0
  370. package/web/.svelte-kit/adapter-bun/entries/endpoints/api/sessions/_id_/restart/_server.ts.js +40 -0
  371. package/web/.svelte-kit/adapter-bun/entries/endpoints/api/sessions/_id_/screenshots/_server.ts.js +28 -0
  372. package/web/.svelte-kit/adapter-bun/entries/endpoints/api/sessions/_id_/send/_server.ts.js +29 -0
  373. package/web/.svelte-kit/adapter-bun/entries/endpoints/api/sessions/_server.ts.js +49 -0
  374. package/web/.svelte-kit/adapter-bun/entries/endpoints/api/sessions/_target_/output/_server.ts.js +14 -0
  375. package/web/.svelte-kit/adapter-bun/entries/endpoints/api/tmux/panes/_server.ts.js +21 -0
  376. package/web/.svelte-kit/adapter-bun/entries/fallbacks/error.svelte.js +27 -0
  377. package/web/.svelte-kit/adapter-bun/entries/hooks.server.js +105 -0
  378. package/web/.svelte-kit/adapter-bun/entries/pages/_layout.svelte.js +499 -0
  379. package/web/.svelte-kit/adapter-bun/entries/pages/_page.svelte.js +3057 -0
  380. package/web/.svelte-kit/adapter-bun/entries/pages/login/_page.server.ts.js +15 -0
  381. package/web/.svelte-kit/adapter-bun/entries/pages/login/_page.svelte.js +37 -0
  382. package/web/.svelte-kit/adapter-bun/entries/pages/session/_target_/_page.svelte.js +653 -0
  383. package/web/.svelte-kit/adapter-bun/index.js +3864 -0
  384. package/web/.svelte-kit/adapter-bun/internal.js +13 -0
  385. package/web/.svelte-kit/adapter-bun/manifest-full.js +167 -0
  386. package/web/.svelte-kit/adapter-bun/manifest.js +171 -0
  387. package/web/.svelte-kit/adapter-bun/nodes/0.js +8 -0
  388. package/web/.svelte-kit/adapter-bun/nodes/1.js +8 -0
  389. package/web/.svelte-kit/adapter-bun/nodes/2.js +8 -0
  390. package/web/.svelte-kit/adapter-bun/nodes/3.js +10 -0
  391. package/web/.svelte-kit/adapter-bun/nodes/4.js +8 -0
  392. package/web/.svelte-kit/adapter-bun/remote-entry.js +541 -0
  393. package/web/.svelte-kit/adapter-node/.vite/manifest.json +223 -0
  394. package/web/.svelte-kit/adapter-node/_app/immutable/assets/_layout.4NiX29PU.css +1 -0
  395. package/web/.svelte-kit/adapter-node/_app/immutable/assets/_page.BEMzYUGV.css +1 -0
  396. package/web/.svelte-kit/adapter-node/_app/immutable/assets/_page.DOJn7TG7.css +1 -0
  397. package/web/.svelte-kit/adapter-node/chunks/context.js +121 -0
  398. package/web/.svelte-kit/adapter-node/chunks/environment.js +34 -0
  399. package/web/.svelte-kit/adapter-node/chunks/exports.js +174 -0
  400. package/web/.svelte-kit/adapter-node/chunks/false.js +4 -0
  401. package/web/.svelte-kit/adapter-node/chunks/index.js +59 -0
  402. package/web/.svelte-kit/adapter-node/chunks/index2.js +2710 -0
  403. package/web/.svelte-kit/adapter-node/chunks/internal.js +1005 -0
  404. package/web/.svelte-kit/adapter-node/chunks/sessions-json.js +109 -0
  405. package/web/.svelte-kit/adapter-node/chunks/sessions.svelte.js +67 -0
  406. package/web/.svelte-kit/adapter-node/chunks/shared.js +542 -0
  407. package/web/.svelte-kit/adapter-node/chunks/state.svelte.js +16 -0
  408. package/web/.svelte-kit/adapter-node/chunks/utils.js +43 -0
  409. package/web/.svelte-kit/adapter-node/entries/endpoints/api/browse/_server.ts.js +50 -0
  410. package/web/.svelte-kit/adapter-node/entries/endpoints/api/health/_server.ts.js +7 -0
  411. package/web/.svelte-kit/adapter-node/entries/endpoints/api/projects/new-session/_server.ts.js +44 -0
  412. package/web/.svelte-kit/adapter-node/entries/endpoints/api/sessions/_id_/_server.ts.js +20 -0
  413. package/web/.svelte-kit/adapter-node/entries/endpoints/api/sessions/_id_/kill/_server.ts.js +30 -0
  414. package/web/.svelte-kit/adapter-node/entries/endpoints/api/sessions/_id_/send/_server.ts.js +22 -0
  415. package/web/.svelte-kit/adapter-node/entries/endpoints/api/sessions/_server.ts.js +126 -0
  416. package/web/.svelte-kit/adapter-node/entries/endpoints/api/sessions/_target_/output/_server.ts.js +14 -0
  417. package/web/.svelte-kit/adapter-node/entries/fallbacks/error.svelte.js +44 -0
  418. package/web/.svelte-kit/adapter-node/entries/pages/_layout.svelte.js +12 -0
  419. package/web/.svelte-kit/adapter-node/entries/pages/_page.svelte.js +87 -0
  420. package/web/.svelte-kit/adapter-node/entries/pages/session/_target_/_page.svelte.js +76 -0
  421. package/web/.svelte-kit/adapter-node/index.js +3864 -0
  422. package/web/.svelte-kit/adapter-node/internal.js +13 -0
  423. package/web/.svelte-kit/adapter-node/manifest-full.js +103 -0
  424. package/web/.svelte-kit/adapter-node/manifest.js +107 -0
  425. package/web/.svelte-kit/adapter-node/nodes/0.js +8 -0
  426. package/web/.svelte-kit/adapter-node/nodes/1.js +8 -0
  427. package/web/.svelte-kit/adapter-node/nodes/2.js +8 -0
  428. package/web/.svelte-kit/adapter-node/nodes/3.js +8 -0
  429. package/web/.svelte-kit/adapter-node/remote-entry.js +541 -0
  430. package/web/.svelte-kit/ambient.d.ts +187 -0
  431. package/web/.svelte-kit/generated/client/app.js +33 -0
  432. package/web/.svelte-kit/generated/client/matchers.js +1 -0
  433. package/web/.svelte-kit/generated/client/nodes/0.js +1 -0
  434. package/web/.svelte-kit/generated/client/nodes/1.js +1 -0
  435. package/web/.svelte-kit/generated/client/nodes/2.js +1 -0
  436. package/web/.svelte-kit/generated/client/nodes/3.js +1 -0
  437. package/web/.svelte-kit/generated/client/nodes/4.js +1 -0
  438. package/web/.svelte-kit/generated/client-optimized/app.js +33 -0
  439. package/web/.svelte-kit/generated/client-optimized/matchers.js +1 -0
  440. package/web/.svelte-kit/generated/client-optimized/nodes/0.js +1 -0
  441. package/web/.svelte-kit/generated/client-optimized/nodes/1.js +1 -0
  442. package/web/.svelte-kit/generated/client-optimized/nodes/2.js +1 -0
  443. package/web/.svelte-kit/generated/client-optimized/nodes/3.js +1 -0
  444. package/web/.svelte-kit/generated/client-optimized/nodes/4.js +1 -0
  445. package/web/.svelte-kit/generated/root.js +3 -0
  446. package/web/.svelte-kit/generated/root.svelte +68 -0
  447. package/web/.svelte-kit/generated/server/internal.js +53 -0
  448. package/web/.svelte-kit/non-ambient.d.ts +73 -0
  449. package/web/.svelte-kit/output/client/.vite/manifest.json +203 -0
  450. package/web/.svelte-kit/output/client/_app/immutable/assets/0.WptSHSUl.css +1 -0
  451. package/web/.svelte-kit/output/client/_app/immutable/assets/2.s6Kx4oz1.css +1 -0
  452. package/web/.svelte-kit/output/client/_app/immutable/assets/4.DoNWy7tW.css +1 -0
  453. package/web/.svelte-kit/output/client/_app/immutable/assets/AllSessionsPanel.CGHY3HLy.css +1 -0
  454. package/web/.svelte-kit/output/client/_app/immutable/chunks/-3mUPuLP.js +1 -0
  455. package/web/.svelte-kit/output/client/_app/immutable/chunks/B5U4_V3d.js +1 -0
  456. package/web/.svelte-kit/output/client/_app/immutable/chunks/BHwiZXRv.js +1 -0
  457. package/web/.svelte-kit/output/client/_app/immutable/chunks/C9P-coqM.js +1 -0
  458. package/web/.svelte-kit/output/client/_app/immutable/chunks/Cegv0r8x.js +1 -0
  459. package/web/.svelte-kit/output/client/_app/immutable/chunks/DU91Ml7U.js +3 -0
  460. package/web/.svelte-kit/output/client/_app/immutable/chunks/DmdO6ygw.js +1 -0
  461. package/web/.svelte-kit/output/client/_app/immutable/chunks/HKNo9LID.js +5 -0
  462. package/web/.svelte-kit/output/client/_app/immutable/chunks/U4ip-C0d.js +2 -0
  463. package/web/.svelte-kit/output/client/_app/immutable/chunks/cgUjKIhX.js +2 -0
  464. package/web/.svelte-kit/output/client/_app/immutable/entry/app.CGIBnoln.js +2 -0
  465. package/web/.svelte-kit/output/client/_app/immutable/entry/start.CJk8zB1j.js +1 -0
  466. package/web/.svelte-kit/output/client/_app/immutable/nodes/0.CqlJ9a31.js +1 -0
  467. package/web/.svelte-kit/output/client/_app/immutable/nodes/1.BQUZh2-w.js +1 -0
  468. package/web/.svelte-kit/output/client/_app/immutable/nodes/2.CCV1YdgF.js +1 -0
  469. package/web/.svelte-kit/output/client/_app/immutable/nodes/3.D9tDCdq8.js +1 -0
  470. package/web/.svelte-kit/output/client/_app/immutable/nodes/4.BqPyNkFA.js +6 -0
  471. package/web/.svelte-kit/output/client/_app/version.json +1 -0
  472. package/web/.svelte-kit/output/client/robots.txt +3 -0
  473. package/web/.svelte-kit/output/server/.vite/manifest.json +408 -0
  474. package/web/.svelte-kit/output/server/_app/immutable/assets/AllSessionsPanel.BKhqOrbV.css +1 -0
  475. package/web/.svelte-kit/output/server/_app/immutable/assets/_layout.WptSHSUl.css +1 -0
  476. package/web/.svelte-kit/output/server/_app/immutable/assets/_page.DldLgTc-.css +1 -0
  477. package/web/.svelte-kit/output/server/_app/immutable/assets/_page.DoNWy7tW.css +1 -0
  478. package/web/.svelte-kit/output/server/chunks/AllSessionsPanel.svelte_svelte_type_style_lang.js +49 -0
  479. package/web/.svelte-kit/output/server/chunks/alert-dialog-description.js +2670 -0
  480. package/web/.svelte-kit/output/server/chunks/auth.js +59 -0
  481. package/web/.svelte-kit/output/server/chunks/button.js +82 -0
  482. package/web/.svelte-kit/output/server/chunks/client.js +29 -0
  483. package/web/.svelte-kit/output/server/chunks/context.js +133 -0
  484. package/web/.svelte-kit/output/server/chunks/environment.js +34 -0
  485. package/web/.svelte-kit/output/server/chunks/events.js +121 -0
  486. package/web/.svelte-kit/output/server/chunks/exports.js +174 -0
  487. package/web/.svelte-kit/output/server/chunks/false.js +4 -0
  488. package/web/.svelte-kit/output/server/chunks/index.js +59 -0
  489. package/web/.svelte-kit/output/server/chunks/index2.js +2828 -0
  490. package/web/.svelte-kit/output/server/chunks/internal.js +920 -0
  491. package/web/.svelte-kit/output/server/chunks/pane.js +82 -0
  492. package/web/.svelte-kit/output/server/chunks/sessions-json.js +124 -0
  493. package/web/.svelte-kit/output/server/chunks/sessions.svelte.js +229 -0
  494. package/web/.svelte-kit/output/server/chunks/shared.js +542 -0
  495. package/web/.svelte-kit/output/server/chunks/state.svelte.js +16 -0
  496. package/web/.svelte-kit/output/server/chunks/utils.js +43 -0
  497. package/web/.svelte-kit/output/server/chunks/ws-handlers.js +782 -0
  498. package/web/.svelte-kit/output/server/entries/endpoints/api/auth/login/_server.ts.js +22 -0
  499. package/web/.svelte-kit/output/server/entries/endpoints/api/auth/logout/_server.ts.js +9 -0
  500. package/web/.svelte-kit/output/server/entries/endpoints/api/beads/_server.ts.js +22 -0
  501. package/web/.svelte-kit/output/server/entries/endpoints/api/browse/_server.ts.js +50 -0
  502. package/web/.svelte-kit/output/server/entries/endpoints/api/chrome/_server.ts.js +30 -0
  503. package/web/.svelte-kit/output/server/entries/endpoints/api/files/image/_server.ts.js +53 -0
  504. package/web/.svelte-kit/output/server/entries/endpoints/api/health/_server.ts.js +7 -0
  505. package/web/.svelte-kit/output/server/entries/endpoints/api/projects/new-session/_server.ts.js +44 -0
  506. package/web/.svelte-kit/output/server/entries/endpoints/api/sessions/_id_/_server.ts.js +20 -0
  507. package/web/.svelte-kit/output/server/entries/endpoints/api/sessions/_id_/kill/_server.ts.js +36 -0
  508. package/web/.svelte-kit/output/server/entries/endpoints/api/sessions/_id_/restart/_server.ts.js +40 -0
  509. package/web/.svelte-kit/output/server/entries/endpoints/api/sessions/_id_/screenshots/_server.ts.js +28 -0
  510. package/web/.svelte-kit/output/server/entries/endpoints/api/sessions/_id_/send/_server.ts.js +29 -0
  511. package/web/.svelte-kit/output/server/entries/endpoints/api/sessions/_server.ts.js +49 -0
  512. package/web/.svelte-kit/output/server/entries/endpoints/api/sessions/_target_/output/_server.ts.js +14 -0
  513. package/web/.svelte-kit/output/server/entries/endpoints/api/tmux/panes/_server.ts.js +21 -0
  514. package/web/.svelte-kit/output/server/entries/fallbacks/error.svelte.js +27 -0
  515. package/web/.svelte-kit/output/server/entries/hooks.server.js +105 -0
  516. package/web/.svelte-kit/output/server/entries/pages/_layout.svelte.js +499 -0
  517. package/web/.svelte-kit/output/server/entries/pages/_page.svelte.js +3057 -0
  518. package/web/.svelte-kit/output/server/entries/pages/login/_page.server.ts.js +15 -0
  519. package/web/.svelte-kit/output/server/entries/pages/login/_page.svelte.js +37 -0
  520. package/web/.svelte-kit/output/server/entries/pages/session/_target_/_page.svelte.js +653 -0
  521. package/web/.svelte-kit/output/server/index.js +3864 -0
  522. package/web/.svelte-kit/output/server/internal.js +13 -0
  523. package/web/.svelte-kit/output/server/manifest-full.js +167 -0
  524. package/web/.svelte-kit/output/server/manifest.js +167 -0
  525. package/web/.svelte-kit/output/server/nodes/0.js +8 -0
  526. package/web/.svelte-kit/output/server/nodes/1.js +8 -0
  527. package/web/.svelte-kit/output/server/nodes/2.js +8 -0
  528. package/web/.svelte-kit/output/server/nodes/3.js +10 -0
  529. package/web/.svelte-kit/output/server/nodes/4.js +8 -0
  530. package/web/.svelte-kit/output/server/remote-entry.js +541 -0
  531. package/web/.svelte-kit/tsconfig.json +58 -0
  532. package/web/.svelte-kit/types/route_meta_data.json +55 -0
  533. package/web/.svelte-kit/types/src/routes/$types.d.ts +24 -0
  534. package/web/.svelte-kit/types/src/routes/api/auth/login/$types.d.ts +10 -0
  535. package/web/.svelte-kit/types/src/routes/api/auth/logout/$types.d.ts +10 -0
  536. package/web/.svelte-kit/types/src/routes/api/beads/$types.d.ts +10 -0
  537. package/web/.svelte-kit/types/src/routes/api/browse/$types.d.ts +10 -0
  538. package/web/.svelte-kit/types/src/routes/api/chrome/$types.d.ts +10 -0
  539. package/web/.svelte-kit/types/src/routes/api/files/image/$types.d.ts +10 -0
  540. package/web/.svelte-kit/types/src/routes/api/health/$types.d.ts +10 -0
  541. package/web/.svelte-kit/types/src/routes/api/projects/new-session/$types.d.ts +10 -0
  542. package/web/.svelte-kit/types/src/routes/api/sessions/$types.d.ts +10 -0
  543. package/web/.svelte-kit/types/src/routes/api/sessions/[id]/$types.d.ts +11 -0
  544. package/web/.svelte-kit/types/src/routes/api/sessions/[id]/kill/$types.d.ts +11 -0
  545. package/web/.svelte-kit/types/src/routes/api/sessions/[id]/restart/$types.d.ts +11 -0
  546. package/web/.svelte-kit/types/src/routes/api/sessions/[id]/screenshots/$types.d.ts +11 -0
  547. package/web/.svelte-kit/types/src/routes/api/sessions/[id]/send/$types.d.ts +11 -0
  548. package/web/.svelte-kit/types/src/routes/api/sessions/[target]/output/$types.d.ts +11 -0
  549. package/web/.svelte-kit/types/src/routes/api/tmux/panes/$types.d.ts +10 -0
  550. package/web/.svelte-kit/types/src/routes/login/$types.d.ts +25 -0
  551. package/web/.svelte-kit/types/src/routes/login/proxy+page.server.ts +19 -0
  552. package/web/.svelte-kit/types/src/routes/session/[target]/$types.d.ts +19 -0
  553. package/web/README.md +42 -0
  554. package/web/components.json +16 -0
  555. package/web/package.json +35 -0
  556. package/web/src/app.css +128 -0
  557. package/web/src/app.d.ts +13 -0
  558. package/web/src/app.html +11 -0
  559. package/web/src/hooks.server.ts +156 -0
  560. package/web/src/lib/assets/favicon.svg +1 -0
  561. package/web/src/lib/components/AllSessionsPanel.svelte +789 -0
  562. package/web/src/lib/components/BeadsPanel.svelte +146 -0
  563. package/web/src/lib/components/IssueItem.svelte +287 -0
  564. package/web/src/lib/components/ScreenshotsPanel.svelte +336 -0
  565. package/web/src/lib/components/SessionsSidebar.svelte +312 -0
  566. package/web/src/lib/components/TerminalRenderer.svelte +189 -0
  567. package/web/src/lib/components/ui/alert-dialog/alert-dialog-action.svelte +18 -0
  568. package/web/src/lib/components/ui/alert-dialog/alert-dialog-cancel.svelte +18 -0
  569. package/web/src/lib/components/ui/alert-dialog/alert-dialog-content.svelte +29 -0
  570. package/web/src/lib/components/ui/alert-dialog/alert-dialog-description.svelte +17 -0
  571. package/web/src/lib/components/ui/alert-dialog/alert-dialog-footer.svelte +20 -0
  572. package/web/src/lib/components/ui/alert-dialog/alert-dialog-header.svelte +20 -0
  573. package/web/src/lib/components/ui/alert-dialog/alert-dialog-overlay.svelte +20 -0
  574. package/web/src/lib/components/ui/alert-dialog/alert-dialog-portal.svelte +7 -0
  575. package/web/src/lib/components/ui/alert-dialog/alert-dialog-title.svelte +17 -0
  576. package/web/src/lib/components/ui/alert-dialog/alert-dialog-trigger.svelte +7 -0
  577. package/web/src/lib/components/ui/alert-dialog/alert-dialog.svelte +7 -0
  578. package/web/src/lib/components/ui/alert-dialog/index.ts +37 -0
  579. package/web/src/lib/components/ui/badge/badge.svelte +50 -0
  580. package/web/src/lib/components/ui/badge/index.ts +2 -0
  581. package/web/src/lib/components/ui/button/button.svelte +86 -0
  582. package/web/src/lib/components/ui/button/index.ts +17 -0
  583. package/web/src/lib/components/ui/checkbox/checkbox.svelte +36 -0
  584. package/web/src/lib/components/ui/checkbox/index.ts +6 -0
  585. package/web/src/lib/components/ui/dialog/dialog-close.svelte +7 -0
  586. package/web/src/lib/components/ui/dialog/dialog-content.svelte +45 -0
  587. package/web/src/lib/components/ui/dialog/dialog-description.svelte +17 -0
  588. package/web/src/lib/components/ui/dialog/dialog-footer.svelte +20 -0
  589. package/web/src/lib/components/ui/dialog/dialog-header.svelte +20 -0
  590. package/web/src/lib/components/ui/dialog/dialog-overlay.svelte +20 -0
  591. package/web/src/lib/components/ui/dialog/dialog-portal.svelte +7 -0
  592. package/web/src/lib/components/ui/dialog/dialog-title.svelte +17 -0
  593. package/web/src/lib/components/ui/dialog/dialog-trigger.svelte +7 -0
  594. package/web/src/lib/components/ui/dialog/dialog.svelte +7 -0
  595. package/web/src/lib/components/ui/dialog/index.ts +34 -0
  596. package/web/src/lib/components/ui/scroll-area/index.ts +10 -0
  597. package/web/src/lib/components/ui/scroll-area/scroll-area-scrollbar.svelte +31 -0
  598. package/web/src/lib/components/ui/scroll-area/scroll-area.svelte +43 -0
  599. package/web/src/lib/components/ui/textarea/index.ts +7 -0
  600. package/web/src/lib/components/ui/textarea/textarea.svelte +23 -0
  601. package/web/src/lib/index.ts +1 -0
  602. package/web/src/lib/server/auth.ts +90 -0
  603. package/web/src/lib/stores/beads.svelte.ts +163 -0
  604. package/web/src/lib/stores/input-injection.svelte.ts +39 -0
  605. package/web/src/lib/stores/preferences.svelte.ts +55 -0
  606. package/web/src/lib/stores/sessions.svelte.ts +108 -0
  607. package/web/src/lib/stores/terminal.svelte.ts +96 -0
  608. package/web/src/lib/stores/websocket-base.svelte.ts +209 -0
  609. package/web/src/lib/types/terminal.ts +31 -0
  610. package/web/src/lib/utils/terminal-parser.ts +239 -0
  611. package/web/src/lib/utils.ts +13 -0
  612. package/web/src/routes/+layout.svelte +450 -0
  613. package/web/src/routes/+page.svelte +19 -0
  614. package/web/src/routes/api/auth/login/+server.ts +34 -0
  615. package/web/src/routes/api/auth/logout/+server.ts +10 -0
  616. package/web/src/routes/api/beads/+server.ts +28 -0
  617. package/web/src/routes/api/browse/+server.ts +59 -0
  618. package/web/src/routes/api/chrome/+server.ts +35 -0
  619. package/web/src/routes/api/files/image/+server.ts +64 -0
  620. package/web/src/routes/api/health/+server.ts +6 -0
  621. package/web/src/routes/api/projects/new-session/+server.ts +50 -0
  622. package/web/src/routes/api/sessions/+server.ts +62 -0
  623. package/web/src/routes/api/sessions/[id]/+server.ts +19 -0
  624. package/web/src/routes/api/sessions/[id]/kill/+server.ts +46 -0
  625. package/web/src/routes/api/sessions/[id]/restart/+server.ts +59 -0
  626. package/web/src/routes/api/sessions/[id]/screenshots/+server.ts +32 -0
  627. package/web/src/routes/api/sessions/[id]/send/+server.ts +31 -0
  628. package/web/src/routes/api/sessions/[target]/output/+server.ts +13 -0
  629. package/web/src/routes/api/tmux/panes/+server.ts +32 -0
  630. package/web/src/routes/login/+page.server.ts +18 -0
  631. package/web/src/routes/login/+page.svelte +69 -0
  632. package/web/src/routes/session/[target]/+page.svelte +450 -0
  633. package/web/static/robots.txt +3 -0
  634. package/web/svelte.config.js +20 -0
  635. package/web/tsconfig.json +20 -0
  636. package/web/vite.config.ts +154 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_page.svelte-CnfJk6cu.js","names":["#isMounted","#previousCallback","#previous","#trueName","#trueRequired","#trueDisabled","#trueReadonly","#toggle","#snippetProps","#props","#trueChecked","#shouldRender","#node","#onResize","#machine","#reducer","#isPresent","#contentRef","#contentId","#contentProps","#isHorizontal","#isHidden","#thumbRatio","#hasThumb","#thumbSize","#maxScrollPos","#removeUnlinkedScrollListener","#root","#width","#height","#hasSize"],"sources":["../../../../web/.svelte-kit/adapter-bun/entries/pages/_page.svelte.js"],"sourcesContent":["import { a5 as derived, a6 as attributes, a7 as bind_props, a8 as spread_props, a9 as props_id, aa as clsx, a1 as ensure_array_like, ab as element, a2 as store_get, a3 as unsubscribe_stores, Z as attr_class, a0 as attr, _ as attr_style, $ as stringify, a4 as head } from \"../../chunks/index2.js\";\nimport { g as goto } from \"../../chunks/client.js\";\nimport { s as sessionStore, p as page, g as getProjectColor, a as stateColor } from \"../../chunks/sessions.svelte.js\";\nimport { c as cn, B as Button } from \"../../chunks/button.js\";\nimport { B as Badge } from \"../../chunks/AllSessionsPanel.svelte_svelte_type_style_lang.js\";\nimport { s as styleToString, C as Context, a as attachRef, w as watch, E as ENTER, S as SPACE, i as isHTMLElement, c as createBitsAttrs, b as boolToEmptyStrOrUndef, d as boolToStr, g as getAriaChecked, m as mergeProps, e as createId, f as boxWith, n as noop, D as DialogRootState, h as DialogCloseState, j as DialogContentState, F as Focus_scope, k as Escape_layer, l as Dismissible_layer, T as Text_selection_layer, o as Scroll_lock, p as simpleBox, q as executeCallbacks, r as DOMContext, u as useId, P as Portal, t as Dialog_title$1, v as Dialog_overlay$1, A as Alert_dialog, x as Alert_dialog_content, y as Alert_dialog_header, z as Alert_dialog_title, B as Alert_dialog_description, G as Alert_dialog_footer, H as Alert_dialog_cancel, I as Alert_dialog_action } from \"../../chunks/alert-dialog-description.js\";\nimport { i as is_array, b as get_prototype_of, o as object_prototype, e as escape_html } from \"../../chunks/context.js\";\nimport \"clsx\";\nimport { o as on } from \"../../chunks/events.js\";\nconst empty = [];\nfunction snapshot(value, skip_warning = false, no_tojson = false) {\n return clone(value, /* @__PURE__ */ new Map(), \"\", empty, null, no_tojson);\n}\nfunction clone(value, cloned, path, paths, original = null, no_tojson = false) {\n if (typeof value === \"object\" && value !== null) {\n var unwrapped = cloned.get(value);\n if (unwrapped !== void 0) return unwrapped;\n if (value instanceof Map) return (\n /** @type {Snapshot<T>} */\n new Map(value)\n );\n if (value instanceof Set) return (\n /** @type {Snapshot<T>} */\n new Set(value)\n );\n if (is_array(value)) {\n var copy = (\n /** @type {Snapshot<any>} */\n Array(value.length)\n );\n cloned.set(value, copy);\n if (original !== null) {\n cloned.set(original, copy);\n }\n for (var i = 0; i < value.length; i += 1) {\n var element2 = value[i];\n if (i in value) {\n copy[i] = clone(element2, cloned, path, paths, null, no_tojson);\n }\n }\n return copy;\n }\n if (get_prototype_of(value) === object_prototype) {\n copy = {};\n cloned.set(value, copy);\n if (original !== null) {\n cloned.set(original, copy);\n }\n for (var key in value) {\n copy[key] = clone(\n // @ts-expect-error\n value[key],\n cloned,\n path,\n paths,\n null,\n no_tojson\n );\n }\n return copy;\n }\n if (value instanceof Date) {\n return (\n /** @type {Snapshot<T>} */\n structuredClone(value)\n );\n }\n if (typeof /** @type {T & { toJSON?: any } } */\n value.toJSON === \"function\" && !no_tojson) {\n return clone(\n /** @type {T & { toJSON(): any } } */\n value.toJSON(),\n cloned,\n path,\n paths,\n // Associate the instance with the toJSON clone\n value\n );\n }\n }\n if (value instanceof EventTarget) {\n return (\n /** @type {Snapshot<T>} */\n value\n );\n }\n try {\n return (\n /** @type {Snapshot<T>} */\n structuredClone(value)\n );\n } catch (e) {\n return (\n /** @type {Snapshot<T>} */\n value\n );\n }\n}\nconst srOnlyStyles = {\n position: \"absolute\",\n width: \"1px\",\n height: \"1px\",\n padding: \"0\",\n margin: \"-1px\",\n overflow: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n whiteSpace: \"nowrap\",\n borderWidth: \"0\",\n transform: \"translateX(-100%)\"\n};\nconst srOnlyStylesString = styleToString(srOnlyStyles);\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\nfunction extract(value, defaultValue) {\n if (isFunction(value)) {\n const getter = value;\n const gotten = getter();\n if (gotten === void 0) return defaultValue;\n return gotten;\n }\n if (value === void 0) return defaultValue;\n return value;\n}\nfunction useDebounce(callback, wait) {\n let context = null;\n const wait$ = extract(wait, 250);\n function debounced(...args) {\n if (context) {\n if (context.timeout) {\n clearTimeout(context.timeout);\n }\n } else {\n let resolve;\n let reject;\n const promise = new Promise((res, rej) => {\n resolve = res;\n reject = rej;\n });\n context = { timeout: null, runner: null, promise, resolve, reject };\n }\n context.runner = async () => {\n if (!context) return;\n const ctx = context;\n context = null;\n try {\n ctx.resolve(await callback.apply(this, args));\n } catch (error) {\n ctx.reject(error);\n }\n };\n context.timeout = setTimeout(context.runner, wait$);\n return context.promise;\n }\n debounced.cancel = async () => {\n if (!context || context.timeout === null) {\n await new Promise((resolve) => setTimeout(resolve, 0));\n if (!context || context.timeout === null) return;\n }\n clearTimeout(context.timeout);\n context.reject(\"Cancelled\");\n context = null;\n };\n debounced.runScheduledNow = async () => {\n if (!context || !context.timeout) {\n await new Promise((resolve) => setTimeout(resolve, 0));\n if (!context || !context.timeout) return;\n }\n clearTimeout(context.timeout);\n context.timeout = null;\n await context.runner?.();\n };\n Object.defineProperty(debounced, \"pending\", {\n enumerable: true,\n get() {\n return !!context?.timeout;\n }\n });\n return debounced;\n}\nclass IsMounted {\n #isMounted = false;\n constructor() {\n }\n get current() {\n return this.#isMounted;\n }\n}\nclass Previous {\n #previousCallback = () => void 0;\n #previous = derived(() => this.#previousCallback());\n constructor(getter, initialValue) {\n let actualPrevious = void 0;\n if (initialValue !== void 0) actualPrevious = initialValue;\n this.#previousCallback = () => {\n try {\n return actualPrevious;\n } finally {\n actualPrevious = getter();\n }\n };\n }\n get current() {\n return this.#previous();\n }\n}\nconst checkboxAttrs = createBitsAttrs({\n component: \"checkbox\",\n parts: [\"root\", \"group\", \"group-label\", \"input\"]\n});\nconst CheckboxGroupContext = new Context(\"Checkbox.Group\");\nconst CheckboxRootContext = new Context(\"Checkbox.Root\");\nclass CheckboxRootState {\n static create(opts, group = null) {\n return CheckboxRootContext.set(new CheckboxRootState(opts, group));\n }\n opts;\n group;\n #trueName = derived(() => {\n if (this.group && this.group.opts.name.current) return this.group.opts.name.current;\n return this.opts.name.current;\n });\n get trueName() {\n return this.#trueName();\n }\n set trueName($$value) {\n return this.#trueName($$value);\n }\n #trueRequired = derived(() => {\n if (this.group && this.group.opts.required.current) return true;\n return this.opts.required.current;\n });\n get trueRequired() {\n return this.#trueRequired();\n }\n set trueRequired($$value) {\n return this.#trueRequired($$value);\n }\n #trueDisabled = derived(() => {\n if (this.group && this.group.opts.disabled.current) return true;\n return this.opts.disabled.current;\n });\n get trueDisabled() {\n return this.#trueDisabled();\n }\n set trueDisabled($$value) {\n return this.#trueDisabled($$value);\n }\n #trueReadonly = derived(() => {\n if (this.group && this.group.opts.readonly.current) return true;\n return this.opts.readonly.current;\n });\n get trueReadonly() {\n return this.#trueReadonly();\n }\n set trueReadonly($$value) {\n return this.#trueReadonly($$value);\n }\n attachment;\n constructor(opts, group) {\n this.opts = opts;\n this.group = group;\n this.attachment = attachRef(this.opts.ref);\n this.onkeydown = this.onkeydown.bind(this);\n this.onclick = this.onclick.bind(this);\n watch.pre(\n [\n () => snapshot(this.group?.opts.value.current),\n () => this.opts.value.current\n ],\n ([groupValue, value]) => {\n if (!groupValue || !value) return;\n this.opts.checked.current = groupValue.includes(value);\n }\n );\n watch.pre(() => this.opts.checked.current, (checked) => {\n if (!this.group) return;\n if (checked) {\n this.group?.addValue(this.opts.value.current);\n } else {\n this.group?.removeValue(this.opts.value.current);\n }\n });\n }\n onkeydown(e) {\n if (this.trueDisabled || this.trueReadonly) return;\n if (e.key === ENTER) {\n e.preventDefault();\n if (this.opts.type.current === \"submit\") {\n const form = e.currentTarget.closest(\"form\");\n form?.requestSubmit();\n }\n return;\n }\n if (e.key === SPACE) {\n e.preventDefault();\n this.#toggle();\n }\n }\n #toggle() {\n if (this.opts.indeterminate.current) {\n this.opts.indeterminate.current = false;\n this.opts.checked.current = true;\n } else {\n this.opts.checked.current = !this.opts.checked.current;\n }\n }\n onclick(e) {\n if (this.trueDisabled || this.trueReadonly) return;\n if (this.opts.type.current === \"submit\") {\n this.#toggle();\n return;\n }\n e.preventDefault();\n this.#toggle();\n }\n #snippetProps = derived(() => ({\n checked: this.opts.checked.current,\n indeterminate: this.opts.indeterminate.current\n }));\n get snippetProps() {\n return this.#snippetProps();\n }\n set snippetProps($$value) {\n return this.#snippetProps($$value);\n }\n #props = derived(() => ({\n id: this.opts.id.current,\n role: \"checkbox\",\n type: this.opts.type.current,\n disabled: this.trueDisabled,\n \"aria-checked\": getAriaChecked(this.opts.checked.current, this.opts.indeterminate.current),\n \"aria-required\": boolToStr(this.trueRequired),\n \"aria-readonly\": boolToStr(this.trueReadonly),\n \"data-disabled\": boolToEmptyStrOrUndef(this.trueDisabled),\n \"data-readonly\": boolToEmptyStrOrUndef(this.trueReadonly),\n \"data-state\": getCheckboxDataState(this.opts.checked.current, this.opts.indeterminate.current),\n [checkboxAttrs.root]: \"\",\n onclick: this.onclick,\n onkeydown: this.onkeydown,\n ...this.attachment\n }));\n get props() {\n return this.#props();\n }\n set props($$value) {\n return this.#props($$value);\n }\n}\nclass CheckboxInputState {\n static create() {\n return new CheckboxInputState(CheckboxRootContext.get());\n }\n root;\n #trueChecked = derived(() => {\n if (!this.root.group) return this.root.opts.checked.current;\n if (this.root.opts.value.current !== void 0 && this.root.group.opts.value.current.includes(this.root.opts.value.current)) {\n return true;\n }\n return false;\n });\n get trueChecked() {\n return this.#trueChecked();\n }\n set trueChecked($$value) {\n return this.#trueChecked($$value);\n }\n #shouldRender = derived(() => Boolean(this.root.trueName));\n get shouldRender() {\n return this.#shouldRender();\n }\n set shouldRender($$value) {\n return this.#shouldRender($$value);\n }\n constructor(root) {\n this.root = root;\n this.onfocus = this.onfocus.bind(this);\n }\n onfocus(_) {\n if (!isHTMLElement(this.root.opts.ref.current)) return;\n this.root.opts.ref.current.focus();\n }\n #props = derived(() => ({\n type: \"checkbox\",\n checked: this.root.opts.checked.current === true,\n disabled: this.root.trueDisabled,\n required: this.root.trueRequired,\n name: this.root.trueName,\n value: this.root.opts.value.current,\n readonly: this.root.trueReadonly,\n onfocus: this.onfocus\n }));\n get props() {\n return this.#props();\n }\n set props($$value) {\n return this.#props($$value);\n }\n}\nfunction getCheckboxDataState(checked, indeterminate) {\n if (indeterminate) return \"indeterminate\";\n return checked ? \"checked\" : \"unchecked\";\n}\nfunction Hidden_input($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { value = void 0, $$slots, $$events, ...restProps } = $$props;\n const mergedProps = mergeProps(restProps, {\n \"aria-hidden\": \"true\",\n tabindex: -1,\n style: srOnlyStylesString\n });\n if (mergedProps.type === \"checkbox\") {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<input${attributes({ ...mergedProps, value }, void 0, void 0, void 0, 4)}/>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n $$renderer2.push(`<input${attributes({ value, ...mergedProps }, void 0, void 0, void 0, 4)}/>`);\n }\n $$renderer2.push(`<!--]-->`);\n bind_props($$props, { value });\n });\n}\nfunction Checkbox_input($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n const inputState = CheckboxInputState.create();\n if (inputState.shouldRender) {\n $$renderer2.push(\"<!--[-->\");\n Hidden_input($$renderer2, spread_props([inputState.props]));\n } else {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]-->`);\n });\n}\nfunction Checkbox$1($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n const uid = props_id($$renderer2);\n let {\n checked = false,\n ref = null,\n onCheckedChange,\n children,\n disabled = false,\n required = false,\n name = void 0,\n value = \"on\",\n id = createId(uid),\n indeterminate = false,\n onIndeterminateChange,\n child,\n type = \"button\",\n readonly,\n $$slots,\n $$events,\n ...restProps\n } = $$props;\n const group = CheckboxGroupContext.getOr(null);\n if (group && value) {\n if (group.opts.value.current.includes(value)) {\n checked = true;\n } else {\n checked = false;\n }\n }\n watch.pre(() => value, () => {\n if (group && value) {\n if (group.opts.value.current.includes(value)) {\n checked = true;\n } else {\n checked = false;\n }\n }\n });\n const rootState = CheckboxRootState.create(\n {\n checked: boxWith(() => checked, (v) => {\n checked = v;\n onCheckedChange?.(v);\n }),\n disabled: boxWith(() => disabled ?? false),\n required: boxWith(() => required),\n name: boxWith(() => name),\n value: boxWith(() => value),\n id: boxWith(() => id),\n ref: boxWith(() => ref, (v) => ref = v),\n indeterminate: boxWith(() => indeterminate, (v) => {\n indeterminate = v;\n onIndeterminateChange?.(v);\n }),\n type: boxWith(() => type),\n readonly: boxWith(() => Boolean(readonly))\n },\n group\n );\n const mergedProps = mergeProps({ ...restProps }, rootState.props);\n if (child) {\n $$renderer2.push(\"<!--[-->\");\n child($$renderer2, { props: mergedProps, ...rootState.snippetProps });\n $$renderer2.push(`<!---->`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n $$renderer2.push(`<button${attributes({ ...mergedProps })}>`);\n children?.($$renderer2, rootState.snippetProps);\n $$renderer2.push(`<!----></button>`);\n }\n $$renderer2.push(`<!--]--> `);\n Checkbox_input($$renderer2);\n $$renderer2.push(`<!---->`);\n bind_props($$props, { checked, ref, indeterminate });\n });\n}\nfunction Dialog$1($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let {\n open = false,\n onOpenChange = noop,\n onOpenChangeComplete = noop,\n children\n } = $$props;\n DialogRootState.create({\n variant: boxWith(() => \"dialog\"),\n open: boxWith(() => open, (v) => {\n open = v;\n onOpenChange(v);\n }),\n onOpenChangeComplete: boxWith(() => onOpenChangeComplete)\n });\n children?.($$renderer2);\n $$renderer2.push(`<!---->`);\n bind_props($$props, { open });\n });\n}\nfunction Dialog_close($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n const uid = props_id($$renderer2);\n let {\n children,\n child,\n id = createId(uid),\n ref = null,\n disabled = false,\n $$slots,\n $$events,\n ...restProps\n } = $$props;\n const closeState = DialogCloseState.create({\n variant: boxWith(() => \"close\"),\n id: boxWith(() => id),\n ref: boxWith(() => ref, (v) => ref = v),\n disabled: boxWith(() => Boolean(disabled))\n });\n const mergedProps = mergeProps(restProps, closeState.props);\n if (child) {\n $$renderer2.push(\"<!--[-->\");\n child($$renderer2, { props: mergedProps });\n $$renderer2.push(`<!---->`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n $$renderer2.push(`<button${attributes({ ...mergedProps })}>`);\n children?.($$renderer2);\n $$renderer2.push(`<!----></button>`);\n }\n $$renderer2.push(`<!--]-->`);\n bind_props($$props, { ref });\n });\n}\nfunction Dialog_content$1($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n const uid = props_id($$renderer2);\n let {\n id = createId(uid),\n children,\n child,\n ref = null,\n forceMount = false,\n onCloseAutoFocus = noop,\n onOpenAutoFocus = noop,\n onEscapeKeydown = noop,\n onInteractOutside = noop,\n trapFocus = true,\n preventScroll = true,\n restoreScrollDelay = null,\n $$slots,\n $$events,\n ...restProps\n } = $$props;\n const contentState = DialogContentState.create({\n id: boxWith(() => id),\n ref: boxWith(() => ref, (v) => ref = v)\n });\n const mergedProps = mergeProps(restProps, contentState.props);\n if (contentState.shouldRender || forceMount) {\n $$renderer2.push(\"<!--[-->\");\n {\n let focusScope = function($$renderer3, { props: focusScopeProps }) {\n Escape_layer($$renderer3, spread_props([\n mergedProps,\n {\n enabled: contentState.root.opts.open.current,\n ref: contentState.opts.ref,\n onEscapeKeydown: (e) => {\n onEscapeKeydown(e);\n if (e.defaultPrevented) return;\n contentState.root.handleClose();\n },\n children: ($$renderer4) => {\n Dismissible_layer($$renderer4, spread_props([\n mergedProps,\n {\n ref: contentState.opts.ref,\n enabled: contentState.root.opts.open.current,\n onInteractOutside: (e) => {\n onInteractOutside(e);\n if (e.defaultPrevented) return;\n contentState.root.handleClose();\n },\n children: ($$renderer5) => {\n Text_selection_layer($$renderer5, spread_props([\n mergedProps,\n {\n ref: contentState.opts.ref,\n enabled: contentState.root.opts.open.current,\n children: ($$renderer6) => {\n if (child) {\n $$renderer6.push(\"<!--[-->\");\n if (contentState.root.opts.open.current) {\n $$renderer6.push(\"<!--[-->\");\n Scroll_lock($$renderer6, { preventScroll, restoreScrollDelay });\n } else {\n $$renderer6.push(\"<!--[!-->\");\n }\n $$renderer6.push(`<!--]--> `);\n child($$renderer6, {\n props: mergeProps(mergedProps, focusScopeProps),\n ...contentState.snippetProps\n });\n $$renderer6.push(`<!---->`);\n } else {\n $$renderer6.push(\"<!--[!-->\");\n Scroll_lock($$renderer6, { preventScroll });\n $$renderer6.push(`<!----> <div${attributes({ ...mergeProps(mergedProps, focusScopeProps) })}>`);\n children?.($$renderer6);\n $$renderer6.push(`<!----></div>`);\n }\n $$renderer6.push(`<!--]-->`);\n },\n $$slots: { default: true }\n }\n ]));\n },\n $$slots: { default: true }\n }\n ]));\n },\n $$slots: { default: true }\n }\n ]));\n };\n Focus_scope($$renderer2, {\n ref: contentState.opts.ref,\n loop: true,\n trapFocus,\n enabled: contentState.root.opts.open.current,\n onOpenAutoFocus,\n onCloseAutoFocus,\n focusScope\n });\n }\n } else {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]-->`);\n bind_props($$props, { ref });\n });\n}\nclass SvelteResizeObserver {\n #node;\n #onResize;\n constructor(node, onResize) {\n this.#node = node;\n this.#onResize = onResize;\n this.handler = this.handler.bind(this);\n }\n handler() {\n let rAF = 0;\n const _node = this.#node();\n if (!_node) return;\n const resizeObserver = new ResizeObserver(() => {\n cancelAnimationFrame(rAF);\n rAF = window.requestAnimationFrame(this.#onResize);\n });\n resizeObserver.observe(_node);\n return () => {\n window.cancelAnimationFrame(rAF);\n resizeObserver.unobserve(_node);\n };\n }\n}\nclass StateMachine {\n state;\n #machine;\n constructor(initialState, machine) {\n this.state = simpleBox(initialState);\n this.#machine = machine;\n this.dispatch = this.dispatch.bind(this);\n }\n #reducer(event) {\n const nextState = this.#machine[this.state.current][event];\n return nextState ?? this.state.current;\n }\n dispatch(event) {\n this.state.current = this.#reducer(event);\n }\n}\nconst presenceMachine = {\n mounted: { UNMOUNT: \"unmounted\", ANIMATION_OUT: \"unmountSuspended\" },\n unmountSuspended: { MOUNT: \"mounted\", ANIMATION_END: \"unmounted\" },\n unmounted: { MOUNT: \"mounted\" }\n};\nclass Presence {\n opts;\n prevAnimationNameState = \"none\";\n styles = {};\n initialStatus;\n previousPresent;\n machine;\n present;\n constructor(opts) {\n this.opts = opts;\n this.present = this.opts.open;\n this.initialStatus = opts.open.current ? \"mounted\" : \"unmounted\";\n this.previousPresent = new Previous(() => this.present.current);\n this.machine = new StateMachine(this.initialStatus, presenceMachine);\n this.handleAnimationEnd = this.handleAnimationEnd.bind(this);\n this.handleAnimationStart = this.handleAnimationStart.bind(this);\n watchPresenceChange(this);\n watchStatusChange(this);\n watchRefChange(this);\n }\n /**\n * Triggering an ANIMATION_OUT during an ANIMATION_IN will fire an `animationcancel`\n * event for ANIMATION_IN after we have entered `unmountSuspended` state. So, we\n * make sure we only trigger ANIMATION_END for the currently active animation.\n */\n handleAnimationEnd(event) {\n if (!this.opts.ref.current) return;\n const currAnimationName = getAnimationName(this.opts.ref.current);\n const isCurrentAnimation = currAnimationName.includes(event.animationName) || currAnimationName === \"none\";\n if (event.target === this.opts.ref.current && isCurrentAnimation) {\n this.machine.dispatch(\"ANIMATION_END\");\n }\n }\n handleAnimationStart(event) {\n if (!this.opts.ref.current) return;\n if (event.target === this.opts.ref.current) {\n this.prevAnimationNameState = getAnimationName(this.opts.ref.current);\n }\n }\n #isPresent = derived(() => {\n return [\"mounted\", \"unmountSuspended\"].includes(this.machine.state.current);\n });\n get isPresent() {\n return this.#isPresent();\n }\n set isPresent($$value) {\n return this.#isPresent($$value);\n }\n}\nfunction watchPresenceChange(state) {\n watch(() => state.present.current, () => {\n if (!state.opts.ref.current) return;\n const hasPresentChanged = state.present.current !== state.previousPresent.current;\n if (!hasPresentChanged) return;\n const prevAnimationName = state.prevAnimationNameState;\n const currAnimationName = getAnimationName(state.opts.ref.current);\n if (state.present.current) {\n state.machine.dispatch(\"MOUNT\");\n } else if (currAnimationName === \"none\" || state.styles.display === \"none\") {\n state.machine.dispatch(\"UNMOUNT\");\n } else {\n const isAnimating = prevAnimationName !== currAnimationName;\n if (state.previousPresent.current && isAnimating) {\n state.machine.dispatch(\"ANIMATION_OUT\");\n } else {\n state.machine.dispatch(\"UNMOUNT\");\n }\n }\n });\n}\nfunction watchStatusChange(state) {\n watch(() => state.machine.state.current, () => {\n if (!state.opts.ref.current) return;\n const currAnimationName = getAnimationName(state.opts.ref.current);\n state.prevAnimationNameState = state.machine.state.current === \"mounted\" ? currAnimationName : \"none\";\n });\n}\nfunction watchRefChange(state) {\n watch(() => state.opts.ref.current, () => {\n if (!state.opts.ref.current) return;\n state.styles = getComputedStyle(state.opts.ref.current);\n return executeCallbacks(on(state.opts.ref.current, \"animationstart\", state.handleAnimationStart), on(state.opts.ref.current, \"animationcancel\", state.handleAnimationEnd), on(state.opts.ref.current, \"animationend\", state.handleAnimationEnd));\n });\n}\nfunction getAnimationName(node) {\n return node ? getComputedStyle(node).animationName || \"none\" : \"none\";\n}\nfunction Presence_layer($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { open, forceMount, presence, ref } = $$props;\n const presenceState = new Presence({ open: boxWith(() => open), ref });\n if (forceMount || open || presenceState.isPresent) {\n $$renderer2.push(\"<!--[-->\");\n presence?.($$renderer2, { present: presenceState.isPresent });\n $$renderer2.push(`<!---->`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]-->`);\n });\n}\nfunction clamp(n, min, max) {\n return Math.min(max, Math.max(min, n));\n}\nconst scrollAreaAttrs = createBitsAttrs({\n component: \"scroll-area\",\n parts: [\"root\", \"viewport\", \"corner\", \"thumb\", \"scrollbar\"]\n});\nconst ScrollAreaRootContext = new Context(\"ScrollArea.Root\");\nconst ScrollAreaScrollbarContext = new Context(\"ScrollArea.Scrollbar\");\nconst ScrollAreaScrollbarVisibleContext = new Context(\"ScrollArea.ScrollbarVisible\");\nconst ScrollAreaScrollbarAxisContext = new Context(\"ScrollArea.ScrollbarAxis\");\nconst ScrollAreaScrollbarSharedContext = new Context(\"ScrollArea.ScrollbarShared\");\nclass ScrollAreaRootState {\n static create(opts) {\n return ScrollAreaRootContext.set(new ScrollAreaRootState(opts));\n }\n opts;\n attachment;\n scrollAreaNode = null;\n viewportNode = null;\n contentNode = null;\n scrollbarXNode = null;\n scrollbarYNode = null;\n cornerWidth = 0;\n cornerHeight = 0;\n scrollbarXEnabled = false;\n scrollbarYEnabled = false;\n domContext;\n constructor(opts) {\n this.opts = opts;\n this.attachment = attachRef(opts.ref, (v) => this.scrollAreaNode = v);\n this.domContext = new DOMContext(opts.ref);\n }\n #props = derived(() => ({\n id: this.opts.id.current,\n dir: this.opts.dir.current,\n style: {\n position: \"relative\",\n \"--bits-scroll-area-corner-height\": `${this.cornerHeight}px`,\n \"--bits-scroll-area-corner-width\": `${this.cornerWidth}px`\n },\n [scrollAreaAttrs.root]: \"\",\n ...this.attachment\n }));\n get props() {\n return this.#props();\n }\n set props($$value) {\n return this.#props($$value);\n }\n}\nclass ScrollAreaViewportState {\n static create(opts) {\n return new ScrollAreaViewportState(opts, ScrollAreaRootContext.get());\n }\n opts;\n root;\n attachment;\n #contentId = simpleBox(useId());\n #contentRef = simpleBox(null);\n contentAttachment = attachRef(this.#contentRef, (v) => this.root.contentNode = v);\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(opts.ref, (v) => this.root.viewportNode = v);\n }\n #props = derived(() => ({\n id: this.opts.id.current,\n style: {\n overflowX: this.root.scrollbarXEnabled ? \"scroll\" : \"hidden\",\n overflowY: this.root.scrollbarYEnabled ? \"scroll\" : \"hidden\"\n },\n [scrollAreaAttrs.viewport]: \"\",\n ...this.attachment\n }));\n get props() {\n return this.#props();\n }\n set props($$value) {\n return this.#props($$value);\n }\n #contentProps = derived(() => ({\n id: this.#contentId.current,\n \"data-scroll-area-content\": \"\",\n style: {\n minWidth: this.root.scrollbarXEnabled ? \"fit-content\" : void 0\n },\n ...this.contentAttachment\n }));\n get contentProps() {\n return this.#contentProps();\n }\n set contentProps($$value) {\n return this.#contentProps($$value);\n }\n}\nclass ScrollAreaScrollbarState {\n static create(opts) {\n return ScrollAreaScrollbarContext.set(new ScrollAreaScrollbarState(opts, ScrollAreaRootContext.get()));\n }\n opts;\n root;\n #isHorizontal = derived(() => this.opts.orientation.current === \"horizontal\");\n get isHorizontal() {\n return this.#isHorizontal();\n }\n set isHorizontal($$value) {\n return this.#isHorizontal($$value);\n }\n hasThumb = false;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n watch(() => this.isHorizontal, (isHorizontal) => {\n if (isHorizontal) {\n this.root.scrollbarXEnabled = true;\n return () => {\n this.root.scrollbarXEnabled = false;\n };\n } else {\n this.root.scrollbarYEnabled = true;\n return () => {\n this.root.scrollbarYEnabled = false;\n };\n }\n });\n }\n}\nclass ScrollAreaScrollbarHoverState {\n static create() {\n return new ScrollAreaScrollbarHoverState(ScrollAreaScrollbarContext.get());\n }\n scrollbar;\n root;\n isVisible = false;\n constructor(scrollbar) {\n this.scrollbar = scrollbar;\n this.root = scrollbar.root;\n }\n #props = derived(() => ({ \"data-state\": this.isVisible ? \"visible\" : \"hidden\" }));\n get props() {\n return this.#props();\n }\n set props($$value) {\n return this.#props($$value);\n }\n}\nclass ScrollAreaScrollbarScrollState {\n static create() {\n return new ScrollAreaScrollbarScrollState(ScrollAreaScrollbarContext.get());\n }\n scrollbar;\n root;\n machine = new StateMachine(\"hidden\", {\n hidden: { SCROLL: \"scrolling\" },\n scrolling: { SCROLL_END: \"idle\", POINTER_ENTER: \"interacting\" },\n interacting: { SCROLL: \"interacting\", POINTER_LEAVE: \"idle\" },\n idle: {\n HIDE: \"hidden\",\n SCROLL: \"scrolling\",\n POINTER_ENTER: \"interacting\"\n }\n });\n #isHidden = derived(() => this.machine.state.current === \"hidden\");\n get isHidden() {\n return this.#isHidden();\n }\n set isHidden($$value) {\n return this.#isHidden($$value);\n }\n constructor(scrollbar) {\n this.scrollbar = scrollbar;\n this.root = scrollbar.root;\n useDebounce(() => this.machine.dispatch(\"SCROLL_END\"), 100);\n this.onpointerenter = this.onpointerenter.bind(this);\n this.onpointerleave = this.onpointerleave.bind(this);\n }\n onpointerenter(_) {\n this.machine.dispatch(\"POINTER_ENTER\");\n }\n onpointerleave(_) {\n this.machine.dispatch(\"POINTER_LEAVE\");\n }\n #props = derived(() => ({\n \"data-state\": this.machine.state.current === \"hidden\" ? \"hidden\" : \"visible\",\n onpointerenter: this.onpointerenter,\n onpointerleave: this.onpointerleave\n }));\n get props() {\n return this.#props();\n }\n set props($$value) {\n return this.#props($$value);\n }\n}\nclass ScrollAreaScrollbarAutoState {\n static create() {\n return new ScrollAreaScrollbarAutoState(ScrollAreaScrollbarContext.get());\n }\n scrollbar;\n root;\n isVisible = false;\n constructor(scrollbar) {\n this.scrollbar = scrollbar;\n this.root = scrollbar.root;\n const handleResize = useDebounce(\n () => {\n const viewportNode = this.root.viewportNode;\n if (!viewportNode) return;\n const isOverflowX = viewportNode.offsetWidth < viewportNode.scrollWidth;\n const isOverflowY = viewportNode.offsetHeight < viewportNode.scrollHeight;\n this.isVisible = this.scrollbar.isHorizontal ? isOverflowX : isOverflowY;\n },\n 10\n );\n new SvelteResizeObserver(() => this.root.viewportNode, handleResize);\n new SvelteResizeObserver(() => this.root.contentNode, handleResize);\n }\n #props = derived(() => ({ \"data-state\": this.isVisible ? \"visible\" : \"hidden\" }));\n get props() {\n return this.#props();\n }\n set props($$value) {\n return this.#props($$value);\n }\n}\nclass ScrollAreaScrollbarVisibleState {\n static create() {\n return ScrollAreaScrollbarVisibleContext.set(new ScrollAreaScrollbarVisibleState(ScrollAreaScrollbarContext.get()));\n }\n scrollbar;\n root;\n thumbNode = null;\n pointerOffset = 0;\n sizes = {\n content: 0,\n viewport: 0,\n scrollbar: { size: 0, paddingStart: 0, paddingEnd: 0 }\n };\n #thumbRatio = derived(() => getThumbRatio(this.sizes.viewport, this.sizes.content));\n get thumbRatio() {\n return this.#thumbRatio();\n }\n set thumbRatio($$value) {\n return this.#thumbRatio($$value);\n }\n #hasThumb = derived(() => Boolean(this.thumbRatio > 0 && this.thumbRatio < 1));\n get hasThumb() {\n return this.#hasThumb();\n }\n set hasThumb($$value) {\n return this.#hasThumb($$value);\n }\n prevTransformStyle = \"\";\n constructor(scrollbar) {\n this.scrollbar = scrollbar;\n this.root = scrollbar.root;\n }\n setSizes(sizes) {\n this.sizes = sizes;\n }\n getScrollPosition(pointerPos, dir) {\n return getScrollPositionFromPointer({\n pointerPos,\n pointerOffset: this.pointerOffset,\n sizes: this.sizes,\n dir\n });\n }\n onThumbPointerUp() {\n this.pointerOffset = 0;\n }\n onThumbPointerDown(pointerPos) {\n this.pointerOffset = pointerPos;\n }\n xOnThumbPositionChange() {\n if (!(this.root.viewportNode && this.thumbNode)) return;\n const scrollPos = this.root.viewportNode.scrollLeft;\n const offset = getThumbOffsetFromScroll({\n scrollPos,\n sizes: this.sizes,\n dir: this.root.opts.dir.current\n });\n const transformStyle = `translate3d(${offset}px, 0, 0)`;\n this.thumbNode.style.transform = transformStyle;\n this.prevTransformStyle = transformStyle;\n }\n xOnWheelScroll(scrollPos) {\n if (!this.root.viewportNode) return;\n this.root.viewportNode.scrollLeft = scrollPos;\n }\n xOnDragScroll(pointerPos) {\n if (!this.root.viewportNode) return;\n this.root.viewportNode.scrollLeft = this.getScrollPosition(pointerPos, this.root.opts.dir.current);\n }\n yOnThumbPositionChange() {\n if (!(this.root.viewportNode && this.thumbNode)) return;\n const scrollPos = this.root.viewportNode.scrollTop;\n const offset = getThumbOffsetFromScroll({ scrollPos, sizes: this.sizes });\n const transformStyle = `translate3d(0, ${offset}px, 0)`;\n this.thumbNode.style.transform = transformStyle;\n this.prevTransformStyle = transformStyle;\n }\n yOnWheelScroll(scrollPos) {\n if (!this.root.viewportNode) return;\n this.root.viewportNode.scrollTop = scrollPos;\n }\n yOnDragScroll(pointerPos) {\n if (!this.root.viewportNode) return;\n this.root.viewportNode.scrollTop = this.getScrollPosition(pointerPos, this.root.opts.dir.current);\n }\n}\nclass ScrollAreaScrollbarXState {\n static create(opts) {\n return ScrollAreaScrollbarAxisContext.set(new ScrollAreaScrollbarXState(opts, ScrollAreaScrollbarVisibleContext.get()));\n }\n opts;\n scrollbarVis;\n root;\n scrollbar;\n attachment;\n computedStyle;\n constructor(opts, scrollbarVis) {\n this.opts = opts;\n this.scrollbarVis = scrollbarVis;\n this.root = scrollbarVis.root;\n this.scrollbar = scrollbarVis.scrollbar;\n this.attachment = attachRef(this.scrollbar.opts.ref, (v) => this.root.scrollbarXNode = v);\n }\n onThumbPointerDown = (pointerPos) => {\n this.scrollbarVis.onThumbPointerDown(pointerPos.x);\n };\n onDragScroll = (pointerPos) => {\n this.scrollbarVis.xOnDragScroll(pointerPos.x);\n };\n onThumbPointerUp = () => {\n this.scrollbarVis.onThumbPointerUp();\n };\n onThumbPositionChange = () => {\n this.scrollbarVis.xOnThumbPositionChange();\n };\n onWheelScroll = (e, maxScrollPos) => {\n if (!this.root.viewportNode) return;\n const scrollPos = this.root.viewportNode.scrollLeft + e.deltaX;\n this.scrollbarVis.xOnWheelScroll(scrollPos);\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n e.preventDefault();\n }\n };\n onResize = () => {\n if (!(this.scrollbar.opts.ref.current && this.root.viewportNode && this.computedStyle)) return;\n this.scrollbarVis.setSizes({\n content: this.root.viewportNode.scrollWidth,\n viewport: this.root.viewportNode.offsetWidth,\n scrollbar: {\n size: this.scrollbar.opts.ref.current.clientWidth,\n paddingStart: toInt(this.computedStyle.paddingLeft),\n paddingEnd: toInt(this.computedStyle.paddingRight)\n }\n });\n };\n #thumbSize = derived(() => {\n return getThumbSize(this.scrollbarVis.sizes);\n });\n get thumbSize() {\n return this.#thumbSize();\n }\n set thumbSize($$value) {\n return this.#thumbSize($$value);\n }\n #props = derived(() => ({\n id: this.scrollbar.opts.id.current,\n \"data-orientation\": \"horizontal\",\n style: {\n bottom: 0,\n left: this.root.opts.dir.current === \"rtl\" ? \"var(--bits-scroll-area-corner-width)\" : 0,\n right: this.root.opts.dir.current === \"ltr\" ? \"var(--bits-scroll-area-corner-width)\" : 0,\n \"--bits-scroll-area-thumb-width\": `${this.thumbSize}px`\n },\n ...this.attachment\n }));\n get props() {\n return this.#props();\n }\n set props($$value) {\n return this.#props($$value);\n }\n}\nclass ScrollAreaScrollbarYState {\n static create(opts) {\n return ScrollAreaScrollbarAxisContext.set(new ScrollAreaScrollbarYState(opts, ScrollAreaScrollbarVisibleContext.get()));\n }\n opts;\n scrollbarVis;\n root;\n scrollbar;\n attachment;\n computedStyle;\n constructor(opts, scrollbarVis) {\n this.opts = opts;\n this.scrollbarVis = scrollbarVis;\n this.root = scrollbarVis.root;\n this.scrollbar = scrollbarVis.scrollbar;\n this.attachment = attachRef(this.scrollbar.opts.ref, (v) => this.root.scrollbarYNode = v);\n this.onThumbPointerDown = this.onThumbPointerDown.bind(this);\n this.onDragScroll = this.onDragScroll.bind(this);\n this.onThumbPointerUp = this.onThumbPointerUp.bind(this);\n this.onThumbPositionChange = this.onThumbPositionChange.bind(this);\n this.onWheelScroll = this.onWheelScroll.bind(this);\n this.onResize = this.onResize.bind(this);\n }\n onThumbPointerDown(pointerPos) {\n this.scrollbarVis.onThumbPointerDown(pointerPos.y);\n }\n onDragScroll(pointerPos) {\n this.scrollbarVis.yOnDragScroll(pointerPos.y);\n }\n onThumbPointerUp() {\n this.scrollbarVis.onThumbPointerUp();\n }\n onThumbPositionChange() {\n this.scrollbarVis.yOnThumbPositionChange();\n }\n onWheelScroll(e, maxScrollPos) {\n if (!this.root.viewportNode) return;\n const scrollPos = this.root.viewportNode.scrollTop + e.deltaY;\n this.scrollbarVis.yOnWheelScroll(scrollPos);\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n e.preventDefault();\n }\n }\n onResize() {\n if (!(this.scrollbar.opts.ref.current && this.root.viewportNode && this.computedStyle)) return;\n this.scrollbarVis.setSizes({\n content: this.root.viewportNode.scrollHeight,\n viewport: this.root.viewportNode.offsetHeight,\n scrollbar: {\n size: this.scrollbar.opts.ref.current.clientHeight,\n paddingStart: toInt(this.computedStyle.paddingTop),\n paddingEnd: toInt(this.computedStyle.paddingBottom)\n }\n });\n }\n #thumbSize = derived(() => {\n return getThumbSize(this.scrollbarVis.sizes);\n });\n get thumbSize() {\n return this.#thumbSize();\n }\n set thumbSize($$value) {\n return this.#thumbSize($$value);\n }\n #props = derived(() => ({\n id: this.scrollbar.opts.id.current,\n \"data-orientation\": \"vertical\",\n style: {\n top: 0,\n right: this.root.opts.dir.current === \"ltr\" ? 0 : void 0,\n left: this.root.opts.dir.current === \"rtl\" ? 0 : void 0,\n bottom: \"var(--bits-scroll-area-corner-height)\",\n \"--bits-scroll-area-thumb-height\": `${this.thumbSize}px`\n },\n ...this.attachment\n }));\n get props() {\n return this.#props();\n }\n set props($$value) {\n return this.#props($$value);\n }\n}\nclass ScrollAreaScrollbarSharedState {\n static create() {\n return ScrollAreaScrollbarSharedContext.set(new ScrollAreaScrollbarSharedState(ScrollAreaScrollbarAxisContext.get()));\n }\n scrollbarState;\n root;\n scrollbarVis;\n scrollbar;\n rect = null;\n prevWebkitUserSelect = \"\";\n handleResize;\n handleThumbPositionChange;\n handleWheelScroll;\n handleThumbPointerDown;\n handleThumbPointerUp;\n #maxScrollPos = derived(() => this.scrollbarVis.sizes.content - this.scrollbarVis.sizes.viewport);\n get maxScrollPos() {\n return this.#maxScrollPos();\n }\n set maxScrollPos($$value) {\n return this.#maxScrollPos($$value);\n }\n constructor(scrollbarState) {\n this.scrollbarState = scrollbarState;\n this.root = scrollbarState.root;\n this.scrollbarVis = scrollbarState.scrollbarVis;\n this.scrollbar = scrollbarState.scrollbarVis.scrollbar;\n this.handleResize = useDebounce(() => this.scrollbarState.onResize(), 10);\n this.handleThumbPositionChange = this.scrollbarState.onThumbPositionChange;\n this.handleWheelScroll = this.scrollbarState.onWheelScroll;\n this.handleThumbPointerDown = this.scrollbarState.onThumbPointerDown;\n this.handleThumbPointerUp = this.scrollbarState.onThumbPointerUp;\n new SvelteResizeObserver(() => this.scrollbar.opts.ref.current, this.handleResize);\n new SvelteResizeObserver(() => this.root.contentNode, this.handleResize);\n this.onpointerdown = this.onpointerdown.bind(this);\n this.onpointermove = this.onpointermove.bind(this);\n this.onpointerup = this.onpointerup.bind(this);\n }\n handleDragScroll(e) {\n if (!this.rect) return;\n const x = e.clientX - this.rect.left;\n const y = e.clientY - this.rect.top;\n this.scrollbarState.onDragScroll({ x, y });\n }\n onpointerdown(e) {\n if (e.button !== 0) return;\n const target = e.target;\n target.setPointerCapture(e.pointerId);\n this.rect = this.scrollbar.opts.ref.current?.getBoundingClientRect() ?? null;\n this.prevWebkitUserSelect = this.root.domContext.getDocument().body.style.webkitUserSelect;\n this.root.domContext.getDocument().body.style.webkitUserSelect = \"none\";\n if (this.root.viewportNode) this.root.viewportNode.style.scrollBehavior = \"auto\";\n this.handleDragScroll(e);\n }\n onpointermove(e) {\n this.handleDragScroll(e);\n }\n onpointerup(e) {\n const target = e.target;\n if (target.hasPointerCapture(e.pointerId)) {\n target.releasePointerCapture(e.pointerId);\n }\n this.root.domContext.getDocument().body.style.webkitUserSelect = this.prevWebkitUserSelect;\n if (this.root.viewportNode) this.root.viewportNode.style.scrollBehavior = \"\";\n this.rect = null;\n }\n #props = derived(() => mergeProps({\n ...this.scrollbarState.props,\n style: { position: \"absolute\", ...this.scrollbarState.props.style },\n [scrollAreaAttrs.scrollbar]: \"\",\n onpointerdown: this.onpointerdown,\n onpointermove: this.onpointermove,\n onpointerup: this.onpointerup\n }));\n get props() {\n return this.#props();\n }\n set props($$value) {\n return this.#props($$value);\n }\n}\nclass ScrollAreaThumbImplState {\n static create(opts) {\n return new ScrollAreaThumbImplState(opts, ScrollAreaScrollbarSharedContext.get());\n }\n opts;\n scrollbarState;\n attachment;\n #root;\n #removeUnlinkedScrollListener;\n #debounceScrollEnd = useDebounce(\n () => {\n if (this.#removeUnlinkedScrollListener) {\n this.#removeUnlinkedScrollListener();\n this.#removeUnlinkedScrollListener = void 0;\n }\n },\n 100\n );\n constructor(opts, scrollbarState) {\n this.opts = opts;\n this.scrollbarState = scrollbarState;\n this.#root = scrollbarState.root;\n this.attachment = attachRef(this.opts.ref, (v) => this.scrollbarState.scrollbarVis.thumbNode = v);\n this.onpointerdowncapture = this.onpointerdowncapture.bind(this);\n this.onpointerup = this.onpointerup.bind(this);\n }\n onpointerdowncapture(e) {\n const thumb = e.target;\n if (!thumb) return;\n const thumbRect = thumb.getBoundingClientRect();\n const x = e.clientX - thumbRect.left;\n const y = e.clientY - thumbRect.top;\n this.scrollbarState.handleThumbPointerDown({ x, y });\n }\n onpointerup(_) {\n this.scrollbarState.handleThumbPointerUp();\n }\n #props = derived(() => ({\n id: this.opts.id.current,\n \"data-state\": this.scrollbarState.scrollbarVis.hasThumb ? \"visible\" : \"hidden\",\n style: {\n width: \"var(--bits-scroll-area-thumb-width)\",\n height: \"var(--bits-scroll-area-thumb-height)\",\n transform: this.scrollbarState.scrollbarVis.prevTransformStyle\n },\n onpointerdowncapture: this.onpointerdowncapture,\n onpointerup: this.onpointerup,\n [scrollAreaAttrs.thumb]: \"\",\n ...this.attachment\n }));\n get props() {\n return this.#props();\n }\n set props($$value) {\n return this.#props($$value);\n }\n}\nclass ScrollAreaCornerImplState {\n static create(opts) {\n return new ScrollAreaCornerImplState(opts, ScrollAreaRootContext.get());\n }\n opts;\n root;\n attachment;\n #width = 0;\n #height = 0;\n #hasSize = derived(() => Boolean(this.#width && this.#height));\n get hasSize() {\n return this.#hasSize();\n }\n set hasSize($$value) {\n return this.#hasSize($$value);\n }\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref);\n new SvelteResizeObserver(() => this.root.scrollbarXNode, () => {\n const height = this.root.scrollbarXNode?.offsetHeight || 0;\n this.root.cornerHeight = height;\n this.#height = height;\n });\n new SvelteResizeObserver(() => this.root.scrollbarYNode, () => {\n const width = this.root.scrollbarYNode?.offsetWidth || 0;\n this.root.cornerWidth = width;\n this.#width = width;\n });\n }\n #props = derived(() => ({\n id: this.opts.id.current,\n style: {\n width: this.#width,\n height: this.#height,\n position: \"absolute\",\n right: this.root.opts.dir.current === \"ltr\" ? 0 : void 0,\n left: this.root.opts.dir.current === \"rtl\" ? 0 : void 0,\n bottom: 0\n },\n [scrollAreaAttrs.corner]: \"\",\n ...this.attachment\n }));\n get props() {\n return this.#props();\n }\n set props($$value) {\n return this.#props($$value);\n }\n}\nfunction toInt(value) {\n return value ? Number.parseInt(value, 10) : 0;\n}\nfunction getThumbRatio(viewportSize, contentSize) {\n const ratio = viewportSize / contentSize;\n return Number.isNaN(ratio) ? 0 : ratio;\n}\nfunction getThumbSize(sizes) {\n const ratio = getThumbRatio(sizes.viewport, sizes.content);\n const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const thumbSize = (sizes.scrollbar.size - scrollbarPadding) * ratio;\n return Math.max(thumbSize, 18);\n}\nfunction getScrollPositionFromPointer({ pointerPos, pointerOffset, sizes, dir = \"ltr\" }) {\n const thumbSizePx = getThumbSize(sizes);\n const thumbCenter = thumbSizePx / 2;\n const offset = pointerOffset || thumbCenter;\n const thumbOffsetFromEnd = thumbSizePx - offset;\n const minPointerPos = sizes.scrollbar.paddingStart + offset;\n const maxPointerPos = sizes.scrollbar.size - sizes.scrollbar.paddingEnd - thumbOffsetFromEnd;\n const maxScrollPos = sizes.content - sizes.viewport;\n const scrollRange = dir === \"ltr\" ? [0, maxScrollPos] : [maxScrollPos * -1, 0];\n const interpolate = linearScale([minPointerPos, maxPointerPos], scrollRange);\n return interpolate(pointerPos);\n}\nfunction getThumbOffsetFromScroll({ scrollPos, sizes, dir = \"ltr\" }) {\n const thumbSizePx = getThumbSize(sizes);\n const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const scrollbar = sizes.scrollbar.size - scrollbarPadding;\n const maxScrollPos = sizes.content - sizes.viewport;\n const maxThumbPos = scrollbar - thumbSizePx;\n const scrollClampRange = dir === \"ltr\" ? [0, maxScrollPos] : [maxScrollPos * -1, 0];\n const scrollWithoutMomentum = clamp(scrollPos, scrollClampRange[0], scrollClampRange[1]);\n const interpolate = linearScale([0, maxScrollPos], [0, maxThumbPos]);\n return interpolate(scrollWithoutMomentum);\n}\nfunction linearScale(input, output) {\n return (value) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\nfunction isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos) {\n return scrollPos > 0 && scrollPos < maxScrollPos;\n}\nfunction Scroll_area$1($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n const uid = props_id($$renderer2);\n let {\n ref = null,\n id = createId(uid),\n type = \"hover\",\n dir = \"ltr\",\n scrollHideDelay = 600,\n children,\n child,\n $$slots,\n $$events,\n ...restProps\n } = $$props;\n const rootState = ScrollAreaRootState.create({\n type: boxWith(() => type),\n dir: boxWith(() => dir),\n scrollHideDelay: boxWith(() => scrollHideDelay),\n id: boxWith(() => id),\n ref: boxWith(() => ref, (v) => ref = v)\n });\n const mergedProps = mergeProps(restProps, rootState.props);\n if (child) {\n $$renderer2.push(\"<!--[-->\");\n child($$renderer2, { props: mergedProps });\n $$renderer2.push(`<!---->`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n $$renderer2.push(`<div${attributes({ ...mergedProps })}>`);\n children?.($$renderer2);\n $$renderer2.push(`<!----></div>`);\n }\n $$renderer2.push(`<!--]-->`);\n bind_props($$props, { ref });\n });\n}\nfunction Scroll_area_viewport($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n const uid = props_id($$renderer2);\n let {\n ref = null,\n id = createId(uid),\n children,\n $$slots,\n $$events,\n ...restProps\n } = $$props;\n const viewportState = ScrollAreaViewportState.create({\n id: boxWith(() => id),\n ref: boxWith(() => ref, (v) => ref = v)\n });\n const mergedProps = mergeProps(restProps, viewportState.props);\n const mergedContentProps = mergeProps({}, viewportState.contentProps);\n $$renderer2.push(`<div${attributes({ ...mergedProps })}><div${attributes({ ...mergedContentProps })}>`);\n children?.($$renderer2);\n $$renderer2.push(`<!----></div></div>`);\n bind_props($$props, { ref });\n });\n}\nfunction Scroll_area_scrollbar_shared($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { child, children, $$slots, $$events, ...restProps } = $$props;\n const scrollbarSharedState = ScrollAreaScrollbarSharedState.create();\n const mergedProps = mergeProps(restProps, scrollbarSharedState.props);\n if (child) {\n $$renderer2.push(\"<!--[-->\");\n child($$renderer2, { props: mergedProps });\n $$renderer2.push(`<!---->`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n $$renderer2.push(`<div${attributes({ ...mergedProps })}>`);\n children?.($$renderer2);\n $$renderer2.push(`<!----></div>`);\n }\n $$renderer2.push(`<!--]-->`);\n });\n}\nfunction Scroll_area_scrollbar_x($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { $$slots, $$events, ...restProps } = $$props;\n const isMounted = new IsMounted();\n const scrollbarXState = ScrollAreaScrollbarXState.create({ mounted: boxWith(() => isMounted.current) });\n const mergedProps = mergeProps(restProps, scrollbarXState.props);\n Scroll_area_scrollbar_shared($$renderer2, spread_props([mergedProps]));\n });\n}\nfunction Scroll_area_scrollbar_y($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { $$slots, $$events, ...restProps } = $$props;\n const isMounted = new IsMounted();\n const scrollbarYState = ScrollAreaScrollbarYState.create({ mounted: boxWith(() => isMounted.current) });\n const mergedProps = mergeProps(restProps, scrollbarYState.props);\n Scroll_area_scrollbar_shared($$renderer2, spread_props([mergedProps]));\n });\n}\nfunction Scroll_area_scrollbar_visible($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { $$slots, $$events, ...restProps } = $$props;\n const scrollbarVisibleState = ScrollAreaScrollbarVisibleState.create();\n if (scrollbarVisibleState.scrollbar.opts.orientation.current === \"horizontal\") {\n $$renderer2.push(\"<!--[-->\");\n Scroll_area_scrollbar_x($$renderer2, spread_props([restProps]));\n } else {\n $$renderer2.push(\"<!--[!-->\");\n Scroll_area_scrollbar_y($$renderer2, spread_props([restProps]));\n }\n $$renderer2.push(`<!--]-->`);\n });\n}\nfunction Scroll_area_scrollbar_auto($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { forceMount = false, $$slots, $$events, ...restProps } = $$props;\n const scrollbarAutoState = ScrollAreaScrollbarAutoState.create();\n const mergedProps = mergeProps(restProps, scrollbarAutoState.props);\n {\n let presence = function($$renderer3) {\n Scroll_area_scrollbar_visible($$renderer3, spread_props([mergedProps]));\n };\n Presence_layer($$renderer2, {\n open: forceMount || scrollbarAutoState.isVisible,\n ref: scrollbarAutoState.scrollbar.opts.ref,\n presence\n });\n }\n });\n}\nfunction Scroll_area_scrollbar_scroll($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { forceMount = false, $$slots, $$events, ...restProps } = $$props;\n const scrollbarScrollState = ScrollAreaScrollbarScrollState.create();\n const mergedProps = mergeProps(restProps, scrollbarScrollState.props);\n {\n let presence = function($$renderer3) {\n Scroll_area_scrollbar_visible($$renderer3, spread_props([mergedProps]));\n };\n Presence_layer($$renderer2, spread_props([\n mergedProps,\n {\n open: forceMount || !scrollbarScrollState.isHidden,\n ref: scrollbarScrollState.scrollbar.opts.ref,\n presence,\n $$slots: { presence: true }\n }\n ]));\n }\n });\n}\nfunction Scroll_area_scrollbar_hover($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { forceMount = false, $$slots, $$events, ...restProps } = $$props;\n const scrollbarHoverState = ScrollAreaScrollbarHoverState.create();\n const scrollbarAutoState = ScrollAreaScrollbarAutoState.create();\n const mergedProps = mergeProps(restProps, scrollbarHoverState.props, scrollbarAutoState.props, {\n \"data-state\": scrollbarHoverState.isVisible ? \"visible\" : \"hidden\"\n });\n const open = forceMount || scrollbarHoverState.isVisible && scrollbarAutoState.isVisible;\n {\n let presence = function($$renderer3) {\n Scroll_area_scrollbar_visible($$renderer3, spread_props([mergedProps]));\n };\n Presence_layer($$renderer2, {\n open,\n ref: scrollbarAutoState.scrollbar.opts.ref,\n presence\n });\n }\n });\n}\nfunction Scroll_area_scrollbar$1($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n const uid = props_id($$renderer2);\n let {\n ref = null,\n id = createId(uid),\n orientation,\n $$slots,\n $$events,\n ...restProps\n } = $$props;\n const scrollbarState = ScrollAreaScrollbarState.create({\n orientation: boxWith(() => orientation),\n id: boxWith(() => id),\n ref: boxWith(() => ref, (v) => ref = v)\n });\n const type = scrollbarState.root.opts.type.current;\n if (type === \"hover\") {\n $$renderer2.push(\"<!--[-->\");\n Scroll_area_scrollbar_hover($$renderer2, spread_props([restProps, { id }]));\n } else {\n $$renderer2.push(\"<!--[!-->\");\n if (type === \"scroll\") {\n $$renderer2.push(\"<!--[-->\");\n Scroll_area_scrollbar_scroll($$renderer2, spread_props([restProps, { id }]));\n } else {\n $$renderer2.push(\"<!--[!-->\");\n if (type === \"auto\") {\n $$renderer2.push(\"<!--[-->\");\n Scroll_area_scrollbar_auto($$renderer2, spread_props([restProps, { id }]));\n } else {\n $$renderer2.push(\"<!--[!-->\");\n if (type === \"always\") {\n $$renderer2.push(\"<!--[-->\");\n Scroll_area_scrollbar_visible($$renderer2, spread_props([restProps, { id }]));\n } else {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]-->`);\n }\n $$renderer2.push(`<!--]-->`);\n }\n $$renderer2.push(`<!--]-->`);\n }\n $$renderer2.push(`<!--]-->`);\n bind_props($$props, { ref });\n });\n}\nfunction Scroll_area_thumb_impl($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let {\n ref = null,\n id,\n child,\n children,\n present,\n $$slots,\n $$events,\n ...restProps\n } = $$props;\n const isMounted = new IsMounted();\n const thumbState = ScrollAreaThumbImplState.create({\n id: boxWith(() => id),\n ref: boxWith(() => ref, (v) => ref = v),\n mounted: boxWith(() => isMounted.current)\n });\n const mergedProps = mergeProps(restProps, thumbState.props, { style: { hidden: !present } });\n if (child) {\n $$renderer2.push(\"<!--[-->\");\n child($$renderer2, { props: mergedProps });\n $$renderer2.push(`<!---->`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n $$renderer2.push(`<div${attributes({ ...mergedProps })}>`);\n children?.($$renderer2);\n $$renderer2.push(`<!----></div>`);\n }\n $$renderer2.push(`<!--]-->`);\n bind_props($$props, { ref });\n });\n}\nfunction Scroll_area_thumb($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n const uid = props_id($$renderer2);\n let {\n id = createId(uid),\n ref = null,\n forceMount = false,\n $$slots,\n $$events,\n ...restProps\n } = $$props;\n const scrollbarState = ScrollAreaScrollbarVisibleContext.get();\n let $$settled = true;\n let $$inner_renderer;\n function $$render_inner($$renderer3) {\n {\n let presence = function($$renderer4, { present }) {\n Scroll_area_thumb_impl($$renderer4, spread_props([\n restProps,\n {\n id,\n present,\n get ref() {\n return ref;\n },\n set ref($$value) {\n ref = $$value;\n $$settled = false;\n }\n }\n ]));\n };\n Presence_layer($$renderer3, {\n open: forceMount || scrollbarState.hasThumb,\n ref: scrollbarState.scrollbar.opts.ref,\n presence\n });\n }\n }\n do {\n $$settled = true;\n $$inner_renderer = $$renderer2.copy();\n $$render_inner($$inner_renderer);\n } while (!$$settled);\n $$renderer2.subsume($$inner_renderer);\n bind_props($$props, { ref });\n });\n}\nfunction Scroll_area_corner_impl($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let {\n ref = null,\n id,\n children,\n child,\n $$slots,\n $$events,\n ...restProps\n } = $$props;\n const cornerState = ScrollAreaCornerImplState.create({\n id: boxWith(() => id),\n ref: boxWith(() => ref, (v) => ref = v)\n });\n const mergedProps = mergeProps(restProps, cornerState.props);\n if (child) {\n $$renderer2.push(\"<!--[-->\");\n child($$renderer2, { props: mergedProps });\n $$renderer2.push(`<!---->`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n $$renderer2.push(`<div${attributes({ ...mergedProps })}>`);\n children?.($$renderer2);\n $$renderer2.push(`<!----></div>`);\n }\n $$renderer2.push(`<!--]-->`);\n bind_props($$props, { ref });\n });\n}\nfunction Scroll_area_corner($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n const uid = props_id($$renderer2);\n let {\n ref = null,\n id = createId(uid),\n $$slots,\n $$events,\n ...restProps\n } = $$props;\n const scrollAreaState = ScrollAreaRootContext.get();\n const hasBothScrollbarsVisible = Boolean(scrollAreaState.scrollbarXNode && scrollAreaState.scrollbarYNode);\n const hasCorner = scrollAreaState.opts.type.current !== \"scroll\" && hasBothScrollbarsVisible;\n let $$settled = true;\n let $$inner_renderer;\n function $$render_inner($$renderer3) {\n if (hasCorner) {\n $$renderer3.push(\"<!--[-->\");\n Scroll_area_corner_impl($$renderer3, spread_props([\n restProps,\n {\n id,\n get ref() {\n return ref;\n },\n set ref($$value) {\n ref = $$value;\n $$settled = false;\n }\n }\n ]));\n } else {\n $$renderer3.push(\"<!--[!-->\");\n }\n $$renderer3.push(`<!--]-->`);\n }\n do {\n $$settled = true;\n $$inner_renderer = $$renderer2.copy();\n $$render_inner($$inner_renderer);\n } while (!$$settled);\n $$renderer2.subsume($$inner_renderer);\n bind_props($$props, { ref });\n });\n}\nconst defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-width\": 2,\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\"\n};\nfunction Icon($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n const {\n name,\n color = \"currentColor\",\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth = false,\n iconNode = [],\n children,\n $$slots,\n $$events,\n ...props\n } = $$props;\n $$renderer2.push(`<svg${attributes(\n {\n ...defaultAttributes,\n ...props,\n width: size,\n height: size,\n stroke: color,\n \"stroke-width\": absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n class: clsx([\"lucide-icon lucide\", name && `lucide-${name}`, props.class])\n },\n void 0,\n void 0,\n void 0,\n 3\n )}><!--[-->`);\n const each_array = ensure_array_like(iconNode);\n for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n let [tag, attrs] = each_array[$$index];\n element($$renderer2, tag, () => {\n $$renderer2.push(`${attributes({ ...attrs }, void 0, void 0, void 0, 3)}`);\n });\n }\n $$renderer2.push(`<!--]-->`);\n children?.($$renderer2);\n $$renderer2.push(`<!----></svg>`);\n });\n}\nfunction Check($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { $$slots, $$events, ...props } = $$props;\n const iconNode = [[\"path\", { \"d\": \"M20 6 9 17l-5-5\" }]];\n Icon($$renderer2, spread_props([\n { name: \"check\" },\n /**\n * @component @name Check\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgNiA5IDE3bC01LTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/check\n * @see https://lucide.dev/guide/packages/lucide-svelte - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {FunctionalComponent} Svelte component\n *\n */\n props,\n {\n iconNode,\n children: ($$renderer3) => {\n props.children?.($$renderer3);\n $$renderer3.push(`<!---->`);\n },\n $$slots: { default: true }\n }\n ]));\n });\n}\nfunction Minus($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { $$slots, $$events, ...props } = $$props;\n const iconNode = [[\"path\", { \"d\": \"M5 12h14\" }]];\n Icon($$renderer2, spread_props([\n { name: \"minus\" },\n /**\n * @component @name Minus\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxMmgxNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/minus\n * @see https://lucide.dev/guide/packages/lucide-svelte - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {FunctionalComponent} Svelte component\n *\n */\n props,\n {\n iconNode,\n children: ($$renderer3) => {\n props.children?.($$renderer3);\n $$renderer3.push(`<!---->`);\n },\n $$slots: { default: true }\n }\n ]));\n });\n}\nfunction Checkbox($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let {\n ref = null,\n checked = false,\n indeterminate = false,\n class: className,\n $$slots,\n $$events,\n ...restProps\n } = $$props;\n let $$settled = true;\n let $$inner_renderer;\n function $$render_inner($$renderer3) {\n $$renderer3.push(`<!---->`);\n {\n let children = function($$renderer4, { checked: checked2, indeterminate: indeterminate2 }) {\n $$renderer4.push(`<div data-slot=\"checkbox-indicator\" class=\"text-current transition-none\">`);\n if (checked2) {\n $$renderer4.push(\"<!--[-->\");\n Check($$renderer4, { class: \"size-3.5\" });\n } else {\n $$renderer4.push(\"<!--[!-->\");\n if (indeterminate2) {\n $$renderer4.push(\"<!--[-->\");\n Minus($$renderer4, { class: \"size-3.5\" });\n } else {\n $$renderer4.push(\"<!--[!-->\");\n }\n $$renderer4.push(`<!--]-->`);\n }\n $$renderer4.push(`<!--]--></div>`);\n };\n Checkbox$1?.($$renderer3, spread_props([\n {\n \"data-slot\": \"checkbox\",\n class: cn(\"border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive peer flex size-4 shrink-0 items-center justify-center rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50\", className)\n },\n restProps,\n {\n get ref() {\n return ref;\n },\n set ref($$value) {\n ref = $$value;\n $$settled = false;\n },\n get checked() {\n return checked;\n },\n set checked($$value) {\n checked = $$value;\n $$settled = false;\n },\n get indeterminate() {\n return indeterminate;\n },\n set indeterminate($$value) {\n indeterminate = $$value;\n $$settled = false;\n },\n children,\n $$slots: { default: true }\n }\n ]));\n }\n $$renderer3.push(`<!---->`);\n }\n do {\n $$settled = true;\n $$inner_renderer = $$renderer2.copy();\n $$render_inner($$inner_renderer);\n } while (!$$settled);\n $$renderer2.subsume($$inner_renderer);\n bind_props($$props, { ref, checked, indeterminate });\n });\n}\nfunction Dialog($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { open = false, $$slots, $$events, ...restProps } = $$props;\n let $$settled = true;\n let $$inner_renderer;\n function $$render_inner($$renderer3) {\n $$renderer3.push(`<!---->`);\n Dialog$1?.($$renderer3, spread_props([\n restProps,\n {\n get open() {\n return open;\n },\n set open($$value) {\n open = $$value;\n $$settled = false;\n }\n }\n ]));\n $$renderer3.push(`<!---->`);\n }\n do {\n $$settled = true;\n $$inner_renderer = $$renderer2.copy();\n $$render_inner($$inner_renderer);\n } while (!$$settled);\n $$renderer2.subsume($$inner_renderer);\n bind_props($$props, { open });\n });\n}\nfunction Dialog_portal($$renderer, $$props) {\n let { $$slots, $$events, ...restProps } = $$props;\n $$renderer.push(`<!---->`);\n Portal?.($$renderer, spread_props([restProps]));\n $$renderer.push(`<!---->`);\n}\nfunction Dialog_title($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let {\n ref = null,\n class: className,\n $$slots,\n $$events,\n ...restProps\n } = $$props;\n let $$settled = true;\n let $$inner_renderer;\n function $$render_inner($$renderer3) {\n $$renderer3.push(`<!---->`);\n Dialog_title$1?.($$renderer3, spread_props([\n {\n \"data-slot\": \"dialog-title\",\n class: cn(\"text-lg leading-none font-semibold\", className)\n },\n restProps,\n {\n get ref() {\n return ref;\n },\n set ref($$value) {\n ref = $$value;\n $$settled = false;\n }\n }\n ]));\n $$renderer3.push(`<!---->`);\n }\n do {\n $$settled = true;\n $$inner_renderer = $$renderer2.copy();\n $$render_inner($$inner_renderer);\n } while (!$$settled);\n $$renderer2.subsume($$inner_renderer);\n bind_props($$props, { ref });\n });\n}\nfunction Dialog_footer($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let {\n ref = null,\n class: className,\n children,\n $$slots,\n $$events,\n ...restProps\n } = $$props;\n $$renderer2.push(`<div${attributes({\n \"data-slot\": \"dialog-footer\",\n class: clsx(cn(\"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\", className)),\n ...restProps\n })}>`);\n children?.($$renderer2);\n $$renderer2.push(`<!----></div>`);\n bind_props($$props, { ref });\n });\n}\nfunction Dialog_header($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let {\n ref = null,\n class: className,\n children,\n $$slots,\n $$events,\n ...restProps\n } = $$props;\n $$renderer2.push(`<div${attributes({\n \"data-slot\": \"dialog-header\",\n class: clsx(cn(\"flex flex-col gap-2 text-center sm:text-start\", className)),\n ...restProps\n })}>`);\n children?.($$renderer2);\n $$renderer2.push(`<!----></div>`);\n bind_props($$props, { ref });\n });\n}\nfunction Dialog_overlay($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let {\n ref = null,\n class: className,\n $$slots,\n $$events,\n ...restProps\n } = $$props;\n let $$settled = true;\n let $$inner_renderer;\n function $$render_inner($$renderer3) {\n $$renderer3.push(`<!---->`);\n Dialog_overlay$1?.($$renderer3, spread_props([\n {\n \"data-slot\": \"dialog-overlay\",\n class: cn(\"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50\", className)\n },\n restProps,\n {\n get ref() {\n return ref;\n },\n set ref($$value) {\n ref = $$value;\n $$settled = false;\n }\n }\n ]));\n $$renderer3.push(`<!---->`);\n }\n do {\n $$settled = true;\n $$inner_renderer = $$renderer2.copy();\n $$render_inner($$inner_renderer);\n } while (!$$settled);\n $$renderer2.subsume($$inner_renderer);\n bind_props($$props, { ref });\n });\n}\nfunction X($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { $$slots, $$events, ...props } = $$props;\n const iconNode = [\n [\"path\", { \"d\": \"M18 6 6 18\" }],\n [\"path\", { \"d\": \"m6 6 12 12\" }]\n ];\n Icon($$renderer2, spread_props([\n { name: \"x\" },\n /**\n * @component @name X\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggNiA2IDE4IiAvPgogIDxwYXRoIGQ9Im02IDYgMTIgMTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/x\n * @see https://lucide.dev/guide/packages/lucide-svelte - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {FunctionalComponent} Svelte component\n *\n */\n props,\n {\n iconNode,\n children: ($$renderer3) => {\n props.children?.($$renderer3);\n $$renderer3.push(`<!---->`);\n },\n $$slots: { default: true }\n }\n ]));\n });\n}\nfunction Dialog_content($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let {\n ref = null,\n class: className,\n portalProps,\n children,\n showCloseButton = true,\n $$slots,\n $$events,\n ...restProps\n } = $$props;\n let $$settled = true;\n let $$inner_renderer;\n function $$render_inner($$renderer3) {\n Dialog_portal($$renderer3, spread_props([\n portalProps,\n {\n children: ($$renderer4) => {\n $$renderer4.push(`<!---->`);\n Dialog_overlay?.($$renderer4, {});\n $$renderer4.push(`<!----> <!---->`);\n Dialog_content$1?.($$renderer4, spread_props([\n {\n \"data-slot\": \"dialog-content\",\n class: cn(\"bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg\", className)\n },\n restProps,\n {\n get ref() {\n return ref;\n },\n set ref($$value) {\n ref = $$value;\n $$settled = false;\n },\n children: ($$renderer5) => {\n children?.($$renderer5);\n $$renderer5.push(`<!----> `);\n if (showCloseButton) {\n $$renderer5.push(\"<!--[-->\");\n $$renderer5.push(`<!---->`);\n Dialog_close?.($$renderer5, {\n class: \"ring-offset-background focus:ring-ring absolute end-4 top-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n children: ($$renderer6) => {\n X($$renderer6, {});\n $$renderer6.push(`<!----> <span class=\"sr-only\">Close</span>`);\n },\n $$slots: { default: true }\n });\n $$renderer5.push(`<!---->`);\n } else {\n $$renderer5.push(\"<!--[!-->\");\n }\n $$renderer5.push(`<!--]-->`);\n },\n $$slots: { default: true }\n }\n ]));\n $$renderer4.push(`<!---->`);\n },\n $$slots: { default: true }\n }\n ]));\n }\n do {\n $$settled = true;\n $$inner_renderer = $$renderer2.copy();\n $$render_inner($$inner_renderer);\n } while (!$$settled);\n $$renderer2.subsume($$inner_renderer);\n bind_props($$props, { ref });\n });\n}\nfunction Scroll_area_scrollbar($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let {\n ref = null,\n class: className,\n orientation = \"vertical\",\n children,\n $$slots,\n $$events,\n ...restProps\n } = $$props;\n let $$settled = true;\n let $$inner_renderer;\n function $$render_inner($$renderer3) {\n $$renderer3.push(`<!---->`);\n Scroll_area_scrollbar$1?.($$renderer3, spread_props([\n {\n \"data-slot\": \"scroll-area-scrollbar\",\n orientation,\n class: cn(\"flex touch-none p-px transition-colors select-none\", orientation === \"vertical\" && \"h-full w-2.5 border-s border-s-transparent\", orientation === \"horizontal\" && \"h-2.5 flex-col border-t border-t-transparent\", className)\n },\n restProps,\n {\n get ref() {\n return ref;\n },\n set ref($$value) {\n ref = $$value;\n $$settled = false;\n },\n children: ($$renderer4) => {\n children?.($$renderer4);\n $$renderer4.push(`<!----> <!---->`);\n Scroll_area_thumb?.($$renderer4, {\n \"data-slot\": \"scroll-area-thumb\",\n class: \"bg-border relative flex-1 rounded-full\"\n });\n $$renderer4.push(`<!---->`);\n },\n $$slots: { default: true }\n }\n ]));\n $$renderer3.push(`<!---->`);\n }\n do {\n $$settled = true;\n $$inner_renderer = $$renderer2.copy();\n $$render_inner($$inner_renderer);\n } while (!$$settled);\n $$renderer2.subsume($$inner_renderer);\n bind_props($$props, { ref });\n });\n}\nfunction Scroll_area($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let {\n ref = null,\n viewportRef = null,\n class: className,\n orientation = \"vertical\",\n scrollbarXClasses = \"\",\n scrollbarYClasses = \"\",\n children,\n $$slots,\n $$events,\n ...restProps\n } = $$props;\n let $$settled = true;\n let $$inner_renderer;\n function $$render_inner($$renderer3) {\n $$renderer3.push(`<!---->`);\n Scroll_area$1?.($$renderer3, spread_props([\n { \"data-slot\": \"scroll-area\", class: cn(\"relative\", className) },\n restProps,\n {\n get ref() {\n return ref;\n },\n set ref($$value) {\n ref = $$value;\n $$settled = false;\n },\n children: ($$renderer4) => {\n $$renderer4.push(`<!---->`);\n Scroll_area_viewport?.($$renderer4, {\n \"data-slot\": \"scroll-area-viewport\",\n 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\",\n get ref() {\n return viewportRef;\n },\n set ref($$value) {\n viewportRef = $$value;\n $$settled = false;\n },\n children: ($$renderer5) => {\n children?.($$renderer5);\n $$renderer5.push(`<!---->`);\n },\n $$slots: { default: true }\n });\n $$renderer4.push(`<!----> `);\n if (orientation === \"vertical\" || orientation === \"both\") {\n $$renderer4.push(\"<!--[-->\");\n Scroll_area_scrollbar($$renderer4, { orientation: \"vertical\", class: scrollbarYClasses });\n } else {\n $$renderer4.push(\"<!--[!-->\");\n }\n $$renderer4.push(`<!--]--> `);\n if (orientation === \"horizontal\" || orientation === \"both\") {\n $$renderer4.push(\"<!--[-->\");\n Scroll_area_scrollbar($$renderer4, { orientation: \"horizontal\", class: scrollbarXClasses });\n } else {\n $$renderer4.push(\"<!--[!-->\");\n }\n $$renderer4.push(`<!--]--> <!---->`);\n Scroll_area_corner?.($$renderer4, {});\n $$renderer4.push(`<!---->`);\n },\n $$slots: { default: true }\n }\n ]));\n $$renderer3.push(`<!---->`);\n }\n do {\n $$settled = true;\n $$inner_renderer = $$renderer2.copy();\n $$render_inner($$inner_renderer);\n } while (!$$settled);\n $$renderer2.subsume($$inner_renderer);\n bind_props($$props, { ref, viewportRef });\n });\n}\nfunction AllSessionsPanel($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n var $$store_subs;\n let { onSessionSelect, compact = false } = $$props;\n let tmuxPanes = [];\n let showFolderBrowser = false;\n let browserPath = \"\";\n let browserFolders = [];\n let browserShowHidden = false;\n let browserIsRoot = false;\n let browserParent = null;\n let browserError = \"\";\n let alertOpen = false;\n let alertTitle = \"\";\n let alertMessage = \"\";\n let alertOnConfirm = () => {\n };\n function showConfirm(title, message, onConfirm) {\n alertTitle = title;\n alertMessage = message;\n alertOnConfirm = onConfirm;\n alertOpen = true;\n }\n const sessionsByProject = (() => {\n const groups = /* @__PURE__ */ new Map();\n for (const session of sessionStore.sessions) {\n const key = session.cwd || \"unknown\";\n if (!groups.has(key)) groups.set(key, []);\n groups.get(key).push(session);\n }\n return groups;\n })();\n const allProjects = (() => {\n const projects = /* @__PURE__ */ new Set();\n for (const session of sessionStore.sessions) {\n if (session.cwd) projects.add(session.cwd);\n }\n for (const cwd of sessionStore.savedProjects) {\n projects.add(cwd);\n }\n return [...projects].sort();\n })();\n function flattenTree(nodes) {\n const result = [];\n for (const node of nodes) {\n result.push(node);\n if (node.children.length > 0) {\n result.push(...flattenTree(node.children));\n }\n }\n return result;\n }\n const projectTree = (() => {\n const projects = allProjects;\n const sessionsMap = sessionsByProject;\n const sorted = [...projects].sort((a, b) => a.length - b.length);\n const roots = [];\n const nodeMap = /* @__PURE__ */ new Map();\n for (const cwd of sorted) {\n const node = {\n cwd,\n sessions: sessionsMap.get(cwd) || [],\n children: [],\n depth: 0\n };\n let parent = null;\n for (const potentialParent of sorted) {\n if (potentialParent === cwd) continue;\n if (cwd.startsWith(potentialParent + \"/\")) {\n const parentNode = nodeMap.get(potentialParent);\n if (parentNode && (!parent || potentialParent.length > parent.cwd.length)) {\n parent = parentNode;\n }\n }\n }\n if (parent) {\n node.depth = parent.depth + 1;\n parent.children.push(node);\n } else {\n roots.push(node);\n }\n nodeMap.set(cwd, node);\n }\n return roots;\n })();\n const flatProjects = (() => flattenTree(projectTree))();\n const otherTmuxPanes = (() => {\n const claudeTargets = new Set(sessionStore.sessions.map((s) => s.tmux_target));\n return tmuxPanes.filter((p) => !claudeTargets.has(p.target));\n })();\n const currentTarget = store_get($$store_subs ??= {}, \"$page\", page).url.pathname.startsWith(\"/session/\") ? decodeURIComponent(store_get($$store_subs ??= {}, \"$page\", page).url.pathname.split(\"/session/\")[1]) : null;\n async function fetchTmuxPanes() {\n try {\n const res = await fetch(\"/api/tmux/panes\");\n tmuxPanes = await res.json();\n } catch {\n tmuxPanes = [];\n }\n }\n function killSession(id, pid, tmux_target) {\n showConfirm(\"Kill Session\", \"Are you sure you want to kill this session?\", async () => {\n await fetch(`/api/sessions/${encodeURIComponent(id)}/kill`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ pid, tmux_target })\n });\n });\n }\n function deleteProject(cwd) {\n showConfirm(\"Delete Project\", `Delete project \"${cwd}\" and all its sessions?`, async () => {\n const sessions = sessionsByProject.get(cwd) || [];\n for (const s of sessions) {\n await fetch(`/api/sessions/${encodeURIComponent(s.id)}/kill`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ pid: s.pid, tmux_target: s.tmux_target })\n });\n }\n sessionStore.removeProject(cwd);\n });\n }\n async function newSessionInProject(cwd) {\n const res = await fetch(\"/api/projects/new-session\", {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ cwd })\n });\n const data = await res.json();\n sessionStore.saveProject(cwd);\n if (data.ok && data.session) {\n data.session + \":1.1\";\n goto();\n onSessionSelect?.();\n }\n }\n async function openFolderBrowser() {\n showFolderBrowser = true;\n await browseTo(\"~\");\n }\n async function browseTo(path) {\n browserError = \"\";\n const res = await fetch(`/api/browse?path=${encodeURIComponent(path)}&showHidden=${browserShowHidden}`);\n const data = await res.json();\n if (data.error) {\n browserError = data.error;\n return;\n }\n browserPath = data.current;\n browserFolders = data.folders;\n browserIsRoot = data.isRoot;\n browserParent = data.parent;\n }\n async function selectFolder() {\n showFolderBrowser = false;\n await newSessionInProject(browserPath);\n }\n function getProjectName(cwd) {\n return cwd.split(\"/\").pop() || cwd;\n }\n async function closeChrome() {\n await fetch(\"/api/chrome\", { method: \"DELETE\" });\n }\n let $$settled = true;\n let $$inner_renderer;\n function $$render_inner($$renderer3) {\n $$renderer3.push(`<div${attr_class(\"all-sessions-panel svelte-183q6rw\", void 0, { \"compact\": compact })}><header class=\"header svelte-183q6rw\"><a href=\"/\" class=\"title-link svelte-183q6rw\"><h1 class=\"svelte-183q6rw\">claude-mux</h1></a> <div class=\"header-actions svelte-183q6rw\">`);\n if (!compact) {\n $$renderer3.push(\"<!--[-->\");\n Button($$renderer3, {\n variant: \"secondary\",\n size: \"icon\",\n onclick: closeChrome,\n title: \"Close Chrome/Brave debugging instances\",\n children: ($$renderer4) => {\n $$renderer4.push(`<iconify-icon icon=\"mdi:google-chrome\"></iconify-icon>`);\n },\n $$slots: { default: true }\n });\n } else {\n $$renderer3.push(\"<!--[!-->\");\n }\n $$renderer3.push(`<!--]--> `);\n Button($$renderer3, {\n variant: sessionStore.paused ? \"destructive\" : \"secondary\",\n size: \"icon\",\n onclick: () => sessionStore.togglePause(),\n title: sessionStore.paused ? \"Resume\" : \"Pause\",\n children: ($$renderer4) => {\n $$renderer4.push(`<iconify-icon${attr(\"icon\", sessionStore.paused ? \"mdi:play\" : \"mdi:pause\")}></iconify-icon>`);\n },\n $$slots: { default: true }\n });\n $$renderer3.push(`<!----> `);\n Button($$renderer3, {\n variant: \"secondary\",\n size: \"icon\",\n onclick: openFolderBrowser,\n title: \"New Project\",\n children: ($$renderer4) => {\n $$renderer4.push(`<iconify-icon icon=\"mdi:plus\"></iconify-icon>`);\n },\n $$slots: { default: true }\n });\n $$renderer3.push(`<!----></div></header> <p class=\"count svelte-183q6rw\">${escape_html(sessionStore.sessions.length)} session${escape_html(sessionStore.sessions.length !== 1 ? \"s\" : \"\")}</p> <div class=\"scroll-content svelte-183q6rw\">`);\n if (flatProjects.length === 0) {\n $$renderer3.push(\"<!--[-->\");\n $$renderer3.push(`<div class=\"empty svelte-183q6rw\">No sessions yet. Click + to add a project.</div>`);\n } else {\n $$renderer3.push(\"<!--[!-->\");\n $$renderer3.push(`<!--[-->`);\n const each_array = ensure_array_like(flatProjects);\n for (let $$index_1 = 0, $$length = each_array.length; $$index_1 < $$length; $$index_1++) {\n let project = each_array[$$index_1];\n const color = getProjectColor(project.cwd);\n const isNested = project.depth > 0;\n const firstSession = project.sessions[0];\n $$renderer3.push(`<div${attr_class(\"project-group svelte-183q6rw\", void 0, { \"nested\": isNested })}${attr_style(`margin-left: ${stringify(project.depth * (compact ? 16 : 24))}px; border-left-color: ${stringify(color)}`)}><div class=\"project-header svelte-183q6rw\"><div class=\"project-info svelte-183q6rw\">`);\n if (isNested) {\n $$renderer3.push(\"<!--[-->\");\n $$renderer3.push(`<span class=\"nest-indicator svelte-183q6rw\">└</span>`);\n } else {\n $$renderer3.push(\"<!--[!-->\");\n }\n $$renderer3.push(`<!--]--> <span class=\"name svelte-183q6rw\">${escape_html(getProjectName(project.cwd))}</span> <div class=\"meta svelte-183q6rw\">`);\n Badge($$renderer3, {\n variant: \"secondary\",\n class: \"text-xs\",\n children: ($$renderer4) => {\n $$renderer4.push(`<!---->${escape_html(project.sessions.length)}`);\n },\n $$slots: { default: true }\n });\n $$renderer3.push(`<!----> `);\n if (!compact) {\n $$renderer3.push(\"<!--[-->\");\n if (firstSession?.git_root) {\n $$renderer3.push(\"<!--[-->\");\n Badge($$renderer3, {\n variant: \"outline\",\n class: \"border-orange-700 text-orange-400\",\n children: ($$renderer4) => {\n $$renderer4.push(`<!---->git`);\n },\n $$slots: { default: true }\n });\n } else {\n $$renderer3.push(\"<!--[!-->\");\n }\n $$renderer3.push(`<!--]--> `);\n if (firstSession?.beads_enabled) {\n $$renderer3.push(\"<!--[-->\");\n Badge($$renderer3, {\n variant: \"outline\",\n class: \"border-purple-700 text-purple-400\",\n children: ($$renderer4) => {\n $$renderer4.push(`<!---->beads`);\n },\n $$slots: { default: true }\n });\n } else {\n $$renderer3.push(\"<!--[!-->\");\n }\n $$renderer3.push(`<!--]-->`);\n } else {\n $$renderer3.push(\"<!--[!-->\");\n }\n $$renderer3.push(`<!--]--></div></div> <div class=\"project-actions svelte-183q6rw\">`);\n Button($$renderer3, {\n variant: \"ghost\",\n size: \"icon-sm\",\n onclick: () => newSessionInProject(project.cwd),\n title: \"New Session\",\n children: ($$renderer4) => {\n $$renderer4.push(`<iconify-icon icon=\"mdi:plus\"></iconify-icon>`);\n },\n $$slots: { default: true }\n });\n $$renderer3.push(`<!----> `);\n if (!compact) {\n $$renderer3.push(\"<!--[-->\");\n Button($$renderer3, {\n variant: \"ghost\",\n size: \"icon-sm\",\n class: \"hover:bg-red-900/50 hover:text-red-300\",\n onclick: () => deleteProject(project.cwd),\n title: \"Delete Project\",\n children: ($$renderer4) => {\n $$renderer4.push(`<iconify-icon icon=\"mdi:delete\"></iconify-icon>`);\n },\n $$slots: { default: true }\n });\n } else {\n $$renderer3.push(\"<!--[!-->\");\n }\n $$renderer3.push(`<!--]--></div></div> <div class=\"project-sessions svelte-183q6rw\">`);\n const each_array_1 = ensure_array_like(project.sessions);\n if (each_array_1.length !== 0) {\n $$renderer3.push(\"<!--[-->\");\n for (let $$index = 0, $$length2 = each_array_1.length; $$index < $$length2; $$index++) {\n let session = each_array_1[$$index];\n if (session.tmux_target) {\n $$renderer3.push(\"<!--[-->\");\n const isActive = session.tmux_target === currentTarget;\n $$renderer3.push(`<a${attr(\"href\", `/session/${stringify(encodeURIComponent(session.tmux_target))}`)}${attr_class(`session ${stringify(session.state)}`, \"svelte-183q6rw\", { \"active\": isActive })}><span class=\"state svelte-183q6rw\"${attr_style(`background: ${stringify(stateColor(session.state))}`)}></span> <div class=\"session-info svelte-183q6rw\"><div class=\"target svelte-183q6rw\">${escape_html(session.pane_title || session.tmux_target)}</div> <div class=\"action svelte-183q6rw\">${escape_html(session.current_action || session.state)}</div></div> `);\n if (!compact) {\n $$renderer3.push(\"<!--[-->\");\n $$renderer3.push(`<div class=\"actions svelte-183q6rw\">`);\n Button($$renderer3, {\n variant: \"ghost-destructive\",\n size: \"icon-sm\",\n onclick: (e) => {\n e.preventDefault();\n e.stopPropagation();\n killSession(session.id, session.pid, session.tmux_target);\n },\n title: \"Kill\",\n children: ($$renderer4) => {\n $$renderer4.push(`<iconify-icon icon=\"mdi:power\"></iconify-icon>`);\n },\n $$slots: { default: true }\n });\n $$renderer3.push(`<!----></div>`);\n } else {\n $$renderer3.push(\"<!--[!-->\");\n }\n $$renderer3.push(`<!--]--></a>`);\n } else {\n $$renderer3.push(\"<!--[!-->\");\n $$renderer3.push(`<div${attr_class(`session ${stringify(session.state)} no-tmux`, \"svelte-183q6rw\")}><span class=\"state svelte-183q6rw\"${attr_style(`background: ${stringify(stateColor(session.state))}`)}></span> <div class=\"session-info svelte-183q6rw\"><div class=\"target svelte-183q6rw\">${escape_html(session.id)}</div> <div class=\"action svelte-183q6rw\">${escape_html(session.current_action || session.state)}</div> <div class=\"no-tmux-label svelte-183q6rw\">No tmux pane</div></div> `);\n if (!compact) {\n $$renderer3.push(\"<!--[-->\");\n $$renderer3.push(`<div class=\"actions svelte-183q6rw\">`);\n Button($$renderer3, {\n variant: \"ghost-destructive\",\n size: \"icon-sm\",\n onclick: () => killSession(session.id, session.pid, session.tmux_target),\n title: \"Kill\",\n children: ($$renderer4) => {\n $$renderer4.push(`<iconify-icon icon=\"mdi:power\"></iconify-icon>`);\n },\n $$slots: { default: true }\n });\n $$renderer3.push(`<!----></div>`);\n } else {\n $$renderer3.push(\"<!--[!-->\");\n }\n $$renderer3.push(`<!--]--></div>`);\n }\n $$renderer3.push(`<!--]-->`);\n }\n } else {\n $$renderer3.push(\"<!--[!-->\");\n $$renderer3.push(`<div class=\"empty-project svelte-183q6rw\">No active sessions</div>`);\n }\n $$renderer3.push(`<!--]--></div></div>`);\n }\n $$renderer3.push(`<!--]-->`);\n }\n $$renderer3.push(`<!--]--> `);\n if (otherTmuxPanes.length > 0) {\n $$renderer3.push(\"<!--[-->\");\n $$renderer3.push(`<div class=\"other-tmux svelte-183q6rw\"><div class=\"other-tmux-header svelte-183q6rw\"><h2 class=\"svelte-183q6rw\">Other tmux</h2> `);\n Button($$renderer3, {\n variant: \"ghost\",\n size: \"icon-sm\",\n onclick: fetchTmuxPanes,\n title: \"Refresh\",\n children: ($$renderer4) => {\n $$renderer4.push(`<iconify-icon icon=\"mdi:refresh\"></iconify-icon>`);\n },\n $$slots: { default: true }\n });\n $$renderer3.push(`<!----></div> <div class=\"other-tmux-list svelte-183q6rw\"><!--[-->`);\n const each_array_2 = ensure_array_like(otherTmuxPanes);\n for (let $$index_2 = 0, $$length = each_array_2.length; $$index_2 < $$length; $$index_2++) {\n let pane = each_array_2[$$index_2];\n $$renderer3.push(`<a${attr(\"href\", `/session/${stringify(encodeURIComponent(pane.target))}`)} class=\"tmux-pane svelte-183q6rw\"><iconify-icon icon=\"mdi:console\" class=\"pane-icon svelte-183q6rw\"></iconify-icon> <div class=\"pane-info svelte-183q6rw\"><span class=\"pane-target svelte-183q6rw\">${escape_html(pane.target)}</span> `);\n if (!compact) {\n $$renderer3.push(\"<!--[-->\");\n $$renderer3.push(`<span class=\"pane-command svelte-183q6rw\">${escape_html(pane.command)}</span>`);\n } else {\n $$renderer3.push(\"<!--[!-->\");\n }\n $$renderer3.push(`<!--]--></div></a>`);\n }\n $$renderer3.push(`<!--]--></div></div>`);\n } else {\n $$renderer3.push(\"<!--[!-->\");\n }\n $$renderer3.push(`<!--]--></div></div> <!---->`);\n Dialog?.($$renderer3, {\n get open() {\n return showFolderBrowser;\n },\n set open($$value) {\n showFolderBrowser = $$value;\n $$settled = false;\n },\n children: ($$renderer4) => {\n $$renderer4.push(`<!---->`);\n Dialog_content?.($$renderer4, {\n class: \"max-w-md\",\n children: ($$renderer5) => {\n $$renderer5.push(`<!---->`);\n Dialog_header?.($$renderer5, {\n children: ($$renderer6) => {\n $$renderer6.push(`<!---->`);\n Dialog_title?.($$renderer6, {\n children: ($$renderer7) => {\n $$renderer7.push(`<!---->Select Folder`);\n },\n $$slots: { default: true }\n });\n $$renderer6.push(`<!---->`);\n },\n $$slots: { default: true }\n });\n $$renderer5.push(`<!----> <div class=\"fb-path svelte-183q6rw\">${escape_html(browserPath)}</div> `);\n if (browserError) {\n $$renderer5.push(\"<!--[-->\");\n $$renderer5.push(`<p class=\"text-sm text-destructive\">${escape_html(browserError)}</p>`);\n } else {\n $$renderer5.push(\"<!--[!-->\");\n }\n $$renderer5.push(`<!--]--> <div class=\"flex items-center gap-2 py-2\">`);\n Checkbox($$renderer5, {\n id: \"show-hidden\",\n checked: browserShowHidden,\n onCheckedChange: (v) => {\n browserShowHidden = !!v;\n browseTo(browserPath);\n }\n });\n $$renderer5.push(`<!----> <label for=\"show-hidden\" class=\"text-sm text-muted-foreground cursor-pointer\">Show hidden</label></div> `);\n Scroll_area($$renderer5, {\n class: \"h-64 rounded-md border\",\n children: ($$renderer6) => {\n $$renderer6.push(`<div class=\"p-2\">`);\n if (!browserIsRoot && browserParent) {\n $$renderer6.push(\"<!--[-->\");\n $$renderer6.push(`<button class=\"fb-item svelte-183q6rw\"><iconify-icon icon=\"mdi:folder-arrow-up\"></iconify-icon> ..</button>`);\n } else {\n $$renderer6.push(\"<!--[!-->\");\n }\n $$renderer6.push(`<!--]--> <!--[-->`);\n const each_array_3 = ensure_array_like(browserFolders);\n for (let $$index_3 = 0, $$length = each_array_3.length; $$index_3 < $$length; $$index_3++) {\n let folder = each_array_3[$$index_3];\n $$renderer6.push(`<button class=\"fb-item svelte-183q6rw\"><iconify-icon icon=\"mdi:folder\"></iconify-icon> ${escape_html(folder.name)}</button>`);\n }\n $$renderer6.push(`<!--]--></div>`);\n },\n $$slots: { default: true }\n });\n $$renderer5.push(`<!----> <!---->`);\n Dialog_footer?.($$renderer5, {\n children: ($$renderer6) => {\n Button($$renderer6, {\n variant: \"outline\",\n onclick: () => showFolderBrowser = false,\n children: ($$renderer7) => {\n $$renderer7.push(`<!---->Cancel`);\n },\n $$slots: { default: true }\n });\n $$renderer6.push(`<!----> `);\n Button($$renderer6, {\n onclick: selectFolder,\n children: ($$renderer7) => {\n $$renderer7.push(`<!---->Select`);\n },\n $$slots: { default: true }\n });\n $$renderer6.push(`<!---->`);\n },\n $$slots: { default: true }\n });\n $$renderer5.push(`<!---->`);\n },\n $$slots: { default: true }\n });\n $$renderer4.push(`<!---->`);\n },\n $$slots: { default: true }\n });\n $$renderer3.push(`<!----> <!---->`);\n Alert_dialog?.($$renderer3, {\n get open() {\n return alertOpen;\n },\n set open($$value) {\n alertOpen = $$value;\n $$settled = false;\n },\n children: ($$renderer4) => {\n $$renderer4.push(`<!---->`);\n Alert_dialog_content?.($$renderer4, {\n children: ($$renderer5) => {\n $$renderer5.push(`<!---->`);\n Alert_dialog_header?.($$renderer5, {\n children: ($$renderer6) => {\n $$renderer6.push(`<!---->`);\n Alert_dialog_title?.($$renderer6, {\n children: ($$renderer7) => {\n $$renderer7.push(`<!---->${escape_html(alertTitle)}`);\n },\n $$slots: { default: true }\n });\n $$renderer6.push(`<!----> <!---->`);\n Alert_dialog_description?.($$renderer6, {\n children: ($$renderer7) => {\n $$renderer7.push(`<!---->${escape_html(alertMessage)}`);\n },\n $$slots: { default: true }\n });\n $$renderer6.push(`<!---->`);\n },\n $$slots: { default: true }\n });\n $$renderer5.push(`<!----> <!---->`);\n Alert_dialog_footer?.($$renderer5, {\n children: ($$renderer6) => {\n $$renderer6.push(`<!---->`);\n Alert_dialog_cancel?.($$renderer6, {\n children: ($$renderer7) => {\n $$renderer7.push(`<!---->Cancel`);\n },\n $$slots: { default: true }\n });\n $$renderer6.push(`<!----> <!---->`);\n Alert_dialog_action?.($$renderer6, {\n onclick: () => {\n alertOnConfirm();\n alertOpen = false;\n },\n class: \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n children: ($$renderer7) => {\n $$renderer7.push(`<!---->Confirm`);\n },\n $$slots: { default: true }\n });\n $$renderer6.push(`<!---->`);\n },\n $$slots: { default: true }\n });\n $$renderer5.push(`<!---->`);\n },\n $$slots: { default: true }\n });\n $$renderer4.push(`<!---->`);\n },\n $$slots: { default: true }\n });\n $$renderer3.push(`<!---->`);\n }\n do {\n $$settled = true;\n $$inner_renderer = $$renderer2.copy();\n $$render_inner($$inner_renderer);\n } while (!$$settled);\n $$renderer2.subsume($$inner_renderer);\n if ($$store_subs) unsubscribe_stores($$store_subs);\n });\n}\nfunction _page($$renderer) {\n head(\"1uha8ag\", $$renderer, ($$renderer2) => {\n $$renderer2.title(($$renderer3) => {\n $$renderer3.push(`<title>claude-mux</title>`);\n });\n });\n $$renderer.push(`<div class=\"root-page svelte-1uha8ag\">`);\n AllSessionsPanel($$renderer, {});\n $$renderer.push(`<!----></div>`);\n}\nexport {\n _page as default\n};\n"],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import { n as json } from "./exports-CCurQ-Tl.js";
2
+ import { t as deleteSession } from "./sessions-json-DgfkCLO7.js";
3
+ import { execFileSync } from "child_process";
4
+
5
+ //#region .svelte-kit/adapter-bun/entries/endpoints/api/sessions/_id_/kill/_server.ts.js
6
+ const POST = async ({ params, request }) => {
7
+ const id = decodeURIComponent(params.id);
8
+ const { pid, tmux_target } = await request.json().catch(() => ({}));
9
+ try {
10
+ if (typeof pid === "number" && pid > 0 && Number.isInteger(pid)) try {
11
+ execFileSync("kill", [String(pid)], { stdio: "ignore" });
12
+ } catch {}
13
+ if (tmux_target && typeof tmux_target === "string") try {
14
+ execFileSync("tmux", [
15
+ "kill-pane",
16
+ "-t",
17
+ tmux_target
18
+ ], { stdio: "ignore" });
19
+ } catch {}
20
+ try {
21
+ deleteSession(id);
22
+ } catch {}
23
+ return json({ ok: true });
24
+ } catch {
25
+ try {
26
+ deleteSession(id);
27
+ } catch {}
28
+ return json({ ok: true });
29
+ }
30
+ };
31
+
32
+ //#endregion
33
+ export { POST };
34
+ //# sourceMappingURL=_server.ts-3WAmKvn2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-3WAmKvn2.js","names":[],"sources":["../../../../web/.svelte-kit/adapter-bun/entries/endpoints/api/sessions/_id_/kill/_server.ts.js"],"sourcesContent":["import { json } from \"@sveltejs/kit\";\nimport { execFileSync } from \"child_process\";\nimport { d as deleteSession } from \"../../../../../../chunks/sessions-json.js\";\nconst POST = async ({ params, request }) => {\n const id = decodeURIComponent(params.id);\n const body = await request.json().catch(() => ({}));\n const { pid, tmux_target } = body;\n try {\n if (typeof pid === \"number\" && pid > 0 && Number.isInteger(pid)) {\n try {\n execFileSync(\"kill\", [String(pid)], { stdio: \"ignore\" });\n } catch {\n }\n }\n if (tmux_target && typeof tmux_target === \"string\") {\n try {\n execFileSync(\"tmux\", [\"kill-pane\", \"-t\", tmux_target], { stdio: \"ignore\" });\n } catch {\n }\n }\n try {\n deleteSession(id);\n } catch {\n }\n return json({ ok: true });\n } catch {\n try {\n deleteSession(id);\n } catch {\n }\n return json({ ok: true });\n }\n};\nexport {\n POST\n};\n"],"mappings":";;;;;AAGA,MAAM,OAAO,OAAO,EAAE,QAAQ,cAAc;CAC1C,MAAM,KAAK,mBAAmB,OAAO,GAAG;CAExC,MAAM,EAAE,KAAK,gBADA,MAAM,QAAQ,MAAM,CAAC,aAAa,EAAE,EAAE;AAEnD,KAAI;AACF,MAAI,OAAO,QAAQ,YAAY,MAAM,KAAK,OAAO,UAAU,IAAI,CAC7D,KAAI;AACF,gBAAa,QAAQ,CAAC,OAAO,IAAI,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC;UAClD;AAGV,MAAI,eAAe,OAAO,gBAAgB,SACxC,KAAI;AACF,gBAAa,QAAQ;IAAC;IAAa;IAAM;IAAY,EAAE,EAAE,OAAO,UAAU,CAAC;UACrE;AAGV,MAAI;AACF,iBAAc,GAAG;UACX;AAER,SAAO,KAAK,EAAE,IAAI,MAAM,CAAC;SACnB;AACN,MAAI;AACF,iBAAc,GAAG;UACX;AAER,SAAO,KAAK,EAAE,IAAI,MAAM,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { n as json } from "./exports-CCurQ-Tl.js";
2
+ import { execSync } from "child_process";
3
+
4
+ //#region .svelte-kit/adapter-bun/entries/endpoints/api/chrome/_server.ts.js
5
+ const DELETE = async () => {
6
+ try {
7
+ let killed = 0;
8
+ try {
9
+ const psOutput = execSync("ps aux | grep -E '(chrome|chromium|brave)' | grep -E 'remote-debugging-(pipe|port)' | grep -v grep | awk '{print $2}'", { encoding: "utf-8" }).trim();
10
+ if (psOutput) {
11
+ const pids = psOutput.split("\n").filter(Boolean);
12
+ for (const pid of pids) try {
13
+ execSync(`kill ${pid}`, { stdio: "ignore" });
14
+ killed++;
15
+ } catch {}
16
+ }
17
+ } catch {}
18
+ return json({
19
+ ok: true,
20
+ killed
21
+ });
22
+ } catch {
23
+ return json({ error: "Failed to close Chrome" }, { status: 500 });
24
+ }
25
+ };
26
+
27
+ //#endregion
28
+ export { DELETE };
29
+ //# sourceMappingURL=_server.ts-BAWJCSFb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-BAWJCSFb.js","names":[],"sources":["../../../../web/.svelte-kit/adapter-bun/entries/endpoints/api/chrome/_server.ts.js"],"sourcesContent":["import { json } from \"@sveltejs/kit\";\nimport { execSync } from \"child_process\";\nconst DELETE = async () => {\n try {\n let killed = 0;\n try {\n const psOutput = execSync(\n \"ps aux | grep -E '(chrome|chromium|brave)' | grep -E 'remote-debugging-(pipe|port)' | grep -v grep | awk '{print $2}'\",\n { encoding: \"utf-8\" }\n ).trim();\n if (psOutput) {\n const pids = psOutput.split(\"\\n\").filter(Boolean);\n for (const pid of pids) {\n try {\n execSync(`kill ${pid}`, { stdio: \"ignore\" });\n killed++;\n } catch {\n }\n }\n }\n } catch {\n }\n return json({ ok: true, killed });\n } catch {\n return json({ error: \"Failed to close Chrome\" }, { status: 500 });\n }\n};\nexport {\n DELETE\n};\n"],"mappings":";;;;AAEA,MAAM,SAAS,YAAY;AACzB,KAAI;EACF,IAAI,SAAS;AACb,MAAI;GACF,MAAM,WAAW,SACf,yHACA,EAAE,UAAU,SAAS,CACtB,CAAC,MAAM;AACR,OAAI,UAAU;IACZ,MAAM,OAAO,SAAS,MAAM,KAAK,CAAC,OAAO,QAAQ;AACjD,SAAK,MAAM,OAAO,KAChB,KAAI;AACF,cAAS,QAAQ,OAAO,EAAE,OAAO,UAAU,CAAC;AAC5C;YACM;;UAIN;AAER,SAAO,KAAK;GAAE,IAAI;GAAM;GAAQ,CAAC;SAC3B;AACN,SAAO,KAAK,EAAE,OAAO,0BAA0B,EAAE,EAAE,QAAQ,KAAK,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { n as json } from "./exports-CCurQ-Tl.js";
2
+ import "./sessions-json-DgfkCLO7.js";
3
+ import "./pane-Dg3pKvsm.js";
4
+ import { i as getBeadsIssues } from "./ws-handlers-B4r5eSP2.js";
5
+
6
+ //#region .svelte-kit/adapter-bun/entries/endpoints/api/beads/_server.ts.js
7
+ const GET = async ({ url }) => {
8
+ const project = url.searchParams.get("project");
9
+ if (!project) return json({ error: "Missing project parameter" }, { status: 400 });
10
+ try {
11
+ const projectPath = decodeURIComponent(project);
12
+ return json({
13
+ issues: getBeadsIssues(projectPath),
14
+ project: projectPath,
15
+ timestamp: Date.now()
16
+ });
17
+ } catch (err) {
18
+ return json({ error: "Failed to fetch beads issues" }, { status: 500 });
19
+ }
20
+ };
21
+
22
+ //#endregion
23
+ export { GET };
24
+ //# sourceMappingURL=_server.ts-BPpMOZCm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-BPpMOZCm.js","names":[],"sources":["../../../../web/.svelte-kit/adapter-bun/entries/endpoints/api/beads/_server.ts.js"],"sourcesContent":["import { json } from \"@sveltejs/kit\";\nimport { g as getBeadsIssues } from \"../../../../chunks/ws-handlers.js\";\nconst GET = async ({ url }) => {\n const project = url.searchParams.get(\"project\");\n if (!project) {\n return json({ error: \"Missing project parameter\" }, { status: 400 });\n }\n try {\n const projectPath = decodeURIComponent(project);\n const issues = getBeadsIssues(projectPath);\n return json({\n issues,\n project: projectPath,\n timestamp: Date.now()\n });\n } catch (err) {\n return json({ error: \"Failed to fetch beads issues\" }, { status: 500 });\n }\n};\nexport {\n GET\n};\n"],"mappings":";;;;;;AAEA,MAAM,MAAM,OAAO,EAAE,UAAU;CAC7B,MAAM,UAAU,IAAI,aAAa,IAAI,UAAU;AAC/C,KAAI,CAAC,QACH,QAAO,KAAK,EAAE,OAAO,6BAA6B,EAAE,EAAE,QAAQ,KAAK,CAAC;AAEtE,KAAI;EACF,MAAM,cAAc,mBAAmB,QAAQ;AAE/C,SAAO,KAAK;GACV,QAFa,eAAe,YAAY;GAGxC,SAAS;GACT,WAAW,KAAK,KAAK;GACtB,CAAC;UACK,KAAK;AACZ,SAAO,KAAK,EAAE,OAAO,gCAAgC,EAAE,EAAE,QAAQ,KAAK,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { n as json } from "./exports-CCurQ-Tl.js";
2
+
3
+ //#region .svelte-kit/adapter-bun/entries/endpoints/api/health/_server.ts.js
4
+ const GET = async () => {
5
+ return json({
6
+ status: "ok",
7
+ timestamp: Date.now()
8
+ });
9
+ };
10
+
11
+ //#endregion
12
+ export { GET };
13
+ //# sourceMappingURL=_server.ts-BUKgRb6U.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-BUKgRb6U.js","names":[],"sources":["../../../../web/.svelte-kit/adapter-bun/entries/endpoints/api/health/_server.ts.js"],"sourcesContent":["import { json } from \"@sveltejs/kit\";\nconst GET = async () => {\n return json({ status: \"ok\", timestamp: Date.now() });\n};\nexport {\n GET\n};\n"],"mappings":";;;AACA,MAAM,MAAM,YAAY;AACtB,QAAO,KAAK;EAAE,QAAQ;EAAM,WAAW,KAAK,KAAK;EAAE,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { n as json } from "./exports-CCurQ-Tl.js";
2
+ import { existsSync, readdirSync, statSync } from "fs";
3
+ import { dirname, join, resolve } from "path";
4
+ import { homedir } from "os";
5
+
6
+ //#region .svelte-kit/adapter-bun/entries/endpoints/api/browse/_server.ts.js
7
+ const GET = async ({ url }) => {
8
+ let targetPath = url.searchParams.get("path") || homedir();
9
+ const showHidden = url.searchParams.get("showHidden") === "true";
10
+ if (targetPath.startsWith("~")) targetPath = targetPath.replace("~", homedir());
11
+ targetPath = resolve(targetPath);
12
+ try {
13
+ if (!existsSync(targetPath)) return json({ error: "Directory not found" }, { status: 404 });
14
+ if (!statSync(targetPath).isDirectory()) return json({ error: "Not a directory" }, { status: 400 });
15
+ const folders = readdirSync(targetPath, { withFileTypes: true }).filter((e) => {
16
+ if (!e.isDirectory()) return false;
17
+ if (!showHidden && e.name.startsWith(".")) return false;
18
+ return true;
19
+ }).map((e) => ({
20
+ name: e.name,
21
+ path: join(targetPath, e.name)
22
+ })).sort((a, b) => a.name.toLowerCase().localeCompare(b.name.toLowerCase()));
23
+ const parent = dirname(targetPath);
24
+ const isRoot = targetPath === "/" || targetPath === parent;
25
+ return json({
26
+ current: targetPath,
27
+ parent: isRoot ? null : parent,
28
+ isRoot,
29
+ folders
30
+ });
31
+ } catch (err) {
32
+ const error = err;
33
+ if (error.code === "ENOENT") return json({ error: "Directory not found" }, { status: 404 });
34
+ if (error.code === "EACCES") return json({ error: "Permission denied" }, { status: 403 });
35
+ return json({ error: "Failed to read directory" }, { status: 500 });
36
+ }
37
+ };
38
+
39
+ //#endregion
40
+ export { GET };
41
+ //# sourceMappingURL=_server.ts-BVHUS8fm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-BVHUS8fm.js","names":[],"sources":["../../../../web/.svelte-kit/adapter-bun/entries/endpoints/api/browse/_server.ts.js"],"sourcesContent":["import { json } from \"@sveltejs/kit\";\nimport { homedir } from \"os\";\nimport { existsSync, statSync, readdirSync } from \"fs\";\nimport { resolve, join, dirname } from \"path\";\nconst GET = async ({ url }) => {\n let targetPath = url.searchParams.get(\"path\") || homedir();\n const showHidden = url.searchParams.get(\"showHidden\") === \"true\";\n if (targetPath.startsWith(\"~\")) {\n targetPath = targetPath.replace(\"~\", homedir());\n }\n targetPath = resolve(targetPath);\n try {\n if (!existsSync(targetPath)) {\n return json({ error: \"Directory not found\" }, { status: 404 });\n }\n const stat = statSync(targetPath);\n if (!stat.isDirectory()) {\n return json({ error: \"Not a directory\" }, { status: 400 });\n }\n const entries = readdirSync(targetPath, { withFileTypes: true });\n const folders = entries.filter((e) => {\n if (!e.isDirectory()) return false;\n if (!showHidden && e.name.startsWith(\".\")) return false;\n return true;\n }).map((e) => ({\n name: e.name,\n path: join(targetPath, e.name)\n })).sort((a, b) => a.name.toLowerCase().localeCompare(b.name.toLowerCase()));\n const parent = dirname(targetPath);\n const isRoot = targetPath === \"/\" || targetPath === parent;\n return json({\n current: targetPath,\n parent: isRoot ? null : parent,\n isRoot,\n folders\n });\n } catch (err) {\n const error = err;\n if (error.code === \"ENOENT\") {\n return json({ error: \"Directory not found\" }, { status: 404 });\n }\n if (error.code === \"EACCES\") {\n return json({ error: \"Permission denied\" }, { status: 403 });\n }\n return json({ error: \"Failed to read directory\" }, { status: 500 });\n }\n};\nexport {\n GET\n};\n"],"mappings":";;;;;;AAIA,MAAM,MAAM,OAAO,EAAE,UAAU;CAC7B,IAAI,aAAa,IAAI,aAAa,IAAI,OAAO,IAAI,SAAS;CAC1D,MAAM,aAAa,IAAI,aAAa,IAAI,aAAa,KAAK;AAC1D,KAAI,WAAW,WAAW,IAAI,CAC5B,cAAa,WAAW,QAAQ,KAAK,SAAS,CAAC;AAEjD,cAAa,QAAQ,WAAW;AAChC,KAAI;AACF,MAAI,CAAC,WAAW,WAAW,CACzB,QAAO,KAAK,EAAE,OAAO,uBAAuB,EAAE,EAAE,QAAQ,KAAK,CAAC;AAGhE,MAAI,CADS,SAAS,WAAW,CACvB,aAAa,CACrB,QAAO,KAAK,EAAE,OAAO,mBAAmB,EAAE,EAAE,QAAQ,KAAK,CAAC;EAG5D,MAAM,UADU,YAAY,YAAY,EAAE,eAAe,MAAM,CAAC,CACxC,QAAQ,MAAM;AACpC,OAAI,CAAC,EAAE,aAAa,CAAE,QAAO;AAC7B,OAAI,CAAC,cAAc,EAAE,KAAK,WAAW,IAAI,CAAE,QAAO;AAClD,UAAO;IACP,CAAC,KAAK,OAAO;GACb,MAAM,EAAE;GACR,MAAM,KAAK,YAAY,EAAE,KAAK;GAC/B,EAAE,CAAC,MAAM,GAAG,MAAM,EAAE,KAAK,aAAa,CAAC,cAAc,EAAE,KAAK,aAAa,CAAC,CAAC;EAC5E,MAAM,SAAS,QAAQ,WAAW;EAClC,MAAM,SAAS,eAAe,OAAO,eAAe;AACpD,SAAO,KAAK;GACV,SAAS;GACT,QAAQ,SAAS,OAAO;GACxB;GACA;GACD,CAAC;UACK,KAAK;EACZ,MAAM,QAAQ;AACd,MAAI,MAAM,SAAS,SACjB,QAAO,KAAK,EAAE,OAAO,uBAAuB,EAAE,EAAE,QAAQ,KAAK,CAAC;AAEhE,MAAI,MAAM,SAAS,SACjB,QAAO,KAAK,EAAE,OAAO,qBAAqB,EAAE,EAAE,QAAQ,KAAK,CAAC;AAE9D,SAAO,KAAK,EAAE,OAAO,4BAA4B,EAAE,EAAE,QAAQ,KAAK,CAAC"}