@bobfrankston/rmfmail 1.1.86 → 1.1.87

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 (103) hide show
  1. package/.commitmsg +13 -12
  2. package/client/app.bundle.js +15 -0
  3. package/client/app.bundle.js.map +2 -2
  4. package/client/components/message-viewer.js +17 -0
  5. package/client/components/message-viewer.js.map +1 -1
  6. package/client/components/message-viewer.ts +15 -0
  7. package/client/compose/compose.bundle.js +33 -21
  8. package/client/compose/compose.bundle.js.map +2 -2
  9. package/client/compose/compose.js +8 -9
  10. package/client/compose/compose.js.map +1 -1
  11. package/client/compose/compose.ts +8 -3
  12. package/client/lib/tinymce/skins/content/dark/content.js +10 -4
  13. package/client/lib/tinymce/skins/content/default/content.js +10 -4
  14. package/client/lib/tinymce/skins/content/document/content.js +10 -4
  15. package/client/lib/tinymce/skins/content/tinymce-5/content.js +10 -4
  16. package/client/lib/tinymce/skins/content/tinymce-5-dark/content.js +10 -4
  17. package/client/lib/tinymce/skins/content/writer/content.js +10 -4
  18. package/client/lib/tinymce/skins/ui/oxide/content.inline.js +10 -4
  19. package/client/lib/tinymce/skins/ui/oxide/content.js +10 -4
  20. package/client/lib/tinymce/skins/ui/oxide/skin.js +1 -4
  21. package/client/lib/tinymce/skins/ui/oxide/skin.shadowdom.js +1 -4
  22. package/client/lib/tinymce/skins/ui/oxide-dark/content.inline.js +10 -4
  23. package/client/lib/tinymce/skins/ui/oxide-dark/content.js +10 -4
  24. package/client/lib/tinymce/skins/ui/oxide-dark/skin.js +1 -4
  25. package/client/lib/tinymce/skins/ui/oxide-dark/skin.shadowdom.js +1 -4
  26. package/client/lib/tinymce/skins/ui/tinymce-5/content.inline.js +10 -4
  27. package/client/lib/tinymce/skins/ui/tinymce-5/content.js +10 -4
  28. package/client/lib/tinymce/skins/ui/tinymce-5/skin.js +1 -4
  29. package/client/lib/tinymce/skins/ui/tinymce-5/skin.shadowdom.js +1 -4
  30. package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.inline.js +10 -4
  31. package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.js +10 -4
  32. package/client/lib/tinymce/skins/ui/tinymce-5-dark/skin.js +1 -4
  33. package/client/lib/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.js +1 -4
  34. package/client/styles/components.css +6 -3
  35. package/npmchanges.md +17 -0
  36. package/package.json +1 -1
  37. package/client/lib/tinymce/skins/content/dark/content.js.map +0 -1
  38. package/client/lib/tinymce/skins/content/dark/content.min.js +0 -4
  39. package/client/lib/tinymce/skins/content/dark/content.min.js.map +0 -1
  40. package/client/lib/tinymce/skins/content/default/content.js.map +0 -1
  41. package/client/lib/tinymce/skins/content/default/content.min.js +0 -4
  42. package/client/lib/tinymce/skins/content/default/content.min.js.map +0 -1
  43. package/client/lib/tinymce/skins/content/document/content.js.map +0 -1
  44. package/client/lib/tinymce/skins/content/document/content.min.js +0 -4
  45. package/client/lib/tinymce/skins/content/document/content.min.js.map +0 -1
  46. package/client/lib/tinymce/skins/content/tinymce-5/content.js.map +0 -1
  47. package/client/lib/tinymce/skins/content/tinymce-5/content.min.js +0 -4
  48. package/client/lib/tinymce/skins/content/tinymce-5/content.min.js.map +0 -1
  49. package/client/lib/tinymce/skins/content/tinymce-5-dark/content.js.map +0 -1
  50. package/client/lib/tinymce/skins/content/tinymce-5-dark/content.min.js +0 -4
  51. package/client/lib/tinymce/skins/content/tinymce-5-dark/content.min.js.map +0 -1
  52. package/client/lib/tinymce/skins/content/writer/content.js.map +0 -1
  53. package/client/lib/tinymce/skins/content/writer/content.min.js +0 -4
  54. package/client/lib/tinymce/skins/content/writer/content.min.js.map +0 -1
  55. package/client/lib/tinymce/skins/ui/oxide/content.inline.js.map +0 -1
  56. package/client/lib/tinymce/skins/ui/oxide/content.inline.min.js +0 -4
  57. package/client/lib/tinymce/skins/ui/oxide/content.inline.min.js.map +0 -1
  58. package/client/lib/tinymce/skins/ui/oxide/content.js.map +0 -1
  59. package/client/lib/tinymce/skins/ui/oxide/content.min.js +0 -4
  60. package/client/lib/tinymce/skins/ui/oxide/content.min.js.map +0 -1
  61. package/client/lib/tinymce/skins/ui/oxide/skin.js.map +0 -1
  62. package/client/lib/tinymce/skins/ui/oxide/skin.min.js +0 -4
  63. package/client/lib/tinymce/skins/ui/oxide/skin.min.js.map +0 -1
  64. package/client/lib/tinymce/skins/ui/oxide/skin.shadowdom.js.map +0 -1
  65. package/client/lib/tinymce/skins/ui/oxide/skin.shadowdom.min.js +0 -4
  66. package/client/lib/tinymce/skins/ui/oxide/skin.shadowdom.min.js.map +0 -1
  67. package/client/lib/tinymce/skins/ui/oxide-dark/content.inline.js.map +0 -1
  68. package/client/lib/tinymce/skins/ui/oxide-dark/content.inline.min.js +0 -4
  69. package/client/lib/tinymce/skins/ui/oxide-dark/content.inline.min.js.map +0 -1
  70. package/client/lib/tinymce/skins/ui/oxide-dark/content.js.map +0 -1
  71. package/client/lib/tinymce/skins/ui/oxide-dark/content.min.js +0 -4
  72. package/client/lib/tinymce/skins/ui/oxide-dark/content.min.js.map +0 -1
  73. package/client/lib/tinymce/skins/ui/oxide-dark/skin.js.map +0 -1
  74. package/client/lib/tinymce/skins/ui/oxide-dark/skin.min.js +0 -4
  75. package/client/lib/tinymce/skins/ui/oxide-dark/skin.min.js.map +0 -1
  76. package/client/lib/tinymce/skins/ui/oxide-dark/skin.shadowdom.js.map +0 -1
  77. package/client/lib/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.js +0 -4
  78. package/client/lib/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.js.map +0 -1
  79. package/client/lib/tinymce/skins/ui/tinymce-5/content.inline.js.map +0 -1
  80. package/client/lib/tinymce/skins/ui/tinymce-5/content.inline.min.js +0 -4
  81. package/client/lib/tinymce/skins/ui/tinymce-5/content.inline.min.js.map +0 -1
  82. package/client/lib/tinymce/skins/ui/tinymce-5/content.js.map +0 -1
  83. package/client/lib/tinymce/skins/ui/tinymce-5/content.min.js +0 -4
  84. package/client/lib/tinymce/skins/ui/tinymce-5/content.min.js.map +0 -1
  85. package/client/lib/tinymce/skins/ui/tinymce-5/skin.js.map +0 -1
  86. package/client/lib/tinymce/skins/ui/tinymce-5/skin.min.js +0 -4
  87. package/client/lib/tinymce/skins/ui/tinymce-5/skin.min.js.map +0 -1
  88. package/client/lib/tinymce/skins/ui/tinymce-5/skin.shadowdom.js.map +0 -1
  89. package/client/lib/tinymce/skins/ui/tinymce-5/skin.shadowdom.min.js +0 -4
  90. package/client/lib/tinymce/skins/ui/tinymce-5/skin.shadowdom.min.js.map +0 -1
  91. package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.inline.js.map +0 -1
  92. package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.inline.min.js +0 -4
  93. package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.inline.min.js.map +0 -1
  94. package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.js.map +0 -1
  95. package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.min.js +0 -4
  96. package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.min.js.map +0 -1
  97. package/client/lib/tinymce/skins/ui/tinymce-5-dark/skin.js.map +0 -1
  98. package/client/lib/tinymce/skins/ui/tinymce-5-dark/skin.min.js +0 -4
  99. package/client/lib/tinymce/skins/ui/tinymce-5-dark/skin.min.js.map +0 -1
  100. package/client/lib/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.js.map +0 -1
  101. package/client/lib/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.min.js +0 -4
  102. package/client/lib/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.min.js.map +0 -1
  103. /package/packages/mailx-imap/{node_modules.npmglobalize-stash-88224 → node_modules.npmglobalize-stash-54620}/.package-lock.json +0 -0
package/.commitmsg CHANGED
@@ -1,14 +1,15 @@
1
- Fix: update banner wiped by next sync; raise server-search timeout
1
+ Compose autocomplete at caret; instant discard; visible attachments
2
2
 
3
- Update banner: the "update available" notice shares the alert-banner
4
- element, and the sync-success path calls hideAlert() unconditionally
5
- so the banner the auto-update poller raised was cleared within seconds
6
- by the next sync and the user never saw it (the daemon log confirms the
7
- poller has been detecting every release). The banner is now tagged
8
- dataset.key="update-available"; hideAlert() leaves that key alone unless
9
- forced, and the X dismiss button passes force:true.
3
+ - Recipient autocomplete now matches the token the cursor is in, via
4
+ tokenSpanAtCaret(), instead of always the last token typing a name
5
+ before an existing comma matched the wrong recipient. replaceCaretToken
6
+ replaces only that token and leaves following recipients intact.
10
7
 
11
- Server search: a "Server"-checkbox search goes out to IMAP/Gmail and
12
- can exceed the default 30s IPC ceiling, surfacing as "mailxapi timeout:
13
- searchMessages". searchMessages now gets a 120s ceiling like the
14
- attachment actions.
8
+ - Compose Discard / X: the IMAP draft delete is now fire-and-forget so
9
+ the window closes instantly. It used to await the server round-trip,
10
+ leaving the window up for seconds ("eventually it did").
11
+
12
+ - Attachment chip: clearly tinted background + accent border so it's not
13
+ easy to miss; clicking shows "Opening…" for >=600ms and ignores
14
+ re-clicks while in flight (the open hands off to the OS viewer with no
15
+ visible change in mailx, so it was being clicked repeatedly).
@@ -1665,6 +1665,19 @@ async function showMessage(accountId, uid, folderId, specialUse, isRetry = false
1665
1665
  chip.title = `${att.filename} (${att.mimeType})`;
1666
1666
  chip.addEventListener("click", async (e) => {
1667
1667
  e.preventDefault();
1668
+ if (chip.dataset.opening === "1")
1669
+ return;
1670
+ chip.dataset.opening = "1";
1671
+ const chipLabel = chip.textContent || "";
1672
+ chip.textContent = "\u23F3 Opening\u2026";
1673
+ const tStart = Date.now();
1674
+ const restoreChip = () => {
1675
+ const wait = Math.max(0, 600 - (Date.now() - tStart));
1676
+ setTimeout(() => {
1677
+ chip.textContent = chipLabel;
1678
+ chip.dataset.opening = "";
1679
+ }, wait);
1680
+ };
1668
1681
  try {
1669
1682
  const bridge = window._nativeBridge;
1670
1683
  if (bridge?.openAttachment) {
@@ -1693,6 +1706,8 @@ async function showMessage(accountId, uid, folderId, specialUse, isRetry = false
1693
1706
  const m = `Couldn't open "${att.filename}": ${err?.message || err}`;
1694
1707
  console.error(m);
1695
1708
  window.dispatchEvent(new CustomEvent("mailx-alert", { detail: { message: m, key: "attachment-open" } }));
1709
+ } finally {
1710
+ restoreChip();
1696
1711
  }
1697
1712
  });
1698
1713
  chip.draggable = true;