UNPKG

solid-icons

Version:

Modern solution for use icons on SolidJS

38 lines (35 loc) 1.05 kB
import { getNextElement, spread, mergeProps, memo, runHydrationEvents, template } from 'solid-js/web'; var _tmpl$ = /*#__PURE__*/template(`<svg>`); const CustomIcon = props => { return IconTemplate(props.src, props); }; function IconTemplate(iconSrc, props) { return (() => { var _el$ = getNextElement(_tmpl$); spread(_el$, mergeProps(() => iconSrc.a, props, { get color() { return props.color || "currentColor"; }, get height() { return props.size || "1em"; }, get width() { return props.size || "1em"; }, "xmlns": "http://www.w3.org/2000/svg", get style() { return { ...(typeof props.style === "object" ? props.style : {}), overflow: "visible" }; }, get innerHTML() { return memo(() => !!props.title)() ? `${iconSrc.c}<title>${props.title}</title>` : iconSrc.c; }, "src": undefined }), true, false); runHydrationEvents(); return _el$; })(); } export { CustomIcon, IconTemplate };