UNPKG

@gravity-ui/uikit

Version:

Gravity UI base styling and components

39 lines (38 loc) 2.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DefinitionList = DefinitionList; const tslib_1 = require("tslib"); const jsx_runtime_1 = require("react/jsx-runtime"); const React = tslib_1.__importStar(require("react")); const useDefaultProps_1 = require("../theme/useDefaultProps.js"); const filterDOMProps_1 = require("../utils/filterDOMProps.js"); const isOfType_1 = require("../utils/isOfType.js"); const warn_1 = require("../utils/warn.js"); const DefinitionListContext_1 = require("./components/DefinitionListContext.js"); const DefinitionListItem_1 = require("./components/DefinitionListItem.js"); const constants_1 = require("./constants.js"); require("./DefinitionList.css"); function DefinitionList(rawProps) { const { responsive, direction = 'horizontal', nameMaxWidth, contentMaxWidth, className, children, qa, ...restProps } = (0, useDefaultProps_1.useDefaultProps)('DefinitionList', rawProps); const normalizedChildren = prepareChildren(children); const withCopy = normalizedChildren.some((item) => item.props.copyText); return ((0, jsx_runtime_1.jsx)(DefinitionListContext_1.DefinitionListProvider, { direction: direction, nameMaxWidth: nameMaxWidth, contentMaxWidth: contentMaxWidth, children: (0, jsx_runtime_1.jsx)("dl", { ...(0, filterDOMProps_1.filterDOMProps)(restProps, { labelable: true }), className: (0, constants_1.b)({ responsive, vertical: direction === 'vertical', 'with-copy': withCopy }, className), "data-qa": qa, children: normalizedChildren }) })); } const isDefinitionListItem = (0, isOfType_1.isOfType)(DefinitionListItem_1.DefinitionListItem); function prepareChildren(children) { const items = React.Children.toArray(children); const normalizedItems = []; for (const item of items) { const isItem = isDefinitionListItem(item); if (isItem) { normalizedItems.push(item); } else { (0, warn_1.warnOnce)('[DefinitionList] Only <DefinitionList.Item> components is allowed as children'); } } return normalizedItems; } DefinitionList.Item = DefinitionListItem_1.DefinitionListItem; DefinitionList.displayName = 'DefinitionList'; //# sourceMappingURL=DefinitionList.js.map