{"version":3,"file":"index.mjs","names":["createElement"],"sources":["../../src/FontLoader/index.tsx"],"sourcesContent":["'use client';\n\nimport { memo, useEffect, useRef } from 'react';\n\nconst createElement = (url: string) => {\n  const element = document.createElement('link');\n  element.rel = 'stylesheet';\n  element.href = url;\n  return element;\n};\n\nexport interface FontLoaderProps {\n  url: string;\n}\n\nconst FontLoader = memo<FontLoaderProps>(({ url }) => {\n  const elementRef = useRef<HTMLLinkElement | null>(null);\n\n  useEffect(() => {\n    // Create and append element\n    const element = createElement(url);\n    document.head.append(element);\n    elementRef.current = element;\n\n    // Optional: Add error handling\n    const handleError = () => console.error(`Failed to load font from ${url}`);\n    element.addEventListener('error', handleError);\n\n    // Cleanup function to remove element when component unmounts\n    // or when url changes\n    return () => {\n      element.removeEventListener('error', handleError);\n      element.remove();\n      elementRef.current = null;\n    };\n  }, [url]);\n\n  return null;\n});\n\nFontLoader.displayName = 'FontLoader';\n\nexport default FontLoader;\n"],"mappings":";;;AAIA,MAAMA,mBAAiB,QAAgB;CACrC,MAAM,UAAU,SAAS,cAAc,OAAO;AAC9C,SAAQ,MAAM;AACd,SAAQ,OAAO;AACf,QAAO;;AAOT,MAAM,aAAa,MAAuB,EAAE,UAAU;CACpD,MAAM,aAAa,OAA+B,KAAK;AAEvD,iBAAgB;EAEd,MAAM,UAAUA,gBAAc,IAAI;AAClC,WAAS,KAAK,OAAO,QAAQ;AAC7B,aAAW,UAAU;EAGrB,MAAM,oBAAoB,QAAQ,MAAM,4BAA4B,MAAM;AAC1E,UAAQ,iBAAiB,SAAS,YAAY;AAI9C,eAAa;AACX,WAAQ,oBAAoB,SAAS,YAAY;AACjD,WAAQ,QAAQ;AAChB,cAAW,UAAU;;IAEtB,CAAC,IAAI,CAAC;AAET,QAAO;EACP;AAEF,WAAW,cAAc"}