MindeesUI
Blocks

Account blocks

Twelve accessible account blocks for profiles, settings, security, billing, and subscriptions. Pure UI composed from MindeesUI primitives, props-driven, no storage.

Profile and account-management blocks composed from MindeesUI primitives. Blocks never persist, authenticate, or call the network — identity, settings, and billing data flow in through props and out through callbacks.

Import

import {
  ProfileCard,
  ProfileEditor,
  AvatarUploader,
  AccountSettings,
  PrivacySettings,
  SecuritySettings,
  PasswordChangeForm,
  SubscriptionCard,
  BillingDetails,
  PaymentMethods,
  InvoiceList,
  DeleteAccountFlow,
} from '@mindees/blocks';

Usage

<ProfileCard
  user={user}
  stats={[{ label: 'Followers', value: '1.2k' }]}
  onEdit={() => navigate('profile/edit')}
/>

Blocks

ProfileCard

Identity card with avatar, name, and an optional stat row and edit button.

PropTypeDescription
userProfileUserIdentity to render.
statsreadonly ProfileStat[]Optional stats (followers, following, …).
onEdit() => voidShows an "Edit profile" button when provided.
editLabelstringEdit button label. Defaults to "Edit profile".

ProfileEditor

Editable profile form with name/bio fields and an avatar-pick action.

PropTypeDescription
valueProfileEditorValuesInitial field values.
onSave(values: ProfileEditorValues) => voidCalled with current values on save.
onCancel() => voidCancel handler; hides the cancel button when absent.
onPickAvatar() => voidCalled when a new avatar image is requested.
loadingbooleanDisables inputs and shows a spinner on save.
saveLabelstringSave label. Defaults to "Save".
cancelLabelstringCancel label. Defaults to "Cancel".

AvatarUploader

Large avatar with a change-photo button; pure UI, no filesystem access.

PropTypeDescription
uristringCurrent avatar URL; falls back to initials.
namestringName used to derive fallback initials.
onPick() => voidCalled when the user requests a new image.
loadingbooleanDisables the button and shows an upload spinner.
sizeAvatarSizeAvatar size. Defaults to "xl".
labelstringChange button label. Defaults to "Change photo".

AccountSettings

Grouped settings list mirroring the SettingsMenu primitive's API.

PropTypeDescription
groupsreadonly SettingsMenuGroup[]Grouped settings rows.

PrivacySettings

List of privacy toggle rows.

PropTypeDescription
itemsreadonly PrivacyToggleItem[]Toggle rows to render.

SecuritySettings

Mixed toggle and action rows for the security section.

PropTypeDescription
itemsreadonly SecurityItem[]Mixed toggle / action rows.

PasswordChangeForm

Current + new password form emitting PasswordChangeValues.

PropTypeDescription
onSubmit(values: PasswordChangeValues) => voidCalled with the current and new password.
loadingbooleanDisables inputs and shows a spinner.
errorstringTop-level error message.
submitLabelstringSubmit label. Defaults to "Update password".

SubscriptionCard

Current-plan card with an optional manage/upgrade action.

PropTypeDescription
planSubscriptionPlanPlan to render.
onManage() => voidShows the manage/upgrade button when provided.
manageLabelstringAction label. Defaults to "Manage plan".

BillingDetails

Read-only billing rows with an optional edit button.

PropTypeDescription
detailsreadonly BillingDetail[]Read-only billing rows (name, email, …).
titlestringSection heading. Defaults to "Billing details".
onEdit() => voidShows an edit button when provided.
editLabelstringEdit label. Defaults to "Edit".

PaymentMethods

Saved card list with add, remove, and set-default actions.

PropTypeDescription
methodsreadonly PaymentMethod[]Saved payment methods.
onAdd() => voidShows an "Add payment method" button.
onRemove(id: string) => voidCalled when a card is removed.
onSetDefault(id: string) => voidCalled when a card is made default.
addLabelstringAdd label. Defaults to "Add payment method".

InvoiceList

List of invoices with a per-row download action.

PropTypeDescription
invoicesreadonly Invoice[]Invoices, newest-first by convention.
onDownload(id: string) => voidCalled when an invoice is downloaded.

DeleteAccountFlow

Danger card with a trigger button and a destructive confirmation dialog.

PropTypeDescription
onDelete() => voidCalled when deletion is confirmed in the dialog.
loadingbooleanDisables the trigger and confirm action.
titlestringSection heading. Defaults to "Delete account".
descriptionstringSupporting copy in the danger card.
triggerLabelstringTrigger label. Defaults to "Delete account".
confirmTitlestringDialog title. Defaults to "Delete account?".
confirmMessagestringDialog message.
confirmLabelstringDialog confirm label. Defaults to "Delete".

All blocks also accept a style prop spread onto the root container.

On this page