{"version":3,"file":"index.cjs","sources":["../../../src/components/BottomNav/index.tsx"],"sourcesContent":["import { cn } from \"@/components/utils\";\nimport { cva, VariantProps } from \"class-variance-authority\";\nimport React from \"react\";\n\nconst bottomNavVariants = cva(\n  \"flex h-14 items-center justify-center px-2 shadow-t\",\n  {\n    variants: {\n      varient: {\n        default: \"bg-card [&>*]:text-subline [&>.selected]:text-secondary\",\n        primary: \"bg-primary [&>*]:text-white/70 [&>.selected]:text-sky-400\",\n        secondary: \"bg-secondary [&>*]:text-white/70 [&>.selected]:text-white\",\n      },\n      position: {\n        fixed: \"fixed bottom-0 left-0 right-0 z-10\",\n      },\n    },\n    defaultVariants: {\n      varient: \"default\",\n      position: \"fixed\",\n    },\n  }\n);\nexport interface BottomNavProps\n  extends React.HTMLAttributes<HTMLDivElement>,\n    VariantProps<typeof bottomNavVariants> {}\n/**\n * Bottom app bar container\n * @returns BottomNavBar JSX\n */\nconst BottomNavBar = React.forwardRef<HTMLDivElement, BottomNavProps>(\n  ({ className, varient, position, ...props }, ref) => (\n    <div\n      ref={ref}\n      className={cn(bottomNavVariants({ className, varient, position }))}\n      {...props}\n    />\n  )\n);\n\nBottomNavBar.displayName = \"BottomNavBar\";\n\ninterface NavButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n  /* use only lucide icons https://lucide.dev/icons/ */\n  icon: React.ReactElement;\n  /** Menu label string */\n  label?: string;\n  /** Selected menu boolean */\n  selected?: boolean;\n  iconStyle?: string;\n}\n\n/**\n * use only lucide icons https://lucide.dev/icons/\n * and onClick event\n * @returns Bottom nav action button JSX\n */\nconst BottomNavBarAction = React.forwardRef<HTMLButtonElement, NavButtonProps>(\n  ({ className, icon, label, selected, iconStyle, ...props }, ref) => {\n    return (\n      <button\n        className={cn(\n          `ripple inline-flex h-full min-w-20 max-w-40 flex-1 flex-col items-center justify-center px-3 ${selected ? \"selected\" : \"\"}`,\n          className\n        )}\n        ref={ref}\n        tabIndex={0}\n        {...props}\n      >\n        <span\n          className={`mb-1 flex items-center justify-center ${iconStyle || \"\"}`}\n        >\n          {React.cloneElement(icon, { strokeWidth: 2, size: 18 })}\n        </span>\n        {label ? <span>{label}</span> : null}\n      </button>\n    );\n  }\n);\n\nBottomNavBarAction.displayName = \"BottomNavBarAction\";\n\nexport { BottomNavBar, BottomNavBarAction };\n"],"names":["bottomNavVariants","cva","variants","varient","default","primary","secondary","position","fixed","defaultVariants","BottomNavBar","React","forwardRef","className","props","ref","jsx","jsxRuntimeExports","cn","displayName","BottomNavBarAction","icon","label","selected","iconStyle","jsxs","tabIndex","children","cloneElement","strokeWidth","size"],"mappings":"iQAIMA,EAAoBC,EAAAA,IACxB,sDACA,CACEC,SAAU,CACRC,QAAS,CACPC,QAAS,0DACTC,QAAS,4DACTC,UAAW,6DAEbC,SAAU,CACRC,MAAO,uCAGXC,gBAAiB,CACfN,QAAS,UACTI,SAAU,WAWVG,EAAeC,EAAMC,YACzB,EAAGC,YAAWV,UAASI,cAAaO,GAASC,IAC3CC,EAAAC,kBAAAD,IAAC,MAAA,CACCD,MACAF,UAAWK,KAAGlB,EAAkB,CAAEa,YAAWV,UAASI,iBAClDO,MAKVJ,EAAaS,YAAc,eAiB3B,MAAMC,EAAqBT,EAAMC,YAC/B,EAAGC,YAAWQ,OAAMC,QAAOC,WAAUC,eAAcV,GAASC,MAExDE,kBAAAQ,KAAC,SAAA,CACCZ,UAAWK,EAAAA,GACT,iGAAgGK,EAAW,WAAa,IACxHV,GAEFE,MACAW,SAAU,KACNZ,EAEJa,SAAA,GAAAV,kBAAAD,IAAC,OAAA,CACCH,UAAW,yCAAyCW,GAAa,KAEhEG,SAAAhB,EAAMiB,aAAaP,EAAM,CAAEQ,YAAa,EAAGC,KAAM,OAEnDR,IAAQL,kBAAAD,IAAC,OAAM,CAAAW,SAAAL,IAAgB,UAMxCF,EAAmBD,YAAc"}