@bobfrankston/rmfmail 1.2.258 → 1.2.260

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.
@@ -87,7 +87,15 @@ export function initHarperLint(ed) {
87
87
  const ov = t.doc.createElement("div");
88
88
  ov.id = OVERLAY_ID;
89
89
  ov.style.cssText = "position:absolute;left:0;top:0;width:0;height:0;overflow:visible;pointer-events:none;z-index:5;";
90
- const win = t.doc.defaultView || window;
90
+ // Attach FIRST, then measure: the underlines are positioned relative to
91
+ // the overlay's containing block, so the overlay's own on-screen origin
92
+ // is the only correct zero point. (viewport rect + scrollX/Y assumed
93
+ // that block is always the initial containing block — true only while
94
+ // no ancestor is positioned. The spell overlay made the mirror-image
95
+ // assumption against the content body and drew a full line-height high
96
+ // — see spellcheck.ts, Bob 2026-08-13.)
97
+ host.appendChild(ov);
98
+ const ovRect = ov.getBoundingClientRect();
91
99
  for (const p of placed) {
92
100
  let rects = [];
93
101
  try {
@@ -103,11 +111,10 @@ export function initHarperLint(ed) {
103
111
  // Dotted blue-ish underline — distinct from the native
104
112
  // spellchecker's red squiggle. Hardcoded color: TinyMCE's
105
113
  // iframe can't see the page's CSS variables.
106
- u.style.cssText = `position:absolute;left:${r.left + win.scrollX}px;top:${r.bottom + win.scrollY - 2}px;width:${r.width}px;height:0;border-bottom:2px dotted rgba(66,133,244,0.9);pointer-events:none;`;
114
+ u.style.cssText = `position:absolute;left:${(r.left - ovRect.left).toFixed(1)}px;top:${(r.bottom - ovRect.top - 2).toFixed(1)}px;width:${r.width.toFixed(1)}px;height:0;border-bottom:2px dotted rgba(66,133,244,0.9);pointer-events:none;`;
107
115
  ov.appendChild(u);
108
116
  }
109
117
  }
110
- host.appendChild(ov);
111
118
  };
112
119
  const queuePaint = () => {
113
120
  if (paintQueued || disposed)
@@ -1 +1 @@
1
- {"version":3,"file":"harper-lint.js","sourceRoot":"","sources":["harper-lint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"harper-lint.js","sourceRoot":"","sources":["harper-lint.ts"],"names":[],"mappings":"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"}
@@ -105,7 +105,15 @@ export function initHarperLint(ed: MailxEditor): () => void {
105
105
  const ov = t.doc.createElement("div");
106
106
  ov.id = OVERLAY_ID;
107
107
  ov.style.cssText = "position:absolute;left:0;top:0;width:0;height:0;overflow:visible;pointer-events:none;z-index:5;";
108
- const win = t.doc.defaultView || window;
108
+ // Attach FIRST, then measure: the underlines are positioned relative to
109
+ // the overlay's containing block, so the overlay's own on-screen origin
110
+ // is the only correct zero point. (viewport rect + scrollX/Y assumed
111
+ // that block is always the initial containing block — true only while
112
+ // no ancestor is positioned. The spell overlay made the mirror-image
113
+ // assumption against the content body and drew a full line-height high
114
+ // — see spellcheck.ts, Bob 2026-08-13.)
115
+ host.appendChild(ov);
116
+ const ovRect = ov.getBoundingClientRect();
109
117
  for (const p of placed) {
110
118
  let rects: DOMRectList | DOMRect[] = [];
111
119
  try { rects = p.range.getClientRects(); } catch { continue; }
@@ -115,11 +123,10 @@ export function initHarperLint(ed: MailxEditor): () => void {
115
123
  // Dotted blue-ish underline — distinct from the native
116
124
  // spellchecker's red squiggle. Hardcoded color: TinyMCE's
117
125
  // iframe can't see the page's CSS variables.
118
- u.style.cssText = `position:absolute;left:${r.left + win.scrollX}px;top:${r.bottom + win.scrollY - 2}px;width:${r.width}px;height:0;border-bottom:2px dotted rgba(66,133,244,0.9);pointer-events:none;`;
126
+ u.style.cssText = `position:absolute;left:${(r.left - ovRect.left).toFixed(1)}px;top:${(r.bottom - ovRect.top - 2).toFixed(1)}px;width:${r.width.toFixed(1)}px;height:0;border-bottom:2px dotted rgba(66,133,244,0.9);pointer-events:none;`;
119
127
  ov.appendChild(u);
120
128
  }
121
129
  }
122
- host.appendChild(ov);
123
130
  };
124
131
 
125
132
  const queuePaint = (): void => {
@@ -122,9 +122,20 @@ export function wireSpellcheck(editor) {
122
122
  return NodeFilter.FILTER_ACCEPT;
123
123
  },
124
124
  });
125
- const bodyRect = body.getBoundingClientRect();
126
- const sx = body.scrollLeft;
127
- const sy = body.scrollTop;
125
+ // Measure against the OVERLAY's own origin, not the body's. The
126
+ // squiggles are absolutely positioned children of the overlay, so
127
+ // their coordinates resolve against the overlay's containing block —
128
+ // and TinyMCE's content body is `position: static` with a 16px
129
+ // margin, so that block is the initial containing block at (0,0),
130
+ // not the body box at (16,20). Subtracting bodyRect drew every
131
+ // squiggle 20px high and 16px left of its word — a full line-height
132
+ // off, so it appeared above the previous line (Bob 2026-08-13).
133
+ // The overlay sits at the origin of whatever the containing block
134
+ // turns out to be, so its rect is the right zero point no matter how
135
+ // the content body is styled; and since both rects are read in the
136
+ // same frame, the difference needs no scroll correction (the overlay
137
+ // scrolls with the content it annotates).
138
+ const ovRect = ov.getBoundingClientRect();
128
139
  const frag = doc.createDocumentFragment();
129
140
  // A word starts with a letter, then letters / apostrophes. NO hyphen:
130
141
  // hyphenated compounds are spell-checked one part at a time (the
@@ -158,14 +169,13 @@ export function wireSpellcheck(editor) {
158
169
  if (rect.width < 1)
159
170
  continue;
160
171
  const sq = doc.createElement("div");
161
- // Content-space coordinates: the overlay is an absolutely
162
- // positioned child of the (scrolling) body, so a child placed
163
- // at content-space (x,y) tracks the word through scroll with
164
- // no per-scroll recompute.
172
+ // Overlay-space coordinates: the overlay tracks the content
173
+ // through scroll, so a child placed at (x,y) relative to it
174
+ // stays under its word with no per-scroll recompute.
165
175
  sq.style.cssText =
166
176
  "position:absolute;" +
167
- `left:${(rect.left - bodyRect.left + sx).toFixed(1)}px;` +
168
- `top:${(rect.bottom - bodyRect.top + sy - 3).toFixed(1)}px;` +
177
+ `left:${(rect.left - ovRect.left).toFixed(1)}px;` +
178
+ `top:${(rect.bottom - ovRect.top - 3).toFixed(1)}px;` +
169
179
  `width:${rect.width.toFixed(1)}px;height:3px;` +
170
180
  `background:${WAVE} repeat-x left bottom;`;
171
181
  frag.appendChild(sq);
@@ -1 +1 @@
1
- {"version":3,"file":"spellcheck.js","sourceRoot":"","sources":["spellcheck.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spellcheck.js","sourceRoot":"","sources":["spellcheck.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,EACH,QAAQ,EAAE,aAAa,EAAE,mBAAmB,EAAE,mBAAmB,EACjE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAC1D,YAAY,EAAE,SAAS,GAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,yEAAyE;AACzE,wEAAwE;AACxE,2EAA2E;AAC3E,iBAAiB;AACjB,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAE7B,wEAAwE;AACxE,oEAAoE;AACpE,MAAM,IAAI,GAAG,2BAA2B,kBAAkB,CACtD,+DAA+D;IAC/D,mFAAmF,CACtF,IAAI,CAAC;AAEN,MAAM,UAAU,GAAG,qBAAqB,CAAC;AAEzC,uEAAuE;AACvE,MAAM,UAAU,cAAc,CAAC,MAAW;IACtC,IAAK,MAAc,CAAC,iBAAiB;QAAE,OAAO;IAC7C,MAAc,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAEzC,IAAI,EAAE,GAA0B,IAAI,CAAC;IAErC,wEAAwE;IACxE,2EAA2E;IAC3E,+DAA+D;IAC/D,MAAM,UAAU,GAAG,GAAS,EAAE;QAC1B,IAAI,CAAC;YACD,MAAM,IAAI,GAAuB,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YACpD,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,OAAO,EAAE,CAAC;gBACtD,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YAC7C,CAAC;QACL,CAAC;QAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC;IACtC,CAAC,CAAC;IACF,UAAU,EAAE,CAAC;IACb,IAAI,CAAC;QACD,MAAM,IAAI,GAAuB,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QACpD,IAAI,IAAI;YAAE,IAAI,gBAAgB,CAAC,UAAU,CAAC;iBACrC,OAAO,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC;IAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;IAEjB,wEAAwE;IACxE,8DAA8D;IAC9D,MAAM,aAAa,GAAG,GAAuB,EAAE;QAC3C,MAAM,IAAI,GAAuB,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QACpD,MAAM,GAAG,GAAoB,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QAC/C,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QAC/B,IAAI,EAAE,GAAG,GAAG,CAAC,cAAc,CAAC,UAAU,CAAuB,CAAC;QAC9D,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAChC,EAAE,EAAE,MAAM,EAAE,CAAC;YACb,EAAE,GAAG,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC9B,EAAE,CAAC,EAAE,GAAG,UAAU,CAAC;YACnB,EAAE,CAAC,YAAY,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;YAC5C,EAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;YACzC,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,sEAAsE,CAAC;YAC1F,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC,CAAC;IAEF,qEAAqE;IACrE,sEAAsE;IACtE,sDAAsD;IACtD,MAAM,IAAI,GAAG,GAAS,EAAE;QACpB,IAAI,CAAC,EAAE;YAAE,OAAO;QAChB,MAAM,IAAI,GAAuB,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QACpD,MAAM,GAAG,GAAoB,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QAC/C,MAAM,EAAE,GAAG,aAAa,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE;YAAE,OAAO;QAEjC,MAAM,MAAM,GAAG,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,SAAS,EAAE;YAC5D,UAAU,CAAC,IAAU;gBACjB,6DAA6D;gBAC7D,8CAA8C;gBAC9C,IAAI,CAAC,GAAgB,IAAI,CAAC,UAAU,CAAC;gBACrC,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;oBACrB,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;wBACnC,MAAM,EAAE,GAAG,CAAY,CAAC;wBACxB,IAAI,EAAE,CAAC,EAAE,KAAK,UAAU;4BAAE,OAAO,UAAU,CAAC,aAAa,CAAC;wBAC1D,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC;4BAAE,OAAO,UAAU,CAAC,aAAa,CAAC;oBACnE,CAAC;oBACD,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;gBACrB,CAAC;gBACD,OAAO,UAAU,CAAC,aAAa,CAAC;YACpC,CAAC;SACJ,CAAC,CAAC;QAEH,gEAAgE;QAChE,kEAAkE;QAClE,qEAAqE;QACrE,+DAA+D;QAC/D,kEAAkE;QAClE,+DAA+D;QAC/D,oEAAoE;QACpE,gEAAgE;QAChE,kEAAkE;QAClE,qEAAqE;QACrE,mEAAmE;QACnE,qEAAqE;QACrE,0CAA0C;QAC1C,MAAM,MAAM,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,sBAAsB,EAAE,CAAC;QAC1C,sEAAsE;QACtE,iEAAiE;QACjE,iEAAiE;QACjE,MAAM,MAAM,GAAG,qBAAqB,CAAC;QAErC,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,EAAiB,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,EAAiB,EAAE,CAAC;YACrF,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;YACpB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,YAAY;gBAAE,SAAS;YAClD,gEAAgE;YAChE,6DAA6D;YAC7D,+DAA+D;YAC/D,4CAA4C;YAC5C,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;YACrB,IAAI,CAAyB,CAAC;YAC9B,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBAC7B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACf,IAAI,CAAC,CAAC,MAAM,GAAG,YAAY;oBAAE,SAAS;gBACtC,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;oBAAE,SAAS;gBAC7D,IAAI,aAAa,CAAC,CAAC,EAAE,EAAE,CAAC;oBAAE,SAAS;gBACnC,MAAM,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;gBAC5B,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;gBACvB,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;gBAChC,MAAM,KAAK,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC;gBACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACpC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBACtB,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC;wBAAE,SAAS;oBAC7B,MAAM,EAAE,GAAG,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBACpC,4DAA4D;oBAC5D,4DAA4D;oBAC5D,qDAAqD;oBACrD,EAAE,CAAC,KAAK,CAAC,OAAO;wBACZ,oBAAoB;4BACpB,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;4BACjD,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;4BACrD,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB;4BAC9C,cAAc,IAAI,wBAAwB,CAAC;oBAC/C,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBACzB,CAAC;YACL,CAAC;QACL,CAAC;QACD,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC;QACpB,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC,CAAC;IAEF,IAAI,SAAS,GAAyC,IAAI,CAAC;IAC3D,MAAM,YAAY,GAAG,GAAS,EAAE;QAC5B,IAAI,CAAC,EAAE;YAAE,OAAO;QAChB,IAAI,SAAS;YAAE,YAAY,CAAC,SAAS,CAAC,CAAC;QACvC,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;IAClF,CAAC,CAAC;IAEF,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,MAAsB,EAAE,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;SAChE,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,CAAC,CAAC,CAAC,CAAC;IAE3E,0EAA0E;IAC1E,4EAA4E;IAC5E,yEAAyE;IACzE,MAAM,CAAC,EAAE,CAAC,wCAAwC,EAAE,YAAY,CAAC,CAAC;IAClE,kDAAkD;IAClD,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IACxC,IAAI,CAAC;QACD,MAAM,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAA6B,CAAC,CAAC;IAC5G,CAAC;IAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;IAEjB,wEAAwE;IACxE,yEAAyE;IACzE,wEAAwE;IACxE,kEAAkE;IAClE,MAAM,KAAK,GAAG,CAAC,IAAU,EAAE,KAAa,EAAE,GAAW,EAAE,WAAmB,EAAQ,EAAE;QAChF,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YAChC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC5B,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACxB,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/B,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACL,qDAAqD;YACrD,IAAI,CAAC;gBACD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;gBAChC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC5B,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBACxB,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;YACtD,CAAC;YAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;QACD,YAAY,EAAE,CAAC;IACnB,CAAC,CAAC;IAEF,2EAA2E;IAC3E,gDAAgD;IAChD,MAAM,SAAS,GAAa,MAAM,CAAC,MAAM,EAAE,CAAC;IAC5C,SAAS,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,EAAS,EAAE,EAAE;QACpD,MAAM,CAAC,GAAG,EAAgB,CAAC;QAC3B,MAAM,IAAI,GAAuB,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QACpD,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE;YAAE,OAAO;QACzB,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,CAAC,GAAG;YAAE,OAAO,CAAuB,oCAAoC;QAC5E,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;YAAE,OAAO,CAAC,8BAA8B;QACvE,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;QAEpB,MAAM,IAAI,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAe,IAAI,CAAC,MAAM,KAAK,CAAC;YACvC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,GAAG,EAAE,GAAS,CAAC,EAAE,CAAC;YAC1D,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACb,KAAK,EAAE,CAAC;gBACR,UAAU,EAAE,IAAI;gBAChB,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;aACvD,CAAC,CAAC,CAAC;QACR,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAS,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpE,KAAK,CAAC,IAAI,CAAC;YACP,KAAK,EAAE,QAAQ,GAAG,CAAC,IAAI,iBAAiB;YACxC,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE;gBAAE,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;SACzE,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC;YACP,KAAK,EAAE,uBAAuB;YAC9B,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE;gBAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;SAC9D,CAAC,CAAC;QACH,uEAAuE;QACvE,uEAAuE;QACvE,kEAAkE;QAClE,wEAAwE;QACxE,mEAAmE;QACnE,+CAA+C;QAC/C,KAAK,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE;YAC1C,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,MAAM,CAAC,mBAAmB,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAAC,CAAC,CAAC,CAAC;YACzI,UAAU,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;gBAAC,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;SACxG,CAAC,CAAC,CAAC;QAEJ,qEAAqE;QACrE,4DAA4D;QAC5D,MAAM,QAAQ,GAAG,MAAM,CAAC,aAA8C,CAAC;QACvE,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAc,CAAC;QAC5F,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IACnG,CAAC,EAAE,IAAI,CAAC,CAAC;AACb,CAAC"}
@@ -129,9 +129,20 @@ export function wireSpellcheck(editor: any): void {
129
129
  },
130
130
  });
131
131
 
132
- const bodyRect = body.getBoundingClientRect();
133
- const sx = body.scrollLeft;
134
- const sy = body.scrollTop;
132
+ // Measure against the OVERLAY's own origin, not the body's. The
133
+ // squiggles are absolutely positioned children of the overlay, so
134
+ // their coordinates resolve against the overlay's containing block —
135
+ // and TinyMCE's content body is `position: static` with a 16px
136
+ // margin, so that block is the initial containing block at (0,0),
137
+ // not the body box at (16,20). Subtracting bodyRect drew every
138
+ // squiggle 20px high and 16px left of its word — a full line-height
139
+ // off, so it appeared above the previous line (Bob 2026-08-13).
140
+ // The overlay sits at the origin of whatever the containing block
141
+ // turns out to be, so its rect is the right zero point no matter how
142
+ // the content body is styled; and since both rects are read in the
143
+ // same frame, the difference needs no scroll correction (the overlay
144
+ // scrolls with the content it annotates).
145
+ const ovRect = ov.getBoundingClientRect();
135
146
  const frag = doc.createDocumentFragment();
136
147
  // A word starts with a letter, then letters / apostrophes. NO hyphen:
137
148
  // hyphenated compounds are spell-checked one part at a time (the
@@ -161,14 +172,13 @@ export function wireSpellcheck(editor: any): void {
161
172
  const rect = rects[i];
162
173
  if (rect.width < 1) continue;
163
174
  const sq = doc.createElement("div");
164
- // Content-space coordinates: the overlay is an absolutely
165
- // positioned child of the (scrolling) body, so a child placed
166
- // at content-space (x,y) tracks the word through scroll with
167
- // no per-scroll recompute.
175
+ // Overlay-space coordinates: the overlay tracks the content
176
+ // through scroll, so a child placed at (x,y) relative to it
177
+ // stays under its word with no per-scroll recompute.
168
178
  sq.style.cssText =
169
179
  "position:absolute;" +
170
- `left:${(rect.left - bodyRect.left + sx).toFixed(1)}px;` +
171
- `top:${(rect.bottom - bodyRect.top + sy - 3).toFixed(1)}px;` +
180
+ `left:${(rect.left - ovRect.left).toFixed(1)}px;` +
181
+ `top:${(rect.bottom - ovRect.top - 3).toFixed(1)}px;` +
172
182
  `width:${rect.width.toFixed(1)}px;height:3px;` +
173
183
  `background:${WAVE} repeat-x left bottom;`;
174
184
  frag.appendChild(sq);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bobfrankston/mailx-client",
3
- "version": "1.0.33",
3
+ "version": "1.0.35",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "scripts": {
@@ -1999,6 +1999,11 @@ body.calendar-sidebar-on .calendar-sidebar { display: flex; }
1999
1999
  .mv-from { font-weight: 600; }
2000
2000
  .mv-to { color: var(--color-text-muted); }
2001
2001
  .mv-subject { font-size: var(--font-size-lg); font-weight: 600; margin-top: var(--gap-xs); }
2002
+ /* Search matches in the subject. Same treatment as the body (which paints
2003
+ its own copy of this rule inside the preview iframe — the iframe can't
2004
+ see this sheet). Literal colors, not tokens: the pair has to stay
2005
+ legible in both themes on its own. */
2006
+ ::highlight(mailx-find) { background: #ffd54a; color: #1a1a2e; }
2002
2007
  .mv-date { color: var(--color-text-muted); font-size: var(--font-size-sm); }
2003
2008
  .mv-unsubscribe {
2004
2009
  font-size: var(--font-size-sm);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bobfrankston/rmfmail",
3
- "version": "1.2.258",
3
+ "version": "1.2.260",
4
4
  "description": "Local-first email client with IMAP sync and standalone native app",
5
5
  "type": "module",
6
6
  "main": "bin/mailx.js",
@@ -37,7 +37,7 @@
37
37
  "@bobfrankston/mailx-imap": "^0.1.153",
38
38
  "@bobfrankston/mailx-store-web": "^0.1.80",
39
39
  "@bobfrankston/mailx-sync": "^0.1.29",
40
- "@bobfrankston/miscinfo": "^1.0.17",
40
+ "@bobfrankston/miscinfo": "^1.0.19",
41
41
  "@bobfrankston/msger": "^0.1.425",
42
42
  "@bobfrankston/node-tcp-transport": "^0.1.10",
43
43
  "@bobfrankston/oauthsupport": "^1.0.34",
@@ -117,7 +117,7 @@
117
117
  "@bobfrankston/mailx-imap": "^0.1.153",
118
118
  "@bobfrankston/mailx-store-web": "^0.1.80",
119
119
  "@bobfrankston/mailx-sync": "^0.1.29",
120
- "@bobfrankston/miscinfo": "^1.0.17",
120
+ "@bobfrankston/miscinfo": "^1.0.19",
121
121
  "@bobfrankston/msger": "^0.1.425",
122
122
  "@bobfrankston/node-tcp-transport": "^0.1.10",
123
123
  "@bobfrankston/oauthsupport": "^1.0.34",