uibee 2.3.3 → 2.3.5

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.
@@ -9,6 +9,8 @@ export type NavbarProps = {
9
9
  token?: string | null;
10
10
  disableAuthButton?: boolean;
11
11
  profileURL?: string;
12
+ className?: string;
13
+ innerClassName?: string;
12
14
  children: React.ReactNode;
13
15
  };
14
- export default function Navbar({ lang, onlyLogo, children, disableLanguageToggle, disableThemeToggle, disableAuthButton, profileURL }: NavbarProps): import("react/jsx-runtime").JSX.Element;
16
+ export default function Navbar({ lang, onlyLogo, disableLanguageToggle, disableThemeToggle, token, disableAuthButton, profileURL, className, innerClassName, children, }: NavbarProps): import("react/jsx-runtime").JSX.Element;
@@ -5,16 +5,16 @@ import Link from 'next/link';
5
5
  import LogoSmall from '../logo/logoSmall';
6
6
  import LanguageToggle from '../toggle/language';
7
7
  import ThemeToggle from '../toggle/theme';
8
- import { getCookie } from 'uibee/utils';
9
8
  import { LogOut } from 'lucide-react';
10
9
  function hamburgerStyle(isOpen, isSecond) {
11
10
  return `bg-login-50 h-0.5 absolute w-8 transition-all duration-[400ms] left-2 ${isOpen
12
11
  ? `top-6 ${isSecond ? 'rotate-45' : '-rotate-45'}`
13
12
  : isSecond ? 'top-7' : 'top-4'}`;
14
13
  }
15
- export default function Navbar({ lang, onlyLogo, children, disableLanguageToggle, disableThemeToggle, disableAuthButton, profileURL }) {
14
+ export default function Navbar({ lang, onlyLogo, disableLanguageToggle, disableThemeToggle, token, disableAuthButton, profileURL, className, innerClassName, children, }) {
16
15
  const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false);
17
- 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-200', 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, { profileURL: profileURL })] }), _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-140 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 ${className}`, 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' : ''} ${innerClassName}
17
+ `, 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-200', 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, { profileURL: profileURL, 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-140 mx-auto left-0 right-0 800px:hidden
18
18
  transition-all duration-500 ease-in-out overflow-hidden
19
19
  ${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
20
20
  ? 'opacity-100 transform translate-y-0'
@@ -22,8 +22,7 @@ export default function Navbar({ lang, onlyLogo, children, disableLanguageToggle
22
22
  transitionDelay: isMobileMenuOpen ? `${index * 80}ms` : '0ms'
23
23
  }, children: child }, index))) })] }))] }) }));
24
24
  }
25
- function AuthButton({ profileURL }) {
26
- const token = getCookie('access_token');
25
+ function AuthButton({ profileURL, token }) {
27
26
  return (_jsx("div", { className: 'rounded-[0.3rem] hover:bg-[#6464641a] h-12 w-12', children: token ? (_jsxs(_Fragment, { children: [_jsx(Link, { href: '/api/logout', prefetch: false, onClick: (e) => {
28
27
  e.preventDefault();
29
28
  window.location.href = '/api/logout';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "uibee",
3
- "version": "2.3.3",
3
+ "version": "2.3.5",
4
4
  "description": "Shared components, functions and hooks for reuse across Login projects",
5
5
  "homepage": "https://github.com/Login-Linjeforening-for-IT/uibee#readme",
6
6
  "bugs": {
@@ -5,7 +5,6 @@ import Link from 'next/link'
5
5
  import LogoSmall from '@components/logo/logoSmall'
6
6
  import LanguageToggle from '@components/toggle/language'
7
7
  import ThemeToggle from '@components/toggle/theme'
8
- import { getCookie } from 'uibee/utils'
9
8
  import { Language } from 'uibee/components'
10
9
  import { LogOut } from 'lucide-react'
11
10
 
@@ -27,25 +26,30 @@ export type NavbarProps = {
27
26
  token?: string | null
28
27
  disableAuthButton?: boolean
29
28
  profileURL?: string
29
+ className?: string
30
+ innerClassName?: string
30
31
  children: React.ReactNode
31
32
  }
32
33
 
33
34
  export default function Navbar({
34
35
  lang,
35
36
  onlyLogo,
36
- children,
37
37
  disableLanguageToggle,
38
38
  disableThemeToggle,
39
+ token,
39
40
  disableAuthButton,
40
- profileURL
41
+ profileURL,
42
+ className,
43
+ innerClassName,
44
+ children,
41
45
  }: NavbarProps) {
42
46
  const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false)
43
47
 
44
48
  return (
45
- <div className={`${isMobileMenuOpen ? 'bg-[#181818f0]' : 'bg-[#18181899]'} backdrop-blur-xl fixed top-0 z-900 w-full`}>
49
+ <div className={`${isMobileMenuOpen ? 'bg-[#181818f0]' : 'bg-[#18181899]'} backdrop-blur-xl fixed top-0 z-900 w-full ${className}`}>
46
50
  <div className={`flex w-full max-w-6xl m-auto p-2 transition duration-500 800px:justify-between 800px:p-4 ${
47
- isMobileMenuOpen ? 'h-screen bg-login-900/20 800px:h-20' : ''
48
- }`}>
51
+ isMobileMenuOpen ? 'h-screen bg-login-900/20 800px:h-20' : ''} ${innerClassName}
52
+ `}>
49
53
  {/* Logo */}
50
54
  <div className='block h-12 p-1 800px:p-0'>
51
55
  <Link
@@ -67,7 +71,7 @@ export default function Navbar({
67
71
  <nav className='flex w-[calc(100vw-8rem)] justify-end h-12 800px:w-fit'>
68
72
  {!disableThemeToggle && <ThemeToggle />}
69
73
  {!disableLanguageToggle && <LanguageToggle language={lang} />}
70
- {!disableAuthButton && <AuthButton profileURL={profileURL} />}
74
+ {!disableAuthButton && <AuthButton profileURL={profileURL} token={token} />}
71
75
  </nav>
72
76
 
73
77
  {/* Mobile Menu Button */}
@@ -107,8 +111,7 @@ export default function Navbar({
107
111
  )
108
112
  }
109
113
 
110
- function AuthButton({ profileURL }: { profileURL?: string }) {
111
- const token = getCookie('access_token')
114
+ function AuthButton({ profileURL, token }: { profileURL?: string, token?: string | null }) {
112
115
 
113
116
  return (
114
117
  <div className='rounded-[0.3rem] hover:bg-[#6464641a] h-12 w-12'>