@lonli-lokli/react-mosaic-component
Version:
A React Tiling Window Manager
40 lines (39 loc) • 1.24 kB
JavaScript
// libs/react-mosaic-component/src/lib/util/OptionalBlueprint.tsx
import classNames from "classnames";
import { kebabCase } from "lodash-es";
import * as React from "react";
import { MosaicContext } from "../contextTypes.mjs";
var OptionalBlueprint;
((OptionalBlueprint2) => {
OptionalBlueprint2.Icon = ({
icon,
className,
size = "standard"
}) => {
const { blueprintNamespace } = React.useContext(MosaicContext);
return /* @__PURE__ */ React.createElement(
"span",
{
className: classNames(
className,
getIconClass(blueprintNamespace, icon),
{
[`${blueprintNamespace}-icon`]: size === "empty",
[`${blueprintNamespace}-icon-${size}`]: size !== "empty"
}
)
}
);
};
function getClasses(blueprintNamespace, ...names) {
return names.map((name) => `${blueprintNamespace}-${kebabCase(name)}`).join(" ");
}
OptionalBlueprint2.getClasses = getClasses;
function getIconClass(blueprintNamespace, iconName) {
return `${blueprintNamespace}-icon-${kebabCase(iconName)}`;
}
OptionalBlueprint2.getIconClass = getIconClass;
})(OptionalBlueprint || (OptionalBlueprint = {}));
export {
OptionalBlueprint
};