@nex-ui/react
Version:
🎉 A beautiful, modern, and reliable React component library.
37 lines (31 loc) • 1.08 kB
JavaScript
;
var clsx = require('clsx');
var utils = require('@nex-ui/utils');
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
var clsx__default = /*#__PURE__*/_interopDefault(clsx);
const useSlotProps = ({ ownerState, sx, externalSlotProps, externalForwardedProps, additionalProps, classNames: classNamesProp })=>{
const props = utils.mergeProps(additionalProps, externalForwardedProps, externalSlotProps);
const className = clsx__default.default(classNamesProp, props?.className);
const resolveSx = (arg)=>{
const result = [];
utils.forEach(arg, (sx)=>{
if (utils.isFunction(sx)) {
result.push(sx(ownerState));
} else if (utils.isArray(sx)) {
result.push(...sx);
} else if (sx != null) {
result.push(sx);
}
});
return result;
};
return {
...props,
className,
sx: resolveSx([
sx,
props.sx
])
};
};
exports.useSlotProps = useSlotProps;