@hadyfayed/filament-react-wrapper
Version:
Enterprise React integration for Laravel/Filament - Smart asset loading, 90%+ React-PHP function mapping, no-plugin Filament integration
94 lines • 3.13 kB
TypeScript
import { default as React } from 'react';
import { IComponentRegistry, IComponentDefinition, IComponentConfig, IComponentMetadata, IComponentMiddleware, IComponentContext, IHookManager } from '../interfaces/IComponentRegistry';
export type ReactComponentDefinition = IComponentDefinition;
export type ComponentConfig = IComponentConfig;
export type ComponentMetadata = IComponentMetadata;
export type ComponentMiddleware = IComponentMiddleware;
export type ComponentContext = IComponentContext;
export type HookManager = IHookManager;
declare class ReactComponentRegistry implements IComponentRegistry {
private components;
private events;
private extensions;
private middleware;
/**
* Register a React component with enhanced features
*/
register(definition: ReactComponentDefinition): void;
/**
* Get a registered component by name
*/
get(name: string): ReactComponentDefinition | undefined;
/**
* Create a component instance with processing
*/
create(name: string, props?: Record<string, unknown>): React.ComponentType<Record<string, unknown>> | null;
/**
* Register an extension
*/
registerExtension(name: string, extension: unknown): void;
/**
* Add global middleware
*/
addMiddleware(middleware: ComponentMiddleware): void;
/**
* Get all registered components with filtering
*/
getAll(filter?: {
category?: string;
tag?: string;
name?: RegExp;
}): Map<string, ReactComponentDefinition>;
/**
* Check if a component is registered
*/
has(name: string): boolean;
/**
* Unregister a component
*/
unregister(name: string): boolean;
/**
* Clear all registered components
*/
clear(): void;
/**
* Get list of registered component names
*/
getComponentNames(): string[];
/**
* Get component statistics
*/
getStats(): {
totalComponents: number;
categoryCounts: Record<string, number>;
tagCounts: Record<string, number>;
};
/**
* Add event listener
*/
on(event: string, callback: (...args: unknown[]) => unknown, priority?: number): void;
/**
* Remove event listener
*/
off(event: string, callback: (...args: unknown[]) => unknown): void;
/**
* Mount a component to a DOM container (for Blade template compatibility)
*/
mount(componentName: string, containerId: string, props?: Record<string, unknown>): void;
/**
* Unmount a component from a DOM container
*/
unmount(containerId: string): void;
/**
* Create hook manager for component context
*/
private createHookManager;
}
export declare const componentRegistry: ReactComponentRegistry;
export declare function registerComponents(definitions: ReactComponentDefinition[]): void;
export declare function createExtension(name: string, setup: (registry: ReactComponentRegistry) => void): {
name: string;
install: () => void;
};
export { ReactComponentRegistry };
//# sourceMappingURL=ReactComponentRegistry.d.ts.map