UNPKG

@wordpress/components

Version:
115 lines (111 loc) 3.5 kB
"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.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 _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 _jsxRuntime = require("react/jsx-runtime"); 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 /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, { children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_fill.default, { ...props }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_fill2.default, { ...props })] }); } function UnforwardedSlot(props, ref) { const { bubblesVirtually, ...restProps } = props; if (bubblesVirtually) { return /*#__PURE__*/(0, _jsxRuntime.jsx)(_slot2.default, { ...restProps, ref: ref }); } return /*#__PURE__*/(0, _jsxRuntime.jsx)(_slot.default, { ...restProps }); } const Slot = exports.Slot = (0, _element.forwardRef)(UnforwardedSlot); function Provider({ children, passthrough = false }) { const parent = (0, _element.useContext)(_slotFillContext.default); if (!parent.isDefault && passthrough) { return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, { children: children }); } return /*#__PURE__*/(0, _jsxRuntime.jsx)(_provider.default, { children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_slotFillProvider.default, { children: children }) }); } Provider.displayName = 'SlotFillProvider'; function createSlotFill(key) { const baseName = typeof key === 'symbol' ? key.description : key; const FillComponent = props => /*#__PURE__*/(0, _jsxRuntime.jsx)(Fill, { name: key, ...props }); FillComponent.displayName = `${baseName}Fill`; const SlotComponent = props => /*#__PURE__*/(0, _jsxRuntime.jsx)(Slot, { name: key, ...props }); SlotComponent.displayName = `${baseName}Slot`; /** * @deprecated 6.8.0 * Please use `slotFill.name` instead of `slotFill.Slot.__unstableName`. */ SlotComponent.__unstableName = key; return { name: key, Fill: FillComponent, Slot: SlotComponent }; } //# sourceMappingURL=index.js.map