KQ-969 · ROLLBACK/ARC
Rollback Arc
Every version a service has worn, laid on one static arc with the newest at the frontier and each node's coordinates rounded before they reach an attribute. The deployed marker rides the curve rather than cutting the chord: one scalar motion value carries its position between version indices and useTransform derives cx and cy from it, so a rollback across three versions travels the arc on glide. Choosing an earlier node moves a hollow caret to it on snap and unfolds a roll-back row at a ResizeObserver-measured height, and only when the marker has settled does the version become current and the sentence get spoken.
- deployed
- 2.14.0bad
- chosen
- 2.14.0bad
- note
- Holds time out under the yard's clock
On 2.14.0 · chosen 2.14.0 · bad
Install
One command — the source lands in your repo. Or copy it from the Code tab.
$ pnpm dlx shadcn@latest add @kinetiq/rollback-arc
Props
- ref
- React.Ref<HTMLDivElement>
- default —
- Reaches the root group element.
- versions
- ReleaseVersion[]
- default —
- Oldest first, frontier last: id, label, a good, bad or unknown status, and an optional note.
- service
- string
- default —
- Whose versions these are; printed in the head.
- value / defaultValue
- string
- default the frontier
- Controlled or initial deployed version id.
- onValueChange
- (id: string) => void
- default —
- Fires when a rollback settles, from the setter that committed it.
- onChosenChange
- (id: string) => void
- default —
- The caret's version — a state, so it also fires on the first commit.
- onRollbackStart
- (id: string) => void
- default —
- Fires from the press that started the travel.
- rollbackLabel
- (version: ReleaseVersion) => string
- default "Roll back to <label>" or "Roll forward to <label>"
- Copy on the confirm control; the default names the direction.
- label
- string
- default "Version arc"
- Names the arc for assistive technology.
- className
- string
- default —
- Merged onto the root element's classes.
| Prop | Type | Default | Description |
|---|---|---|---|
| ref | React.Ref<HTMLDivElement> | — | Reaches the root group element. |
| versions | ReleaseVersion[] | — | Oldest first, frontier last: id, label, a good, bad or unknown status, and an optional note. |
| service | string | — | Whose versions these are; printed in the head. |
| value / defaultValue | string | the frontier | Controlled or initial deployed version id. |
| onValueChange | (id: string) => void | — | Fires when a rollback settles, from the setter that committed it. |
| onChosenChange | (id: string) => void | — | The caret's version — a state, so it also fires on the first commit. |
| onRollbackStart | (id: string) => void | — | Fires from the press that started the travel. |
| rollbackLabel | (version: ReleaseVersion) => string | "Roll back to <label>" or "Roll forward to <label>" | Copy on the confirm control; the default names the direction. |
| label | string | "Version arc" | Names the arc for assistive technology. |
| className | string | — | Merged onto the root element's classes. |