{"version":3,"file":"features-provider.cjs","sources":["../../../../src/components/features-provider/features-provider.tsx"],"sourcesContent":["import type { PropsWithChildren } from 'react';\nimport { useCreateFeature } from '../../hooks/use-create-features';\nimport type { AddFeatureOptions, FeatureTarget } from '../../hooks/use-create-features';\nimport { PaperFeaturesContext, GraphFeaturesContext } from '../../context';\nimport { pickValues } from '../../utils/object-utilities';\nimport typedMemo from '../../utils/typed-react';\n\ninterface Props<T, Target extends FeatureTarget>\n  extends AddFeatureOptions<T, Target>,\n    PropsWithChildren<Record<string, unknown>> {\n  readonly target: Target;\n}\n\nconst CONTEXT_BY_TARGET = {\n  paper: PaperFeaturesContext,\n  graph: GraphFeaturesContext,\n} as const;\n\n/**\n * Provider component that wraps children with a feature context.\n * Use `target=\"paper\"` for paper-scoped features or `target=\"graph\"` for graph-scoped features.\n * @param props - The feature provider props including target, id, onAddFeature, and children.\n * @returns The provider element wrapping children.\n */\nfunction FeaturesProviderBase<T, Target extends FeatureTarget>(props: Readonly<Props<T, Target>>) {\n  const { target, id, onAddFeature, children, onUpdateFeature, forwardedRef, onLoad, ...rest } =\n    props;\n  // Safe cast: Target is constrained to FeatureTarget, overloads handle narrowing at call sites\n  const ctx = useCreateFeature(\n    target,\n    { id, onAddFeature, onUpdateFeature, forwardedRef, onLoad },\n    pickValues(rest)\n  );\n  const Context = CONTEXT_BY_TARGET[target];\n  return <Context.Provider value={ctx}>{children}</Context.Provider>;\n}\n\nexport const FeaturesProvider = typedMemo(FeaturesProviderBase);\n"],"names":["PaperFeaturesContext","GraphFeaturesContext","useCreateFeature","pickValues","typedMemo"],"mappings":";;;;;;;;;;;;;;;AAaA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,iBAAA,CAAA,CAAA,CAAoB,CAAA;AAAA,CAAA,CACxB,CAAA,CAAA,CAAA,CAAA,CAAA,EAAOA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA;AAAA,CAAA,CACP,KAAA,CAAA,CAAOC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AACT,CAAA,CAAA;AAQA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAsD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmC,CAAA;AAChG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,EAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,iBAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,GACzF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,eAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA;AAAA,CAAA,CAAA,CAAA,CAC1DC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAW,CAAA,CAAA,CAAA,CAAI,CAAA;AAAA,CAAA,CAAA,CACjB,CAAA;AACA,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAkB,MAAM,CAAA,CAAA;AACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,gBAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAR,CAAA,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,GAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAS,CAAA,CAAA;AACjD,CAAA;AAEO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA;;"}