UNPKG

@ariakit/react-core

Version:

Ariakit React core

90 lines (77 loc) 3.31 kB
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } var _MZ2HG624cjs = require('./MZ2HG624.cjs'); var _XMDZRF6Ycjs = require('./XMDZRF6Y.cjs'); // src/utils/system.tsx var _react = require('react'); var React = _interopRequireWildcard(_react); var _jsxruntime = require('react/jsx-runtime'); function forwardRef2(render) { const Role = React.forwardRef((props, ref) => render({ ...props, ref })); Role.displayName = render.displayName || render.name; return Role; } function memo2(Component, propsAreEqual) { return React.memo(Component, propsAreEqual); } function createElement(Type, props) { const { wrapElement, render, ...rest } = props; const mergedRef = _MZ2HG624cjs.useMergeRefs.call(void 0, props.ref, _XMDZRF6Ycjs.getRefProperty.call(void 0, render)); let element; if (React.isValidElement(render)) { const renderProps = { ...render.props, ref: mergedRef }; element = React.cloneElement(render, _XMDZRF6Ycjs.mergeProps.call(void 0, rest, renderProps)); } else if (render) { element = render(rest); } else { element = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Type, { ...rest }); } if (wrapElement) { return wrapElement(element); } return element; } function createHook(useProps) { const useRole = (props = {}) => { return useProps(props); }; useRole.displayName = useProps.name; return useRole; } function createStoreContext(providers = [], scopedProviders = []) { const context = React.createContext(void 0); const scopedContext = React.createContext(void 0); const useContext2 = () => React.useContext(context); const useScopedContext = (onlyScoped = false) => { const scoped = React.useContext(scopedContext); const store = useContext2(); if (onlyScoped) return scoped; return scoped || store; }; const useProviderContext = () => { const scoped = React.useContext(scopedContext); const store = useContext2(); if (scoped && scoped === store) return; return store; }; const ContextProvider = (props) => { return providers.reduceRight( (children, Provider) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Provider, { ...props, children }), /* @__PURE__ */ _jsxruntime.jsx.call(void 0, context.Provider, { ...props }) ); }; const ScopedContextProvider = (props) => { return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ContextProvider, { ...props, children: scopedProviders.reduceRight( (children, Provider) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Provider, { ...props, children }), /* @__PURE__ */ _jsxruntime.jsx.call(void 0, scopedContext.Provider, { ...props }) ) }); }; return { context, scopedContext, useContext: useContext2, useScopedContext, useProviderContext, ContextProvider, ScopedContextProvider }; } exports.forwardRef = forwardRef2; exports.memo = memo2; exports.createElement = createElement; exports.createHook = createHook; exports.createStoreContext = createStoreContext;