shadcn.io is not affiliated with official shadcn/ui
Service Dependency Map Changelog Block for React
A three-column graph of one service's blast radius: what it depends on, the chosen service in the middle, what uses it, joined by curves in one SVG, with a warning glyph on each edge a release breaks and a toggle group to pick the service.
Installation
Overview
A dependency map for React with Base UI, written for Tangleless, a fictional service-ownership tool. A toggle group at the end of the header picks the service (Orders, Billing, Search). A framed figure draws three columns: "Depends on" at the start, the chosen service in the middle as a dark chip with its next version, and "Used by" at the end, joined by curves in one SVG. Which services sit in each column comes from a typed adjacency; the services that break when the release ships are marked on their edge with a warning glyph, say what breaks in words ("Breaks: reads legacyTotal") and are counted in the figure's caption ("3 downstream services affected"). The figure always has room for four services a side, so choosing another service redraws the curves without moving the page. On a phone and a tablet the SVG is gone and the three columns become three labelled lists. It's built from Toggle Group, Guides and a custom SVG, with CSS transitions for the entrance and your theme's tokens for every colour. For release notes of platform teams, ownership dashboards and "who does this break" explainers. The services and their dependencies are example data.
FAQ
How do I change the services and their edges?
Edit FOCI at the top of the file. Each entry is a service you can pick: its name, the next version, a change clause for the caption, and two typed lists, dependsOn and usedBy, of links (id, a note, and breaking for an edge the release breaks). The curves, the glyphs, the column counts and the "3 downstream services affected" line are all computed from those lists. A side can hold up to four services; raise SLOTS for more.
How is a breaking edge shown without colour?
Three ways, none of them a colour: its curve is heavier, a round chip with a warning glyph sits on it, and the service's own box has a foreground outline, a glyph and the words "Breaks: …" in its note. Screen readers hear "Breaking change" on those services, and the caption says how many there are.
Is the SVG accessible?
The SVG and the chips are decoration, hidden from assistive technology: every fact in the drawing is in the three lists as text, in reading order (Depends on, Changing, Used by). The figure keeps its left-to-right layout in a right-to-left page, since the columns are a picture of direction, while text inside the boxes follows the page.
How does the service toggle work?
It is a single-choice Toggle Group: the arrow keys move between Orders, Billing and Search and Space or Enter picks one; pressing the chosen item again does nothing, so a service is always shown. The caption is a polite live region, so the new count is read when you switch.
Related
- Pro
Dependency Graph Changelog
Packages and versionsAn app's dependency tree with a three-way filter (All, Outdated, Vulnerable): each row shows a package, the version it has and the one it could have, an Update available badge or a vulnerability count, and a band of three counts sits above.
- $Pro
Breaking Changes Changelog
APIs and integrationsA framed table of four breaking calls: the old call in a del row, the new in an ins row, who it affects and the day to migrate by, with a codemod command in a terminal strip and a Copy button.
- Pro
API Changes Changelog
APIs and integrationsA band of ruled rows listing changed API endpoints, each with its method, path, one line on what changed, a kind (Added, Changed, Removed) and its version, filtered by HTTP method with a toggle group that sums up what is showing.
- Pro
Monorepo Packages Changelog
Packages and versionsOne release as a workspace tree: the facts at the start, and past a divider a tree of packages with each version bump, its kind as an icon and a word, and the packages that were bumped only because something they depend on changed.
- Pro
Third-Party Integrations Changelog
APIs and integrationsAn API-version compatibility table that ends the block: a button group picks the API version you run, and each connector shows Works, Needs update or Retired on it and on the latest version.
- Pro
Release Pins Service Health Dashboard
Incidents and uptimeA health board for a hosting product: four service lanes of thirty daily cells, with a row of release pins above them that open a card of what shipped, and the month's uptime at the end of each lane.