uibee 1.7.0 → 2.0.1

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.
Files changed (38) hide show
  1. package/Readme.md +0 -1
  2. package/dist/globals.css +563 -8
  3. package/dist/src/components/index.d.ts +4 -0
  4. package/dist/src/components/index.js +5 -0
  5. package/dist/src/components/login/loginPage.js +5 -6
  6. package/dist/src/components/logo/logo.d.ts +5 -1
  7. package/dist/src/components/logo/logo.js +2 -3
  8. package/dist/src/components/logo/logoSmall.js +2 -2
  9. package/dist/src/components/navbar/navbar.d.ts +10 -0
  10. package/dist/src/components/navbar/navbar.js +36 -0
  11. package/dist/src/components/navbar/navbarDropdown.d.ts +6 -0
  12. package/dist/src/components/navbar/navbarDropdown.js +21 -0
  13. package/dist/src/components/navbar/navbarItem.d.ts +11 -0
  14. package/dist/src/components/navbar/navbarItem.js +12 -0
  15. package/dist/src/components/toggle/theme.d.ts +1 -1
  16. package/dist/src/components/toggle/theme.js +1 -1
  17. package/dist/src/components/version/version.d.ts +7 -0
  18. package/dist/src/components/version/version.js +12 -0
  19. package/dist/src/scripts/rewriteAlias.js +0 -20
  20. package/package.json +8 -6
  21. package/src/components/index.ts +6 -0
  22. package/src/components/login/loginPage.tsx +8 -14
  23. package/src/components/logo/logo.tsx +6 -2
  24. package/src/components/logo/logoSmall.tsx +2 -2
  25. package/src/components/navbar/navbar.tsx +130 -0
  26. package/src/components/navbar/navbarDropdown.tsx +77 -0
  27. package/src/components/navbar/navbarItem.tsx +47 -0
  28. package/src/components/toggle/theme.tsx +1 -1
  29. package/src/components/version/version.tsx +34 -0
  30. package/src/globals.css +37 -0
  31. package/src/scripts/rewriteAlias.ts +0 -22
  32. package/src/utils/cookies/cookies.ts +12 -7
  33. package/tsconfig.json +0 -3
  34. package/dist/images/logo-tekst-white.svg +0 -171
  35. package/dist/src/types/svg.d.ts +0 -4
  36. package/dist/src/types/svg.js +0 -1
  37. package/images/logo-tekst-white.svg +0 -171
  38. package/src/types/svg.ts +0 -4
@@ -0,0 +1,130 @@
1
+ 'use client'
2
+
3
+ import React, { useState } from 'react'
4
+ import Link from 'next/link'
5
+ import LogoSmall from '@components/logo/logoSmall'
6
+ import LanguageToggle from '@components/toggle/language'
7
+ import ThemeToggle from '@components/toggle/theme'
8
+ import { Language } from 'uibee/components'
9
+ import { LogOut } from 'lucide-react'
10
+
11
+
12
+ function hamburgerStyle (isOpen: boolean, isSecond?: boolean) {
13
+ return `bg-login-50 h-0.5 absolute w-8 transition-all duration-[400ms] left-2 ${
14
+ isOpen
15
+ ? `top-6 ${isSecond ? 'rotate-45' : '-rotate-45'}`
16
+ : isSecond ? 'top-7' : 'top-4'
17
+ }`
18
+ }
19
+
20
+ export type NavbarProps = {
21
+ lang: Language
22
+ onlyLogo?: boolean
23
+ theme: string
24
+ token: string | null
25
+ children: React.ReactNode
26
+ }
27
+
28
+ export default function Navbar({ lang, onlyLogo, token, children }: NavbarProps) {
29
+ const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false)
30
+
31
+ return (
32
+ <div className={`${isMobileMenuOpen ? 'bg-[#181818f0]' : 'bg-[#18181899]'} backdrop-blur-xl fixed top-0 z-900 w-full`}>
33
+ <div className={`flex w-full max-w-6xl m-auto p-2 transition duration-500 800px:justify-between 800px:p-4 ${
34
+ isMobileMenuOpen ? 'h-screen bg-login-900/20 800px:h-20' : ''
35
+ }`}>
36
+ {/* Logo */}
37
+ <div className='block h-12 p-1 800px:p-0'>
38
+ <Link
39
+ href='/'
40
+ onClick={() => setIsMobileMenuOpen(false)}
41
+ >
42
+ <LogoSmall />
43
+ </Link>
44
+ </div>
45
+
46
+ {onlyLogo ? null : (
47
+ <>
48
+ {/* Desktop Navigation */}
49
+ <nav className='hidden 800px:flex 800px:justify-between 800px:items-center 800px:w-fill max-w-[50rem]'>
50
+ {children}
51
+ </nav>
52
+
53
+ {/* Controls */}
54
+ <nav className='flex w-[calc(100vw-8rem)] justify-end h-12 800px:w-fit'>
55
+ <ThemeToggle />
56
+ <LanguageToggle language={lang} />
57
+ <AuthButton token={token} />
58
+ </nav>
59
+
60
+ {/* Mobile Menu Button */}
61
+ <button
62
+ className='w-12 h-12 relative cursor-pointer bg-none border-none 800px:hidden'
63
+ onClick={() => setIsMobileMenuOpen(!isMobileMenuOpen)}
64
+ >
65
+ <div className={hamburgerStyle(isMobileMenuOpen)} />
66
+ <div className={hamburgerStyle(isMobileMenuOpen, true)} />
67
+ </button>
68
+
69
+ {/* Mobile Navigation */}
70
+ <nav className={`fixed top-16 w-[calc(100%-2rem)] max-w-[35rem] mx-auto left-0 right-0 800px:hidden
71
+ transition-all duration-500 ease-in-out overflow-hidden
72
+ ${isMobileMenuOpen ? 'max-h-[calc(100vh-4rem)] opacity-100' : 'max-h-0 opacity-0'}`}
73
+ onClick={() => setIsMobileMenuOpen(false)}>
74
+ {React.Children.map(children, (child, index) => (
75
+ <div
76
+ key={index}
77
+ className={`transition-all duration-500 ease-out ${
78
+ isMobileMenuOpen
79
+ ? 'opacity-100 transform translate-y-0'
80
+ : 'opacity-0 transform -translate-y-4'
81
+ }`}
82
+ style={{
83
+ transitionDelay: isMobileMenuOpen ? `${index * 80}ms` : '0ms'
84
+ }}
85
+ >
86
+ {child}
87
+ </div>
88
+ ))}
89
+ </nav>
90
+ </>
91
+ )}
92
+ </div>
93
+ </div>
94
+ )
95
+ }
96
+
97
+ function AuthButton({ token }: { token: string | null }) {
98
+ return (
99
+ <div className='rounded-[0.3rem] hover:bg-[#6464641a] h-12 w-12'>
100
+ {token ? (
101
+ <Link
102
+ href='/api/logout'
103
+ prefetch={false}
104
+ onClick={(e) => {
105
+ e.preventDefault()
106
+ window.location.href = '/api/logout'
107
+ }}
108
+ className='grid items-center justify-center h-full w-full'
109
+ >
110
+ <LogOut size={24} />
111
+ </Link>
112
+ ) : (
113
+ <Link
114
+ href='/api/login'
115
+ className='grid items-center justify-center h-full w-full'
116
+ >
117
+ <div className={`relative w-[30px] h-5
118
+ before:content-[""] before:absolute before:top-0 before:left-1/2 before:-translate-x-1/2
119
+ before:w-[10px] before:h-[10px] before:border-2 before:border-login-50
120
+ before:rounded-full before:bg-transparent
121
+ after:content-[""] after:absolute after:bottom-0 after:left-1/2 after:-translate-x-1/2
122
+ after:w-[18px] after:h-2 after:border-2 after:border-login-50
123
+ after:rounded-t-[22px] after:border-b-0 after:bg-transparent
124
+ `}
125
+ />
126
+ </Link>
127
+ )}
128
+ </div>
129
+ )
130
+ }
@@ -0,0 +1,77 @@
1
+ 'use client'
2
+
3
+ import { ChevronDown } from 'lucide-react'
4
+ import React, { ReactNode, useRef, useState } from 'react'
5
+
6
+ export type NavDropdownProps = {
7
+ children: ReactNode
8
+ title: string
9
+ }
10
+
11
+ export default function NavDropdown({ children, title }: NavDropdownProps) {
12
+ const [isMobileDropdownOpen, setIsMobileDropdownOpen] = useState(false)
13
+ const navItemRef = useRef<HTMLDivElement>(null)
14
+
15
+ return (
16
+ <>
17
+ {/* Desktop Dropdown */}
18
+ <div className={'relative group hidden 800px:block'}>
19
+ <div className='outline-none' tabIndex={0} ref={navItemRef}>
20
+ <div className={`list-none no-underline text-base leading-4 p-3 font-bold cursor-pointer flex flex-row items-center
21
+ transition-colors`
22
+ }>
23
+ {title}
24
+ <ChevronDown className={'w-6 h-6 stroke-login ml-1 text-2xl transition-transform duration-300 ease-in-out'} />
25
+ </div>
26
+ <div className={`absolute pt-2 -ml-4 -translate-y-4 opacity-0 pointer-events-none
27
+ transition-all duration-200 ease-in-out z-10
28
+ group-hover:opacity-100 group-hover:pointer-events-auto group-hover:translate-y-0
29
+ group-focus-within:opacity-100 group-focus-within:pointer-events-auto group-focus-within:translate-y-0`}
30
+ >
31
+ <ul className={'p-3 px-6 pb-4 rounded-[0.4rem] shadow-[0_0.1rem_0.5rem_rgba(3,3,3,0.5)] bg-login-700/98'}>
32
+ {React.Children.map(children, (child, index) => (
33
+ <div
34
+ key={index}
35
+ onClick={() => navItemRef.current?.blur()}
36
+ className='group dropdown'
37
+ >
38
+ {child}
39
+ </div>
40
+ ))}
41
+ </ul>
42
+ </div>
43
+ </div>
44
+ </div>
45
+
46
+ {/* Mobile Dropdown */}
47
+ <div className={'block 800px:hidden'}>
48
+ <button
49
+ className={'bg-none border-none cursor-pointer w-full text-left'}
50
+ onClick={(e) => {
51
+ e.stopPropagation()
52
+ setIsMobileDropdownOpen(!isMobileDropdownOpen)
53
+ }}
54
+ >
55
+ <li className={`list-none no-underline text-2xl leading-6 overflow-hidden
56
+ w-full pl-4 pr-4 rounded-[0.3rem] transition-all duration-[600ms]
57
+ flex items-center gap-2 opacity-100 min-h-16 py-5 `}
58
+ >
59
+ <span>{title}</span>
60
+ <ChevronDown className={`w-6 h-6 transition-transform duration-400 flex-shrink-0
61
+ ${isMobileDropdownOpen ? 'rotate-180' : ''}`}
62
+ />
63
+ </li>
64
+ </button>
65
+ <div className={`list-none no-underline text-xl px-6 ${isMobileDropdownOpen ? 'pb-4' : ''}`}>
66
+ {React.Children.map(children, (child, index) => (
67
+ <div key={index} className={`leading-6 transition-all duration-500 group dropdown
68
+ ${isMobileDropdownOpen ? 'h-11 opacity-100' : 'h-0 opacity-0'}
69
+ `}>
70
+ {child}
71
+ </div>
72
+ ))}
73
+ </div>
74
+ </div>
75
+ </>
76
+ )
77
+ }
@@ -0,0 +1,47 @@
1
+ 'use client'
2
+
3
+ import { ArrowUpRight } from 'lucide-react'
4
+ import Link from 'next/link'
5
+ import { ReactNode } from 'react'
6
+
7
+ export type NavItemProps = {
8
+ href: string
9
+ children: ReactNode
10
+ external?: boolean
11
+ target?: string
12
+ rel?: string
13
+ title?: string
14
+ icon?: ReactNode
15
+ }
16
+
17
+ const commonStyling = 'list-none flex no-underline items-center gap-2 whitespace-nowrap cursor-pointer'
18
+
19
+ export default function NavItem({ href, children, external = false, target, rel, title, icon }: NavItemProps) {
20
+ const linkProps = { href, target, rel, title }
21
+
22
+ return (
23
+ <>
24
+ {/* Desktop version */}
25
+ <Link {...linkProps} className='hidden 800px:block'>
26
+ <li className={`${commonStyling} text-base leading-4 p-3 font-bold transition-colors link-corner-hover
27
+ group-[.dropdown]:p-2.5 group-[.dropdown]:pr-3 group-[.dropdown]:pl-1`
28
+ }>
29
+ {icon}
30
+ {children}
31
+ {external && <ArrowUpRight className='w-6 h-6 stroke-login' />}
32
+ </li>
33
+ </Link>
34
+
35
+ {/* Mobile version */}
36
+ <Link {...linkProps} className='block 800px:hidden'>
37
+ <li className={`${commonStyling} text-2xl leading-6 overflow-hidden w-auto pl-4 rounded-[0.3rem] transition-all
38
+ duration-[600ms] opacity-100 h-16 py-5 group-[.dropdown]:p-0 group-[.dropdown]:text-lg group-[.dropdown]:h-auto
39
+ group-[.dropdown]:py-2.5 group-[.dropdown]:pl-4`
40
+ }>
41
+ {children}
42
+ {external && <ArrowUpRight className='w-6 h-6 stroke-login' />}
43
+ </li>
44
+ </Link>
45
+ </>
46
+ )
47
+ }
@@ -4,7 +4,7 @@ import { useEffect, useState } from 'react'
4
4
  import { getCookie, setCookie } from '@utils/cookies/cookies'
5
5
  import { useRouter } from 'next/navigation'
6
6
 
7
- export default function ThemeSwitch({className}: {className?: string}) {
7
+ export default function ThemeToggle({className}: {className?: string}) {
8
8
  const router = useRouter()
9
9
  const [theme, setTheme] = useState<'dark' | 'light'>('dark')
10
10
 
@@ -0,0 +1,34 @@
1
+ import Link from 'next/link'
2
+
3
+ type VersionTagProps = {
4
+ version?: string
5
+ url?: string
6
+ className?: string
7
+ }
8
+
9
+ export default function VersionTag({version, url, className}: VersionTagProps) {
10
+ if (!version) {
11
+ return
12
+ }
13
+
14
+ const style =
15
+ `w-fit bg-login-600 px-2 py-1 rounded-md text-white tracking-[0.05em] font-semibold text-lg ${className}`
16
+
17
+ if (url) {
18
+ return (
19
+ <Link
20
+ className={style}
21
+ target='_blank'
22
+ href={url}
23
+ >
24
+ v{version}
25
+ </Link>
26
+ )
27
+ }
28
+
29
+ return (
30
+ <div className={style}>
31
+ v{version}
32
+ </div>
33
+ )
34
+ }
package/src/globals.css CHANGED
@@ -3,6 +3,21 @@
3
3
  @config '../tailwind.config.ts';
4
4
 
5
5
  @theme {
6
+ --breakpoint-100px: 100px;
7
+ --breakpoint-200px: 200px;
8
+ --breakpoint-300px: 300px;
9
+ --breakpoint-432px: 432px;
10
+ --breakpoint-350px: 350px;
11
+ --breakpoint-400px: 400px;
12
+ --breakpoint-450px: 450px;
13
+ --breakpoint-500px: 500px;
14
+ --breakpoint-600px: 600px;
15
+ --breakpoint-700px: 700px;
16
+ --breakpoint-800px: 800px;
17
+ --breakpoint-900px: 900px;
18
+ --breakpoint-1000px: 1000px;
19
+ --breakpoint-1200px: 1200px;
20
+
6
21
  --breakpoint-xs: 30rem;
7
22
  --breakpoint-2xl: 100rem;
8
23
  --breakpoint-3xl: 120rem;
@@ -92,3 +107,25 @@ body {
92
107
  @utility animate-jump {
93
108
  animation: jump 0.4s 1;
94
109
  }
110
+
111
+ @utility link-corner-hover {
112
+ position: relative;
113
+
114
+ &::after {
115
+ content: ' ';
116
+ position: absolute;
117
+ width: .8em;
118
+ height: .8em;
119
+ bottom: .4em;
120
+ right: .4em;
121
+ border-right: .2em solid transparent;
122
+ border-bottom: .2em solid transparent;
123
+ transition: .2s;
124
+ }
125
+
126
+ &:hover::after {
127
+ border-color: var(--color-login);
128
+ right: 0;
129
+ bottom: 0;
130
+ }
131
+ }
@@ -3,7 +3,6 @@ import path from 'path'
3
3
  import { globSync } from 'glob'
4
4
 
5
5
  const DIST_DIR = path.resolve('dist')
6
- const IMAGES_DIR = path.join(DIST_DIR, 'images')
7
6
  const SRC_DIR = path.join(DIST_DIR, 'src')
8
7
 
9
8
  const jsFiles = globSync(`${DIST_DIR}/**/*.js`, { nodir: true })
@@ -12,13 +11,6 @@ jsFiles.forEach((file) => {
12
11
  let content = fs.readFileSync(file, 'utf-8')
13
12
  const fileDir = path.dirname(file)
14
13
 
15
- // Handle @images/* imports
16
- content = content.replace(/from ['"]@images\/(.*?)['"]/g, (_, p1) => {
17
- const targetPath = path.join(IMAGES_DIR, p1)
18
- const relative = path.relative(fileDir, targetPath).replace(/\\/g, '/')
19
- return `from '${relative}'`
20
- })
21
-
22
14
  // Handle @utils/* imports
23
15
  content = content.replace(/from ['"]@utils\/(.*?)['"]/g, (_, p1) => {
24
16
  const targetPath = path.join(SRC_DIR, 'utils', p1)
@@ -40,20 +32,6 @@ jsFiles.forEach((file) => {
40
32
  return `from '${relative}'`
41
33
  })
42
34
 
43
- const inlineImages = content.match(/src: ['"]images\/(.*?)['"]/g)
44
- if (inlineImages) {
45
- inlineImages.forEach((match) => {
46
- const imgPathMatch = match.match(/src: ['"]images\/(.*?)['"]/)
47
- if (imgPathMatch) {
48
- const imgRelativePath = imgPathMatch[1]
49
- const resolvedPath = path.join(IMAGES_DIR, imgRelativePath)
50
- console.error(`⚠️ Detected inline image in ${file}: ${match}`)
51
- console.error(` Resolved file path: ${resolvedPath}`)
52
- console.error(` This is not allowed. Use 'import image from '@images/${imgRelativePath}'' instead.`)
53
- }
54
- })
55
- }
56
-
57
35
  fs.writeFileSync(file, content, 'utf-8')
58
36
  })
59
37
 
@@ -1,13 +1,17 @@
1
1
  export function getCookie(name: string): string | null {
2
+ if (typeof document === 'undefined') return null
2
3
  const matches = document.cookie.match(
3
4
  new RegExp(
4
- '(?:^|; )' + name.replace(/([.$?*|{}()[\]/\\+^])/g, '\\$1') + '=([^;]*)'
5
+ '(?:^|; )' +
6
+ name.replace(/([.$?*|{}()[\]/\\+^])/g, '\\$1') +
7
+ '=([^;]*)'
5
8
  )
6
9
  )
7
10
  return matches ? decodeURIComponent(matches[1]) : null
8
11
  }
9
12
 
10
13
  export function setCookie(name: string, value: string, days?: number) {
14
+ if (typeof document === 'undefined') return
11
15
  let expires = ''
12
16
 
13
17
  if (!value) {
@@ -25,14 +29,15 @@ export function setCookie(name: string, value: string, days?: number) {
25
29
  `${expires} path=/; SameSite=Lax`
26
30
  }
27
31
 
28
- export function removeCookies(...cookies: string[]) {
29
- for (const cookie of cookies) {
30
- removeCookie(cookie)
31
- }
32
- }
33
-
34
32
  export function removeCookie(name: string) {
33
+ if (typeof document === 'undefined') return
35
34
  document.cookie =
36
35
  `${name}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; ` +
37
36
  'path=/; SameSite=Lax'
38
37
  }
38
+
39
+ export function removeCookies(...cookies: string[]) {
40
+ for (const cookie of cookies) {
41
+ removeCookie(cookie)
42
+ }
43
+ }
package/tsconfig.json CHANGED
@@ -13,9 +13,6 @@
13
13
  "jsx": "react-jsx",
14
14
  "resolveJsonModule": true,
15
15
  "paths": {
16
- "@images/*": [
17
- "./images/*"
18
- ],
19
16
  "@components/*": [
20
17
  "./src/components/*"
21
18
  ],
@@ -1,171 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
- <svg
3
- viewBox="0 0 147.02299 59.20511"
4
- version="1.1"
5
- id="svg1433"
6
- sodipodi:docname="logo-tekst-white.svg"
7
- width="147.02299"
8
- height="59.205109"
9
- inkscape:version="1.1.2 (0a00cf5339, 2022-02-04, custom)"
10
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
11
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
12
- xmlns="http://www.w3.org/2000/svg"
13
- xmlns:svg="http://www.w3.org/2000/svg"
14
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
15
- xmlns:cc="http://creativecommons.org/ns#"
16
- xmlns:dc="http://purl.org/dc/elements/1.1/">
17
- <sodipodi:namedview
18
- id="namedview1435"
19
- pagecolor="#ffffff"
20
- bordercolor="#666666"
21
- borderopacity="1.0"
22
- inkscape:pageshadow="2"
23
- inkscape:pageopacity="0.0"
24
- inkscape:pagecheckerboard="0"
25
- showgrid="false"
26
- inkscape:zoom="5.1614308"
27
- inkscape:cx="73.429252"
28
- inkscape:cy="28.577347"
29
- inkscape:window-width="1896"
30
- inkscape:window-height="1028"
31
- inkscape:window-x="12"
32
- inkscape:window-y="40"
33
- inkscape:window-maximized="1"
34
- inkscape:current-layer="svg1433" />
35
- <defs
36
- id="defs1371">
37
- <style
38
- id="style1369">.a{fill:#fff;}.b{fill:none;stroke:#f0802a;stroke-miterlimit:10;stroke-width:3.5px;}</style>
39
- </defs>
40
- <title
41
- id="title1373">logo_tekst</title>
42
- <path
43
- class="a"
44
- d="m 28.77713,58.37738 v 0.76465 H 25.531 v -5.61816 h 0.91309 v 4.85351 z"
45
- id="path1375" />
46
- <path
47
- class="a"
48
- d="m 30.47831,59.142 h -0.917 v -5.61813 h 0.917 z"
49
- id="path1377" />
50
- <path
51
- class="a"
52
- d="M 36.46268,53.52387 V 59.142 H 35.99881 A 0.36347,0.36347 0 0 1 35.6785,58.98185 L 32.59256,55.018 c 0.0078,0.07617 0.01368,0.15039 0.01758,0.22461 0.0039,0.07422 0.0059,0.14258 0.0059,0.20508 V 59.142 h -0.80371 v -5.61813 h 0.47656 a 0.71321,0.71321 0 0 1 0.09864,0.0059 0.3128,0.3128 0 0 1 0.07617,0.02148 0.22919,0.22919 0 0 1 0.0664,0.04688 0.63781,0.63781 0 0 1 0.06641,0.07812 l 3.08984,3.96779 c -0.0078,-0.08105 -0.01367,-0.16015 -0.01757,-0.23828 -0.0039,-0.07813 -0.0059,-0.15039 -0.0059,-0.21875 v -3.6631 z"
53
- id="path1379" />
54
- <path
55
- class="a"
56
- d="m 39.84549,57.1684 a 2.91264,2.91264 0 0 1 -0.11523,0.84765 1.748,1.748 0 0 1 -0.34375,0.64063 1.52483,1.52483 0 0 1 -0.56543,0.40527 2.00691,2.00691 0 0 1 -0.78223,0.14258 3.23707,3.23707 0 0 1 -0.40234,-0.0254 3.44454,3.44454 0 0 1 -0.41309,-0.0801 l 0.04688,-0.5459 a 0.2079,0.2079 0 0 1 0.06055,-0.125 0.19754,0.19754 0 0 1 0.14257,-0.0469 0.74035,0.74035 0 0 1 0.18067,0.0293 1.36468,1.36468 0 0 0 0.71387,-0.041 0.74722,0.74722 0 0 0 0.3125,-0.2207 0.9864,0.9864 0 0 0 0.1914,-0.38574 2.19551,2.19551 0 0 0 0.06445,-0.57227 v -3.667 h 0.90918 z"
57
- id="path1381" />
58
- <path
59
- class="a"
60
- d="m 44.6326,58.40473 -0.0039,0.7373 h -3.50391 v -5.61816 h 3.50391 v 0.7373 h -2.58692 v 1.69336 h 2.06739 v 0.71387 h -2.06739 v 1.73633 z"
61
- id="path1383" />
62
- <path
63
- class="a"
64
- d="M 46.53592,54.26117 V 56.06 h 2.19629 v 0.7373 h -2.19629 v 2.3447 h -0.917 v -5.61813 h 3.50391 v 0.7373 z"
65
- id="path1385" />
66
- <path
67
- class="a"
68
- d="m 55.25956,56.33344 a 3.18179,3.18179 0 0 1 -0.20215,1.15039 2.6634,2.6634 0 0 1 -0.57227,0.90722 2.59685,2.59685 0 0 1 -0.88476,0.59473 3.17156,3.17156 0 0 1 -2.29492,0 2.62415,2.62415 0 0 1 -0.88672,-0.59473 2.65327,2.65327 0 0 1 -0.57422,-0.90722 3.37717,3.37717 0 0 1 0,-2.30176 2.67118,2.67118 0 0 1 0.57422,-0.90918 2.61491,2.61491 0 0 1 0.88672,-0.59668 3.1717,3.1717 0 0 1 2.29492,0 2.58781,2.58781 0 0 1 0.88476,0.59668 2.68144,2.68144 0 0 1 0.57227,0.90918 3.1871,3.1871 0 0 1 0.20215,1.15137 z m -0.93164,0 a 2.706,2.706 0 0 0 -0.13086,-0.87012 1.821,1.821 0 0 0 -0.375,-0.65527 1.63008,1.63008 0 0 0 -0.59082,-0.41407 2.16795,2.16795 0 0 0 -1.55664,0 1.65415,1.65415 0 0 0 -0.59278,0.41407 1.84212,1.84212 0 0 0 -0.3789,0.65527 2.92611,2.92611 0 0 0 0,1.74316 1.83766,1.83766 0 0 0 0.3789,0.6543 1.64222,1.64222 0 0 0 0.59278,0.40918 2.19564,2.19564 0 0 0 1.55664,0 1.61838,1.61838 0 0 0 0.59082,-0.40918 1.81652,1.81652 0 0 0 0.375,-0.6543 2.71589,2.71589 0 0 0 0.13086,-0.87304 z"
69
- id="path1387" />
70
- <path
71
- class="a"
72
- d="m 60.534,59.142 h -0.81543 a 0.377,0.377 0 0 1 -0.35156,-0.1875 l -1.31055,-1.8916 a 0.4267,0.4267 0 0 0 -0.14453,-0.14063 0.50286,0.50286 0 0 0 -0.23437,-0.043 H 57.17072 V 59.142 H 56.2576 v -5.61813 h 1.6543 a 3.54427,3.54427 0 0 1 0.9541,0.11328 1.80649,1.80649 0 0 1 0.65723,0.32226 1.25606,1.25606 0 0 1 0.37988,0.501 1.76427,1.76427 0 0 1 0.03516,1.19727 1.50418,1.50418 0 0 1 -0.25293,0.46093 1.61283,1.61283 0 0 1 -0.40821,0.3584 2.04861,2.04861 0 0 1 -0.5498,0.23828 0.92346,0.92346 0 0 1 0.28906,0.28516 z m -2.64551,-2.92578 a 1.763,1.763 0 0 0 0.5459,-0.07617 1.11007,1.11007 0 0 0 0.39063,-0.21289 0.87892,0.87892 0 0 0 0.23437,-0.3252 1.10093,1.10093 0 0 0 0.07715,-0.41992 0.84276,0.84276 0 0 0 -0.30371,-0.70215 1.46527,1.46527 0 0 0 -0.9209,-0.24219 h -0.74121 v 1.97852 z"
73
- id="path1389" />
74
- <path
75
- class="a"
76
- d="m 64.72049,58.40473 -0.0039,0.7373 h -3.50391 v -5.61816 h 3.50391 v 0.7373 h -2.58692 v 1.69336 h 2.06739 v 0.71387 h -2.06739 v 1.73633 z"
77
- id="path1391" />
78
- <path
79
- class="a"
80
- d="M 70.35721,53.52387 V 59.142 H 69.89335 A 0.36347,0.36347 0 0 1 69.57303,58.98185 L 66.4871,55.018 c 0.0078,0.07617 0.01367,0.15039 0.01757,0.22461 0.0039,0.07422 0.0059,0.14258 0.0059,0.20508 V 59.142 h -0.80371 v -5.61813 h 0.47656 a 0.71321,0.71321 0 0 1 0.09864,0.0059 0.3128,0.3128 0 0 1 0.07617,0.02148 0.22936,0.22936 0 0 1 0.06641,0.04688 0.63869,0.63869 0 0 1 0.0664,0.07812 l 3.08985,3.96777 c -0.008,-0.08105 -0.0137,-0.16015 -0.0176,-0.23828 -0.004,-0.07813 -0.006,-0.15039 -0.006,-0.21875 v -3.66308 z"
81
- id="path1393" />
82
- <path
83
- class="a"
84
- d="m 72.6121,59.142 h -0.917 v -5.61813 h 0.917 z"
85
- id="path1395" />
86
- <path
87
- class="a"
88
- d="M 78.59794,53.52387 V 59.142 H 78.13358 A 0.36344,0.36344 0 0 1 77.81327,58.98185 L 74.72733,55.018 c 0.008,0.07617 0.0137,0.15039 0.0176,0.22461 0.004,0.07422 0.006,0.14258 0.006,0.20508 V 59.142 h -0.80371 v -5.61813 h 0.47656 a 0.713,0.713 0 0 1 0.0986,0.0059 0.31254,0.31254 0 0 1 0.0762,0.02148 0.22936,0.22936 0 0 1 0.0664,0.04688 0.63869,0.63869 0 0 1 0.0664,0.07812 l 3.08984,3.96777 c -0.008,-0.08105 -0.0137,-0.16015 -0.0176,-0.23828 -0.004,-0.07813 -0.006,-0.15039 -0.006,-0.21875 v -3.66308 z"
89
- id="path1397" />
90
- <path
91
- class="a"
92
- d="M 84.53544,56.37641 V 58.6 a 3.24425,3.24425 0 0 1 -1.9502,0.60449 3.419,3.419 0 0 1 -1.23535,-0.21289 2.7275,2.7275 0 0 1 -0.94141,-0.59277 2.59231,2.59231 0 0 1 -0.60156,-0.90723 3.08634,3.08634 0 0 1 -0.21,-1.1582 3.23536,3.23536 0 0 1 0.20215,-1.165 2.5484,2.5484 0 0 1 1.49414,-1.498 3.29189,3.29189 0 0 1 1.20215,-0.209 3.52605,3.52605 0 0 1 0.62988,0.05273 3.11559,3.11559 0 0 1 0.54,0.14649 2.535,2.535 0 0 1 0.84668,0.52246 l -0.26074,0.418 a 0.26545,0.26545 0 0 1 -0.16016,0.12109 0.27377,0.27377 0 0 1 -0.21094,-0.04688 c -0.0752,-0.04492 -0.15527,-0.09082 -0.24023,-0.14062 a 2.01137,2.01137 0 0 0 -0.29,-0.13867 2.127,2.127 0 0 0 -0.37891,-0.10547 2.72656,2.72656 0 0 0 -0.50683,-0.041 2.09434,2.09434 0 0 0 -0.80176,0.14649 1.70173,1.70173 0 0 0 -0.61035,0.418 1.84692,1.84692 0 0 0 -0.39063,0.65722 2.5766,2.5766 0 0 0 -0.13672,0.86231 2.62333,2.62333 0 0 0 0.14453,0.89844 1.88731,1.88731 0 0 0 0.41016,0.67187 1.74772,1.74772 0 0 0 0.6416,0.419 2.55647,2.55647 0 0 0 1.459,0.0703 2.80344,2.80344 0 0 0 0.53222,-0.207 V 57.07074 H 82.928 a 0.19287,0.19287 0 0 1 -0.13964,-0.04883 0.16848,0.16848 0 0 1 -0.0508,-0.12695 v -0.51855 z"
93
- id="path1399" />
94
- <path
95
- class="a"
96
- d="m 89.1243,58.40473 -0.004,0.7373 h -3.50391 v -5.61816 h 3.50391 v 0.7373 h -2.58692 v 1.69336 h 2.06739 v 0.71387 h -2.06739 v 1.73633 z"
97
- id="path1401" />
98
- <path
99
- class="a"
100
- d="M 94.761,53.52387 V 59.142 H 94.29713 A 0.36347,0.36347 0 0 1 93.97682,58.98185 L 90.8909,55.018 c 0.008,0.07617 0.0137,0.15039 0.0176,0.22461 0.004,0.07422 0.006,0.14258 0.006,0.20508 V 59.142 h -0.80371 v -5.61813 h 0.47656 a 0.71321,0.71321 0 0 1 0.0986,0.0059 0.3128,0.3128 0 0 1 0.0762,0.02148 0.22919,0.22919 0 0 1 0.0664,0.04688 0.63781,0.63781 0 0 1 0.0664,0.07812 l 3.08984,3.96777 c -0.008,-0.08105 -0.0137,-0.16015 -0.0176,-0.23828 -0.004,-0.07813 -0.006,-0.15039 -0.006,-0.21875 v -3.66308 z"
101
- id="path1403" />
102
- <path
103
- class="a"
104
- d="M 98.95829,54.26117 V 56.06 h 2.19629 v 0.7373 h -2.19629 v 2.3447 h -0.917 v -5.61813 h 3.5039 v 0.7373 z"
105
- id="path1405" />
106
- <path
107
- class="a"
108
- d="m 107.68192,56.33344 a 3.18158,3.18158 0 0 1 -0.20215,1.15039 2.66353,2.66353 0 0 1 -0.57226,0.90722 2.597,2.597 0 0 1 -0.88477,0.59473 3.17156,3.17156 0 0 1 -2.29492,0 2.62415,2.62415 0 0 1 -0.88672,-0.59473 2.65327,2.65327 0 0 1 -0.57422,-0.90722 3.37717,3.37717 0 0 1 0,-2.30176 2.67118,2.67118 0 0 1 0.57422,-0.90918 2.61491,2.61491 0 0 1 0.88672,-0.59668 3.1717,3.1717 0 0 1 2.29492,0 2.588,2.588 0 0 1 0.88477,0.59668 2.68157,2.68157 0 0 1 0.57226,0.90918 3.18689,3.18689 0 0 1 0.20215,1.15137 z m -0.93164,0 a 2.706,2.706 0 0 0 -0.13086,-0.87012 1.82066,1.82066 0 0 0 -0.375,-0.65527 1.63,1.63 0 0 0 -0.59082,-0.41407 2.16795,2.16795 0 0 0 -1.55664,0 1.65411,1.65411 0 0 0 -0.59277,0.41407 1.84214,1.84214 0 0 0 -0.37891,0.65527 2.92632,2.92632 0 0 0 0,1.74316 1.83768,1.83768 0 0 0 0.37891,0.6543 1.64218,1.64218 0 0 0 0.59277,0.40918 2.19564,2.19564 0 0 0 1.55664,0 1.61829,1.61829 0 0 0 0.59082,-0.40918 1.81623,1.81623 0 0 0 0.375,-0.6543 2.71589,2.71589 0 0 0 0.13086,-0.87304 z"
109
- id="path1407" />
110
- <path
111
- class="a"
112
- d="m 112.95731,59.142 h -0.81543 a 0.377,0.377 0 0 1 -0.35156,-0.1875 l -1.31055,-1.8916 a 0.4267,0.4267 0 0 0 -0.14453,-0.14063 0.50286,0.50286 0 0 0 -0.23437,-0.043 H 109.594 V 59.142 h -0.91309 v -5.61813 h 1.6543 a 3.54427,3.54427 0 0 1 0.9541,0.11328 1.80649,1.80649 0 0 1 0.65723,0.32226 1.25606,1.25606 0 0 1 0.37988,0.501 1.76427,1.76427 0 0 1 0.0352,1.19727 1.50418,1.50418 0 0 1 -0.25293,0.46093 1.61283,1.61283 0 0 1 -0.40821,0.3584 2.04861,2.04861 0 0 1 -0.5498,0.23828 0.92346,0.92346 0 0 1 0.28906,0.28516 z m -2.64551,-2.92578 a 1.763,1.763 0 0 0 0.5459,-0.07617 1.11007,1.11007 0 0 0 0.39063,-0.21289 0.87892,0.87892 0 0 0 0.23437,-0.3252 1.10093,1.10093 0 0 0 0.0772,-0.41992 0.84276,0.84276 0 0 0 -0.30371,-0.70215 1.46527,1.46527 0 0 0 -0.9209,-0.24219 H 109.594 v 1.97852 z"
113
- id="path1409" />
114
- <path
115
- class="a"
116
- d="m 116.4954,59.142 h -0.917 v -5.61813 h 0.917 z"
117
- id="path1411" />
118
- <path
119
- class="a"
120
- d="m 121.69559,54.28461 h -1.75195 V 59.142 h -0.9082 v -4.85739 h -1.75586 v -0.76074 h 4.416 z"
121
- id="path1413" />
122
- <polyline
123
- class="b"
124
- points="47.871 98.1 33.189 98.1 33.189 83.418"
125
- id="polyline1415"
126
- transform="translate(-31.392,-41.894)" />
127
- <polyline
128
- class="b"
129
- points="33.142 58.326 33.142 43.644 47.824 43.644"
130
- id="polyline1417"
131
- transform="translate(-31.392,-41.894)" />
132
- <polyline
133
- class="b"
134
- points="161.983 98.122 176.665 98.122 176.665 83.44"
135
- id="polyline1419"
136
- transform="translate(-31.392,-41.894)" />
137
- <polyline
138
- class="b"
139
- points="176.665 58.372 176.665 43.69 161.983 43.69"
140
- id="polyline1421"
141
- transform="translate(-31.392,-41.894)" />
142
- <path
143
- class="a"
144
- d="m 30.02449,40.19351 v 4.12842 H 12.4991 V 13.99038 h 4.92871 v 26.20313 z"
145
- id="path1423" />
146
- <path
147
- class="a"
148
- d="m 61.53523,29.1564 a 17.15942,17.15942 0 0 1 -1.09473,6.21338 14.35971,14.35971 0 0 1 -3.08593,4.89746 14.091,14.091 0 0 1 -4.78125,3.21191 17.1289,17.1289 0 0 1 -12.38575,0 13.98317,13.98317 0 0 1 -7.88867,-8.10937 18.18161,18.18161 0 0 1 0,-12.42725 14.39119,14.39119 0 0 1 3.09668,-4.90771 14.13157,14.13157 0 0 1 4.792,-3.22315 17.13565,17.13565 0 0 1 12.38575,0 14.02046,14.02046 0 0 1 4.78125,3.22315 14.47032,14.47032 0 0 1 3.08593,4.90771 17.16209,17.16209 0 0 1 1.09472,6.21387 z m -5.03418,0 a 14.62587,14.62587 0 0 0 -0.70508,-4.69727 9.9446,9.9446 0 0 0 -2.02246,-3.53906 8.80545,8.80545 0 0 0 -3.1914,-2.23242 11.719,11.719 0 0 0 -8.4043,0 8.90077,8.90077 0 0 0 -3.20117,2.23242 9.96735,9.96735 0 0 0 -2.043,3.53906 15.81644,15.81644 0 0 0 0,9.415 9.847,9.847 0 0 0 2.043,3.52832 8.85094,8.85094 0 0 0 3.20117,2.21192 11.87213,11.87213 0 0 0 8.4043,0 8.75623,8.75623 0 0 0 3.1914,-2.21192 9.82454,9.82454 0 0 0 2.02249,-3.52828 14.69371,14.69371 0 0 0 0.70505,-4.71777 z"
149
- id="path1425" />
150
- <path
151
- class="a"
152
- d="m 91.76082,29.38784 v 12.00635 a 17.5354,17.5354 0 0 1 -10.53125,3.26465 18.41512,18.41512 0 0 1 -6.667,-1.148 14.80254,14.80254 0 0 1 -5.08691,-3.20166 14.0148,14.0148 0 0 1 -3.24316,-4.897 16.691,16.691 0 0 1 -1.1377,-6.25586 17.42935,17.42935 0 0 1 1.09473,-6.2876 13.74023,13.74023 0 0 1 8.06738,-8.08838 17.7222,17.7222 0 0 1 6.48828,-1.127 19.10354,19.10354 0 0 1 3.40137,0.28418 16.85244,16.85244 0 0 1 2.917,0.79 13.68442,13.68442 0 0 1 2.48633,1.22168 13.95372,13.95372 0 0 1 2.085,1.60058 l -1.41113,2.25391 a 1.40229,1.40229 0 0 1 -0.86426,0.65283 1.47784,1.47784 0 0 1 -1.13672,-0.25244 q -0.6123,-0.35816 -1.2959,-0.7583 a 11.33129,11.33129 0 0 0 -1.56933,-0.748 11.53387,11.53387 0 0 0 -2.043,-0.56836 14.78335,14.78335 0 0 0 -2.73828,-0.22119 11.32128,11.32128 0 0 0 -4.32813,0.78955 9.26752,9.26752 0 0 0 -3.29687,2.25391 9.99164,9.99164 0 0 0 -2.10645,3.54931 13.90267,13.90267 0 0 0 -0.7373,4.65528 14.11731,14.11731 0 0 0 0.77929,4.855 10.1425,10.1425 0 0 0 2.21192,3.62305 9.43419,9.43419 0 0 0 3.46484,2.26416 13.81975,13.81975 0 0 0 7.87793,0.3789 15.14816,15.14816 0 0 0 2.875,-1.11621 v -6.02383 h -4.2334 a 1.04883,1.04883 0 0 1 -0.75879,-0.26367 0.90553,0.90553 0 0 1 -0.27343,-0.68457 v -2.80127 z"
153
- id="path1427" />
154
- <path
155
- class="a"
156
- d="M 102.546,44.32193 H 97.59581 V 13.99038 h 4.95019 z"
157
- id="path1429" />
158
- <path
159
- class="a"
160
- d="m 134.8575,13.99038 v 30.33155 h -2.50684 a 2.14219,2.14219 0 0 1 -0.96875,-0.2002 2.26108,2.26108 0 0 1 -0.75879,-0.66357 L 113.962,22.05777 q 0.063,0.61083 0.0947,1.21093 0.0322,0.60058 0.0322,1.106 v 19.94723 h -4.3398 V 13.99038 h 2.57031 a 3.89092,3.89092 0 0 1 0.53711,0.03174 1.53328,1.53328 0 0 1 0.41016,0.11572 1.18964,1.18964 0 0 1 0.35839,0.25293 4.01792,4.01792 0 0 1 0.3584,0.4209 l 16.68164,21.42188 q -0.063,-0.65259 -0.0947,-1.28467 -0.0308,-0.63208 -0.0312,-1.17969 V 13.99038 Z"
161
- id="path1431" />
162
- <metadata
163
- id="metadata1437">
164
- <rdf:RDF>
165
- <cc:Work
166
- rdf:about="">
167
- <dc:title>logo_tekst</dc:title>
168
- </cc:Work>
169
- </rdf:RDF>
170
- </metadata>
171
- </svg>
@@ -1,4 +0,0 @@
1
- declare module '*.svg' {
2
- const content: string;
3
- export default content;
4
- }
@@ -1 +0,0 @@
1
- "use strict";