"use client";
import { jsx as _jsx } from "react/jsx-runtime";
import { SsrProvider } from "./SsrProvider.js";
import { UserInteractionModeProvider } from "./interaction/UserInteractionModeProvider.js";
import { AppSizeProvider } from "./media-queries/AppSizeProvider.js";
import { DEFAULT_APP_SIZE, DEFAULT_APP_SIZE_QUERIES } from "./media-queries/appSize.js";
import { PortalContainerProvider } from "./portal/PortalContainerProvider.js";
/**
 * **Client Component**
 *
 * This is a convenience wrapper for initializing providers for react-md. This
 * includes configuration for:
 *
 * - {@link SsrProvider}
 * - {@link PortalContainerProvider}
 * - {@link AppSizeProvider}
 * - {@link UserInteractionModeProvider}
 *
 * This does not include every provider within `react-md` to help decrease the
 * bundle size for unused features. Here are some other providers that might be
 * useful to initialize near the root of your app:
 *
 * - {@link MenuConfigurationProvider} - If you want to render menus as sheets
 *   on phones or other configuration.
 * - {@link LocalStorageColorSchemeProvider}/{@link useColorSchemeProvider} - If
 *   you want to allow the user to select a light, dark, or system theme
 * - {@link WritingDirectionProvider} - If you need dynamic support for ltr and
 *   rtl languages
 * - {@link ThemeProvider} - If you allow the user to dynamically configure the
 *   `react-md` theme
 * - {@link TooltipHoverModeProvider} - If you want tooltips to appear
 *   immediately for a time after another tooltip has become visible. You can
 *   also configure the global visible delay.
 * - {@link Snackbar} - This isn't a provider but this is how you can display
 *   alerts in your app
 *
 * @remarks \@since 6.0.0
 */ export function CoreProviders(props) {
    const { ssr = false, ssrAppSize = DEFAULT_APP_SIZE, appSizeQueries = DEFAULT_APP_SIZE_QUERIES, portalContainer, children } = props;
    return /*#__PURE__*/ _jsx(SsrProvider, {
        ssr: ssr,
        children: /*#__PURE__*/ _jsx(PortalContainerProvider, {
            container: portalContainer,
            children: /*#__PURE__*/ _jsx(UserInteractionModeProvider, {
                children: /*#__PURE__*/ _jsx(AppSizeProvider, {
                    ...appSizeQueries,
                    ssrSize: ssrAppSize,
                    children: children
                })
            })
        })
    });
}

//# sourceMappingURL=CoreProviders.js.map