Permit application

A React block (a whole screen) in Beamline's Government & legal app.

A permit application filled in over several sittings on a city's portal. Steps with how many answers each still misses; the draft saved as you go and saying when (just now, minutes ago, or the day and time), and that it keeps; each step's fields (text, numbers with their unit or as money, choices, long answers, documents attached). A last review of every answer by step with the missing ones counted and listed, each taking you back to its field, and every answer changeable from there; submitted only when nothing required is missing, saying the reference it got and how long the city usually takes. Beside the steps, when given: the fees as the answers stand (each line, or what it waits for, never $0) and what happens after it's submitted (plan review with its usual time, the permit issued, each inspection in order).

Use it for

  • Long public or regulated forms people finish over several visits and must check before sending.
  • Any multi-step application whose review lists what's missing and links back to it.

Not for

Anatomy

  • side: permit and address; steps with what each misses and Review; when the draft was saved
  • step: its fields; Back and Next
  • review: missing count with each missing answer's way back, or everything in; answers by step with Change or Add; Back and Submit; submitted with the reference

States

  • draft saved
  • answer missing
  • everything in
  • submitted

Keyboard

  • Tab through the steps, fields and answers; Enter on a missing answer goes to its field

Props

PropTypeDefaultDescription
title (required)string—The permit and address it's for ("Residential deck · 412 Alder Street").
steps (required)ApplicationStep[]—
fields (required)ApplicationField[]—
valuesApplicationValues—
defaultValuesApplicationValues—
onValuesChange((v: ApplicationValues) => void)—
defaultSavedAtnumber—When the draft was last saved.
defaultStepnumber—
reference (required)string—The reference the application gets when it's submitted, and how long review usually takes.
review (required)string—
onSubmit((v: ApplicationValues) => void)—
fees(values) => { label, amount: number | null }[]—The fees as they stand for the answers so far, beside the steps: each line's amount, or null while the answer it's worked out from is missing (said, never shown as $0).
inspectionsstring[]—What happens after it's submitted, in order ("Footings", "Framing", "Final").
now(() => number)—Now, for how long ago the draft was saved; a clock in tests and demos.
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 { PermitApplication } from "@beamline/permit-application";

Get it

Permit application 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 Government & legal

  • Permit services: Where a permit starts on a city's permitting portal. The work's address resolved to the city (its permits are here) or the county around it (that office…
  • Permit fees: An applicant's permit fees on a city's portal. What's owed across how many permits and how much of it is overdue; every unpaid invoice with its permit…
  • Permit record: A submitted permit seen by the applicant. The overview leads with what's waiting on them: the corrections to answer before the next version goes in, each…
  • Parcel record: A property's parcel on a permitting portal. The lot drawn to scale as a site plan: the street, the property lines with their lengths, the dashed setback…
  • Document review: A PDF going through review: the document in the viewer with every comment pinned to its place, the reviewers' threads beside it (open or resolved, one…
  • Signing request: A document sent for signature, its signature page drawn in miniature with each side's block in order. Sides sign as numbered stages that move earlier or…
  • Playbook check: A document's changes checked against a versioned playbook (a rulebook of what's acceptable). Each change shows what it was and is now, then two records…
  • Audit room: A compliance audit seen by the company preparing it or by the auditor reviewing it. Evidence keeps the company's readiness (not ready, flagged, ready for…
  • Agency book: An insurance agency's book in two places. Estimated commission: the report named an estimate (not received or earned), as of a time; each source system…
  • Applicant company: A contractor's company on a permitting portal. Its identity with the licence and insurance it applies under, each said valid, expiring within 60 days…
  • Applicant projects: An applicant's permits on a city's portal in one place. Projects through saved views (theirs, their company's, expiring within 30 days) and a search…
  • Lease renewals: Leases coming up for renewal. The window leads: every tracked lease placed on the days ahead at its end date, coloured by whose step it is (yours, the…
  • Queue display: The screen in a waiting room, read from across the room. It draws only a public projection of the queue (ticket codes and counters, never a name or a…
  • Visitor journey: A visitor's way into a walk-in queue, on their phone. Branches first: each card names its address, whether it's open (until when, closing soon, full, or…

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.