"use strict";
var __rest = (this && this.__rest) || function (s, e) {
    var t = {};
    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
        t[p] = s[p];
    if (s != null && typeof Object.getOwnPropertySymbols === "function")
        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
                t[p[i]] = s[p[i]];
        }
    return t;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Button = void 0;
const jsx_runtime_1 = require("react/jsx-runtime");
const styled_components_1 = __importDefault(require("styled-components"));
const utils_1 = require("../../theme/utils");
const Icon_1 = require("../Icon");
const sizeMap = {
    s: {
        padding: '8px 16px',
        minWidth: '82px',
    },
    m: {
        padding: '12px 16px',
        minWidth: '104px',
    },
    l: {
        padding: '16px',
        minWidth: '128px',
    },
};
const Component = styled_components_1.default.button(({ theme, variant, margin, size }) => (Object.assign(Object.assign(Object.assign({}, (theme.BUTTON[variant] || {})), (size ? sizeMap[size] : {})), { margin: (0, utils_1.getMargin)({ theme, margin }) })));
const IconContainer = styled_components_1.default.span(({ theme }) => ({
    display: 'inline-block',
    marginRight: theme.GAP.s,
}));
const Button = (_a) => {
    var { type = 'button', size = 'm', icon, children } = _a, props = __rest(_a, ["type", "size", "icon", "children"]);
    return ((0, jsx_runtime_1.jsxs)(Component, Object.assign({ size: size, type: type }, props, { children: [icon && ((0, jsx_runtime_1.jsx)(IconContainer, { children: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { icon: icon, variant: "basic", size: "12px" }, void 0) }, void 0)), children] }), void 0));
};
exports.Button = Button;
//# sourceMappingURL=Button.js.map