@bobfrankston/rmfmail 1.2.277 → 1.2.279

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 (116) hide show
  1. package/.commitmsg +13 -28
  2. package/bin/build-tinymce.js +17 -2
  3. package/client/lib/tinymce/CHANGELOG.md +47 -0
  4. package/client/lib/tinymce/composer.json +1 -1
  5. package/client/lib/tinymce/icons/default/icons.js +13 -0
  6. package/client/lib/tinymce/icons/default/icons.min.js +1 -1
  7. package/client/lib/tinymce/models/dom/model.js +1 -1
  8. package/client/lib/tinymce/package.json +1 -1
  9. package/client/lib/tinymce/plugins/accordion/plugin.js +1 -1
  10. package/client/lib/tinymce/plugins/advlist/plugin.js +1 -1
  11. package/client/lib/tinymce/plugins/anchor/plugin.js +1 -1
  12. package/client/lib/tinymce/plugins/autolink/plugin.js +1 -1
  13. package/client/lib/tinymce/plugins/autolink/plugin.min.js +1 -1
  14. package/client/lib/tinymce/plugins/autoresize/plugin.js +1 -1
  15. package/client/lib/tinymce/plugins/autosave/plugin.js +1 -1
  16. package/client/lib/tinymce/plugins/autosave/plugin.min.js +1 -1
  17. package/client/lib/tinymce/plugins/charmap/plugin.js +1 -1
  18. package/client/lib/tinymce/plugins/code/plugin.js +1 -1
  19. package/client/lib/tinymce/plugins/codesample/plugin.js +2 -2
  20. package/client/lib/tinymce/plugins/codesample/plugin.min.js +2 -2
  21. package/client/lib/tinymce/plugins/directionality/plugin.js +1 -1
  22. package/client/lib/tinymce/plugins/emoticons/plugin.js +5 -11
  23. package/client/lib/tinymce/plugins/emoticons/plugin.min.js +1 -1
  24. package/client/lib/tinymce/plugins/fullscreen/plugin.js +1 -1
  25. package/client/lib/tinymce/plugins/help/plugin.js +1 -1
  26. package/client/lib/tinymce/plugins/help/plugin.min.js +1 -1
  27. package/client/lib/tinymce/plugins/image/plugin.js +15 -28
  28. package/client/lib/tinymce/plugins/image/plugin.min.js +1 -1
  29. package/client/lib/tinymce/plugins/importcss/plugin.js +1 -1
  30. package/client/lib/tinymce/plugins/insertdatetime/plugin.js +1 -1
  31. package/client/lib/tinymce/plugins/link/plugin.js +3 -2
  32. package/client/lib/tinymce/plugins/link/plugin.min.js +1 -1
  33. package/client/lib/tinymce/plugins/lists/plugin.js +1 -1
  34. package/client/lib/tinymce/plugins/media/plugin.js +1 -1
  35. package/client/lib/tinymce/plugins/nonbreaking/plugin.js +1 -1
  36. package/client/lib/tinymce/plugins/pagebreak/plugin.js +1 -1
  37. package/client/lib/tinymce/plugins/preview/plugin.js +12 -2
  38. package/client/lib/tinymce/plugins/preview/plugin.min.js +1 -1
  39. package/client/lib/tinymce/plugins/quickbars/plugin.js +1 -1
  40. package/client/lib/tinymce/plugins/save/plugin.js +1 -1
  41. package/client/lib/tinymce/plugins/searchreplace/plugin.js +1 -1
  42. package/client/lib/tinymce/plugins/table/plugin.js +5 -3
  43. package/client/lib/tinymce/plugins/table/plugin.min.js +1 -1
  44. package/client/lib/tinymce/plugins/visualblocks/plugin.js +1 -1
  45. package/client/lib/tinymce/plugins/visualchars/plugin.js +1 -1
  46. package/client/lib/tinymce/plugins/wordcount/plugin.js +1 -1
  47. package/client/lib/tinymce/skins/content/dark/content.css +3 -0
  48. package/client/lib/tinymce/skins/content/dark/content.js +1 -1
  49. package/client/lib/tinymce/skins/content/dark/content.min.css +1 -1
  50. package/client/lib/tinymce/skins/ui/oxide/content.css +53 -42
  51. package/client/lib/tinymce/skins/ui/oxide/content.inline.css +53 -42
  52. package/client/lib/tinymce/skins/ui/oxide/content.inline.js +1 -1
  53. package/client/lib/tinymce/skins/ui/oxide/content.inline.min.css +1 -1
  54. package/client/lib/tinymce/skins/ui/oxide/content.inline.min.ts +2 -2
  55. package/client/lib/tinymce/skins/ui/oxide/content.inline.ts +2 -2
  56. package/client/lib/tinymce/skins/ui/oxide/content.js +1 -1
  57. package/client/lib/tinymce/skins/ui/oxide/content.min.css +1 -1
  58. package/client/lib/tinymce/skins/ui/oxide/content.min.ts +2 -2
  59. package/client/lib/tinymce/skins/ui/oxide/content.ts +2 -2
  60. package/client/lib/tinymce/skins/ui/oxide/skin.css +94 -22
  61. package/client/lib/tinymce/skins/ui/oxide/skin.js +1 -1
  62. package/client/lib/tinymce/skins/ui/oxide/skin.min.css +1 -1
  63. package/client/lib/tinymce/skins/ui/oxide/skin.min.ts +8 -3
  64. package/client/lib/tinymce/skins/ui/oxide/skin.ts +8 -3
  65. package/client/lib/tinymce/skins/ui/oxide-dark/content.css +53 -42
  66. package/client/lib/tinymce/skins/ui/oxide-dark/content.inline.css +53 -42
  67. package/client/lib/tinymce/skins/ui/oxide-dark/content.inline.js +1 -1
  68. package/client/lib/tinymce/skins/ui/oxide-dark/content.inline.min.css +1 -1
  69. package/client/lib/tinymce/skins/ui/oxide-dark/content.inline.min.ts +2 -2
  70. package/client/lib/tinymce/skins/ui/oxide-dark/content.inline.ts +2 -2
  71. package/client/lib/tinymce/skins/ui/oxide-dark/content.js +1 -1
  72. package/client/lib/tinymce/skins/ui/oxide-dark/content.min.css +1 -1
  73. package/client/lib/tinymce/skins/ui/oxide-dark/content.min.ts +2 -2
  74. package/client/lib/tinymce/skins/ui/oxide-dark/content.ts +2 -2
  75. package/client/lib/tinymce/skins/ui/oxide-dark/skin.css +94 -22
  76. package/client/lib/tinymce/skins/ui/oxide-dark/skin.js +1 -1
  77. package/client/lib/tinymce/skins/ui/oxide-dark/skin.min.css +1 -1
  78. package/client/lib/tinymce/skins/ui/oxide-dark/skin.min.ts +8 -3
  79. package/client/lib/tinymce/skins/ui/oxide-dark/skin.ts +8 -3
  80. package/client/lib/tinymce/skins/ui/tinymce-5/content.css +53 -42
  81. package/client/lib/tinymce/skins/ui/tinymce-5/content.inline.css +53 -42
  82. package/client/lib/tinymce/skins/ui/tinymce-5/content.inline.js +1 -1
  83. package/client/lib/tinymce/skins/ui/tinymce-5/content.inline.min.css +1 -1
  84. package/client/lib/tinymce/skins/ui/tinymce-5/content.inline.min.ts +2 -2
  85. package/client/lib/tinymce/skins/ui/tinymce-5/content.inline.ts +2 -2
  86. package/client/lib/tinymce/skins/ui/tinymce-5/content.js +1 -1
  87. package/client/lib/tinymce/skins/ui/tinymce-5/content.min.css +1 -1
  88. package/client/lib/tinymce/skins/ui/tinymce-5/content.min.ts +2 -2
  89. package/client/lib/tinymce/skins/ui/tinymce-5/content.ts +2 -2
  90. package/client/lib/tinymce/skins/ui/tinymce-5/skin.css +94 -22
  91. package/client/lib/tinymce/skins/ui/tinymce-5/skin.js +1 -1
  92. package/client/lib/tinymce/skins/ui/tinymce-5/skin.min.css +1 -1
  93. package/client/lib/tinymce/skins/ui/tinymce-5/skin.min.ts +8 -3
  94. package/client/lib/tinymce/skins/ui/tinymce-5/skin.ts +8 -3
  95. package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.css +53 -42
  96. package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.inline.css +53 -42
  97. package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.inline.js +1 -1
  98. package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.inline.min.css +1 -1
  99. package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.inline.min.ts +2 -2
  100. package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.inline.ts +2 -2
  101. package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.js +1 -1
  102. package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.min.css +1 -1
  103. package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.min.ts +2 -2
  104. package/client/lib/tinymce/skins/ui/tinymce-5-dark/content.ts +2 -2
  105. package/client/lib/tinymce/skins/ui/tinymce-5-dark/skin.css +94 -22
  106. package/client/lib/tinymce/skins/ui/tinymce-5-dark/skin.js +1 -1
  107. package/client/lib/tinymce/skins/ui/tinymce-5-dark/skin.min.css +1 -1
  108. package/client/lib/tinymce/skins/ui/tinymce-5-dark/skin.min.ts +8 -3
  109. package/client/lib/tinymce/skins/ui/tinymce-5-dark/skin.ts +8 -3
  110. package/client/lib/tinymce/themes/silver/theme.js +1602 -579
  111. package/client/lib/tinymce/themes/silver/theme.min.js +3 -3
  112. package/client/lib/tinymce/tinymce.js +1410 -294
  113. package/client/lib/tinymce/tinymce.min.js +5 -5
  114. package/npmchanges.md +66 -0
  115. package/package.json +4 -4
  116. /package/packages/mailx-imap/{node_modules.npmglobalize-stash-48352 → node_modules.npmglobalize-stash-63412}/.package-lock.json +0 -0
package/npmchanges.md CHANGED
@@ -530,3 +530,69 @@ seconds cost GDI objects for nothing and helped drive rmfmail.exe to the
530
530
  "CreateIconIndirect failed: Not enough memory resources" in one day's log).
531
531
  msger 0.1.429 fixes the leak itself by freeing the retired icon.
532
532
 
533
+ ## v1.2.277 — 2026-08-23
534
+
535
+ TinyMCE UI language: 61 packs, auto-detected from the browser
536
+
537
+ The tinymce package ships no langs/ directory at all — the packs are a separate
538
+ community package (tinymce-i18n), one file per language, each a plain
539
+ tinymce.addI18n("de", {...}). build-tinymce.js now copies langs8/ next to
540
+ tinymce.min.js, where TinyMCE's own <baseURL>/langs/<code>.js rule finds it, and
541
+ writes langs/index.json listing what it copied. 61 packs, 1.6 MB; only the
542
+ language in force is ever fetched.
543
+
544
+ TinyMCE has no detection of its own: `language` defaults to "en" and a missing
545
+ langs/<code>.js raises a visible in-editor error notification. So "Auto" is
546
+ ours (client/lib/tinymce-langs.ts): walk navigator.languages and take the first
547
+ hit against the manifest — exact ("pt-BR"), then bare ("de-CH" → "de"), then
548
+ any regional variant ("he" → "he-IL"). English short-circuits, since TinyMCE's
549
+ built-in strings are English. Anything unmatched, and any pinned pack we no
550
+ longer ship, stays English rather than provoking the error. Resolving against
551
+ the manifest rather than a hardcoded list keeps the copied files the single
552
+ source of truth, and follows a mailx-tinymce-cdn override for free because the
553
+ manifest URL is derived from the script URL by the same rule TinyMCE uses.
554
+
555
+ Settings → Editor → Editor language: Auto (naming what it resolves to right
556
+ now), English, then every pack, named via Intl.DisplayNames so no name table is
557
+ maintained here. Stored as ui.editorLanguage; same synchronous-localStorage-
558
+ then-persist shape as the editor type, so the next compose-open is correct.
559
+
560
+ Scope, stated in the menu tooltip and docs/editor.md: these translate the
561
+ editor CHROME only. Message content, the spellcheck dictionary (English) and
562
+ Harper (English only) are untouched, and Quill/tiptap have no localized chrome.
563
+
564
+ tests/tinymce-langs.test.ts pins the resolution against the real manifest.
565
+ Needs rmf-tiny 0.1.52 for the adapter's `language` option.
566
+
567
+ ## v1.2.278 — 2026-08-25
568
+
569
+ TinyMCE 8.6.0 → 8.8.2
570
+
571
+ Routine maintenance releases — no security advisories, no breaking changes
572
+ (all within major 8). Four of the fixes land on paths mailx actually uses:
573
+
574
+ - The menubar could wrap onto multiple rows on narrow viewports or at high
575
+ browser zoom, leaving little or no visible editable area (8.8.1). Same class
576
+ of failure as the v1.2.264 "body must fill the iframe" bug, and compose is
577
+ routinely used zoomed.
578
+ - CSS custom property names and colour values in a style attribute were
579
+ lowercased when parsed (8.7.0) — that is quoted mail passing through a
580
+ reply/forward.
581
+ - Copying or dragging in an image didn't set width/height on the tag (8.7.0),
582
+ which the inline-image → cid path then had to carry.
583
+ - The link plugin threw a querySelectorAll syntax error on anchors containing
584
+ semicolons (8.8.0). Mail bodies are full of odd links.
585
+
586
+ Also: undo not restoring the selection, deleting a newline in a list item
587
+ eating the item, and the emoticons dialog's 300-item cap (we load that plugin).
588
+
589
+ Verified before publishing: all 17 plugins we request still exist in 8.8.2, the
590
+ dom model is unchanged, and the package still ships no langs/ directory — the
591
+ 61 packs added in 1.2.277 come from tinymce-i18n and are copied after the tree,
592
+ so the re-copy keeps them (62 files present, manifest included).
593
+
594
+ The spec moves from ^8.5.0 to ^8.8.2. The old floor already permitted 8.8.2;
595
+ the tree had simply drifted at 8.6.0 with nothing to notice it, which is what
596
+ prompted this. Raising the floor makes the intent explicit rather than leaving
597
+ a fresh install free to resolve lower.
598
+
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bobfrankston/rmfmail",
3
- "version": "1.2.277",
3
+ "version": "1.2.279",
4
4
  "description": "Local-first email client with IMAP sync and standalone native app",
5
5
  "type": "module",
6
6
  "main": "bin/mailx.js",
@@ -58,7 +58,7 @@
58
58
  "nspell": "^2.1.5",
59
59
  "quill": "^2.0.3",
60
60
  "sql.js": "^1.14.1",
61
- "tinymce": "^8.5.0",
61
+ "tinymce": "^8.8.2",
62
62
  "tinymce-i18n": "26.8.2"
63
63
  },
64
64
  "devDependencies": {
@@ -109,7 +109,7 @@
109
109
  "nspell": "^2.1.5",
110
110
  "quill": "^2.0.3",
111
111
  "sql.js": "^1.14.1",
112
- "tinymce": "^8.5.0",
112
+ "tinymce": "^8.8.2",
113
113
  "tinymce-i18n": "26.8.2"
114
114
  },
115
115
  ".transformedSnapshot": {
@@ -140,7 +140,7 @@
140
140
  "nspell": "^2.1.5",
141
141
  "quill": "^2.0.3",
142
142
  "sql.js": "^1.14.1",
143
- "tinymce": "^8.5.0",
143
+ "tinymce": "^8.8.2",
144
144
  "tinymce-i18n": "26.8.2"
145
145
  }
146
146
  }