/**
 * 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');
const require_devtools = require('../../global/js/utils/devtools.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_icons = require("@carbon/react/icons");

//#region src/components/StatusIcon/StatusIcon.tsx
/**
* Copyright IBM Corp. 2021, 2022
*
* This source code is licensed under the Apache-2.0 license found in the
* LICENSE file in the root directory of this source tree.
*/
var import_classnames = /* @__PURE__ */ require_runtime.__toESM(require_index.default);
const blockClass = `${require_settings.pkg.prefix}--status-icon`;
const componentName = "StatusIcon";
const StatusIcon = (0, react.forwardRef)(({ kind, theme, size, className, iconDescription, ...rest }, ref) => {
	const forwardedRef = ref;
	const IconComponent = {
		fatal: {
			sm: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.Misuse, {
				size: 16,
				ref: forwardedRef,
				...props
			})),
			md: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.Misuse, {
				size: 20,
				ref: forwardedRef,
				...props
			})),
			lg: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.Misuse, {
				size: 24,
				ref: forwardedRef,
				...props
			})),
			xl: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.Misuse, {
				size: 32,
				ref: forwardedRef,
				...props
			}))
		},
		critical: {
			sm: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.ErrorFilled, {
				size: 16,
				ref: forwardedRef,
				...props
			})),
			md: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.ErrorFilled, {
				size: 20,
				ref: forwardedRef,
				...props
			})),
			lg: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.ErrorFilled, {
				size: 24,
				ref: forwardedRef,
				...props
			})),
			xl: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.ErrorFilled, {
				size: 32,
				ref: forwardedRef,
				...props
			}))
		},
		"major-warning": {
			sm: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.WarningAltInvertedFilled, {
				size: 16,
				ref: forwardedRef,
				...props
			})),
			md: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.WarningAltInvertedFilled, {
				size: 20,
				ref: forwardedRef,
				...props
			})),
			lg: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.WarningAltInvertedFilled, {
				size: 24,
				ref: forwardedRef,
				...props
			})),
			xl: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.WarningAltInvertedFilled, {
				size: 32,
				ref: forwardedRef,
				...props
			}))
		},
		"minor-warning": {
			sm: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.WarningAltFilled, {
				size: 16,
				ref: forwardedRef,
				...props
			})),
			md: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.WarningAltFilled, {
				size: 20,
				ref: forwardedRef,
				...props
			})),
			lg: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.WarningAltFilled, {
				size: 24,
				ref: forwardedRef,
				...props
			})),
			xl: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.WarningAltFilled, {
				size: 32,
				ref: forwardedRef,
				...props
			}))
		},
		undefined: {
			sm: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.UndefinedFilled, {
				size: 16,
				ref: forwardedRef,
				...props
			})),
			md: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.UndefinedFilled, {
				size: 20,
				ref: forwardedRef,
				...props
			})),
			lg: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.UndefinedFilled, {
				size: 24,
				ref: forwardedRef,
				...props
			})),
			xl: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.UndefinedFilled, {
				size: 32,
				ref: forwardedRef,
				...props
			}))
		},
		unknown: {
			sm: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.UnknownFilled, {
				size: 16,
				ref: forwardedRef,
				...props
			})),
			md: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.UnknownFilled, {
				size: 20,
				ref: forwardedRef,
				...props
			})),
			lg: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.UnknownFilled, {
				size: 24,
				ref: forwardedRef,
				...props
			})),
			xl: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.UnknownFilled, {
				size: 32,
				ref: forwardedRef,
				...props
			}))
		},
		normal: {
			sm: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.CheckmarkFilled, {
				size: 16,
				ref: forwardedRef,
				...props
			})),
			md: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.CheckmarkFilled, {
				size: 20,
				ref: forwardedRef,
				...props
			})),
			lg: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.CheckmarkFilled, {
				size: 24,
				ref: forwardedRef,
				...props
			})),
			xl: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.CheckmarkFilled, {
				size: 32,
				ref: forwardedRef,
				...props
			}))
		},
		info: {
			sm: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.InformationSquareFilled, {
				size: 16,
				ref: forwardedRef,
				...props
			})),
			md: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.InformationSquareFilled, {
				size: 20,
				ref: forwardedRef,
				...props
			})),
			lg: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.InformationSquareFilled, {
				size: 24,
				ref: forwardedRef,
				...props
			})),
			xl: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.InformationSquareFilled, {
				size: 32,
				ref: forwardedRef,
				...props
			}))
		},
		"in-progress": {
			sm: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.InProgress, {
				size: 16,
				ref: forwardedRef,
				...props
			})),
			md: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.InProgress, {
				size: 20,
				ref: forwardedRef,
				...props
			})),
			lg: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.InProgress, {
				size: 24,
				ref: forwardedRef,
				...props
			})),
			xl: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.InProgress, {
				size: 32,
				ref: forwardedRef,
				...props
			}))
		},
		running: {
			sm: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.CheckmarkOutline, {
				size: 16,
				ref: forwardedRef,
				...props
			})),
			md: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.CheckmarkOutline, {
				size: 20,
				ref: forwardedRef,
				...props
			})),
			lg: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.CheckmarkOutline, {
				size: 24,
				ref: forwardedRef,
				...props
			})),
			xl: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.CheckmarkOutline, {
				size: 32,
				ref: forwardedRef,
				...props
			}))
		},
		pending: {
			sm: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.Pending, {
				size: 16,
				ref: forwardedRef,
				...props
			})),
			md: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.Pending, {
				size: 20,
				ref: forwardedRef,
				...props
			})),
			lg: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.Pending, {
				size: 24,
				ref: forwardedRef,
				...props
			})),
			xl: (0, react.forwardRef)((props, _ref) => /* @__PURE__ */ react.default.createElement(_carbon_react_icons.Pending, {
				size: 32,
				ref: forwardedRef,
				...props
			}))
		}
	}[kind]?.[size];
	const classNames = (0, import_classnames.default)(className, blockClass, `${blockClass}--${theme}`, { [`${blockClass}--${theme}-${kind}`]: kind });
	return IconComponent && /* @__PURE__ */ react.default.createElement(IconComponent, {
		...rest,
		className: classNames,
		ref,
		...require_devtools.getDevtoolsProps(componentName)
	}, /* @__PURE__ */ react.default.createElement("title", null, iconDescription));
});
StatusIcon.displayName = componentName;
StatusIcon.propTypes = {
	className: prop_types.default.string,
	iconDescription: prop_types.default.string.isRequired,
	kind: prop_types.default.oneOf([
		"fatal",
		"critical",
		"major-warning",
		"minor-warning",
		"undefined",
		"unknown",
		"normal",
		"info",
		"in-progress",
		"running",
		"pending"
	]).isRequired,
	size: prop_types.default.oneOf([
		"sm",
		"md",
		"lg",
		"xl"
	]).isRequired,
	theme: prop_types.default.oneOf(["light", "dark"]).isRequired
};

//#endregion
exports.StatusIcon = StatusIcon;