import type {
CSSProperties,
AnchorHTMLAttributes,
ButtonHTMLAttributes,
} from 'react'
import type { Classes } from './styles'
export { spacings, SpacingEnum, spacingToRem } from '@toptal/picasso-provider'
export type {
Sizes,
SizeType,
SpacingType,
PicassoSpacing,
} from '@toptal/picasso-provider'
export interface BaseProps {
/** Classnames applied to root element */
className?: string
/** Style applied to root element */
style?: CSSProperties
'data-testid'?: string
'data-private'?: boolean | 'lipsum'
}
export interface JssProps {
classes: Classes
}
export interface TextLabelProps {
/** Defines if the text should be transformed to title case */
titleCase?: boolean
}
export type StandardProps = BaseProps & Partial
// Take all props, excluding props from JssProps
// type and other passed props
//
// example:
// OmitInternalProps
// OmitInternalProps
export type OmitInternalProps = Pick<
T,
Exclude
>
export interface NamedComponent
{
defaultProps?: Partial
displayName?: string
}
// TODO: [FF-125] inherit the `as` target's props for full polymorphic
// typing — https://toptal-core.atlassian.net/browse/FF-125
//
// Strict on declared props, permissive on extras. Declared `P` fields are
// type-checked at call sites (e.g. `