{"version":3,"sources":["../../layout/appTopbar/AppTopbar.tsx","../../util/index.ts","../../elements/dropdownMenu/DropdownMenu.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { cn } from \"@util/index\";\n\nimport { DropdownMenu, MenuItemType } from \"@elements/dropdownMenu\";\n\nimport { DirectionType } from \"@_types/commonTypes\";\n\ntype AppTopbarType = {\n  direction?: DirectionType;\n  size?: number;\n  username?: string;\n  email?: string;\n  profileMenuItems?: MenuItemType[];\n  avatarImage?: string;\n};\n\nexport const AppTopbar: React.FC<AppTopbarType> = ({ ...props }) => {\n  const isRTL = props.direction === \"ltr\";\n  const size = 1200;\n  return (\n    <div\n      className={cn(\n        \"hawa-fixed hawa-left-0 hawa-right-0 hawa-top-0 hawa-z-30 hawa-flex hawa-h-14 hawa-w-full hawa-items-center hawa-justify-between hawa-border-b hawa-bg-primary-foreground hawa-p-2\",\n        isRTL ? \"hawa-flex-row-reverse\" : \"hawa-flex-row\",\n      )}\n    >\n      {/* Nav Side Of Navbar */}\n      {size > 600 ? (\n        <div\n        // className={cn(\n        //   \"dark:hawa-text-white\",\n        //   isRTL\n        //     ? [\n        //         size > 600 ? \"hawa-mr-14\" : \"hawa-mr-2\",\n        //         keepOpen ? \"hawa-mr-40\" : \"\",\n        //       ]\n        //     : [\n        //         size > 600 ? \"hawa-ml-14\" : \"hawa-ml-2\",\n        //         keepOpen ? \"hawa-ml-40\" : \"\",\n        //       ]\n        // )}\n        // style={\n        //   isRTL\n        //     ? {\n        //         marginRight: `${\n        //           drawerSizeStyle[keepOpen ? \"opened\" : \"closed\"][\n        //             drawerSize\n        //           ]\n        //         }px`,\n        //       }\n        //     : {\n        //         marginLeft: `${\n        //           drawerSizeStyle[keepOpen ? \"opened\" : \"closed\"][\n        //             drawerSize\n        //           ]\n        //         }px`,\n        //       }\n        // }\n        >\n          {/* {props.pageTitle} */}\n          page title\n        </div>\n      ) : (\n        // Mobile Drawer Menu Button\n        <div\n          dir={props.direction}\n          className=\"hawa-flex hawa-items-center hawa-justify-center hawa-gap-0.5\"\n        >\n          <div\n            //   onClick={() => setOpenSideMenu(true)}\n            className=\"hawa-z-40 hawa-mx-1 hawa-cursor-pointer hawa-rounded hawa-p-2 hawa-transition-all hover:hawa-bg-gray-100\"\n          >\n            <svg\n              stroke=\"currentColor\"\n              fill=\"currentColor\"\n              strokeWidth={0}\n              viewBox=\"0 0 20 20\"\n              aria-hidden=\"true\"\n              height=\"1.6em\"\n              width=\"1.6em\"\n            >\n              <path\n                fillRule=\"evenodd\"\n                clipRule=\"evenodd\"\n                d=\"M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 15a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z\"\n              ></path>\n            </svg>\n          </div>\n          {/* Mobile Page Title */}\n          {/* {props.pageTitle ? (\n              <div className=\"hawa-text-sm\">{props.pageTitle}</div>\n            ) : (\n              <div></div>\n            )} */}\n          Mobile title\n        </div>\n      )}\n\n      <div\n        className={cn(\n          \"hawa-flex hawa-gap-2 dark:hawa-text-white\",\n          isRTL ? \"hawa-flex-row-reverse\" : \"hawa-flex-row\",\n        )}\n      >\n        {/* User Info */}\n        {size > 600 ? (\n          <div\n            className={\n              isRTL\n                ? \"hawa-text-left hawa-text-xs\"\n                : \"hawa-text-right hawa-text-xs\"\n            }\n          >\n            <div className=\"hawa-font-bold\">{props.username}</div>{\" \"}\n            <div>{props.email}</div>\n          </div>\n        ) : null}\n        {/* Profile Icon & Menu */}\n        <DropdownMenu\n          triggerClassname=\"hawa-mx-2\"\n          align=\"end\"\n          alignOffset={8}\n          side={\"bottom\"}\n          sideOffset={5}\n          // width={props.profileMenuWidth}\n          direction={isRTL ? \"rtl\" : \"ltr\"}\n          items={props.profileMenuItems || []}\n          onItemSelect={(e: any) => console.log(\"selecting item \", e)}\n          trigger={\n            <div className=\"hawa-relative hawa-h-8 hawa-w-8 hawa-cursor-pointer hawa-overflow-clip hawa-rounded hawa-ring-1 hawa-ring-primary/30 dark:hawa-bg-gray-600\">\n              {props.avatarImage ? (\n                <img src={props.avatarImage} alt=\"User Avatar\" />\n              ) : (\n                <svg\n                  aria-label=\"Avatar Icon\"\n                  className=\"hawa-absolute hawa--left-1 hawa-h-10 hawa-w-10 hawa-text-gray-400\"\n                  fill=\"currentColor\"\n                  viewBox=\"0 0 20 20\"\n                >\n                  <path\n                    fillRule=\"evenodd\"\n                    d=\"M10 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z\"\n                    clipRule=\"evenodd\"\n                  ></path>\n                </svg>\n              )}\n            </div>\n          }\n        />\n      </div>\n    </div>\n  );\n};\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n  return twMerge(clsx(inputs));\n}\n\ntype Palette = {\n  name: string;\n  colors: {\n    [key: number]: string;\n  };\n};\ntype Rgb = {\n  r: number;\n  g: number;\n  b: number;\n};\nfunction hexToRgb(hex: string): Rgb | null {\n  const sanitizedHex = hex.replaceAll(\"##\", \"#\");\n  const colorParts = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(\n    sanitizedHex\n  );\n\n  if (!colorParts) {\n    return null;\n  }\n\n  const [, r, g, b] = colorParts;\n\n  return {\n    r: parseInt(r, 16),\n    g: parseInt(g, 16),\n    b: parseInt(b, 16)\n  } as Rgb;\n}\n\nfunction rgbToHex(r: number, g: number, b: number): string {\n  const toHex = (c: number) => `0${c.toString(16)}`.slice(-2);\n  return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n}\n\nexport function getTextColor(color: string): \"#FFF\" | \"#333\" {\n  const rgbColor = hexToRgb(color);\n\n  if (!rgbColor) {\n    return \"#333\";\n  }\n\n  const { r, g, b } = rgbColor;\n  const luma = 0.2126 * r + 0.7152 * g + 0.0722 * b;\n\n  return luma < 120 ? \"#FFF\" : \"#333\";\n}\n\nfunction lighten(hex: string, intensity: number): string {\n  const color = hexToRgb(`#${hex}`);\n\n  if (!color) {\n    return \"\";\n  }\n\n  const r = Math.round(color.r + (255 - color.r) * intensity);\n  const g = Math.round(color.g + (255 - color.g) * intensity);\n  const b = Math.round(color.b + (255 - color.b) * intensity);\n\n  return rgbToHex(r, g, b);\n}\n\nfunction darken(hex: string, intensity: number): string {\n  const color = hexToRgb(hex);\n\n  if (!color) {\n    return \"\";\n  }\n\n  const r = Math.round(color.r * intensity);\n  const g = Math.round(color.g * intensity);\n  const b = Math.round(color.b * intensity);\n\n  return rgbToHex(r, g, b);\n}\nconst parseColor = (color: any) => {\n  if (color.startsWith(\"#\")) {\n    // Convert hex to RGB\n    let r = parseInt(color.slice(1, 3), 16);\n    let g = parseInt(color.slice(3, 5), 16);\n    let b = parseInt(color.slice(5, 7), 16);\n    return [r, g, b];\n  } else if (color.startsWith(\"rgb\")) {\n    // Extract RGB values from rgb() format\n    return color.match(/\\d+/g).map(Number);\n  }\n  // Default to white if format is unrecognized\n  return [255, 255, 255];\n};\nexport const calculateLuminance = (color: any) => {\n  const [r, g, b] = parseColor(color)?.map((c: any) => {\n    c /= 255;\n    return c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;\n  });\n  return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n};\n\nfunction getPallette(baseColor: string): Palette {\n  const name = baseColor;\n\n  const response: Palette = {\n    name,\n    colors: {\n      500: `#${baseColor}`.replace(\"##\", \"#\")\n    }\n  };\n\n  const intensityMap: {\n    [key: number]: number;\n  } = {\n    50: 0.95,\n    100: 0.9,\n    200: 0.75,\n    300: 0.6,\n    400: 0.3,\n    600: 0.9,\n    700: 0.75,\n    800: 0.6,\n    900: 0.49\n  };\n\n  [50, 100, 200, 300, 400].forEach((level) => {\n    response.colors[level] = lighten(baseColor, intensityMap[level]);\n  });\n  [600, 700, 800, 900].forEach((level) => {\n    response.colors[level] = darken(baseColor, intensityMap[level]);\n  });\n\n  return response as Palette;\n}\n\nexport { getPallette };\n\n// const hexToRgb = (hex) => {\n//   let d = hex?.split(\"#\")[1];\n//   var aRgbHex = d?.match(/.{1,2}/g);\n//   var aRgb = [\n//     parseInt(aRgbHex[0], 16),\n//     parseInt(aRgbHex[1], 16),\n//     parseInt(aRgbHex[2], 16)\n//   ];\n//   return aRgb;\n// };\n// const getTextColor = (backColor) => {\n//   let rgbArray = hexToRgb(backColor);\n//   if (rgbArray[0] * 0.299 + rgbArray[1] * 0.587 + rgbArray[2] * 0.114 > 186) {\n//     return \"#000000\";\n//   } else {\n//     return \"#ffffff\";\n//   }\n// };\n// const replaceAt = function (string, index, replacement) {\n//   // if (replacement == \"\" || replacement == \" \") {\n//   //   return (\n//   //     string.substring(0, index) +\n//   //     string.substring(index + replacement.length )\n//   //   );\n//   // }\n//   const replaced = string.substring(0, index) + replacement + string.substring(index + 1)\n//   return replaced\n// };\n\n// export { hexToRgb, getTextColor, replaceAt };\n","import * as React from \"react\";\n\nimport { Portal } from \"@headlessui/react\";\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { cn } from \"@util/index\";\n\nimport { DirectionType, RadioOptionType } from \"../../types/commonTypes\";\n\nconst DropdownMenuRoot = DropdownMenuPrimitive.Root;\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group;\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub;\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n  React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {\n    inset?: boolean;\n  }\n>(({ className, inset, children, ...props }, ref) => (\n  <DropdownMenuPrimitive.SubTrigger\n    ref={ref}\n    className={cn(\n      \"hawa-flex hawa-cursor-default hawa-select-none hawa-items-center hawa-justify-between hawa-rounded-sm hawa-text-sm hawa-outline-none focus:hawa-bg-accent data-[state=open]:hawa-bg-accent\",\n      inset && \"hawa-pl-8\",\n      className,\n    )}\n    {...props}\n  >\n    <div className=\"hawa-flex hawa-flex-row hawa-items-center hawa-gap-2\">\n      {children}\n    </div>{\" \"}\n    <svg\n      aria-label=\"Chevron Right Icon\"\n      stroke=\"currentColor\"\n      fill=\"currentColor\"\n      strokeWidth=\"0\"\n      viewBox=\"0 0 16 16\"\n      height=\"1em\"\n      width=\"1em\"\n      className={cn(props.dir === \"rtl\" ? \"hawa-rotate-180\" : \"\")}\n    >\n      <path\n        fillRule=\"evenodd\"\n        d=\"M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z\"\n      ></path>\n    </svg>\n  </DropdownMenuPrimitive.SubTrigger>\n));\nDropdownMenuSubTrigger.displayName =\n  DropdownMenuPrimitive.SubTrigger.displayName;\n\nconst DropdownMenuSubContent = React.forwardRef<\n  React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n  <DropdownMenuPrimitive.SubContent\n    ref={ref}\n    className={cn(\n      \"hawa-z-50 hawa-min-w-[8rem] hawa-gap-1 hawa-overflow-hidden hawa-rounded-md hawa-border hawa-bg-popover hawa-p-1 hawa-text-popover-foreground hawa-shadow-lg data-[state=open]:hawa-animate-in data-[state=closed]:hawa-animate-out data-[state=closed]:hawa-fade-out-0 data-[state=open]:hawa-fade-in-0 data-[state=closed]:hawa-zoom-out-95 data-[state=open]:hawa-zoom-in-95 data-[side=bottom]:hawa-slide-in-from-top-2 data-[side=left]:hawa-slide-in-from-right-2 data-[side=right]:hawa-slide-in-from-left-2 data-[side=top]:hawa-slide-in-from-bottom-2\",\n      className,\n    )}\n    {...props}\n  />\n));\nDropdownMenuSubContent.displayName =\n  DropdownMenuPrimitive.SubContent.displayName;\n\nconst DropdownMenuContent = React.forwardRef<\n  React.ElementRef<typeof DropdownMenuPrimitive.Content>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n  <Portal>\n    <DropdownMenuPrimitive.Content\n      ref={ref}\n      sideOffset={sideOffset}\n      className={cn(\n        \"hawa-z-50 hawa-overflow-hidden hawa-rounded-md hawa-border hawa-bg-popover hawa-p-1 hawa-text-popover-foreground hawa-shadow-md data-[state=open]:hawa-animate-in data-[state=closed]:hawa-animate-out data-[state=closed]:hawa-fade-out-0 data-[state=open]:hawa-fade-in-0 data-[state=closed]:hawa-zoom-out-95 data-[state=open]:hawa-zoom-in-95 data-[side=bottom]:hawa-slide-in-from-top-2 data-[side=left]:hawa-slide-in-from-right-2 data-[side=right]:hawa-slide-in-from-left-2 data-[side=top]:hawa-slide-in-from-bottom-2\",\n        className,\n      )}\n      {...props}\n    />\n  </Portal>\n));\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;\n\nconst DropdownMenuItem = React.forwardRef<\n  React.ElementRef<typeof DropdownMenuPrimitive.Item>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {\n    inset?: boolean;\n    end?: any;\n    shortcut?: React.ReactNode;\n    badged?: boolean;\n    slug?: string;\n    LinkComponent?: any;\n  }\n>(({ className, inset, badged, slug, LinkComponent = \"a\", ...props }, ref) => {\n  return (\n    <LinkComponent href={slug}>\n      <DropdownMenuPrimitive.Item\n        disabled={props.disabled}\n        ref={ref}\n        className={cn(\n          \"hawa-relative hawa-flex hawa-cursor-pointer hawa-select-none hawa-items-center hawa-justify-between hawa-rounded-sm hawa-text-sm hawa-outline-none hawa-transition-colors focus:hawa-text-accent-foreground data-[disabled]:hawa-pointer-events-none data-[disabled]:hawa-opacity-50\",\n          inset && \"hawa-pl-8\",\n          props.end &&\n            Array.isArray(props.children) &&\n            props.children[1] &&\n            \"hawa-gap-6\",\n          className,\n        )}\n        {...props}\n      >\n        <div className=\"hawa-flex hawa-flex-row hawa-items-center hawa-gap-2\">\n          {props.children}\n        </div>\n\n        {props.end && props.end}\n        {!props.end && props.shortcut && (\n          <DropdownMenuShortcut>{props.shortcut}</DropdownMenuShortcut>\n        )}\n        {!props.end && badged && (\n          <div className=\"hawa-h-3 hawa-w-3 hawa-rounded-full hawa-bg-red-500\" />\n        )}\n      </DropdownMenuPrimitive.Item>\n    </LinkComponent>\n  );\n});\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n  React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n  <DropdownMenuPrimitive.CheckboxItem\n    ref={ref}\n    className={cn(\n      \"hawa-relative hawa-flex hawa-cursor-default hawa-select-none hawa-items-center hawa-rounded-sm hawa-py-1.5 hawa-pl-8 hawa-pr-2 hawa-text-sm hawa-outline-none hawa-transition-colors focus:hawa-bg-accent focus:hawa-text-accent-foreground data-[disabled]:hawa-pointer-events-none data-[disabled]:hawa-opacity-50\",\n      className,\n    )}\n    checked={checked}\n    {...props}\n  >\n    <span className=\"hawa-absolute hawa-left-2 hawa-flex hawa-h-3.5 hawa-w-3.5 hawa-items-center hawa-justify-center\">\n      <DropdownMenuPrimitive.ItemIndicator>\n        {/* <Check className=\"h-4 w-4\" /> */}\n        <svg\n          aria-label=\"Check Mark\"\n          stroke=\"currentColor\"\n          fill=\"currentColor\"\n          strokeWidth=\"0\"\n          viewBox=\"0 0 512 512\"\n          height=\"0.60em\"\n          width=\"0.60em\"\n        >\n          <path d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"></path>\n        </svg>{\" \"}\n      </DropdownMenuPrimitive.ItemIndicator>\n    </span>\n    {children}\n  </DropdownMenuPrimitive.CheckboxItem>\n));\nDropdownMenuCheckboxItem.displayName =\n  DropdownMenuPrimitive.CheckboxItem.displayName;\n\nconst DropdownMenuRadioItem = React.forwardRef<\n  React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n  <DropdownMenuPrimitive.RadioItem\n    ref={ref}\n    className={cn(\n      \"hawa-relative hawa-flex hawa-cursor-pointer hawa-select-none hawa-items-center hawa-rounded-sm hawa-py-1.5 hawa-pl-8 hawa-pr-2 hawa-text-sm hawa-outline-none hawa-transition-colors focus:hawa-bg-accent focus:hawa-text-accent-foreground data-[disabled]:hawa-pointer-events-none data-[disabled]:hawa-opacity-50\",\n      className,\n    )}\n    {...props}\n  >\n    <span className=\"hawa-absolute hawa-left-2 hawa-flex hawa-h-3.5 hawa-w-3.5 hawa-items-center hawa-justify-center\">\n      <DropdownMenuPrimitive.ItemIndicator>\n        <svg\n          xmlns=\"http://www.w3.org/2000/svg\"\n          width=\"24\"\n          aria-label=\"Circle\"\n          height=\"24\"\n          viewBox=\"0 0 24 24\"\n          fill=\"none\"\n          stroke=\"currentColor\"\n          strokeWidth=\"2\"\n          strokeLinecap=\"round\"\n          strokeLinejoin=\"round\"\n          className=\"hawa-h-2 hawa-w-2 hawa-fill-current\"\n        >\n          <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n        </svg>\n      </DropdownMenuPrimitive.ItemIndicator>\n    </span>\n    {children}\n  </DropdownMenuPrimitive.RadioItem>\n));\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;\n\nconst DropdownMenuLabel = React.forwardRef<\n  React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {\n    inset?: boolean;\n  }\n>(({ className, inset, ...props }, ref) => (\n  <DropdownMenuPrimitive.Label\n    ref={ref}\n    className={cn(\n      \"hawa-px-2 hawa-py-1.5 hawa-text-sm hawa-font-semibold\",\n      inset && \"hawa-pl-8\",\n      className,\n    )}\n    {...props}\n  />\n));\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;\n\nconst DropdownMenuSeparator = React.forwardRef<\n  React.ElementRef<typeof DropdownMenuPrimitive.Separator>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n  <DropdownMenuPrimitive.Separator\n    ref={ref}\n    className={cn(\"hawa--mx-1 hawa-my-1 hawa-h-px hawa-bg-muted\", className)}\n    {...props}\n  />\n));\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;\n\nconst DropdownMenuShortcut = ({\n  className,\n  ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n  return (\n    <span\n      className={cn(\n        \"hawa-text-xs hawa-tracking-widest hawa-opacity-60\",\n        className,\n      )}\n      {...props}\n    />\n  );\n};\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\";\n\ntype ExtendedDropdownMenuContentProps = Partial<\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\n> & {\n  // Add any additional types or overrides here, for example:\n  //   side?: \"left\" | \"right\" | \"top\" | \"bottom\"\n};\ntype ExtendedDropdownMenuTriggerProps = Partial<\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Trigger>\n> & {\n  // Add any additional types or overrides here, for example:\n  //   side?: \"left\" | \"right\" | \"top\" | \"bottom\"\n};\n\nexport type SubItem = {\n  label?: string;\n  value?: any;\n  icon?: any;\n  action?: () => void;\n  onMiddleClick?: (e: any) => void;\n  highlighted?: boolean;\n  disabled?: boolean;\n  slug?: string;\n};\nexport type MenuItemType = {\n  icon?: React.ReactNode;\n  label?: string;\n  shortcut?: React.ReactNode;\n  badged?: boolean;\n  value?: any;\n  content?: any;\n  slug?: string;\n  end?: any;\n  presist?: boolean;\n  itemType?: \"separator\" | \"label\" | \"custom\" | \"radio\";\n  action?: () => void;\n  highlighted?: boolean;\n  subitems?: SubItem[];\n  options?: RadioOptionType[];\n  currentOption?: string;\n  onOptionChange?: (value: string) => void;\n  disabled?: boolean;\n  onMiddleClick?: (e: any) => void;\n  onClick?: any;\n};\ninterface DropdownMenuProps {\n  trigger?: any;\n  items: MenuItemType[];\n  direction?: DirectionType;\n  classNames?: {\n    trigger?: string;\n    content?: string;\n    item?: string;\n    separator?: string;\n  };\n  className?: ExtendedDropdownMenuContentProps[\"className\"];\n  triggerClassname?: ExtendedDropdownMenuTriggerProps[\"className\"];\n  triggerProps?: DropdownMenuPrimitive.DropdownMenuTriggerProps;\n  sideOffset?: ExtendedDropdownMenuContentProps[\"sideOffset\"];\n  side?: ExtendedDropdownMenuContentProps[\"side\"];\n  align?: ExtendedDropdownMenuContentProps[\"align\"];\n  alignOffset?: ExtendedDropdownMenuContentProps[\"alignOffset\"];\n  contentProps?: ExtendedDropdownMenuContentProps;\n  width?: \"default\" | \"sm\" | \"lg\" | \"parent\";\n  size?: \"default\" | \"sm\";\n  onItemSelect?: any;\n  onOpenChange?: any;\n  header?: React.ReactNode;\n  open?: any;\n  LinkComponent?: any;\n}\nconst DropdownMenu: React.FC<DropdownMenuProps> = ({\n  trigger,\n  items,\n  direction,\n  sideOffset,\n  side,\n  className,\n  classNames,\n  contentProps,\n  triggerClassname,\n  triggerProps,\n  align,\n  alignOffset,\n  onItemSelect,\n  size = \"default\",\n  width = \"default\",\n  header,\n  onOpenChange,\n  open,\n  LinkComponent,\n}) => {\n  const widthStyles = {\n    default: \"hawa-min-w-[8rem]\",\n    sm: \"hawa-w-fit\",\n    lg: \"hawa-w-[200px]\",\n    parent: \"ddm-w-parent\",\n  };\n  const sizeStyles = {\n    default: \"hawa-px-2 hawa-py-3 \",\n    sm: \"hawa-text-xs hawa-px-1.5 hawa-py-1.5 \",\n  };\n  let [values, setValues] = React.useState(\n    items.map((item) => item.currentOption),\n  );\n\n  return (\n    <DropdownMenuRoot\n      onOpenChange={onOpenChange}\n      open={open}\n      modal={false}\n      dir={direction}\n    >\n      <DropdownMenuTrigger\n        asChild\n        className={cn(classNames?.trigger, triggerClassname)}\n        {...triggerProps}\n      >\n        {trigger}\n      </DropdownMenuTrigger>\n      <Portal>\n        <DropdownMenuContent\n          side={side}\n          sideOffset={sideOffset}\n          align={align}\n          alignOffset={alignOffset}\n          className={cn(\n            className,\n            classNames?.content,\n            widthStyles[width],\n            \"hawa-flex hawa-flex-col hawa-gap-1 hawa-overflow-y-auto\",\n          )}\n          style={{\n            maxHeight: \"var(--radix-dropdown-menu-content-available-height)\",\n          }}\n          {...contentProps}\n        >\n          {header && header}\n          {items &&\n            items.map((item, index) => {\n              const ItemLinkComponent = item.slug ? LinkComponent : \"a\";\n              if (item.itemType === \"separator\") {\n                return (\n                  <DropdownMenuSeparator\n                    key={index}\n                    className={classNames?.separator}\n                  />\n                );\n              } else if (item.itemType === \"label\") {\n                return (\n                  <DropdownMenuLabel key={index}>\n                    {item.label}\n                  </DropdownMenuLabel>\n                );\n              } else if (item.itemType === \"radio\") {\n                let dd = item.currentOption;\n                return (\n                  <DropdownMenuSub key={index}>\n                    <DropdownMenuSubTrigger\n                      dir={direction}\n                      className={cn(sizeStyles[size])}\n                    >\n                      {item.icon && item.icon}\n                      {item.label && item.label}\n                    </DropdownMenuSubTrigger>\n                    <DropdownMenuSubContent>\n                      <DropdownMenuRadioGroup\n                        value={values[index]}\n                        onValueChange={(e) => {\n                          let newValues = [...values];\n                          newValues[index] = e;\n                          setValues(newValues);\n                          console.log(\"changing to \", e);\n                          if (item.onOptionChange) {\n                            item.onOptionChange(e);\n                          }\n                        }}\n                      >\n                        {item.options?.map((opt, i) => (\n                          <DropdownMenuRadioItem key={i} value={opt.value}>\n                            {opt.label}\n                          </DropdownMenuRadioItem>\n                        ))}\n                      </DropdownMenuRadioGroup>\n                    </DropdownMenuSubContent>\n                  </DropdownMenuSub>\n                );\n              } else if (item.itemType === \"custom\") {\n                return <div key={index}>{item.content}</div>;\n              } else {\n                return item.subitems ? (\n                  <DropdownMenuSub key={index}>\n                    <DropdownMenuSubTrigger\n                      dir={direction}\n                      className={cn(sizeStyles[size])}\n                    >\n                      {item.icon && item.icon}\n                      {item.label && item.label}\n                    </DropdownMenuSubTrigger>\n                    <Portal>\n                      <DropdownMenuSubContent>\n                        {item.subitems.map((subitem, subIndex) => {\n                          const SubitemLinkComponent = subitem.slug\n                            ? LinkComponent\n                            : \"a\";\n                          return (\n                            <DropdownMenuItem\n                              key={subIndex}\n                              LinkComponent={SubitemLinkComponent}\n                              slug={subitem.slug}\n                              disabled={subitem.disabled}\n                              className={cn(\n                                sizeStyles[size],\n                                !item.icon && !item.label\n                                  ? \"hawa-px-0 hawa-py-0 focus:hawa-bg-transparent\"\n                                  : \"focus:hawa-bg-accent\",\n                              )}\n                              onMouseDown={(event: any) => {\n                                if (\n                                  event.button === 1 ||\n                                  (event.button === 0 && event.ctrlKey)\n                                ) {\n                                  event.preventDefault(); // This line prevents the default behavior of the middle button\n                                  if (subitem.onMiddleClick) {\n                                    subitem.onMiddleClick(item.value);\n                                  }\n                                }\n                              }}\n                              onSelect={() => {\n                                subitem.action && subitem.action();\n                                if (onItemSelect) {\n                                  onItemSelect(subitem.value);\n                                }\n                              }}\n                            >\n                              {subitem.icon && subitem.icon}\n                              {subitem.label && subitem.label}\n                            </DropdownMenuItem>\n                          );\n                        })}\n                      </DropdownMenuSubContent>\n                    </Portal>\n                  </DropdownMenuSub>\n                ) : (\n                  <DropdownMenuItem\n                    LinkComponent={ItemLinkComponent}\n                    slug={item.slug}\n                    key={index}\n                    disabled={item.disabled}\n                    onMouseDown={(event: any) => {\n                      if (\n                        event.button === 1 ||\n                        (event.button === 0 && event.ctrlKey)\n                      ) {\n                        event.preventDefault(); // This line prevents the default behavior of the middle button\n                        if (item.onMiddleClick) {\n                          item.onMiddleClick(item.value);\n                        }\n                      }\n                    }}\n                    onClick={(event: any) => {\n                      if (item.onClick) {\n                        item.onClick(item.value);\n                      }\n                    }}\n                    onSelect={(e) => {\n                      if (item.presist) {\n                        e.preventDefault();\n                      }\n                      if (item.action) {\n                        item.action();\n                        if (onItemSelect) {\n                          onItemSelect(item.value);\n                        }\n                      } else {\n                        if (onItemSelect) {\n                          onItemSelect(item.value);\n                        }\n                      }\n                    }}\n                    end={item.end}\n                    shortcut={item.shortcut}\n                    badged={item.badged}\n                    className={cn(\n                      sizeStyles[size],\n                      !item.icon && !item.label\n                        ? \"hawa-px-0 hawa-py-0 focus:hawa-bg-transparent\"\n                        : \"focus:hawa-bg-accent\",\n                      item.presist && \"focus:hawa-bg-transparent\",\n                      classNames?.item,\n                    )}\n                  >\n                    {item.icon && item.icon}\n                    {item.label && item.label}\n                  </DropdownMenuItem>\n                );\n              }\n            })}\n        </DropdownMenuContent>\n      </Portal>\n    </DropdownMenuRoot>\n  );\n};\n\ninterface DropdownMenuRadioOptionType extends RadioOptionType {\n  props?: Omit<DropdownMenuPrimitive.DropdownMenuItemProps, \"value\" | \"label\">;\n}\n\ninterface DropdownMenuRadioProps {\n  trigger?: React.ReactNode;\n  side?: ExtendedDropdownMenuContentProps[\"side\"];\n  align?: ExtendedDropdownMenuContentProps[\"align\"];\n  options: DropdownMenuRadioOptionType[];\n  value: string;\n  onValueChange: any;\n  label?: string;\n  contentProps?: ExtendedDropdownMenuContentProps;\n  radioGroupProps?: React.ComponentPropsWithoutRef<\n    typeof DropdownMenuPrimitive.RadioGroup\n  >;\n}\nconst DropdownMenuRadio: React.FC<DropdownMenuRadioProps> = (props) => {\n  const ariaLabel = props.label ? `${props.label} radio group` : undefined;\n  const ariaLabelledby = props.label ? `${props.label}-label` : undefined;\n\n  return (\n    <DropdownMenuRoot>\n      <DropdownMenuTrigger asChild>{props.trigger}</DropdownMenuTrigger>\n      <DropdownMenuContent\n        align={props.align}\n        side={props.side}\n        aria-label={ariaLabel}\n        aria-labelledby={ariaLabelledby}\n        {...props.contentProps}\n      >\n        {props.label && (\n          <>\n            <DropdownMenuLabel id={`${props.label}-label`}>\n              {props.label}\n            </DropdownMenuLabel>\n            <DropdownMenuSeparator />\n          </>\n        )}\n        <DropdownMenuRadioGroup\n          value={props.value}\n          onValueChange={props.onValueChange}\n          {...props.radioGroupProps}\n        >\n          {props.options.map((opt, i) => (\n            <DropdownMenuRadioItem\n              key={i}\n              {...opt.props}\n              value={opt.value}\n              aria-checked={props.value === opt.value}\n            >\n              {opt.label}\n            </DropdownMenuRadioItem>\n          ))}\n        </DropdownMenuRadioGroup>\n      </DropdownMenuContent>\n    </DropdownMenuRoot>\n  );\n};\n\nexport {\n  DropdownMenu,\n  DropdownMenuRoot,\n  DropdownMenuRadio,\n  DropdownMenuTrigger,\n  DropdownMenuContent,\n  DropdownMenuItem,\n  DropdownMenuCheckboxItem,\n  DropdownMenuRadioItem,\n  DropdownMenuLabel,\n  DropdownMenuSeparator,\n  DropdownMenuShortcut,\n  DropdownMenuGroup,\n  DropdownMenuSub,\n  DropdownMenuSubContent,\n  DropdownMenuSubTrigger,\n  DropdownMenuRadioGroup,\n  Portal as DropdownMenuPortal,\n};\n"],"mappings":";;;AAAA,OAAOA,YAAW;;;ACAlB,SAAS,YAA6B;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;;;ACLA,YAAY,WAAW;AAEvB,SAAS,cAAc;AACvB,YAAY,2BAA2B;AAKvC,IAAM,mBAAyC;AAC/C,IAAM,sBAA4C;AAElD,IAAM,kBAAwC;AAC9C,IAAM,yBAA+C;AAErD,IAAM,yBAA+B,iBAKnC,CAAC,EAAE,WAAW,OAAO,UAAU,GAAG,MAAM,GAAG,QAC3C;AAAA,EAAuB;AAAA,EAAtB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA,SAAS;AAAA,MACT;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AAAA,EAEJ,oCAAC,SAAI,WAAU,0DACZ,QACH;AAAA,EAAO;AAAA,EACP;AAAA,IAAC;AAAA;AAAA,MACC,cAAW;AAAA,MACX,QAAO;AAAA,MACP,MAAK;AAAA,MACL,aAAY;AAAA,MACZ,SAAQ;AAAA,MACR,QAAO;AAAA,MACP,OAAM;AAAA,MACN,WAAW,GAAG,MAAM,QAAQ,QAAQ,oBAAoB,EAAE;AAAA;AAAA,IAE1D;AAAA,MAAC;AAAA;AAAA,QACC,UAAS;AAAA,QACT,GAAE;AAAA;AAAA,IACH;AAAA,EACH;AACF,CACD;AACD,uBAAuB,cACC,iCAAW;AAEnC,IAAM,yBAA+B,iBAGnC,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B;AAAA,EAAuB;AAAA,EAAtB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,uBAAuB,cACC,iCAAW;AAEnC,IAAM,sBAA4B,iBAGhC,CAAC,EAAE,WAAW,aAAa,GAAG,GAAG,MAAM,GAAG,QAC1C,oCAAC,cACC;AAAA,EAAuB;AAAA,EAAtB;AAAA,IACC;AAAA,IACA;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACF,CACD;AACD,oBAAoB,cAAoC,8BAAQ;AAEhE,IAAM,mBAAyB,iBAU7B,CAAC,EAAE,WAAW,OAAO,QAAQ,MAAM,gBAAgB,KAAK,GAAG,MAAM,GAAG,QAAQ;AAC5E,SACE,oCAAC,iBAAc,MAAM,QACnB;AAAA,IAAuB;AAAA,IAAtB;AAAA,MACC,UAAU,MAAM;AAAA,MAChB;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA,SAAS;AAAA,QACT,MAAM,OACJ,MAAM,QAAQ,MAAM,QAAQ,KAC5B,MAAM,SAAS,CAAC,KAChB;AAAA,QACF;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,IAEJ,oCAAC,SAAI,WAAU,0DACZ,MAAM,QACT;AAAA,IAEC,MAAM,OAAO,MAAM;AAAA,IACnB,CAAC,MAAM,OAAO,MAAM,YACnB,oCAAC,4BAAsB,MAAM,QAAS;AAAA,IAEvC,CAAC,MAAM,OAAO,UACb,oCAAC,SAAI,WAAU,uDAAsD;AAAA,EAEzE,CACF;AAEJ,CAAC;AACD,iBAAiB,cAAoC,2BAAK;AAE1D,IAAM,2BAAiC,iBAGrC,CAAC,EAAE,WAAW,UAAU,SAAS,GAAG,MAAM,GAAG,QAC7C;AAAA,EAAuB;AAAA,EAAtB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,IACC,GAAG;AAAA;AAAA,EAEJ,oCAAC,UAAK,WAAU,qGACd,oCAAuB,qCAAtB,MAEC;AAAA,IAAC;AAAA;AAAA,MACC,cAAW;AAAA,MACX,QAAO;AAAA,MACP,MAAK;AAAA,MACL,aAAY;AAAA,MACZ,SAAQ;AAAA,MACR,QAAO;AAAA,MACP,OAAM;AAAA;AAAA,IAEN,oCAAC,UAAK,GAAE,sRAAqR;AAAA,EAC/R,GAAO,GACT,CACF;AAAA,EACC;AACH,CACD;AACD,yBAAyB,cACD,mCAAa;AAErC,IAAM,wBAA8B,iBAGlC,CAAC,EAAE,WAAW,UAAU,GAAG,MAAM,GAAG,QACpC;AAAA,EAAuB;AAAA,EAAtB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AAAA,EAEJ,oCAAC,UAAK,WAAU,qGACd,oCAAuB,qCAAtB,MACC;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,OAAM;AAAA,MACN,cAAW;AAAA,MACX,QAAO;AAAA,MACP,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,QAAO;AAAA,MACP,aAAY;AAAA,MACZ,eAAc;AAAA,MACd,gBAAe;AAAA,MACf,WAAU;AAAA;AAAA,IAEV,oCAAC,YAAO,IAAG,MAAK,IAAG,MAAK,GAAE,MAAK;AAAA,EACjC,CACF,CACF;AAAA,EACC;AACH,CACD;AACD,sBAAsB,cAAoC,gCAAU;AAEpE,IAAM,oBAA0B,iBAK9B,CAAC,EAAE,WAAW,OAAO,GAAG,MAAM,GAAG,QACjC;AAAA,EAAuB;AAAA,EAAtB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA,SAAS;AAAA,MACT;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,kBAAkB,cAAoC,4BAAM;AAE5D,IAAM,wBAA8B,iBAGlC,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B;AAAA,EAAuB;AAAA,EAAtB;AAAA,IACC;AAAA,IACA,WAAW,GAAG,gDAAgD,SAAS;AAAA,IACtE,GAAG;AAAA;AACN,CACD;AACD,sBAAsB,cAAoC,gCAAU;AAEpE,IAAM,uBAAuB,CAAC;AAAA,EAC5B;AAAA,EACA,GAAG;AACL,MAA6C;AAC3C,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,qBAAqB,cAAc;AAwEnC,IAAM,eAA4C,CAAC;AAAA,EACjD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP,QAAQ;AAAA,EACR;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,cAAc;AAAA,IAClB,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,QAAQ;AAAA,EACV;AACA,QAAM,aAAa;AAAA,IACjB,SAAS;AAAA,IACT,IAAI;AAAA,EACN;AACA,MAAI,CAAC,QAAQ,SAAS,IAAU;AAAA,IAC9B,MAAM,IAAI,CAAC,SAAS,KAAK,aAAa;AAAA,EACxC;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACP,KAAK;AAAA;AAAA,IAEL;AAAA,MAAC;AAAA;AAAA,QACC,SAAO;AAAA,QACP,WAAW,GAAG,yCAAY,SAAS,gBAAgB;AAAA,QAClD,GAAG;AAAA;AAAA,MAEH;AAAA,IACH;AAAA,IACA,oCAAC,cACC;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,WAAW;AAAA,UACT;AAAA,UACA,yCAAY;AAAA,UACZ,YAAY,KAAK;AAAA,UACjB;AAAA,QACF;AAAA,QACA,OAAO;AAAA,UACL,WAAW;AAAA,QACb;AAAA,QACC,GAAG;AAAA;AAAA,MAEH,UAAU;AAAA,MACV,SACC,MAAM,IAAI,CAAC,MAAM,UAAU;AAjYvC;AAkYc,cAAM,oBAAoB,KAAK,OAAO,gBAAgB;AACtD,YAAI,KAAK,aAAa,aAAa;AACjC,iBACE;AAAA,YAAC;AAAA;AAAA,cACC,KAAK;AAAA,cACL,WAAW,yCAAY;AAAA;AAAA,UACzB;AAAA,QAEJ,WAAW,KAAK,aAAa,SAAS;AACpC,iBACE,oCAAC,qBAAkB,KAAK,SACrB,KAAK,KACR;AAAA,QAEJ,WAAW,KAAK,aAAa,SAAS;AACpC,cAAI,KAAK,KAAK;AACd,iBACE,oCAAC,mBAAgB,KAAK,SACpB;AAAA,YAAC;AAAA;AAAA,cACC,KAAK;AAAA,cACL,WAAW,GAAG,WAAW,IAAI,CAAC;AAAA;AAAA,YAE7B,KAAK,QAAQ,KAAK;AAAA,YAClB,KAAK,SAAS,KAAK;AAAA,UACtB,GACA,oCAAC,8BACC;AAAA,YAAC;AAAA;AAAA,cACC,OAAO,OAAO,KAAK;AAAA,cACnB,eAAe,CAAC,MAAM;AACpB,oBAAI,YAAY,CAAC,GAAG,MAAM;AAC1B,0BAAU,KAAK,IAAI;AACnB,0BAAU,SAAS;AACnB,wBAAQ,IAAI,gBAAgB,CAAC;AAC7B,oBAAI,KAAK,gBAAgB;AACvB,uBAAK,eAAe,CAAC;AAAA,gBACvB;AAAA,cACF;AAAA;AAAA,aAEC,UAAK,YAAL,mBAAc,IAAI,CAAC,KAAK,MACvB,oCAAC,yBAAsB,KAAK,GAAG,OAAO,IAAI,SACvC,IAAI,KACP;AAAA,UAEJ,CACF,CACF;AAAA,QAEJ,WAAW,KAAK,aAAa,UAAU;AACrC,iBAAO,oCAAC,SAAI,KAAK,SAAQ,KAAK,OAAQ;AAAA,QACxC,OAAO;AACL,iBAAO,KAAK,WACV,oCAAC,mBAAgB,KAAK,SACpB;AAAA,YAAC;AAAA;AAAA,cACC,KAAK;AAAA,cACL,WAAW,GAAG,WAAW,IAAI,CAAC;AAAA;AAAA,YAE7B,KAAK,QAAQ,KAAK;AAAA,YAClB,KAAK,SAAS,KAAK;AAAA,UACtB,GACA,oCAAC,cACC,oCAAC,8BACE,KAAK,SAAS,IAAI,CAAC,SAAS,aAAa;AACxC,kBAAM,uBAAuB,QAAQ,OACjC,gBACA;AACJ,mBACE;AAAA,cAAC;AAAA;AAAA,gBACC,KAAK;AAAA,gBACL,eAAe;AAAA,gBACf,MAAM,QAAQ;AAAA,gBACd,UAAU,QAAQ;AAAA,gBAClB,WAAW;AAAA,kBACT,WAAW,IAAI;AAAA,kBACf,CAAC,KAAK,QAAQ,CAAC,KAAK,QAChB,kDACA;AAAA,gBACN;AAAA,gBACA,aAAa,CAAC,UAAe;AAC3B,sBACE,MAAM,WAAW,KAChB,MAAM,WAAW,KAAK,MAAM,SAC7B;AACA,0BAAM,eAAe;AACrB,wBAAI,QAAQ,eAAe;AACzB,8BAAQ,cAAc,KAAK,KAAK;AAAA,oBAClC;AAAA,kBACF;AAAA,gBACF;AAAA,gBACA,UAAU,MAAM;AACd,0BAAQ,UAAU,QAAQ,OAAO;AACjC,sBAAI,cAAc;AAChB,iCAAa,QAAQ,KAAK;AAAA,kBAC5B;AAAA,gBACF;AAAA;AAAA,cAEC,QAAQ,QAAQ,QAAQ;AAAA,cACxB,QAAQ,SAAS,QAAQ;AAAA,YAC5B;AAAA,UAEJ,CAAC,CACH,CACF,CACF,IAEA;AAAA,YAAC;AAAA;AAAA,cACC,eAAe;AAAA,cACf,MAAM,KAAK;AAAA,cACX,KAAK;AAAA,cACL,UAAU,KAAK;AAAA,cACf,aAAa,CAAC,UAAe;AAC3B,oBACE,MAAM,WAAW,KAChB,MAAM,WAAW,KAAK,MAAM,SAC7B;AACA,wBAAM,eAAe;AACrB,sBAAI,KAAK,eAAe;AACtB,yBAAK,cAAc,KAAK,KAAK;AAAA,kBAC/B;AAAA,gBACF;AAAA,cACF;AAAA,cACA,SAAS,CAAC,UAAe;AACvB,oBAAI,KAAK,SAAS;AAChB,uBAAK,QAAQ,KAAK,KAAK;AAAA,gBACzB;AAAA,cACF;AAAA,cACA,UAAU,CAAC,MAAM;AACf,oBAAI,KAAK,SAAS;AAChB,oBAAE,eAAe;AAAA,gBACnB;AACA,oBAAI,KAAK,QAAQ;AACf,uBAAK,OAAO;AACZ,sBAAI,cAAc;AAChB,iCAAa,KAAK,KAAK;AAAA,kBACzB;AAAA,gBACF,OAAO;AACL,sBAAI,cAAc;AAChB,iCAAa,KAAK,KAAK;AAAA,kBACzB;AAAA,gBACF;AAAA,cACF;AAAA,cACA,KAAK,KAAK;AAAA,cACV,UAAU,KAAK;AAAA,cACf,QAAQ,KAAK;AAAA,cACb,WAAW;AAAA,gBACT,WAAW,IAAI;AAAA,gBACf,CAAC,KAAK,QAAQ,CAAC,KAAK,QAChB,kDACA;AAAA,gBACJ,KAAK,WAAW;AAAA,gBAChB,yCAAY;AAAA,cACd;AAAA;AAAA,YAEC,KAAK,QAAQ,KAAK;AAAA,YAClB,KAAK,SAAS,KAAK;AAAA,UACtB;AAAA,QAEJ;AAAA,MACF,CAAC;AAAA,IACL,CACF;AAAA,EACF;AAEJ;;;AFnhBO,IAAM,YAAqC,CAAC,EAAE,GAAG,MAAM,MAAM;AAClE,QAAM,QAAQ,MAAM,cAAc;AAClC,QAAM,OAAO;AACb,SACE,gBAAAC,OAAA;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA,QAAQ,0BAA0B;AAAA,MACpC;AAAA;AAAA,IAGC,OAAO,MACN,gBAAAA,OAAA;AAAA,MAAC;AAAA;AAAA,MA+B0B;AAAA,IAE3B;AAAA;AAAA,MAGA,gBAAAA,OAAA;AAAA,QAAC;AAAA;AAAA,UACC,KAAK,MAAM;AAAA,UACX,WAAU;AAAA;AAAA,QAEV,gBAAAA,OAAA;AAAA,UAAC;AAAA;AAAA,YAEC,WAAU;AAAA;AAAA,UAEV,gBAAAA,OAAA;AAAA,YAAC;AAAA;AAAA,cACC,QAAO;AAAA,cACP,MAAK;AAAA,cACL,aAAa;AAAA,cACb,SAAQ;AAAA,cACR,eAAY;AAAA,cACZ,QAAO;AAAA,cACP,OAAM;AAAA;AAAA,YAEN,gBAAAA,OAAA;AAAA,cAAC;AAAA;AAAA,gBACC,UAAS;AAAA,gBACT,UAAS;AAAA,gBACT,GAAE;AAAA;AAAA,YACH;AAAA,UACH;AAAA,QACF;AAAA,QAMQ;AAAA,MAEV;AAAA;AAAA,IAGF,gBAAAA,OAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA,QAAQ,0BAA0B;AAAA,QACpC;AAAA;AAAA,MAGC,OAAO,MACN,gBAAAA,OAAA;AAAA,QAAC;AAAA;AAAA,UACC,WACE,QACI,gCACA;AAAA;AAAA,QAGN,gBAAAA,OAAA,cAAC,SAAI,WAAU,oBAAkB,MAAM,QAAS;AAAA,QAAO;AAAA,QACvD,gBAAAA,OAAA,cAAC,aAAK,MAAM,KAAM;AAAA,MACpB,IACE;AAAA,MAEJ,gBAAAA,OAAA;AAAA,QAAC;AAAA;AAAA,UACC,kBAAiB;AAAA,UACjB,OAAM;AAAA,UACN,aAAa;AAAA,UACb,MAAM;AAAA,UACN,YAAY;AAAA,UAEZ,WAAW,QAAQ,QAAQ;AAAA,UAC3B,OAAO,MAAM,oBAAoB,CAAC;AAAA,UAClC,cAAc,CAAC,MAAW,QAAQ,IAAI,mBAAmB,CAAC;AAAA,UAC1D,SACE,gBAAAA,OAAA,cAAC,SAAI,WAAU,gJACZ,MAAM,cACL,gBAAAA,OAAA,cAAC,SAAI,KAAK,MAAM,aAAa,KAAI,eAAc,IAE/C,gBAAAA,OAAA;AAAA,YAAC;AAAA;AAAA,cACC,cAAW;AAAA,cACX,WAAU;AAAA,cACV,MAAK;AAAA,cACL,SAAQ;AAAA;AAAA,YAER,gBAAAA,OAAA;AAAA,cAAC;AAAA;AAAA,gBACC,UAAS;AAAA,gBACT,GAAE;AAAA,gBACF,UAAS;AAAA;AAAA,YACV;AAAA,UACH,CAEJ;AAAA;AAAA,MAEJ;AAAA,IACF;AAAA,EACF;AAEJ;","names":["React","React"]}