2024-08-20 00:49:40 +02:00
|
|
|
// Copyright 2024, Command Line Inc.
|
|
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
|
|
|
|
import { clsx } from "clsx";
|
|
|
|
import * as React from "react";
|
|
|
|
|
|
|
|
import "./linkbutton.less";
|
|
|
|
|
|
|
|
interface LinkButtonProps {
|
|
|
|
href: string;
|
|
|
|
rel?: string;
|
|
|
|
target?: string;
|
|
|
|
children: React.ReactNode;
|
|
|
|
disabled?: boolean;
|
|
|
|
leftIcon?: React.ReactNode;
|
|
|
|
rightIcon?: React.ReactNode;
|
|
|
|
style?: React.CSSProperties;
|
|
|
|
autoFocus?: boolean;
|
|
|
|
className?: string;
|
|
|
|
termInline?: boolean;
|
|
|
|
title?: string;
|
|
|
|
onClick?: (e: React.MouseEvent<HTMLAnchorElement>) => void;
|
|
|
|
}
|
|
|
|
|
|
|
|
const LinkButton = ({ leftIcon, rightIcon, children, className, ...rest }: LinkButtonProps) => {
|
|
|
|
return (
|
2024-09-19 19:43:32 +02:00
|
|
|
<a {...rest} className={clsx("button grey solid link-button", className)}>
|
2024-09-17 07:23:05 +02:00
|
|
|
<span className="button-inner">
|
2024-08-20 00:49:40 +02:00
|
|
|
{leftIcon && <span className="icon-left">{leftIcon}</span>}
|
|
|
|
{children}
|
|
|
|
{rightIcon && <span className="icon-right">{rightIcon}</span>}
|
|
|
|
</span>
|
|
|
|
</a>
|
|
|
|
);
|
|
|
|
};
|
|
|
|
|
|
|
|
export { LinkButton };
|