Files
sure/test
AlexNovRS7andClaude Opus 5 adf44ddf0d fix(reports): stop Safari swallowing every click on the reports page (#3365)
* fix(reports): stop Safari swallowing every click on the reports page

The category rows in the reports breakdown use a stretched link whose
`before:absolute before:inset-0` overlay was anchored to the parent
`<tr class="relative">`.

`position: relative` on a table row is left undefined by CSS 2.1 §9.3.1 and
WebKit does not implement it, so in Safari the row never becomes a containing
block. The overlay resolves against a far larger positioned ancestor instead,
blankets the reports page, and intercepts every click — including clicks on
the period picker popover — navigating to that category's transactions
drill-down. Chrome and Firefox do establish the containing block, which is
why this is invisible outside WebKit.

Anchor the overlay to the flex wrapper inside the cell instead. A `<div>` is
an unambiguous containing block in every engine. The click target narrows
from the whole row to the category cell, which is still the icon, the name
and the entry count.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* test(reports): assert the stretched overlay on the cell wrapper, not the row

The regression test still required `tr.relative`, which the previous commit
removes, so the suite would have failed. Assert instead that the stretched
link sits inside `td div.relative` — the containing block the overlay is now
anchored to.

Verified the selector against the rendered markup: it matches the clickable
row once, does not match a non-clickable row, and the old selector matches
nothing under the new markup.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-09-04 06:41:54 +02:00
..