@spectrum-css/divider
Version:
The Spectrum CSS divider component
57 lines (53 loc) • 1.7 kB
JavaScript
import { html } from "lit";
import { classMap } from "lit/directives/class-map.js";
import { styleMap } from "lit/directives/style-map.js";
import { capitalize, upperCase } from "lodash-es";
import "../index.css";
import "../themes/spectrum.css";
/* Must be imported last */
import "../themes/express.css";
export const Template = ({
rootClass = "spectrum-Divider",
size = "m",
tag = "hr",
staticColor,
vertical = false,
minDimensionValues,
customClasses = [],
customStyles = {},
} = {}) => {
if (tag === "hr") {
return html` <hr
class=${classMap({
[rootClass]: true,
[`${rootClass}--size${upperCase(size)}`]: typeof size !== "undefined",
[`${rootClass}--vertical`]: vertical === true,
[`${rootClass}--static${capitalize(staticColor)}`]:
typeof staticColor !== "undefined",
...customClasses.reduce((a, c) => ({ ...a, [c]: true }), {}),
})}
style=${styleMap({
"min-inline-size": minDimensionValues && !vertical ? "200px": undefined,
"min-block-size": minDimensionValues && vertical ? "20px": undefined,
...customStyles,
})}
role="separator"
/>`;
}
return html` <div
class=${classMap({
[rootClass]: true,
[`${rootClass}--size${size?.toUpperCase()}`]: typeof size !== "undefined",
[`${rootClass}--vertical`]: vertical === true,
[`${rootClass}--static${capitalize(staticColor)}`]:
typeof staticColor !== "undefined",
...customClasses.reduce((a, c) => ({ ...a, [c]: true }), {}),
})}
style=${styleMap({
"min-inline-size": minDimensionValues && !vertical ? "200px": undefined,
"min-block-size": minDimensionValues && vertical ? "20px": undefined,
...customStyles,
})}
role="separator"
></div>`;
};