Skip to content

Component Overview ​

vyuh_cdx_ui exports a focused catalog of widget families, and the CDX UI docs also cover sibling UI packages such as cdx_panes, vyuh_table, cdx_kanban_view, cdx_tree_view, cdx_calendar_view, vyuh_timelines, vyuh_command_palette, and cdx_field_formatting. This page is the authoritative index — one row per component or package surface, grouped by family, with a one-line description and a link to the deep-dive page.

For background on the underlying contracts (theme tokens, overlay positioning, interaction model), see the Concepts section.

Theme ​

TypePurposePage
CdxConfigThemeExtension — control radius, padding, height, hover/selected tint, status paletteTheming
createCdxThemeFactory producing a ThemeData with all CDX component themes wired inTheming
CdxConfig.of(context)Scale-aware resolver for control sizing, gaps, icon size, and status paletteDensity & Sizing

Buttons ​

WidgetPurposePage
Button.filled / .outlined / .textLabel + optional icon, async loading state, destructive variantButtons
Button.iconIcon-only button — size: CdxControlSize.compact for dense rows, isActive for toggle barsButtons
Button.toggleCDX on/off toggle controlButtons
CdxMenuTrigger.splitPrimary action joined to a caret menu — filled / outlined / textMenus
CdxSegmentedTabsPill-style segmented selector with sliding indicatorButtons
CdxDismissAffordanceCompact close glyph for chips, inputs, filter rowsButtons
AlertsNotificationsButtonBell icon with unread-count BadgeButtons

Dialogs ​

WidgetPurposePage
DialogShellSized container — header + content + optional footerDialogs
ConfirmationDialog.info / .error / .confirm / .destructiveStandard four confirmation flavorsDialogs
DialogHeader / DialogFooter / DialogAction / DialogMessageComposable primitives for custom dialogsDialogs
DialogVariantstandard / primary / destructive / error chromeDialogs
MessageSeverityerror / warning / success / info for footer messagesDialogs
WidgetPurposePage
CdxMenu<T>The one menu: commands, single-select and multi-select behind a field, button, icon, split, input, region or custom trigger.Menus
CdxMenuFormField<T> / CdxMenuMultiFormField<T>FormField bindings of a single-select and a multi-select menuMenus
CdxMenuItem<T>Sealed rows: option / action / submenu / header / divider / customMenus
CdxMenuTrigger.field / .fieldEnd / .button / .icon / .split / .input / .region / .customWhat opens the menuMenus
CdxMenuSourceItems that load: once, per search, live, or built while openMenus
CdxMenuController<T>Open, close, toggle, refresh and select from codeMenus

Pickers ​

WidgetPurposePage
DateTimePickerEditable text field + popover, DateTimePickerMode.date / .time / .dateTime, Today quick-jumpPickers
CdxDateRangePickerRange field with two-tap calendar popoverPickers
DateTimePopoverInline calendar + scroll-time popover (used by DateTimePicker)Pickers
CdxDateRangePopover / CdxSingleDatePopoverCalendar grids with shadcn-style range visualsPickers
TimeScrollPickeriOS-style hour + minute scroll columns with minuteStepPickers
TimeStepper◀ 22 ▶ compact stepper with scroll-wheel + direct-editPickers
DateTimeInputFormatterTextInputFormatter enforcing DD/MM/YYYY HH:mm-style patternsPickers

Cards ​

WidgetPurposePage
SectionCardHeader (icon + title + trailing) + body, plus SectionCard.stateful (loading/error/empty)Cards
CompactCardLow-profile card for list items — leading / trailing / footer slotsCards
HeroCardSelectable visual tile with hero icon + title + selection checkCards
StatTile / StatGridCompact metric tile and responsive metric gridCards

Badges, Chips & Banners ​

WidgetPurposePage
StatusBadge (+ .primary / .secondary / .tertiary / .error / .neutral / .tinted / .compact / .count)Status pills with rectangle / pill / rounded shapesBadges
StatusBadgeColorSchemeSealed strategy — explicit / primary / secondary / tertiary / error / neutral / tintedBadges
CdxChipFilter / token chip — selected, onDeleted, labelBuilder, compactBadges
Banner.warning / .critical / .success / .info / .neutralStatus banner card — BannerType paletteBadges
UnderConstructionOverlay + UnderConstructionControllerApp-wide "under construction" banner registryBadges

Inputs ​

WidgetPurposePage
CdxSliderLabeled slider with icon, top / trailing / none label position, size for densityInputs
CdxRangeSliderTwo-thumb CdxSlider with a minimum gap between the thumbsInputs
RemarksFieldLive-formatting rich text input via textf (bold, italic, highlight, code)Inputs
RemarksTextRead-only renderer for the same markupInputs
FormattingToolbarBold / italic / highlight / underline / strike / code / superscript / subscriptInputs
CdxFieldLabelStandard form-field label with required asterisk + focus / error coloringInputs

State Views ​

WidgetPurposePage
AsyncView<T>Future<T> / Stream<T> / direct data with loading / error / empty / content branchesState Views
ContentStateView<T>A ContentState<T> (idle, loading, refreshing, ready, empty, partial, stale, offline, unauthorized, failed) with progress strip and bannersState Views
LoadingStateCentered CircularProgress + optional messageState Views
EmptyStateIcon + title + subtitle + optional actionState Views
ErrorStateTappable error icon → diagnostics dialog (timestamp, type, message, stack)State Views
RouteErrorViewFull-page error surface for GoRouter.errorBuilderState Views

Layout & Navigation ​

WidgetPurposePage
MasterDetailScaffold + PanelPresentation.docked / .overlay / .autoResponsive master-detail with resizable docked panel and barrier-overlay fallbackLayout
LazyIndexedStack / LazyIndexedStackBuilderIndexedStack that builds children on first selectionLayout
RouteAwareTabController / RouteAwareTabBar / RouteAwareTabBarViewTabController synced to a go_router locationLayout
RouteAwareLazyIndexedStackLazy variant of the above, indexed by tab routeLayout
CdxStepper + CdxStep + CdxStepStatusThe steps of a flow as a segmented row, a rail or a compact bar; one tab stop when steps can be selected (not in compact), arrow keys, Home and End; a long segmented row fades its edge and pages with chevronsLayout
Wizard + WizardController + WizardStepSidebar wizard on a CdxStepper rail (glyphs and titles, no status words), sequential mode, busy spinner and gatingLayout

Panels ​

WidgetPurposePage
CdxSlideInPanel.showSlide-in panel from right / left / bottom with a built-in inner navigatorPanels
CdxPanelPage.pushPush a sub-page inside the panel (master/detail without nesting modals)Panels
PanelDimension.size / .fraction / .clampedWidth / height sizing strategiesPanels
CdxSlideInPanelNavigation (extension on BuildContext)dismissAndGo / dismissAndPush — close all panels, then routePanels

Data Tables ​

WidgetPurposePage
TableWidget<T>Generic table with pagination, resize, reorder, pinned columns, row selection, loading/error/empty statesData Tables
TableColumn<T>Text, badge, number, and custom column factories with header actions and menu item hooksData Tables
TableConfig / TableDensity / TableThemeGrouped configuration, density presets, and theme overridesData Tables
HoverColumnResizer / TableResizeStorePublic resize primitives for custom table headersData Tables

Kanban Boards ​

WidgetPurposePage
KanbanQueryBase filter, sort, search, columns, and segments for a boardKanban Boards
KanbanColumnSpec / KanbanSegmentServer-side column filters and optional per-column toggle filtersKanban Boards
KanbanDataSource<T>Transport-agnostic fetch contract for all columns or one column pageKanban Boards
KanbanController<T>Raw MobX state, per-column pagination, refresh, and realtime reconciliationKanban Boards
KanbanBoard<T> / KanbanItemViewBoard renderer and default item cardKanban Boards

Tree Views ​

WidgetPurposePage
CdxTreeDataSource<T>Loads roots and children from any backendTree Views
CdxTreeController<T>Expansion, selection, loading, errors, and lazy/eager loadingTree Views
CdxTreeItem<T>Typed node model with title, value, id, and hasChildren metadataTree Views
CdxTreeView<T>Hierarchy renderer with default or custom rowsTree Views
CdxTreeSplitView<T>Left tree plus arbitrary right-hand detail surfaceTree Views

Calendar Views ​

WidgetPurposePage
CalendarQueryDate-field query shape with base filters, search, sort, and selected rangesCalendar Views
CalendarDataSource<T>Transport-agnostic date-bucket and row fetch contractCalendar Views
CalendarController<T>Selected range, buckets, rows, and calendar stateCalendar Views
CalendarShell<T>Resizable calendar rail plus caller-provided detail builderCalendar Views

Overlays ​

HelperPurposePage
buildOverlayFollowerViewport-aware CompositedTransformFollower for dropdown / picker overlaysOverlays
CdxMenuSurfaceThe one fill, hairline border and shadow every floating panel is drawn onOverlays
CdxPopoverWidth / CdxMenuTriggerWidthHow wide a menu panel and its trigger are (trigger, content, fixed)Menus
CdxStateLayerCanonical interactive surface — hover / splash / selection / focusOverlays
CdxInteractionOverlayToken resolvers for hover / splash / highlight / mouse cursor / outlined borderOverlays

Timeline ​

WidgetPurposePage
ActivityTimelineActivity feed on vyuh_timelines in three variants (Rail, Sections, Rows) with date groupingTimeline
ActivityItem (sealed)TaskActivityItem / MilestoneActivityItem / CustomActivityItemTimeline
ActivityEntryContentTitle + actor + timestamp content layout (inline / card / compact)Timeline
Timeline / TimelineEntryLower-level timeline package surface for custom activity feedsTimeline
DotIndicator / IconIndicator / PendingIndicator / CustomIndicatorMarker primitives from vyuh_timelinesTimeline

Command Palette ​

TypePurposePage
CommandPalettePluginVyuh plugin that registers the global shortcut, owns providers, and opens the palette dialogCommand Palette
CommandPaletteConfig / PlatformLaunchShortcutLaunch shortcut, tab-cycle shortcut, and auth/session canOpen gateCommand Palette
SearchProvider / SearchTab / PaletteItemProvider contract and result modelCommand Palette
NavigationSearchProviderDefault provider for route/navigation entries with optional permission gatesCommand Palette

Authorization ​

WidgetPurposePage
DisabledOverlayWrap any widget to render dimmed + non-interactive with optional tooltipAuthorization
LockedSurfaceFull-bleed "Access Restricted" placeholder for denied routes / sectionsAuthorization
RedactedValueInline •••• mask used in field-level redactionAuthorization

Electronic Signatures ​

WidgetPurposePage
SignatureCeremonySlot shell that lays out the parts of one signing, inline or in a dialogElectronic Signatures
SignatureSubject / SignerChain / SignatureMeaningWhat is signed, who signs in which order, and what the signature meansElectronic Signatures
SignatureCredentials / SignatureReasonRe-authentication fields and the audit remark, as dumb fieldsElectronic Signatures
SignatureReceiptThe record of a completed signature, with a copy buttonElectronic Signatures
SignatureStyleOne style object per part, resolved from the themeElectronic Signatures

Filter / Animation / Keys / Progress ​

WidgetPurposePage
FilterBar (alias ChoiceChipGroup)Single-select chip strip with optional leading icon + SemanticKeyFilter & Animation
BeaconPulsing ring or glowing dot for attention / pending statesFilter & Animation
SemanticKeyDot-separated ValueKey factory for automation / testing / analyticsFilter & Animation
CircularProgress / LineProgressThemed determinate / indeterminate progressFilter & Animation

Quick import reference ​

Everything is exported from a single barrel:

dart
import 'package:vyuh_cdx_ui/vyuh_cdx_ui.dart';

A lighter cards sub-export covers SectionCard / CompactCard / HeroCard without pulling the rest of the catalog:

dart
import 'package:vyuh_cdx_ui/cards.dart';

When you already import the main barrel and only need SectionCard, use a show combinator to avoid duplicate card names in examples:

dart
import 'package:vyuh_cdx_ui/cards.dart' show SectionCard;

Sibling packages have their own barrels:

dart
import 'package:cdx_panes/cdx_panes.dart';
import 'package:vyuh_table/vyuh_table.dart';
import 'package:cdx_kanban_view/cdx_kanban_view.dart';
import 'package:cdx_tree_view/cdx_tree_view.dart';
import 'package:cdx_calendar_view/cdx_calendar_view.dart';
import 'package:vyuh_timelines/vyuh_timelines.dart';
import 'package:vyuh_command_palette/vyuh_command_palette.dart';
import 'package:cdx_field_formatting/cdx_field_formatting.dart';

Next steps ​

  • Quick Start — compose primitives into a screen
  • Theming — tune CdxConfig for your brand
  • Overlays — how dropdowns, menus, and pickers share one positioning + interaction layer