Skip to content
GetUrUI

Settings Pages

2 variantsPro
.md

Two complete settings screens: an organization console with a tabbed sidebar, members table, AI feature switches and a save bar that springs up when anything changes, and a personal workspace page with profile, billing and a notification matrix.

settingspreferencesaccountbillingmembersnotificationssave bardashboardpage

Organization

organization.tsx

Sidebar tabs for general, members (search, invite, role selects), AI features and publishing, with a save bar that slides up while there are unsaved changes.

$npx shadcn@latest add @geturui-pro/settings-pages-organization
PropTypeDefaultDescription
defaultValueOrgSettings—{ name, slug, description, members, ai, publishing }. The save bar appears once anything differs.
onSave(value: OrgSettings) => void | Promise<void>—Runs after validation. Throw to show the error in the save bar.
baseUrlstring"kestrel.app/"Prefix shown before the slug.
classNamestring—Classes for the outer container.

Workspace

workspace.tsx

Underline tabs for profile, billing (plan card with usage meters, drawn payment card, plan picker, invoices) and a notification channel matrix, each with its own save row.

$npx shadcn@latest add @geturui-pro/settings-pages-workspace
PropTypeDefaultDescription
defaultTab"profile" | "billing" | "notifications""profile"Tab shown first.
profile{ name; email; timezone; bio }—Starting profile values.
billing{ planId; billingEmail; taxId }—Starting billing values.
notifications{ matrix; digest; quietHours }—Starting notification preferences.
plans{ id; name; price; blurb }[]—Plans in the picker; price is per month billed yearly.
invoices{ id; date; amount; status: "Paid" | "Due" }[]—Invoice rows.
card{ brand; last4; expires }—Card on file.
usage{ label; used; limit; unit? }[]—Meters on the plan card.
onSaveProfile / onSaveBilling / onSaveNotifications(value) => void | Promise<void>—Per-section save handlers. Throw to show an error in that section.
onDownloadInvoice(id: string) => void—Invoice download handler.
onUpdateCard() => void—Update-card button handler.
classNamestring—Classes for the outer container.

Install the whole set

Installs every settings pages variant at once. Each section above has its own command for a single variant.

Pro installs use your private registry token. Add the @geturui-pro registry once — setup guide. The command works after you get Pro.

$npx shadcn@latest add @geturui-pro/settings-pages

Also installs: Button, Input, Switch

Accessibility

  • Section navigation is a tablist with arrow-key, Home and End support, tied to its tabpanel.
  • Tables use captions, column headers and labelled per-row controls; owner-protection disables controls with an explanation.
  • Save status (unsaved, saved, error) is announced through polite live regions; ⌘S / Ctrl+S saves the organization page.

Related