@lobehub/ui
Version:
Lobe UI is an open-source UI component library for building AIGC web apps
44 lines (41 loc) • 1.31 kB
JavaScript
'use client';
import Icon_default from "../Icon/Icon.mjs";
import { variants } from "./style.mjs";
import { isValidElement } from "react";
import { jsx } from "react/jsx-runtime";
import { Button } from "antd";
import { cx, useThemeMode } from "antd-style";
import { Loader2Icon } from "lucide-react";
//#region src/Button/Button.tsx
const Button$1 = ({ icon, variant, glass, shadow, loading, className, type, color, danger, children, iconProps, ref, ...rest }) => {
const { isDarkMode } = useThemeMode();
const defaultVariant = type ? void 0 : variant || (isDarkMode ? "filled" : "outlined");
return /* @__PURE__ */ jsx(Button, {
className: cx(variants({
glass,
shadow
}), className),
color: color || (defaultVariant === "filled" ? "default" : void 0),
danger,
icon: icon && (isValidElement(icon) ? icon : /* @__PURE__ */ jsx(Icon_default, {
icon,
...iconProps,
size: iconProps?.size || { size: "1.2em" }
})),
loading: loading ? { icon: /* @__PURE__ */ jsx(Icon_default, {
icon: Loader2Icon,
...iconProps,
size: iconProps?.size || { size: "1.2em" },
spin: true
}) } : false,
ref,
type,
variant: defaultVariant,
...rest,
children
});
};
var Button_default = Button$1;
//#endregion
export { Button_default as default };
//# sourceMappingURL=Button.mjs.map