create-slots
Version:
Bring slots to React components
22 lines (18 loc) • 954 B
TypeScript
import * as React from 'react';
declare type Slot = React.ElementType;
declare const createSlotsManager: (onChange: (slot: Slot) => void) => {
register(slot: Slot, element: React.ReactElement): void;
update(slot: Slot, element: React.ReactElement): void;
unmount(slot: Slot): void;
get<T extends Slot>(slot: T): React.ReactElement<React.ComponentProps<T>, T> | undefined;
getProps<T_1 extends Slot>(slot: T_1): React.ComponentProps<T_1> | undefined;
};
declare type Slots = ReturnType<typeof createSlotsManager>;
declare type Callback = (Slots: Slots) => JSX.Element | null;
declare const HostSlots: ({ children, callback, }: {
children: React.ReactNode;
callback: Callback;
}) => JSX.Element;
declare const createHost: (children: React.ReactNode, callback: Callback) => JSX.Element;
declare const createSlot: <T extends React.ElementType<any>>(Fallback?: T | undefined) => T;
export { HostSlots, createHost, createSlot };