|
@@ -422,7 +422,7 @@ with a `BOOTSTRAP_ADMIN` audit row.
|
|
|
localStorage denial fallback).
|
|
localStorage denial fallback).
|
|
|
|
|
|
|
|
- [x] **Phase 17 — Hide native number spinners + custom slider popover
|
|
- [x] **Phase 17 — Hide native number spinners + custom slider popover
|
|
|
- for number inputs** (`b457896`, UX tweak `c07af1c`, hotfix `832b256`, rewrite `15b2d24`, blur-fix `f189ef7`). Three classes of number input —
|
|
|
|
|
|
|
+ for number inputs** (`b457896`, UX tweak `c07af1c`, hotfix `832b256`, rewrite `15b2d24`, blur-fix `f189ef7`, close-fix `8d79f96`). Three classes of number input —
|
|
|
day cells, RTB cells, task assignment cells — deal in half-day
|
|
day cells, RTB cells, task assignment cells — deal in half-day
|
|
|
increments (or 0.05 for RTB). Browsers rendered each as
|
|
increments (or 0.05 for RTB). Browsers rendered each as
|
|
|
`<input type="number">` with tiny native up/down spinner
|
|
`<input type="number">` with tiny native up/down spinner
|
|
@@ -525,6 +525,23 @@ with a `BOOTSTRAP_ADMIN` audit row.
|
|
|
the input but never landed on a registered "outside" target.
|
|
the input but never landed on a registered "outside" target.
|
|
|
Replaces the Tab-specific keydown handler, which is now a
|
|
Replaces the Tab-specific keydown handler, which is now a
|
|
|
subset of the generic focusout behaviour.
|
|
subset of the generic focusout behaviour.
|
|
|
|
|
+ **Close-fix `8d79f96`**: the "mouse leaves" and outside-click
|
|
|
|
|
+ paths were unreliable in real use — the dismissal required the
|
|
|
|
|
+ cursor to physically enter the popover rectangle at least once
|
|
|
|
|
+ (`popoverEntered` latch), so a user who clicked a cell and
|
|
|
|
|
+ moved the cursor anywhere the popover wasn't would see the
|
|
|
|
|
+ popup linger indefinitely. Replaced the latch with a
|
|
|
|
|
+ document-level `pointermove` tracker: while the popover is
|
|
|
|
|
+ open, if the cursor is over neither the bound input nor the
|
|
|
|
|
+ popover for more than 150 ms, close. A 250 ms initial grace
|
|
|
|
|
+ after `open()` covers the first few frames where the cursor
|
|
|
|
|
+ may briefly be in the gap. Outside-click close is now
|
|
|
|
|
+ registered in **both** bubble (`pointerdown`) and capture
|
|
|
|
|
+ (`click`, `{capture:true}`) phases via a shared handler so a
|
|
|
|
|
+ downstream stopPropagation can't strand the popup. The
|
|
|
|
|
+ viewport-exit `pointerleave` on `document` is also a close
|
|
|
|
|
+ trigger — the pointer heading for the browser chrome
|
|
|
|
|
+ shouldn't leave the popup behind.
|
|
|
|
|
|
|
|
### Upcoming
|
|
### Upcoming
|
|
|
|
|
|
|
@@ -608,6 +625,8 @@ before acting — nothing here is load-bearing once it grows stale.
|
|
|
## 13. Git history (as of this handoff)
|
|
## 13. Git history (as of this handoff)
|
|
|
|
|
|
|
|
```
|
|
```
|
|
|
|
|
+8d79f96 Fix: stepper popover closes on mouse-drift + outside-click (belt-and-braces)
|
|
|
|
|
+9de4bf2 HANDOFF.md: note stepper blur-close fix on Phase 17
|
|
|
f189ef7 Fix: stepper popover now closes when the bound input loses focus
|
|
f189ef7 Fix: stepper popover now closes when the bound input loses focus
|
|
|
27eea76 HANDOFF.md: note slider-only stepper rewrite on Phase 17
|
|
27eea76 HANDOFF.md: note slider-only stepper rewrite on Phase 17
|
|
|
15b2d24 Stepper popover: slider-only, click-to-open, close on leave-popup
|
|
15b2d24 Stepper popover: slider-only, click-to-open, close on leave-popup
|