import { hasProp, isFunction } from "@zag-js/utils";
import { createContext, useContext } from "react";
//#region src/utils/create-context.ts
function getErrorMessage(hook, provider) {
	return `${hook} returned \`undefined\`. Seems you forgot to wrap component within ${provider}`;
}
function createContext$1(options = {}) {
	const { name, strict = true, hookName = "useContext", providerName = "Provider", errorMessage, defaultValue } = options;
	const Context = createContext(defaultValue);
	Context.displayName = name;
	function useContext$1() {
		const context = useContext(Context);
		if (!context && strict) {
			const error = new Error(errorMessage ?? getErrorMessage(hookName, providerName));
			error.name = "ContextError";
			if (hasProp(Error, "captureStackTrace") && isFunction(Error.captureStackTrace)) Error.captureStackTrace(error, useContext$1);
			throw error;
		}
		return context;
	}
	return [
		Context.Provider,
		useContext$1,
		Context
	];
}
//#endregion
export { createContext$1 as createContext };
