@gechiui/components
Version:
UI components for GeChiUI.
95 lines (73 loc) • 2.58 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Fill = Fill;
exports.Provider = Provider;
exports.Slot = void 0;
exports.createSlotFill = createSlotFill;
Object.defineProperty(exports, "useSlot", {
enumerable: true,
get: function () {
return _useSlot.default;
}
});
var _element = require("@gechiui/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"));
// @ts-nocheck
/**
* GeChiUI 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(name) {
const FillComponent = props => (0, _element.createElement)(Fill, (0, _extends2.default)({
name: name
}, props));
FillComponent.displayName = name + 'Fill';
const SlotComponent = props => (0, _element.createElement)(Slot, (0, _extends2.default)({
name: name
}, props));
SlotComponent.displayName = name + 'Slot';
SlotComponent.__unstableName = name;
return {
Fill: FillComponent,
Slot: SlotComponent
};
}
//# sourceMappingURL=index.js.map