UNPKG

create-slots

Version:
21 lines (17 loc) 1.44 kB
import * as React from 'react'; declare type SlotElement<T extends React.ElementType = any> = React.ReactElement<React.ComponentPropsWithRef<T>, T> & { ref: React.ComponentPropsWithRef<T>['ref']; }; declare const getSlots: <T extends React.ElementType<any>>(slots: React.ReactElement[], slot: T) => SlotElement<T>[]; declare const getSlot: <T extends React.ElementType<any>>(slots: React.ReactElement[], slot: T) => SlotElement<T> | undefined; declare const getLastSlot: <T extends React.ElementType<any>>(slots: React.ReactElement[], slot: T) => SlotElement<T> | undefined; declare const isSlot: <T extends React.ElementType<any>>(slotElement: SlotElement, slot: T) => slotElement is SlotElement<T>; declare const getSlotProps: <T extends SlotElement<any> | undefined, Props = T extends undefined ? undefined : React.ComponentPropsWithRef<T extends SlotElement<infer P extends React.ElementType<any>> ? P : never>>(slotElement: T) => Props; declare type Callback = (slots: SlotElement[]) => 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, SlotElement, createHost, createSlot, getLastSlot, getSlot, getSlotProps, getSlots, isSlot };