Repository navigation
web: the manager's view drills in, receiving says what it did, and sign out in the person's menu - #151
Merged
Conversation
… walk note) The dashboard's KPI cards draw the boxed icon and a faded enlarged copy behind it. This leg wants one icon per card and fails on today's code, which draws two. Signed-off-by: colton <colton@futurebuild.ai>
The faded enlarged copy behind the boxed icon is dropped, so each card on the dashboard draws one icon. Signed-off-by: colton <colton@futurebuild.ai>
… note) Clicking a card does nothing today. These legs want each KPI card a named link to its own list (today's till, the orders list, the dispatch board, AR Aging), each Top Customers row a named link to the customer's account, each Inventory Alerts row a named link to the product's stock, and each Recent Activity row named for a screen reader. They fail on today's code: the cards and the customer and alert rows have no link at all, and the activity rows have no accessible name. Signed-off-by: colton <colton@futurebuild.ai>
Each KPI card is a link to its own list at the yard the dashboard shows: Today's Revenue opens the day's till, Active Orders the orders list, Pending Dispatch the dispatch board, Outstanding AR the AR Aging page. Each Top Customers row opens the customer's account, each Inventory Alerts row the product's stock, each Recent Activity row its order. Cards and rows are real links with an accessible name and a visible focus ring, keeping the hover state the cards already had. Signed-off-by: colton <colton@futurebuild.ai>
…r (red for the walk note) The picker offered the bins in reverse (KEL-D first). This leg serves the locations reversed and wants them listed by their path, first bin first; it fails on today's code, which keeps the wire's order. Signed-off-by: colton <colton@futurebuild.ai>
The receive form sorted nothing, so the bins came in the wire's order (KEL-D first on the walk). The picker's data is now sorted by the bin's path, first bin first. Signed-off-by: colton <colton@futurebuild.ai>
…or the walk note) After Confirm Receipt the order moves to RECEIVED but nothing on the page says what was received. These legs want the page to say in words what came in, how much of each line, into which bin, and that the order is now received, and they fail on today's code. Signed-off-by: colton <colton@futurebuild.ai>
Confirm Receipt used to move the order to RECEIVED with only a toast that vanished. The page now carries the receipt in words: what came in, how much of each line, into which bin, and that the purchase order is now received. A reloaded received order lists each line's received count; the bins are named for the receipt the page just confirmed, as the wire does not carry a line's bin. Signed-off-by: colton <colton@futurebuild.ai>
… note) The desk's header has no sign out; only the portal layout has one. These legs want the name chip to open a real menu with the person's name and role and Sign out, signing out to clear the session custody and leave the desk for the front door, with arrows moving, Escape closing and returning the focus, and a click outside closing. They fail on today's code: the header has no menu at all. Signed-off-by: colton <colton@futurebuild.ai>
The desk's header had no sign out; only the portal layout had one. The signed in person's name chip now opens a menu with their name and role and Sign out, which clears the shared auth custody and leaves the desk for the front door. The menu is a real menu: the chip carries aria-haspopup and aria-expanded, arrows move between items, Escape closes and returns the focus to the chip, and a click outside closes. Signed-off-by: colton <colton@futurebuild.ai>
The chip's accessible name came from its content, so a signed in name like a demo persona's became part of it and page queries that match a button by a word in the person's name (the Payments tab on the account page, under the persona Playwright Payments) hit the chip instead. The chip now announces itself as Account menu; the person's name and role stay visible on the chip and inside the menu. Signed-off-by: colton <colton@futurebuild.ai>
… 151 review) Opened by click, Enter or Space, the menu kept the focus on the chip, so Escape did nothing and tabbing away left it open. These legs want the focus moved into the menu on open, Escape handled on the chip as well as the menu, the menu closed when the focus leaves it, and ArrowUp opening on the last item. They fail on today's head. (jsdom fires no activation behavior for a synthetic Enter or Space, so that path is proven through the click they cause.) Signed-off-by: colton <colton@futurebuild.ai>
Opening the menu by click, Enter or Space now moves the focus into the menu's first item, as ArrowDown already did; ArrowUp opens on the last item. Escape is handled on the chip as well as in the menu, closing the menu with the focus on the chip. And the menu closes when the focus leaves the chip and menu for good, so a Tab away never leaves it open. Signed-off-by: colton <colton@futurebuild.ai>
…PR 151 review) The card counts exactly the confirmed orders (the wire contract admits no other processing state), but it opened the list on All, so the count and the list disagreed on arrival. These legs want the card to link to /orders?status=confirmed and the list to read a known status from the address on load. They fail on today's head: the card links to /orders and the list ignores the query. Signed-off-by: colton <colton@futurebuild.ai>
The card's count is exactly the confirmed orders (the wire contract admits no other processing state), so the card now links to /orders?status=confirmed and the orders list reads a known status from the address on load, opening on that tab with the server asked for that status. An unknown value opens All. Signed-off-by: colton <colton@futurebuild.ai>
Nine legs fail on today's head: the KPI card and the alert rows carry aria-labels that hide their figures from a screen reader (the action belongs in visually hidden text with the visible content kept in the name); two Recent Activity rows for one customer share one name; a click on a Top Customers row's counts does nothing; and the account menu holds a non item child (the name and role block). The bins leg now also proves the numeric order (BIN-2 before BIN-10) and the receipt leg pins its exact phrases; those two pass already and pin existing behavior. The feed's fixture date becomes a neutral value. Signed-off-by: colton <colton@futurebuild.ai>
The KPI card, the inventory alert rows and the recent activity rows drop their aria-labels: the label replaced the visible content as the accessible name and hid the figure or the stock level. The action now rides along as visually hidden text, so the name keeps the content and two orders of one customer read differently. A click anywhere on a Top Customers row follows the row's link. The account menu's name and role block moves out of role="menu", so the menu owns only its item. Two red-committed assertions were corrected with the fix: the card renders the dollar sign and the amount in separate spans, so the figure asserts on the amount, not a joined "00.00". Signed-off-by: colton <colton@futurebuild.ai>
Brings PR 148 (the counter's tender choice) into the branch ahead of the round 2 fixes. Signed-off-by: colton <colton@futurebuild.ai>
… the round 2 notes) Choosing another tab left ?status=confirmed in the address, so a reload reopens Confirmed. This leg chooses All and wants the query dropped with replaceState, not a new history entry; it fails on today's head, which never touches the address. Signed-off-by: colton <colton@futurebuild.ai>
Choosing a tab now replaces the address with /orders?status=<tab> (or /orders for All), so a reload or a copied link reopens what is on screen. A replace, not a new history entry: Back still leaves the page. Signed-off-by: colton <colton@futurebuild.ai>
…red for the round 2 notes) A Ctrl, Cmd or middle click on a row outside its link navigated in place, where the link itself would open a new tab. This leg wants window.open with the account's address and no in-place navigation; it fails on today's head. Signed-off-by: colton <colton@futurebuild.ai>
A Ctrl or Cmd click, or a middle click (auxclick), on a row outside its link now opens the customer's account in a new tab, as the link itself would; a plain click still navigates in place. Signed-off-by: colton <colton@futurebuild.ai>
Brings Gable light (PR 147) and the dashboard's day (PR 157) into the branch. Light turned the dashboard's and the header's colour classes into tokens and put a mode control in the header: its control stays where it put it, and this branch's person's menu, drill in links and receipt block sit on top. Signed-off-by: colton <colton@futurebuild.ai>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The manager's view drills in, receiving says what it did, sign out in the person's menu
The G1 walk's manager's-view and receiving notes, fixed together. Web only; no Go moved.
What changed
KPICard.tsdrew every KPI card's icon twice: the boxed icon and a faded, enlarged copy behind it. The faded copy is gone; the boxed icon stays./, the same way the door's tiles open the desk). A real menu:aria-haspopup="menu",aria-expanded,role="menu"andmenuitem, arrows move, Escape closes and returns the focus, a click outside closes.Where each card and row goes (N19)
/reports/daily-till(the day's till)/orders?status=confirmed(the orders list on its Confirmed tab)/dispatch(the dispatch board)/reports/ar-aging(AR Aging)/accounts/<customer id>/inventory/<product id>/orders/<order id>Tests, red first
Each item's Vitest leg was committed alone and failing before its fix:
75c744aethe KPI card draws its icon once (red: two icons drawn), green at1fa9ea7313b623a5the dashboard's cards and rows drill in (red: no links, no accessible names), green ata70ee2e5265252e9the receive bins list in path order (red: wire order kept), green at6d620cc55259b975the received purchase order says what was received (red: nothing on the page), green atfcb54bb99f8406c2the header's person menu holds Sign out (red: no menu at all), green at5e6b7185Gates
From
web/:npm ci, every workspace's typecheck (clean),npx eslint .(clean),npm test(101 files, 1137 tests, all passing),npm run buildlast (exit 0, zeroerror TSlines).bash scripts/check-shape.shOK. The pre-push block ran clean: only the configured identity, every commit signed off, no credential shapes, no private names.PR 147 (Gable light) is not yet on
refactor/v1, so no merge was needed and nobg-plate/bg-backdropclasses were used; everything here uses the existing tokens.Written by Kimi K3 for the Gable lead.