Kit builder

A React block (a whole screen) in Beamline's Inventory app.

A kit (bundle) made of standalone products, and how many its parts' stock can make. Sell as a kit; the parts in one kit with units per kit, removable, added by search (another kit refused: a kit can't hold a kit, nor itself); the packing slip shows the kit or each part, pick lists always the parts. Unsaved changes said; saving changes orders imported from then on while orders already in keep their parts and revision (recent orders listed with the revision they used). Beside it, following the draft: kits the parts can make on its tone, the part or parts that limit it named, or Unknown with the parts whose stock isn't known (never zero); stock as of when, said when stale; a kit has no stock of its own; per part, units per kit, on hand, allocated, available and the kits it allows, the limiting row marked.

Use it for

  • A product sold as a set of other products, whose availability comes from its parts' stock.
  • Where an unknown count must stay unknown and the limiting part should be named.

Not for

  • A product's own stock levels (an inventory list).
  • Building a purchase order (purchase-orders).

Anatomy

  • header: the tool's mark, kit name and SKU, Sell as a kit
  • parts: each part led by its units per kit as a figure that edits in place, remove on attention; Add a part opening the search; the refusal; packing slip (The kit · Each part, pick lists a hint); the save bar (what saving changes a hint)
  • availability: the total (no stock of its own a hint), what limits it or why it's unknown, as of, the parts' stock table (on a phone: per kit, available, makes), recent orders

States

  • no parts, editing (unsaved), saved, save refused, a kit refused as a part
  • kits available, none, unknown; stale stock; the limiting part
  • phone: one column, the stock table scrolls sideways
  • right to left: mirrored
  • reduced motion: through the tokens

Keyboard

  • Tab through Sell as a kit, each part's units (arrows step) and remove, Add a part, the slip choice, Save

Motion

Nothing runs at rest.

Props

PropTypeDefaultDescription
kit (required){ sku: string; name: string; }—
definitionKitDefinition—The saved definition (controlled).
defaultDefinitionKitDefinition—
onDefinitionChange((definition: KitDefinition) => void)—
defaultDraftKitDefinition | null—A draft at first (a kit reopened mid-edit).
products (required)KitProduct[]—
stock (required)Record<string, PartStock | null>—Stock by SKU; a missing SKU is unknown.
asOf (required)string—When the stock was read.
staleAfternumber—Older than this many minutes is said as stale.
nowstring—
ordersKitOrder[]—
onSave (required)(draft: KitDefinition) => Promise<KitDefinition>—Saves; resolve with the saved definition (its new revision), reject with why not.
productstring—
classNamestring—Classes on the documented visual root; no override by default.
styleCSSProperties—Inline styles on the documented visual root; no overrides by default.
refRef<HTMLDivElement>—Receives the documented native target or imperative handle; omitted by default.

Built from

Dependencies

lucide-react

Import

import { KitBuilder } from "@beamline/kit-builder";

Get it

Kit builder is part of Beamline UI. Install the parts you need in your React app as compiled packages or editable source. Get Beamline · Connect your agent

More in Inventory

  • Stock count: A shelf counted. Count: the products on it with counted units, not counted (an empty field that changes nothing) kept apart from a counted zero, expected…
  • Inventory counts: Recurring stock counts from plan to shelf: a phone-first count of one occurrence where an untouched part reads not counted and a zero reads counted, none…
  • Goods receiving: Goods received against purchase orders and invoices. Cards grouped by purchase order or invoice, each line once whichever way (a line keeps both sources…
  • Purchase order desk: Purchase orders for stock from draft to closed. The list of orders with status (ready for review on warning, approved, ordered and partly received on…
  • Restock desk: Restocking from suppliers' own shops. Items low on stock (below the minimum on danger, at it on warning, unknown said) beside the chosen item with how…
  • Stock alerts: Alerts on stock counts and expiry dates. Counts of alerts gone off (danger) and close (warning) in the header. A table: item and type, the rule in words…
  • Inventory finder: Find stock and act on what's found. A rail of filters: name or SKU; folders with or without their subfolders (folders the person can't see said as not…
  • Item setup: Setting items up for scanning and records. Barcodes: scanned codes waiting to be linked, each with its symbology, when and who; Look it up brings a…
  • Bulk item edit: Many items corrected at once. Pick a folder, with its subfolders or not (fixed once anything is edited), up to a limit said. The items in a grid: name…
  • Serial allocation: A receipt line's serial numbers. Serials generated from a first serial and how many (its digits counted up, padding kept; a first serial without digits…
  • Stock moves: Where stock went, and moving it. The ledger lists movements newest first: moves on info, stock added on success, stock taken out on warning; each with…
  • Scan station: A warehouse scanner, phone-first. Home: one scan field that also takes typing (and says so when the scanner isn't connected), each code named as what it…
  • Pack station: A packing bench. Scanner, scale and printer each said, on the warning tone when away. Find the shipment by scanning or typing its number (none found…
  • Shipment split: An order's lines split across shipments. A table of lines with what was ordered and a column per shipment (new ones marked); a line already shipped can't…
  • Route plan: A day's delivery routes in the service's zone. The day at a glance: routes, routes without a driver (warning), stops running late (danger), stops done…
  • Job materials: Materials sent out to jobs and pick lists. Jobs: the list (draft, active on info, completed on success) beside the chosen job with its site, dates (the…
  • Service tasks: A fleet shop's maintenance setup. Tasks: active and archived, searchable, main tasks and their subtasks told apart in words, archiving refused while…
  • Owner records: Who a customer is and what they own, at the front desk. New customer: name, phone and email checked as typed against existing customers; each likely…
  • Sample storage: Where physical items are kept (rooms, freezers, shelves, racks, boxes) and acting on several at once. The storage tree is browsed apart from moving: Move…
  • Sample ledger: Materials used in a record and the containers they came from, plus pooling. Subtracting a used amount writes a stock movement with its unit and the…

Part of Beamline UI: polished, editable React components and complete screens for custom applications. Build your own style from any look; tokens, fonts, radii, motion; not only colours.