import { HTMLAttributes, Ref } from 'react'
// opposite of NonNullable
export type Nullable = T | null | undefined
export type WithRef, T> = E & { ref?: Ref }
export type UnionToIntersection = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never
export type RecursiveRequired = {
[P in keyof T]-?: T[P] extends object | undefined ? Exclude, undefined> : T[P]
}