{"version":3,"sources":["../layouts/simple/user-menu.tsx"],"sourcesContent":["\"use client\";\nimport React from 'react';\nimport { UserCircle } from 'lucide-react';\nimport {\n  DropdownMenu,\n  DropdownMenuContent,\n  DropdownMenuGroup,\n  DropdownMenuItem,\n  DropdownMenuLabel,\n  DropdownMenuPortal,\n  DropdownMenuSeparator,\n  DropdownMenuShortcut,\n  DropdownMenuSub,\n  DropdownMenuSubContent,\n  DropdownMenuSubTrigger,\n  DropdownMenuTrigger,\n} from '../../components/ui/dropdown-menu';\nimport { cn } from '../../utils/ui';\nimport type { MenuItem, UserMenuSection } from './types';\n\nexport function UserMenus({\n  sections,\n  trigger,\n  aslink,\n}: {\n  sections: UserMenuSection[];\n  trigger?: React.ReactNode;\n  aslink: React.ElementType;\n}) {\n  const LinkComponent = aslink ?? 'button';\n\n  return (\n    <DropdownMenu>\n      <DropdownMenuTrigger asChild>\n        {trigger ?? (\n          <button className=\"flex items-center justify-center p-2 bg-blue-500 hover:bg-blue-600 active:bg-blue-700 text-white rounded-full cursor-pointer\">\n            <UserCircle />\n          </button>\n        )}\n      </DropdownMenuTrigger>\n      <DropdownMenuContent className=\"w-56\" align=\"start\">\n        {sections.map((section, index) => {\n          return (\n            <div key={section.label ?? index}>\n              {section.label && <DropdownMenuLabel>{section.label}</DropdownMenuLabel>}\n              {section.items && section.items.length > 0 && (\n                <DropdownMenuGroup>\n                  {section.items.map((item) => {\n                    return (\n                      <DropdownMenuItem key={item.label}>\n                        {item.link ? (\n                          <LinkComponent\n                            to={item.link ?? '/'}\n                            href={item.link ?? '/'}\n                            className={cn('w-full text-left cursor-pointer', item.className)}\n                          >\n                            {item.label}\n                          </LinkComponent>\n                        ) : (\n                          <button\n                            onClick={item.action}\n                            className={cn('w-full text-left cursor-pointer', item.className)}\n                          >\n                            {item.label}\n                          </button>\n                        )}\n                      </DropdownMenuItem>\n                    );\n                  })}\n                </DropdownMenuGroup>\n              )}\n              {section.separator && <DropdownMenuSeparator />}\n            </div>\n          );\n        })}\n      </DropdownMenuContent>\n    </DropdownMenu>\n  );\n}\n"],"mappings":";;;;;;;;;;;;;;AACA,OAAO,WAAW;AAClB,SAAS,kBAAkB;AAkBpB,SAAS,UAAU;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,QAAM,gBAAgB,0BAAU;AAEhC,SACE,oCAAC,oBACC,oCAAC,uBAAoB,SAAO,QACzB,4BACC,oCAAC,YAAO,WAAU,kIAChB,oCAAC,gBAAW,CACd,CAEJ,GACA,oCAAC,uBAAoB,WAAU,QAAO,OAAM,WACzC,SAAS,IAAI,CAAC,SAAS,UAAU;AAzC1C;AA0CU,WACE,oCAAC,SAAI,MAAK,aAAQ,UAAR,YAAiB,SACxB,QAAQ,SAAS,oCAAC,yBAAmB,QAAQ,KAAM,GACnD,QAAQ,SAAS,QAAQ,MAAM,SAAS,KACvC,oCAAC,yBACE,QAAQ,MAAM,IAAI,CAAC,SAAS;AA/C/C,UAAAA,KAAA;AAgDoB,aACE,oCAAC,oBAAiB,KAAK,KAAK,SACzB,KAAK,OACJ;AAAA,QAAC;AAAA;AAAA,UACC,KAAIA,MAAA,KAAK,SAAL,OAAAA,MAAa;AAAA,UACjB,OAAM,UAAK,SAAL,YAAa;AAAA,UACnB,WAAW,GAAG,mCAAmC,KAAK,SAAS;AAAA;AAAA,QAE9D,KAAK;AAAA,MACR,IAEA;AAAA,QAAC;AAAA;AAAA,UACC,SAAS,KAAK;AAAA,UACd,WAAW,GAAG,mCAAmC,KAAK,SAAS;AAAA;AAAA,QAE9D,KAAK;AAAA,MACR,CAEJ;AAAA,IAEJ,CAAC,CACH,GAED,QAAQ,aAAa,oCAAC,2BAAsB,CAC/C;AAAA,EAEJ,CAAC,CACH,CACF;AAEJ;","names":["_a"]}