Transport Result Row

Timetable-style result row for the Transport pillar. Purpose-built for comparison-heavy browsing — shows times, route, duration, stops, price, and trust signals without opening a detail page. Segment-aware: derives summary from segments[0] and segments.at(-1). Optional inline Collapsible for cancellation terms, inclusions, operator notes, and pickup instructions.

core/transport-result-row

Installation

1 · Add registry to components.json

2 · Install component

Examples

Default

Direct flight, 2-leg journey with stop, private transfer with pickup context, and loading skeleton.

API Reference

PropTypeDescription
segmentsreq
TransportSegment[]All legs of the journey. Summary derived from segments[0] (origin) and segments.at(-1) (destination).
isDirectreq
booleantrue when segments.length === 1.
transferCountreq
numberMath.max(segments.length - 1, 0).
durationMinutesreq
numberTotal wall-clock journey minutes including transfer waits.
pricereq
MoneyTotal price including all mandatory charges.
pickupContext
stringContext note below the depart point, e.g. Terminal 2, door 4.
dropoffContext
stringContext note below the arrive point, e.g. City centre hotel zone.
pickupCoords
{ lat: number; lng: number }Decimal degrees for future map pin.
dropoffCoords
{ lat: number; lng: number }Decimal degrees for future map pin.
feeLine
stringSecondary price line, e.g. '+ taxes & fees'.
rating
numberOperator rating.
reviewCount
numberNumber of reviews.
badges
string[]Short trust/feature labels, e.g. ['Baggage included', 'Free cancellation'].
bestFitLabel
stringWhy-this-result label, e.g. 'Fastest direct option'.
expandableContent
React.ReactNodeDetail content rendered inside the Collapsible. Omit to hide the expand affordance.
loading
booleanRenders loading skeleton.
onSelect
() => voidCalled when the CTA is clicked.
ctaLabel
stringCTA button label.