UNPKG

@carbon/ibm-products

Version:

Carbon for IBM Products

93 lines (82 loc) 3.56 kB
/** * Copyright IBM Corp. 2020, 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. */ 'use strict'; var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js'); var React = require('react'); var index = require('../../_virtual/index.js'); var cx = require('classnames'); var devtools = require('../../global/js/utils/devtools.js'); var settings = require('../../settings.js'); var constants = require('./constants.js'); var react = require('@carbon/react'); // The block part of our conventional BEM class names (blockClass__E--M). const blockClass = `${settings.pkg.prefix}--description-list`; const componentName = 'DescriptionList'; // NOTE: the component SCSS is not imported here: it is rolled up separately. // Default values can be included here and then assigned to the prop params, // e.g. prop = defaults.prop, // This gathers default values together neatly and ensures non-primitive // values are initialized early to avoid react making unnecessary re-renders. // Note that default values are not required for props that are 'required', // nor for props where the component can apply undefined values reasonably. // Default values should be provided when the component needs to make a choice // or assumption when a prop is not supplied. // Default values for props const defaults = { border: false, size: constants.DescriptionListSize.Medium }; /** * Type layouts provide an orderly layout of terms and definitions. * @deprecated This component is deprecated */ exports.DescriptionList = /*#__PURE__*/React.forwardRef((_ref, ref) => { let { // The component props, in alphabetical order (for consistency). border = defaults.border, children /* TODO: remove if not needed. */, className, size = defaults.size, // Collect any other property values passed in. ...rest } = _ref; return /*#__PURE__*/React.createElement("div", _rollupPluginBabelHelpers.extends({}, rest, { className: cx(blockClass, // Apply the block class to the main HTML element { [`${blockClass}--bordered`]: border, [`${blockClass}--${size}`]: size }, className // Apply any supplied class names to the main HTML element. ), ref: ref }, devtools.getDevtoolsProps(componentName)), /*#__PURE__*/React.createElement(react.StructuredListWrapper, { role: "table", selection: false }, children)); }); exports.DescriptionList.deprecated = { level: 'warn', details: `This component is deprecated` }; // Return a placeholder if not released and not enabled by feature flag exports.DescriptionList = settings.pkg.checkComponentEnabled(exports.DescriptionList, componentName); // The display name of the component, used by React. Note that displayName // is used in preference to relying on function.name. exports.DescriptionList.displayName = componentName; // The types and DocGen commentary for the component props, // in alphabetical order (for consistency). // See https://www.npmjs.com/package/prop-types#usage. exports.DescriptionList.propTypes = { /** Specify if the type layout has a border */ border: index.default.bool, /** Provide the contents of the node */ children: index.default.node, /** Provide an optional class to be applied to the containing node */ className: index.default.string, /** Specify the size of the type layout, from a list of available sizes */ size: index.default.oneOf(Object.values(constants.DescriptionListSize)) };