Fix two defects in the floating note, one of which I committed broken

The previous commit did not parse, and I pushed it: check:sfc-parse exited 1 and
I read the exit code after the push instead of before it. The gate names this
exact cause in its own failure text — a backtick inside the shadow-CSS template
literal ends the literal, so everything after it is read as code. I had written
the word dark in backticks inside a CSS comment. The gate was right, it was
specific, and it was already telling me.

The second defect had no symptom a gate could show. The note is a direct child
of .legend-sheet-root, and .legend-sheet-root>* re-enables pointer events for
every direct child at the same specificity as the note's own rule and AFTER it,
so that rule won. The note would have swallowed a map drag across the full width
just above the sheet — the precise thing its comment claimed it must never do.
Stated now after the rule that would otherwise override it.

Both are the same shape: I wrote a claim in a comment and did not check the
claim was true of the code beneath it.
This commit is contained in:
Doxa Maps 2026-09-28 17:21:22 +00:00
parent 6970e7b63b
commit d8364d949a

View file

@ -32,10 +32,16 @@ useShadowStyles(`
pointer-events:none with the root — nothing here is tappable and it must never eat a map drag.
The scrim keeps it legible over an arbitrary basemap without becoming another panel. */
.approx-pin-note--floating{position:absolute;inset-inline:0;bottom:calc(var(--legend-sheet-h,0px) + 6px);z-index:1001;margin:0 10px !important;text-align:center;pointer-events:none;text-shadow:0 1px 2px rgba(255,255,255,0.85);}
/* The note's own text colour flips with `dark`, so the scrim has to flip with it: a white halo
behind light text is a smear, not legibility. Same reason the note takes `dark` at all. */
/* The note's own text colour flips with the dark prop, so the scrim has to flip with it: a white
halo behind light text is a smear, not legibility. (No backticks in this comment: the whole
block is a JS template literal and a backtick would end it — which is what it just did.) */
.approx-pin-note--floating-dark{text-shadow:0 1px 2px rgba(0,0,0,0.85);}
.legend-sheet-root>*{pointer-events:auto;}
/* ...except the floating note. The rule above re-enables pointer events for every direct child of
the root, at the same specificity as the note's own rule and AFTER it, so it was winning and the
note would have swallowed a map drag across the full width just above the sheet. It is text with
nothing tappable in it; stated here, after the rule that would otherwise override it. */
.legend-sheet-root>.approx-pin-note--floating{pointer-events:none;}
/* ── Attribution stays visible (driver bug 2026-09-16) ──
The sheet is a bottom overlay, so the engine's bottom-left logo / bottom-right