@carbon/icons-react
Version:
React components for icons in digital and software products using the Carbon Design System
50 lines (48 loc) • 1.84 kB
JavaScript
/**
* Copyright IBM Corp. 2016, 2023
*
* This source code is licensed under the Apache-2.0 license found in the
* LICENSE file in the root directory of this source tree.
*
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
*/
import { getAttributes } from "@carbon/icon-helpers";
import PropTypes from "prop-types";
import React, { forwardRef } from "react";
//#region virtual:./Icon.tsx
/**
* Copyright IBM Corp. 2019, 2026
*
* This source code is licensed under the Apache-2.0 license found in the
* LICENSE file in the root directory of this source tree.
*/
const Icon = forwardRef(function Icon({ className, children, tabIndex, xmlns = "http://www.w3.org/2000/svg", preserveAspectRatio = "xMidYMid meet", ...rest }, ref) {
const { tabindex, ...attrs } = getAttributes({
...rest,
tabindex: tabIndex
});
const props = attrs;
if (className) props.className = className;
if (tabindex !== void 0 && tabindex !== null) if (typeof tabindex === "number") props.tabIndex = tabindex;
else props.tabIndex = Number(tabIndex);
if (ref) props.ref = ref;
if (xmlns) props.xmlns = xmlns;
if (preserveAspectRatio) props.preserveAspectRatio = preserveAspectRatio;
return React.createElement("svg", props, children);
});
Icon.displayName = "Icon";
Icon.propTypes = {
"aria-hidden": PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(["true", "false"])]),
"aria-label": PropTypes.string,
"aria-labelledby": PropTypes.string,
children: PropTypes.node,
className: PropTypes.string,
height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
preserveAspectRatio: PropTypes.string,
tabIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
viewBox: PropTypes.string,
width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
xmlns: PropTypes.string
};
//#endregion
export { Icon as default };