PageSourceSearch

https://ewnetutesfaye.netlify.app/static/js/990.11aed7b6.chunk.js

js ewnetutesfaye.netlify.app collected 2026-10-03 10:43:07 UTC 5,475 bytes, 182 lines download raw bytes

1"use strict";(self.webpackChunkportsofzeki=self.webpackChunkportsofzeki||[]).push([[990],{6990:(e,t,r)=>{r.r(t),r.d(t,{default:()=>u});var a=r(5043),i=r(5464),o=r(184),n=r(579);const s=i.i7`
2  0% { transform: translateY(0) rotate(0); }
3  20% { transform: translateY(-10px) rotate(5deg); }
4  40% { transform: translateY(0) rotate(0); }
5  60% { transform: translateY(-7px) rotate(-5deg); }
6  80% { transform: translateY(0) rotate(0); }
7  100% { transform: translateY(0) rotate(0); }
8`,l=i.i7`
9  0% { transform: scale(1); }
10  50% { transform: scale(1.05); }
11  100% { transform: scale(1); }
12`,m=i.i7`
13  0% { background-position: -200% center; }
14  100% { background-position: 200% center; }
15`,d=i.Ay.footer`
16  background: ${e=>e.theme.backgroundAlt};
17  padding: 3rem 0 2rem;
18  position: relative;
19  overflow: hidden;
20
21  &::before {
22    content: '';
23    position: absolute;
24    top: 0;
25    left: 0;
26    width: 100%;
27    height: 3px;
28    background: linear-gradient(90deg, 
29      transparent 0%, 
30      ${e=>e.theme.primary} 50%, 
31      transparent 100%
32    );
33    background-size: 200% auto;
34    animation: ${m} 3s linear infinite;
35  }
36
37  @media (max-width: 768px) {
38    padding: 2rem 0 1rem;
39  }
40`,h=i.Ay.div`
41  max-width: 1200px;
42  margin: 0 auto;
43  padding: 0 2rem;
44  display: grid;
45  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
46  gap: 2rem;
47  align-items: start;
48
49  @media (max-width: 768px) {
50    grid-template-columns: 1fr;
51    text-align: center;
52    gap: 1.5rem;
53  }
54`,p=i.Ay.div`
55  display: flex;
56  flex-direction: column;
57  gap: 1rem;
58`,c=i.Ay.h3`
59  color: ${e=>e.theme.textLight};
60  font-size: 1.2rem;
61  margin-bottom: 1rem;
62  position: relative;
63  
64  &::after {
65    content: '';
66    position: absolute;
67    bottom: -5px;
68    left: 0;
69    width: 50px;
70    height: 2px;
71    background: ${e=>e.theme.primary};
72    transition: width 0.3s ease;
73  }
74
75  &:hover::after {
76    width: 100px;
77  }
78
79  @media (max-width: 768px) {
80    &::after {
81      left: 50%;
82      transform: translateX(-50%);
83    }
84  }
85`,x=i.Ay.div`
86  display: flex;
87  gap: 1.5rem;
88  flex-wrap: wrap;
89  justify-content: flex-start;
90
91  @media (max-width: 768px) {
92    justify-content: center;
93  }
94`,f=i.Ay.a`
95  color: ${e=>e.theme.textLight};
96  font-size: 1.5rem;
97  transition: all 0.3s ease;
98  position: relative;
99  
100  &:hover {
101    color: ${e=>e.theme.primary};
102    animation: ${s} 1s ease;
103  }
104
105  &::before {
106    content: '';
107    position: absolute;
108    top: -5px;
109    left: -5px;
110    right: -5px;
111    bottom: -5px;
112    background: ${e=>e.theme.primary}33;
113    border-radius: 50%;
114    transform: scale(0);
115    transition: transform 0.3s ease;
116  }
117
118  &:hover::before {
119    transform: scale(1);
120  }
121`,b=i.Ay.div`
122  margin-top: 2rem;
123  padding-top: 1rem;
124  border-top: 1px solid ${e=>e.theme.border};
125  font-size: 0.9rem;
126  color: ${e=>e.theme.textMuted};
127  text-align: center;
128  animation: ${l} 2s infinite;
129  
130  a {
131    color: ${e=>e.theme.primary};
132    text-decoration: none;
133    position: relative;
134    
135    &::after {
136      content: '';
137      position: absolute;
138      bottom: -2px;
139      left: 0;
140      width: 100%;
141      height: 1px;
142      background: ${e=>e.theme.primary};
143      transform: scaleX(0);
144      transition: transform 0.3s ease;
145    }
146    
147    &:hover::after {
148      transform: scaleX(1);
149    }
150  }
151`,g=i.Ay.button`
152  position: fixed;
153  bottom: ${e=>e.visible?"2rem":"-4rem"};
154  right: 2rem;
155  background: ${e=>e.theme.primary};
156  color: white;
157  width: 45px;
158  height: 45px;
159  border-radius: 50%;
160  border: none;
161  cursor: pointer;
162  display: flex;
163  align-items: center;
164  justify-content: center;
165  transition: all 0.3s ease;
166  opacity: ${e=>e.visible?"1":"0"};
167  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
168  
169  &:hover {
170    transform: translateY(-5px);
171    background: ${e=>e.theme.primaryLight};
172    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
173  }
174
175  @media (max-width: 768px) {
176    width: 40px;
177    height: 40px;
178    right: 1rem;
179    bottom: ${e=>e.visible?"1rem":"-4rem"};
180  }
181`,u=()=>{const[e,t]=(0,a.useState)(!1);(0,a.useEffect)((()=>{const e=()=>{t(window.scrollY>300)};return window.addEventListener("scroll",e),()=>window.removeEventListener("scroll",e)}),[]);return(0,n.jsxs)(d,{children:[(0,n.jsx)(h,{children:(0,n.jsxs)(p,{children:[(0,n.jsx)(c,{children:"Connect With Us"}),(0,n.jsxs)(x,{children:[(0,n.jsx)(f,{href:"https://x.com/Kiyaeh12",target:"_blank","aria-label":"Twitter",children:(0,n.jsx)(o.feZ,{})}),(0,n.jsx)(f,{href:"https://telegram.org",target:"_blank","aria-label":"Telegram",children:(0,n.jsx)(o.hFS,{})}),(0,n.jsx)(f,{href:"https://facebook.com",target:"_blank","aria-label":"Facebook",children:(0,n.jsx)(o.iYk,{})}),(0,n.jsx)(f,{href:"https://github.com/Kiyaeh",target:"_blank","aria-label":"GitHub",children:(0,n.jsx)(o.hL4,{})}),(0,n.jsx)(f,{href:"https://www.linkedin.com/in/ewnetu-tesfaye-8502bb1b3/",target:"_blank","aria-label":"LinkedIn",children:(0,n.jsx)(o.QEs,{})}),(0,n.jsx)(f,{href:"https://youtube.com",target:"_blank","aria-label":"YouTube",children:(0,n.jsx)(o.Vk6,{})})]})]})}),(0,n.jsxs)(b,{children:["Copyright \xa9 ",(new Date).getFullYear()," all rights reserved, Developed by"," ",(0,n.jsx)("a",{href:"https://www.linkedin.com/in/ewnetu-tesfaye-8502bb1b3/",target:"_blank",rel:"noopener noreferrer",children:"Ewnetu T."})]}),(0,n.jsx)(g,{onClick:()=>{window.scrollTo({top:0,behavior:"smooth"})},visible:e,"aria-label":"Back to top",children:(0,n.jsx)(o.uCC,{})})]})}}}]);
182//# sourceMappingURL=990.11aed7b6.chunk.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.