{"version":3,"file":"UdpActionCard.mjs","names":["React","PropTypes","Link","FluentIcon","UdpSpinner","UdpActionCard","t0","$","_c","href","icon","onClick","primaryText","rest","secondaryText","t1","t2","t3","to","iconColor","className","loading","undefined","t4","getIconColor","systemColors","info","warning","error","success","note","primary","secondary","startsWith","resolvedIconColor","console","t5","color","t6","t7","t8","t9","t10","t11","cardContent","t12","t13","t14","t15","style","commonProps","t16","propTypes","elementType","isRequired","string","func","bool"],"sources":["../../../../../src/UI/inputs/buttons/UdpActionCard/UdpActionCard.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Link } from 'react-router-dom';\nimport { FluentIcon } from '../../../../utilities/iconLibrary';\nimport { UdpSpinner } from '../../../fluent-web-components';\nimport './UdpActionCard.css';\n\n/**\n * UdpActionCard - An accessible workflow card component\n *\n * @param {Object} props\n * @param {React.Component} props.icon - Fluent UI icon component\n * @param {string} props.iconColor - Icon color (CSS var, hex, or system color: info, warning, error, success, note)\n * @param {string} props.primaryText - Main heading text\n * @param {string} props.secondaryText - Description text\n * @param {string} [props.href] - External link URL\n * @param {string} [props.to] - React Router link path\n * @param {function} [props.onClick] - Click handler\n * @param {string} [props.className] - Additional CSS classes\n * @param {boolean} [props.loading] - Shows a spinner in place of the icon while the card's action is in flight\n */\nexport const UdpActionCard = ({\n  icon,\n  iconColor = 'info',\n  primaryText,\n  secondaryText,\n  href,\n  to,\n  onClick,\n  className = '',\n  loading = false,\n  ...rest\n}) => {\n  // Resolve icon color to CSS variable or direct value\n  const getIconColor = () => {\n    const systemColors = {\n      info: 'var(--info-color-main)',\n      warning: 'var(--warning-color-main)',\n      error: 'var(--error-color-main)',\n      success: 'var(--success-color-main)',\n      note: 'var(--note-color-main)',\n      primary: 'var(--primary-color-main)',\n      secondary: 'var(--secondary-color-main)',\n    };\n\n    // Check if it's a system color\n    if (systemColors[iconColor]) {\n      return systemColors[iconColor];\n    }\n\n    // Check if it's already a CSS variable\n    if (iconColor.startsWith('var(--')) {\n      return iconColor;\n    }\n\n    // Otherwise, treat as hex or named color\n    return iconColor;\n  };\n\n  const resolvedIconColor = getIconColor();\n\n  // Safety check: ensure icon prop is provided\n  if (!icon) {\n    console.error('UdpActionCard: icon prop is required');\n    return null;\n  }\n\n  // Card content\n  const cardContent = (\n    <>\n      <div\n        className=\"udp-action-card__icon\"\n        style={{ color: resolvedIconColor }}\n      >\n        {loading\n          ? <UdpSpinner size=\"large\" />\n          : <FluentIcon component={icon} size={48} customSize />}\n      </div>\n      <div className=\"udp-action-card__content\">\n        <div className=\"udp-action-card__primary-text\">{primaryText}</div>\n        <div className=\"udp-action-card__secondary-text\">{secondaryText}</div>\n      </div>\n    </>\n  );\n\n  // Determine which element to render\n  const commonProps = {\n    className: `udp-action-card ${loading ? 'udp-action-card--loading' : ''} ${className}`,\n    style: { '--card-border-color': resolvedIconColor },\n    'aria-busy': loading || undefined,\n    ...rest,\n  };\n\n  // External link\n  if (href) {\n    return (\n      <a {...commonProps} href={href} rel=\"noopener noreferrer\">\n        {cardContent}\n      </a>\n    );\n  }\n\n  // Router link\n  if (to) {\n    return (\n      <Link {...commonProps} to={to}>\n        {cardContent}\n      </Link>\n    );\n  }\n\n  // Button with onClick\n  if (onClick) {\n    return (\n      <button {...commonProps} onClick={onClick} type=\"button\">\n        {cardContent}\n      </button>\n    );\n  }\n\n  // Default: non-interactive div\n  return (\n    <div {...commonProps} role=\"article\">\n      {cardContent}\n    </div>\n  );\n};\n\nUdpActionCard.propTypes = {\n  icon: PropTypes.elementType.isRequired,\n  iconColor: PropTypes.string,\n  primaryText: PropTypes.string.isRequired,\n  secondaryText: PropTypes.string.isRequired,\n  href: PropTypes.string,\n  to: PropTypes.string,\n  onClick: PropTypes.func,\n  className: PropTypes.string,\n  loading: PropTypes.bool,\n};\n"],"mappings":"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"}