@gravity-ui/uikit
Version:
Gravity UI base styling and components
36 lines (35 loc) • 1.98 kB
JavaScript
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 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({ responsive, direction = 'horizontal', nameMaxWidth, contentMaxWidth, className, children, qa, ...restProps }) {
const normalizedChildren = prepareChildren(children);
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' }, 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
;