Skip to main content

Components Overview

@vef-framework-react/components is the UI component library for VEF Framework. It is built on top of Ant Design 6.x and extends it with layout primitives, permission-aware components, a CRUD stack, and a type-safe form system — while re-exporting the rest of Ant Design unchanged.

Every component lives in exactly one of the groups below. Components marked VEF are original or meaningfully enhanced; everything under Ant Design Pass-Through is a thin, behavior-identical re-export.

Layout

ComponentDescription
GridResponsive auto-fill grid with collapse support
StackVertical flex stack layout
CenterCentered flex layout
GroupHorizontal flex layout
ScrollAreaCustom scrollbar area with scroll event callbacks
FlexTabsHeight-filling Tabs variant — the tab bar stays fixed and the active pane stretches to the remaining space
LabeledLabel-on-top wrapper with label/group a11y semantics, aligning non-form controls with vertical form items

Page & CRUD

ComponentDescription
PagePrimary business-page container with aside panels, header, and footer
FlexCardSemantic Card wrapper for split-card and tree-table layouts
FormModalModal that combines form state, mutation, and submit/reset actions
FormDrawerSame as FormModal, rendered as a side drawer
ProSearchSearch-form container with basic/advanced areas and search/reset actions
ProTablePage-level table with built-in query, pagination, row selection, and column settings
TableThe underlying data table, with flexHeight and pagination helpers
Crud and CrudPageCombines ProSearch + ProTable + scene forms + delete mutations into one CRUD state model
EditableTableControlled, inline-editable table — editing, adding, and deleting rows are operations on a value array

Forms

ComponentDescription
FormType-safe form system built on @tanstack/react-form (useForm, form.AppField, field components)
BoolBoolean value display/input with switch, radio, radio-button, and checkbox variants
SelectDropdown selector, enhanced with useDataOptionsSelect for remote/code-set options
TreeTree view, enhanced with useDataOptionsTree
TreeSelectTree-structured dropdown, enhanced with useDataOptionsTreeSelect
UploadFile upload with inline image cropping
FileUploadChunked, resumable upload variant of Upload, wired to the framework's storage protocol
IconPickerSearchable popup grid for choosing a lucide icon
GenericSelectAbstract base for popup-driven selection controls — the foundation IconPicker is built on
LabelsKey-value label display, editor, and filter input (LabelsDisplay, LabelsEditor, LabelFilterSelect) — moved from @vef-framework-react/approval in v2.12.0

Actions & Permissions

ComponentDescription
ActionButtonButton with built-in async loading and confirm dialog
ActionGroupRenders a group of action buttons from a config array
OperationButtonActionButton + PermissionGate combined
PermissionGateConditionally renders children based on permissions

Display & Utility

ComponentDescription
ConfigProviderVEF's global theme provider — dark mode, semantic colors, CSS variables
Notifications & MessagesImperative feedback helpers — showSuccessMessage, showErrorNotification, showConfirm, and friends
IconButtonIcon-only button with tooltip
LoaderFull-screen or inline loading indicator
IconRenders a Lucide icon component passed as a prop
DynamicIconRenders a Lucide icon by name string
LogoIconThe VEF framework logo as an SVG component
ChartECharts wrapper with theme support and chart linking
CodeHighlighterSyntax-highlighted code block
CodeEditorCodeMirror 6 code editor with syntax highlighting and an imperative ref API
KeyboardKeyboard shortcut key display
FilePreviewContract for application-provided file preview hosts (FilePreviewProvider, useFilePreview) — Upload dispatches non-image previews to it (v2.11.0)
Utility ExportsNon-component exports — breakpoints, color/size/scene design-token constants, globalCssVars, useThemeTokens, query metadata symbols, and misc helpers

Animation

ComponentDescription
FlipTextCharacter flip animation
SparklesTextText with sparkle particle effects
SplitTextGSAP-powered text split animation
TypingAnimationTypewriter effect animation
BorderBeamDecorative animated beam that travels along a container's border (antd re-export)

Ant Design

Components documented on their own page because they carry VEF-specific notes (props, form integration, or usage guidance) beyond straight pass-through:

ComponentDescription
ButtonTrigger operations
InputText input field (Input.Password, Input.TextArea, Input.Search, Input.OTP)
ModalDialog overlay
AlertAlert message
AvatarUser avatar
TypographyTitle / Text / Paragraph / Link
CompactSpace.Compact — groups inputs/buttons into a seamless unit

Everything else from Ant Design is a straight, unmodified re-export — see the Ant Design Pass-Through index.

Hooks Exported by This Package

@vef-framework-react/components also exports hooks. Each is documented on its host component's page:

HooksDocumented on
useForm, useFormContext, useFormStore, createFormOptions, withForm, withFieldGroupForm
useDataOptionsSelect, useCodeSetOptionsSelectSelect
useDataOptionsTreeSelectTreeSelect
useDataOptionsTreeTree
usePaginationPropsTable
useGridCollapsedGrid
usePageEntranceEffect, usePageEntranceSettled, useViewportHeightPage
useThemeTokensUtility Exports
useIsDarkModeConfigProvider
useFilePreviewFilePreview
useChart, connectCharts, disconnectChartsChart

Hooks from @vef-framework-react/hooks (permissions, code sets, upload, debounce, …) are indexed separately in VEF Hooks.

Installation

pnpm add @vef-framework-react/components

Basic Usage

import { Button, Table, ActionButton } from '@vef-framework-react/components';

All components are tree-shakeable via named exports.