@bobfrankston/rmfmail 1.1.143 → 1.1.145

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.
@@ -645,6 +645,30 @@ async function createTinyMceEditor(container2, opts = {}) {
645
645
  quickbars_selection_toolbar: "bold italic underline | forecolor | quicklink blockquote",
646
646
  quickbars_insert_toolbar: false,
647
647
  quickbars_image_toolbar: "alignleft aligncenter alignright",
648
+ // Code-sample dropdown languages. TinyMCE's default list omits
649
+ // "Text" / plain — every option triggers syntax highlighting
650
+ // which mangles unrelated paste content (Bob 2026-05-24).
651
+ // Adding Text first so it's the default; rest are the modern
652
+ // languages we actually paste.
653
+ codesample_languages: [
654
+ { text: "Text", value: "text" },
655
+ { text: "HTML/XML", value: "markup" },
656
+ { text: "JavaScript", value: "javascript" },
657
+ { text: "TypeScript", value: "typescript" },
658
+ { text: "CSS", value: "css" },
659
+ { text: "JSON", value: "json" },
660
+ { text: "Python", value: "python" },
661
+ { text: "Java", value: "java" },
662
+ { text: "C", value: "c" },
663
+ { text: "C++", value: "cpp" },
664
+ { text: "C#", value: "csharp" },
665
+ { text: "Go", value: "go" },
666
+ { text: "Rust", value: "rust" },
667
+ { text: "Ruby", value: "ruby" },
668
+ { text: "PHP", value: "php" },
669
+ { text: "Shell", value: "bash" },
670
+ { text: "SQL", value: "sql" }
671
+ ],
648
672
  // WebView's native spell-check (red underlines, right-click
649
673
  // "Add to dictionary"). Free; same UX as Quill's spellcheck=true.
650
674
  // Premium tinymcespellchecker plugin would replace this with a
@@ -701,16 +725,14 @@ async function createTinyMceEditor(container2, opts = {}) {
701
725
  // everything else so genuine HTML formatting (bold / italic /
702
726
  // tables / inline color) still comes through verbatim.
703
727
  content_style: [
704
- // High-contrast caret. Default native bar shape (thin vertical
705
- // line, browser-drawn caret-shape:block was too aggressive).
706
- // Color shifts by ancestor element so the caret doubles as a
707
- // formatting-mode indicator: blue plain red bold → green
708
- // italic orange underline. Innermost wrapper wins on
709
- // combinations (em inside strong shows green).
710
- "body { font-family: system-ui, sans-serif; font-size: 14px; caret-color: #1e88e5; }",
711
- "b, strong { caret-color: #d32f2f; }",
712
- "i, em { caret-color: #2e7d32; }",
713
- "u { caret-color: #ef6c00; }",
728
+ // Dark-blue native caret bar. caret-shape:block produced a
729
+ // column wider than the gap between letters AND caused the
730
+ // caret to "scoot back to its old position" after an arrow
731
+ // press (Chromium block-caret quirk with the arrow-key
732
+ // selection adjustment, Bob 2026-05-24). Plain bar is
733
+ // browser-default and behaves correctly with arrow keys;
734
+ // just darken the color so it stays visible.
735
+ "body { font-family: system-ui, sans-serif; font-size: 14px; caret-color: #0a2647; }",
714
736
  "blockquote { border-left: 3px solid #c0c8d0; margin: 0 0 0 4px; padding: 2px 0 2px 10px; color: #555; }",
715
737
  "div.reply { margin-top: 0.5em; }",
716
738
  "div.reply > p:first-child { color: #666; font-size: 0.95em; margin: 0 0 4px 0; }",