Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Access Control Changes Monitoring Block for React Aria

Twelve role changes grouped by day, each drawn on a four-rung ladder from Viewer to Owner with an up or down arrow, the approver or no approval on record, an All / Escalations / Without approval filter and a Reviewed checkbox with a running count.

Framework
UI library

Preview

Preview width

Installation

Part of Pro
Pro unlocks the code and one-line install of every Pro button and text effect, plus the MCP for your AI editor.
Have Pro already? Sign in to open it.Opens here as soon as you're Pro.

Overview

Review who was given more access, and who approved it, with this change feed for React with React Aria. It is Ladderkey, an access-governance tool. In a hairline frame with a plus mark on each corner, twelve role changes since 10 Oct are grouped under sticky day headings. Each row names who made the change and whom it touched, draws the four rungs (Viewer, Editor, Admin, Owner) as short bars with the old rung hollow and the new one solid, says the move in words with an up arrow for an escalation or a down arrow for a drop, and gives the time and the approver or "No approval on record" in heavier type. A toggle group narrows the feed to All, Escalations or Without approval, each with its count; a Reviewed checkbox per row feeds the "5 of 12 reviewed" status. The feed is a fixed-height region, so filtering never moves the panel. Guides draw the frame and its bands; the entrance is CSS only.

FAQ

How do I load my own changes?

Edit CHANGES: each is built with change(id, day, time, by, who, from, to, approver), where the rungs are indexes into RUNGS and an empty approver means no approval on record. Escalations, drops, the filter counts and the header sentence are worked out from the rung numbers and the approvers.

What does the ladder show?

The four bars are the four roles in order of power. The hollow bar is where the person was, the solid bar where they are now; the words and the arrow say the same thing, so the drawing is decoration for sighted readers. On a phone the bars hide and the arrow and the two role names stay.

What does Reviewed do?

It is a local tick per change and the status counts them. Ticks stay in the tab; nothing is saved. In your app write each tick to your review log with the reviewer and the time.

How does the filter keep the panel still?

The feed lives in a region of fixed height that scrolls inside itself, and a day with no matching change hides its heading. Choosing a filter with no match shows an empty state in the same space.

What stays local in the demo?

The people, roles and approvals are invented and nothing changes anyone's access. The filter and the ticks only change state in the tab.