import { type ElementType, type JSXElementConstructor } from 'react'; import { type IconBoxShapes } from '../components/IconBox/constants'; import type { AccentColorNamesType, ChildrenProps, EmotionColorNamesType, SingleOrResponsive, SizeExtendedDictionaryType, SpiritPolymorphicElementPropsWithRef, StyleProps } from './shared'; export type IconBoxShapeKeys = keyof typeof IconBoxShapes; export type IconBoxShapeType = (typeof IconBoxShapes)[IconBoxShapeKeys]; export type IconBoxColorsType = AccentColorNamesType | EmotionColorNamesType; export interface IconBoxBaseProps extends ChildrenProps, StyleProps { color?: IconBoxColorsType; shape?: IconBoxShapeType; hasBorder?: boolean; iconName: string; isSubtle?: boolean; size?: SingleOrResponsive; } export type IconBoxProps = { elementType?: E | JSXElementConstructor; } & IconBoxBaseProps; export type SpiritIconBoxProps = IconBoxProps & SpiritPolymorphicElementPropsWithRef>;