{"version":3,"file":"index.cjs","sources":["../../src/svelte/hooks/use-loader.ts","../../src/svelte/components/file-picker.svelte","../../src/svelte/index.ts"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/svelte';\nimport { LoaderPlugin } from '@embedpdf/plugin-loader';\n\nexport const useLoaderPlugin = () => usePlugin<LoaderPlugin>(LoaderPlugin.id);\nexport const useLoaderCapability = () => useCapability<LoaderPlugin>(LoaderPlugin.id);\n","<script lang=\"ts\">\n  import { useLoaderCapability } from '../hooks';\n\n  const loaderCapability = useLoaderCapability();\n\n  let inputRef: HTMLInputElement | null = null;\n\n  // Subscribe/unsubscribe whenever the capability changes\n  $effect(() => {\n    if (!loaderCapability.provides) return;\n\n    // Listen for \"open file\" requests\n    const unsubscribe = loaderCapability.provides.onOpenFileRequest((req) => {\n      if (req === 'open' && inputRef) {\n        inputRef.click();\n      }\n    });\n\n    // Cleanup function\n    return () => {\n      unsubscribe();\n    };\n  });\n\n  // Handle actual file selection\n  async function onChange(event: Event) {\n    const target = event.target as HTMLInputElement;\n    const file = target.files?.[0];\n    const cap = loaderCapability.provides;\n\n    if (file && cap) {\n      const arrayBuffer = await file.arrayBuffer();\n      await cap.loadDocument({\n        type: 'buffer',\n        pdfFile: {\n          id: Math.random().toString(36).substring(2, 15),\n          name: file.name,\n          content: arrayBuffer,\n        },\n      });\n    }\n  }\n</script>\n\n<!-- Hidden file picker -->\n<input\n  bind:this={inputRef}\n  type=\"file\"\n  accept=\"application/pdf\"\n  style=\"display: none\"\n  onchange={onChange}\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","onChange","event","loaderCapability","file","_a","target","files","cap","provides","arrayBuffer","loadDocument","type","pdfFile","Math","random","toString","substring","name","content","inputRef","$","user_effect","unsubscribe","onOpenFileRequest","req","click","bind_this","input","$$value","LoaderPluginPackage","createPluginPackage","BaseLoaderPackage","addUtility","FilePicker","build","usePlugin"],"mappings":"wiBAIaA,EAAsB,IAAMC,gBAA4BC,EAAAA,aAAaC,mBCqBjEC,EAASC,EAAcC,eAE9BC,EAAO,OAAAC,EADEH,EAAMI,OACDC,YAAQ,EAAAF,EAAA,GACtBG,EAAML,EAAiBM,YAEzBL,GAAQI,EAAK,CACT,MAAAE,QAAoBN,EAAKM,oBACzBF,EAAIG,aAAY,CACpBC,KAAM,SACNC,QAAO,CACLb,GAAIc,KAAKC,SAASC,SAAS,IAAIC,UAAU,EAAG,IAC5CC,KAAMd,EAAKc,KACXC,QAAST,IAGf,CACF,uHAtCM,MAAAP,EAAmBN,IAErB,IAAAuB,EAAoC,KAGxCC,EAAAC,aAAc,KACP,IAAAnB,EAAiBM,SAAQ,aAGxBc,EAAcpB,EAAiBM,SAASe,mBAAmBC,IACnD,SAARA,GAAkBL,GACpBA,EAASM,OACX,IAIW,MAAA,KACAH,GAAA,CACZ,0BA6BOtB,KAJCoB,EAAAM,UAAAC,GAAAC,GAAAT,UAAAA,yBAJb,wBCjCO,MAAMU,EAAsBC,EAAoBA,oBAAAC,EAAiBF,qBACrEG,WAAWC,GACXC,iHFR4B,IAAMC,YAAwBrC,EAAAA,aAAaC"}