@mui/x-data-grid
Version:
The Community plan edition of the MUI X Data Grid components.
69 lines (68 loc) • 2.37 kB
JavaScript
'use client';
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.GridCSSVariablesContext = GridCSSVariablesContext;
exports.GridPortalWrapper = GridPortalWrapper;
exports.useCSSVariablesClass = useCSSVariablesClass;
exports.useCSSVariablesContext = useCSSVariablesContext;
var React = _interopRequireWildcard(require("react"));
var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
var _useGridConfiguration = require("../../hooks/utils/useGridConfiguration");
var _jsxRuntime = require("react/jsx-runtime");
const CLASSNAME_PREFIX = 'MuiDataGridVariables';
const CSSVariablesContext = /*#__PURE__*/React.createContext({
className: 'unset',
tag: /*#__PURE__*/(0, _jsxRuntime.jsx)("style", {
href: "/unset"
})
});
if (process.env.NODE_ENV !== "production") CSSVariablesContext.displayName = "CSSVariablesContext";
function useCSSVariablesClass() {
return React.useContext(CSSVariablesContext).className;
}
function useCSSVariablesContext() {
return React.useContext(CSSVariablesContext);
}
function GridPortalWrapper({
children
}) {
const className = useCSSVariablesClass();
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
className: className,
children: children
});
}
function GridCSSVariablesContext(props) {
const config = (0, _useGridConfiguration.useGridConfiguration)();
const rootProps = (0, _useGridRootProps.useGridRootProps)();
const description = config.hooks.useCSSVariables();
const context = React.useMemo(() => {
const className = `${CLASSNAME_PREFIX}-${description.id}`;
const cssString = `.${className}{${variablesToString(description.variables)}}`;
const tag = /*#__PURE__*/(0, _jsxRuntime.jsx)("style", {
href: `/${className}`,
nonce: rootProps.nonce,
children: cssString
});
return {
className,
tag
};
}, [rootProps.nonce, description]);
return /*#__PURE__*/(0, _jsxRuntime.jsx)(CSSVariablesContext.Provider, {
value: context,
children: props.children
});
}
function variablesToString(variables) {
let output = '';
for (const key in variables) {
if (Object.hasOwn(variables, key) && variables[key] !== undefined) {
output += `${key}:${variables[key]};`;
}
}
return output;
}
;