{"version":3,"file":"index.cjs","sources":["../../src/shared/hooks/use-spread.ts"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/@framework';\nimport { SpreadMode, SpreadPlugin, initialDocumentState } from '@embedpdf/plugin-spread';\nimport { useEffect, useState } from '@framework';\n\nexport const useSpreadPlugin = () => usePlugin<SpreadPlugin>(SpreadPlugin.id);\nexport const useSpreadCapability = () => useCapability<SpreadPlugin>(SpreadPlugin.id);\n\n/**\n * Hook for spread state for a specific document\n * @param documentId Document ID\n */\nexport const useSpread = (documentId: string) => {\n  const { provides } = useSpreadCapability();\n  const [spreadMode, setSpreadMode] = useState<SpreadMode>(initialDocumentState.spreadMode);\n\n  useEffect(() => {\n    if (!provides) return;\n\n    const scope = provides.forDocument(documentId);\n\n    // Get initial state\n    setSpreadMode(scope.getSpreadMode());\n\n    // Subscribe to spread mode changes\n    return scope.onSpreadChange((newSpreadMode) => {\n      setSpreadMode(newSpreadMode);\n    });\n  }, [provides, documentId]);\n\n  return {\n    spreadMode,\n    provides: provides?.forDocument(documentId) ?? null,\n  };\n};\n"],"names":["useSpreadCapability","useCapability","SpreadPlugin","id","documentId","provides","spreadMode","setSpreadMode","useState","initialDocumentState","useEffect","scope","forDocument","getSpreadMode","onSpreadChange","newSpreadMode","usePlugin"],"mappings":"gNAKaA,EAAsB,IAAMC,gBAA4BC,EAAAA,aAAaC,sBAMxDC,IACxB,MAAMC,SAAEA,GAAaL,KACdM,EAAYC,GAAiBC,EAAAA,SAAqBC,EAAAA,qBAAqBH,YAgB9E,OAdAI,EAAAA,UAAU,KACR,IAAKL,EAAU,OAEf,MAAMM,EAAQN,EAASO,YAAYR,GAMnC,OAHAG,EAAcI,EAAME,iBAGbF,EAAMG,eAAgBC,IAC3BR,EAAcQ,MAEf,CAACV,EAAUD,IAEP,CACLE,aACAD,UAAU,MAAAA,OAAA,EAAAA,EAAUO,YAAYR,KAAe,6DA3BpB,IAAMY,YAAwBd,EAAAA,aAAaC"}