flowbite-react
Version:
Official React components built for Flowbite and Tailwind CSS
1 lines • 4.31 kB
Source Map (JSON)
{"version":3,"file":"Navbar.cjs","sources":["../../../src/components/Navbar/Navbar.tsx"],"sourcesContent":["\"use client\";\n\nimport type { ComponentProps } from \"react\";\nimport { forwardRef, useState } from \"react\";\nimport { get } from \"../../helpers/get\";\nimport { resolveProps } from \"../../helpers/resolve-props\";\nimport { useResolveTheme } from \"../../helpers/resolve-theme\";\nimport { twMerge } from \"../../helpers/tailwind-merge\";\nimport { useThemeProvider } from \"../../theme/provider\";\nimport type { FlowbiteBoolean, ThemingProps } from \"../../types\";\nimport type { NavbarBrandTheme } from \"./NavbarBrand\";\nimport type { NavbarCollapseTheme } from \"./NavbarCollapse\";\nimport { NavbarContext } from \"./NavbarContext\";\nimport type { NavbarLinkTheme } from \"./NavbarLink\";\nimport type { NavbarToggleThem } from \"./NavbarToggle\";\nimport { navbarTheme } from \"./theme\";\n\nexport interface NavbarTheme {\n root: NavbarRootTheme;\n brand: NavbarBrandTheme;\n collapse: NavbarCollapseTheme;\n link: NavbarLinkTheme;\n toggle: NavbarToggleThem;\n}\n\nexport interface NavbarRootTheme {\n base: string;\n rounded: FlowbiteBoolean;\n bordered: FlowbiteBoolean;\n inner: {\n base: string;\n fluid: FlowbiteBoolean;\n };\n}\n\nexport interface NavbarProps extends ComponentProps<\"nav\">, ThemingProps<NavbarTheme> {\n menuOpen?: boolean;\n fluid?: boolean;\n rounded?: boolean;\n border?: boolean;\n}\n\nexport const Navbar = forwardRef<HTMLElement, NavbarProps>((props, ref) => {\n const provider = useThemeProvider();\n const theme = useResolveTheme(\n [navbarTheme, provider.theme?.navbar, props.theme],\n [get(provider.clearTheme, \"navbar\"), props.clearTheme],\n [get(provider.applyTheme, \"navbar\"), props.applyTheme],\n );\n\n const {\n border,\n children,\n className,\n fluid = false,\n menuOpen,\n rounded,\n ...restProps\n } = resolveProps(props, provider.props?.navbar);\n\n const [isOpen, setIsOpen] = useState(menuOpen);\n\n return (\n <NavbarContext.Provider\n value={{ theme: props.theme, clearTheme: props.clearTheme, applyTheme: props.applyTheme, isOpen, setIsOpen }}\n >\n <nav\n ref={ref}\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 {...restProps}\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\nNavbar.displayName = \"Navbar\";\n"],"names":["forwardRef","provider","useThemeProvider","theme","useResolveTheme","navbarTheme","get","resolveProps","useState","jsx","NavbarContext","twMerge"],"mappings":";;;;;;;;;;;;AAWY,MAAC,MAAM,GAAGA,gBAAU,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK;AACjD,EAAE,MAAMC,UAAQ,GAAGC,yBAAgB,EAAE;AACrC,EAAE,MAAMC,OAAK,GAAGC,4BAAe;AAC/B,IAAI,CAACC,iBAAW,EAAEJ,UAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC;AACtD,IAAI,CAACK,OAAG,CAACL,UAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC;AAC1D,IAAI,CAACK,OAAG,CAACL,UAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,UAAU;AACzD,GAAG;AACH,EAAE,MAAM;AACR,IAAI,MAAM;AACV,IAAI,QAAQ;AACZ,IAAI,SAAS;AACb,IAAI,KAAK,GAAG,KAAK;AACjB,IAAI,QAAQ;AACZ,IAAI,OAAO;AACX,IAAI,GAAG;AACP,GAAG,GAAGM,yBAAY,CAAC,KAAK,EAAEN,UAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;AACjD,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAGO,cAAQ,CAAC,QAAQ,CAAC;AAChD,EAAE,uBAAuBC,cAAG;AAC5B,IAAIC,2BAAa,CAAC,QAAQ;AAC1B,IAAI;AACJ,MAAM,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE;AAClH,MAAM,QAAQ,kBAAkBD,cAAG;AACnC,QAAQ,KAAK;AACb,QAAQ;AACR,UAAU,GAAG;AACb,UAAU,SAAS,EAAEE,qBAAO;AAC5B,YAAYR,OAAK,CAAC,IAAI,CAAC,IAAI;AAC3B,YAAYA,OAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;AACtD,YAAYA,OAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,GAAG,KAAK,CAAC;AACtD,YAAY;AACZ,WAAW;AACX,UAAU,GAAG,SAAS;AACtB,UAAU,QAAQ,kBAAkBM,cAAG,CAAC,KAAK,EAAE,EAAE,SAAS,EAAEE,qBAAO,CAACR,OAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAEA,OAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE;AACpJ;AACA;AACA;AACA,GAAG;AACH,CAAC;AACD,MAAM,CAAC,WAAW,GAAG,QAAQ;;;;"}