{"version":3,"file":"Asset.cjs","sources":["../../src/Asset.tsx"],"sourcesContent":["import * as React from 'react'\nimport type { RouterManagedTag } from '@tanstack/router-core'\n\ninterface ScriptAttrs {\n  [key: string]: string | boolean | undefined\n  src?: string\n  suppressHydrationWarning?: boolean\n}\n\nexport function Asset({\n  tag,\n  attrs,\n  children,\n}: RouterManagedTag): React.ReactElement | null {\n  switch (tag) {\n    case 'title':\n      return (\n        <title {...attrs} suppressHydrationWarning>\n          {children}\n        </title>\n      )\n    case 'meta':\n      return <meta {...attrs} suppressHydrationWarning />\n    case 'link':\n      return <link {...attrs} suppressHydrationWarning />\n    case 'style':\n      return (\n        <style\n          {...attrs}\n          dangerouslySetInnerHTML={{ __html: children as string }}\n        />\n      )\n    case 'script':\n      return <Script attrs={attrs}>{children}</Script>\n    default:\n      return null\n  }\n}\n\nfunction Script({\n  attrs,\n  children,\n}: {\n  attrs?: ScriptAttrs\n  children?: string\n}) {\n  React.useEffect(() => {\n    if (attrs?.src) {\n      const script = document.createElement('script')\n\n      for (const [key, value] of Object.entries(attrs)) {\n        if (\n          key !== 'suppressHydrationWarning' &&\n          value !== undefined &&\n          value !== false\n        ) {\n          script.setAttribute(\n            key,\n            typeof value === 'boolean' ? '' : String(value),\n          )\n        }\n      }\n\n      document.head.appendChild(script)\n\n      return () => {\n        if (script.parentNode) {\n          script.parentNode.removeChild(script)\n        }\n      }\n    }\n\n    if (typeof children === 'string') {\n      const script = document.createElement('script')\n      script.textContent = children\n\n      if (attrs) {\n        for (const [key, value] of Object.entries(attrs)) {\n          if (\n            key !== 'suppressHydrationWarning' &&\n            value !== undefined &&\n            value !== false\n          ) {\n            script.setAttribute(\n              key,\n              typeof value === 'boolean' ? '' : String(value),\n            )\n          }\n        }\n      }\n\n      document.head.appendChild(script)\n\n      return () => {\n        if (script.parentNode) {\n          script.parentNode.removeChild(script)\n        }\n      }\n    }\n\n    return undefined\n  }, [attrs, children])\n\n  if (attrs?.src && typeof attrs.src === 'string') {\n    return <script {...attrs} suppressHydrationWarning />\n  }\n\n  if (typeof children === 'string') {\n    return (\n      <script\n        {...attrs}\n        dangerouslySetInnerHTML={{ __html: children }}\n        suppressHydrationWarning\n      />\n    )\n  }\n\n  return null\n}\n"],"names":["jsx","React"],"mappings":";;;;;;;;;;;;;;;;;;;;;AASO,SAAS,MAAM;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AACF,GAAgD;AAC9C,UAAQ,KAAK;AAAA,IACX,KAAK;AACH,4CACG,SAAO,EAAA,GAAG,OAAO,0BAAwB,MACvC,UACH;AAAA,IAEJ,KAAK;AACH,aAAQA,2BAAAA,IAAA,QAAA,EAAM,GAAG,OAAO,0BAAwB,MAAC;AAAA,IACnD,KAAK;AACH,aAAQA,2BAAAA,IAAA,QAAA,EAAM,GAAG,OAAO,0BAAwB,MAAC;AAAA,IACnD,KAAK;AAED,aAAAA,2BAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACE,GAAG;AAAA,UACJ,yBAAyB,EAAE,QAAQ,SAAmB;AAAA,QAAA;AAAA,MACxD;AAAA,IAEJ,KAAK;AACI,aAAAA,2BAAA,IAAC,QAAO,EAAA,OAAe,SAAS,CAAA;AAAA,IACzC;AACS,aAAA;AAAA,EAAA;AAEb;AAEA,SAAS,OAAO;AAAA,EACd;AAAA,EACA;AACF,GAGG;AACDC,mBAAM,UAAU,MAAM;AACpB,QAAI,+BAAO,KAAK;AACR,YAAA,SAAS,SAAS,cAAc,QAAQ;AAE9C,iBAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,KAAK,GAAG;AAChD,YACE,QAAQ,8BACR,UAAU,UACV,UAAU,OACV;AACO,iBAAA;AAAA,YACL;AAAA,YACA,OAAO,UAAU,YAAY,KAAK,OAAO,KAAK;AAAA,UAChD;AAAA,QAAA;AAAA,MACF;AAGO,eAAA,KAAK,YAAY,MAAM;AAEhC,aAAO,MAAM;AACX,YAAI,OAAO,YAAY;AACd,iBAAA,WAAW,YAAY,MAAM;AAAA,QAAA;AAAA,MAExC;AAAA,IAAA;AAGE,QAAA,OAAO,aAAa,UAAU;AAC1B,YAAA,SAAS,SAAS,cAAc,QAAQ;AAC9C,aAAO,cAAc;AAErB,UAAI,OAAO;AACT,mBAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,KAAK,GAAG;AAChD,cACE,QAAQ,8BACR,UAAU,UACV,UAAU,OACV;AACO,mBAAA;AAAA,cACL;AAAA,cACA,OAAO,UAAU,YAAY,KAAK,OAAO,KAAK;AAAA,YAChD;AAAA,UAAA;AAAA,QACF;AAAA,MACF;AAGO,eAAA,KAAK,YAAY,MAAM;AAEhC,aAAO,MAAM;AACX,YAAI,OAAO,YAAY;AACd,iBAAA,WAAW,YAAY,MAAM;AAAA,QAAA;AAAA,MAExC;AAAA,IAAA;AAGK,WAAA;AAAA,EAAA,GACN,CAAC,OAAO,QAAQ,CAAC;AAEpB,OAAI,+BAAO,QAAO,OAAO,MAAM,QAAQ,UAAU;AAC/C,WAAQD,2BAAAA,IAAA,UAAA,EAAQ,GAAG,OAAO,0BAAwB,MAAC;AAAA,EAAA;AAGjD,MAAA,OAAO,aAAa,UAAU;AAE9B,WAAAA,2BAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACE,GAAG;AAAA,QACJ,yBAAyB,EAAE,QAAQ,SAAS;AAAA,QAC5C,0BAAwB;AAAA,MAAA;AAAA,IAC1B;AAAA,EAAA;AAIG,SAAA;AACT;;"}