UNPKG

@ffsm/factory

Version:

A powerful component factory for React that simplifies creation of reusable components with built-in support for composition patterns, conditional rendering, prop management, and TypeScript integration.

30 lines (29 loc) 1.5 kB
import { ComponentPropsWithRef, ComponentType, ElementType, PropsWithoutRef, ReactNode } from 'react'; import { FactoryOptions, FactoryProps, InitialChildren, InitialProps, ObjectProps } from './types'; /** * Creates a shallow copy of props object or returns empty object if undefined * @internal */ export declare function cloneProps<Props extends ObjectProps>(props: Props | undefined): Props; /** * Retrieves and removes a property from an object * @internal */ export declare function getAndDeleteProp<Result>(props: Record<string, unknown>, key: string, defaultValue?: unknown): Result; /** * Extracts and processes component props from init config and user props * @internal */ export declare function extractProps<Element extends ElementType, AdditionalProps extends ObjectProps>(init: InitialProps<Element, AdditionalProps> | undefined, props: PropsWithoutRef<FactoryProps<ElementType, AdditionalProps>>): { Component: ComponentType<ComponentPropsWithRef<Element>>; initProps: InitialProps<Element, AdditionalProps>; asSlot: boolean; outlet: InitialChildren<Element, AdditionalProps>; children: ReactNode; merged: ComponentPropsWithRef<Element>; }; /** * Filters props based on provided options * @internal */ export declare function filterProps<Element extends ElementType, AdditionalProps extends ObjectProps>(props: FactoryProps<Element, AdditionalProps>, options?: FactoryOptions<Element, AdditionalProps>): FactoryProps<Element, AdditionalProps>;