| | "use strict"; |
| | var __create = Object.create; |
| | var __defProp = Object.defineProperty; |
| | var __getOwnPropDesc = Object.getOwnPropertyDescriptor; |
| | var __getOwnPropNames = Object.getOwnPropertyNames; |
| | var __getProtoOf = Object.getPrototypeOf; |
| | var __hasOwnProp = Object.prototype.hasOwnProperty; |
| | var __export = (target, all) => { |
| | for (var name in all) |
| | __defProp(target, name, { get: all[name], enumerable: true }); |
| | }; |
| | var __copyProps = (to, from, except, desc) => { |
| | if (from && typeof from === "object" || typeof from === "function") { |
| | for (let key of __getOwnPropNames(from)) |
| | if (!__hasOwnProp.call(to, key) && key !== except) |
| | __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); |
| | } |
| | return to; |
| | }; |
| | var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( |
| | |
| | |
| | |
| | |
| | isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, |
| | mod |
| | )); |
| | var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); |
| |
|
| | |
| | var src_exports = {}; |
| | __export(src_exports, { |
| | createContext: () => createContext2, |
| | createContextScope: () => createContextScope |
| | }); |
| | module.exports = __toCommonJS(src_exports); |
| |
|
| | |
| | var React = __toESM(require("react")); |
| | var import_jsx_runtime = require("react/jsx-runtime"); |
| | function createContext2(rootComponentName, defaultContext) { |
| | const Context = React.createContext(defaultContext); |
| | const Provider = (props) => { |
| | const { children, ...context } = props; |
| | const value = React.useMemo(() => context, Object.values(context)); |
| | return (0, import_jsx_runtime.jsx)(Context.Provider, { value, children }); |
| | }; |
| | Provider.displayName = rootComponentName + "Provider"; |
| | function useContext2(consumerName) { |
| | const context = React.useContext(Context); |
| | if (context) return context; |
| | if (defaultContext !== void 0) return defaultContext; |
| | throw new Error(`\`${consumerName}\` must be used within \`${rootComponentName}\``); |
| | } |
| | return [Provider, useContext2]; |
| | } |
| | function createContextScope(scopeName, createContextScopeDeps = []) { |
| | let defaultContexts = []; |
| | function createContext3(rootComponentName, defaultContext) { |
| | const BaseContext = React.createContext(defaultContext); |
| | const index = defaultContexts.length; |
| | defaultContexts = [...defaultContexts, defaultContext]; |
| | const Provider = (props) => { |
| | const { scope, children, ...context } = props; |
| | const Context = scope?.[scopeName]?.[index] || BaseContext; |
| | const value = React.useMemo(() => context, Object.values(context)); |
| | return (0, import_jsx_runtime.jsx)(Context.Provider, { value, children }); |
| | }; |
| | Provider.displayName = rootComponentName + "Provider"; |
| | function useContext2(consumerName, scope) { |
| | const Context = scope?.[scopeName]?.[index] || BaseContext; |
| | const context = React.useContext(Context); |
| | if (context) return context; |
| | if (defaultContext !== void 0) return defaultContext; |
| | throw new Error(`\`${consumerName}\` must be used within \`${rootComponentName}\``); |
| | } |
| | return [Provider, useContext2]; |
| | } |
| | const createScope = () => { |
| | const scopeContexts = defaultContexts.map((defaultContext) => { |
| | return React.createContext(defaultContext); |
| | }); |
| | return function useScope(scope) { |
| | const contexts = scope?.[scopeName] || scopeContexts; |
| | return React.useMemo( |
| | () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }), |
| | [scope, contexts] |
| | ); |
| | }; |
| | }; |
| | createScope.scopeName = scopeName; |
| | return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)]; |
| | } |
| | function composeContextScopes(...scopes) { |
| | const baseScope = scopes[0]; |
| | if (scopes.length === 1) return baseScope; |
| | const createScope = () => { |
| | const scopeHooks = scopes.map((createScope2) => ({ |
| | useScope: createScope2(), |
| | scopeName: createScope2.scopeName |
| | })); |
| | return function useComposedScopes(overrideScopes) { |
| | const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => { |
| | const scopeProps = useScope(overrideScopes); |
| | const currentScope = scopeProps[`__scope${scopeName}`]; |
| | return { ...nextScopes2, ...currentScope }; |
| | }, {}); |
| | return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]); |
| | }; |
| | }; |
| | createScope.scopeName = baseScope.scopeName; |
| | return createScope; |
| | } |
| | |
| |
|