@fde-desktop/fde-core 0.4.7 → 0.4.9

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 (284) hide show
  1. package/dist/AccordionChevron-DxpOyInK.js +26 -0
  2. package/dist/AccordionChevron-kn5kSrEc.cjs +1 -0
  3. package/dist/ActionIcon-Drh4p6Fv.js +145 -0
  4. package/dist/ActionIcon-alk2zZD6.cjs +1 -0
  5. package/dist/AppEmptyState-BWCUbf-B.cjs +1 -0
  6. package/dist/AppEmptyState-Bxpit0JV.js +49 -0
  7. package/dist/AppIcon-BU7a3ZNH.cjs +1 -0
  8. package/dist/AppIcon-XumS3bIG.js +80 -0
  9. package/dist/AppMenuBar-B9U0n1Vv.cjs +1 -0
  10. package/dist/AppMenuBar-CnIEVjr8.js +2049 -0
  11. package/dist/Box-DSKR_qaa.js +1579 -0
  12. package/dist/Box-zW6Twge8.cjs +1 -0
  13. package/dist/Button-DMlnrqyx.cjs +1 -0
  14. package/dist/Button-wTOTQKxF.js +178 -0
  15. package/dist/CalendarApp-B_e1B1Yn.cjs +1 -0
  16. package/dist/CalendarApp-C-l9D6nd.cjs +1 -0
  17. package/dist/CalendarApp-D0ftTCTG.js +1399 -0
  18. package/dist/Center-CmxXB9ql.js +25 -0
  19. package/dist/Center-DKUE2pER.cjs +1 -0
  20. package/dist/CheckIcon-CZhtJD1O.cjs +1 -0
  21. package/dist/CheckIcon-N5qBqXQJ.js +25 -0
  22. package/dist/CodeServerApp-BOoGwZ7r.cjs +1 -0
  23. package/dist/CodeServerApp-Be3I5EGg.cjs +1 -0
  24. package/dist/CodeServerApp-DW18EZxa.js +150 -0
  25. package/dist/ColorPicker-BCNqi02x.js +997 -0
  26. package/dist/ColorPicker-BrDE7tMO.cjs +1 -0
  27. package/dist/Colors-ClnDxnyA.js +15 -0
  28. package/dist/Colors-zP2AFgU3.cjs +1 -0
  29. package/dist/CreateItemApp-B12M1E_1.cjs +1 -0
  30. package/dist/CreateItemApp-TAAprby3.js +400 -0
  31. package/dist/CreateItemApp-ePB6ujNl.cjs +1 -0
  32. package/dist/DeviceInfoApp-BMF18BGo.cjs +1 -0
  33. package/dist/DeviceInfoApp-DRy0H3aT.cjs +1 -0
  34. package/dist/DeviceInfoApp-lgpwkeRR.js +223 -0
  35. package/dist/DownloadProgress-EoyCaD5O.js +174 -0
  36. package/dist/DownloadProgress-VNdj22U8.cjs +1 -0
  37. package/dist/FileIcon-7JaSR3Gn.js +89 -0
  38. package/dist/FileIcon-CIXopWLv.cjs +1 -0
  39. package/dist/FilePickerApp-DaMgEqKh.js +409 -0
  40. package/dist/FilePickerApp-DjmuSFqa.cjs +1 -0
  41. package/dist/FilesApp-Bp7wfrBZ.cjs +1 -0
  42. package/dist/FilesApp-BpJJRKhi.cjs +1 -0
  43. package/dist/FilesApp-Cj94QG5o.js +225 -0
  44. package/dist/Group-CtBJSfCo.js +48 -0
  45. package/dist/Group-Dsrf6lEK.cjs +1 -0
  46. package/dist/ImageViewerApp-BaLP3gkO.js +69 -0
  47. package/dist/ImageViewerApp-DlHGeB3S.cjs +1 -0
  48. package/dist/ImageViewerApp-DoXd_Swu.cjs +1 -0
  49. package/dist/ImageViewerMenuBar-CabGSi9r.js +87 -0
  50. package/dist/ImageViewerMenuBar-SAI7UNz7.cjs +1 -0
  51. package/dist/ImageViewerMenuBar-_Jr29gii.cjs +1 -0
  52. package/dist/MenuEditApp-BJjlPTOa.cjs +1 -0
  53. package/dist/MenuEditApp-BTRppYnD.js +497 -0
  54. package/dist/MenuEditApp-JPsGT-S3.cjs +1 -0
  55. package/dist/MenuEditMenuBar-BydGkqMw.cjs +1 -0
  56. package/dist/MenuEditMenuBar-DptlwVPQ.cjs +1 -0
  57. package/dist/MenuEditMenuBar-x1IQrHP2.js +60 -0
  58. package/dist/NotesApp-BOcRGO7w.cjs +1 -0
  59. package/dist/NotesApp-CQe7UfBC.js +364 -0
  60. package/dist/NotesApp-OL07JXRE.cjs +1 -0
  61. package/dist/NotesMenuBar-BSI_2Y7p.cjs +1 -0
  62. package/dist/NotesMenuBar-Df6aW85J.cjs +1 -0
  63. package/dist/NotesMenuBar-VhpIe68v.js +62 -0
  64. package/dist/Paper-BX_9odR6.js +30 -0
  65. package/dist/Paper-D8-BaBx2.cjs +1 -0
  66. package/dist/PdfApp-CNEbty5v.cjs +1 -0
  67. package/dist/PdfApp-CVv3ZCaM.cjs +1 -0
  68. package/dist/PdfApp-DL_R9-Nc.js +39 -0
  69. package/dist/PdfMenuBar--E6kDyrT.cjs +1 -0
  70. package/dist/PdfMenuBar-DZCLSOpR.js +39 -0
  71. package/dist/PdfMenuBar-Dj5cJUkg.cjs +1 -0
  72. package/dist/SettingsApp-BlmHuAjT.js +1831 -0
  73. package/dist/SettingsApp-CNvIgf5B.cjs +1 -0
  74. package/dist/SettingsApp-DWxanNE4.cjs +1 -0
  75. package/dist/SettingsMenuBar-CBoOBCfx.cjs +1 -0
  76. package/dist/SettingsMenuBar-DQooFkZN.cjs +1 -0
  77. package/dist/SettingsMenuBar-YWiJHaxq.js +42 -0
  78. package/dist/Slider-BUiHxjKO.cjs +1 -0
  79. package/dist/Slider-t-NcD60t.js +1176 -0
  80. package/dist/Stack-Bp1Ek2Gp.js +34 -0
  81. package/dist/Stack-D4jAiRfc.cjs +1 -0
  82. package/dist/StorybookApp-CDLV_kja.cjs +1 -0
  83. package/dist/StorybookApp-DKwlPCmo.js +10 -0
  84. package/dist/TerminalApp-BCB7i1lR.cjs +1 -0
  85. package/dist/TerminalApp-BYc_gHLe.js +326 -0
  86. package/dist/TerminalApp-Dviz6aP2.cjs +1 -0
  87. package/dist/TerminalMenuBar-D5tPmgR_.js +113 -0
  88. package/dist/TerminalMenuBar-DNshPmCa.cjs +1 -0
  89. package/dist/TerminalMenuBar-HzMSR7XP.cjs +1 -0
  90. package/dist/TextInput-C-JtGWn1.js +981 -0
  91. package/dist/TextInput-CrsmcOip.cjs +1 -0
  92. package/dist/Tooltip-D5Cd9wtz.cjs +1 -0
  93. package/dist/Tooltip-DOeIvhrO.js +1142 -0
  94. package/dist/UnstyledButton-DGaG-e_G.js +25 -0
  95. package/dist/UnstyledButton-DX2pTahr.cjs +1 -0
  96. package/dist/UploaderApp-C6xA5Rrf2.cjs +1 -0
  97. package/dist/UploaderApp-DnHIRxB_.cjs +1 -0
  98. package/dist/UploaderApp-qBfpukR_.js +488 -0
  99. package/dist/VscIcon-CcMdrFoJ.cjs +1 -0
  100. package/dist/VscIcon-DBfVnArE.js +8 -0
  101. package/dist/create-safe-context-Bboj0GWC.cjs +1 -0
  102. package/dist/create-safe-context-XT2cxc14.js +12 -0
  103. package/dist/desktopStore-CZoA9VHO.cjs +1 -0
  104. package/dist/desktopStore-F8bgLqFl.js +1768 -0
  105. package/dist/getRuntime-BFK0-8R1.cjs +1 -0
  106. package/dist/getRuntime-DAPqFH2W.js +63 -0
  107. package/dist/imageViewerStore-BB_tssZR.cjs +1 -0
  108. package/dist/imageViewerStore-C5kWz0o7.js +50 -0
  109. package/dist/index.cjs +1 -5642
  110. package/dist/index.css +2 -9192
  111. package/dist/index.d.ts +2258 -2019
  112. package/dist/index.js +4826 -4798
  113. package/dist/is-element-Bu_JY8Qy.js +7 -0
  114. package/dist/is-element-CdV0xajp.cjs +1 -0
  115. package/dist/menuEditStore-CTeM_dns.cjs +1 -0
  116. package/dist/menuEditStore-Cj1zAwxQ.js +38 -0
  117. package/dist/notesStore-BCEl1D_v.cjs +1 -0
  118. package/dist/notesStore-BPyRTHEc.js +36 -0
  119. package/dist/rolldown-runtime-CAFD8bLK.js +11 -0
  120. package/dist/settingsAppStore-BDQ3ts1y.js +29 -0
  121. package/dist/settingsAppStore-CMBc13VU.cjs +1 -0
  122. package/dist/terminalStore-IWdf4Mm6.js +30 -0
  123. package/dist/terminalStore-iIuyodfK.cjs +1 -0
  124. package/dist/use-merged-ref-BT8_u6vW.js +25 -0
  125. package/dist/use-merged-ref-n9Gw9LNn.cjs +1 -0
  126. package/dist/use-resolved-styles-api-8OXE2oRq.cjs +1 -0
  127. package/dist/use-resolved-styles-api-DNUlJJZf.js +21 -0
  128. package/dist/use-uncontrolled-A4hm9ATM.js +23 -0
  129. package/dist/use-uncontrolled-DDJVQiM_.cjs +1 -0
  130. package/dist/useAdaptiveDimensions-AVDc_qPa.js +40 -0
  131. package/dist/useAdaptiveDimensions-CfITBJ_m.cjs +1 -0
  132. package/dist/useCloseInterceptor-BZd3VILp.js +51 -0
  133. package/dist/useCloseInterceptor-yntBEzNc.cjs +1 -0
  134. package/dist/useDynamicIcon-Bf0t2foA.js +22 -0
  135. package/dist/useDynamicIcon-DJ_il30E.cjs +1 -0
  136. package/dist/useMenuBarUtils-nJIPJGIQ.cjs +1 -0
  137. package/dist/useMenuBarUtils-nmu9yehT.js +6 -0
  138. package/dist/useOpenApp-CBIm7Gzl.js +279 -0
  139. package/dist/useOpenApp-DW4x79Zg.cjs +1 -0
  140. package/dist/useResolvedUrl-BkMPM1fM.cjs +1 -0
  141. package/dist/useResolvedUrl-DQpLqOoL.js +30 -0
  142. package/package.json +7 -3
  143. package/dist/CalendarApp-CHLUCAI7.css +0 -744
  144. package/dist/CalendarApp-K7ZOUZ6C.js +0 -2
  145. package/dist/CalendarApp-OTGEERSS.cjs +0 -8
  146. package/dist/CodeServerApp-5KZGO7HL.css +0 -75
  147. package/dist/CodeServerApp-LUZFCQBI.js +0 -3
  148. package/dist/CodeServerApp-P3TMJPLY.cjs +0 -9
  149. package/dist/CreateItemApp-ESQ42VHH.js +0 -8
  150. package/dist/CreateItemApp-PQB5GTFG.css +0 -107
  151. package/dist/CreateItemApp-RFE3REWZ.cjs +0 -14
  152. package/dist/DeviceInfoApp-XNIS6ZY6.js +0 -5
  153. package/dist/DeviceInfoApp-ZNLQNOKI.cjs +0 -11
  154. package/dist/DeviceInfoApp-ZSMRSITP.css +0 -7
  155. package/dist/FilesApp-4GEU64QN.js +0 -8
  156. package/dist/FilesApp-E6L5W3T2.css +0 -1817
  157. package/dist/FilesApp-QSLB5IWR.cjs +0 -14
  158. package/dist/ImageViewerApp-N2Q7E7WZ.css +0 -215
  159. package/dist/ImageViewerApp-NCVDKLB3.js +0 -11
  160. package/dist/ImageViewerApp-QB373H5Z.cjs +0 -17
  161. package/dist/ImageViewerMenuBar-I3TFKQPS.cjs +0 -14
  162. package/dist/ImageViewerMenuBar-TV5C6TM2.js +0 -5
  163. package/dist/ImageViewerMenuBar-XLK4LIHW.css +0 -56
  164. package/dist/MenuEditApp-5EFYAPFC.cjs +0 -15
  165. package/dist/MenuEditApp-V5XOPIHX.js +0 -9
  166. package/dist/MenuEditApp-YA6HSAMJ.css +0 -94
  167. package/dist/MenuEditMenuBar-7VHMZNRM.css +0 -56
  168. package/dist/MenuEditMenuBar-GF6L4PGZ.cjs +0 -15
  169. package/dist/MenuEditMenuBar-IUXFPZE5.js +0 -6
  170. package/dist/NotesApp-2YNT7Y3D.js +0 -10
  171. package/dist/NotesApp-IAEE7YHU.cjs +0 -16
  172. package/dist/NotesApp-TQ6IHDNX.css +0 -302
  173. package/dist/NotesMenuBar-25LKN3SE.cjs +0 -15
  174. package/dist/NotesMenuBar-MXLOX7OT.css +0 -56
  175. package/dist/NotesMenuBar-SRV3AIAL.js +0 -6
  176. package/dist/PdfApp-67XIX6AM.js +0 -10
  177. package/dist/PdfApp-BUIC5U5H.css +0 -206
  178. package/dist/PdfApp-GZ6RHTBR.cjs +0 -16
  179. package/dist/PdfMenuBar-NLZC6JHS.js +0 -4
  180. package/dist/PdfMenuBar-QUM72EE4.css +0 -56
  181. package/dist/PdfMenuBar-WBRTKMLN.cjs +0 -13
  182. package/dist/SettingsApp-BPLMGPNK.cjs +0 -20
  183. package/dist/SettingsApp-JVOSEFH3.css +0 -283
  184. package/dist/SettingsApp-LUDIXCYY.js +0 -14
  185. package/dist/SettingsMenuBar-5CBSSMVM.css +0 -56
  186. package/dist/SettingsMenuBar-VLT6TTCM.js +0 -6
  187. package/dist/SettingsMenuBar-Y5QEXDEO.cjs +0 -15
  188. package/dist/StorybookApp-NQ244BER.css +0 -7
  189. package/dist/StorybookApp-NZDV4X3Y.js +0 -1
  190. package/dist/StorybookApp-VF3KIMU3.cjs +0 -7
  191. package/dist/TerminalApp-CDGWRBFJ.cjs +0 -10
  192. package/dist/TerminalApp-EAATMIMX.css +0 -77
  193. package/dist/TerminalApp-GCKJCM55.js +0 -4
  194. package/dist/TerminalMenuBar-3J26O26Q.css +0 -56
  195. package/dist/TerminalMenuBar-7BH7MGNJ.cjs +0 -14
  196. package/dist/TerminalMenuBar-7JAEQUZ4.js +0 -5
  197. package/dist/UploaderApp-6KV3TGCT.css +0 -1817
  198. package/dist/UploaderApp-FJC2J4I5.js +0 -10
  199. package/dist/UploaderApp-HLXJYJZQ.cjs +0 -16
  200. package/dist/chunk-2PSTHGTD.cjs +0 -42
  201. package/dist/chunk-2RQX7QBP.cjs +0 -148
  202. package/dist/chunk-43W6UDUZ.cjs +0 -19
  203. package/dist/chunk-4E45FBAH.js +0 -223
  204. package/dist/chunk-4E4U2A25.cjs +0 -237
  205. package/dist/chunk-4QHX7CMN.cjs +0 -38
  206. package/dist/chunk-4XURSNM4.js +0 -43
  207. package/dist/chunk-4ZCRYHL6.js +0 -407
  208. package/dist/chunk-5C6IQE42.cjs +0 -35
  209. package/dist/chunk-5HUYQDQF.js +0 -36
  210. package/dist/chunk-5NOHYJNH.js +0 -84
  211. package/dist/chunk-5QFZW6HW.js +0 -2241
  212. package/dist/chunk-5YH6AKEO.js +0 -146
  213. package/dist/chunk-756GPSPM.js +0 -283
  214. package/dist/chunk-7WUYUTPN.js +0 -2293
  215. package/dist/chunk-7XCMBW64.js +0 -162
  216. package/dist/chunk-7Y7HB7FB.cjs +0 -53
  217. package/dist/chunk-ABIAPZ6S.cjs +0 -45
  218. package/dist/chunk-ACHGJKCI.cjs +0 -286
  219. package/dist/chunk-BQCD5RAF.cjs +0 -48
  220. package/dist/chunk-BQL3YXMV.js +0 -17429
  221. package/dist/chunk-C3XER4N3.js +0 -442
  222. package/dist/chunk-C6BEZNAM.cjs +0 -45
  223. package/dist/chunk-CILU6BWC.cjs +0 -548
  224. package/dist/chunk-CV5PUHAE.cjs +0 -86
  225. package/dist/chunk-D5MVFFID.js +0 -42
  226. package/dist/chunk-D7R55WWT.js +0 -1601
  227. package/dist/chunk-DFYDUXWP.cjs +0 -34
  228. package/dist/chunk-DWP2SYF7.js +0 -55
  229. package/dist/chunk-E55VXNLK.cjs +0 -17498
  230. package/dist/chunk-E5FW77FG.js +0 -77
  231. package/dist/chunk-EAELL43F.js +0 -42
  232. package/dist/chunk-EX5V2ZTU.js +0 -40
  233. package/dist/chunk-FD7QZCTN.cjs +0 -2329
  234. package/dist/chunk-FH4ILMKF.js +0 -38
  235. package/dist/chunk-FRHBM2U7.js +0 -33
  236. package/dist/chunk-FX2TPX3L.cjs +0 -45
  237. package/dist/chunk-GPXNLTPI.cjs +0 -451
  238. package/dist/chunk-GRYCUBJZ.js +0 -9
  239. package/dist/chunk-HPHHS7FJ.cjs +0 -49
  240. package/dist/chunk-HWHBSAUC.js +0 -40
  241. package/dist/chunk-IDHP3R4I.js +0 -31
  242. package/dist/chunk-IHWGT3DL.js +0 -86
  243. package/dist/chunk-JEBKLIMU.cjs +0 -123
  244. package/dist/chunk-KDZLBI6F.cjs +0 -324
  245. package/dist/chunk-KQHICFX3.js +0 -121
  246. package/dist/chunk-LMJE6V4N.cjs +0 -42
  247. package/dist/chunk-MCHPDWVH.js +0 -444
  248. package/dist/chunk-MVDGM5Y4.js +0 -68
  249. package/dist/chunk-N36HBL53.cjs +0 -165
  250. package/dist/chunk-NV5GNFA3.js +0 -541
  251. package/dist/chunk-NVEGEK3N.js +0 -31
  252. package/dist/chunk-OJIDKDKF.js +0 -68
  253. package/dist/chunk-PGGNSLM7.js +0 -215
  254. package/dist/chunk-PKPQA5NR.js +0 -15
  255. package/dist/chunk-PNDBLFJW.cjs +0 -50
  256. package/dist/chunk-Q3WA72BF.cjs +0 -70
  257. package/dist/chunk-RDIDAZ3S.cjs +0 -9
  258. package/dist/chunk-RGJPRXYY.js +0 -48
  259. package/dist/chunk-RPSYXORB.cjs +0 -219
  260. package/dist/chunk-RQ6OZRUW.cjs +0 -41
  261. package/dist/chunk-SBE4SZAN.cjs +0 -226
  262. package/dist/chunk-TAFNCDUI.js +0 -234
  263. package/dist/chunk-TFIDSENE.cjs +0 -88
  264. package/dist/chunk-TGWMOHAO.js +0 -17
  265. package/dist/chunk-UA6XSTW6.js +0 -48
  266. package/dist/chunk-UIQCTAVM.cjs +0 -59
  267. package/dist/chunk-UKYESVDS.cjs +0 -50
  268. package/dist/chunk-V4N255NL.cjs +0 -2309
  269. package/dist/chunk-VO6KXO2I.js +0 -32
  270. package/dist/chunk-WXSTSC3D.cjs +0 -83
  271. package/dist/chunk-XSK7BWYO.js +0 -47
  272. package/dist/chunk-XVAPJ4PP.cjs +0 -449
  273. package/dist/chunk-XVASHRCE.cjs +0 -70
  274. package/dist/chunk-XYSMVQQD.cjs +0 -1608
  275. package/dist/chunk-YAIWI4Z5.js +0 -7
  276. package/dist/chunk-YGYOLDKR.js +0 -280
  277. package/dist/chunk-YP2PLNOF.cjs +0 -34
  278. package/dist/chunk-YSOLW4FS.cjs +0 -11
  279. package/dist/chunk-YY6OUR2U.js +0 -44
  280. package/dist/chunk-YZWS7FDT.cjs +0 -409
  281. package/dist/chunk-Z5YGWL65.cjs +0 -39
  282. package/dist/chunk-ZHNDXNL4.js +0 -45
  283. package/dist/chunk-ZX3EDZ5C.cjs +0 -17
  284. package/dist/index.d.cts +0 -2019
@@ -0,0 +1,34 @@
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 };
@@ -0,0 +1 @@
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}});
@@ -0,0 +1 @@
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}});
@@ -0,0 +1,10 @@
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 };
@@ -0,0 +1 @@
1
+ const e=require(`./TerminalApp-Dviz6aP2.cjs`);exports.default=e.t;
@@ -0,0 +1,326 @@
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 };
@@ -0,0 +1 @@
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 _}});
@@ -0,0 +1,113 @@
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 };
@@ -0,0 +1 @@
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}});
@@ -0,0 +1 @@
1
+ const e=require(`./TerminalMenuBar-DNshPmCa.cjs`);exports.TerminalMenuBar=e.t;