/* @oracle/oraclejet-preact: undefined */
'use strict';

var jsxRuntime = require('preact/jsx-runtime');
var hooks = require('preact/hooks');
var compat = require('preact/compat');
require('./LayerHost-8ec73638.js');
require('./UNSAFE_Text/themes/TextStyles.css.js');
require('./Flex-da9f223a.js');
var useTabBarContext = require('./useTabBarContext-2a6a796c.js');
require('./flexitem-fee13e26.js');
require('./dimensions-b4be9793.js');
require('./boxalignment-28ee3565.js');
require('./logger-2b636482.js');


require('./UNSAFE_TabBarCommon/themes/redwood/TabBarItemVariants.css.js');
require('./ConveyorBeltContext-bfe84b44.js');
require('./VisBusyStateContext-223f53dd.js');
require('preact');


require('./hooks/UNSAFE_useTooltip/themes/redwood/TooltipContentVariants.css.js');
require('./tooltipUtils-d461919d.js');

require('./Floating-dd6667de.js');

require('./keyboardUtils-c071859a.js');
require('./tabbableUtils-66ae6ba3.js');
require('./CollectionInteractionContext-f84ff7a1.js');

require('./Sheet-78113d87.js');

var UNSAFE_TabBarMixed_themes_TabBarMixedStyles_css = require('./UNSAFE_TabBarMixed/themes/TabBarMixedStyles.css.js');
var useTabBar = require('./useTabBar-697db61c.js');

/**
 * A thin wrapper around useTabBar hook
 */
function useTabBarMixed(options) {
    return useTabBar.useTabBar(options);
}

/**
 * A navigation component that enables horizontal navigation between distinct content with a mixture of static and dynamic tabs.
 *
 * @param {TabBarMixedProps} props TabBarMixed component props.
 * @returns {JSX.Element} TabBarMixed component element.
 */
const TabBarMixed = compat.forwardRef((props, focusHandleRef) => {
    const { children, onRemove, onSelect, selection, size, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledby } = props;
    const rootRef = hooks.useRef(null);
    const { rootProps, tabBarContext } = useTabBarMixed({
        class: UNSAFE_TabBarMixed_themes_TabBarMixedStyles_css.styles.tabBarBase,
        edge: 'bottom',
        onRemove,
        onSelect,
        ref: rootRef,
        selection,
        size,
        children
    });
    //Allows to call focus on rootRef without having to expose it
    compat.useImperativeHandle(focusHandleRef, () => ({
        focus: () => {
            if (rootRef.current) {
                rootRef.current.focus();
            }
        },
        blur: () => {
            if (rootRef.current) {
                rootRef.current.blur();
            }
        }
    }));
    return (jsxRuntime.jsx(useTabBarContext.TabBarContext.Provider, { value: tabBarContext, children: jsxRuntime.jsx("div", { "aria-label": ariaLabel, "aria-labelledby": ariaLabelledby, ...rootProps, children: children }) }));
});

exports.TabBarMixed = TabBarMixed;
//# sourceMappingURL=TabBarMixed-d6b512da.js.map
