shadcn.io is not affiliated with official shadcn/ui
Order Fulfillment Todo List Block for Ark UI
A pick and pack list: orders open to their lines with checkboxes, a five-step track, and one button that marks packed, then shipped with a checked tracking code, then delivered.
Installation
Overview
Run a warehouse pick list, with this order fulfillment block for React with Ark UI. Orders are Collapsible rows with their id, line and item counts and the step they are on. Opening one shows a five-step track (Received, Picked, Packed, Shipped, Delivered) drawn as dots and named in words, and its lines, each a Checkbox with the item, quantity and bin, under "Picked 2 of 3". One Shine Button on the open order changes with the step: "Mark packed" once every line is picked, then "Mark shipped" with a tracking code in the TRK-123456 format in a Field (a wrong code says so and keeps focus), then "Mark delivered". The list keeps its height, so opening an order scrolls inside it. No payments or addresses are shown. Guides rule the bands. For warehouses, kitchens and any list where an item passes through steps.
FAQ
How is the step worked out?
It is derived, never stored twice: Delivered if the order is delivered, Shipped if it has shipped, Packed if it was marked packed, Picked if every line is ticked, otherwise Received. Un-ticking a line before packing moves the order back a step.
What if I press Mark packed too early?
The button stays focusable but is marked unavailable; pressing it says how many lines are still to pick instead of doing nothing. Once an order is packed its lines are locked.
How is the tracking code checked?
It must be TRK- followed by six digits, such as TRK-482913. Letters are upper-cased as you type. A wrong code shows a message under the field, sets the field as invalid and returns focus to it.
What stays local, and how do I wire it for real?
Everything lives in the page and resets on reload; nothing is shipped or emailed. Post each pick, pack and ship from pick and advance to your orders API, and replace the pattern with your carrier's.