lucide-react
Version:
A Lucide icon library package for React applications
48 lines (44 loc) • 1.3 kB
JavaScript
/**
* @license lucide-react v0.367.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
import { forwardRef, createElement } from 'react';
import defaultAttributes from './defaultAttributes.js';
import { toKebabCase } from './shared/src/utils.js';
const createLucideIcon = (iconName, iconNode) => {
const Component = forwardRef(
({
color = "currentColor",
size = 24,
strokeWidth = 2,
absoluteStrokeWidth,
className = "",
children,
...rest
}, ref) => {
return createElement(
"svg",
{
ref,
...defaultAttributes,
width: size,
height: size,
stroke: color,
strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,
className: ["lucide", `lucide-${toKebabCase(iconName)}`, className].join(" "),
...rest
},
[
...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),
...Array.isArray(children) ? children : [children]
]
);
}
);
Component.displayName = `${iconName}`;
return Component;
};
export { createLucideIcon as default };
//# sourceMappingURL=createLucideIcon.js.map