UNPKG

@nex-ui/react

Version:

🎉 A beautiful, modern, and reliable React component library.

38 lines (32 loc) • 1.06 kB
'use strict'; 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;