@yamada-ui/close-button
Version:
Yamada UI close button component
69 lines (67 loc) • 1.7 kB
JavaScript
"use client"
// src/close-button.tsx
import {
forwardRef,
omitThemeProps,
ui,
useComponentStyle
} from "@yamada-ui/core";
import { CloseIcon } from "@yamada-ui/icon";
import { Ripple, useRipple } from "@yamada-ui/ripple";
import { cx } from "@yamada-ui/utils";
import { jsx, jsxs } from "react/jsx-runtime";
var CloseButton = forwardRef(
(props, ref) => {
const [styles, mergedProps] = useComponentStyle("CloseButton", props);
const {
className,
children,
isDisabled,
disabled = isDisabled,
disableRipple,
isRounded,
fullRounded = isRounded,
__css,
...rest
} = omitThemeProps(mergedProps);
const { onPointerDown, ...rippleProps } = useRipple({
...rest,
disabled: disableRipple || disabled
});
const css = {
alignItems: "center",
display: "flex",
flexShrink: 0,
justifyContent: "center",
outline: 0,
overflow: "hidden",
position: "relative",
...styles,
...__css,
...fullRounded ? { borderRadius: "fallback(full, 9999px)" } : {}
};
return /* @__PURE__ */ jsxs(
ui.button,
{
ref,
type: "button",
className: cx("ui-close-button", className),
"aria-label": "Close",
disabled,
__css: css,
...rest,
onPointerDown,
children: [
children || /* @__PURE__ */ jsx(CloseIcon, { height: "1em", width: "1em" }),
/* @__PURE__ */ jsx(Ripple, { ...rippleProps })
]
}
);
}
);
CloseButton.displayName = "CloseButton";
CloseButton.__ui__ = "CloseButton";
export {
CloseButton
};
//# sourceMappingURL=chunk-A66JBDCD.mjs.map