{"version":3,"file":"Icon.mjs","sources":["../../src/Icon.tsx"],"sourcesContent":["import { createMemo, For, splitProps, useContext } from 'solid-js';\nimport { Dynamic } from 'solid-js/web';\nimport { buildLucideIconNode, hasA11yProp, mergeClasses } from '@lucide/shared';\nimport { LucideIconData, LucideIconNode, LucideProps } from './types';\nimport { LucideContext } from './context';\n\ntype IconProps =\n  | {\n      icon: LucideIconData;\n      iconNode?: never;\n    }\n  | {\n      icon?: never;\n      iconNode?: LucideIconNode[];\n    };\n\nconst Icon = (props: LucideProps & IconProps) => {\n  const [localProps, rest] = splitProps(props, [\n    'color',\n    'size',\n    'width',\n    'height',\n    'strokeWidth',\n    'children',\n    'class',\n    'icon',\n    'iconNode',\n    'absoluteStrokeWidth',\n    'nonScalingStroke',\n  ]);\n\n  const globalProps = useContext(LucideContext);\n\n  const icon = createMemo<LucideIconData>(\n    () =>\n      localProps.icon ?? {\n        node: localProps.iconNode ?? ([] as LucideIconNode[]),\n        size: 24,\n        aliases: [],\n      },\n  );\n\n  const builtIcon = createMemo(() =>\n    buildLucideIconNode(icon(), {\n      color: localProps.color ?? globalProps.color,\n      width: localProps.width ?? localProps.size ?? globalProps.size,\n      height: localProps.height ?? localProps.size ?? globalProps.size,\n      strokeWidth: localProps.strokeWidth ?? globalProps.strokeWidth,\n      absoluteStrokeWidth: localProps.absoluteStrokeWidth ?? globalProps.absoluteStrokeWidth,\n      nonScalingStroke: localProps.nonScalingStroke ?? globalProps.nonScalingStroke,\n      className: mergeClasses('lucide-icon', globalProps.class, localProps.class),\n      hasA11yProp: Boolean(localProps.children) || hasA11yProp(rest),\n      attributes: rest,\n    }),\n  );\n\n  return (\n    <svg {...builtIcon()[1]}>\n      <For each={builtIcon()[2] ?? []}>\n        {([elementName, attrs]) => {\n          return (\n            <Dynamic\n              component={elementName}\n              {...attrs}\n            />\n          );\n        }}\n      </For>\n    </svg>\n  );\n};\n\nexport default Icon;\n"],"names":["Icon","props","localProps","rest","splitProps","globalProps","useContext","LucideContext","icon","createMemo","node","iconNode","size","aliases","builtIcon","buildLucideIconNode","color","width","height","strokeWidth","absoluteStrokeWidth","nonScalingStroke","className","mergeClasses","class","hasA11yProp","Boolean","children","attributes","_el$","_tmpl$","_$spread","_$mergeProps","_$insert","_$createComponent","For","each","elementName","attrs","Dynamic","component"],"mappings":"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"}