dmux 3.1.1 → 3.3.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 (635) hide show
  1. package/dist/DmuxApp.d.ts +2 -2
  2. package/dist/DmuxApp.d.ts.map +1 -1
  3. package/dist/DmuxApp.js +405 -1134
  4. package/dist/DmuxApp.js.map +1 -1
  5. package/dist/actions/implementations/closeAction.d.ts +10 -0
  6. package/dist/actions/implementations/closeAction.d.ts.map +1 -0
  7. package/dist/actions/implementations/closeAction.js +197 -0
  8. package/dist/actions/implementations/closeAction.js.map +1 -0
  9. package/dist/actions/implementations/copyPathAction.d.ts +10 -0
  10. package/dist/actions/implementations/copyPathAction.d.ts.map +1 -0
  11. package/dist/actions/implementations/copyPathAction.js +34 -0
  12. package/dist/actions/implementations/copyPathAction.js.map +1 -0
  13. package/dist/actions/implementations/duplicateAction.d.ts +10 -0
  14. package/dist/actions/implementations/duplicateAction.d.ts.map +1 -0
  15. package/dist/actions/implementations/duplicateAction.js +25 -0
  16. package/dist/actions/implementations/duplicateAction.js.map +1 -0
  17. package/dist/actions/implementations/index.d.ts +14 -0
  18. package/dist/actions/implementations/index.d.ts.map +1 -0
  19. package/dist/actions/implementations/index.js +14 -0
  20. package/dist/actions/implementations/index.js.map +1 -0
  21. package/dist/actions/implementations/mergeAction.d.ts +14 -0
  22. package/dist/actions/implementations/mergeAction.d.ts.map +1 -0
  23. package/dist/actions/implementations/mergeAction.js +84 -0
  24. package/dist/actions/implementations/mergeAction.js.map +1 -0
  25. package/dist/actions/implementations/openInEditorAction.d.ts +12 -0
  26. package/dist/actions/implementations/openInEditorAction.d.ts.map +1 -0
  27. package/dist/actions/implementations/openInEditorAction.js +33 -0
  28. package/dist/actions/implementations/openInEditorAction.js.map +1 -0
  29. package/dist/actions/implementations/renameAction.d.ts +13 -0
  30. package/dist/actions/implementations/renameAction.d.ts.map +1 -0
  31. package/dist/actions/implementations/renameAction.js +18 -0
  32. package/dist/actions/implementations/renameAction.js.map +1 -0
  33. package/dist/actions/implementations/toggleAutopilotAction.d.ts +10 -0
  34. package/dist/actions/implementations/toggleAutopilotAction.d.ts.map +1 -0
  35. package/dist/actions/implementations/toggleAutopilotAction.js +33 -0
  36. package/dist/actions/implementations/toggleAutopilotAction.js.map +1 -0
  37. package/dist/actions/implementations/viewAction.d.ts +10 -0
  38. package/dist/actions/implementations/viewAction.d.ts.map +1 -0
  39. package/dist/actions/implementations/viewAction.js +26 -0
  40. package/dist/actions/implementations/viewAction.js.map +1 -0
  41. package/dist/actions/merge/commitMessageHandler.d.ts +27 -0
  42. package/dist/actions/merge/commitMessageHandler.d.ts.map +1 -0
  43. package/dist/actions/merge/commitMessageHandler.js +131 -0
  44. package/dist/actions/merge/commitMessageHandler.js.map +1 -0
  45. package/dist/actions/merge/conflictResolution.d.ts +13 -0
  46. package/dist/actions/merge/conflictResolution.d.ts.map +1 -0
  47. package/dist/actions/merge/conflictResolution.js +134 -0
  48. package/dist/actions/merge/conflictResolution.js.map +1 -0
  49. package/dist/actions/merge/issueHandlers/index.d.ts +11 -0
  50. package/dist/actions/merge/issueHandlers/index.d.ts.map +1 -0
  51. package/dist/actions/merge/issueHandlers/index.js +8 -0
  52. package/dist/actions/merge/issueHandlers/index.js.map +1 -0
  53. package/dist/actions/merge/issueHandlers/mainDirtyHandler.d.ts +13 -0
  54. package/dist/actions/merge/issueHandlers/mainDirtyHandler.d.ts.map +1 -0
  55. package/dist/actions/merge/issueHandlers/mainDirtyHandler.js +72 -0
  56. package/dist/actions/merge/issueHandlers/mainDirtyHandler.js.map +1 -0
  57. package/dist/actions/merge/issueHandlers/mergeConflictHandler.d.ts +13 -0
  58. package/dist/actions/merge/issueHandlers/mergeConflictHandler.d.ts.map +1 -0
  59. package/dist/actions/merge/issueHandlers/mergeConflictHandler.js +52 -0
  60. package/dist/actions/merge/issueHandlers/mergeConflictHandler.js.map +1 -0
  61. package/dist/actions/merge/issueHandlers/nothingToMergeHandler.d.ts +7 -0
  62. package/dist/actions/merge/issueHandlers/nothingToMergeHandler.d.ts.map +1 -0
  63. package/dist/actions/merge/issueHandlers/nothingToMergeHandler.js +12 -0
  64. package/dist/actions/merge/issueHandlers/nothingToMergeHandler.js.map +1 -0
  65. package/dist/actions/merge/issueHandlers/worktreeUncommittedHandler.d.ts +13 -0
  66. package/dist/actions/merge/issueHandlers/worktreeUncommittedHandler.d.ts.map +1 -0
  67. package/dist/actions/merge/issueHandlers/worktreeUncommittedHandler.js +49 -0
  68. package/dist/actions/merge/issueHandlers/worktreeUncommittedHandler.js.map +1 -0
  69. package/dist/actions/merge/mergeExecution.d.ts +22 -0
  70. package/dist/actions/merge/mergeExecution.d.ts.map +1 -0
  71. package/dist/actions/merge/mergeExecution.js +180 -0
  72. package/dist/actions/merge/mergeExecution.js.map +1 -0
  73. package/dist/actions/paneActions.d.ts +3 -40
  74. package/dist/actions/paneActions.d.ts.map +1 -1
  75. package/dist/actions/paneActions.js +4 -981
  76. package/dist/actions/paneActions.js.map +1 -1
  77. package/dist/actions/types.d.ts +2 -0
  78. package/dist/actions/types.d.ts.map +1 -1
  79. package/dist/actions/types.js +1 -0
  80. package/dist/actions/types.js.map +1 -1
  81. package/dist/components/{ActionChoiceDialog.d.ts → dialogs/ActionChoiceDialog.d.ts} +1 -1
  82. package/dist/components/dialogs/ActionChoiceDialog.d.ts.map +1 -0
  83. package/dist/components/dialogs/ActionChoiceDialog.js.map +1 -0
  84. package/dist/components/dialogs/ActionConfirmDialog.d.ts.map +1 -0
  85. package/dist/components/dialogs/ActionConfirmDialog.js.map +1 -0
  86. package/dist/components/dialogs/ActionInputDialog.d.ts.map +1 -0
  87. package/dist/components/{ActionInputDialog.js → dialogs/ActionInputDialog.js} +4 -3
  88. package/dist/components/dialogs/ActionInputDialog.js.map +1 -0
  89. package/dist/components/dialogs/ActionProgressDialog.d.ts.map +1 -0
  90. package/dist/components/dialogs/ActionProgressDialog.js.map +1 -0
  91. package/dist/components/dialogs/AgentChoiceDialog.d.ts.map +1 -0
  92. package/dist/components/dialogs/AgentChoiceDialog.js.map +1 -0
  93. package/dist/components/{CloseOptionsDialog.d.ts → dialogs/CloseOptionsDialog.d.ts} +1 -1
  94. package/dist/components/dialogs/CloseOptionsDialog.d.ts.map +1 -0
  95. package/dist/components/dialogs/CloseOptionsDialog.js.map +1 -0
  96. package/dist/components/dialogs/CommandPromptDialog.d.ts.map +1 -0
  97. package/dist/components/{CommandPromptDialog.js → dialogs/CommandPromptDialog.js} +1 -1
  98. package/dist/components/dialogs/CommandPromptDialog.js.map +1 -0
  99. package/dist/components/dialogs/DialogBox.d.ts +16 -0
  100. package/dist/components/dialogs/DialogBox.d.ts.map +1 -0
  101. package/dist/components/dialogs/DialogBox.js +12 -0
  102. package/dist/components/dialogs/DialogBox.js.map +1 -0
  103. package/dist/components/dialogs/HooksDialog.d.ts.map +1 -0
  104. package/dist/components/dialogs/HooksDialog.js.map +1 -0
  105. package/dist/components/{MergeConfirmationDialog.d.ts → dialogs/MergeConfirmationDialog.d.ts} +1 -1
  106. package/dist/components/dialogs/MergeConfirmationDialog.d.ts.map +1 -0
  107. package/dist/components/dialogs/MergeConfirmationDialog.js.map +1 -0
  108. package/dist/components/{SettingsDialog.d.ts → dialogs/SettingsDialog.d.ts} +1 -1
  109. package/dist/components/dialogs/SettingsDialog.d.ts.map +1 -0
  110. package/dist/components/dialogs/SettingsDialog.js.map +1 -0
  111. package/dist/components/dialogs/UpdateDialog.d.ts.map +1 -0
  112. package/dist/components/dialogs/UpdateDialog.js.map +1 -0
  113. package/dist/components/indicators/CreatingIndicator.d.ts.map +1 -0
  114. package/dist/components/indicators/CreatingIndicator.js.map +1 -0
  115. package/dist/components/indicators/LoadingIndicator.d.ts.map +1 -0
  116. package/dist/components/indicators/LoadingIndicator.js.map +1 -0
  117. package/dist/components/indicators/RunningIndicator.d.ts.map +1 -0
  118. package/dist/components/indicators/RunningIndicator.js.map +1 -0
  119. package/dist/components/indicators/Spinner.d.ts.map +1 -0
  120. package/dist/components/indicators/Spinner.js.map +1 -0
  121. package/dist/components/indicators/UpdatingIndicator.d.ts.map +1 -0
  122. package/dist/components/indicators/UpdatingIndicator.js.map +1 -0
  123. package/dist/components/indicators/index.d.ts +6 -0
  124. package/dist/components/indicators/index.d.ts.map +1 -0
  125. package/dist/components/indicators/index.js +6 -0
  126. package/dist/components/indicators/index.js.map +1 -0
  127. package/dist/components/inputs/CleanTextInput.d.ts +19 -0
  128. package/dist/components/inputs/CleanTextInput.d.ts.map +1 -0
  129. package/dist/{CleanTextInput.js → components/inputs/CleanTextInput.js} +98 -160
  130. package/dist/components/inputs/CleanTextInput.js.map +1 -0
  131. package/dist/components/inputs/StyledTextInput.d.ts.map +1 -0
  132. package/dist/components/inputs/StyledTextInput.js.map +1 -0
  133. package/dist/components/inputs/index.d.ts +3 -0
  134. package/dist/components/inputs/index.d.ts.map +1 -0
  135. package/dist/components/inputs/index.js +3 -0
  136. package/dist/components/inputs/index.js.map +1 -0
  137. package/dist/components/{KebabMenu.d.ts → panes/KebabMenu.d.ts} +1 -1
  138. package/dist/components/panes/KebabMenu.d.ts.map +1 -0
  139. package/dist/components/panes/KebabMenu.js.map +1 -0
  140. package/dist/components/panes/MergePane.d.ts.map +1 -0
  141. package/dist/{MergePane.js → components/panes/MergePane.js} +1 -1
  142. package/dist/components/panes/MergePane.js.map +1 -0
  143. package/dist/components/{PaneCard.d.ts → panes/PaneCard.d.ts} +4 -2
  144. package/dist/components/panes/PaneCard.d.ts.map +1 -0
  145. package/dist/components/panes/PaneCard.js +55 -0
  146. package/dist/components/panes/PaneCard.js.map +1 -0
  147. package/dist/components/panes/PanesGrid.d.ts +12 -0
  148. package/dist/components/panes/PanesGrid.d.ts.map +1 -0
  149. package/dist/components/panes/PanesGrid.js +49 -0
  150. package/dist/components/panes/PanesGrid.js.map +1 -0
  151. package/dist/components/panes/index.d.ts +5 -0
  152. package/dist/components/panes/index.d.ts.map +1 -0
  153. package/dist/components/panes/index.js +5 -0
  154. package/dist/components/panes/index.js.map +1 -0
  155. package/dist/components/popups/agentChoicePopup.d.ts +7 -0
  156. package/dist/components/popups/agentChoicePopup.d.ts.map +1 -0
  157. package/dist/components/popups/agentChoicePopup.js +74 -0
  158. package/dist/components/popups/agentChoicePopup.js.map +1 -0
  159. package/dist/components/popups/choicePopup.d.ts +7 -0
  160. package/dist/components/popups/choicePopup.d.ts.map +1 -0
  161. package/dist/components/popups/choicePopup.js +64 -0
  162. package/dist/components/popups/choicePopup.js.map +1 -0
  163. package/dist/components/popups/config.d.ts +40 -0
  164. package/dist/components/popups/config.d.ts.map +1 -0
  165. package/dist/components/popups/config.js +40 -0
  166. package/dist/components/popups/config.js.map +1 -0
  167. package/dist/components/popups/confirmPopup.d.ts +7 -0
  168. package/dist/components/popups/confirmPopup.d.ts.map +1 -0
  169. package/dist/components/popups/confirmPopup.js +71 -0
  170. package/dist/components/popups/confirmPopup.js.map +1 -0
  171. package/dist/components/popups/hooksPopup.d.ts +7 -0
  172. package/dist/components/popups/hooksPopup.d.ts.map +1 -0
  173. package/dist/components/popups/hooksPopup.js +71 -0
  174. package/dist/components/popups/hooksPopup.js.map +1 -0
  175. package/dist/components/popups/inputPopup.d.ts +7 -0
  176. package/dist/components/popups/inputPopup.d.ts.map +1 -0
  177. package/dist/components/popups/inputPopup.js +47 -0
  178. package/dist/components/popups/inputPopup.js.map +1 -0
  179. package/dist/components/popups/kebabMenuPopup.d.ts +7 -0
  180. package/dist/components/popups/kebabMenuPopup.d.ts.map +1 -0
  181. package/dist/components/popups/kebabMenuPopup.js +52 -0
  182. package/dist/components/popups/kebabMenuPopup.js.map +1 -0
  183. package/dist/components/popups/logsPopup.d.ts +12 -0
  184. package/dist/components/popups/logsPopup.d.ts.map +1 -0
  185. package/dist/components/popups/logsPopup.js +372 -0
  186. package/dist/components/popups/logsPopup.js.map +1 -0
  187. package/dist/components/popups/mergePopup.d.ts +7 -0
  188. package/dist/components/popups/mergePopup.d.ts.map +1 -0
  189. package/dist/components/popups/mergePopup.js +310 -0
  190. package/dist/components/popups/mergePopup.js.map +1 -0
  191. package/dist/components/popups/newPanePopup.d.ts +7 -0
  192. package/dist/components/popups/newPanePopup.d.ts.map +1 -0
  193. package/dist/components/popups/newPanePopup.js +234 -0
  194. package/dist/components/popups/newPanePopup.js.map +1 -0
  195. package/dist/components/popups/progressPopup.d.ts +8 -0
  196. package/dist/components/popups/progressPopup.d.ts.map +1 -0
  197. package/dist/components/popups/progressPopup.js +53 -0
  198. package/dist/components/popups/progressPopup.js.map +1 -0
  199. package/dist/components/popups/remotePopup.d.ts +6 -0
  200. package/dist/components/popups/remotePopup.d.ts.map +1 -0
  201. package/dist/components/popups/remotePopup.js +166 -0
  202. package/dist/components/popups/remotePopup.js.map +1 -0
  203. package/dist/components/popups/settingsPopup.d.ts +7 -0
  204. package/dist/components/popups/settingsPopup.d.ts.map +1 -0
  205. package/dist/components/popups/settingsPopup.js +212 -0
  206. package/dist/components/popups/settingsPopup.js.map +1 -0
  207. package/dist/components/popups/shared/FileList.d.ts +13 -0
  208. package/dist/components/popups/shared/FileList.d.ts.map +1 -0
  209. package/dist/components/popups/shared/FileList.js +61 -0
  210. package/dist/components/popups/shared/FileList.js.map +1 -0
  211. package/dist/components/popups/shared/PopupContainer.d.ts +14 -0
  212. package/dist/components/popups/shared/PopupContainer.d.ts.map +1 -0
  213. package/dist/components/popups/shared/PopupContainer.js +15 -0
  214. package/dist/components/popups/shared/PopupContainer.js.map +1 -0
  215. package/dist/components/popups/shared/PopupInputBox.d.ts +11 -0
  216. package/dist/components/popups/shared/PopupInputBox.d.ts.map +1 -0
  217. package/dist/components/popups/shared/PopupInputBox.js +10 -0
  218. package/dist/components/popups/shared/PopupInputBox.js.map +1 -0
  219. package/dist/components/popups/shared/PopupWrapper.d.ts +37 -0
  220. package/dist/components/popups/shared/PopupWrapper.d.ts.map +1 -0
  221. package/dist/components/popups/shared/PopupWrapper.js +88 -0
  222. package/dist/components/popups/shared/PopupWrapper.js.map +1 -0
  223. package/dist/components/popups/shared/index.d.ts +8 -0
  224. package/dist/components/popups/shared/index.d.ts.map +1 -0
  225. package/dist/components/popups/shared/index.js +8 -0
  226. package/dist/components/popups/shared/index.js.map +1 -0
  227. package/dist/components/popups/shortcutsPopup.d.ts +6 -0
  228. package/dist/components/popups/shortcutsPopup.d.ts.map +1 -0
  229. package/dist/components/popups/shortcutsPopup.js +74 -0
  230. package/dist/components/popups/shortcutsPopup.js.map +1 -0
  231. package/dist/components/popups/templates/SimpleInputPopup.d.ts +15 -0
  232. package/dist/components/popups/templates/SimpleInputPopup.d.ts.map +1 -0
  233. package/dist/components/popups/templates/SimpleInputPopup.js +28 -0
  234. package/dist/components/popups/templates/SimpleInputPopup.js.map +1 -0
  235. package/dist/components/ui/FileCopyPrompt.d.ts.map +1 -0
  236. package/dist/components/ui/FileCopyPrompt.js.map +1 -0
  237. package/dist/components/ui/FooterHelp.d.ts +19 -0
  238. package/dist/components/ui/FooterHelp.d.ts.map +1 -0
  239. package/dist/components/ui/FooterHelp.js +55 -0
  240. package/dist/components/ui/FooterHelp.js.map +1 -0
  241. package/dist/components/ui/QRCode.d.ts.map +1 -0
  242. package/dist/components/ui/QRCode.js.map +1 -0
  243. package/dist/components/ui/index.d.ts +4 -0
  244. package/dist/components/ui/index.d.ts.map +1 -0
  245. package/dist/components/ui/index.js +4 -0
  246. package/dist/components/ui/index.js.map +1 -0
  247. package/dist/constants/timing.d.ts +22 -0
  248. package/dist/constants/timing.d.ts.map +1 -0
  249. package/dist/constants/timing.js +26 -0
  250. package/dist/constants/timing.js.map +1 -0
  251. package/dist/dashboard.js +1 -1
  252. package/dist/hooks/useActionSystem.d.ts +18 -4
  253. package/dist/hooks/useActionSystem.d.ts.map +1 -1
  254. package/dist/hooks/useActionSystem.js +125 -30
  255. package/dist/hooks/useActionSystem.js.map +1 -1
  256. package/dist/hooks/useDebugInfo.d.ts +11 -0
  257. package/dist/hooks/useDebugInfo.d.ts.map +1 -0
  258. package/dist/hooks/useDebugInfo.js +34 -0
  259. package/dist/hooks/useDebugInfo.js.map +1 -0
  260. package/dist/hooks/useDialogState.d.ts +22 -0
  261. package/dist/hooks/useDialogState.d.ts.map +1 -0
  262. package/dist/hooks/useDialogState.js +62 -0
  263. package/dist/hooks/useDialogState.js.map +1 -0
  264. package/dist/hooks/useInputHandling.d.ts +60 -0
  265. package/dist/hooks/useInputHandling.d.ts.map +1 -0
  266. package/dist/hooks/useInputHandling.js +280 -0
  267. package/dist/hooks/useInputHandling.js.map +1 -0
  268. package/dist/hooks/useLayoutManagement.d.ts +12 -0
  269. package/dist/hooks/useLayoutManagement.d.ts.map +1 -0
  270. package/dist/hooks/useLayoutManagement.js +58 -0
  271. package/dist/hooks/useLayoutManagement.js.map +1 -0
  272. package/dist/hooks/useNavigation.js +1 -1
  273. package/dist/hooks/useNavigation.js.map +1 -1
  274. package/dist/hooks/usePaneCreation.d.ts +1 -2
  275. package/dist/hooks/usePaneCreation.d.ts.map +1 -1
  276. package/dist/hooks/usePaneCreation.js +17 -36
  277. package/dist/hooks/usePaneCreation.js.map +1 -1
  278. package/dist/hooks/usePaneLoading.d.ts +45 -0
  279. package/dist/hooks/usePaneLoading.d.ts.map +1 -0
  280. package/dist/hooks/usePaneLoading.js +188 -0
  281. package/dist/hooks/usePaneLoading.js.map +1 -0
  282. package/dist/hooks/usePaneRunner.d.ts.map +1 -1
  283. package/dist/hooks/usePaneRunner.js +16 -8
  284. package/dist/hooks/usePaneRunner.js.map +1 -1
  285. package/dist/hooks/usePaneSync.d.ts +34 -0
  286. package/dist/hooks/usePaneSync.d.ts.map +1 -0
  287. package/dist/hooks/usePaneSync.js +182 -0
  288. package/dist/hooks/usePaneSync.js.map +1 -0
  289. package/dist/hooks/usePanes.d.ts.map +1 -1
  290. package/dist/hooks/usePanes.js +81 -258
  291. package/dist/hooks/usePanes.js.map +1 -1
  292. package/dist/hooks/useServices.d.ts +24 -0
  293. package/dist/hooks/useServices.d.ts.map +1 -0
  294. package/dist/hooks/useServices.js +39 -0
  295. package/dist/hooks/useServices.js.map +1 -0
  296. package/dist/hooks/useShellDetection.d.ts +10 -0
  297. package/dist/hooks/useShellDetection.d.ts.map +1 -0
  298. package/dist/hooks/useShellDetection.js +53 -0
  299. package/dist/hooks/useShellDetection.js.map +1 -0
  300. package/dist/hooks/useStatusMessages.d.ts +11 -0
  301. package/dist/hooks/useStatusMessages.d.ts.map +1 -0
  302. package/dist/hooks/useStatusMessages.js +32 -0
  303. package/dist/hooks/useStatusMessages.js.map +1 -0
  304. package/dist/hooks/useTemporaryStatus.d.ts +13 -0
  305. package/dist/hooks/useTemporaryStatus.d.ts.map +1 -0
  306. package/dist/hooks/useTemporaryStatus.js +30 -0
  307. package/dist/hooks/useTemporaryStatus.js.map +1 -0
  308. package/dist/hooks/useTerminalWidth.d.ts.map +1 -1
  309. package/dist/hooks/useTerminalWidth.js +7 -12
  310. package/dist/hooks/useTerminalWidth.js.map +1 -1
  311. package/dist/hooks/useTunnelManagement.d.ts +18 -0
  312. package/dist/hooks/useTunnelManagement.d.ts.map +1 -0
  313. package/dist/hooks/useTunnelManagement.js +55 -0
  314. package/dist/hooks/useTunnelManagement.js.map +1 -0
  315. package/dist/hooks/useWorktreeActions.d.ts.map +1 -1
  316. package/dist/hooks/useWorktreeActions.js +23 -24
  317. package/dist/hooks/useWorktreeActions.js.map +1 -1
  318. package/dist/index.js +279 -73
  319. package/dist/index.js.map +1 -1
  320. package/dist/layout/LayoutCalculator.d.ts +62 -0
  321. package/dist/layout/LayoutCalculator.d.ts.map +1 -0
  322. package/dist/layout/LayoutCalculator.js +143 -0
  323. package/dist/layout/LayoutCalculator.js.map +1 -0
  324. package/dist/layout/SpacerManager.d.ts +64 -0
  325. package/dist/layout/SpacerManager.d.ts.map +1 -0
  326. package/dist/layout/SpacerManager.js +148 -0
  327. package/dist/layout/SpacerManager.js.map +1 -0
  328. package/dist/layout/TmuxLayoutApplier.d.ts +59 -0
  329. package/dist/layout/TmuxLayoutApplier.d.ts.map +1 -0
  330. package/dist/layout/TmuxLayoutApplier.js +135 -0
  331. package/dist/layout/TmuxLayoutApplier.js.map +1 -0
  332. package/dist/panes/decorative-pane.d.ts +3 -0
  333. package/dist/panes/decorative-pane.d.ts.map +1 -0
  334. package/dist/panes/decorative-pane.js +136 -0
  335. package/dist/panes/decorative-pane.js.map +1 -0
  336. package/dist/panes/spacer-pane.d.ts +8 -0
  337. package/dist/panes/spacer-pane.d.ts.map +1 -0
  338. package/dist/panes/spacer-pane.js +40 -0
  339. package/dist/panes/spacer-pane.js.map +1 -0
  340. package/dist/server/embedded-assets.d.ts.map +1 -1
  341. package/dist/server/embedded-assets.js +849 -4752
  342. package/dist/server/embedded-assets.js.map +1 -1
  343. package/dist/server/index.js +1 -1
  344. package/dist/server/index.js.map +1 -1
  345. package/dist/server/routes/actionsRoutes.d.ts +2 -0
  346. package/dist/server/routes/actionsRoutes.d.ts.map +1 -0
  347. package/dist/server/routes/actionsRoutes.js +110 -0
  348. package/dist/server/routes/actionsRoutes.js.map +1 -0
  349. package/dist/server/routes/healthRoutes.d.ts +13 -0
  350. package/dist/server/routes/healthRoutes.d.ts.map +1 -0
  351. package/dist/server/routes/healthRoutes.js +70 -0
  352. package/dist/server/routes/healthRoutes.js.map +1 -0
  353. package/dist/server/routes/index.d.ts +8 -0
  354. package/dist/server/routes/index.d.ts.map +1 -0
  355. package/dist/server/routes/index.js +67 -0
  356. package/dist/server/routes/index.js.map +1 -0
  357. package/dist/server/routes/keysRoutes.d.ts +20 -0
  358. package/dist/server/routes/keysRoutes.d.ts.map +1 -0
  359. package/dist/server/routes/keysRoutes.js +111 -0
  360. package/dist/server/routes/keysRoutes.js.map +1 -0
  361. package/dist/server/routes/panesRoutes.d.ts +2 -0
  362. package/dist/server/routes/panesRoutes.d.ts.map +1 -0
  363. package/dist/server/routes/panesRoutes.js +373 -0
  364. package/dist/server/routes/panesRoutes.js.map +1 -0
  365. package/dist/server/routes/settingsRoutes.d.ts +94 -0
  366. package/dist/server/routes/settingsRoutes.d.ts.map +1 -0
  367. package/dist/server/routes/settingsRoutes.js +159 -0
  368. package/dist/server/routes/settingsRoutes.js.map +1 -0
  369. package/dist/server/routes/streamRoutes.d.ts +18 -0
  370. package/dist/server/routes/streamRoutes.d.ts.map +1 -0
  371. package/dist/server/routes/streamRoutes.js +87 -0
  372. package/dist/server/routes/streamRoutes.js.map +1 -0
  373. package/dist/server/routes/tunnelRoutes.d.ts +11 -0
  374. package/dist/server/routes/tunnelRoutes.d.ts.map +1 -0
  375. package/dist/server/routes/tunnelRoutes.js +28 -0
  376. package/dist/server/routes/tunnelRoutes.js.map +1 -0
  377. package/dist/server/routes.d.ts +16 -2
  378. package/dist/server/routes.d.ts.map +1 -1
  379. package/dist/server/routes.js +16 -811
  380. package/dist/server/routes.js.map +1 -1
  381. package/dist/{AutoUpdater.d.ts → services/AutoUpdater.d.ts} +1 -0
  382. package/dist/services/AutoUpdater.d.ts.map +1 -0
  383. package/dist/{AutoUpdater.js → services/AutoUpdater.js} +42 -9
  384. package/dist/services/AutoUpdater.js.map +1 -0
  385. package/dist/services/ConfigWatcher.d.ts.map +1 -1
  386. package/dist/services/ConfigWatcher.js +10 -3
  387. package/dist/services/ConfigWatcher.js.map +1 -1
  388. package/dist/services/LogService.d.ts +112 -0
  389. package/dist/services/LogService.d.ts.map +1 -0
  390. package/dist/services/LogService.js +252 -0
  391. package/dist/services/LogService.js.map +1 -0
  392. package/dist/services/PaneAnalyzer.d.ts.map +1 -0
  393. package/dist/{PaneAnalyzer.js → services/PaneAnalyzer.js} +1 -1
  394. package/dist/services/PaneAnalyzer.js.map +1 -0
  395. package/dist/services/PaneLifecycleManager.d.ts +60 -0
  396. package/dist/services/PaneLifecycleManager.d.ts.map +1 -0
  397. package/dist/services/PaneLifecycleManager.js +119 -0
  398. package/dist/services/PaneLifecycleManager.js.map +1 -0
  399. package/dist/services/PaneWorkerManager.d.ts.map +1 -1
  400. package/dist/services/PaneWorkerManager.js +41 -12
  401. package/dist/services/PaneWorkerManager.js.map +1 -1
  402. package/dist/services/PopupManager.d.ts +68 -0
  403. package/dist/services/PopupManager.d.ts.map +1 -0
  404. package/dist/services/PopupManager.js +415 -0
  405. package/dist/services/PopupManager.js.map +1 -0
  406. package/dist/services/StatusDetector.js +1 -1
  407. package/dist/services/StatusDetector.js.map +1 -1
  408. package/dist/services/TerminalStreamer.d.ts +1 -0
  409. package/dist/services/TerminalStreamer.d.ts.map +1 -1
  410. package/dist/services/TerminalStreamer.js +22 -16
  411. package/dist/services/TerminalStreamer.js.map +1 -1
  412. package/dist/services/TmuxService.d.ts +298 -0
  413. package/dist/services/TmuxService.d.ts.map +1 -0
  414. package/dist/services/TmuxService.js +768 -0
  415. package/dist/services/TmuxService.js.map +1 -0
  416. package/dist/services/TunnelService.d.ts +1 -0
  417. package/dist/services/TunnelService.d.ts.map +1 -1
  418. package/dist/services/TunnelService.js +57 -15
  419. package/dist/services/TunnelService.js.map +1 -1
  420. package/dist/shared/StateManager.d.ts +49 -1
  421. package/dist/shared/StateManager.d.ts.map +1 -1
  422. package/dist/shared/StateManager.js +97 -2
  423. package/dist/shared/StateManager.js.map +1 -1
  424. package/dist/theme/colors.d.ts +25 -0
  425. package/dist/theme/colors.d.ts.map +1 -0
  426. package/dist/theme/colors.js +33 -0
  427. package/dist/theme/colors.js.map +1 -0
  428. package/dist/types.d.ts +18 -0
  429. package/dist/types.d.ts.map +1 -1
  430. package/dist/utils/asciiArt.d.ts +26 -0
  431. package/dist/utils/asciiArt.d.ts.map +1 -0
  432. package/dist/utils/asciiArt.js +75 -0
  433. package/dist/utils/asciiArt.js.map +1 -0
  434. package/dist/utils/conflictMonitor.d.ts +20 -0
  435. package/dist/utils/conflictMonitor.d.ts.map +1 -0
  436. package/dist/utils/conflictMonitor.js +113 -0
  437. package/dist/utils/conflictMonitor.js.map +1 -0
  438. package/dist/utils/conflictResolutionPane.d.ts.map +1 -1
  439. package/dist/utils/conflictResolutionPane.js +75 -80
  440. package/dist/utils/conflictResolutionPane.js.map +1 -1
  441. package/dist/utils/errorHandling.d.ts +37 -0
  442. package/dist/utils/errorHandling.d.ts.map +1 -0
  443. package/dist/utils/errorHandling.js +112 -0
  444. package/dist/utils/errorHandling.js.map +1 -0
  445. package/dist/utils/fileScanner.d.ts +23 -0
  446. package/dist/utils/fileScanner.d.ts.map +1 -0
  447. package/dist/utils/fileScanner.js +123 -0
  448. package/dist/utils/fileScanner.js.map +1 -0
  449. package/dist/utils/generated-agents-doc.d.ts +1 -1
  450. package/dist/utils/generated-agents-doc.js +1 -1
  451. package/dist/utils/git.d.ts +4 -0
  452. package/dist/utils/git.d.ts.map +1 -1
  453. package/dist/utils/git.js +15 -0
  454. package/dist/utils/git.js.map +1 -1
  455. package/dist/utils/hooks.d.ts.map +1 -1
  456. package/dist/utils/hooks.js +65 -36
  457. package/dist/utils/hooks.js.map +1 -1
  458. package/dist/utils/hooksDocs.d.ts +1 -1
  459. package/dist/utils/layoutManager.d.ts +49 -0
  460. package/dist/utils/layoutManager.d.ts.map +1 -0
  461. package/dist/utils/layoutManager.js +249 -0
  462. package/dist/utils/layoutManager.js.map +1 -0
  463. package/dist/utils/mergeExecution.d.ts.map +1 -1
  464. package/dist/utils/mergeExecution.js +8 -1
  465. package/dist/utils/mergeExecution.js.map +1 -1
  466. package/dist/utils/mergeValidation.d.ts.map +1 -1
  467. package/dist/utils/mergeValidation.js +42 -13
  468. package/dist/utils/mergeValidation.js.map +1 -1
  469. package/dist/utils/paneCreation.d.ts.map +1 -1
  470. package/dist/utils/paneCreation.js +210 -88
  471. package/dist/utils/paneCreation.js.map +1 -1
  472. package/dist/utils/paneRebinding.d.ts +14 -0
  473. package/dist/utils/paneRebinding.d.ts.map +1 -0
  474. package/dist/utils/paneRebinding.js +28 -0
  475. package/dist/utils/paneRebinding.js.map +1 -0
  476. package/dist/utils/popup.d.ts +97 -0
  477. package/dist/utils/popup.d.ts.map +1 -0
  478. package/dist/utils/popup.js +503 -0
  479. package/dist/utils/popup.js.map +1 -0
  480. package/dist/utils/postPaneCleanup.d.ts +12 -0
  481. package/dist/utils/postPaneCleanup.d.ts.map +1 -0
  482. package/dist/utils/postPaneCleanup.js +54 -0
  483. package/dist/utils/postPaneCleanup.js.map +1 -0
  484. package/dist/utils/shellPaneDetection.d.ts +44 -0
  485. package/dist/utils/shellPaneDetection.d.ts.map +1 -0
  486. package/dist/utils/shellPaneDetection.js +179 -0
  487. package/dist/utils/shellPaneDetection.js.map +1 -0
  488. package/dist/utils/systemCheck.d.ts +19 -0
  489. package/dist/utils/systemCheck.d.ts.map +1 -0
  490. package/dist/utils/systemCheck.js +160 -0
  491. package/dist/utils/systemCheck.js.map +1 -0
  492. package/dist/utils/tmux.d.ts +72 -1
  493. package/dist/utils/tmux.d.ts.map +1 -1
  494. package/dist/utils/tmux.js +369 -99
  495. package/dist/utils/tmux.js.map +1 -1
  496. package/dist/utils/welcomePane.d.ts +22 -0
  497. package/dist/utils/welcomePane.d.ts.map +1 -0
  498. package/dist/utils/welcomePane.js +111 -0
  499. package/dist/utils/welcomePane.js.map +1 -0
  500. package/dist/utils/welcomePaneManager.d.ts +36 -0
  501. package/dist/utils/welcomePaneManager.d.ts.map +1 -0
  502. package/dist/utils/welcomePaneManager.js +160 -0
  503. package/dist/utils/welcomePaneManager.js.map +1 -0
  504. package/dist/workers/PaneWorker.js +8 -8
  505. package/dist/workers/PaneWorker.js.map +1 -1
  506. package/dist/workers/updateChecker.js +1 -1
  507. package/dist/workers/updateChecker.js.map +1 -1
  508. package/package.json +7 -2
  509. package/dist/AutoUpdater.d.ts.map +0 -1
  510. package/dist/AutoUpdater.js.map +0 -1
  511. package/dist/BetterTextInput.d.ts +0 -10
  512. package/dist/BetterTextInput.d.ts.map +0 -1
  513. package/dist/BetterTextInput.js +0 -177
  514. package/dist/BetterTextInput.js.map +0 -1
  515. package/dist/CleanTextInput.d.ts +0 -10
  516. package/dist/CleanTextInput.d.ts.map +0 -1
  517. package/dist/CleanTextInput.js.map +0 -1
  518. package/dist/EnhancedTextInput.d.ts +0 -13
  519. package/dist/EnhancedTextInput.d.ts.map +0 -1
  520. package/dist/EnhancedTextInput.js +0 -443
  521. package/dist/EnhancedTextInput.js.map +0 -1
  522. package/dist/GeminiTextInput.d.ts +0 -12
  523. package/dist/GeminiTextInput.d.ts.map +0 -1
  524. package/dist/GeminiTextInput.js +0 -210
  525. package/dist/GeminiTextInput.js.map +0 -1
  526. package/dist/MergePane.d.ts.map +0 -1
  527. package/dist/MergePane.js.map +0 -1
  528. package/dist/MultilineTextInput.d.ts +0 -10
  529. package/dist/MultilineTextInput.d.ts.map +0 -1
  530. package/dist/MultilineTextInput.js +0 -184
  531. package/dist/MultilineTextInput.js.map +0 -1
  532. package/dist/PaneAnalyzer.d.ts.map +0 -1
  533. package/dist/PaneAnalyzer.js.map +0 -1
  534. package/dist/SimpleEnhancedInput.d.ts +0 -13
  535. package/dist/SimpleEnhancedInput.d.ts.map +0 -1
  536. package/dist/SimpleEnhancedInput.js +0 -639
  537. package/dist/SimpleEnhancedInput.js.map +0 -1
  538. package/dist/SimpleGeminiInput.d.ts +0 -12
  539. package/dist/SimpleGeminiInput.d.ts.map +0 -1
  540. package/dist/SimpleGeminiInput.js +0 -223
  541. package/dist/SimpleGeminiInput.js.map +0 -1
  542. package/dist/StyledTextInput.d.ts.map +0 -1
  543. package/dist/StyledTextInput.js.map +0 -1
  544. package/dist/components/ActionChoiceDialog.d.ts.map +0 -1
  545. package/dist/components/ActionChoiceDialog.js.map +0 -1
  546. package/dist/components/ActionConfirmDialog.d.ts.map +0 -1
  547. package/dist/components/ActionConfirmDialog.js.map +0 -1
  548. package/dist/components/ActionInputDialog.d.ts.map +0 -1
  549. package/dist/components/ActionInputDialog.js.map +0 -1
  550. package/dist/components/ActionProgressDialog.d.ts.map +0 -1
  551. package/dist/components/ActionProgressDialog.js.map +0 -1
  552. package/dist/components/AgentChoiceDialog.d.ts.map +0 -1
  553. package/dist/components/AgentChoiceDialog.js.map +0 -1
  554. package/dist/components/CloseOptionsDialog.d.ts.map +0 -1
  555. package/dist/components/CloseOptionsDialog.js.map +0 -1
  556. package/dist/components/CommandPromptDialog.d.ts.map +0 -1
  557. package/dist/components/CommandPromptDialog.js.map +0 -1
  558. package/dist/components/CreatingIndicator.d.ts.map +0 -1
  559. package/dist/components/CreatingIndicator.js.map +0 -1
  560. package/dist/components/FileCopyPrompt.d.ts.map +0 -1
  561. package/dist/components/FileCopyPrompt.js.map +0 -1
  562. package/dist/components/FooterHelp.d.ts +0 -10
  563. package/dist/components/FooterHelp.d.ts.map +0 -1
  564. package/dist/components/FooterHelp.js +0 -19
  565. package/dist/components/FooterHelp.js.map +0 -1
  566. package/dist/components/HooksDialog.d.ts.map +0 -1
  567. package/dist/components/HooksDialog.js.map +0 -1
  568. package/dist/components/KebabMenu.d.ts.map +0 -1
  569. package/dist/components/KebabMenu.js.map +0 -1
  570. package/dist/components/LoadingIndicator.d.ts.map +0 -1
  571. package/dist/components/LoadingIndicator.js.map +0 -1
  572. package/dist/components/MergeConfirmationDialog.d.ts.map +0 -1
  573. package/dist/components/MergeConfirmationDialog.js.map +0 -1
  574. package/dist/components/NewPaneDialog.d.ts +0 -9
  575. package/dist/components/NewPaneDialog.d.ts.map +0 -1
  576. package/dist/components/NewPaneDialog.js +0 -11
  577. package/dist/components/NewPaneDialog.js.map +0 -1
  578. package/dist/components/PaneCard.d.ts.map +0 -1
  579. package/dist/components/PaneCard.js +0 -38
  580. package/dist/components/PaneCard.js.map +0 -1
  581. package/dist/components/PanesGrid.d.ts +0 -14
  582. package/dist/components/PanesGrid.d.ts.map +0 -1
  583. package/dist/components/PanesGrid.js +0 -19
  584. package/dist/components/PanesGrid.js.map +0 -1
  585. package/dist/components/QRCode.d.ts.map +0 -1
  586. package/dist/components/QRCode.js.map +0 -1
  587. package/dist/components/RunningIndicator.d.ts.map +0 -1
  588. package/dist/components/RunningIndicator.js.map +0 -1
  589. package/dist/components/SettingsDialog.d.ts.map +0 -1
  590. package/dist/components/SettingsDialog.js.map +0 -1
  591. package/dist/components/Spinner.d.ts.map +0 -1
  592. package/dist/components/Spinner.js.map +0 -1
  593. package/dist/components/UpdateDialog.d.ts.map +0 -1
  594. package/dist/components/UpdateDialog.js.map +0 -1
  595. package/dist/components/UpdatingIndicator.d.ts.map +0 -1
  596. package/dist/components/UpdatingIndicator.js.map +0 -1
  597. package/dist/server/static.d.ts +0 -6
  598. package/dist/server/static.d.ts.map +0 -1
  599. package/dist/server/static.js +0 -3040
  600. package/dist/server/static.js.map +0 -1
  601. /package/dist/components/{ActionChoiceDialog.js → dialogs/ActionChoiceDialog.js} +0 -0
  602. /package/dist/components/{ActionConfirmDialog.d.ts → dialogs/ActionConfirmDialog.d.ts} +0 -0
  603. /package/dist/components/{ActionConfirmDialog.js → dialogs/ActionConfirmDialog.js} +0 -0
  604. /package/dist/components/{ActionInputDialog.d.ts → dialogs/ActionInputDialog.d.ts} +0 -0
  605. /package/dist/components/{ActionProgressDialog.d.ts → dialogs/ActionProgressDialog.d.ts} +0 -0
  606. /package/dist/components/{ActionProgressDialog.js → dialogs/ActionProgressDialog.js} +0 -0
  607. /package/dist/components/{AgentChoiceDialog.d.ts → dialogs/AgentChoiceDialog.d.ts} +0 -0
  608. /package/dist/components/{AgentChoiceDialog.js → dialogs/AgentChoiceDialog.js} +0 -0
  609. /package/dist/components/{CloseOptionsDialog.js → dialogs/CloseOptionsDialog.js} +0 -0
  610. /package/dist/components/{CommandPromptDialog.d.ts → dialogs/CommandPromptDialog.d.ts} +0 -0
  611. /package/dist/components/{HooksDialog.d.ts → dialogs/HooksDialog.d.ts} +0 -0
  612. /package/dist/components/{HooksDialog.js → dialogs/HooksDialog.js} +0 -0
  613. /package/dist/components/{MergeConfirmationDialog.js → dialogs/MergeConfirmationDialog.js} +0 -0
  614. /package/dist/components/{SettingsDialog.js → dialogs/SettingsDialog.js} +0 -0
  615. /package/dist/components/{UpdateDialog.d.ts → dialogs/UpdateDialog.d.ts} +0 -0
  616. /package/dist/components/{UpdateDialog.js → dialogs/UpdateDialog.js} +0 -0
  617. /package/dist/components/{CreatingIndicator.d.ts → indicators/CreatingIndicator.d.ts} +0 -0
  618. /package/dist/components/{CreatingIndicator.js → indicators/CreatingIndicator.js} +0 -0
  619. /package/dist/components/{LoadingIndicator.d.ts → indicators/LoadingIndicator.d.ts} +0 -0
  620. /package/dist/components/{LoadingIndicator.js → indicators/LoadingIndicator.js} +0 -0
  621. /package/dist/components/{RunningIndicator.d.ts → indicators/RunningIndicator.d.ts} +0 -0
  622. /package/dist/components/{RunningIndicator.js → indicators/RunningIndicator.js} +0 -0
  623. /package/dist/components/{Spinner.d.ts → indicators/Spinner.d.ts} +0 -0
  624. /package/dist/components/{Spinner.js → indicators/Spinner.js} +0 -0
  625. /package/dist/components/{UpdatingIndicator.d.ts → indicators/UpdatingIndicator.d.ts} +0 -0
  626. /package/dist/components/{UpdatingIndicator.js → indicators/UpdatingIndicator.js} +0 -0
  627. /package/dist/{StyledTextInput.d.ts → components/inputs/StyledTextInput.d.ts} +0 -0
  628. /package/dist/{StyledTextInput.js → components/inputs/StyledTextInput.js} +0 -0
  629. /package/dist/components/{KebabMenu.js → panes/KebabMenu.js} +0 -0
  630. /package/dist/{MergePane.d.ts → components/panes/MergePane.d.ts} +0 -0
  631. /package/dist/components/{FileCopyPrompt.d.ts → ui/FileCopyPrompt.d.ts} +0 -0
  632. /package/dist/components/{FileCopyPrompt.js → ui/FileCopyPrompt.js} +0 -0
  633. /package/dist/components/{QRCode.d.ts → ui/QRCode.d.ts} +0 -0
  634. /package/dist/components/{QRCode.js → ui/QRCode.js} +0 -0
  635. /package/dist/{PaneAnalyzer.d.ts → services/PaneAnalyzer.d.ts} +0 -0
@@ -1,121 +1,391 @@
1
- import { execSync } from 'child_process';
1
+ import { LogService } from '../services/LogService.js';
2
+ import { TmuxService } from '../services/TmuxService.js';
3
+ import { recalculateAndApplyLayout } from './layoutManager.js';
4
+ // Layout configuration - adjust these to change layout behavior
5
+ export const SIDEBAR_WIDTH = 40;
6
+ export const MIN_COMFORTABLE_WIDTH = 60; // Minimum chars for comfortable code viewing
7
+ export const MAX_COMFORTABLE_WIDTH = 100; // Maximum chars before too wide for comfort
8
+ export const MIN_COMFORTABLE_HEIGHT = 15; // Minimum lines for comfortable pane viewing
9
+ /**
10
+ * Calculate tmux layout checksum
11
+ * Based on tmux source: layout.c - layout_checksum()
12
+ */
13
+ function calculateLayoutChecksum(layout) {
14
+ let checksum = 0;
15
+ for (let i = 0; i < layout.length; i++) {
16
+ checksum = (checksum >> 1) + ((checksum & 1) << 15);
17
+ checksum += layout.charCodeAt(i);
18
+ checksum &= 0xFFFF; // Mask to 16 bits (critical!)
19
+ }
20
+ // Tmux expects a 4-digit hex checksum (pad with leading zeros)
21
+ return checksum.toString(16).padStart(4, '0');
22
+ }
23
+ /**
24
+ * Gets current window dimensions
25
+ * @deprecated Use TmuxService.getInstance().getWindowDimensionsSync() instead
26
+ */
27
+ export const getWindowDimensions = () => {
28
+ return TmuxService.getInstance().getWindowDimensionsSync();
29
+ };
30
+ /**
31
+ * Gets current terminal (client) dimensions
32
+ * This is the actual terminal size, not the tmux window size
33
+ * @deprecated Use TmuxService.getInstance().getTerminalDimensionsSync() instead
34
+ */
35
+ export const getTerminalDimensions = () => {
36
+ return TmuxService.getInstance().getTerminalDimensionsSync();
37
+ };
38
+ /**
39
+ * Get pane positions for all panes
40
+ * @deprecated Use TmuxService.getInstance().getPanePositionsSync() instead
41
+ */
2
42
  export const getPanePositions = () => {
43
+ return TmuxService.getInstance().getPanePositionsSync();
44
+ };
45
+ /**
46
+ * Creates a new tmux pane by splitting horizontally
47
+ * @param options - Split pane options
48
+ * @param options.targetPane - Pane to split from (optional)
49
+ * @param options.cwd - Working directory for new pane (optional)
50
+ * @param options.command - Command to run in new pane (optional)
51
+ * @returns The new pane ID
52
+ * @deprecated Use TmuxService.getInstance().splitPaneSync() instead
53
+ */
54
+ export const splitPane = (options = {}) => {
55
+ return TmuxService.getInstance().splitPaneSync(options);
56
+ };
57
+ /**
58
+ * Gets all pane IDs in current window
59
+ * @deprecated Use TmuxService.getInstance().getAllPaneIdsSync() instead
60
+ */
61
+ export const getAllPaneIds = () => {
62
+ return TmuxService.getInstance().getAllPaneIdsSync();
63
+ };
64
+ /**
65
+ * Gets content pane IDs (excludes control pane and spacer pane)
66
+ * This uses synchronous operations to maintain compatibility with existing code
67
+ */
68
+ export const getContentPaneIds = (controlPaneId) => {
69
+ const tmuxService = TmuxService.getInstance();
70
+ const allPanes = tmuxService.getAllPaneIdsSync();
71
+ return allPanes.filter(id => {
72
+ if (id === controlPaneId)
73
+ return false;
74
+ // Filter out spacer pane
75
+ try {
76
+ const title = tmuxService.getPaneTitleSync(id);
77
+ return title !== 'dmux-spacer';
78
+ }
79
+ catch {
80
+ return true; // Include pane if we can't get title
81
+ }
82
+ });
83
+ };
84
+ /**
85
+ * Creates initial sidebar layout by splitting from control pane
86
+ * @param controlPaneId The pane ID running dmux TUI (left sidebar)
87
+ * @returns The newly created content area pane ID
88
+ */
89
+ export const setupSidebarLayout = (controlPaneId) => {
3
90
  try {
4
- const output = execSync(`tmux list-panes -F '#{pane_id} #{pane_left} #{pane_top} #{pane_width} #{pane_height}'`, { encoding: 'utf-8', stdio: 'pipe' }).trim();
5
- return output.split('\n').map(line => {
6
- const [paneId, left, top, width, height] = line.split(' ');
7
- return {
8
- paneId,
9
- left: parseInt(left),
10
- top: parseInt(top),
11
- width: parseInt(width),
12
- height: parseInt(height)
13
- };
91
+ const tmuxService = TmuxService.getInstance();
92
+ // Defensive check: verify the control pane still exists before splitting
93
+ try {
94
+ // Try to get the pane title - this will throw if the pane doesn't exist
95
+ tmuxService.getPaneTitleSync(controlPaneId);
96
+ }
97
+ catch (error) {
98
+ throw new Error(`Control pane ${controlPaneId} does not exist. Cannot create sidebar layout.`);
99
+ }
100
+ // Split horizontally (left-right) from control pane
101
+ const newPaneId = tmuxService.splitPaneSync({
102
+ targetPane: controlPaneId,
14
103
  });
104
+ // Wait for split to settle
105
+ const waitMs = 100;
106
+ const startTime = Date.now();
107
+ while (Date.now() - startTime < waitMs) {
108
+ // Busy wait
109
+ }
110
+ // Resize control pane to fixed width (sync version for initial setup)
111
+ try {
112
+ tmuxService.resizePaneSync(controlPaneId, { width: SIDEBAR_WIDTH });
113
+ }
114
+ catch {
115
+ // Ignore resize errors during initial setup
116
+ }
117
+ // Refresh to ensure panes are painted correctly after layout
118
+ tmuxService.refreshClientSync();
119
+ return newPaneId;
15
120
  }
16
- catch {
17
- return [];
121
+ catch (error) {
122
+ throw new Error(`Failed to setup sidebar layout: ${error}`);
18
123
  }
19
124
  };
20
- export const applySmartLayout = (paneCount) => {
21
- try {
22
- if (paneCount <= 2) {
23
- execSync('tmux select-layout even-horizontal', { stdio: 'pipe' });
125
+ /**
126
+ * Generates a custom tmux layout string for [Sidebar | Grid] arrangement
127
+ * Format: checksum,WxH,X,Y{child1,child2,...}
128
+ * Each child: WxH,X,Y[pane_id] for leaf or WxH,X,Y{...} for container
129
+ */
130
+ export const generateSidebarGridLayout = (controlPaneId, contentPanes, sidebarWidth, windowWidth, windowHeight, columns, maxComfortableWidth = MAX_COMFORTABLE_WIDTH) => {
131
+ // Calculate grid dimensions for content panes
132
+ const numContentPanes = contentPanes.length;
133
+ // Use provided column count
134
+ const cols = columns;
135
+ const rows = Math.ceil(numContentPanes / cols);
136
+ // Content area dimensions
137
+ // Account for borders: horizontal split adds 1 char, vertical splits add 1 char per row
138
+ const contentWidth = windowWidth - sidebarWidth - 1; // -1 for border between sidebar and content
139
+ const contentStartX = sidebarWidth + 1; // +1 to account for border
140
+ // For width, account for borders between columns
141
+ const bordersWidth = cols - 1;
142
+ const availableWidth = contentWidth - bordersWidth;
143
+ const paneWidth = Math.floor(availableWidth / cols);
144
+ // Check if last pane is a spacer
145
+ const tmuxService = TmuxService.getInstance();
146
+ const lastPaneIsSpacer = contentPanes.length > 0 && (() => {
147
+ try {
148
+ const lastPaneId = contentPanes[contentPanes.length - 1];
149
+ const title = tmuxService.getPaneTitleSync(lastPaneId);
150
+ return title === 'dmux-spacer';
151
+ }
152
+ catch {
153
+ return false;
154
+ }
155
+ })();
156
+ // For height, account for borders between rows
157
+ // If we have 2 rows with 1 border, total consumed = row1 + 1 + row2 = windowHeight
158
+ const bordersHeight = rows - 1; // Number of borders between rows
159
+ const availableHeight = windowHeight - bordersHeight;
160
+ const paneHeight = Math.floor(availableHeight / rows);
161
+ // Extract numeric ID from controlPaneId (e.g., %1 -> 1)
162
+ const sidebarId = controlPaneId.replace('%', '');
163
+ // Debug logging
164
+ LogService.getInstance().debug(`generateSidebarGridLayout: ${numContentPanes} panes, ${cols} cols x ${rows} rows`, 'Layout');
165
+ LogService.getInstance().debug(`Window: ${windowWidth}x${windowHeight}, Content: ${contentWidth}x${windowHeight} starting at X=${contentStartX}`, 'Layout');
166
+ LogService.getInstance().debug(`Pane width: ${paneWidth}, borders: ${bordersWidth}`, 'Layout');
167
+ // Build grid rows (vertical splits within content area)
168
+ // Use ABSOLUTE coordinates everywhere (tmux requirement - yes, even inside containers!)
169
+ const gridRows = [];
170
+ let paneIndex = 0;
171
+ let currentY = 0; // Track Y position (starts at 0, relative to content area)
172
+ for (let row = 0; row < rows; row++) {
173
+ const rowPanes = [];
174
+ let absoluteX = contentStartX; // Track X position as ABSOLUTE from window origin
175
+ // Calculate height for this row
176
+ // Last row gets remainder to account for rounding
177
+ let rowHeight;
178
+ if (row === rows - 1) {
179
+ // Last row: use all remaining height
180
+ rowHeight = windowHeight - currentY;
181
+ }
182
+ else {
183
+ rowHeight = paneHeight;
184
+ }
185
+ // Determine panes in this row
186
+ const panesInThisRow = [];
187
+ for (let col = 0; col < cols && paneIndex + col < numContentPanes; col++) {
188
+ panesInThisRow.push(contentPanes[paneIndex + col]);
189
+ }
190
+ // Check if this row has a spacer (last pane is spacer)
191
+ const rowHasSpacer = lastPaneIsSpacer && row === rows - 1 && panesInThisRow.length > 0 &&
192
+ panesInThisRow[panesInThisRow.length - 1] === contentPanes[numContentPanes - 1];
193
+ const numContentPanesInRow = rowHasSpacer ? panesInThisRow.length - 1 : panesInThisRow.length;
194
+ // Calculate widths for this row
195
+ let contentPaneWidths;
196
+ let spacerWidth = null;
197
+ if (rowHasSpacer) {
198
+ // Row with spacer: content panes get MAX_COMFORTABLE_WIDTH (from config), spacer gets remainder
199
+ const contentPaneWidth = maxComfortableWidth;
200
+ const bordersInRow = panesInThisRow.length - 1; // borders between ALL panes in row
201
+ const totalContentWidth = numContentPanesInRow * contentPaneWidth;
202
+ const remainingWidth = contentWidth - totalContentWidth - bordersInRow;
203
+ LogService.getInstance().debug(`Row ${row} with spacer: ${numContentPanesInRow} content panes @ ${contentPaneWidth} = ${totalContentWidth}, borders=${bordersInRow}, spacer=${remainingWidth}`, 'Layout');
204
+ if (remainingWidth < 0) {
205
+ LogService.getInstance().debug(`WARNING: Negative spacer width! contentWidth=${contentWidth}, totalContent=${totalContentWidth}, borders=${bordersInRow}`, 'Layout');
206
+ }
207
+ contentPaneWidths = Array(numContentPanesInRow).fill(contentPaneWidth);
208
+ spacerWidth = remainingWidth;
209
+ }
210
+ else {
211
+ // Row without spacer: divide width evenly
212
+ const bordersInRow = panesInThisRow.length - 1;
213
+ const availableWidth = contentWidth - bordersInRow;
214
+ const evenWidth = Math.floor(availableWidth / panesInThisRow.length);
215
+ const remainder = availableWidth - (evenWidth * panesInThisRow.length);
216
+ // CRITICAL: Distribute width evenly, with remainder going to FIRST pane (matches tmux behavior)
217
+ contentPaneWidths = Array(panesInThisRow.length).fill(evenWidth);
218
+ contentPaneWidths[0] += remainder; // First pane gets remainder, not last!
219
+ }
220
+ // Build row panes with calculated widths using ABSOLUTE coordinates
221
+ for (let col = 0; col < panesInThisRow.length; col++) {
222
+ const paneId = panesInThisRow[col].replace('%', '');
223
+ const isSpacerPane = rowHasSpacer && col === panesInThisRow.length - 1;
224
+ const colWidth = isSpacerPane ? spacerWidth : contentPaneWidths[col];
225
+ // Use ABSOLUTE coordinates (from window origin) - tmux requirement
226
+ rowPanes.push(`${colWidth}x${rowHeight},${absoluteX},${currentY},${paneId}`);
227
+ // Move X position right by pane width + border
228
+ absoluteX += colWidth;
229
+ if (col < panesInThisRow.length - 1) {
230
+ absoluteX += 1; // Add border
231
+ }
24
232
  }
25
- else if (paneCount === 3) {
26
- execSync('tmux select-layout main-horizontal', { stdio: 'pipe' });
233
+ paneIndex += panesInThisRow.length;
234
+ // Wrap multi-pane rows in horizontal container (uses ABSOLUTE coordinates)
235
+ if (rowPanes.length > 1) {
236
+ // Horizontal split = use curly braces {}
237
+ // Row container also uses ABSOLUTE coordinates
238
+ const rowString = `${contentWidth}x${rowHeight},${contentStartX},${currentY}{${rowPanes.join(',')}}`;
239
+ LogService.getInstance().debug(`Row ${row}: ${rowPanes.length} panes → ${rowString}`, 'Layout');
240
+ gridRows.push(rowString);
27
241
  }
28
- else if (paneCount === 4) {
29
- execSync('tmux select-layout tiled', { stdio: 'pipe' });
242
+ else if (rowPanes.length === 1) {
243
+ // Single pane - no container needed, use ABSOLUTE coordinates
244
+ const paneStr = rowPanes[0];
245
+ const parts = paneStr.split(',');
246
+ parts[1] = contentStartX.toString(); // X absolute
247
+ parts[2] = currentY.toString(); // Y absolute
248
+ const singlePaneString = parts.join(',');
249
+ LogService.getInstance().debug(`Row ${row}: 1 pane → ${singlePaneString}`, 'Layout');
250
+ gridRows.push(singlePaneString);
30
251
  }
31
- else if (paneCount >= 5) {
32
- // For 5+ panes: 2 panes on top, 3+ panes on bottom
33
- applyCustomTwoRowLayout(paneCount);
252
+ // Move Y position down by pane height + 1 for border (except on last row)
253
+ if (row < rows - 1) {
254
+ currentY += paneHeight + 1;
34
255
  }
35
- execSync('tmux refresh-client', { stdio: 'pipe' });
36
256
  }
37
- catch (error) {
38
- try {
39
- execSync('tmux select-layout even-horizontal', { stdio: 'pipe' });
257
+ // Build root container
258
+ const sidebar = `${sidebarWidth}x${windowHeight},0,0,${sidebarId}`;
259
+ let layoutWithoutChecksum;
260
+ if (gridRows.length > 1) {
261
+ // Multiple rows: wrap in vertical split container
262
+ const contentArea = `${contentWidth}x${windowHeight},${contentStartX},0[${gridRows.join(',')}]`;
263
+ layoutWithoutChecksum = `${windowWidth}x${windowHeight},0,0{${sidebar},${contentArea}}`;
264
+ }
265
+ else if (gridRows.length === 1) {
266
+ // Single row: keep the container structure to maintain binary splits
267
+ // tmux only supports 2 children per split, so we need {sidebar, content_container}
268
+ const row = gridRows[0];
269
+ // Adjust the container's X position from 0 to contentStartX
270
+ const contentArea = row.replace(/^(\d+x\d+),0,/, `$1,${contentStartX},`);
271
+ layoutWithoutChecksum = `${windowWidth}x${windowHeight},0,0{${sidebar},${contentArea}}`;
272
+ LogService.getInstance().debug(`Single row layout: {sidebar, content}`, 'Layout');
273
+ }
274
+ else {
275
+ // No content panes
276
+ return '';
277
+ }
278
+ // Calculate checksum and prepend to layout string
279
+ const checksum = calculateLayoutChecksum(layoutWithoutChecksum);
280
+ const finalLayout = `${checksum},${layoutWithoutChecksum}`;
281
+ LogService.getInstance().debug(`Generated layout string: ${finalLayout}`, 'Layout');
282
+ return finalLayout;
283
+ };
284
+ /**
285
+ * Calculates optimal number of columns for pane layout based on dimensions
286
+ * @param numPanes Number of panes to arrange
287
+ * @param contentWidth Available width for content panes
288
+ * @param contentHeight Available height for content panes
289
+ * @returns Optimal number of columns
290
+ */
291
+ export const calculateOptimalColumns = (numPanes, contentWidth, contentHeight) => {
292
+ // Try different numbers of columns to find optimal layout
293
+ let bestCols = 1;
294
+ let bestScore = -1;
295
+ for (let cols = 1; cols <= numPanes; cols++) {
296
+ // Calculate width for this column count
297
+ const bordersWidth = cols - 1;
298
+ const paneWidth = Math.floor((contentWidth - bordersWidth) / cols);
299
+ // Calculate height for this column count
300
+ const rows = Math.ceil(numPanes / cols);
301
+ const bordersHeight = rows - 1;
302
+ const paneHeight = Math.floor((contentHeight - bordersHeight) / rows);
303
+ // Skip if width or height is too small
304
+ if (paneWidth < MIN_COMFORTABLE_WIDTH || paneHeight < MIN_COMFORTABLE_HEIGHT) {
305
+ continue;
306
+ }
307
+ // Score this configuration (prefer balanced layouts)
308
+ // Heavily penalize heights below comfortable threshold
309
+ const widthScore = paneWidth <= MAX_COMFORTABLE_WIDTH ? 1 : 0.5;
310
+ const heightScore = paneHeight >= MIN_COMFORTABLE_HEIGHT * 1.5 ? 1 : 0.7;
311
+ const score = widthScore * heightScore;
312
+ if (score > bestScore) {
313
+ bestScore = score;
314
+ bestCols = cols;
315
+ }
316
+ }
317
+ // If no valid layout found, fall back to what gives best height
318
+ if (bestScore === -1) {
319
+ // Find column count that maximizes height while keeping width above minimum
320
+ for (let cols = numPanes; cols >= 1; cols--) {
321
+ const bordersWidth = cols - 1;
322
+ const paneWidth = Math.floor((contentWidth - bordersWidth) / cols);
323
+ if (paneWidth >= MIN_COMFORTABLE_WIDTH * 0.8) { // Allow slightly narrower
324
+ bestCols = cols;
325
+ break;
326
+ }
40
327
  }
41
- catch { }
42
328
  }
329
+ return bestCols;
43
330
  };
44
331
  /**
45
- * Creates a custom layout with 2 panes on top and remaining panes on bottom
46
- * For 5 panes: 2 on top, 3 on bottom
47
- * For 6 panes: 2 on top, 4 on bottom
48
- * etc.
332
+ * Enforces left sidebar layout: 40-char wide sidebar on left, content panes in grid on right
333
+ * This maintains the structure: [Sidebar (40 chars, full height) | Content Grid Area]
334
+ *
335
+ * @deprecated This function now delegates to the centralized layout manager.
336
+ * Consider using recalculateAndApplyLayout() directly from layoutManager.ts
49
337
  */
50
- const applyCustomTwoRowLayout = (paneCount) => {
338
+ export const enforceControlPaneSize = async (controlPaneId, width) => {
339
+ const logService = LogService.getInstance();
340
+ const tmuxService = TmuxService.getInstance();
51
341
  try {
52
- // Get all pane IDs and their positions
53
- const paneInfo = execSync('tmux list-panes -F "#{pane_id} #{pane_index}"', {
54
- encoding: 'utf-8',
55
- stdio: 'pipe',
56
- })
57
- .trim()
58
- .split('\n')
59
- .map(line => {
60
- const [id, index] = line.split(' ');
61
- return { id, index: parseInt(index) };
62
- })
63
- .sort((a, b) => a.index - b.index);
64
- if (paneInfo.length !== paneCount) {
65
- throw new Error('Pane count mismatch');
66
- }
67
- // Start with tiled layout
68
- execSync('tmux select-layout tiled', { stdio: 'pipe' });
69
- // Strategy: Use main-horizontal layout and adjust
70
- // main-horizontal gives us one pane on top, rest on bottom
71
- // Then we'll adjust the top pane to be split in half
72
- // Get window dimensions
73
- const windowInfo = execSync('tmux display-message -p "#{window_width} #{window_height}"', { encoding: 'utf-8', stdio: 'pipe' }).trim();
74
- const [windowWidth, windowHeight] = windowInfo.split(' ').map(n => parseInt(n));
75
- // Calculate target dimensions
76
- const topRowHeight = Math.floor(windowHeight / 2);
77
- const bottomRowHeight = windowHeight - topRowHeight - 1; // -1 for border
78
- // We need to manually position panes
79
- // Top row: panes 0 and 1 (side by side)
80
- // Bottom row: panes 2, 3, 4, etc. (side by side)
81
- const topPaneWidth = Math.floor(windowWidth / 2);
82
- const bottomPaneCount = paneCount - 2;
83
- const bottomPaneWidth = Math.floor(windowWidth / bottomPaneCount);
84
- // Build a custom layout string
85
- // tmux layout format: {width}x{height},{x},{y},{pane_id}
86
- // For horizontal split at root: {width}x{height},{x},{y}[layout1,layout2]
87
- // For vertical split: {width}x{height},{x},{y}{pane1,pane2}
88
- // Extract numeric pane IDs (remove the % prefix)
89
- const pane0Num = paneInfo[0].id.replace('%', '');
90
- const pane1Num = paneInfo[1].id.replace('%', '');
91
- // Construct layout string for our desired 2-row layout
92
- // Format: widthxheight,x,y[top_row{bottom_row}]
93
- // top_row is a horizontal split: widthxheight,x,y{pane0,pane1}
94
- // bottom_row is a horizontal split: widthxheight,x,y{pane2,pane3,...}
95
- // Top row layout (2 panes side by side)
96
- const topRowLayout = `${windowWidth}x${topRowHeight},0,0{${topPaneWidth}x${topRowHeight},0,0,${pane0Num},${windowWidth - topPaneWidth - 1}x${topRowHeight},${topPaneWidth + 1},0,${pane1Num}}`;
97
- // Bottom row layout (remaining panes side by side)
98
- let bottomRowParts = [];
99
- let currentX = 0;
100
- for (let i = 2; i < paneCount; i++) {
101
- const isLast = i === paneCount - 1;
102
- const width = isLast ? windowWidth - currentX : bottomPaneWidth;
103
- const paneNum = paneInfo[i].id.replace('%', '');
104
- bottomRowParts.push(`${width}x${bottomRowHeight},${currentX},${topRowHeight + 1},${paneNum}`);
105
- currentX += width + 1;
106
- }
107
- const bottomRowLayout = `${windowWidth}x${bottomRowHeight},0,${topRowHeight + 1}{${bottomRowParts.join(',')}}`;
108
- // Complete layout
109
- const layoutString = `${windowWidth}x${windowHeight},0,0[${topRowLayout},${bottomRowLayout}]`;
110
- // Apply the layout
111
- execSync(`tmux select-layout '${layoutString}'`, { stdio: 'pipe' });
342
+ const contentPanes = getContentPaneIds(controlPaneId);
343
+ logService.debug(`enforceControlPaneSize called: ${contentPanes.length} content panes`, 'Layout');
344
+ // If we only have the control pane, nothing to enforce
345
+ if (contentPanes.length === 0) {
346
+ // Just resize the sidebar
347
+ try {
348
+ await tmuxService.resizePane(controlPaneId, { width });
349
+ }
350
+ catch {
351
+ // Ignore errors
352
+ }
353
+ return;
354
+ }
355
+ // Check if we have only the welcome pane (should not be width-constrained)
356
+ if (contentPanes.length === 1) {
357
+ try {
358
+ const title = tmuxService.getPaneTitleSync(contentPanes[0]);
359
+ if (title === 'Welcome') {
360
+ // Welcome pane should use full terminal width, not be constrained
361
+ // Get terminal dimensions and let window follow terminal
362
+ const termDims = getTerminalDimensions();
363
+ // Set window size to match terminal (manual mode but always tracking terminal)
364
+ tmuxService.setWindowOptionSync('window-size', 'manual');
365
+ await tmuxService.resizeWindow({ width: termDims.width, height: termDims.height });
366
+ // Apply main-vertical layout with fixed sidebar width
367
+ tmuxService.setWindowOptionSync('main-pane-width', String(width));
368
+ await tmuxService.selectLayout('main-vertical');
369
+ await tmuxService.refreshClient();
370
+ return;
371
+ }
372
+ }
373
+ catch {
374
+ // If we can't get the title, fall through to normal layout
375
+ }
376
+ }
377
+ // Use the new layout manager for regular content panes
378
+ // Read terminal dimensions (not window dimensions which may be stale in manual mode)
379
+ const dimensions = getTerminalDimensions();
380
+ logService.debug(`Terminal dimensions: ${dimensions.width}x${dimensions.height}`, 'Layout');
381
+ await recalculateAndApplyLayout(controlPaneId, contentPanes, dimensions.width, dimensions.height);
382
+ // Refresh to apply changes (but don't select the pane - don't steal focus!)
383
+ await tmuxService.refreshClient();
112
384
  }
113
385
  catch (error) {
114
- // Fallback to tiled on any error
115
- try {
116
- execSync('tmux select-layout tiled', { stdio: 'pipe' });
117
- }
118
- catch { }
386
+ // Log error for debugging but don't crash
387
+ const msg = 'Layout enforcement failed';
388
+ LogService.getInstance().error(msg, 'tmux', undefined, error instanceof Error ? error : undefined);
119
389
  }
120
390
  };
121
391
  //# sourceMappingURL=tmux.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tmux.js","sourceRoot":"","sources":["../../src/utils/tmux.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tmux.js","sourceRoot":"","sources":["../../src/utils/tmux.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Creates a welcome pane in the tmux session
3
+ * This pane displays ASCII art and has no command prompt
4
+ *
5
+ * @param controlPaneId - The ID of the control (sidebar) pane
6
+ * @returns The pane ID of the created welcome pane, or undefined if creation failed
7
+ */
8
+ export declare function createWelcomePane(controlPaneId: string): Promise<string | undefined>;
9
+ /**
10
+ * Destroys the welcome pane if it exists
11
+ *
12
+ * @param welcomePaneId - The pane ID of the welcome pane to destroy
13
+ */
14
+ export declare function destroyWelcomePane(welcomePaneId: string | undefined): Promise<void>;
15
+ /**
16
+ * Checks if a welcome pane exists and is still alive
17
+ *
18
+ * @param welcomePaneId - The pane ID to check
19
+ * @returns true if the pane exists, false otherwise
20
+ */
21
+ export declare function welcomePaneExists(welcomePaneId: string | undefined): Promise<boolean>;
22
+ //# sourceMappingURL=welcomePane.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"welcomePane.d.ts","sourceRoot":"","sources":["../../src/utils/welcomePane.ts"],"names":[],"mappings":"AAKA;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAkE1F;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BzF;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAO3F"}