@bobfrankston/rmfmail 1.2.229 → 1.2.231

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 (31) hide show
  1. package/TODO.md +27 -0
  2. package/client/app.bundle.js +349 -66
  3. package/client/app.bundle.js.map +4 -4
  4. package/client/app.js +16 -2
  5. package/client/app.js.map +1 -1
  6. package/client/app.ts +14 -1
  7. package/client/components/calendar-sidebar.js +1 -1
  8. package/client/components/calendar-sidebar.js.map +1 -1
  9. package/client/components/calendar-sidebar.ts +1 -1
  10. package/client/components/context-menu.js +12 -1
  11. package/client/components/context-menu.js.map +1 -1
  12. package/client/components/context-menu.ts +36 -1
  13. package/client/components/edit-menu.js +339 -0
  14. package/client/components/edit-menu.js.map +1 -0
  15. package/client/components/edit-menu.ts +343 -0
  16. package/client/components/folder-tree.js +2 -2
  17. package/client/components/folder-tree.js.map +1 -1
  18. package/client/components/folder-tree.ts +2 -2
  19. package/client/components/message-list.js +3 -1
  20. package/client/components/message-list.js.map +1 -1
  21. package/client/components/message-list.ts +3 -1
  22. package/client/compose/compose.bundle.js +254 -83
  23. package/client/compose/compose.bundle.js.map +4 -4
  24. package/client/compose/compose.js +5 -28
  25. package/client/compose/compose.js.map +1 -1
  26. package/client/compose/compose.ts +4 -13
  27. package/client/compose/edit-commands.js +10 -89
  28. package/client/compose/edit-commands.js.map +1 -1
  29. package/client/compose/edit-commands.ts +11 -77
  30. package/package.json +1 -1
  31. /package/packages/mailx-imap/{node_modules.npmglobalize-stash-146480 → node_modules.npmglobalize-stash-7472}/.package-lock.json +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"edit-commands.js","sourceRoot":"","sources":["edit-commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"edit-commands.js","sourceRoot":"","sources":["edit-commands.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,10 @@
1
1
  /**
2
- * Shared editing commands for compose menus.
2
+ * Editor FORMATTING commands for compose menus.
3
+ *
4
+ * The clipboard half of these menus moved to components/edit-menu.ts, which
5
+ * every menu in the app now shares — compose's editors, compose's recipient
6
+ * fields, and each main-window surface. What stays here is what's specific to
7
+ * a rich editor: bold/italic/link/clear, and the word-expansion they act on.
3
8
  *
4
9
  * These exist because mailx has THREE right-click menus over the same editor
5
10
  * and they kept drifting apart:
@@ -20,6 +25,8 @@
20
25
  * branching happens once, here, instead of in each menu.
21
26
  */
22
27
 
28
+ import { editMenuItems } from "../components/edit-menu.js";
29
+
23
30
  export type EditCommandId = "cut" | "copy" | "paste" | "bold" | "italic" | "underline" | "strike" | "link" | "clear";
24
31
 
25
32
  function isTinyEditor(ne: any): boolean {
@@ -49,72 +56,6 @@ function expandToWord(ne: any): void {
49
56
  }
50
57
  }
51
58
 
52
- function escapeHtml(s: string): string {
53
- return s.replace(/[&<>]/g, c => ({ "&": "&amp;", "<": "&lt;", ">": "&gt;" }[c] as string));
54
- }
55
-
56
- /**
57
- * Cut / Copy / Paste through the async Clipboard API.
58
- *
59
- * NOT document.execCommand: that needs transient user activation, which a
60
- * native-menu callback (dispatched from Rust via ExecuteScript) does not
61
- * carry. Clipboard WRITE is allowed for a focused document; clipboard READ is
62
- * permission-gated and can legitimately be refused — which is why this
63
- * rejects with a real message instead of returning quietly. Callers surface
64
- * it; a menu item that silently does nothing is worse than no menu item.
65
- */
66
- export async function runClipboardCommand(ne: any, id: "cut" | "copy" | "paste"): Promise<void> {
67
- const isTiny = isTinyEditor(ne);
68
- if (id === "paste") {
69
- let html = "";
70
- let text = "";
71
- if (navigator.clipboard?.read) {
72
- for (const item of await navigator.clipboard.read()) {
73
- if (item.types.includes("text/html")) html = await (await item.getType("text/html")).text();
74
- if (item.types.includes("text/plain")) text = await (await item.getType("text/plain")).text();
75
- }
76
- } else {
77
- text = await navigator.clipboard.readText();
78
- }
79
- // Prefer HTML so formatting survives, as Ctrl+V would. Plain text has
80
- // to be escaped and line-broken by hand or it lands as raw markup.
81
- const content = html || (text ? escapeHtml(text).replace(/\r?\n/g, "<br>") : "");
82
- if (!content) return;
83
- if (isTiny) { ne.execCommand("mceInsertContent", false, content); return; }
84
- if (ne?.clipboard?.dangerouslyPasteHTML) {
85
- const sel = ne.getSelection(true);
86
- ne.clipboard.dangerouslyPasteHTML(sel?.index ?? 0, content);
87
- return;
88
- }
89
- throw new Error("editor doesn't support paste");
90
- }
91
-
92
- expandToWord(ne);
93
- let html = "";
94
- let text = "";
95
- if (isTiny) {
96
- html = ne.selection.getContent({ format: "html" });
97
- text = ne.selection.getContent({ format: "text" });
98
- } else {
99
- text = window.getSelection()?.toString() || "";
100
- }
101
- if (!text && !html) return;
102
- if (html && typeof ClipboardItem === "function" && navigator.clipboard?.write) {
103
- await navigator.clipboard.write([new ClipboardItem({
104
- "text/html": new Blob([html], { type: "text/html" }),
105
- "text/plain": new Blob([text], { type: "text/plain" }),
106
- })]);
107
- } else {
108
- await navigator.clipboard.writeText(text);
109
- }
110
- if (id !== "cut") return;
111
- if (isTiny) { ne.execCommand("Delete"); return; }
112
- if (typeof ne?.deleteText === "function") {
113
- const sel = ne.getSelection();
114
- if (sel?.length) ne.deleteText(sel.index, sel.length);
115
- }
116
- }
117
-
118
59
  /** Bold / Italic / Underline / Strikethrough / Link / Clear formatting, acting
119
60
  * on the selection or, with a collapsed caret, the word under it. */
120
61
  export function runFormatCommand(ne: any, id: EditCommandId): void {
@@ -152,19 +93,12 @@ export function standardEditItems(
152
93
  getEditor: () => any,
153
94
  opts: { onError?: (msg: string) => void; showSource?: () => void } = {},
154
95
  ): Array<{ label: string; action: () => void; separator?: boolean }> {
155
- const report = opts.onError || ((m: string) => console.warn(`[edit-commands] ${m}`));
156
- const clip = (id: "cut" | "copy" | "paste") => () => {
157
- void runClipboardCommand(getEditor(), id).catch((e: any) => {
158
- const key = id === "cut" ? "Ctrl+X" : id === "copy" ? "Ctrl+C" : "Ctrl+V";
159
- report(`${id[0].toUpperCase()}${id.slice(1)} failed: ${e?.message || e}. ${key} still works.`);
160
- });
161
- };
162
96
  const fmt = (id: EditCommandId) => () => runFormatCommand(getEditor(), id);
97
+ // Clipboard block comes from the shared implementation — the same one the
98
+ // main window's menus use, so the two can't drift apart again.
163
99
  const items: Array<{ label: string; action: () => void; separator?: boolean }> = [
164
100
  { label: "", action: () => { /* */ }, separator: true },
165
- { label: "Cut", action: clip("cut") },
166
- { label: "Copy", action: clip("copy") },
167
- { label: "Paste", action: clip("paste") },
101
+ ...editMenuItems({ engine: getEditor() }, { onError: opts.onError }),
168
102
  { label: "", action: () => { /* */ }, separator: true },
169
103
  { label: "Bold", action: fmt("bold") },
170
104
  { label: "Italic", action: fmt("italic") },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bobfrankston/rmfmail",
3
- "version": "1.2.229",
3
+ "version": "1.2.231",
4
4
  "description": "Local-first email client with IMAP sync and standalone native app",
5
5
  "type": "module",
6
6
  "main": "bin/mailx.js",