@bobfrankston/rmfmail 1.2.166 → 1.2.168

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 (50) hide show
  1. package/TODO.md +4 -0
  2. package/client/android-bootstrap.bundle.js +23 -4
  3. package/client/android-bootstrap.bundle.js.map +2 -2
  4. package/client/app.bundle.js +45 -0
  5. package/client/app.bundle.js.map +2 -2
  6. package/client/app.js +23 -0
  7. package/client/app.js.map +1 -1
  8. package/client/app.ts +18 -0
  9. package/client/components/folder-tree.js +25 -1
  10. package/client/components/folder-tree.js.map +1 -1
  11. package/client/components/folder-tree.ts +21 -1
  12. package/client/compose/compose.bundle.js +292 -0
  13. package/client/compose/compose.bundle.js.map +4 -4
  14. package/client/compose/compose.js +23 -0
  15. package/client/compose/compose.js.map +1 -1
  16. package/client/compose/compose.ts +20 -0
  17. package/client/compose/harper-lint.js +269 -0
  18. package/client/compose/harper-lint.js.map +1 -0
  19. package/client/compose/harper-lint.ts +265 -0
  20. package/client/index.html +1 -0
  21. package/client/lib/api-client.js +8 -0
  22. package/client/lib/api-client.js.map +1 -1
  23. package/client/lib/api-client.ts +8 -0
  24. package/client/lib/mailxapi.js +6 -0
  25. package/docs/harper-integration.md +120 -0
  26. package/package.json +8 -5
  27. package/packages/mailx-imap/package-lock.json +2 -2
  28. package/packages/mailx-imap/package.json +1 -1
  29. package/packages/mailx-service/index.d.ts +11 -0
  30. package/packages/mailx-service/index.d.ts.map +1 -1
  31. package/packages/mailx-service/index.js +56 -0
  32. package/packages/mailx-service/index.js.map +1 -1
  33. package/packages/mailx-service/index.ts +54 -0
  34. package/packages/mailx-service/jsonrpc.js +2 -0
  35. package/packages/mailx-service/jsonrpc.js.map +1 -1
  36. package/packages/mailx-service/jsonrpc.ts +2 -0
  37. package/packages/mailx-service/package.json +1 -1
  38. package/packages/mailx-settings/docs/harper-integration.md +120 -0
  39. package/packages/mailx-settings/package.json +1 -1
  40. package/packages/mailx-store/package.json +1 -1
  41. package/packages/mailx-store-web/android-bootstrap.d.ts.map +1 -1
  42. package/packages/mailx-store-web/android-bootstrap.js +31 -4
  43. package/packages/mailx-store-web/android-bootstrap.js.map +1 -1
  44. package/packages/mailx-store-web/android-bootstrap.ts +31 -4
  45. package/packages/mailx-store-web/package.json +1 -1
  46. package/packages/mailx-types/mailx-api.d.ts +12 -0
  47. package/packages/mailx-types/mailx-api.d.ts.map +1 -1
  48. package/packages/mailx-types/mailx-api.ts +4 -0
  49. package/packages/mailx-types/package.json +1 -1
  50. /package/packages/mailx-imap/{node_modules.npmglobalize-stash-61300 → node_modules.npmglobalize-stash-72420}/.package-lock.json +0 -0
package/client/app.js CHANGED
@@ -5741,6 +5741,15 @@ getSettings().then((s) => {
5741
5741
  const px = Number(s.ui?.composeFontSize);
5742
5742
  fontEl.value = String(Number.isFinite(px) && px >= 8 && px <= 32 ? px : 15);
5743
5743
  }
5744
+ const gcEl = document.getElementById("opt-grammar-check");
5745
+ if (gcEl) {
5746
+ const on = s.ui?.grammarCheck !== false; // default ON
5747
+ gcEl.checked = on;
5748
+ try {
5749
+ localStorage.setItem("mailx-grammar-check", on ? "1" : "0");
5750
+ }
5751
+ catch { /* */ }
5752
+ }
5744
5753
  }).catch(() => { });
5745
5754
  document.getElementById("opt-compose-window")?.addEventListener("change", (e) => {
5746
5755
  const on = e.target.checked;
@@ -5753,6 +5762,20 @@ document.getElementById("opt-compose-window")?.addEventListener("change", (e) =>
5753
5762
  saveSettings(settings);
5754
5763
  }).catch(() => { });
5755
5764
  });
5765
+ // Harper grammar squiggles in compose — same dual persistence as the
5766
+ // compose-window toggle: localStorage for the in-window compose iframe
5767
+ // (same origin), settings.ui for the popout's boot snapshot.
5768
+ document.getElementById("opt-grammar-check")?.addEventListener("change", (e) => {
5769
+ const on = e.target.checked;
5770
+ try {
5771
+ localStorage.setItem("mailx-grammar-check", on ? "1" : "0");
5772
+ }
5773
+ catch { /* */ }
5774
+ getSettings().then((settings) => {
5775
+ settings.ui = { ...settings.ui, grammarCheck: on };
5776
+ saveSettings(settings);
5777
+ }).catch(() => { });
5778
+ });
5756
5779
  // Unified compose editing font size (px). Same sync-cache-then-persist shape
5757
5780
  // as saveEditorSetting: compose.ts reads `mailx-compose-font-size` from
5758
5781
  // localStorage at module load, so the very next compose-open is correct.