UNPKG

fui-fancyui

Version:
54 lines (53 loc) 1.62 kB
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 };