Staaarter

Billing Saved Address List

A billing address list for accounts with multiple legal entities or regional offices. Each address renders as a card with a default badge when applicable, an edit link, and a set-as-default link on any address that isn't already the default. Built for enterprise billing settings and multi-office SaaS accounts where invoices need to be generated against the right entity.

By Staaarter Team
Billing
Updated June 11, 2026
Docs
Live preview

Docs

Installation

A real shadcn registry command, not a copy-paste stand-in: it fetches this block plus its badge, button dependencies and any missing npm packages, and installs them straight into your project.

npx shadcn add https://staaarter.com/r/billing-saved-address-list.json

Prefer not to use the CLI? Copy the source from the Code toggle above into src/components/blocks/billing/billing119.tsx instead.

Usage

The file also exports billing119Demo, the exact props behind the preview above. Spread it to get a working section in one line, then replace it with your own data.

import { Billing119, billing119Demo } from "@/components/blocks/billing/billing119";

export default function Page() {
  return <Billing119 {...billing119Demo} />;
}

Props

PropTypeDefaultDescription
headingstring"Billing addresses"Heading shown above the list.
descriptionstringnoneOptional supporting text under the heading.
addressesBillingAddress[]noneAddresses rendered as-is, in the order given.
addAddressHrefstringnoneWhen set, shows an "Add address" button linking here in the header.
addAddressLabelstring"Add address"Label on the add-address button.
classNamestringnoneExtra classes for the outer wrapper.

Types

interface BillingAddress {
  id: string;
  label?: string;
  line1: string;
  line2?: string;
  city: string;
  region?: string;
  postalCode: string;
  country: string;
  isDefault: boolean;
  editHref: string;
  setDefaultHref?: string;
}

Behavior notes

  • Addresses are rendered in the order passed in with no sorting, put the default address first yourself if that's the order you want.
  • A Default badge appears only when isDefault is true; the Set as default link is only rendered when isDefault is false and setDefaultHref is provided.
  • Edit and Set as default are next/link elements pointing at editHref and setDefaultHref, not buttons with onClick handlers, so they work with direct URLs out of the box.
  • The address fields (line1, line2, city, region, postalCode, country) are generic strings, no country-specific formatting or field reordering is applied.
  • The header's Add address button only renders when addAddressHref is passed; omit it to hide the action entirely.

Frequently asked questions