@playbooks/ui
Version:
An interface library for Playbooks.
69 lines (68 loc) • 2.2 kB
JavaScript
import { jsx } from "react/jsx-runtime";
import { useUI } from "./context.es.js";
import { Font, P } from "./fonts.es.js";
import { Div } from "./html.es.js";
import { Icon } from "./icons.es.js";
const Banner = ({ name = "Banner", tailwind, className, children, ...props }) => {
const context = useUI();
const base = context?.theme?.banner();
const computed = { ...base, ...props, tailwind, className, name };
return /* @__PURE__ */ jsx(Div, { ...computed, children });
};
const BannerIcon = ({
name = "BannerIcon",
icon = "exclamation-circle",
tailwind,
className,
...props
}) => {
const context = useUI();
const base = context?.theme?.bannerIcon();
const computed = { ...base, ...props, tailwind, className, name };
return /* @__PURE__ */ jsx(Div, { ...computed, children: /* @__PURE__ */ jsx(Icon, { icon, ...tailwind?.icon }) });
};
const BannerBody = ({ name = "BannerBody", tailwind, className, children, ...props }) => {
const context = useUI();
const base = context?.theme?.bannerBody();
const computed = { ...base, ...props, tailwind, className, name };
return /* @__PURE__ */ jsx(Div, { ...computed, children });
};
const BannerTitle = ({
name = "BannerTitle",
size = "h6",
tailwind,
className,
children,
...props
}) => {
const context = useUI();
const base = context?.theme?.bannerTitle();
const computed = { ...base, ...props, tailwind, className, name };
return /* @__PURE__ */ jsx(Font, { size, ...computed, children });
};
const BannerText = ({ name = "BannerText", tailwind, className, children, ...props }) => {
const context = useUI();
const base = context?.theme?.bannerText();
const computed = { ...base, ...props, tailwind, className, name };
return /* @__PURE__ */ jsx(P, { ...computed, children });
};
const BannerActions = ({
name = "BannerActions",
tailwind,
className,
children,
...props
}) => {
const context = useUI();
const base = context?.theme?.bannerActions();
const computed = { ...base, ...props, tailwind, className, name };
return /* @__PURE__ */ jsx(Div, { ...computed, children });
};
export {
Banner,
BannerActions,
BannerBody,
BannerIcon,
BannerText,
BannerTitle
};