@itwin/itwinui-react
Version:
A react component library for iTwinUI
23 lines (22 loc) • 990 B
TypeScript
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 {};