uibee 2.0.2 → 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -2,9 +2,12 @@ import React from 'react';
|
|
|
2
2
|
import { Language } from 'uibee/components';
|
|
3
3
|
export type NavbarProps = {
|
|
4
4
|
lang: Language;
|
|
5
|
+
disableLanguageToggle?: boolean;
|
|
5
6
|
onlyLogo?: boolean;
|
|
6
7
|
theme: string;
|
|
8
|
+
disableThemeToggle?: boolean;
|
|
7
9
|
token: string | null;
|
|
10
|
+
disableAuthButton?: boolean;
|
|
8
11
|
children: React.ReactNode;
|
|
9
12
|
};
|
|
10
|
-
export default function Navbar({ lang, onlyLogo, token, children }: NavbarProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export default function Navbar({ lang, onlyLogo, token, children, disableLanguageToggle, disableThemeToggle, disableAuthButton }: NavbarProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -11,9 +11,9 @@ function hamburgerStyle(isOpen, isSecond) {
|
|
|
11
11
|
? `top-6 ${isSecond ? 'rotate-45' : '-rotate-45'}`
|
|
12
12
|
: isSecond ? 'top-7' : 'top-4'}`;
|
|
13
13
|
}
|
|
14
|
-
export default function Navbar({ lang, onlyLogo, token, children }) {
|
|
14
|
+
export default function Navbar({ lang, onlyLogo, token, children, disableLanguageToggle, disableThemeToggle, disableAuthButton }) {
|
|
15
15
|
const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false);
|
|
16
|
-
return (_jsx("div", { className: `${isMobileMenuOpen ? 'bg-[#181818f0]' : 'bg-[#18181899]'} backdrop-blur-xl fixed top-0 z-900 w-full`, children: _jsxs("div", { className: `flex w-full max-w-6xl m-auto p-2 transition duration-500 800px:justify-between 800px:p-4 ${isMobileMenuOpen ? 'h-screen bg-login-900/20 800px:h-20' : ''}`, children: [_jsx("div", { className: 'block h-12 p-1 800px:p-0', children: _jsx(Link, { href: '/', onClick: () => setIsMobileMenuOpen(false), children: _jsx(LogoSmall, {}) }) }), onlyLogo ? null : (_jsxs(_Fragment, { children: [_jsx("nav", { className: 'hidden 800px:flex 800px:justify-between 800px:items-center 800px:w-fill max-w-[50rem]', children: children }), _jsxs("nav", { className: 'flex w-[calc(100vw-8rem)] justify-end h-12 800px:w-fit', children: [_jsx(ThemeToggle, {}), _jsx(LanguageToggle, { language: lang }), _jsx(AuthButton, { token: token })] }), _jsxs("button", { className: 'w-12 h-12 relative cursor-pointer bg-none border-none 800px:hidden', onClick: () => setIsMobileMenuOpen(!isMobileMenuOpen), children: [_jsx("div", { className: hamburgerStyle(isMobileMenuOpen) }), _jsx("div", { className: hamburgerStyle(isMobileMenuOpen, true) })] }), _jsx("nav", { className: `fixed top-16 w-[calc(100%-2rem)] max-w-[35rem] mx-auto left-0 right-0 800px:hidden
|
|
16
|
+
return (_jsx("div", { className: `${isMobileMenuOpen ? 'bg-[#181818f0]' : 'bg-[#18181899]'} backdrop-blur-xl fixed top-0 z-900 w-full`, children: _jsxs("div", { className: `flex w-full max-w-6xl m-auto p-2 transition duration-500 800px:justify-between 800px:p-4 ${isMobileMenuOpen ? 'h-screen bg-login-900/20 800px:h-20' : ''}`, children: [_jsx("div", { className: 'block h-12 p-1 800px:p-0', children: _jsx(Link, { href: '/', onClick: () => setIsMobileMenuOpen(false), children: _jsx(LogoSmall, {}) }) }), onlyLogo ? null : (_jsxs(_Fragment, { children: [_jsx("nav", { className: 'hidden 800px:flex 800px:justify-between 800px:items-center 800px:w-fill max-w-[50rem]', children: children }), _jsxs("nav", { className: 'flex w-[calc(100vw-8rem)] justify-end h-12 800px:w-fit', children: [!disableThemeToggle && _jsx(ThemeToggle, {}), !disableLanguageToggle && _jsx(LanguageToggle, { language: lang }), !disableAuthButton && _jsx(AuthButton, { token: token })] }), _jsxs("button", { className: 'w-12 h-12 relative cursor-pointer bg-none border-none 800px:hidden', onClick: () => setIsMobileMenuOpen(!isMobileMenuOpen), children: [_jsx("div", { className: hamburgerStyle(isMobileMenuOpen) }), _jsx("div", { className: hamburgerStyle(isMobileMenuOpen, true) })] }), _jsx("nav", { className: `fixed top-16 w-[calc(100%-2rem)] max-w-[35rem] mx-auto left-0 right-0 800px:hidden
|
|
17
17
|
transition-all duration-500 ease-in-out overflow-hidden
|
|
18
18
|
${isMobileMenuOpen ? 'max-h-[calc(100vh-4rem)] opacity-100' : 'max-h-0 opacity-0'}`, onClick: () => setIsMobileMenuOpen(false), children: React.Children.map(children, (child, index) => (_jsx("div", { className: `transition-all duration-500 ease-out ${isMobileMenuOpen
|
|
19
19
|
? 'opacity-100 transform translate-y-0'
|
package/package.json
CHANGED
|
@@ -19,13 +19,24 @@ function hamburgerStyle (isOpen: boolean, isSecond?: boolean) {
|
|
|
19
19
|
|
|
20
20
|
export type NavbarProps = {
|
|
21
21
|
lang: Language
|
|
22
|
+
disableLanguageToggle?: boolean
|
|
22
23
|
onlyLogo?: boolean
|
|
23
24
|
theme: string
|
|
25
|
+
disableThemeToggle?: boolean
|
|
24
26
|
token: string | null
|
|
27
|
+
disableAuthButton?: boolean
|
|
25
28
|
children: React.ReactNode
|
|
26
29
|
}
|
|
27
30
|
|
|
28
|
-
export default function Navbar({
|
|
31
|
+
export default function Navbar({
|
|
32
|
+
lang,
|
|
33
|
+
onlyLogo,
|
|
34
|
+
token,
|
|
35
|
+
children,
|
|
36
|
+
disableLanguageToggle,
|
|
37
|
+
disableThemeToggle,
|
|
38
|
+
disableAuthButton
|
|
39
|
+
}: NavbarProps) {
|
|
29
40
|
const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false)
|
|
30
41
|
|
|
31
42
|
return (
|
|
@@ -52,9 +63,9 @@ export default function Navbar({ lang, onlyLogo, token, children }: NavbarProps)
|
|
|
52
63
|
|
|
53
64
|
{/* Controls */}
|
|
54
65
|
<nav className='flex w-[calc(100vw-8rem)] justify-end h-12 800px:w-fit'>
|
|
55
|
-
<ThemeToggle />
|
|
56
|
-
<LanguageToggle language={lang} />
|
|
57
|
-
<AuthButton token={token} />
|
|
66
|
+
{!disableThemeToggle && <ThemeToggle />}
|
|
67
|
+
{!disableLanguageToggle && <LanguageToggle language={lang} />}
|
|
68
|
+
{!disableAuthButton && <AuthButton token={token} />}
|
|
58
69
|
</nav>
|
|
59
70
|
|
|
60
71
|
{/* Mobile Menu Button */}
|