UNPKG

@blockstack/ui

Version:

Blockstack UI components built using React and styled-components with styled-system.

51 lines (43 loc) 1.69 kB
import { objectWithoutPropertiesLoose as _objectWithoutPropertiesLoose } from '../_virtual/_rollupPluginBabelHelpers.js'; import React__default, { forwardRef, isValidElement, Children, cloneElement } from 'react'; import { Box } from '../box/index.esm.js'; import { Flex } from '../flex/index.esm.js'; var Stack = /*#__PURE__*/forwardRef(function (_ref, ref) { var isInline = _ref.isInline, children = _ref.children, align = _ref.align, justify = _ref.justify, _ref$spacing = _ref.spacing, spacing = _ref$spacing === void 0 ? 2 : _ref$spacing, shouldWrapChildren = _ref.shouldWrapChildren, rest = _objectWithoutPropertiesLoose(_ref, ["isInline", "children", "align", "justify", "spacing", "shouldWrapChildren"]); var validChildren = Array.isArray(children) ? children.filter(isValidElement) : []; return React__default.createElement(Flex, Object.assign({ align: align, justify: justify, flexDir: isInline ? 'row' : 'column', ref: ref }, rest), Children.map(validChildren, function (child, index) { if (!isValidElement(child)) { return null; } if (!Array.isArray(children)) { return null; } var isLastChild = validChildren.length === index + 1; var spacingProps = isInline ? { mr: isLastChild ? undefined : spacing } : { mb: isLastChild ? undefined : spacing }; if (shouldWrapChildren) { return React__default.createElement(Box, Object.assign({ d: "inline-block" }, spacingProps), child); } return cloneElement(child, spacingProps); })); }); Stack.displayName = 'Stack'; export { Stack }; //# sourceMappingURL=index.esm.js.map