KQ-676 · MERCHANT/CLUSTER

Merchant Cluster

A month's merchants as bubbles sized by what they took. The pack settles on snap in a cascade, each bubble growing out of the cluster's centre, and pressing one expands it: the chosen bubble glides to the middle at triple its radius while the rest part onto a ring around it, and the panel underneath opens to that merchant's transactions on a measured height. Bubbles carry a roving tabindex in spend order where arrows step, Home and End reach the largest and smallest, Enter and Space toggle and Escape collapses.

KQ-676 · MERCHANT/CLUSTER
Waylight Pay · card spend, November$962.35

Nov spend $962.35 · 6 merchants · reading

Install

One command — the source lands in your repo. Or copy it from the Code tab.

$ pnpm dlx shadcn@latest add @kinetiq/merchant-cluster

Props

merchants
MerchantSpend[]
default
Merchants with id, name, amount and transactions; bubbles are area-proportional to the amount.
value / defaultValue
string | null
default null
Controlled or initial expanded merchant id; null is the resting cluster.
onValueChange
(id: string | null) => void
default
Fires from the press, Enter, Space or Escape that expanded or collapsed a bubble.
format
(value: number) => string
default USD Intl.NumberFormat
Formats every amount in the cluster and the panel.
label
string
default Spend by merchant
Names the cluster for assistive technology.