- Ya
- 13 Agosti 2026, 02:35 UTC
- Mwandishi
- kamo
- Ahadi ya
- 9e6728f
Six additions to the period graph and the nav clock. DELETE removes the focused pill. Backspace too, because on a Mac the key labelled "delete" IS Backspace and offering only Delete means the shortcut does not exist on a laptop. It voids both of the span's punches, so deleting a meal leaves the work either side of it continuous — which is what it means for the meal not to have happened. Staged like every other edit; nothing is written until save. A GUIDELINE follows the pointer across every row, with the minute it is on in a chip at the top. Its job is to say where a click would land, and that is the same minute on every day in the period. Measured off a track element rather than the container, whose box includes the day-name and total columns — using it would report a minute out by their width, which the member cannot see RIGHT-CLICK anywhere on a day opens a menu that drops a 15-minute block of worked time, meal or break where the pointer was. Two punches, not one: a span is a pair, and a lone opener draws a pill running to midnight. Note that a meal block OPENS with MEAL_OUT — a meal is recorded as clocking out of work and back in, and getting that pair backwards inverts the day. MAGNETS: an edge dragged within five minutes of another punch snaps onto its exact minute, deliberately bypassing the one-minute gap the clamp keeps. That gap stops an edge crossing its neighbour; here the whole intent is for the two to meet, and an edge that can only land a minute short can never close a gap. Five minutes at a fortnight's zoom is a couple of pixels, so without a magnet "make this break end when the next one starts" is a task nobody can complete with a pointer. And when the magnet lands two spans of the SAME kind edge to edge, they MERGE in the same gesture: the clock-out and the clock-in that now share a minute stop being true, and both are voided. Different kinds never merge — a shift ending exactly when a meal begins is not one span, it is the two things that actually happened. This needed the sort in toGraphPunches to tie-break on the original minute: two coincident edges must keep their chronological order or pairing swaps them, produces a zero-width span and a stray opener, and the pill vanishes at the moment the two meet. THREE PILL COLOURS, and distinct by more than hue — work solid in the brand primary, meal banded in the HRS amber, break finely striped in violet. Colour alone fails the ~8% of men with a red-green deficiency and fails everyone on a projector; someone should be able to tell an unpaid meal from a paid break in a black-and-white printout. THE NAV CLOCK ASKS WHICH PUNCH. "Clock out" is three different acts, and what is on offer depends on where the member stands: working, they may end the shift, go to a meal or take a break; on a meal or a break, coming back is the default and ending the shift is still there because people do leave straight from lunch. Collapsing that into one button is how somebody ends their day when they meant to go to lunch — an unpaid hour they do not get back and a missing-punch exception on the way. The card re-skins to the selected action in the same three colours the graph uses, says how long they have been in their current state, and the nav dot now reports which of the three states it is. An absent `state` from the server is read as "the boolean is all we have", not as OFF: reading it as OFF would offer "clock in" to somebody mid-shift for the length of the deploy window.