@turnkey/react-wallet-kit
Version:
The easiest and most powerful way to integrate Turnkey's Embedded Wallets into your React applications.
72 lines (69 loc) • 2.9 kB
JavaScript
import { objectWithoutProperties as _objectWithoutProperties, objectSpread2 as _objectSpread2 } from '../../_virtual/_rollupPluginBabelHelpers.mjs';
import { jsx, jsxs } from 'react/jsx-runtime';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import '@headlessui/react';
import clsx from 'clsx';
import { Spinner } from './Spinners.mjs';
var _excluded = ["children", "className", "disabled"];
function BaseButton(props) {
var children = props.children,
className = props.className,
disabled = props.disabled,
buttonProps = _objectWithoutProperties(props, _excluded);
return jsx("button", _objectSpread2(_objectSpread2({
className: clsx("cursor-pointer", className),
disabled: !!disabled
}, buttonProps), {}, {
children: children
}));
}
function IconButton(props) {
var icon = props.icon,
onClick = props.onClick,
disabled = props.disabled,
loading = props.loading,
className = props.className,
spinnerClassName = props.spinnerClassName;
return jsx(BaseButton, {
className: clsx("flex items-center justify-center p-2 rounded-full border-none text-icon-text-light dark:text-icon-text-dark bg-icon-background-light dark:bg-icon-background-dark active:outline-2 active:outline-primary-light active:dark:outline-primary-dark", disabled && "opacity-50 cursor-not-allowed", className),
onClick: onClick,
disabled: !!disabled,
children: loading ? jsx("div", {
className: "flex justify-center items-center",
children: jsx(Spinner, {
className: clsx("w-4 h-4", spinnerClassName)
})
}) : jsx(FontAwesomeIcon, {
icon: icon
})
});
}
function ActionButton(props) {
var children = props.children,
onClick = props.onClick,
onMouseEnter = props.onMouseEnter,
onMouseLeave = props.onMouseLeave,
disabled = props.disabled,
loading = props.loading,
loadingText = props.loadingText,
className = props.className,
spinnerClassName = props.spinnerClassName;
return jsx(BaseButton, {
onClick: onClick,
onMouseEnter: onMouseEnter,
onMouseLeave: onMouseLeave,
disabled: disabled || loading,
className: clsx("w-full px-4 py-3 rounded-md border border-modal-background-dark/15 dark:border-modal-background-light/15 focus:outline-primary-light focus:dark:outline-primary-dark focus:outline-[1px] focus:outline-offset-0 transition-all duration-300", (disabled || loading) && "opacity-50 cursor-not-allowed", className),
children: loading ? jsxs("div", {
className: "flex justify-center space-x-2 items-center text-sm",
children: [jsx(Spinner, {
className: clsx("w-4 h-4", spinnerClassName)
}), loadingText && jsx("span", {
className: spinnerClassName,
children: loadingText
})]
}) : children
});
}
export { ActionButton, BaseButton, IconButton };
//# sourceMappingURL=Buttons.mjs.map