@carbon/react
Version:
React components for the Carbon Design System
55 lines (53 loc) • 1.59 kB
JavaScript
/**
* Copyright IBM Corp. 2016, 2026
*
* This source code is licensed under the Apache-2.0 license found in the
* LICENSE file in the root directory of this source tree.
*/
const require_runtime = require("../../_virtual/_rolldown/runtime.js");
let react = require("react");
react = require_runtime.__toESM(react);
let prop_types = require("prop-types");
prop_types = require_runtime.__toESM(prop_types);
let react_jsx_runtime = require("react/jsx-runtime");
//#region src/components/Grid/GridContext.tsx
/**
* Copyright IBM Corp. 2016, 2025
*
* This source code is licensed under the Apache-2.0 license found in the
* LICENSE file in the root directory of this source tree.
*/
/**
* Provides a grid context for communication the grid "mode" (flexbox or
* css-grid) along with subgrid information.
*/
const GridSettingsContext = react.default.createContext({
mode: "flexbox",
subgrid: false
});
const GridSettings = ({ children, mode, subgrid = false }) => {
const value = react.default.useMemo(() => {
return {
mode,
subgrid
};
}, [mode, subgrid]);
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(GridSettingsContext.Provider, {
value,
children
});
};
GridSettings.propTypes = {
children: prop_types.default.node,
mode: prop_types.default.oneOf(["flexbox", "css-grid"]).isRequired,
subgrid: prop_types.default.bool
};
/**
* Helper function for accessing the GridContext value
*/
const useGridSettings = () => {
return react.default.useContext(GridSettingsContext);
};
//#endregion
exports.GridSettings = GridSettings;
exports.useGridSettings = useGridSettings;