Biomimicry-AI/Nexus
0
1import * as React from "react";2 3import styles from "./button.module.scss";4 5export type ButtonType = "primary" | "danger" | null;6 7export function IconButton(props: {8 onClick?: () => void;9 icon?: JSX.Element;10 type?: ButtonType;11 text?: string;12 bordered?: boolean;13 shadow?: boolean;14 className?: string;15 title?: string;16 disabled?: boolean;17 tabIndex?: number;18 autoFocus?: boolean;19}) {20 return (21 <button22 className={23 styles["icon-button"] +24 ` ${props.bordered && styles.border} ${props.shadow && styles.shadow} ${25 props.className ?? ""26 } clickable ${styles[props.type ?? ""]}`27 }28 onClick={props.onClick}29 title={props.title}30 disabled={props.disabled}31 role="button"32 tabIndex={props.tabIndex}33 autoFocus={props.autoFocus}34 >35 {props.icon && (36 <div37 className={38 styles["icon-button-icon"] +39 ` ${props.type === "primary" && "no-dark"}`40 }41 >42 {props.icon}43 </div>44 )}45 46 {props.text && (47 <div className={styles["icon-button-text"]}>{props.text}</div>48 )}49 </button>50 );51}52 