VVibeFlui

Component Props

This page covers the public component props most apps use directly.

FluiKitProps

TS
import type { FluiKitProps } from "@vibeflui/core";
PropTypeRequiredDescription
schemaFluiKitConfigYesPublic schema to render.
dataRecord<string, unknown>[]NoStatic rows.
responseunknownNoProvider/endpoint-shaped response.
loadingbooleanNoExternal loading state.
errorunknownNoExternal error state.
classNamestringNoRoot class name.
onCreate(values, context) => unknown | Promise<unknown>NoExternal create handler.
onUpdate(values, context) => unknown | Promise<unknown>NoExternal update handler.
onDelete(row) => unknown | Promise<unknown>NoExternal delete handler.
onView(row) => void | Promise<void>NoExternal view handler.
onRowAction(action, row) => unknown | Promise<unknown>NoExternal row action handler.
onBulkAction(action, rows) => unknown | Promise<unknown>NoExternal bulk action handler.
onTableQueryChange(query) => voidNoTable query state callback.

Submit context

TS
type FluiKitSubmitContext = {
  schema: NormalizedFluiKitConfig;
  mode: FluiKitFormMode;
  row?: Record<string, unknown>;
};

Example

TSX
import { FluiKit } from "@vibeflui/core";
import { usersSchema } from "@/schemas/users/users.schema";

const handleCreateUser = async (values: Record<string, unknown>) => {
  return createUser(values);
};

<FluiKit
  schema={usersSchema}
  data={users}
  onCreate={handleCreateUser}
/>;

FluiKitProviderProps

TS
import type { FluiKitProviderProps } from "@vibeflui/core";

FluiKitProviderProps accepts provider-specific props and the runtime registry slots.

PropTypeRequiredDescription
childrenReactNodeYesRendered children.
pluginsFluiKitPlugin[]NoPlugins to apply.
registryFluiKitRuntimeRegistryNoRuntime registry object.
providersRecord<string, FluiKitDataProvider>NoNamed data providers.
messagesRecord<string, string>NoMessage overrides.
permissionContextFluiKitPermissionContextNoRoles, permissions, user, or custom context.

Because provider props also extend registry slots, these may be passed directly:

TSX
<FluiKitProvider
  renderers={{ StatusBadge }}
  actionHandlers={{ "users.invite": inviteUser }}
>
  <FluiKit schema={usersSchema} data={users} />
</FluiKitProvider>

For reusable apps, prefer a named registry object from createRegistry.