{"version":3,"file":"index.cjs","sources":["../../../src/context/index.ts"],"sourcesContent":["import { createContext } from 'react';\nimport type { CellId } from '../types/cell.types';\nimport type { GraphStore, PaperStore } from '../store';\nimport type { Feature } from '../types/feature.types';\n\n// The context is deliberately untyped by ElementData/LinkData: consumers cast\n// to their own specialized GraphStore<E, L> at the call site.\nexport const GraphStoreContext = createContext<GraphStore | null>(null);\nexport const PaperStoreContext = createContext<PaperStore | null>(null);\n\nexport const CellIdContext = createContext<CellId | undefined>(undefined);\n\n/**\n * Callback stored in the features context for deferred feature creation.\n * @internal\n */\ntype DeferredFeatureCallback = (\n  options:\n    | {\n        readonly graphStore: GraphStore;\n        readonly paperStore: PaperStore;\n        readonly asChildren: boolean;\n      }\n    | { readonly graphStore: GraphStore }\n) => Feature;\n\n/**\n * Context returned by useCreateFeature and provided by FeaturesProvider.\n * Stores deferred feature registrations before their target store is available.\n * @internal\n */\nexport interface FeaturesContext {\n  readonly features: Map<string, DeferredFeatureCallback>;\n}\n\n/** Context for paper-scoped deferred feature registrations. */\nexport const PaperFeaturesContext = createContext<FeaturesContext | null>(null);\n\n/** Context for graph-scoped feature registrations. */\nexport const GraphFeaturesContext = createContext<FeaturesContext | null>(null);\n"],"names":["createContext"],"mappings":";;;;;;;;;;;AAOO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoBA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAiC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA;AAC/D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoBA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAiC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA;AAE/D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgBA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAkC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA;AA0BjE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuBA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAsC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA;AAGvE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuBA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAsC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA;;;;;;"}