core library

Core Bank UI Kit library.

Includes: accounts, transactions, transfers, cards, authentication, security, states/feedback, shared scope, and design tokens.

import 'package:bank_ui_kit/core.dart';

Classes

BankAccount
BankAccountCard
Swipeable card that visually represents a single bank account.
BankAccountNumberFormatter
Formats and masks account identifiers for display.
BankAccountNumberText
Display widget for account identifiers: IBANs, card numbers, sort codes, routing numbers and SWIFT/BIC codes: with kind-aware grouping, masking and a one-tap copy affordance.
BankAccountSwitcher
Bottom-sheet or inline widget for selecting among multiple bank accounts.
BankAddress
An immutable postal address captured by BankAddressForm.
BankAddressForm
Structured postal-address capture with per-country layout: US/CA get a region dropdown and numeric ZIP handling, the UK gets postcode formatting, everywhere else gets free-text region. Required-field validation runs on focus loss with BankTextField danger states; onChanged emits null while the address is incomplete.
BankAddressPreview
Read-only address card for review steps, with an edit affordance. Compose into BankSummaryStack rows via valueWidget or place it standalone under a section header.
BankAlertPreference
Per-event alert preference row data.
BankAlertPreferencesPanel
Per-event, per-channel alert preference matrix for the notification settings screen.
BankAmountInputField
A format-as-you-type monetary text field: the form-embedded counterpart to BankAmountKeypad.
BankAmountKeypad
Large numeric keypad tuned for currency input.
BankAppBar
A themed AppBar that reads colours and elevation from BankThemeData.
BankAppGateScreen
Full-screen blocking gate shown before the app can be used.
BankApprovalRequest
A pending item in a business-banking approval queue.
BankApprovalRequestTile
Maker-checker approval queue row for business banking.
BankAppSwitcherPrivacyOverlay
Blurs or redacts sensitive content when the app loses foreground focus, for example when the system app-switcher (recent-apps) is open.
BankAssistantPanel
Entry surface for an in-app banking assistant: a greeting with an avatar, suggested prompt chips, a free-text ask field with an optional voice button, recent queries, and an optional disclaimer.
BankAssistantPrompt
One suggested prompt rendered as a tappable chip inside BankAssistantPanel.
BankAsyncVerificationState
"Under review" holding-state widget for manual KYC review.
BankAtmLocation
A nearby ATM or cash point surfaced by the locator.
BankAtmLocatorTile
A 64 px ATM-locator row: pin icon on a brand tint, name and address, a distance chip ('350 m' or '1.2 km'), a positive 'Fee-free' chip when the ATM waives fees, a deposit icon when it accepts deposits, and a trailing directions button.
BankBalancePoint
One balance observation (or projection) on a BankCashflowChart.
BankBalanceText
Currency-formatted text that automatically masks when privacy mode is active.
BankBatchEntry
One row of an uploaded payment batch.
BankBatchPaymentReviewSheet
Review surface for an uploaded payment batch (payroll, supplier runs). Presents summary chips (count, single-currency total, error count), a virtualized list of compact rows with per-row validation errors, a show-errors-only filter, and a sticky submit bar that stays disabled while any error remains. Follow submission with BankScaApprovalSheet.
BankBeneficiary
BankBeneficiaryPicker
Saved-beneficiaries list with search and an add-new entry point.
BankBill
A saved biller / upcoming bill.
BankBillCalendarStrip
A horizontal 14-day strip showing which upcoming days carry bill due dates, for the cashflow-aware bill view. Days with dues render a dot and the summed amount under the day number.
BankBillForecast
A single predicted upcoming bill produced by a bill-forecasting engine (recurring-payment detection, biller history, or open-banking data).
BankBillForecastList
A predicted-upcoming-bills list: the bill-prediction pattern found in leading banking apps.
BankBillPayTile
A saved-biller / upcoming-bill row for the bill-pay center.
BankBiometricPromptButton
A tappable button that triggers an injected biometric authentication callback and reflects its outcome visually.
BankBloomTheme
The Bloom preset: a warm, consumer-friendly banking aesthetic.
BankBottomNavBar
A bottom navigation bar themed from BankThemeData.
BankBudget
BankBudgetGaugeWidget
Shows a budget's progress with an animated bar and over-budget warning.
BankCallVerificationScreen
An anti-vishing call verification surface: a live answer to "is this call really from my bank?".
BankCardControlsPanel
Panel of toggles and controls for managing a payment card.
BankCardDesignOption
Describes a single card-design option shown in the material picker.
BankCardlessCashCode
One-time cardless-cash withdrawal code card.
BankCardPinManager
Three-step Change-PIN flow: verify current PIN → enter new PIN → confirm.
BankCashbackCategory
A single selectable bonus category displayed inside BankCashbackCategoryPicker.
BankCashbackCategoryPicker
Bonus-category selection grid for quarterly or monthly cashback programmes where the customer picks their own bonus categories.
BankCashflowChart
Account-level balance-trend chart with a committed-payments forecast overlay: the sibling of BankPortfolioPerformanceChart, wrapping fl_chart's LineChart.
BankCategoryBlock
A single merchant-category self-exclusion entry rendered by BankMerchantBlockList.
BankCharity
A charity that can receive donations through BankDonationHubCard.
BankChequeCaptureOverlay
Remote-deposit-capture overlay: the landscape sibling of BankDocumentCaptureOverlay, reusing its BankDocumentFramingState vocabulary. Renders a 2.2:1 cheque frame guide with corner marks over the host's camera preview, a side indicator chip, an endorsement reminder when capturing the back, and an amount chip when the customer pre-entered one.
BankChequeDepositSummary
The RDC review step: captured front/back thumbnails, the deposit amount, the deposit-to account rendered with BankProductItemTile, a funds-availability disclaimer slot, and the submit button.
BankConnectivityBanner
Persistent, non-blocking degraded-state banner that sits above content (typically directly under the app bar) while the rest of the app stays usable: partial degradation never gets a full-screen gate.
BankConsent
A granted open-banking / data-sharing consent.
BankConsentManagementList
Granted data-sharing consents with revocation: the ongoing-management counterpart to BankConsentModal's one-shot acceptance, covering the PSD2 / open-banking consent dashboard.
BankConsentModal
Scrollable terms-acknowledgement modal.
BankContactPaymentSheet
Pick a contact (in-network or by phone/email), then send or request money.
BankCountry
An immutable country descriptor used by BankCountryPicker.
BankCountryPicker
Searchable country selection field with an accompanying modal sheet.
BankCurrencies
Registry of currency display metadata used by BankMoneyFormatter, BankAmountInputField, and every money-rendering widget.
BankCurrency
Display metadata for a currency, following each currency's own presentation guidelines: official symbol, ISO 4217 minor units, and symbol placement.
BankDateFormatter
Formats a DateTime relative to today using BankUiStrings-compatible labels.
BankDeviceSession
An active or trusted device session shown in the security center.
BankDeviceSessionTile
A trusted-device / active-session row for the security center, completing the device-trust story alongside BankDeviceTrustBanner.
BankDeviceTrustBanner
A contextual security banner driven by an externally-supplied state flag.
BankDisposableCardTile
Single-use virtual card surface, equivalent to a disposable card whose number is retired after every purchase.
BankDisputeEvidence
A named evidence attachment descriptor (the host owns file pickers and uploads: the controller stores names only).
BankDisputeFlowController
Headless dispute-flow state, following the kit's controller conventions: pure state machine, never touches the network. The host listens, renders BankDisputeWizardSheet, and performs the actual submission when submit fires onSubmitRequested.
BankDisputeReason
A selectable dispute reason.
BankDisputeWizardSheet
Transaction-anchored dispute filing wizard, launched from the transaction detail sheet's dispute hook. Steps: reason radio list → description → optional evidence slots → review (summary + the disputed transaction) → submitted (status tracker with the expected timeline).
BankDocument
A downloadable document in the statements / documents center.
BankDocumentCaptureOverlay
Camera frame guide for document capture.
BankDonationHubCard
A charity giving hub: pick a cause, pick an amount, donate.
BankEarlyPaydayCard
Early salary access banner card.
BankEidLoginButton
National eID authentication button with a number-match prompt.
BankEmblem
A unified circular entity identifier (avatar / emblem) for payees, merchants, beneficiaries, and accounts.
BankEmptyStateView
Full-viewport empty-state widget.
BankErrorStateView
Error state with a specific reason.
BankFamilyCardTile
Management row for a dependent or teen card, one per family member.
BankFamilyMemberCard
Immutable description of a dependent (child or teen) card member as rendered by BankFamilyCardTile.
BankFaqItem
One entry in a BankHelpFaqList.
BankFinancialHealthScore
Composite financial wellness score card: one glanceable number with tappable factor drill-downs.
BankFlipCard
A generic 3-D flip-card container.
BankFoundMoneyItem
An immutable recoverable-money discovery rendered as one row of BankFoundMoneyList.
BankFoundMoneyList
A recoverable-money discovery list: a celebratory header summing every unclaimed amount, followed by one row per BankFoundMoneyItem with an asynchronous claim button.
BankFraudAlertBanner
High-priority fraud warning banner.
BankHealthFactor
A single contributor to a BankFinancialHealthScore.
BankHelpFaqList
Searchable FAQ accordion for the support hub.
BankHeritageTheme
The Heritage preset: an institutional Islamic banking aesthetic.
BankHijriDate
A calendar date in the Umm al-Qura Hijri calendar, the civil calendar of Saudi Arabia and the reference calendar for Islamic banking milestones across the GCC (hawl anniversaries, Ramadan campaigns, profit distribution dates).
BankHorizontalAccountCard
A landscape-format bank account card with a built-in 3-D flip animation.
BankIcons
Icon specification for the Bank UI Kit icon set.
BankInAppNotificationCenter
A scrollable notification feed with read/unread states and swipe-to-dismiss.
BankIncomeSorterConfirmed
The user confirmed the allocation rules.
BankIncomeSorterController
Headless controller for the income-sorter feature.
BankIncomeSorterEditing
The user is actively editing the allocation rules.
BankIncomeSorterIdle
Initial state: the user has not started editing yet.
BankIncomeSorterStatus
Base class for all income-sorter status values emitted by BankIncomeSorterController.
BankInputMask
Describes how a BankMaskedInputField filters, formats, and validates what the user types.
BankInsight
BankInsightCard
A swipeable AI-generated insight card with confidence indicator.
BankKycApproved
The KYC application was approved.
BankKycFlowController
Headless controller that drives a multi-step KYC onboarding flow.
BankKycIdle
Initial state: no action has been taken yet.
BankKycRejected
The KYC application was rejected with a human-readable reason.
BankKycStatus
Base class for all KYC flow status values emitted by BankKycFlowController.
BankKycStepChanged
The flow moved to a new step.
BankKycSubmitted
All steps have been completed and the application was submitted.
BankKycUnderReview
The submitted application is awaiting manual or automated review.
BankLimitChannel
One adjustable limit channel in a BankTransferLimitManager.
BankLivenessCheckOverlay
Face-guide overlay for liveness detection.
BankMaskedInputField
A themed text field that applies a live BankInputMask (IBAN, card PAN, sort code, or a custom digit pattern) while the user types.
BankMerchantBlockList
Merchant-category self-exclusion controls (gambling blocks, category blocks) in the style of the gambling blocks pioneered by digital banks.
BankMerchantOffer
An immutable card-linked merchant offer shown in a BankOffersRail.
BankMessage
One message in a secure-inbox conversation.
BankMessageAttachment
A file attached to a secure message.
BankMoneyFormatter
Formats Money-like amount + currency for display, respecting NumeralStyle and each currency's own presentation guidelines (official symbol, ISO 4217 minor units, symbol placement) as registered in BankCurrencies.
BankMoneyProtectionBanner
Regulatory deposit-guarantee notice (FDIC / FSCS / local deposit scheme).
BankMyQrCard
"My QR" receive-payment card: encodes payload locally with a pure Dart QR encoder (no network, no plugin) on a white card. QR modules stay black-on-white in every preset for scanner reliability; only the surrounding chrome themes.
BankNavItem
A single navigation destination for BankBottomNavBar.
BankNotification
BankOffersRail
A horizontally scrolling rail of card-linked merchant offers that the customer can activate in place.
BankOnboardingCarousel
First-run value-proposition walkthrough with parallax illustrations, an animated pill dot indicator, and a Next button that morphs into the done label on the last page.
BankOnboardingPage
One page of a BankOnboardingCarousel.
BankOtpInput
Segmented one-time-code (OTP / 2FA) entry field.
BankOtpInputController
Imperative handle for a BankOtpInput.
BankPanicFreezeButton
Hold-to-activate emergency "freeze everything" control.
BankPaymentRequestCard
Incoming money-request card with accept or decline actions.
BankPeekBalance
Pre-login balance peek without authentication: the press-and-hold quick balance pattern.
BankPeriodSelector
Prev/next time-period navigator for statements, insights and budgets.
BankPhoneInputField
Phone number entry with an in-field country / dial-code selector.
BankPhysicalCardMaterialPicker
Horizontal card-design picker for the order-a-card flow.
BankPinDots
Displays filled/empty dot indicators for a PIN entry sequence.
BankPinKeypad
Numeric keypad for PIN entry.
BankPointsAction
A single quick action rendered as a pill inside BankPointsHubCard.
BankPointsHubCard
Loyalty points hero card: the entry point of a rewards programme hub.
BankPrivacyToggle
A tappable icon button that toggles the ambient BankUiScope privacy state.
BankPrizeDraw
A single upcoming draw shown inside BankPrizeDrawCard.
BankPrizeDrawCard
Card for a prize-linked savings account: deposit to earn draw chances, win monthly prizes, gift entries to loved ones.
BankProductItemTile
Per-product-type summary row for pickers, dashboards and ListViews.
BankQrScannerOverlay
Scan-to-pay overlay, camera-plugin-agnostic like the KYC overlays: the host renders its camera preview as cameraChild and drives state from its own decoder.
BankQuickAction
A single shortcut entry rendered by BankQuickActionsGrid.
BankQuickActionsGrid
Dashboard grid of quick-action shortcut tiles with optional user reordering.
BankReceiptView
Shareable receipt layout. The package renders the view; the host app wires up PDF generation or share-sheet logic.
BankRecurringMerchant
A detected recurring payment (subscription) surfaced by PFM analysis.
BankRecurringMerchantTile
Detected-recurring-payment row for the PFM subscription manager - distinct from the subscriptions/ domain, which covers the bank's own premium tiers.
BankRecurringTotalHeader
Summary bar for the subscription manager: total recurring spend per month (or year) across the detected merchants.
BankScaApprovalSheet
A payment-bound strong-customer-authentication sheet implementing the PSD2 dynamic-linking pattern: the amount and payee stay visible and cannot be scrolled away while the customer authenticates.
BankScheduledTransferToggle
Instant / Later / Recurring selector for a transfer, built on Flutter's built-in SegmentedButton.
BankSecureMessageThread
Secure-messaging conversation view: customer bubbles trailing in a primary tint, bank bubbles leading with an emblem, centered system microcopy, date separators, delivery ticks on the last own message, failed-send retry, attachment chips with upload progress, and an async composer that hides its attach affordance when onAttach is null.
BankServiceStatusEntry
Immutable description of one banking service rail and its health.
BankServiceStatusList
Per-rail system health card (the digital-bank status pattern): one row per banking rail such as 'Card payments', 'Transfers out', or 'Login', each with a trailing status pill combining an icon, a label, and a colour so state is never colour alone.
BankSessionTimeoutDialog
A modal dialog that counts down from remainingTime and fires onLogout when it reaches zero.
BankShariahBadge
A compact badge marking a financial product as Shariah compliant.
BankSkeletonLoader
Shimmer-effect placeholder that takes the shape of common Bank UI Kit cards while data loads.
BankSpendingBreakdownChart
Donut chart showing spending split by category.
BankSpendingCategory
A category name + money pair for the spending breakdown.
BankSplitParticipant
A person who can receive a split of a transaction's cost.
BankStandingOrder
Immutable description of a recurring/scheduled payment instruction.
BankStandingOrderTile
Manager row for a recurring/scheduled payment (BankStandingOrder).
BankStatementListTile
A row for the statements / documents center.
BankStatusTracker
Vertical milestone tracker for payment, application, dispute, or KYC progress.
BankStepProgressIndicator
Numbered step progress indicator. RTL-aware: steps flow right-to-left when Directionality is RTL.
BankStoriesCarousel
Horizontal rail of tappable story cards, in the style of the stories feeds and daily-recap snapshots of leading banking apps.
BankStory
A single story entry rendered by BankStoriesCarousel and BankStoryViewer.
BankStoryViewer
Full-screen story viewer with segmented auto-advance progress bars.
BankStudioTheme
The Studio preset: a restrained, editorial banking aesthetic.
BankSuccessAnimation
Lightweight success micro-animation.
BankSummaryItem
Describes a single label/value row inside a BankSummaryStack.
BankSummaryStack
A stack of generic label/value rows for review, confirmation, and detail screens.
BankTextField
A themed text input field that reads from BankThemeData for consistent styling across presets.
BankThemeData
A ThemeExtension that carries every Bank UI Kit design decision: brand colours, semantic colours, shape radii, elevation levels, numeral typography, and optional glow / gradient decorations.
BankToastBanner
A toast-style banner that slides in from the top of its parent.
BankTokens
Design tokens for the Bank UI Kit design system.
BankTrackerStage
A single milestone displayed by BankStatusTracker.
BankTransactionCategorySplitSheet
Split a single transaction's amount across multiple spending categories.
BankTransactionCostSplitSheet
Split the cost of a single transaction between multiple people.
BankTransactionDetailSheet
Full-detail bottom sheet for a single transaction.
BankTransactionFilter
Immutable value object capturing the current filter state.
BankTransactionFilterSheet
Bottom sheet with category, date-range, and amount-range filters.
BankTransactionGroupHeader
Sticky date-grouped section header for transaction lists. Labels sourced from BankUiStrings for 'Today' and 'Yesterday'.
BankTransactionListTile
A single transaction row, designed for use inside ListView.builder. Shows category icon (with optional merchant logo), signed amount, and status.
BankTransactionPinSheet
Transfer-specific authorisation PIN bottom sheet.
BankTransferFailure
The transfer failed with a human-readable reason.
BankTransferFlowController
Headless controller that drives a multi-step money-transfer flow.
BankTransferIdle
Initial state: the flow has not started yet.
BankTransferLimitManager
Per-channel transfer limit editor, generalizing the spend-limit slider inside BankCardControlsPanel.
BankTransferProcessing
The PIN was accepted and the transfer is being processed.
BankTransferResultScreen
Full-screen success or failure state shown after a transfer completes.
BankTransferReviewCard
Confirm-before-send summary card shown to the user before they authorise a transfer.
BankTransferStatus
Base class for all transfer flow status values emitted by BankTransferFlowController.
BankTransferStepChanged
The flow advanced or went back to a new step.
BankTransferSuccess
The transfer completed successfully with the given referenceNumber.
BankTravelNotice
The value object a BankTravelNoticeForm submits.
BankTravelNoticeForm
Travel notification composer: card multi-select chips, destination country chips backed by BankCountryPicker.show, a validated date range, and an optional note. Submit runs the async callback with a loading state and plays an inline success animation on true.
BankUiScope
Provides Bank UI Kit configuration to the subtree.
BankUiScopeController
Provides mutation methods for BankUiScopeData.
BankUiScopeData
Immutable snapshot of the runtime configuration for the Bank UI Kit.
BankUiStrings
All user-visible strings rendered by the Bank UI Kit.
BankUpdatePromptSheet
Soft, dismissible "an update is available" bottom sheet: the skippable tier of the two-tier server-driven update pattern.
BankValueDiffItem
Describes one changed field inside a BankValueDiffList.
BankValueDiffList
A card listing every field changed by an approval request.
BankValueDiffRow
An old-vs-new change display for approval and profile-change review screens.
BankVirtualCardWidget
Realistic virtual card with front/back flip animation.
BankVoltageTheme
The Voltage preset: an electric, dark-native fintech aesthetic.
BankWalletProvisioningButton
Add-to-wallet button pair with platform-appropriate chrome, free of platform APIs: the host wires the actual push-provisioning SDK into onPressed.
BankZakatCalculator
A complete zakat calculation flow for Islamic banking apps.
IncomeSorterEntry
Represents a single pot allocation rule within BankIncomeSorterController.
Money
Transaction
TransactionSplit

Enums

BankAccountNumberKind
The kind of account identifier rendered by BankAccountNumberText.
BankAccountStatus
BankAccountType
BankAlertChannel
Delivery channels a bank alert can use.
BankAlertSection
Grouping sections of a BankAlertPreferencesPanel.
BankAppGateReason
The reason a BankAppGateScreen is blocking entry to the app.
BankApprovalState
Where a BankApprovalRequest sits in the maker-checker workflow.
BankAttachmentState
Upload state of a BankMessageAttachment.
BankBalanceSize
The visual size tier for BankBalanceText.
BankBillStatus
Lifecycle state of a BankBill.
BankBiometricType
The type of biometric authenticator to present in BankBiometricPromptButton.
BankCallStatus
The verified call state rendered by BankCallVerificationScreen.
BankCardMaterial
BankCardState
BankCardSurface
BankChequeSide
Which side of the cheque is being captured.
BankConnectivityStatus
The connectivity condition a BankConnectivityBanner communicates.
BankConsentState
Lifecycle state of a data-sharing consent.
BankDeviceKind
The hardware class of a signed-in device session.
BankDeviceTrustState
The trust classification of the current device, supplied by the host app.
BankDisputeStep
Steps of the dispute filing flow.
BankDocumentDownloadState
Download lifecycle of a document row's trailing action.
BankDocumentFramingState
Describes the current document-alignment state detected by the host app.
BankDocumentType
The kind of document a BankDocument represents.
BankEidAuthState
The externally driven phase of a national eID sign-in flow rendered by BankEidLoginButton.
BankFlipAxis
Which physical axis the card rotates around.
BankFlipTrigger
How the flip animation is triggered on a BankFlipCard.
BankFoundMoneyKind
The category of a recoverable-money discovery shown in a BankFoundMoneyList.
BankHorizontalCardBackground
Background decoration for BankHorizontalAccountCard.
BankHorizontalCardLayout
Controls the arrangement of fields on the BankHorizontalAccountCard front face.
BankKycStep
The ordered steps in the KYC (Know Your Customer) onboarding flow.
BankLivenessState
Describes the current liveness-detection state.
BankMessageAuthor
Who authored a BankMessage.
BankMessageDeliveryState
Delivery lifecycle of an outgoing BankMessage.
BankMoneyProtectionStyle
Visual treatments for BankMoneyProtectionBanner.
BankNotificationType
BankPeriodUnit
Granularity of the time period navigated by a BankPeriodSelector.
BankPreset
The three first-party design presets shipped with Bank UI Kit.
BankProductItemVariant
The product family a BankProductItemTile renders.
BankQrScanState
What the host's QR decoder currently reports.
BankRecurringPattern
How often a recurring payment repeats.
BankScaMethod
Authentication methods a BankScaApprovalSheet can offer.
BankServiceHealth
Health level of a single banking service rail.
BankShariahBadgeSize
Visual size tier for BankShariahBadge.
BankSkeletonVariant
Describes the shape of the skeleton placeholder to render.
BankStandingOrderState
Lifecycle state of a BankStandingOrder.
BankToastVariant
Describes the severity and colour of a BankToastBanner.
BankTransferStep
The ordered steps in the money-transfer flow.
BankTransferTiming
Determines when a transfer should be executed.
BankValueDiffStyle
Layout variant for BankValueDiffRow.
BankWalletProvisionState
Provisioning lifecycle of the card in the target wallet.
BankWalletTarget
The digital wallet a BankWalletProvisioningButton targets.
BeneficiaryType
InsightConfidence
NumeralStyle
Controls which numeral script is used when rendering monetary values.
TransactionCategory
TransactionStatus

Extensions

BankPresetApply on BankPreset
Convenience extension that applies a BankPreset to a ThemeData.
BankThemeDataApply on ThemeData
Extension on ThemeData for wiring a BankThemeData without a preset.
NumeralStyleX on NumeralStyle
Provides numeral-conversion utilities on NumeralStyle.

Typedefs

BankPeekAccount = ({Money balance, String label})
A single entry shown by BankPeekBalance: a display label (never an account number) and its current balance.
BankScaApproveCallback = Future<bool> Function(BankScaMethod method, String? pin)
Called when the customer completes an authentication attempt.