* init * buttons * buttons, ctas, icons * ctas fix * links vs ctas * alias * fixes * add tests for Buttons component * add tooltip to button story controls * add link and CTA tests * add prop types * docs * designs * docs * focus visible moved to global place * Updated some component snapshot tests. * Mocked react-inlinesvg module because of https://github.com/gilbarbara/react-inlinesvg/issues/145\#issuecomment-623453339 * tests * Copy updates Co-authored-by: Suzanne Aitchison <suzanne@forem.com> * missed spots * Apply suggestions from code review Co-authored-by: Suzanne Aitchison <suzanne@forem.com> * danger accent colors * node * colors * adding code comment * better prop name: style -> variant * button new Co-authored-by: Suzanne Aitchison <suzanne@forem.com> Co-authored-by: Nick Taylor <nick@dev.to>
28 lines
535 B
JavaScript
28 lines
535 B
JavaScript
import { h } from 'preact';
|
|
import PropTypes from 'prop-types';
|
|
import classNames from 'classnames/bind';
|
|
|
|
export const Icon = ({
|
|
src: InternalIcon,
|
|
native,
|
|
className,
|
|
...otherProps
|
|
}) => {
|
|
return (
|
|
<InternalIcon
|
|
className={classNames('crayons-icon', {
|
|
'crayons-icon--default': native,
|
|
[className]: className,
|
|
})}
|
|
{...otherProps}
|
|
/>
|
|
);
|
|
};
|
|
|
|
Icon.displayName = 'Icon';
|
|
|
|
Icon.propTypes = {
|
|
native: PropTypes.bool,
|
|
className: PropTypes.string,
|
|
src: PropTypes.node.isRequired,
|
|
};
|