{"version":3,"file":"index6.mjs","sources":["../src/components/snackbar/index.tsx"],"sourcesContent":["import { FunctionComponent, useRef } from \"react\";\nimport styles from \"./Snackbar.module.css\";\nimport {\n  LabelPairedXmarkSmRegularIcon,\n  StandaloneCircleInfoBoldIcon,\n  StandaloneTriangleExclamationBoldIcon,\n} from \"@deriv/quill-icons\";\n\nexport type SnackbarType = {\n  className?: string;\n  message?: string;\n  showButtonAction?: boolean;\n  showButtonClose?: boolean;\n  showIcon?: boolean;\n\n  /** Custom props */\n  actionLabel?: string; // New prop for customizable action button label\n  onActionClick?: () => void; // New prop for action button click handler\n  onCloseClick?: () => void; // New prop for close button click handler\n\n  /** Variant props */\n  indicator?: \"neutral\" | \"fail\";\n  type?: \"mobile\" | \"desktop\";\n\n  /** Auto-dismiss props */\n  autoDismiss?: boolean; // Whether to auto-dismiss the snackbar\n  dismissTimeout?: number; // Time in ms before auto-dismissing\n\n  /** Internal props */\n  id?: string; // Used internally by the controller\n};\n\nexport const Snackbar: FunctionComponent<SnackbarType> = ({\n  className = \"\",\n  indicator = \"neutral\",\n  type = \"mobile\",\n  message = \"Message goes here\",\n  showButtonAction = true,\n  showButtonClose = true,\n  showIcon = true,\n  actionLabel = \"Action\",\n  onActionClick,\n  onCloseClick,\n}) => {\n  const SnackbarId = `quill-snackbar-${indicator}-${type}`;\n\n  const defaultIcons = {\n    neutral: StandaloneCircleInfoBoldIcon,\n    fail: StandaloneTriangleExclamationBoldIcon,\n  } as const;\n\n  const IconComponent = defaultIcons[indicator] as React.ComponentType;\n\n  return (\n    <div\n      className={[styles.root, className].join(\" \")}\n      data-indicator={indicator}\n      data-type={type}\n      data-id={SnackbarId}\n    >\n      {showIcon && (\n        <div className={`${styles.icon1} snackbar-icon`}>\n          {/* @ts-ignore */}\n          <IconComponent iconSize=\"sm\" />\n        </div>\n      )}\n      <div className={styles.containerMessage}>\n        <div className={styles.message}>{message}</div>\n      </div>\n      {showButtonAction && (\n        <div className={styles.buttonAction}>\n          <div\n            className={styles.label}\n            onClick={onActionClick}\n            style={{\n              cursor: \"pointer\",\n            }}\n          >\n            {actionLabel}\n          </div>\n          <div className={styles.bgFocus} />\n        </div>\n      )}\n      {showButtonClose && (\n        <div\n          className={styles.buttonClose}\n          onClick={onCloseClick}\n          style={{ cursor: \"pointer\" }}\n        >\n          <div className={`${styles.icon6} snackbar-icon`}>\n            <LabelPairedXmarkSmRegularIcon />\n          </div>\n          <div className={styles.bgFocus1} />\n        </div>\n      )}\n    </div>\n  );\n};\n\nexport { SnackbarController } from \"./SnackbarController\";\nexport {\n  useSnackbar,\n  showSnackbar,\n  hideSnackbar,\n} from \"../../hooks/useSnackbar\";\n\nexport default Snackbar;\n"],"names":[],"mappings":";;;;;AAgCO,MAAM,WAA4C,CAAC;AAAA,EACxD,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,UAAU;AAAA,EACV,mBAAmB;AAAA,EACnB,kBAAkB;AAAA,EAClB,WAAW;AAAA,EACX,cAAc;AAAA,EACd;AAAA,EACA;AACF,MAAM;AACJ,QAAM,aAAa,kBAAkB,SAAS,IAAI,IAAI;AAEtD,QAAM,eAAe;AAAA,IACnB,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAEM,QAAA,gBAAgB,aAAa,SAAS;AAG1C,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,CAAC,OAAO,MAAM,SAAS,EAAE,KAAK,GAAG;AAAA,MAC5C,kBAAgB;AAAA,MAChB,aAAW;AAAA,MACX,WAAS;AAAA,MAER,UAAA;AAAA,QACC,YAAA,oBAAC,OAAI,EAAA,WAAW,GAAG,OAAO,KAAK,kBAE7B,UAAC,oBAAA,eAAA,EAAc,UAAS,KAAK,CAAA,GAC/B;AAAA,QAEF,oBAAC,OAAI,EAAA,WAAW,OAAO,kBACrB,UAAC,oBAAA,OAAA,EAAI,WAAW,OAAO,SAAU,UAAA,QAAQ,CAAA,GAC3C;AAAA,QACC,oBACC,qBAAC,OAAI,EAAA,WAAW,OAAO,cACrB,UAAA;AAAA,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW,OAAO;AAAA,cAClB,SAAS;AAAA,cACT,OAAO;AAAA,gBACL,QAAQ;AAAA,cACV;AAAA,cAEC,UAAA;AAAA,YAAA;AAAA,UACH;AAAA,UACC,oBAAA,OAAA,EAAI,WAAW,OAAO,QAAS,CAAA;AAAA,QAAA,GAClC;AAAA,QAED,mBACC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,OAAO;AAAA,YAClB,SAAS;AAAA,YACT,OAAO,EAAE,QAAQ,UAAU;AAAA,YAE3B,UAAA;AAAA,cAAC,oBAAA,OAAA,EAAI,WAAW,GAAG,OAAO,KAAK,kBAC7B,UAAA,oBAAC,iCAA8B,EACjC,CAAA;AAAA,cACC,oBAAA,OAAA,EAAI,WAAW,OAAO,SAAU,CAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACnC;AAAA,IAAA;AAAA,EAEJ;AAEJ;"}