import * as _ from "lodash";
import * as classnames from "classnames";
import * as React from "react";
import * as PropTypes from "prop-types";
import MorePropTypes from "../utils/MorePropTypes";
import Tab from "./Tab";
import { FlexBox, Justify } from "../flex";
import "./TabBar.less";
export var cssClass = {
    CONTAINER: "TabBar",
    size: function (s) { return "TabBar--" + s; },
};
var TabBar = function TabBar(_a) {
    var children = _a.children, className = _a.className, justify = _a.justify, size = _a.size;
    return (React.createElement(FlexBox, { className: classnames(cssClass.CONTAINER, cssClass.size(size), className), justify: justify, role: "tablist" }, children));
};
var Size = {
    SMALL: "small",
    MEDIUM: "medium",
    LARGE: "large",
};
TabBar.Size = Size;
TabBar.Tab = Tab;
TabBar.propTypes = {
    children: MorePropTypes.oneOrManyOf(MorePropTypes.instanceOfComponent(Tab)),
    className: PropTypes.string,
    justify: PropTypes.oneOf(_.values(Justify)),
    size: PropTypes.oneOf(_.values(TabBar.Size)),
};
TabBar.defaultProps = {
    justify: Justify.START,
    size: TabBar.Size.MEDIUM,
};
export default TabBar;
