{"version":3,"file":"Navbar.mjs","sources":["../../../src/components/Navbar/Navbar.tsx"],"sourcesContent":["'use client';\n\nimport type { ComponentProps, FC } from 'react';\nimport { useState } from 'react';\nimport { twMerge } from 'tailwind-merge';\nimport { mergeDeep } from '../../helpers/merge-deep';\nimport { getTheme } from '../../theme-store';\nimport type { DeepPartial } from '../../types';\nimport type { FlowbiteBoolean } from '../Flowbite';\nimport type { FlowbiteNavbarBrandTheme } from './NavbarBrand';\nimport { NavbarBrand } from './NavbarBrand';\nimport type { FlowbiteNavbarCollapseTheme } from './NavbarCollapse';\nimport { NavbarCollapse } from './NavbarCollapse';\nimport { NavbarContext } from './NavbarContext';\nimport type { FlowbiteNavbarLinkTheme } from './NavbarLink';\nimport { NavbarLink } from './NavbarLink';\nimport type { FlowbiteNavbarToggleTheme } from './NavbarToggle';\nimport { NavbarToggle } from './NavbarToggle';\n\nexport interface FlowbiteNavbarTheme {\n  root: FlowbiteNavbarRootTheme;\n  brand: FlowbiteNavbarBrandTheme;\n  collapse: FlowbiteNavbarCollapseTheme;\n  link: FlowbiteNavbarLinkTheme;\n  toggle: FlowbiteNavbarToggleTheme;\n}\n\nexport interface FlowbiteNavbarRootTheme {\n  base: string;\n  rounded: FlowbiteBoolean;\n  bordered: FlowbiteBoolean;\n  inner: {\n    base: string;\n    fluid: FlowbiteBoolean;\n  };\n}\n\nexport interface NavbarComponentProps extends ComponentProps<'nav'> {\n  menuOpen?: boolean;\n  fluid?: boolean;\n  rounded?: boolean;\n  border?: boolean;\n  theme?: DeepPartial<FlowbiteNavbarTheme>;\n}\n\nconst NavbarComponent: FC<NavbarComponentProps> = ({\n  border,\n  children,\n  className,\n  fluid = false,\n  menuOpen,\n  rounded,\n  theme: customTheme = {},\n  ...props\n}) => {\n  const [isOpen, setIsOpen] = useState(menuOpen);\n\n  const theme = mergeDeep(getTheme().navbar, customTheme);\n\n  return (\n    <NavbarContext.Provider value={{ theme, isOpen, setIsOpen }}>\n      <nav\n        className={twMerge(\n          theme.root.base,\n          theme.root.bordered[border ? 'on' : 'off'],\n          theme.root.rounded[rounded ? 'on' : 'off'],\n          className,\n        )}\n        {...props}\n      >\n        <div className={twMerge(theme.root.inner.base, theme.root.inner.fluid[fluid ? 'on' : 'off'])}>{children}</div>\n      </nav>\n    </NavbarContext.Provider>\n  );\n};\n\nNavbarComponent.displayName = 'Navbar';\nNavbarBrand.displayName = 'Navbar.Brand';\nNavbarCollapse.displayName = 'Navbar.Collapse';\nNavbarLink.displayName = 'Navbar.Link';\nNavbarToggle.displayName = 'Navbar.Toggle';\n\nexport const Navbar = Object.assign(NavbarComponent, {\n  Brand: NavbarBrand,\n  Collapse: NavbarCollapse,\n  Link: NavbarLink,\n  Toggle: NavbarToggle,\n});\n"],"names":["NavbarComponent","t0","$","_c","border","children","className","menuOpen","props","rounded","t1","t2","fluid","theme","undefined","t3","customTheme","isOpen","setIsOpen","useState","T0","t4","t5","t6","t7","mergeDeep","getTheme","navbar","NavbarContext","Provider","twMerge","root","base","bordered","inner","t8","jsx","t9","t10","displayName","NavbarBrand","NavbarCollapse","NavbarLink","NavbarToggle","Navbar","Object","assign","Brand","Collapse","Link","Toggle"],"mappings":"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"}