{"version":3,"file":"OverlayContextProvider.mjs","names":[],"sources":["../../../../../../../../src/lib/controller/overlay/OverlayContextProvider.tsx"],"sourcesContent":["import type { FC, PropsWithChildren } from \"react\";\nimport {\n  overlayContext,\n  useOverlayContext,\n} from \"@/lib/controller/overlay/context\";\nimport type { FlowComponentName } from \"@/components/propTypes\";\nimport type { OverlayController } from \"@/lib/controller\";\n\ninterface Props extends PropsWithChildren {\n  type: FlowComponentName;\n  controller: OverlayController;\n  /**\n   * Whether the children are the overlay's content. Content also registers the\n   * controller as the _nearest_ overlay, which is what `closeOverlay` without a\n   * name resolves to. Set `false` where the subtree is not inside the overlay –\n   * `OverlayTrigger` wraps the trigger too.\n   *\n   * @default true\n   */\n  isOverlayContent?: boolean;\n}\n\nexport const OverlayContextProvider: FC<Props> = (props) => {\n  const { type, controller, isOverlayContent = true, children } = props;\n  const parentContext = useOverlayContext();\n\n  return (\n    <overlayContext.Provider\n      value={{\n        byType: {\n          ...parentContext.byType,\n          [type]: controller,\n        },\n        nearest: isOverlayContent ? controller : parentContext.nearest,\n      }}\n    >\n      {children}\n    </overlayContext.Provider>\n  );\n};\n\nexport default OverlayContextProvider;\n"],"mappings":";;;;;AAsBA,IAAa,0BAAqC,UAAU;CAC1D,MAAM,EAAE,MAAM,YAAY,mBAAmB,MAAM,aAAa;CAChE,MAAM,gBAAgB,kBAAkB;CAExC,OACE,oBAAC,eAAe,UAAhB;EACE,OAAO;GACL,QAAQ;IACN,GAAG,cAAc;KAChB,OAAO;GACV;GACA,SAAS,mBAAmB,aAAa,cAAc;EACzD;EAEC;CACsB,CAAA;AAE7B"}