@hitachivantara/uikit-react-core
Version:
UI Kit Core React components.
35 lines (34 loc) • 1.4 kB
JavaScript
import { theme } from "@hitachivantara/uikit-styles";
import { createClasses } from "@hitachivantara/uikit-react-utils";
//#region src/SimpleGrid/SimpleGrid.styles.tsx
var { staticClasses, useClasses } = createClasses("HvSimpleGrid", { root: {
display: "grid",
boxSizing: "border-box",
gridTemplateColumns: `repeat(var(--cols, 1), minmax(0, 1fr))`
} });
function getSize(size) {
return size || Number(theme.breakpoints.values.md);
}
function getSortedBreakpoints(breakpoints) {
if (breakpoints.length === 0) return breakpoints;
const property = "maxWidth" in breakpoints[0] ? "maxWidth" : "minWidth";
const sorted = breakpoints.toSorted((a, b) => getSize(b[property]) - getSize(a[property]));
return property === "minWidth" ? sorted.toReversed() : sorted;
}
var getContainerStyle = (breakpoints, spacing = "sm", cols = 1) => {
return {
"--cols": cols,
gap: theme.space[spacing],
...breakpoints && getSortedBreakpoints(breakpoints).reduce((acc, breakpoint) => {
const property = "maxWidth" in breakpoint ? "max-width" : "min-width";
const breakpointSize = getSize(property === "max-width" ? breakpoint.maxWidth : breakpoint.minWidth);
acc[`@media (${property}: ${breakpointSize}px)`] = {
["--cols"]: breakpoint.cols,
gap: theme.space[breakpoint.spacing || spacing]
};
return acc;
}, {})
};
};
//#endregion
export { getContainerStyle, staticClasses, useClasses };