UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

67 lines (66 loc) 2.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireDefault(require("react")); var _clsx = _interopRequireDefault(require("clsx")); var _Space = _interopRequireDefault(require("../space/Space.js")); var _withComponentMarkers = _interopRequireDefault(require("../../shared/helpers/withComponentMarkers.js")); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function FlexItem(props) { const { element = 'div', className, grow, shrink, alignSelf, span, style, children, ...rest } = props; const cn = (0, _clsx.default)('dnb-flex-item', grow && 'dnb-flex-item--grow', shrink && 'dnb-flex-item--shrink', alignSelf && `dnb-flex-item--align-self-${alignSelf}`, span && 'dnb-flex-item--responsive'); const isValidSpan = _react.default.useCallback(span => { return typeof span === 'number' || span === 'auto'; }, []); const spaceStyles = {}; if (span) { if (isValidSpan(span)) { spaceStyles['--span--default'] = span; } else { const spans = span; for (const key in spans) { if (isValidSpan(span[key])) { spaceStyles[`--${key}`] = span[key]; } } } } if (Object.keys(spaceStyles).length) { return (0, _jsxRuntime.jsx)(_Space.default, { element: element, className: cn, style: spaceStyles, children: (0, _jsxRuntime.jsx)(_Space.default, { className: (0, _clsx.default)('dnb-flex-item__spacer', className), style: style, ...rest, children: children }) }); } return (0, _jsxRuntime.jsx)(_Space.default, { element: element, className: (0, _clsx.default)(cn, className), style: style, ...rest, children: children }); } (0, _withComponentMarkers.default)(FlexItem, { _supportsSpacingProps: true }); var _default = exports.default = FlexItem; //# sourceMappingURL=Item.js.map