UNPKG

@wordpress/components

Version:
116 lines (90 loc) 3.15 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.Fill = Fill; exports.Provider = Provider; exports.createPrivateSlotFill = exports.Slot = 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 _element = require("@wordpress/element"); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); 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 _useSlot = _interopRequireDefault(require("./bubbles-virtually/use-slot")); var _useSlotFills = _interopRequireDefault(require("./bubbles-virtually/use-slot-fills")); // @ts-nocheck /** * 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, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_fill.default, props), (0, _element.createElement)(_fill2.default, props)); } const Slot = (0, _element.forwardRef)((_ref, ref) => { let { bubblesVirtually, ...props } = _ref; if (bubblesVirtually) { return (0, _element.createElement)(_slot2.default, (0, _extends2.default)({}, props, { ref: ref })); } return (0, _element.createElement)(_slot.default, props); }); exports.Slot = Slot; function Provider(_ref2) { let { children, ...props } = _ref2; return (0, _element.createElement)(_provider.default, props, (0, _element.createElement)(_slotFillProvider.default, null, children)); } function createSlotFill(key) { const baseName = typeof key === 'symbol' ? key.description : key; const FillComponent = props => (0, _element.createElement)(Fill, (0, _extends2.default)({ name: key }, props)); FillComponent.displayName = `${baseName}Fill`; const SlotComponent = props => (0, _element.createElement)(Slot, (0, _extends2.default)({ 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