{"version":3,"file":"index.cjs","sources":["../../src/shared/hooks/use-loader.ts","../../src/shared/components/file-picker.tsx","../../src/shared/index.ts"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/@framework';\nimport { LoaderPlugin } from '@embedpdf/plugin-loader';\n\nexport const useLoaderPlugin = () => usePlugin<LoaderPlugin>(LoaderPlugin.id);\nexport const useLoaderCapability = () => useCapability<LoaderPlugin>(LoaderPlugin.id);\n","import { ChangeEvent, useEffect, useRef } from '@framework';\nimport { useLoaderCapability } from '../hooks';\n\n/** Wrap the viewer root */\nexport function FilePicker() {\n  const { provides: cap } = useLoaderCapability(); // capability\n  const inputRef = useRef<HTMLInputElement>(null);\n\n  /* ─── listen for “open file” requests ─── */\n  useEffect(() => {\n    if (!cap) return;\n    const unsub = cap.onOpenFileRequest((req) => {\n      if (req === 'open' && inputRef.current) inputRef.current.click();\n    });\n    return unsub;\n  }, [cap]);\n\n  /* ─── handle actual file selection ─── */\n  const onChange = async (e: ChangeEvent<HTMLInputElement>) => {\n    const file = (e.currentTarget as HTMLInputElement).files?.[0];\n    if (file && cap)\n      await cap.loadDocument({\n        type: 'buffer',\n        pdfFile: {\n          id: Math.random().toString(36).substring(2, 15),\n          name: file.name,\n          content: await file.arrayBuffer(),\n        },\n      });\n  };\n\n  return (\n    <>\n      {/* Hidden picker */}\n      <input\n        ref={inputRef}\n        type=\"file\"\n        accept=\"application/pdf\"\n        style={{ display: 'none' }}\n        onChange={onChange}\n      />\n    </>\n  );\n}\n","import { createPluginPackage } from '@embedpdf/core';\nimport { LoaderPluginPackage as BaseLoaderPackage } from '@embedpdf/plugin-loader';\n\nimport { FilePicker } from './components';\n\nexport * from './hooks';\nexport * from './components';\nexport * from '@embedpdf/plugin-loader';\n\nexport const LoaderPluginPackage = createPluginPackage(BaseLoaderPackage)\n  .addUtility(FilePicker)\n  .build();\n"],"names":["useLoaderCapability","useCapability","LoaderPlugin","id","FilePicker","provides","cap","inputRef","useRef","useEffect","onOpenFileRequest","req","current","click","Fragment","children","jsxRuntime","jsx","ref","type","accept","style","display","onChange","async","e","file","_a","currentTarget","files","loadDocument","pdfFile","Math","random","toString","substring","name","content","arrayBuffer","LoaderPluginPackage","createPluginPackage","BaseLoaderPackage","addUtility","build","usePlugin"],"mappings":"oPAIaA,EAAsB,IAAMC,gBAA4BC,EAAAA,aAAaC,ICA3E,SAASC,IACd,MAAQC,SAAUC,GAAQN,IACpBO,EAAWC,SAAyB,MAG1CC,EAAAA,WAAU,KACR,IAAKH,EAAK,OAIH,OAHOA,EAAII,mBAAmBC,IACvB,SAARA,GAAkBJ,EAASK,SAASL,EAASK,QAAQC,OAAM,GAE1D,GACN,CAACP,IAgBJ,aAGIQ,EAAAA,SAAA,CAAAC,SAAAC,EAAAC,IAAC,QAAA,CACCC,IAAKX,EACLY,KAAK,OACLC,OAAO,kBACPC,MAAO,CAAEC,QAAS,QAClBC,SArBWC,MAAOC,UACtB,MAAMC,EAAQ,OAAAC,EAAAF,EAAEG,cAAmCC,YAAQ,EAAAF,EAAA,GACvDD,GAAQpB,SACJA,EAAIwB,aAAa,CACrBX,KAAM,SACNY,QAAS,CACP5B,GAAI6B,KAAKC,SAASC,SAAS,IAAIC,UAAU,EAAG,IAC5CC,KAAMV,EAAKU,KACXC,cAAeX,EAAKY,gBAEvB,KAeP,CClCO,MAAMC,EAAsBC,EAAoBA,oBAAAC,EAAiBF,qBACrEG,WAAWtC,GACXuC,iHFR4B,IAAMC,YAAwB1C,EAAAA,aAAaC"}