fui-fancyui
Version:
FancyUI Libary
54 lines (53 loc) • 1.62 kB
JavaScript
import { css as s } from "styled-components";
import { sizeSettings as o } from "./sizeSettings.js";
import { sizeSettings as p } from "../../molecules/Button/sizeSettings.js";
import g from "../../../design/designFunctions/arrayToCssValues/arrayToCssValues.js";
import f from "../../../utils/functions/calcCSSValuesWithOffset/calcCSSValuesWithOffset.js";
import u from "../../../design/designFunctions/getThemeOrValueAsCss/getThemeOrValueAsCss.js";
const B = (t) => {
const { $sizeC: e, $oneToOne: a, $justifyContent: n, $iconAlign: r, $icon: i, $outlined: c, $noSize: d = !1, $removeBorder: l } = t;
return s`
display: inline-flex;
justify-content: ${n ?? "center"};
${a && h(e)};
${!a && !d && m(e, i, r, c, l)};
`;
}, h = (t) => {
const e = o[t].padding, a = Array.isArray(e) ? e[0] : e, n = g(a, "spacing"), r = u(p[t].lineHeight, "spacing");
return s`
aspect-ratio: 1/1;
justify-content: center;
/* Use calc to match normal button height: (2 * vertical padding) + line-height */
height: calc(2 * ${n} + ${r});
width: calc(2 * ${n} + ${r});
padding: ${n};
`;
}, m = (t, e, a, n, r) => {
let i = o[t].padding;
if (e)
switch (a) {
case "left":
i = o[t].paddingIconAlignLeft;
break;
case "right":
i = o[t].paddingIconAlignRight;
break;
default:
i = o[t].padding;
}
else
i = o[t].padding;
const c = g(i, "spacing");
if (!r && n && c) {
const d = f(c, -2);
return s`
padding: ${d};
`;
}
return s`
padding: ${c};
`;
};
export {
B as generateFancyButton
};