UNPKG

@tohuhono/puck-rich-text

Version:

A puck component for rich text editing made for OberonCMS

34 lines (33 loc) 956 B
import classnames from "classnames"; const getClassNameFactory = (rootClass, styles, { baseClass = "" } = {}) => (options = {}) => { let descendant = false; let modifiers = false; if (typeof options === "string") { descendant = options; } else if (typeof options === "object") { modifiers = options; } if (descendant) { const style = styles[`${rootClass}-${descendant}`]; if (style) { return baseClass + styles[`${rootClass}-${descendant}`] || ""; } return ""; } else if (modifiers) { const prefixedModifiers = {}; for (const modifier in modifiers) { prefixedModifiers[styles[`${rootClass}--${modifier}`]] = modifiers[modifier]; } const c = styles[rootClass]; return baseClass + classnames({ [c]: !!c, // only apply the class if it exists ...prefixedModifiers }); } else { return baseClass + styles[rootClass] || ""; } }; export { getClassNameFactory };