@nex-ui/react
Version:
🎉 A beautiful, modern, and reliable React component library.
38 lines (32 loc) • 1.06 kB
JavaScript
;
var clsx = require('clsx');
var react = require('react');
var utils = require('@nex-ui/utils');
var generateSlotClass = require('./generateSlotClass.cjs');
var Context = require('../provider/Context.cjs');
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
var clsx__default = /*#__PURE__*/_interopDefault(clsx);
const useSlotClasses = ({ name, slots, classNames })=>{
const { prefix } = Context.useNexUI();
return react.useMemo(()=>{
const root = `${prefix}-${utils.kebabCase(name)}`;
return composeClasses(slots, root, classNames);
}, [
classNames,
name,
prefix,
slots
]);
};
function composeClasses(slots, prefix, classes) {
const output = {};
slots.forEach((slot)=>{
const className = classes?.[slot];
output[slot] = clsx__default.default([
className,
generateSlotClass.generateSlotClass(prefix, utils.kebabCase(slot))
]);
});
return output;
}
exports.useSlotClasses = useSlotClasses;