@mui/system
Version:
MUI System is a set of CSS utilities to help you build custom designs more efficiently. It makes it possible to rapidly lay out custom designs.
35 lines (34 loc) • 1.09 kB
JavaScript
'use client';
import * as React from 'react';
import clsx from 'clsx';
import styled from '@mui/styled-engine';
import styleFunctionSx, { extendSxProp } from "../styleFunctionSx/index.js";
import useTheme from "../useTheme/index.js";
import { jsx as _jsx } from "react/jsx-runtime";
export default function createBox(options = {}) {
const {
themeId,
defaultTheme,
defaultClassName = 'MuiBox-root',
generateClassName
} = options;
const BoxRoot = styled('div', {
shouldForwardProp: prop => prop !== 'theme' && prop !== 'sx' && prop !== 'as'
})(styleFunctionSx);
const Box = /*#__PURE__*/React.forwardRef(function Box(inProps, ref) {
const theme = useTheme(defaultTheme);
const {
className,
component = 'div',
...other
} = extendSxProp(inProps);
return /*#__PURE__*/_jsx(BoxRoot, {
as: component,
ref: ref,
className: clsx(className, generateClassName ? generateClassName(defaultClassName) : defaultClassName),
theme: themeId ? theme[themeId] || theme : theme,
...other
});
});
return Box;
}