/** * Makes specified properties required. * * @example * ``` * import { AlertProps } from '~components/alert/interfaces' * * type InternalAlertProps = SomeRequired * * function Alert(props: AlertProps) { ... } * function InternalAlert(props: InternalAlertProps) { ... } * ``` */ export type SomeRequired = Type & { [Key in Keys]-?: Type[Key] }; /** * Utility type that makes a union of given type and undefined. * @example * ``` * type OptionalString = Optional * type OptionalStringOrNumber = Optional * ``` */ export type Optional = Type | undefined; /** * Utility type for focus ring styling properties. * Used across components to provide consistent focus ring customization. * * @example * ``` * export interface Style { * root?: { * focusRing?: FocusRingStyle; * }; * } * ``` */ export interface FocusRingStyle { borderColor?: string; borderRadius?: string; borderWidth?: string; }