registry
@automindzsheets 01–77shadcn 4.x

ComponentRegistry,Drawn to spec

Neutral shadcn items for what every client app needs — sign-in, billing, app shell, and the states shadcn skips. Install, don't regenerate.

items
77
blocks
32
namespace
@automindz
brand lock-in
none
automindz solutionsplatex:000 y:000

Install, not generate

Every state is already drawn.

A generated component hands you the happy path and leaves the rest to code review.

Every item here arrives carrying the states a real app hits — announced, keyboard-reachable, and open in its docs page. The strings on these sheets are the strings the components render.

  1. defaultpricing-table

    The resting state already made decisions

    • Save up to 17%
    • Most popular
    • Custom
    • Contact sales

    Tiers, prices and Price IDs live in lib/automindz/pricing.ts. The yearly saving is computed from the two prices, and a tier with no Price ID renders as a contact-sales card rather than a checkout that cannot work.

    You don’t write the discount arithmetic, or the branch for a plan nobody can buy online.

  2. pendingstripe-checkout

    In flight, and un-pressable

    • Subscribe to Growth
    • Redirecting

    onCheckout is awaited. The button takes the spinner and aria-busy, relabels itself Redirecting, and stays disabled while the tab leaves.

    You don’t write the busy flag, or the guard that stops a second Checkout Session on a double click.

  3. failurestripe-checkout

    The reason, next to the control

    • Stripe is unreachable right now.
    • Try again

    A rejected session renders in place under role="alert", the button becomes the retry, and onError still fires so the failure reaches your logs.

    You don’t write a toast provider, or the argument about where a payment error is allowed to appear.

  4. cappedmulti-select

    At the limit, and saying so

    • 2 of 2 selected — limit reached

    maxSelected is one prop. At the cap the unselected rows disable themselves and the count states the limit, so the control never quietly refuses a click.

    You don’t write the click that does nothing, which is the version everybody ships first.

  5. disableduser-menu

    Disabled with the reason attached

    • Billing
    • Only owners can manage billing

    An entitlement-gated entry keeps its place in the menu, disabled, carrying its disabledReason as the item's tooltip.

    You don’t write the choice between hiding it and greying it out. Hiding it only makes people ask where billing went.

  6. emptyempty-state

    Three messages, not one

    • No projects yet
    • Projects hold your deployments, members and billing usage.
    • No projects match “invoice”
    • Could not load projects

    default, search and error are three variants because they are three messages with three different fixes. The error one renders with role="alert" and a destructive tone.

    You don’t write the bare div a table body falls back to, or the review comment pointing out that “nothing found” was covering a failed fetch.

one page per item

77 sheets

Wiring a client app

three steps, in order

  1. Add the registry

    One entry in the app's components.json, once per app. Leave {name} exactly as written — the CLI substitutes it, so this single line covers every item in the registry.

    {
      "registries": {
        "@automindz": "https://components.automindz.app/r/{name}.json"
      }
    }
  2. Add an item

    One command per item. Registry dependencies resolve themselves, and the shadcn primitives underneath come from your style rather than ours.

  3. Hand a coding agent the brief

    Every item page carries a Copy agent prompt button — install command, files, dependencies, env vars, wiring and the states the component already handles, generated from registry.json so it cannot drift. How to use carries the full guide.

What ships

counted from registry.json

  • 77items13 groups, one install command each
  • 148files shippedwritten into your repo, not into node_modules
  • 38registry dependencies15 internal, 23 from your own shadcn style
  • 24env vars declared43 declarations across 14 items