UNPKG

@chakra-ui/react

Version:

Responsive and accessible React UI components built with React and Emotion

36 lines (32 loc) 1.01 kB
"use strict"; 'use strict'; var callAll = require('./utils/call-all.cjs'); const clsx = (...args) => args.map((str) => str?.trim?.()).filter(Boolean).join(" "); const eventRegex = /^on[A-Z]/; function mergeProps(...args) { let result = {}; for (let props of args) { for (let key in result) { if (eventRegex.test(key) && typeof result[key] === "function" && typeof props[key] === "function") { result[key] = callAll.callAll(result[key], props[key]); continue; } if (key === "className" || key === "class") { result[key] = clsx(result[key], props[key]); continue; } if (key === "style") { result[key] = Object.assign({}, result[key] ?? {}, props[key] ?? {}); continue; } result[key] = props[key] !== void 0 ? props[key] : result[key]; } for (let key in props) { if (result[key] === void 0) { result[key] = props[key]; } } } return result; } exports.mergeProps = mergeProps;