UNPKG

@itwin/itwinui-react

Version:

A react component library for iTwinUI

23 lines (22 loc) 990 B
import * as React from 'react'; import type { PolymorphicForwardRefComponent } from '../props.js'; declare const _base: <As extends keyof React.JSX.IntrinsicElements = "div">(defaultElement: As) => (className: string, attrs?: React.JSX.IntrinsicElements[As]) => PolymorphicForwardRefComponent<As, {}>; /** * Utility to create a type-safe polymorphic component with a simple class. * * Should be called as a property of the `polymorphic` object. * Returns a component that: * - uses CSS-modules scoped classes * - supports `as` prop with default element * - forwards ref and spreads rest props * - adds and merges CSS classes * - adds tabIndex to interactive elements (Safari workaround) * * @example * const MyPolyButton = polymorphic.button('my-poly-button', { type: 'button' }); * <MyPolyButton as='a' href='#'>...</MyPolyButton>; * * @private */ export declare const polymorphic: { [key in keyof React.JSX.IntrinsicElements]: ReturnType<typeof _base<key>>; }; export {};