{"version":3,"file":"LoadingDots-BSk_UeS0.cjs","names":[],"sources":["../src/components/CustomMessage/LockedAttachment/components/_shared/PurchaseStatusBadge.tsx","../src/components/CustomMessage/LockedAttachment/components/_shared/LoadingDots.tsx"],"sourcesContent":["import { CheckCircleIcon } from '@phosphor-icons/react'\nimport classNames from 'classnames'\nimport React from 'react'\n\nimport type { PaymentStatus } from '../../types'\n\nexport interface PurchaseStatusBadgeProps {\n  /** 'own' matches the sender's dark/own-message context; 'other' matches the recipient's light/other-message context. */\n  isMine: boolean\n  /** 'paid' renders the \"Sold\"/\"Purchased\" + checkmark variant; otherwise falls back to plain amount text, or nothing. */\n  paymentStatus?: PaymentStatus\n  amountText?: string\n}\n\n/**\n * Bullet + amount/label + checkmark row for a paid attachment or message.\n * Shared by `LockedAttachment.Media`/`.Text`'s status badges.\n */\nconst PurchaseStatusBadge: React.FC<PurchaseStatusBadgeProps> = ({\n  isMine,\n  paymentStatus,\n  amountText,\n}) => {\n  const labelColour = isMine ? 'text-white/55' : 'text-black/55'\n  const successColour = isMine ? 'text-[#34c759]' : 'text-[#008236]'\n  if (paymentStatus === 'paid') {\n    return (\n      <React.Fragment>\n        <span className={classNames('text-xs font-medium', labelColour)}>\n          &bull;\n        </span>\n        <span className={classNames('text-xs font-medium', successColour)}>\n          {isMine ? 'Sold' : 'Purchased'}\n        </span>\n        <CheckCircleIcon\n          className={classNames('shrink-0 size-3.5', successColour)}\n          weight=\"bold\"\n          aria-hidden\n        />\n      </React.Fragment>\n    )\n  }\n\n  if (amountText != null) {\n    return (\n      <React.Fragment>\n        <span className={classNames('text-xs font-medium', labelColour)}>\n          &bull;\n        </span>\n        <span className={classNames('text-xs font-medium', labelColour)}>\n          {amountText}\n        </span>\n      </React.Fragment>\n    )\n  }\n\n  if (paymentStatus === 'failed' || paymentStatus === 'refunded') {\n    return (\n      <React.Fragment>\n        <span className={classNames('text-xs font-medium', labelColour)}>\n          &bull;\n        </span>\n        <span className={classNames('text-xs font-medium', labelColour)}>\n          {paymentStatus === 'failed' ? 'Payment failed' : 'Refunded'}\n        </span>\n      </React.Fragment>\n    )\n  }\n\n  return null\n}\n\nexport default PurchaseStatusBadge\n","import React from 'react'\n\nconst Dot = ({ cx, index }: { cx: string; index: number }) => (\n  <circle cx={cx} cy=\"6.15\" r=\"2.4\" fill=\"currentColor\">\n    <animateTransform\n      attributeName=\"transform\"\n      type=\"translate\"\n      values=\"0 0; 0 -2.25; 0 0;\"\n      dur=\"900ms\"\n      begin={`${120 * index}ms`}\n      repeatCount=\"indefinite\"\n    />\n  </circle>\n)\n\n/**\n * Three bouncing dots, inline-sized for use inside buttons/labels (e.g. the\n * Unlock CTA while a purchase is in flight). Mirrors the typing indicator's\n * animation but uses `currentColor` so it adopts the surrounding text color.\n */\nconst LoadingDots: React.FC<{ className?: string }> = ({ className }) => (\n  <svg\n    aria-hidden=\"true\"\n    className={className}\n    viewBox=\"0 0 20 12.3\"\n    width=\"20\"\n    height=\"13\"\n    overflow=\"visible\"\n  >\n    <Dot cx=\"3\" index={0} />\n    <Dot cx=\"10\" index={1} />\n    <Dot cx=\"17\" index={2} />\n  </svg>\n)\n\nexport default LoadingDots\n"],"mappings":"kMAkBA,IAAM,GAA2D,CAC/D,SACA,gBACA,gBACI,CACJ,IAAM,EAAc,EAAS,gBAAkB,gBACzC,EAAgB,EAAS,iBAAmB,iBA6ClD,OA5CI,IAAkB,QAElB,EAAA,EAAA,KAAA,CAAC,EAAA,QAAM,SAAP,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,WAAA,EAAW,EAAA,QAAA,CAAW,sBAAuB,CAAW,EAAG,SAAA,GAE3D,CAAA,GACN,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,WAAA,EAAW,EAAA,QAAA,CAAW,sBAAuB,CAAa,EAC7D,SAAA,EAAS,OAAS,WACf,CAAA,GACN,EAAA,EAAA,IAAA,CAAC,EAAA,gBAAD,CACE,WAAA,EAAW,EAAA,QAAA,CAAW,oBAAqB,CAAa,EACxD,OAAO,OACP,cAAA,EACD,CAAA,CACa,CAAA,CAAA,EAIhB,GAAc,KAad,IAAkB,UAAY,IAAkB,YAEhD,EAAA,EAAA,KAAA,CAAC,EAAA,QAAM,SAAP,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,WAAA,EAAW,EAAA,QAAA,CAAW,sBAAuB,CAAW,EAAG,SAAA,GAE3D,CAAA,GACN,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,WAAA,EAAW,EAAA,QAAA,CAAW,sBAAuB,CAAW,EAC3D,SAAA,IAAkB,SAAW,iBAAmB,UAC7C,CAAA,CACQ,CAAA,CAAA,EAIb,MAxBH,EAAA,EAAA,KAAA,CAAC,EAAA,QAAM,SAAP,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,WAAA,EAAW,EAAA,QAAA,CAAW,sBAAuB,CAAW,EAAG,SAAA,GAE3D,CAAA,GACN,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,WAAA,EAAW,EAAA,QAAA,CAAW,sBAAuB,CAAW,EAC3D,SAAA,CACG,CAAA,CACQ,CAAA,CAAA,CAkBtB,ECpEM,GAAO,CAAE,KAAI,YACjB,EAAA,EAAA,IAAA,CAAC,SAAD,CAAY,KAAI,GAAG,OAAO,EAAE,MAAM,KAAK,eACrC,UAAA,EAAA,EAAA,IAAA,CAAC,mBAAD,CACE,cAAc,YACd,KAAK,YACL,OAAO,qBACP,IAAI,QACJ,MAAO,GAAG,IAAM,EAAM,IACtB,YAAY,YACb,CAAA,CACK,CAAA,EAQJ,GAAiD,CAAE,gBACvD,EAAA,EAAA,KAAA,CAAC,MAAD,CACE,cAAY,OACD,YACX,QAAQ,cACR,MAAM,KACN,OAAO,KACP,SAAS,UANX,SAAA,EAQE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAK,GAAG,IAAI,MAAO,CAAI,CAAA,GACvB,EAAA,EAAA,IAAA,CAAC,EAAD,CAAK,GAAG,KAAK,MAAO,CAAI,CAAA,GACxB,EAAA,EAAA,IAAA,CAAC,EAAD,CAAK,GAAG,KAAK,MAAO,CAAI,CAAA,CACrB"}