@postenbring/hedwig-react
Version:
React components for [Hedwig Design System](https://github.com/bring/hedwig-design-system).
71 lines (69 loc) • 2.33 kB
JavaScript
import {
Box
} from "./chunk-DEABU7DB.mjs";
import {
__objRest,
__spreadProps,
__spreadValues
} from "./chunk-YOSPWY5K.mjs";
// src/alert/alert.tsx
import { forwardRef } from "react";
import { clsx } from "@postenbring/hedwig-css/typed-classname";
import { Slot } from "@radix-ui/react-slot";
import { jsx, jsxs } from "react/jsx-runtime";
var AlertTitle = forwardRef(
(_a, ref) => {
var _b = _a, { asChild, className } = _b, rest = __objRest(_b, ["asChild", "className"]);
const Component = asChild ? Slot : "div";
return /* @__PURE__ */ jsx(Component, __spreadValues({ className: clsx("hds-alert__title", className), ref }, rest));
}
);
AlertTitle.displayName = "Alert.Title";
var AlertDescription = forwardRef(
(_a, ref) => {
var _b = _a, { asChild, className } = _b, rest = __objRest(_b, ["asChild", "className"]);
const Component = asChild ? Slot : "div";
return /* @__PURE__ */ jsx(
Component,
__spreadValues({
className: clsx("hds-alert__description", className),
ref
}, rest)
);
}
);
AlertDescription.displayName = "Alert.Description";
var allowedColors = ["neutral", "info", "success", "warning", "error", void 0];
function isValidDataColor(value) {
return allowedColors.includes(value);
}
var Alert = forwardRef(
(_a, ref) => {
var _b = _a, { children, className, "data-color": color = void 0, icon, iconClassName } = _b, rest = __objRest(_b, ["children", "className", "data-color", "icon", "iconClassName"]);
const _a2 = rest, { variant } = _a2, boxProps = __objRest(_a2, ["variant"]);
const resolvedColor = color != null ? color : variant;
const validColor = isValidDataColor(resolvedColor) ? resolvedColor : void 0;
return /* @__PURE__ */ jsxs(
Box,
__spreadProps(__spreadValues({
"data-color": validColor,
className: clsx(`hds-alert`, className),
ref
}, boxProps), {
children: [
validColor === "neutral" && /* @__PURE__ */ jsx("div", { className: clsx("hds-alert--neutral__icon", iconClassName), children: icon }),
children
]
})
);
}
);
Alert.displayName = "Alert";
Alert.Title = AlertTitle;
Alert.Description = AlertDescription;
export {
AlertTitle,
AlertDescription,
Alert
};
//# sourceMappingURL=chunk-PZUJLRG4.mjs.map