import type { ChildrenList } from './children-list.js' /** * Callable that produces a JSX element from props (and optional children). * Both `Shade(...)` factories and plain functional components conform to * this shape. */ export type ShadeComponent = (arg: TProps, children?: ChildrenList) => JSX.Element /** * Discriminates {@link ShadeComponent} from intrinsic-element tag names. * Intentionally permissive — any function is treated as a component since * VNodes carry no other discriminator. */ export const isShadeComponent = (obj: any): obj is ShadeComponent => { return typeof obj === 'function' }