@bobfrankston/rmfmail 1.2.123 → 1.2.125

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 (58) hide show
  1. package/README.md +6 -0
  2. package/TODO.md +2 -0
  3. package/bin/mailx.js +51 -0
  4. package/bin/mailx.js.map +1 -1
  5. package/bin/mailx.ts +45 -1
  6. package/bin/popout-server.js +40 -2
  7. package/bin/popout-server.js.map +1 -1
  8. package/bin/popout-server.ts +36 -2
  9. package/client/android-bootstrap.bundle.js +29 -21
  10. package/client/android-bootstrap.bundle.js.map +3 -3
  11. package/client/app.bundle.js +41 -3
  12. package/client/app.bundle.js.map +3 -3
  13. package/client/app.js +16 -0
  14. package/client/app.js.map +1 -1
  15. package/client/app.ts +15 -0
  16. package/client/components/folder-tree.js +31 -3
  17. package/client/components/folder-tree.js.map +1 -1
  18. package/client/components/folder-tree.ts +24 -3
  19. package/client/components/message-viewer.js +1 -1
  20. package/client/components/message-viewer.js.map +1 -1
  21. package/client/components/message-viewer.ts +1 -1
  22. package/client/compose/compose.bundle.js +7 -0
  23. package/client/compose/compose.bundle.js.map +2 -2
  24. package/client/index.html +2 -0
  25. package/client/lib/api-client.js +8 -0
  26. package/client/lib/api-client.js.map +1 -1
  27. package/client/lib/api-client.ts +8 -0
  28. package/client/lib/mailxapi.js +4 -0
  29. package/client/lib/popout-bridge.js +14 -0
  30. package/client/lib/popout-bridge.js.map +1 -1
  31. package/client/lib/popout-bridge.ts +12 -0
  32. package/package.json +9 -9
  33. package/packages/mailx-imap/index.d.ts.map +1 -1
  34. package/packages/mailx-imap/index.js +23 -2
  35. package/packages/mailx-imap/index.js.map +1 -1
  36. package/packages/mailx-imap/index.ts +21 -2
  37. package/packages/mailx-imap/package-lock.json +2 -2
  38. package/packages/mailx-imap/package.json +1 -1
  39. package/packages/mailx-service/index.d.ts +21 -0
  40. package/packages/mailx-service/index.d.ts.map +1 -1
  41. package/packages/mailx-service/index.js +28 -2
  42. package/packages/mailx-service/index.js.map +1 -1
  43. package/packages/mailx-service/index.ts +28 -2
  44. package/packages/mailx-service/jsonrpc.js +2 -0
  45. package/packages/mailx-service/jsonrpc.js.map +1 -1
  46. package/packages/mailx-service/jsonrpc.ts +2 -0
  47. package/packages/mailx-service/sync-queue.d.ts +8 -0
  48. package/packages/mailx-service/sync-queue.d.ts.map +1 -1
  49. package/packages/mailx-service/sync-queue.js +10 -0
  50. package/packages/mailx-service/sync-queue.js.map +1 -1
  51. package/packages/mailx-service/sync-queue.ts +11 -0
  52. package/packages/mailx-settings/package.json +1 -1
  53. package/packages/mailx-store-web/package.json +1 -1
  54. package/packages/mailx-store-web/web-service.d.ts.map +1 -1
  55. package/packages/mailx-store-web/web-service.js +9 -2
  56. package/packages/mailx-store-web/web-service.js.map +1 -1
  57. package/packages/mailx-store-web/web-service.ts +9 -2
  58. package/packages/mailx-types/package.json +1 -1
package/client/app.js CHANGED
@@ -4222,6 +4222,22 @@ function openShortcutsDialog() {
4222
4222
  // ── View menu ──
4223
4223
  const viewBtn = document.getElementById("btn-view");
4224
4224
  const viewDropdown = document.getElementById("view-dropdown");
4225
+ // View → New window: another full mailx window as its own OS window
4226
+ // (side-by-side folder views). Daemon spawns it via the popout server;
4227
+ // works from secondary windows too (each click = one more window).
4228
+ document.getElementById("opt-new-window")?.addEventListener("click", async () => {
4229
+ if (viewDropdown)
4230
+ viewDropdown.hidden = true;
4231
+ try {
4232
+ const { popoutMainWindow } = await import("./lib/api-client.js");
4233
+ const r = await popoutMainWindow();
4234
+ if (!r?.ok)
4235
+ showAlert(`New window failed: ${r?.reason || "unknown"}`);
4236
+ }
4237
+ catch (e) {
4238
+ showAlert(`New window failed: ${e?.message || e}`);
4239
+ }
4240
+ });
4225
4241
  const optTwoLine = document.getElementById("opt-two-line");
4226
4242
  const optEleanor = document.getElementById("opt-eleanor");
4227
4243
  const optPreview = document.getElementById("opt-preview");