"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.Fill = Fill; exports.Provider = Provider; exports.Slot = void 0; exports.UnforwardedSlot = UnforwardedSlot; exports.createPrivateSlotFill = void 0; exports.createSlotFill = createSlotFill; Object.defineProperty(exports, "useSlot", { enumerable: true, get: function () { return _useSlot.default; } }); Object.defineProperty(exports, "useSlotFills", { enumerable: true, get: function () { return _useSlotFills.default; } }); var _react = require("react"); var _element = require("@wordpress/element"); var _fill = _interopRequireDefault(require("./fill")); var _slot = _interopRequireDefault(require("./slot")); var _fill2 = _interopRequireDefault(require("./bubbles-virtually/fill")); var _slot2 = _interopRequireDefault(require("./bubbles-virtually/slot")); var _slotFillProvider = _interopRequireDefault(require("./bubbles-virtually/slot-fill-provider")); var _provider = _interopRequireDefault(require("./provider")); var _slotFillContext = _interopRequireDefault(require("./bubbles-virtually/slot-fill-context")); var _useSlot = _interopRequireDefault(require("./bubbles-virtually/use-slot")); var _useSlotFills = _interopRequireDefault(require("./bubbles-virtually/use-slot-fills")); /** * External dependencies */ /** * WordPress dependencies */ /** * Internal dependencies */ function Fill(props) { // We're adding both Fills here so they can register themselves before // their respective slot has been registered. Only the Fill that has a slot // will render. The other one will return null. return (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_fill.default, { ...props }), (0, _react.createElement)(_fill2.default, { ...props })); } function UnforwardedSlot(props, ref) { const { bubblesVirtually, ...restProps } = props; if (bubblesVirtually) { return (0, _react.createElement)(_slot2.default, { ...restProps, ref: ref }); } return (0, _react.createElement)(_slot.default, { ...restProps }); } const Slot = (0, _element.forwardRef)(UnforwardedSlot); exports.Slot = Slot; function Provider({ children, passthrough = false }) { const parent = (0, _element.useContext)(_slotFillContext.default); if (!parent.isDefault && passthrough) { return (0, _react.createElement)(_react.Fragment, null, children); } return (0, _react.createElement)(_provider.default, null, (0, _react.createElement)(_slotFillProvider.default, null, children)); } function createSlotFill(key) { const baseName = typeof key === 'symbol' ? key.description : key; const FillComponent = props => (0, _react.createElement)(Fill, { name: key, ...props }); FillComponent.displayName = `${baseName}Fill`; const SlotComponent = props => (0, _react.createElement)(Slot, { name: key, ...props }); SlotComponent.displayName = `${baseName}Slot`; SlotComponent.__unstableName = key; return { Fill: FillComponent, Slot: SlotComponent }; } const createPrivateSlotFill = name => { const privateKey = Symbol(name); const privateSlotFill = createSlotFill(privateKey); return { privateKey, ...privateSlotFill }; }; exports.createPrivateSlotFill = createPrivateSlotFill; //# sourceMappingURL=index.js.map