{"version":3,"sources":["../../src/components/Toast/Toast.tsx"],"sourcesContent":["'use client';\n\nimport { HTMLAttributes } from 'react';\nimport { CheckCircle, WarningCircle, Info, X } from 'phosphor-react';\n\n/**\n * Lookup table for variant and action class combinations\n */\nconst VARIANT_ACTION_CLASSES = {\n  solid: {\n    warning:\n      'bg-warning text-warning-600 border-none focus-visible:outline-none',\n    success:\n      'bg-success text-success-800 border-none focus-visible:outline-none',\n    info: 'bg-info text-info-600 border-none focus-visible:outline-none',\n  },\n  outlined: {\n    warning:\n      'bg-warning text-warning-600 border border-warning-300 focus-visible:outline-none',\n    success:\n      'bg-success text-success-800 border border-success-200 focus-visible:outline-none',\n    info: 'bg-info text-info-600 border border-info-600 focus-visible:outline-none',\n  },\n} as const;\n\ntype ToastPosition =\n  | 'top-left'\n  | 'top-center'\n  | 'top-right'\n  | 'bottom-left'\n  | 'bottom-center'\n  | 'bottom-right'\n  | 'default';\n\ntype ToastProps = {\n  title: string;\n  description?: string;\n  onClose: () => void;\n  /** Visual variant of the badge */\n  variant?: 'solid' | 'outlined';\n  /** Action type of the badge  */\n  action?: 'warning' | 'success' | 'info';\n  position?: ToastPosition;\n} & HTMLAttributes<HTMLDivElement>;\n\nconst iconMap = {\n  success: CheckCircle,\n  info: Info,\n  warning: WarningCircle,\n};\n\nconst Toast = ({\n  variant = 'outlined',\n  action = 'success',\n  className = '',\n  onClose,\n  title,\n  description,\n  position = 'default',\n  ...props\n}: ToastProps) => {\n  // Get classes from lookup tables\n  const variantClasses = VARIANT_ACTION_CLASSES[variant][action];\n\n  const positionClasses: Record<ToastPosition, string> = {\n    'top-left': 'fixed top-4 left-4',\n    'top-center': 'fixed top-4 left-1/2 transform -translate-x-1/2',\n    'top-right': 'fixed top-4 right-4',\n    'bottom-left': 'fixed bottom-4 left-4',\n    'bottom-center': 'fixed bottom-4 left-1/2 transform -translate-x-1/2',\n    'bottom-right': 'fixed bottom-4 right-4',\n    default: '',\n  };\n\n  const IconAction = iconMap[action] || iconMap['success'];\n\n  const baseClasses =\n    'max-w-[390px] w-full flex flex-row items-start justify-between shadow-lg rounded-lg border p-4 gap-6 group';\n\n  return (\n    <div\n      role=\"alert\"\n      aria-live=\"assertive\"\n      aria-atomic=\"true\"\n      className={`${baseClasses} ${positionClasses[position]} ${variantClasses} ${className}`}\n      {...props}\n    >\n      <div className=\"flex flex-row items-start gap-3\">\n        <span className=\"mt-1\" data-testid={`toast-icon-${action}`}>\n          <IconAction />\n        </span>\n        <div className=\"flex flex-col items-start justify-start\">\n          <p className=\"font-semibold text-md\">{title}</p>\n          {description && (\n            <p className=\"text-md text-text-900\">{description}</p>\n          )}\n        </div>\n      </div>\n      <button\n        onClick={onClose}\n        aria-label=\"Dismiss notification\"\n        className=\"text-background-500 cursor-pointer opacity-0 group-hover:opacity-100 transition-opacity\"\n      >\n        <X />\n      </button>\n    </div>\n  );\n};\n\nexport default Toast;\n"],"mappings":";;;AAGA,SAAS,aAAa,eAAe,MAAM,SAAS;AAsF1C,cAEF,YAFE;AAjFV,IAAM,yBAAyB;AAAA,EAC7B,OAAO;AAAA,IACL,SACE;AAAA,IACF,SACE;AAAA,IACF,MAAM;AAAA,EACR;AAAA,EACA,UAAU;AAAA,IACR,SACE;AAAA,IACF,SACE;AAAA,IACF,MAAM;AAAA,EACR;AACF;AAsBA,IAAM,UAAU;AAAA,EACd,SAAS;AAAA,EACT,MAAM;AAAA,EACN,SAAS;AACX;AAEA,IAAM,QAAQ,CAAC;AAAA,EACb,UAAU;AAAA,EACV,SAAS;AAAA,EACT,YAAY;AAAA,EACZ;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,GAAG;AACL,MAAkB;AAEhB,QAAM,iBAAiB,uBAAuB,OAAO,EAAE,MAAM;AAE7D,QAAM,kBAAiD;AAAA,IACrD,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,aAAa;AAAA,IACb,eAAe;AAAA,IACf,iBAAiB;AAAA,IACjB,gBAAgB;AAAA,IAChB,SAAS;AAAA,EACX;AAEA,QAAM,aAAa,QAAQ,MAAM,KAAK,QAAQ,SAAS;AAEvD,QAAM,cACJ;AAEF,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,aAAU;AAAA,MACV,eAAY;AAAA,MACZ,WAAW,GAAG,WAAW,IAAI,gBAAgB,QAAQ,CAAC,IAAI,cAAc,IAAI,SAAS;AAAA,MACpF,GAAG;AAAA,MAEJ;AAAA,6BAAC,SAAI,WAAU,mCACb;AAAA,8BAAC,UAAK,WAAU,QAAO,eAAa,cAAc,MAAM,IACtD,8BAAC,cAAW,GACd;AAAA,UACA,qBAAC,SAAI,WAAU,2CACb;AAAA,gCAAC,OAAE,WAAU,yBAAyB,iBAAM;AAAA,YAC3C,eACC,oBAAC,OAAE,WAAU,yBAAyB,uBAAY;AAAA,aAEtD;AAAA,WACF;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,SAAS;AAAA,YACT,cAAW;AAAA,YACX,WAAU;AAAA,YAEV,8BAAC,KAAE;AAAA;AAAA,QACL;AAAA;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,gBAAQ;","names":[]}