@carbon/ibm-products
Version:
Carbon for IBM Products
86 lines (84 loc) • 2.58 kB
JavaScript
/**
* Copyright IBM Corp. 2020, 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 require_runtime = require("../../_virtual/_rolldown/runtime.js");
const require_index = require("../../node_modules/classnames/index.js");
const require_settings = require("../../settings.js");
let react = require("react");
react = require_runtime.__toESM(react);
let prop_types = require("prop-types");
prop_types = require_runtime.__toESM(prop_types);
let _carbon_react = require("@carbon/react");
//#region src/components/ActionBar/ActionBarItem.tsx
var import_classnames = /* @__PURE__ */ require_runtime.__toESM(require_index.default);
const componentName = "ActionBarItem";
const blockClass = `${require_settings.pkg.prefix}--action-bar-item`;
/**
* The ActionBarItem is used in the page header to populate the action bar
*/
const ActionBarItem = react.default.forwardRef(({ label, className, renderIcon, ...rest }, ref) => {
const Icon = renderIcon;
return /* @__PURE__ */ react.default.createElement(_carbon_react.IconButton, {
...rest,
ref,
className: (0, import_classnames.default)(blockClass, className),
kind: "ghost",
size: "md",
align: "bottom-end",
type: "button",
label
}, Icon ? /* @__PURE__ */ react.default.createElement(Icon, null) : null);
});
const reservedProps = [
"kind",
"size",
"align",
"type"
];
const propTypes = { ..._carbon_react.IconButton.propTypes };
reservedProps.forEach((prop) => {
delete propTypes[prop];
});
ActionBarItem.displayName = componentName;
ActionBarItem.propTypes = {
/**
* The ...propTypes are copies of those from Button minus the props reserved for use by this component
*/
...propTypes,
/**
* Specify an optional className to be added to your Button
*
* (inherited from Carbon Button)
*/
className: prop_types.default.string,
/**
* If specifying the `renderIcon` prop, provide a description for that icon that can
* be read by screen readers
*
* (inherited from Carbon Button)
*/
label: prop_types.default.string,
/**
* Optional click handler
*
* (inherited from Carbon Button)
*/
onClick: prop_types.default.func,
/**
* Optional prop to allow overriding the icon rendering.
* Can be a React component class
*
* (inherited from Carbon Button)
*/
/**@ts-ignore */
renderIcon: prop_types.default.oneOfType([prop_types.default.func, prop_types.default.object]),
/**
* Optional tab index
*/
tabIndex: prop_types.default.number
};
//#endregion
exports.ActionBarItem = ActionBarItem;