All checks were successful
Build and Deploy MITM Webserver / build (push) Successful in 8s
58 lines
1.6 KiB
TypeScript
58 lines
1.6 KiB
TypeScript
import React, { forwardRef } from 'react';
|
|
|
|
export type IconProps = React.SVGProps<SVGSVGElement> & {
|
|
/**
|
|
* Width/height of the icon. If a number is provided it will be used as px.
|
|
* Default: 24
|
|
*/
|
|
size?: number | string;
|
|
/**
|
|
* Icon color — will be used as the fill for paths.
|
|
* Default: 'currentColor' so color can be controlled via CSS.
|
|
*/
|
|
color?: string;
|
|
/**
|
|
* Accessible title. If provided, title will be rendered and aria-hidden will be false.
|
|
*/
|
|
title?: string;
|
|
};
|
|
|
|
const TerminalIcon = forwardRef<SVGSVGElement, IconProps>(
|
|
({ size = 24, color = 'currentColor', title, ...rest }, ref) => {
|
|
// If user passed a numeric size, treat as px
|
|
const sizeValue = typeof size === 'number' ? `${size}px` : size;
|
|
|
|
return (
|
|
<svg
|
|
ref={ref}
|
|
width={sizeValue}
|
|
height={sizeValue}
|
|
viewBox="0 0 24 24"
|
|
fill="none"
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
aria-hidden={title ? undefined : true}
|
|
role={title ? 'img' : 'presentation'}
|
|
{...rest}
|
|
>
|
|
{title ? <title>{title}</title> : null}
|
|
|
|
<path
|
|
d="M5.0333 14.8284L6.44751 16.2426L10.6902 12L6.44751 7.75733L5.0333 9.17155L7.86172 12L5.0333 14.8284Z"
|
|
fill={color}
|
|
/>
|
|
<path d="M15 14H11V16H15V14Z" fill={color} />
|
|
<path
|
|
fillRule="evenodd"
|
|
clipRule="evenodd"
|
|
d="M2 2C0.895431 2 0 2.89543 0 4V20C0 21.1046 0.89543 22 2 22H22C23.1046 22 24 21.1046 24 20V4C24 2.89543 23.1046 2 22 2H2ZM22 4H2L2 20H22V4Z"
|
|
fill={color}
|
|
/>
|
|
</svg>
|
|
);
|
|
},
|
|
);
|
|
|
|
TerminalIcon.displayName = 'TerminalIcon';
|
|
|
|
export default TerminalIcon;
|