"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.cssClass = void 0;
var _ = require("lodash");
var classnames = require("classnames");
var React = require("react");
var PropTypes = require("prop-types");
var MorePropTypes_1 = require("../utils/MorePropTypes");
var Tab_1 = require("./Tab");
var flex_1 = require("../flex");
require("./TabBar.less");
exports.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(flex_1.FlexBox, { className: classnames(exports.cssClass.CONTAINER, exports.cssClass.size(size), className), justify: justify, role: "tablist" }, children));
};
var Size = {
    SMALL: "small",
    MEDIUM: "medium",
    LARGE: "large",
};
TabBar.Size = Size;
TabBar.Tab = Tab_1.default;
TabBar.propTypes = {
    children: MorePropTypes_1.default.oneOrManyOf(MorePropTypes_1.default.instanceOfComponent(Tab_1.default)),
    className: PropTypes.string,
    justify: PropTypes.oneOf(_.values(flex_1.Justify)),
    size: PropTypes.oneOf(_.values(TabBar.Size)),
};
TabBar.defaultProps = {
    justify: flex_1.Justify.START,
    size: TabBar.Size.MEDIUM,
};
exports.default = TabBar;
