{"version":3,"file":"ActionMenu.mjs","sources":["../../../../../src/lib/nextGenComponents/components/RowActions/ActionMenu/ActionMenu.tsx"],"sourcesContent":["import { EllipsisVertical } from 'lucide-react'\nimport { FC } from 'react'\n\nimport { Button } from '@/components/ui/button'\nimport {\n  DropdownMenu,\n  DropdownMenuTrigger,\n  DropdownMenuContent,\n  DropdownMenuItem\n} from '@/components/ui/dropdown-menu'\nimport { MORE_ACTIONS } from '@/constants'\nimport { ActionMenuItem } from '@/types/table/rowAction'\n\ntype ActionMenuProps = {\n  items: ActionMenuItem[]\n}\nconst ActionMenu: FC<ActionMenuProps> = ({ items }) => {\n  const visibleItems = items.filter(item => !item.hidden)\n  if (!visibleItems.length) return null\n\n  return (\n    <DropdownMenu>\n      <DropdownMenuTrigger asChild>\n        <Button\n          variant=\"rounded\"\n          size=\"icon\"\n          tooltip={MORE_ACTIONS}\n          onClick={e => e.stopPropagation()}\n          data-testid=\"action-menu-trigger\"\n          className=\"\n      transition-opacity\n      opacity-0 group-hover:opacity-100\n      data-[state=open]:opacity-100\n    data-[state=open]:bg-igz-gray-light\n    \"\n        >\n          <EllipsisVertical />\n        </Button>\n      </DropdownMenuTrigger>\n      <DropdownMenuContent\n        align=\"end\"\n        className=\"border border-igz-gray-light shadow-md rounded-md\"\n        onClick={e => e.stopPropagation()}\n      >\n        {visibleItems.map(item => {\n          const ItemIcon = item.icon\n          const baseClasses = 'flex cursor-pointer items-center justify-between px-2 py-2 text-15px'\n          const variantClasses =\n            item.variant === 'danger' ? 'text-red-600 focus:text-red-600' : 'text-igz-primary'\n          const mergedClasses = [baseClasses, variantClasses, item.className]\n            .filter(Boolean)\n            .join(' ')\n\n          return (\n            <DropdownMenuItem\n              key={item.label}\n              className={mergedClasses}\n              disabled={item.disabled}\n              onClick={event => {\n                event.stopPropagation()\n                if (!item.disabled) item.onClick()\n              }}\n              data-testid={`action-menu-item-${item.label}`}\n            >\n              <div className=\"flex items-center gap-2\">\n                {ItemIcon && <ItemIcon className=\"h-4 w-4\" />}\n                <span>{item.label}</span>\n              </div>\n            </DropdownMenuItem>\n          )\n        })}\n      </DropdownMenuContent>\n    </DropdownMenu>\n  )\n}\n\nexport default ActionMenu\n"],"names":["ActionMenu","items","visibleItems","item","DropdownMenu","jsx","DropdownMenuTrigger","Button","MORE_ACTIONS","EllipsisVertical","DropdownMenuContent","ItemIcon","baseClasses","variantClasses","mergedClasses","DropdownMenuItem","event","jsxs"],"mappings":";;;;;AAgBA,MAAMA,IAAkC,CAAC,EAAE,OAAAC,QAAY;AACrD,QAAMC,IAAeD,EAAM,OAAO,CAAAE,MAAQ,CAACA,EAAK,MAAM;AACtD,SAAKD,EAAa,2BAGfE,GAAA,EACC,UAAA;AAAA,IAAA,gBAAAC,EAACC,GAAA,EAAoB,SAAO,IAC1B,UAAA,gBAAAD;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,SAAQ;AAAA,QACR,MAAK;AAAA,QACL,SAASC;AAAA,QACT,SAAS,CAAA,MAAK,EAAE,gBAAA;AAAA,QAChB,eAAY;AAAA,QACZ,WAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAOV,4BAACC,GAAA,CAAA,CAAiB;AAAA,MAAA;AAAA,IAAA,GAEtB;AAAA,IACA,gBAAAJ;AAAA,MAACK;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,WAAU;AAAA,QACV,SAAS,CAAA,MAAK,EAAE,gBAAA;AAAA,QAEf,UAAAR,EAAa,IAAI,CAAAC,MAAQ;AACxB,gBAAMQ,IAAWR,EAAK,MAChBS,IAAc,wEACdC,IACJV,EAAK,YAAY,WAAW,oCAAoC,oBAC5DW,IAAgB,CAACF,GAAaC,GAAgBV,EAAK,SAAS,EAC/D,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,iBACE,gBAAAE;AAAA,YAACU;AAAA,YAAA;AAAA,cAEC,WAAWD;AAAA,cACX,UAAUX,EAAK;AAAA,cACf,SAAS,CAAAa,MAAS;AAChB,gBAAAA,EAAM,gBAAA,GACDb,EAAK,YAAUA,EAAK,QAAA;AAAA,cAC3B;AAAA,cACA,eAAa,oBAAoBA,EAAK,KAAK;AAAA,cAE3C,UAAA,gBAAAc,EAAC,OAAA,EAAI,WAAU,2BACZ,UAAA;AAAA,gBAAAN,KAAY,gBAAAN,EAACM,GAAA,EAAS,WAAU,UAAA,CAAU;AAAA,gBAC3C,gBAAAN,EAAC,QAAA,EAAM,UAAAF,EAAK,MAAA,CAAM;AAAA,cAAA,EAAA,CACpB;AAAA,YAAA;AAAA,YAZKA,EAAK;AAAA,UAAA;AAAA,QAehB,CAAC;AAAA,MAAA;AAAA,IAAA;AAAA,EACH,GACF,IAtD+B;AAwDnC;"}