Adapters and Plugins
Adapters and plugins extend VibeFlui without changing portable schemas. They are installed as separate packages, then registered through FluiKitProvider.
Adapter pages
Core PackageShadcn PluginTailadmin PluginReact Query PluginReact Select PluginEditors PluginAnt Design PluginMantine PluginMaterial UI Plugin
Package map
| Package | Main purpose | Factory export | Prebuilt export |
|---|---|---|---|
@vibeflui/core | Core renderer, provider, schema validation, registry, themes, endpoint provider, and plugin utilities. | createFluiKitPlugin | - |
@vibeflui/shadcn | Shadcn-compatible theme metadata, StatusBadge renderer, and Switch field adapter. | createShadcnPlugin | shadcnPlugin |
@vibeflui/tailadmin | TailAdmin-compatible theme metadata, StatusBadge renderer, and Switch field adapter. | createTailAdminPlugin | tailAdminPlugin |
@vibeflui/react-query | TanStack Query-compatible data provider. | createReactQueryPlugin | ReactQueryPlugin alias |
@vibeflui/react-select | React Select field adapter. | createReactSelectPlugin | - |
@vibeflui/editors | Rich text, code, markdown, and Editor.js field adapters. | createEditorsPlugin, richtextPlugin, codePlugin, markdownPlugin, editorJsPlugin | editorsPlugin |
@vibeflui/antd | Ant Design field adapter and adapter metadata. | createAntdPlugin | antdPlugin |
@vibeflui/mantine | Mantine field adapter and adapter metadata. | createMantinePlugin | mantinePlugin |
@vibeflui/material-ui | Material UI field adapter and adapter metadata. | createMaterialUIPlugin | materialUIPlugin |
Plugin setup pattern
Optional packages export plugin factories. Some also export a prebuilt plugin constant or alias; check the package page before importing one.
TSX
import { FluiKit, FluiKitProvider } from "@vibeflui/core";
import { createShadcnPlugin } from "@vibeflui/shadcn";
const shadcnPlugin = createShadcnPlugin();
export function UsersPage() {
return (
<FluiKitProvider plugins={[shadcnPlugin]}>
<FluiKit schema={usersSchema} data={usersData} />
</FluiKitProvider>
);
}FluiKitProvider merges plugin registry entries, providers, messages, themes, adapters, and inspector panels. Direct registry, provider, and message props override plugin-provided values when they use the same keys.
Runtime slots
Plugins can register these runtime slots:
| Slot | Purpose |
|---|---|
fieldAdapters | Custom field rendering used through field.adapter. |
renderers | Custom table/detail renderers used through renderer. |
components | Custom UI components used by schema-driven surfaces. |
validators | Runtime field validation functions. |
transformers | Runtime request/response/value transformers. |
actionHandlers | Runtime handlers for create, update, delete, and custom actions. |
handlers | Legacy-compatible handler slot used by runtime execution. |
permissionResolvers | Runtime permission checks. |
optionLoaders | Runtime option loading for fields and filters. |
hooks | Runtime lifecycle hooks. |
events | Runtime event callbacks. |
classNameResolvers | Runtime class name resolution. |
messageResolvers | Runtime message resolution. |
computedResolvers | Runtime computed values. |
providers | Data providers used by actions and endpoints. |
messages | Default message overrides. |
themes | Theme presets. |
adapters | Adapter metadata for schema/config inspection. |
inspectorPanels | Optional inspector panels. |