/// import type { AnchorHTMLAttributes, ReactNode } from "react"; import type { IconNames } from "./icons/iconNames"; import { UrlObject } from "url"; export type TComponentIcon = ReactNode; export type BaseComponentSizes = "sm" | "md" | "lg"; export interface GenericKeys { [key: string]: string; } export interface DeepGenericKeys { [key: string]: string | DeepGenericKeys; } export interface IconConfigFile { name: string; icons: GenericKeys; } export interface IconSymbol { unicode: string; entity: string; } export interface Icon { name: IconNames; symbol: IconSymbol; } export interface IconObject { [key: string]: IconSymbol; } export interface ClassName { className?: string; } export type ButtonHierarchy = "primary" | "secondary" | "tertiary" | "destructive"; export type ButtonVariants = "filled" | "outlined" | "ghost" | "basic" | "custom"; export type Url = UrlObject | string; export type LinkTag = React.ComponentType<{ children: ReactNode; className?: string; href: Url; role?: string; }>; export interface DefaultLink extends ClassName, Required, "href">> { } export interface IDropdownPosition { top: number; left?: number; } export interface DropdownPositionProps { position?: IDropdownPosition; setDropdownHeight(height: number): void; setDropdownWidth(width: number): void; } export interface InputTexts { label?: ReactNode; supportingText?: ReactNode; errorMessage?: ReactNode; }