Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Migration Tracker Dashboard Block for Svelte

Three bulk data moves as rows with progress bars, records processed and an ETA, where a throttle slider changes the ETA, a Pause toggle freezes it and a collapsible lists the skipped rows with a retry.

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

Watch a bulk data move and tune how hard it runs, with this migration tracker panel for Svelte with Ark UI. A hairline frame with a plus mark on each corner lists three moves in words ("Legacy database to warehouse"), each with a bar, the records processed of the total, the time elapsed and an ETA worked out from the records left and the rows a second. Pick a row and its controls open under the list: a Slider for the throttle from 500 to 5,000 rows a second, which changes the ETA ("About 10 min"), a Toggle that pauses the move so the ETA reads "Paused", and a Collapsible for the rows that were skipped ("142 rows skipped: invalid email") with a Retry skipped that clears them. It's built from Slider, Toggle, Collapsible, Button and Guides. For data engineering consoles.

FAQ

How do I fill it with my own moves?

Edit the job records: a name, the total records, the records processed, the minutes elapsed, the throttle, how many rows were skipped and why. The percentage, the ETA and the summary sentence are worked out from them.

How is the ETA worked out?

The records left divided by the throttle in rows a second, rounded to minutes. A paused move reads "Paused" and a finished one "Done". The throttle is the speed you ask for, not a measured rate.

Why does the progress not move?

It is typed on purpose, so the page is still and nothing loops. Pause and the slider change the ETA, not the bar. To make it real, poll your job's counters and feed them into the same records.

What stays local, and how do I wire it for real?

Everything: no data is moved and Retry skipped only adds the rows to the processed count in this page. To make it real, send the throttle, the pause and the retry to the job runner and read the skipped rows from its error table.

How does it look on a phone?

Each move is a two-line row, and the controls for the picked row stack under the list with the slider at full width.