@fde-desktop/fde-core 0.4.9 → 0.4.11

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 (186) hide show
  1. package/dist/{AppEmptyState-Bxpit0JV.js → AppEmptyState-Boej96TB.js} +1 -1
  2. package/dist/AppEmptyState-CLc00OOG.cjs +1 -0
  3. package/dist/AppIcon-C8vHUVcb.cjs +1 -0
  4. package/dist/AppIcon-mtEoyzOb.js +22 -0
  5. package/dist/AppMenuBar-CAlkNHjj.cjs +1 -0
  6. package/dist/AppMenuBar-DmSfQRXU.js +197 -0
  7. package/dist/CalendarApp-DOmjWbpl.js +10 -0
  8. package/dist/CalendarApp-Z0bCCYsK.cjs +1 -0
  9. package/dist/ColorPicker-CQRRwY-y.cjs +1 -0
  10. package/dist/ColorPicker-WCeD3Wjf.js +35 -0
  11. package/dist/CreateItemApp-BkFFFdX1.cjs +1 -0
  12. package/dist/CreateItemApp-DR8Y4bwo.js +202 -0
  13. package/dist/DeviceInfoApp-BXQ9uOwF.cjs +1 -0
  14. package/dist/DeviceInfoApp-I63mJRWy.js +195 -0
  15. package/dist/DownloadProgress-CkTGTf0z.cjs +1 -0
  16. package/dist/DownloadProgress-DnVASsv5.js +39 -0
  17. package/dist/FilePickerApp-By6-vbag.cjs +1 -0
  18. package/dist/FilePickerApp-ClHuhm6Z.js +390 -0
  19. package/dist/FilesApp-BC4UPNuw.cjs +1 -0
  20. package/dist/FilesApp-D8MqvC5X.js +210 -0
  21. package/dist/ImageViewerApp-B1niWF75.cjs +1 -0
  22. package/dist/{ImageViewerApp-BaLP3gkO.js → ImageViewerApp-iojtyFEf.js} +5 -5
  23. package/dist/{ImageViewerMenuBar-CabGSi9r.js → ImageViewerMenuBar-BIsUokxV.js} +2 -2
  24. package/dist/ImageViewerMenuBar-BgzgSF3v.cjs +1 -0
  25. package/dist/MenuEditApp-BHptoJbz.cjs +1 -0
  26. package/dist/{MenuEditApp-BTRppYnD.js → MenuEditApp-CJUbJaqh.js} +138 -143
  27. package/dist/MenuEditMenuBar-CCOSPAUe.cjs +1 -0
  28. package/dist/{MenuEditMenuBar-x1IQrHP2.js → MenuEditMenuBar-DnCL-kaZ.js} +3 -3
  29. package/dist/NotesApp-BmQIBtJ2.cjs +1 -0
  30. package/dist/{NotesApp-CQe7UfBC.js → NotesApp-DJ2dGt4-.js} +5 -5
  31. package/dist/NotesMenuBar-BzojwMtH.cjs +1 -0
  32. package/dist/{NotesMenuBar-VhpIe68v.js → NotesMenuBar-DILZTjnT.js} +3 -3
  33. package/dist/{PdfApp-DL_R9-Nc.js → PdfApp-IjY_GtnW.js} +3 -3
  34. package/dist/PdfApp-krW8UI97.cjs +1 -0
  35. package/dist/{PdfMenuBar-DZCLSOpR.js → PdfMenuBar-Bd5MTZcZ.js} +1 -1
  36. package/dist/PdfMenuBar-DWD0Qa3F.cjs +1 -0
  37. package/dist/SettingsApp-BE22l5UP.cjs +1 -0
  38. package/dist/SettingsApp-BTFtTFY_.js +1228 -0
  39. package/dist/SettingsMenuBar-CZE2evG2.cjs +1 -0
  40. package/dist/{SettingsMenuBar-YWiJHaxq.js → SettingsMenuBar-ktC0viTd.js} +3 -3
  41. package/dist/UploaderApp-CbypD538.js +263 -0
  42. package/dist/UploaderApp-D_qD3O70.cjs +1 -0
  43. package/dist/{VscIcon-DBfVnArE.js → VscIcon-AEENjKOE.js} +1 -1
  44. package/dist/VscIcon-BYb_Soyy.cjs +1 -0
  45. package/dist/buildBreadcrumbs-Ccd8i11b.cjs +1 -0
  46. package/dist/buildBreadcrumbs-noWhu8os.js +45 -0
  47. package/dist/{desktopStore-F8bgLqFl.js → desktopStore-8cSZlj7s.js} +407 -477
  48. package/dist/desktopStore-C1jR6Fdb.cjs +1 -0
  49. package/dist/imageViewerStore-Dfylg59V.cjs +1 -0
  50. package/dist/index.cjs +1 -1
  51. package/dist/index.css +1 -1
  52. package/dist/index.d.ts +16 -6
  53. package/dist/index.js +1646 -1960
  54. package/dist/menuEditStore-CYwtfD6H.cjs +1 -0
  55. package/dist/notesStore-CrWTO6oB.cjs +1 -0
  56. package/dist/settingsAppStore-DuYZNeFf.cjs +1 -0
  57. package/dist/useAdaptiveDimensions-3Lz4X0Tc.cjs +1 -0
  58. package/dist/{useAdaptiveDimensions-AVDc_qPa.js → useAdaptiveDimensions-DxNLJ7R5.js} +1 -1
  59. package/dist/{useCloseInterceptor-BZd3VILp.js → useCloseInterceptor-CIxhOZx1.js} +1 -1
  60. package/dist/useCloseInterceptor-CdX-09Ib.cjs +1 -0
  61. package/dist/useDynamicIcon-CK6SjEv5.cjs +1 -0
  62. package/dist/useOpenApp-D-FOY88T.cjs +1 -0
  63. package/dist/{useOpenApp-CBIm7Gzl.js → useOpenApp-DkZLFFCH.js} +51 -67
  64. package/dist/{useResolvedUrl-DQpLqOoL.js → useResolvedUrl-B6x4xy0x.js} +1 -2
  65. package/dist/useResolvedUrl-Bb39DpVy.cjs +1 -0
  66. package/package.json +2 -1
  67. package/dist/AccordionChevron-DxpOyInK.js +0 -26
  68. package/dist/AccordionChevron-kn5kSrEc.cjs +0 -1
  69. package/dist/ActionIcon-Drh4p6Fv.js +0 -145
  70. package/dist/ActionIcon-alk2zZD6.cjs +0 -1
  71. package/dist/AppEmptyState-BWCUbf-B.cjs +0 -1
  72. package/dist/AppIcon-BU7a3ZNH.cjs +0 -1
  73. package/dist/AppIcon-XumS3bIG.js +0 -80
  74. package/dist/AppMenuBar-B9U0n1Vv.cjs +0 -1
  75. package/dist/AppMenuBar-CnIEVjr8.js +0 -2049
  76. package/dist/Box-DSKR_qaa.js +0 -1579
  77. package/dist/Box-zW6Twge8.cjs +0 -1
  78. package/dist/Button-DMlnrqyx.cjs +0 -1
  79. package/dist/Button-wTOTQKxF.js +0 -178
  80. package/dist/CalendarApp-B_e1B1Yn.cjs +0 -1
  81. package/dist/CalendarApp-C-l9D6nd.cjs +0 -1
  82. package/dist/CalendarApp-D0ftTCTG.js +0 -1399
  83. package/dist/Center-CmxXB9ql.js +0 -25
  84. package/dist/Center-DKUE2pER.cjs +0 -1
  85. package/dist/CheckIcon-CZhtJD1O.cjs +0 -1
  86. package/dist/CheckIcon-N5qBqXQJ.js +0 -25
  87. package/dist/CodeServerApp-BOoGwZ7r.cjs +0 -1
  88. package/dist/CodeServerApp-Be3I5EGg.cjs +0 -1
  89. package/dist/CodeServerApp-DW18EZxa.js +0 -150
  90. package/dist/ColorPicker-BCNqi02x.js +0 -997
  91. package/dist/ColorPicker-BrDE7tMO.cjs +0 -1
  92. package/dist/CreateItemApp-B12M1E_1.cjs +0 -1
  93. package/dist/CreateItemApp-TAAprby3.js +0 -400
  94. package/dist/CreateItemApp-ePB6ujNl.cjs +0 -1
  95. package/dist/DeviceInfoApp-BMF18BGo.cjs +0 -1
  96. package/dist/DeviceInfoApp-DRy0H3aT.cjs +0 -1
  97. package/dist/DeviceInfoApp-lgpwkeRR.js +0 -223
  98. package/dist/DownloadProgress-EoyCaD5O.js +0 -174
  99. package/dist/DownloadProgress-VNdj22U8.cjs +0 -1
  100. package/dist/FileIcon-7JaSR3Gn.js +0 -89
  101. package/dist/FileIcon-CIXopWLv.cjs +0 -1
  102. package/dist/FilePickerApp-DaMgEqKh.js +0 -409
  103. package/dist/FilePickerApp-DjmuSFqa.cjs +0 -1
  104. package/dist/FilesApp-Bp7wfrBZ.cjs +0 -1
  105. package/dist/FilesApp-BpJJRKhi.cjs +0 -1
  106. package/dist/FilesApp-Cj94QG5o.js +0 -225
  107. package/dist/Group-CtBJSfCo.js +0 -48
  108. package/dist/Group-Dsrf6lEK.cjs +0 -1
  109. package/dist/ImageViewerApp-DlHGeB3S.cjs +0 -1
  110. package/dist/ImageViewerApp-DoXd_Swu.cjs +0 -1
  111. package/dist/ImageViewerMenuBar-SAI7UNz7.cjs +0 -1
  112. package/dist/ImageViewerMenuBar-_Jr29gii.cjs +0 -1
  113. package/dist/MenuEditApp-BJjlPTOa.cjs +0 -1
  114. package/dist/MenuEditApp-JPsGT-S3.cjs +0 -1
  115. package/dist/MenuEditMenuBar-BydGkqMw.cjs +0 -1
  116. package/dist/MenuEditMenuBar-DptlwVPQ.cjs +0 -1
  117. package/dist/NotesApp-BOcRGO7w.cjs +0 -1
  118. package/dist/NotesApp-OL07JXRE.cjs +0 -1
  119. package/dist/NotesMenuBar-BSI_2Y7p.cjs +0 -1
  120. package/dist/NotesMenuBar-Df6aW85J.cjs +0 -1
  121. package/dist/Paper-BX_9odR6.js +0 -30
  122. package/dist/Paper-D8-BaBx2.cjs +0 -1
  123. package/dist/PdfApp-CNEbty5v.cjs +0 -1
  124. package/dist/PdfApp-CVv3ZCaM.cjs +0 -1
  125. package/dist/PdfMenuBar--E6kDyrT.cjs +0 -1
  126. package/dist/PdfMenuBar-Dj5cJUkg.cjs +0 -1
  127. package/dist/SettingsApp-BlmHuAjT.js +0 -1831
  128. package/dist/SettingsApp-CNvIgf5B.cjs +0 -1
  129. package/dist/SettingsApp-DWxanNE4.cjs +0 -1
  130. package/dist/SettingsMenuBar-CBoOBCfx.cjs +0 -1
  131. package/dist/SettingsMenuBar-DQooFkZN.cjs +0 -1
  132. package/dist/Slider-BUiHxjKO.cjs +0 -1
  133. package/dist/Slider-t-NcD60t.js +0 -1176
  134. package/dist/Stack-Bp1Ek2Gp.js +0 -34
  135. package/dist/Stack-D4jAiRfc.cjs +0 -1
  136. package/dist/StorybookApp-CDLV_kja.cjs +0 -1
  137. package/dist/StorybookApp-DKwlPCmo.js +0 -10
  138. package/dist/TerminalApp-BCB7i1lR.cjs +0 -1
  139. package/dist/TerminalApp-BYc_gHLe.js +0 -326
  140. package/dist/TerminalApp-Dviz6aP2.cjs +0 -1
  141. package/dist/TerminalMenuBar-D5tPmgR_.js +0 -113
  142. package/dist/TerminalMenuBar-DNshPmCa.cjs +0 -1
  143. package/dist/TerminalMenuBar-HzMSR7XP.cjs +0 -1
  144. package/dist/TextInput-C-JtGWn1.js +0 -981
  145. package/dist/TextInput-CrsmcOip.cjs +0 -1
  146. package/dist/Tooltip-D5Cd9wtz.cjs +0 -1
  147. package/dist/Tooltip-DOeIvhrO.js +0 -1142
  148. package/dist/UnstyledButton-DGaG-e_G.js +0 -25
  149. package/dist/UnstyledButton-DX2pTahr.cjs +0 -1
  150. package/dist/UploaderApp-C6xA5Rrf2.cjs +0 -1
  151. package/dist/UploaderApp-DnHIRxB_.cjs +0 -1
  152. package/dist/UploaderApp-qBfpukR_.js +0 -488
  153. package/dist/VscIcon-CcMdrFoJ.cjs +0 -1
  154. package/dist/create-safe-context-Bboj0GWC.cjs +0 -1
  155. package/dist/create-safe-context-XT2cxc14.js +0 -12
  156. package/dist/desktopStore-CZoA9VHO.cjs +0 -1
  157. package/dist/getRuntime-BFK0-8R1.cjs +0 -1
  158. package/dist/getRuntime-DAPqFH2W.js +0 -63
  159. package/dist/imageViewerStore-BB_tssZR.cjs +0 -1
  160. package/dist/is-element-Bu_JY8Qy.js +0 -7
  161. package/dist/is-element-CdV0xajp.cjs +0 -1
  162. package/dist/menuEditStore-CTeM_dns.cjs +0 -1
  163. package/dist/notesStore-BCEl1D_v.cjs +0 -1
  164. package/dist/settingsAppStore-CMBc13VU.cjs +0 -1
  165. package/dist/terminalStore-IWdf4Mm6.js +0 -30
  166. package/dist/terminalStore-iIuyodfK.cjs +0 -1
  167. package/dist/use-merged-ref-BT8_u6vW.js +0 -25
  168. package/dist/use-merged-ref-n9Gw9LNn.cjs +0 -1
  169. package/dist/use-resolved-styles-api-8OXE2oRq.cjs +0 -1
  170. package/dist/use-resolved-styles-api-DNUlJJZf.js +0 -21
  171. package/dist/use-uncontrolled-A4hm9ATM.js +0 -23
  172. package/dist/use-uncontrolled-DDJVQiM_.cjs +0 -1
  173. package/dist/useAdaptiveDimensions-CfITBJ_m.cjs +0 -1
  174. package/dist/useCloseInterceptor-yntBEzNc.cjs +0 -1
  175. package/dist/useDynamicIcon-DJ_il30E.cjs +0 -1
  176. package/dist/useOpenApp-DW4x79Zg.cjs +0 -1
  177. package/dist/useResolvedUrl-BkMPM1fM.cjs +0 -1
  178. /package/dist/{Colors-zP2AFgU3.cjs → Colors-CNJbU7oq.cjs} +0 -0
  179. /package/dist/{Colors-ClnDxnyA.js → Colors-CuABn2W4.js} +0 -0
  180. /package/dist/{imageViewerStore-C5kWz0o7.js → imageViewerStore-COrD02Zu.js} +0 -0
  181. /package/dist/{menuEditStore-Cj1zAwxQ.js → menuEditStore-CxsgLiQu.js} +0 -0
  182. /package/dist/{notesStore-BPyRTHEc.js → notesStore-Dgah46U5.js} +0 -0
  183. /package/dist/{settingsAppStore-BDQ3ts1y.js → settingsAppStore-DHZhi6Rl.js} +0 -0
  184. /package/dist/{useDynamicIcon-Bf0t2foA.js → useDynamicIcon-_wGeWu-b.js} +0 -0
  185. /package/dist/{useMenuBarUtils-nmu9yehT.js → useMenuBarUtils-ChAfI7OA.js} +0 -0
  186. /package/dist/{useMenuBarUtils-nJIPJGIQ.cjs → useMenuBarUtils-DAap0ukp.cjs} +0 -0
@@ -1,34 +0,0 @@
1
- import { D as e, N as t, c as n, l as r, r as i, t as a } from "./Box-DSKR_qaa.js";
2
- import { jsx as o } from "react/jsx-runtime";
3
- //#region ../../node_modules/.bun/@mantine+core@9.0.0+9dd69a0af178a974/node_modules/@mantine/core/esm/components/Stack/Stack.module.mjs
4
- var s = { root: "m_6d731127" }, c = {
5
- gap: "md",
6
- align: "stretch",
7
- justify: "flex-start"
8
- }, l = e((e, { gap: n, align: r, justify: i }) => ({ root: {
9
- "--stack-gap": t(n),
10
- "--stack-align": r,
11
- "--stack-justify": i
12
- } })), u = i((e) => {
13
- let t = r("Stack", c, e), { classNames: i, className: u, style: d, styles: f, unstyled: p, vars: m, align: h, justify: g, gap: _, variant: v, attributes: y, ...b } = t;
14
- return /* @__PURE__ */ o(a, {
15
- ...n({
16
- name: "Stack",
17
- props: t,
18
- classes: s,
19
- className: u,
20
- style: d,
21
- classNames: i,
22
- styles: f,
23
- unstyled: p,
24
- attributes: y,
25
- vars: m,
26
- varsResolver: l
27
- })("root"),
28
- variant: v,
29
- ...b
30
- });
31
- });
32
- u.classes = s, u.varsResolver = l, u.displayName = "@mantine/core/Stack";
33
- //#endregion
34
- export { u as t };
@@ -1 +0,0 @@
1
- const e=require(`./Box-zW6Twge8.cjs`);let t=require(`react/jsx-runtime`);var n={root:`m_6d731127`},r={gap:`md`,align:`stretch`,justify:`flex-start`},i=e.D((t,{gap:n,align:r,justify:i})=>({root:{"--stack-gap":e.N(n),"--stack-align":r,"--stack-justify":i}})),a=e.r(a=>{let o=e.l(`Stack`,r,a),{classNames:s,className:c,style:l,styles:u,unstyled:d,vars:f,align:p,justify:m,gap:h,variant:g,attributes:_,...v}=o;return(0,t.jsx)(e.t,{...e.c({name:`Stack`,props:o,classes:n,className:c,style:l,classNames:s,styles:u,unstyled:d,attributes:_,vars:f,varsResolver:i})(`root`),variant:g,...v})});a.classes=n,a.varsResolver=i,a.displayName=`@mantine/core/Stack`,Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return a}});
@@ -1 +0,0 @@
1
- const e=require(`./Box-zW6Twge8.cjs`);let t=require(`react/jsx-runtime`);var n={frame:`_frame_13ufi_1`},r=e.z({default:()=>a}),i=`https://frannunpal.github.io/storybook/`,a=()=>(0,t.jsx)(`iframe`,{src:i,className:n.frame,title:`Storybook`,"aria-label":`Storybook component explorer`});Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return a}});
@@ -1,10 +0,0 @@
1
- import { t as e } from "./rolldown-runtime-CAFD8bLK.js";
2
- import { jsx as t } from "react/jsx-runtime";
3
- var n = { frame: "_frame_13ufi_1" }, r = /* @__PURE__ */ e({ default: () => a }), i = "https://frannunpal.github.io/storybook/", a = () => /* @__PURE__ */ t("iframe", {
4
- src: i,
5
- className: n.frame,
6
- title: "Storybook",
7
- "aria-label": "Storybook component explorer"
8
- });
9
- //#endregion
10
- export { r as n, a as t };
@@ -1 +0,0 @@
1
- const e=require(`./TerminalApp-Dviz6aP2.cjs`);exports.default=e.t;
@@ -1,326 +0,0 @@
1
- import { t as e } from "./rolldown-runtime-CAFD8bLK.js";
2
- import { o as t, t as n } from "./getRuntime-DAPqFH2W.js";
3
- import { t as r } from "./Center-CmxXB9ql.js";
4
- import { t as i } from "./Stack-Bp1Ek2Gp.js";
5
- import { n as a, r as o, t as s } from "./terminalStore-IWdf4Mm6.js";
6
- import { useCallback as c, useEffect as l, useRef as u, useState as d } from "react";
7
- import { jsx as f, jsxs as p } from "react/jsx-runtime";
8
- import { useTranslation as m } from "react-i18next";
9
- import { FcInfo as h } from "react-icons/fc";
10
- import { Terminal as g } from "@xterm/xterm";
11
- import { FitAddon as _ } from "@xterm/addon-fit";
12
- import { ClipboardAddon as v } from "@xterm/addon-clipboard";
13
- import "@xterm/xterm/css/xterm.css";
14
- var y = {
15
- terminalContainer: "_terminalContainer_15s96_1",
16
- terminalWrapper: "_terminalWrapper_15s96_9",
17
- terminal: "_terminal_15s96_1",
18
- statusBar: "_statusBar_15s96_33",
19
- statusIndicator: "_statusIndicator_15s96_45",
20
- statusText: "_statusText_15s96_70",
21
- reconnectButton: "_reconnectButton_15s96_74"
22
- }, b = 5, x = 1e3, S = ({ shell: e, scrollback: t, onTerminalReady: n, onConnectionChange: r }) => {
23
- let i = u(null), a = u(null), o = u(null), s = u(null), m = u(null), h = u(0), S = u(!1), w = u(!1), T = u(e), E = u(null), D = u(!1), [O, k] = d("idle"), [A, j] = d(!1), M = u(n), N = u(r);
24
- l(() => {
25
- M.current = n;
26
- }, [n]), l(() => {
27
- N.current = r;
28
- }, [r]), l(() => {
29
- T.current = e;
30
- }, [e]);
31
- let P = c((e) => {
32
- S.current && (k(e), N.current?.(e));
33
- }, []), F = c(() => {
34
- E.current?.abort(), E.current = null;
35
- let e = m.current;
36
- if (e && (m.current = null, e.readyState === WebSocket.OPEN || e.readyState === WebSocket.CONNECTING)) {
37
- try {
38
- e.send(JSON.stringify({ type: "kill" }));
39
- } catch {}
40
- e.close();
41
- }
42
- w.current = !1;
43
- }, []), I = c(() => {
44
- if (!S.current || w.current || m.current?.readyState === WebSocket.OPEN) return;
45
- w.current = !0;
46
- let e = new AbortController();
47
- E.current = e;
48
- let t = `${window.location.protocol === "https:" ? "wss:" : "ws:"}//${window.location.host}/api/pty`;
49
- console.log(`[XTermTerminal] Connecting (attempt ${h.current + 1}/${b})`), P("connecting");
50
- let n = new WebSocket(t);
51
- m.current = n, n.onopen = () => {
52
- S.current && console.log("[XTermTerminal] WebSocket opened");
53
- }, n.onmessage = (e) => {
54
- if (S.current && typeof e.data == "string") try {
55
- let t = JSON.parse(e.data);
56
- switch (t.type) {
57
- case "ready":
58
- console.log("[XTermTerminal] Server ready, sending start"), n.send(JSON.stringify({
59
- type: "start",
60
- shell: T.current,
61
- cwd: "/app/workspace",
62
- cols: a.current?.cols || 80,
63
- rows: a.current?.rows || 24
64
- }));
65
- break;
66
- case "started":
67
- console.log("[XTermTerminal] PTY started"), h.current = 0, w.current = !1, j(!1), P("connected");
68
- break;
69
- case "exit":
70
- console.log("[XTermTerminal] PTY exited:", t.code), m.current = null, w.current = !1, P("disconnected"), j(!0);
71
- break;
72
- case "error":
73
- console.error("[XTermTerminal] Server error:", t.message), w.current = !1, P("error"), j(!0);
74
- break;
75
- }
76
- } catch {
77
- a.current && a.current.write(e.data);
78
- }
79
- }, n.onclose = () => {
80
- if (!(!S.current || e.signal.aborted)) if (console.log("[XTermTerminal] WebSocket closed"), m.current = null, w.current = !1, h.current < b) {
81
- h.current++;
82
- let t = x * 2 ** (h.current - 1);
83
- console.log(`[XTermTerminal] Retrying in ${t}ms`), setTimeout(() => {
84
- S.current && !m.current && !e.signal.aborted && I();
85
- }, t);
86
- } else P("disconnected"), j(!0);
87
- }, n.onerror = () => {
88
- S.current && (console.error("[XTermTerminal] WebSocket error"), w.current = !1, n.close(), P("error"), j(!0));
89
- };
90
- }, [P]);
91
- l(() => {
92
- if (D.current || (D.current = !0, S.current = !0, !i.current)) return;
93
- let e = new g({
94
- fontFamily: "'Operator Mono', 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace",
95
- fontSize: 14,
96
- theme: {
97
- background: "#1e1e1e",
98
- foreground: "#d4d4d4",
99
- cursor: "#ffffff",
100
- selectionBackground: "#264f78"
101
- },
102
- cursorStyle: "underline",
103
- cursorBlink: !0,
104
- scrollback: t
105
- }), n = new _(), r = new v();
106
- return e.loadAddon(n), e.loadAddon(r), e.open(i.current), n.fit(), a.current = e, o.current = n, s.current = r, e.onData((e) => {
107
- m.current?.readyState === WebSocket.OPEN && m.current.send(JSON.stringify({
108
- type: "input",
109
- data: e
110
- }));
111
- }), e.onResize(({ cols: e, rows: t }) => {
112
- m.current?.readyState === WebSocket.OPEN && m.current.send(JSON.stringify({
113
- type: "resize",
114
- cols: e,
115
- rows: t
116
- }));
117
- }), M.current?.({
118
- clear: () => e.clear(),
119
- reset: () => e.reset(),
120
- write: (t) => e.write(t),
121
- copy: async () => {
122
- let t = e.getSelection();
123
- if (console.log("[XTermTerminal] Copy called, selection length:", t?.length ?? 0), !t) {
124
- console.log("[XTermTerminal] No selection to copy");
125
- return;
126
- }
127
- try {
128
- if (!navigator.clipboard) {
129
- console.warn("[XTermTerminal] Clipboard API not available (non-secure context?)"), C(t);
130
- return;
131
- }
132
- await navigator.clipboard.writeText(t), console.log("[XTermTerminal] Copied to clipboard successfully");
133
- } catch (e) {
134
- console.error("[XTermTerminal] Clipboard write failed:", e), C(t);
135
- }
136
- },
137
- paste: async () => {
138
- console.log("[XTermTerminal] Paste called");
139
- try {
140
- if (!navigator.clipboard) {
141
- console.warn("[XTermTerminal] Clipboard API not available");
142
- return;
143
- }
144
- let t = await navigator.clipboard.readText();
145
- console.log("[XTermTerminal] Paste text length:", t.length), e.paste(t);
146
- } catch (e) {
147
- console.error("[XTermTerminal] Paste failed:", e);
148
- }
149
- },
150
- reconnect: L
151
- }), requestAnimationFrame(() => {
152
- S.current && I();
153
- }), () => {
154
- console.log("[XTermTerminal] Cleanup"), S.current = !1, E.current?.abort(), E.current = null, a.current && a.current.clear(), F(), e.dispose(), a.current = null, o.current = null;
155
- };
156
- }, []);
157
- let L = c(() => {
158
- console.log("[XTermTerminal] Reconnect triggered"), h.current = 0, j(!1), F(), setTimeout(() => I(), 100);
159
- }, [F, I]);
160
- return l(() => {
161
- a.current && (a.current.options.scrollback = t);
162
- }, [t]), l(() => {
163
- if (!i.current) return;
164
- let e = new ResizeObserver(() => {
165
- o.current?.fit();
166
- });
167
- return e.observe(i.current), () => e.disconnect();
168
- }, []), /* @__PURE__ */ p("div", {
169
- className: y.terminalContainer,
170
- children: [/* @__PURE__ */ f("div", {
171
- className: y.terminalWrapper,
172
- children: /* @__PURE__ */ f("div", {
173
- ref: i,
174
- className: y.terminal,
175
- "data-testid": "xterm-terminal"
176
- })
177
- }), /* @__PURE__ */ p("div", {
178
- className: y.statusBar,
179
- children: [
180
- /* @__PURE__ */ p("span", {
181
- className: y.statusIndicator,
182
- "data-status": O,
183
- children: [
184
- O === "idle" && "○",
185
- O === "connecting" && "●",
186
- O === "connected" && "●",
187
- O === "disconnected" && "○",
188
- O === "error" && "●"
189
- ]
190
- }),
191
- /* @__PURE__ */ p("span", {
192
- className: y.statusText,
193
- children: [
194
- O === "idle" && "Idle",
195
- O === "connecting" && "Connecting...",
196
- O === "connected" && "Connected",
197
- O === "disconnected" && "Disconnected",
198
- O === "error" && "Error"
199
- ]
200
- }),
201
- A && /* @__PURE__ */ f("button", {
202
- onClick: L,
203
- className: y.reconnectButton,
204
- children: "Reconnect"
205
- })
206
- ]
207
- })]
208
- });
209
- };
210
- function C(e) {
211
- let t = document.createElement("textarea");
212
- t.value = e, t.style.position = "fixed", t.style.left = "-9999px", t.style.opacity = "0", document.body.appendChild(t), t.select(), t.setSelectionRange(0, e.length);
213
- try {
214
- let e = document.execCommand("copy");
215
- console.log("[XTermTerminal] Fallback copy result:", e ? "success" : "failed");
216
- } catch (e) {
217
- console.error("[XTermTerminal] Fallback copy failed:", e);
218
- } finally {
219
- document.body.removeChild(t);
220
- }
221
- }
222
- //#endregion
223
- //#region src/components/Apps/TerminalApp/TerminalNotSupported.tsx
224
- var w = () => {
225
- let { t: e } = m("apps");
226
- return /* @__PURE__ */ f(r, {
227
- "data-testid": "terminal-not-supported",
228
- style: {
229
- width: "100%",
230
- height: "100%"
231
- },
232
- children: /* @__PURE__ */ p(i, {
233
- align: "center",
234
- gap: "lg",
235
- p: "xl",
236
- maw: 400,
237
- children: [
238
- /* @__PURE__ */ f(t, {
239
- size: "3rem",
240
- children: /* @__PURE__ */ f(h, {})
241
- }),
242
- /* @__PURE__ */ f(t, {
243
- size: "lg",
244
- fw: 700,
245
- ta: "center",
246
- children: e("terminal.notAvailable")
247
- }),
248
- /* @__PURE__ */ f(t, {
249
- size: "sm",
250
- c: "dimmed",
251
- ta: "center",
252
- children: e("terminal.notAvailableMessage")
253
- }),
254
- /* @__PURE__ */ f(t, {
255
- size: "sm",
256
- c: "dimmed",
257
- ta: "center",
258
- children: e("terminal.dockerRequired")
259
- })
260
- ]
261
- })
262
- });
263
- }, T = /* @__PURE__ */ e({ default: () => E }), E = ({ window: e, notifyReady: t }) => {
264
- let r = e, i = r?.id ?? "", p = n(), m = s(i), h = a(i), { setScrollback: g, setShell: _, reset: v } = o(), y = u(null), b = u(!1), x = u(!1), [C, T] = d("idle"), [E, D] = d(null);
265
- l(() => {
266
- p !== "docker" || x.current || (x.current = !0, (async () => {
267
- try {
268
- let e = await fetch("/api/shell");
269
- if (e.ok) {
270
- let t = await e.json();
271
- D(t), (!h || h === "/bin/zsh") && _(i, t.default);
272
- }
273
- } catch (e) {
274
- console.error("[TerminalApp] Failed to fetch shell info:", e), h || _(i, "/bin/zsh");
275
- }
276
- })());
277
- }, [
278
- p,
279
- h,
280
- _,
281
- i
282
- ]), l(() => {
283
- v(i);
284
- }, [i, v]);
285
- let O = c((e) => {
286
- y.current = e;
287
- }, []), k = c((e) => {
288
- T(e);
289
- }, []);
290
- return l(() => {
291
- !b.current && t && (b.current = !0, t({
292
- ...r?.contentData ?? {},
293
- clear: () => y.current?.clear(),
294
- reset: () => y.current?.reset(),
295
- copy: () => y.current?.copy(),
296
- paste: () => y.current?.paste(),
297
- reconnect: () => y.current?.reconnect(),
298
- setScrollback: (e) => g(i, e),
299
- setShell: (e) => _(i, e),
300
- connectionStatus: C
301
- }));
302
- }, [
303
- t,
304
- g,
305
- _,
306
- i,
307
- r?.contentData,
308
- C
309
- ]), l(() => {
310
- b.current && t && t({
311
- ...r?.contentData ?? {},
312
- connectionStatus: C
313
- });
314
- }, [
315
- C,
316
- t,
317
- r?.contentData
318
- ]), p === "docker" ? /* @__PURE__ */ f(S, {
319
- shell: h || E?.default || "/bin/zsh",
320
- scrollback: m,
321
- onTerminalReady: O,
322
- onConnectionChange: k
323
- }) : /* @__PURE__ */ f(w, {});
324
- };
325
- //#endregion
326
- export { T as t };
@@ -1 +0,0 @@
1
- require(`./Box-zW6Twge8.cjs`);const e=require(`./getRuntime-BFK0-8R1.cjs`),t=require(`./Center-DKUE2pER.cjs`),n=require(`./Stack-D4jAiRfc.cjs`),r=require(`./terminalStore-iIuyodfK.cjs`);let i=require(`react`),a=require(`react/jsx-runtime`),o=require(`react-i18next`),s=require(`react-icons/fc`),c=require(`@xterm/xterm`),l=require(`@xterm/addon-fit`),u=require(`@xterm/addon-clipboard`);require(`@xterm/xterm/css/xterm.css`);var d={terminalContainer:`_terminalContainer_15s96_1`,terminalWrapper:`_terminalWrapper_15s96_9`,terminal:`_terminal_15s96_1`,statusBar:`_statusBar_15s96_33`,statusIndicator:`_statusIndicator_15s96_45`,statusText:`_statusText_15s96_70`,reconnectButton:`_reconnectButton_15s96_74`},f=5,p=1e3,m=({shell:e,scrollback:t,onTerminalReady:n,onConnectionChange:r})=>{let o=(0,i.useRef)(null),s=(0,i.useRef)(null),m=(0,i.useRef)(null),g=(0,i.useRef)(null),_=(0,i.useRef)(null),v=(0,i.useRef)(0),y=(0,i.useRef)(!1),b=(0,i.useRef)(!1),x=(0,i.useRef)(e),S=(0,i.useRef)(null),C=(0,i.useRef)(!1),[w,T]=(0,i.useState)(`idle`),[E,D]=(0,i.useState)(!1),O=(0,i.useRef)(n),k=(0,i.useRef)(r);(0,i.useEffect)(()=>{O.current=n},[n]),(0,i.useEffect)(()=>{k.current=r},[r]),(0,i.useEffect)(()=>{x.current=e},[e]);let A=(0,i.useCallback)(e=>{y.current&&(T(e),k.current?.(e))},[]),j=(0,i.useCallback)(()=>{S.current?.abort(),S.current=null;let e=_.current;if(e&&(_.current=null,e.readyState===WebSocket.OPEN||e.readyState===WebSocket.CONNECTING)){try{e.send(JSON.stringify({type:`kill`}))}catch{}e.close()}b.current=!1},[]),M=(0,i.useCallback)(()=>{if(!y.current||b.current||_.current?.readyState===WebSocket.OPEN)return;b.current=!0;let e=new AbortController;S.current=e;let t=`${window.location.protocol===`https:`?`wss:`:`ws:`}//${window.location.host}/api/pty`;console.log(`[XTermTerminal] Connecting (attempt ${v.current+1}/${f})`),A(`connecting`);let n=new WebSocket(t);_.current=n,n.onopen=()=>{y.current&&console.log(`[XTermTerminal] WebSocket opened`)},n.onmessage=e=>{if(y.current&&typeof e.data==`string`)try{let t=JSON.parse(e.data);switch(t.type){case`ready`:console.log(`[XTermTerminal] Server ready, sending start`),n.send(JSON.stringify({type:`start`,shell:x.current,cwd:`/app/workspace`,cols:s.current?.cols||80,rows:s.current?.rows||24}));break;case`started`:console.log(`[XTermTerminal] PTY started`),v.current=0,b.current=!1,D(!1),A(`connected`);break;case`exit`:console.log(`[XTermTerminal] PTY exited:`,t.code),_.current=null,b.current=!1,A(`disconnected`),D(!0);break;case`error`:console.error(`[XTermTerminal] Server error:`,t.message),b.current=!1,A(`error`),D(!0);break}}catch{s.current&&s.current.write(e.data)}},n.onclose=()=>{if(!(!y.current||e.signal.aborted))if(console.log(`[XTermTerminal] WebSocket closed`),_.current=null,b.current=!1,v.current<f){v.current++;let t=p*2**(v.current-1);console.log(`[XTermTerminal] Retrying in ${t}ms`),setTimeout(()=>{y.current&&!_.current&&!e.signal.aborted&&M()},t)}else A(`disconnected`),D(!0)},n.onerror=()=>{y.current&&(console.error(`[XTermTerminal] WebSocket error`),b.current=!1,n.close(),A(`error`),D(!0))}},[A]);(0,i.useEffect)(()=>{if(C.current||(C.current=!0,y.current=!0,!o.current))return;let e=new c.Terminal({fontFamily:`'Operator Mono', 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace`,fontSize:14,theme:{background:`#1e1e1e`,foreground:`#d4d4d4`,cursor:`#ffffff`,selectionBackground:`#264f78`},cursorStyle:`underline`,cursorBlink:!0,scrollback:t}),n=new l.FitAddon,r=new u.ClipboardAddon;return e.loadAddon(n),e.loadAddon(r),e.open(o.current),n.fit(),s.current=e,m.current=n,g.current=r,e.onData(e=>{_.current?.readyState===WebSocket.OPEN&&_.current.send(JSON.stringify({type:`input`,data:e}))}),e.onResize(({cols:e,rows:t})=>{_.current?.readyState===WebSocket.OPEN&&_.current.send(JSON.stringify({type:`resize`,cols:e,rows:t}))}),O.current?.({clear:()=>e.clear(),reset:()=>e.reset(),write:t=>e.write(t),copy:async()=>{let t=e.getSelection();if(console.log(`[XTermTerminal] Copy called, selection length:`,t?.length??0),!t){console.log(`[XTermTerminal] No selection to copy`);return}try{if(!navigator.clipboard){console.warn(`[XTermTerminal] Clipboard API not available (non-secure context?)`),h(t);return}await navigator.clipboard.writeText(t),console.log(`[XTermTerminal] Copied to clipboard successfully`)}catch(e){console.error(`[XTermTerminal] Clipboard write failed:`,e),h(t)}},paste:async()=>{console.log(`[XTermTerminal] Paste called`);try{if(!navigator.clipboard){console.warn(`[XTermTerminal] Clipboard API not available`);return}let t=await navigator.clipboard.readText();console.log(`[XTermTerminal] Paste text length:`,t.length),e.paste(t)}catch(e){console.error(`[XTermTerminal] Paste failed:`,e)}},reconnect:N}),requestAnimationFrame(()=>{y.current&&M()}),()=>{console.log(`[XTermTerminal] Cleanup`),y.current=!1,S.current?.abort(),S.current=null,s.current&&s.current.clear(),j(),e.dispose(),s.current=null,m.current=null}},[]);let N=(0,i.useCallback)(()=>{console.log(`[XTermTerminal] Reconnect triggered`),v.current=0,D(!1),j(),setTimeout(()=>M(),100)},[j,M]);return(0,i.useEffect)(()=>{s.current&&(s.current.options.scrollback=t)},[t]),(0,i.useEffect)(()=>{if(!o.current)return;let e=new ResizeObserver(()=>{m.current?.fit()});return e.observe(o.current),()=>e.disconnect()},[]),(0,a.jsxs)(`div`,{className:d.terminalContainer,children:[(0,a.jsx)(`div`,{className:d.terminalWrapper,children:(0,a.jsx)(`div`,{ref:o,className:d.terminal,"data-testid":`xterm-terminal`})}),(0,a.jsxs)(`div`,{className:d.statusBar,children:[(0,a.jsxs)(`span`,{className:d.statusIndicator,"data-status":w,children:[w===`idle`&&`○`,w===`connecting`&&`●`,w===`connected`&&`●`,w===`disconnected`&&`○`,w===`error`&&`●`]}),(0,a.jsxs)(`span`,{className:d.statusText,children:[w===`idle`&&`Idle`,w===`connecting`&&`Connecting...`,w===`connected`&&`Connected`,w===`disconnected`&&`Disconnected`,w===`error`&&`Error`]}),E&&(0,a.jsx)(`button`,{onClick:N,className:d.reconnectButton,children:`Reconnect`})]})]})};function h(e){let t=document.createElement(`textarea`);t.value=e,t.style.position=`fixed`,t.style.left=`-9999px`,t.style.opacity=`0`,document.body.appendChild(t),t.select(),t.setSelectionRange(0,e.length);try{let e=document.execCommand(`copy`);console.log(`[XTermTerminal] Fallback copy result:`,e?`success`:`failed`)}catch(e){console.error(`[XTermTerminal] Fallback copy failed:`,e)}finally{document.body.removeChild(t)}}var g=()=>{let{t:r}=(0,o.useTranslation)(`apps`);return(0,a.jsx)(t.t,{"data-testid":`terminal-not-supported`,style:{width:`100%`,height:`100%`},children:(0,a.jsxs)(n.t,{align:`center`,gap:`lg`,p:`xl`,maw:400,children:[(0,a.jsx)(e.o,{size:`3rem`,children:(0,a.jsx)(s.FcInfo,{})}),(0,a.jsx)(e.o,{size:`lg`,fw:700,ta:`center`,children:r(`terminal.notAvailable`)}),(0,a.jsx)(e.o,{size:`sm`,c:`dimmed`,ta:`center`,children:r(`terminal.notAvailableMessage`)}),(0,a.jsx)(e.o,{size:`sm`,c:`dimmed`,ta:`center`,children:r(`terminal.dockerRequired`)})]})})},_=({window:t,notifyReady:n})=>{let o=t,s=o?.id??``,c=e.t(),l=r.t(s),u=r.n(s),{setScrollback:d,setShell:f,reset:p}=r.r(),h=(0,i.useRef)(null),_=(0,i.useRef)(!1),v=(0,i.useRef)(!1),[y,b]=(0,i.useState)(`idle`),[x,S]=(0,i.useState)(null);(0,i.useEffect)(()=>{c!==`docker`||v.current||(v.current=!0,(async()=>{try{let e=await fetch(`/api/shell`);if(e.ok){let t=await e.json();S(t),(!u||u===`/bin/zsh`)&&f(s,t.default)}}catch(e){console.error(`[TerminalApp] Failed to fetch shell info:`,e),u||f(s,`/bin/zsh`)}})())},[c,u,f,s]),(0,i.useEffect)(()=>{p(s)},[s,p]);let C=(0,i.useCallback)(e=>{h.current=e},[]),w=(0,i.useCallback)(e=>{b(e)},[]);return(0,i.useEffect)(()=>{!_.current&&n&&(_.current=!0,n({...o?.contentData??{},clear:()=>h.current?.clear(),reset:()=>h.current?.reset(),copy:()=>h.current?.copy(),paste:()=>h.current?.paste(),reconnect:()=>h.current?.reconnect(),setScrollback:e=>d(s,e),setShell:e=>f(s,e),connectionStatus:y}))},[n,d,f,s,o?.contentData,y]),(0,i.useEffect)(()=>{_.current&&n&&n({...o?.contentData??{},connectionStatus:y})},[y,n,o?.contentData]),c===`docker`?(0,a.jsx)(m,{shell:u||x?.default||`/bin/zsh`,scrollback:l,onTerminalReady:C,onConnectionChange:w}):(0,a.jsx)(g,{})};Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return _}});
@@ -1,113 +0,0 @@
1
- import { t as e } from "./rolldown-runtime-CAFD8bLK.js";
2
- import { t } from "./AppMenuBar-CnIEVjr8.js";
3
- import { n, r, t as i } from "./terminalStore-IWdf4Mm6.js";
4
- import { memo as a, useCallback as o, useMemo as s } from "react";
5
- import { jsx as c } from "react/jsx-runtime";
6
- import { useTranslation as l } from "react-i18next";
7
- //#region src/components/Apps/TerminalApp/useTerminalMenuBar.ts
8
- var u = [{
9
- value: "/bin/sh",
10
- label: "sh"
11
- }, {
12
- value: "/bin/zsh",
13
- label: "zsh"
14
- }];
15
- function d(e) {
16
- let { windowId: t, onExit: a, clear: c, reset: d, copy: f, paste: p, reconnect: m, connectionStatus: h = "idle" } = e, { t: g } = l("common"), { t: _ } = l("apps"), v = i(t), y = n(t), b = r((e) => e.setScrollback), x = r((e) => e.setShell), S = o((e) => b(t, e), [t, b]), C = o((e) => x(t, e), [t, x]), w = h === "connected";
17
- return s(() => {
18
- let e = [
19
- {
20
- type: "item",
21
- label: _("terminal.menu.copy"),
22
- icon: "FcCopy",
23
- onClick: f ?? (() => {}),
24
- disabled: !w
25
- },
26
- {
27
- type: "item",
28
- label: _("terminal.menu.paste"),
29
- icon: "FcPaste",
30
- onClick: p ?? (() => {}),
31
- disabled: !w
32
- },
33
- { type: "divider" },
34
- {
35
- type: "item",
36
- label: _("terminal.menu.clear"),
37
- icon: "FcClear",
38
- onClick: c ?? (() => {}),
39
- disabled: !w
40
- },
41
- {
42
- type: "item",
43
- label: _("terminal.menu.reset"),
44
- icon: "FcSynchronize",
45
- onClick: d ?? (() => {}),
46
- disabled: !w
47
- }
48
- ];
49
- return !w && m && (e.push({ type: "divider" }), e.push({
50
- type: "item",
51
- label: _("terminal.menu.reconnect"),
52
- icon: "FcSynchronize",
53
- onClick: m
54
- })), e.push({ type: "divider" }), e.push({
55
- type: "item",
56
- label: g("actions.exit"),
57
- icon: "FcLeave",
58
- onClick: a
59
- }), [
60
- {
61
- type: "menu",
62
- label: g("menu.edit"),
63
- items: e
64
- },
65
- {
66
- type: "number-input",
67
- label: _("terminal.scrollback"),
68
- value: v,
69
- onChange: S,
70
- min: 100,
71
- max: 5e4,
72
- step: 100,
73
- placeholder: "5000"
74
- },
75
- {
76
- type: "select",
77
- label: _("terminal.shell"),
78
- options: u,
79
- value: y,
80
- onChange: C
81
- }
82
- ];
83
- }, [
84
- g,
85
- _,
86
- a,
87
- c,
88
- d,
89
- f,
90
- p,
91
- m,
92
- w,
93
- v,
94
- y,
95
- S,
96
- C
97
- ]);
98
- }
99
- //#endregion
100
- //#region src/components/Apps/TerminalApp/TerminalMenuBar.tsx
101
- var f = /* @__PURE__ */ e({ TerminalMenuBar: () => p }), p = a(({ windowId: e, contentData: n, onExit: r }) => /* @__PURE__ */ c(t, { elements: d({
102
- windowId: e,
103
- onExit: r,
104
- clear: n?.clear,
105
- reset: n?.reset,
106
- copy: n?.copy,
107
- paste: n?.paste,
108
- reconnect: n?.reconnect,
109
- connectionStatus: n?.connectionStatus
110
- }) }));
111
- p.displayName = "TerminalMenuBar";
112
- //#endregion
113
- export { f as t };
@@ -1 +0,0 @@
1
- require(`./Box-zW6Twge8.cjs`);const e=require(`./AppMenuBar-B9U0n1Vv.cjs`),t=require(`./terminalStore-iIuyodfK.cjs`);let n=require(`react`),r=require(`react/jsx-runtime`),i=require(`react-i18next`);var a=[{value:`/bin/sh`,label:`sh`},{value:`/bin/zsh`,label:`zsh`}];function o(e){let{windowId:r,onExit:o,clear:s,reset:c,copy:l,paste:u,reconnect:d,connectionStatus:f=`idle`}=e,{t:p}=(0,i.useTranslation)(`common`),{t:m}=(0,i.useTranslation)(`apps`),h=t.t(r),g=t.n(r),_=t.r(e=>e.setScrollback),v=t.r(e=>e.setShell),y=(0,n.useCallback)(e=>_(r,e),[r,_]),b=(0,n.useCallback)(e=>v(r,e),[r,v]),x=f===`connected`;return(0,n.useMemo)(()=>{let e=[{type:`item`,label:m(`terminal.menu.copy`),icon:`FcCopy`,onClick:l??(()=>{}),disabled:!x},{type:`item`,label:m(`terminal.menu.paste`),icon:`FcPaste`,onClick:u??(()=>{}),disabled:!x},{type:`divider`},{type:`item`,label:m(`terminal.menu.clear`),icon:`FcClear`,onClick:s??(()=>{}),disabled:!x},{type:`item`,label:m(`terminal.menu.reset`),icon:`FcSynchronize`,onClick:c??(()=>{}),disabled:!x}];return!x&&d&&(e.push({type:`divider`}),e.push({type:`item`,label:m(`terminal.menu.reconnect`),icon:`FcSynchronize`,onClick:d})),e.push({type:`divider`}),e.push({type:`item`,label:p(`actions.exit`),icon:`FcLeave`,onClick:o}),[{type:`menu`,label:p(`menu.edit`),items:e},{type:`number-input`,label:m(`terminal.scrollback`),value:h,onChange:y,min:100,max:5e4,step:100,placeholder:`5000`},{type:`select`,label:m(`terminal.shell`),options:a,value:g,onChange:b}]},[p,m,o,s,c,l,u,d,x,h,g,y,b])}var s=(0,n.memo)(({windowId:t,contentData:n,onExit:i})=>(0,r.jsx)(e.t,{elements:o({windowId:t,onExit:i,clear:n?.clear,reset:n?.reset,copy:n?.copy,paste:n?.paste,reconnect:n?.reconnect,connectionStatus:n?.connectionStatus})}));s.displayName=`TerminalMenuBar`,Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return s}});
@@ -1 +0,0 @@
1
- const e=require(`./TerminalMenuBar-DNshPmCa.cjs`);exports.TerminalMenuBar=e.t;