@yamada-ui/card
Version:
Yamada UI card component
119 lines (117 loc) • 2.65 kB
JavaScript
"use client"
// src/card.tsx
import {
forwardRef,
omitThemeProps,
ui,
useComponentMultiStyle
} from "@yamada-ui/core";
import { createContext, cx } from "@yamada-ui/utils";
import { jsx } from "react/jsx-runtime";
var [CardProvider, useCard] = createContext({
name: `CardContext`,
errorMessage: `useCard returned is 'undefined'. Seems you forgot to wrap the components in "<Card />" `
});
var Card = forwardRef((props, ref) => {
const [styles, mergedProps] = useComponentMultiStyle("Card", props);
const {
className,
align: alignItems,
direction = "column",
flexDirection = direction,
justify: justifyContent,
...rest
} = omitThemeProps(mergedProps);
const css = {
alignItems,
display: "flex",
flexDirection,
justifyContent,
wordWrap: "break-word",
...styles.container
};
return /* @__PURE__ */ jsx(CardProvider, { value: styles, children: /* @__PURE__ */ jsx(
ui.article,
{
ref,
className: cx("ui-card", className),
__css: css,
...rest
}
) });
});
Card.displayName = "Card";
Card.__ui__ = "Card";
var CardHeader = forwardRef(
({ className, ...rest }, ref) => {
const styles = useCard();
const css = {
alignItems: "center",
display: "flex",
justifyContent: "flex-start",
...styles.header
};
return /* @__PURE__ */ jsx(
ui.header,
{
ref,
className: cx("ui-card__header", className),
__css: css,
...rest
}
);
}
);
CardHeader.displayName = "CardHeader";
CardHeader.__ui__ = "CardHeader";
var CardBody = forwardRef(
({ className, ...rest }, ref) => {
const styles = useCard();
const css = {
alignItems: "flex-start",
display: "flex",
flexDirection: "column",
...styles.body
};
return /* @__PURE__ */ jsx(
ui.div,
{
ref,
className: cx("ui-card__body", className),
__css: css,
...rest
}
);
}
);
CardBody.displayName = "CardBody";
CardBody.__ui__ = "CardBody";
var CardFooter = forwardRef(
({ className, ...rest }, ref) => {
const styles = useCard();
const css = {
alignItems: "center",
display: "flex",
justifyContent: "flex-start",
...styles.footer
};
return /* @__PURE__ */ jsx(
ui.footer,
{
ref,
className: cx("ui-card__footer", className),
__css: css,
...rest
}
);
}
);
CardFooter.displayName = "CardFooter";
CardFooter.__ui__ = "CardFooter";
export {
Card,
CardHeader,
CardBody,
CardFooter
};
//# sourceMappingURL=chunk-RIQL43SS.mjs.map