{"version":3,"file":"dialog.mjs","sources":["../../../../src/lib/nextGenComponents/components/ui/dialog.tsx"],"sourcesContent":["import * as DialogPrimitive from '@radix-ui/react-dialog'\nimport * as React from 'react'\n\nimport Close from '../../../images/close.svg?react'\nimport { Button } from '@/components/ui/button'\nimport { cn } from '@/lib/utils'\nimport { getPortalContainer } from '../../../utils/portalContainer.util'\n\nconst Dialog = DialogPrimitive.Root\n\nconst DialogTrigger = DialogPrimitive.Trigger\n\nconst DialogPortal = ({\n  container,\n  ...props\n}: React.ComponentPropsWithoutRef<typeof DialogPrimitive.Portal>) => (\n  <DialogPrimitive.Portal container={container ?? getPortalContainer()} {...props} />\n)\n\nconst DialogClose = DialogPrimitive.Close\n\nconst DialogOverlay = React.forwardRef<\n  React.ElementRef<typeof DialogPrimitive.Overlay>,\n  React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, children, ...props }, ref) => (\n  <DialogPrimitive.Overlay\n    ref={ref}\n    data-testid=\"dialog-overlay\"\n    className={cn(\n      'fixed flex items-center justify-center inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n      className\n    )}\n    {...props}\n  >\n    {children}\n  </DialogPrimitive.Overlay>\n))\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName\n\nconst DialogContent = React.forwardRef<\n  React.ElementRef<typeof DialogPrimitive.Content>,\n  React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> & {\n    showCloseButton?: boolean\n    closeOnOutsideClick?: boolean\n  }\n>(\n  (\n    {\n      className,\n      children,\n      showCloseButton = true,\n      closeOnOutsideClick = false,\n      onPointerDownOutside,\n      onInteractOutside,\n      ...props\n    },\n    ref\n  ) => (\n    <DialogPortal>\n      <DialogOverlay>\n        <DialogPrimitive.Content\n          aria-describedby={undefined}\n          ref={ref}\n          data-testid=\"dialog-content\"\n          className={cn(\n            'relative flex flex-col z-50 gap-4 border bg-background p-0 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 rounded-lg max-h-[90vh]',\n            className\n          )}\n          {...props}\n          onPointerDownOutside={event => {\n            onPointerDownOutside?.(event)\n            if (!closeOnOutsideClick) event.preventDefault()\n          }}\n          onInteractOutside={event => {\n            onInteractOutside?.(event)\n            if (!closeOnOutsideClick) event.preventDefault()\n          }}\n        >\n          {children}\n          {showCloseButton && (\n            <DialogPrimitive.Close asChild data-slot=\"dialog-close\">\n              <Button\n                variant=\"rounded\"\n                size=\"icon\"\n                className=\"absolute top-3.5 right-3\"\n                aria-label=\"Close\"\n                tooltip=\"Close\"\n                data-testid=\"dialog-close-button\"\n              >\n                <Close className=\"w-6 h-6\" />\n              </Button>\n            </DialogPrimitive.Close>\n          )}\n        </DialogPrimitive.Content>\n      </DialogOverlay>\n    </DialogPortal>\n  )\n)\nDialogContent.displayName = DialogPrimitive.Content.displayName\n\nconst DialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n  <div\n    data-testid=\"dialog-header\"\n    className={cn(\n      'flex flex-col items-start relative space-y-1.5 border-b border-igz-gray-light px-6 py-4',\n      className\n    )}\n    {...props}\n  />\n)\nDialogHeader.displayName = 'DialogHeader'\n\nconst DialogBody = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n  <div\n    data-testid=\"dialog-body\"\n    className={cn('px-6 my-4 flex-1 flex flex-col gap-4 overflow-hidden', className)}\n    {...props}\n  />\n)\nDialogBody.displayName = 'DialogBody'\n\nconst DialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n  <div\n    data-testid=\"dialog-footer\"\n    className={cn(\n      'flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2 px-6 pb-3',\n      className\n    )}\n    {...props}\n  />\n)\nDialogFooter.displayName = 'DialogFooter'\n\nconst DialogTitle = React.forwardRef<\n  React.ElementRef<typeof DialogPrimitive.Title>,\n  React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n  <DialogPrimitive.Title\n    ref={ref}\n    data-testid=\"dialog-title\"\n    className={cn(\n      'font-roboto text-xl font-semibold leading-none tracking-tight text-igz-primary',\n      className\n    )}\n    {...props}\n  />\n))\nDialogTitle.displayName = DialogPrimitive.Title.displayName\n\nconst DialogDescription = React.forwardRef<\n  React.ElementRef<typeof DialogPrimitive.Description>,\n  React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n  <DialogPrimitive.Description\n    ref={ref}\n    data-testid=\"dialog-description\"\n    className={cn('text-sm text-muted-foreground', className)}\n    {...props}\n  />\n))\nDialogDescription.displayName = DialogPrimitive.Description.displayName\n\nexport {\n  Dialog,\n  DialogPortal,\n  DialogOverlay,\n  DialogClose,\n  DialogTrigger,\n  DialogContent,\n  DialogHeader,\n  DialogBody,\n  DialogFooter,\n  DialogTitle,\n  DialogDescription\n}\n"],"names":["Dialog","DialogPrimitive","DialogTrigger","DialogPortal","container","props","jsx","getPortalContainer","DialogClose","DialogOverlay","React","className","children","ref","cn","DialogContent","showCloseButton","closeOnOutsideClick","onPointerDownOutside","onInteractOutside","jsxs","event","Button","Close","DialogHeader","DialogBody","DialogFooter","DialogTitle","DialogDescription"],"mappings":";;;;;;;AAQA,MAAMA,IAASC,EAAgB,MAEzBC,IAAgBD,EAAgB,SAEhCE,IAAe,CAAC;AAAA,EACpB,WAAAC;AAAA,EACA,GAAGC;AACL,MACE,gBAAAC,EAACL,EAAgB,QAAhB,EAAuB,WAAWG,KAAaG,KAAuB,GAAGF,EAAA,CAAO,GAG7EG,IAAcP,EAAgB,OAE9BQ,IAAgBC,EAAM,WAG1B,CAAC,EAAE,WAAAC,GAAW,UAAAC,GAAU,GAAGP,KAASQ,MACpC,gBAAAP;AAAA,EAACL,EAAgB;AAAA,EAAhB;AAAA,IACC,KAAAY;AAAA,IACA,eAAY;AAAA,IACZ,WAAWC;AAAA,MACT;AAAA,MACAH;AAAA,IAAA;AAAA,IAED,GAAGN;AAAA,IAEH,UAAAO;AAAA,EAAA;AACH,CACD;AACDH,EAAc,cAAcR,EAAgB,QAAQ;AAEpD,MAAMc,IAAgBL,EAAM;AAAA,EAO1B,CACE;AAAA,IACE,WAAAC;AAAA,IACA,UAAAC;AAAA,IACA,iBAAAI,IAAkB;AAAA,IAClB,qBAAAC,IAAsB;AAAA,IACtB,sBAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,GAAGd;AAAA,EAAA,GAELQ,MAEA,gBAAAP,EAACH,GAAA,EACC,4BAACM,GAAA,EACC,UAAA,gBAAAW;AAAA,IAACnB,EAAgB;AAAA,IAAhB;AAAA,MACC,oBAAkB;AAAA,MAClB,KAAAY;AAAA,MACA,eAAY;AAAA,MACZ,WAAWC;AAAA,QACT;AAAA,QACAH;AAAA,MAAA;AAAA,MAED,GAAGN;AAAA,MACJ,sBAAsB,CAAAgB,MAAS;AAC7B,QAAAH,KAAA,QAAAA,EAAuBG,IAClBJ,KAAqBI,EAAM,eAAA;AAAA,MAClC;AAAA,MACA,mBAAmB,CAAAA,MAAS;AAC1B,QAAAF,KAAA,QAAAA,EAAoBE,IACfJ,KAAqBI,EAAM,eAAA;AAAA,MAClC;AAAA,MAEC,UAAA;AAAA,QAAAT;AAAA,QACAI,uBACEf,EAAgB,OAAhB,EAAsB,SAAO,IAAC,aAAU,gBACvC,UAAA,gBAAAK;AAAA,UAACgB;AAAA,UAAA;AAAA,YACC,SAAQ;AAAA,YACR,MAAK;AAAA,YACL,WAAU;AAAA,YACV,cAAW;AAAA,YACX,SAAQ;AAAA,YACR,eAAY;AAAA,YAEZ,UAAA,gBAAAhB,EAACiB,GAAA,EAAM,WAAU,UAAA,CAAU;AAAA,UAAA;AAAA,QAAA,EAC7B,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAGN,EAAA,CACF;AAEJ;AACAR,EAAc,cAAcd,EAAgB,QAAQ;AAEpD,MAAMuB,IAAe,CAAC,EAAE,WAAAb,GAAW,GAAGN,QACpC,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,eAAY;AAAA,IACZ,WAAWQ;AAAA,MACT;AAAA,MACAH;AAAA,IAAA;AAAA,IAED,GAAGN;AAAA,EAAA;AACN;AAEFmB,EAAa,cAAc;AAE3B,MAAMC,IAAa,CAAC,EAAE,WAAAd,GAAW,GAAGN,QAClC,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,eAAY;AAAA,IACZ,WAAWQ,EAAG,wDAAwDH,CAAS;AAAA,IAC9E,GAAGN;AAAA,EAAA;AACN;AAEFoB,EAAW,cAAc;AAEzB,MAAMC,IAAe,CAAC,EAAE,WAAAf,GAAW,GAAGN,QACpC,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,eAAY;AAAA,IACZ,WAAWQ;AAAA,MACT;AAAA,MACAH;AAAA,IAAA;AAAA,IAED,GAAGN;AAAA,EAAA;AACN;AAEFqB,EAAa,cAAc;AAE3B,MAAMC,IAAcjB,EAAM,WAGxB,CAAC,EAAE,WAAAC,GAAW,GAAGN,EAAA,GAASQ,MAC1B,gBAAAP;AAAA,EAACL,EAAgB;AAAA,EAAhB;AAAA,IACC,KAAAY;AAAA,IACA,eAAY;AAAA,IACZ,WAAWC;AAAA,MACT;AAAA,MACAH;AAAA,IAAA;AAAA,IAED,GAAGN;AAAA,EAAA;AACN,CACD;AACDsB,EAAY,cAAc1B,EAAgB,MAAM;AAEhD,MAAM2B,IAAoBlB,EAAM,WAG9B,CAAC,EAAE,WAAAC,GAAW,GAAGN,EAAA,GAASQ,MAC1B,gBAAAP;AAAA,EAACL,EAAgB;AAAA,EAAhB;AAAA,IACC,KAAAY;AAAA,IACA,eAAY;AAAA,IACZ,WAAWC,EAAG,iCAAiCH,CAAS;AAAA,IACvD,GAAGN;AAAA,EAAA;AACN,CACD;AACDuB,EAAkB,cAAc3B,EAAgB,YAAY;"}