KQ-2101 · LOCKSTEP/PANES

Lockstep Panes

Two versions of a document side by side with a lockable shared scroll that maps matched sections onto each other, so the bands across the gutter bend wherever the versions drift. Locking glides the drifted pane back into line on springs.glide as the padlock's shackle drops shut on springs.snap; swap trades the panes on glide and the section strip's pill slides on snap. Cmd or Ctrl+L locks, Alt with Left and Right moves between panes, and on a phone the panes become tabs that keep your place.

KQ-2101 · LOCKSTEP/PANES

Compare versions

Fieldline · Services agreement · 4 changed · 1 new · 1 dropped

v2Services agreementSigned 14 Mar 2025

Services agreement

Fieldline Ltd and Basinworks Logistics Ltd

1. Scope of services

Fieldline provides route planning, dispatch and proof-of-delivery software to the Customer’s depots named in Schedule A, with onboarding for up to forty drivers and two dispatch leads.

Changes to the depots or to the number of drivers are agreed in writing and priced under the fees section.

2. Fees and invoicingChanged

Fees are charged per active vehicle per month at the rates in Schedule B. Fieldline invoices monthly in arrears and the Customer pays within 30 days of the invoice date.

3. Service levelsChanged

The platform is available 99.5% of each calendar month, excluding scheduled maintenance announced 48 hours ahead.

If availability falls below that, the Customer receives a credit of 5% of that month’s fees.

4. Term and renewal

This agreement runs for twelve months from the start date and renews for further twelve-month terms unless either party gives sixty days’ notice before a renewal date.

5. Data handlingChanged

Fieldline processes route, vehicle and driver data only to provide the services. Data is stored in the United Kingdom and deleted within 90 days of the agreement ending.

6. LiabilityChanged

Each party’s total liability in any year is limited to the fees paid in the twelve months before the claim. Neither party is liable for indirect or consequential loss.

7. ExclusivityNot in v3

During the term the Customer will not use another routing or dispatch platform at the depots in Schedule A without Fieldline’s written consent.

This does not cover depots the Customer opens or acquires after the start date.

8. Termination

Either party may end this agreement on thirty days’ written notice if the other materially breaches it and does not put the breach right within that period.

On ending, Fieldline exports the Customer’s route history in an open format within ten working days.

v3Services agreementDraft · edited 2 Sep 2026

Services agreement

Fieldline Ltd and Basinworks Logistics Ltd

1. Scope of services

Fieldline provides route planning, dispatch and proof-of-delivery software to the Customer’s depots named in Schedule A, with onboarding for up to forty drivers and two dispatch leads.

Changes to the depots or to the number of drivers are agreed in writing and priced under the fees section.

2. Fees and invoicingChanged

Fees are charged per active vehicle per month at the rates in Schedule B, reviewed once a year in line with the published freight index. Fieldline invoices monthly in arrears and the Customer pays within 45 days of the invoice date.

Disputed amounts are raised within 15 days of the invoice; the undisputed balance stays payable on time.

3. Service levelsChanged

The platform is available 99.9% of each calendar month, excluding maintenance announced 72 hours ahead and held outside 06:00–20:00 local time.

Below 99.9% the Customer receives a credit of 5% of that month’s fees; below 99% the credit rises to 15%.

Three missed months in a row let the Customer end the agreement without charge.

4. Term and renewal

This agreement runs for twelve months from the start date and renews for further twelve-month terms unless either party gives sixty days’ notice before a renewal date.

5. Data handlingChanged

Fieldline processes route, vehicle and driver data only to provide the services. Data is stored in the United Kingdom or the European Economic Area and deleted within 30 days of the agreement ending, with a deletion certificate on request.

6. SubprocessorsNew

Fieldline lists its subprocessors in Schedule D and gives 30 days’ notice before adding one.

The Customer may object on reasonable data-protection grounds, and the parties will discuss alternatives in good faith.

7. LiabilityChanged

Each party’s total liability in any year is limited to one and a half times the fees paid in the twelve months before the claim, except for breaches of the data handling section, which are capped at £2,000,000.

Neither party is liable for indirect or consequential loss.

8. Termination

Either party may end this agreement on thirty days’ written notice if the other materially breaches it and does not put the breach right within that period.

On ending, Fieldline exports the Customer’s route history in an open format within ten working days.

locked · reading scope

Install

One command — the source lands in your repo. Or copy it from the Code tab.

$ pnpm dlx shadcn@latest add @kinetiq/lockstep-panes

Props

documents
[LockstepDocument | null, LockstepDocument | null]
default defaultLockstepDocuments
The two documents, older first. A null side shows the missing-document state.
anchors
LockstepAnchor[]
default defaultLockstepAnchors
The matched sections in reading order, with the short names the section strip uses.
locked / defaultLocked
boolean
default — / true
Whether the panes scroll as one. Controlled or uncontrolled.
onLockChange
(locked: boolean) => void
default —
Fires from the switch or the shortcut that changed the lock.
onSwap
(documents: LockstepPair) => void
default —
Fires when the panes trade places, with the documents in their new left-to-right order.
onClosePane
(side: "left" | "right", document: LockstepDocument) => void
default —
A pane's close button was pressed; the pane shows its closed state until reopened.
onReopenPane
(side: "left" | "right", document: LockstepDocument) => void
default —
A closed pane's Reopen was pressed.
onPickDocument
(side: "left" | "right") => void
default —
The missing-document state's Choose version was pressed. Without it the button is not drawn.
onSectionChange
(anchor: string) => void
default —
The section at the leading pane's reading line, on mount and whenever it changes.
bandOpacity
number
default 0.35
Fill strength of the bands across the gutter, 0 to 1.
gutter
number
default 48
Width of the gutter the bands cross, px.
accent
string
default "var(--accent-bright)"
Changed and new marks, changed bands, the lock and the strip pill — any CSS colour.
readingLine
number
default 0.25
Where in a pane matched sections line up while locked, as a fraction of its height.
showChanges
boolean
default true
Mark changed, new and dropped sections with tags, edge markers and accent bands.
status
"ready" | "loading" | "error"
default "ready"
Whether the documents have arrived.
onRetry
() => void
default —
Try again was pressed after the documents failed to load.
title
string
default "Compare versions"
The frame's title.
subtitle
string
default "Fieldline · Services agreement"
One line under the title; the change summary follows it.
height
number
default 520
The frame's height, px; the panes scroll inside it.
className
string
default —
Classes for the outer frame.