// import React from 'react';
// import PropTypes from 'prop-types';

// const ActionCard = ({ title, subtitle, icon, onClick }) => {
//   return (
//     <div className="action-card" onClick={onClick}>
//       {icon && <div className="action-icon">{icon}</div>}
//       <div className="action-content">
//         <h3>{title}</h3>
//         <p>{subtitle}</p>
//       </div>
//     </div>
//   );
// };

// ActionCard.propTypes = {
//   title: PropTypes.string.isRequired,
//   subtitle: PropTypes.string,
//   icon: PropTypes.node,
//   onClick: PropTypes.func
// };

// export default ActionCard;