{
  "version": 3,
  "sources": ["../../src/slot-fill/fill.tsx"],
  "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useObservableValue } from '@wordpress/compose';\nimport { useContext, useLayoutEffect, useRef, createPortal } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport SlotFillContext from './context';\nimport StyleProvider from '../style-provider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function Fill({\n  name,\n  children\n}) {\n  const registry = useContext(SlotFillContext);\n  const instanceRef = useRef({});\n  const childrenRef = useRef(children);\n  useLayoutEffect(() => {\n    childrenRef.current = children;\n  }, [children]);\n  useLayoutEffect(() => {\n    const instance = instanceRef.current;\n    registry.registerFill(name, {\n      instance,\n      children: childrenRef.current\n    });\n    return () => registry.unregisterFill(name, instance);\n  }, [registry, name]);\n  useLayoutEffect(() => {\n    registry.updateFill(name, {\n      instance: instanceRef.current,\n      children: childrenRef.current\n    });\n  });\n  const slot = useObservableValue(registry.slots, name);\n  if (!slot) {\n    return null;\n  }\n  if (slot.type === 'children') {\n    return null;\n  }\n  const portalEl = slot.ref.current;\n  if (!portalEl) {\n    return null;\n  }\n  const wrappedChildren = typeof children === 'function' ? children(slot.fillProps ?? {}) : children;\n\n  // When using a `Fill`, the `children` will be rendered in the document of the\n  // `Slot`. This means that we need to wrap the `children` in a `StyleProvider`\n  // to make sure we're referencing the right document/iframe (instead of the\n  // context of the `Fill`'s parent).\n  return createPortal(/*#__PURE__*/_jsx(StyleProvider, {\n    document: portalEl.ownerDocument,\n    children: wrappedChildren\n  }), portalEl);\n}"],
  "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,qBAAmC;AACnC,qBAAkE;AAKlE,qBAA4B;AAC5B,4BAA0B;AAC1B,yBAA4B;AACb,SAAR,KAAsB;AAAA,EAC3B;AAAA,EACA;AACF,GAAG;AACD,QAAM,eAAW,2BAAW,eAAAA,OAAe;AAC3C,QAAM,kBAAc,uBAAO,CAAC,CAAC;AAC7B,QAAM,kBAAc,uBAAO,QAAQ;AACnC,sCAAgB,MAAM;AACpB,gBAAY,UAAU;AAAA,EACxB,GAAG,CAAC,QAAQ,CAAC;AACb,sCAAgB,MAAM;AACpB,UAAM,WAAW,YAAY;AAC7B,aAAS,aAAa,MAAM;AAAA,MAC1B;AAAA,MACA,UAAU,YAAY;AAAA,IACxB,CAAC;AACD,WAAO,MAAM,SAAS,eAAe,MAAM,QAAQ;AAAA,EACrD,GAAG,CAAC,UAAU,IAAI,CAAC;AACnB,sCAAgB,MAAM;AACpB,aAAS,WAAW,MAAM;AAAA,MACxB,UAAU,YAAY;AAAA,MACtB,UAAU,YAAY;AAAA,IACxB,CAAC;AAAA,EACH,CAAC;AACD,QAAM,WAAO,mCAAmB,SAAS,OAAO,IAAI;AACpD,MAAI,CAAC,MAAM;AACT,WAAO;AAAA,EACT;AACA,MAAI,KAAK,SAAS,YAAY;AAC5B,WAAO;AAAA,EACT;AACA,QAAM,WAAW,KAAK,IAAI;AAC1B,MAAI,CAAC,UAAU;AACb,WAAO;AAAA,EACT;AACA,QAAM,kBAAkB,OAAO,aAAa,aAAa,SAAS,KAAK,aAAa,CAAC,CAAC,IAAI;AAM1F,aAAO,6BAA0B,uCAAAC,KAAK,sBAAAC,SAAe;AAAA,IACnD,UAAU,SAAS;AAAA,IACnB,UAAU;AAAA,EACZ,CAAC,GAAG,QAAQ;AACd;",
  "names": ["SlotFillContext", "_jsx", "StyleProvider"]
}
