Compare commits

...

87 Commits

Author SHA1 Message Date
ameye 97880b9737 Merge branch 'contact-address' of WrenchBoard/WrenchBoardMainSite2025 into master 2025-07-14 14:13:49 +00:00
victorAnumudu ea5eff6597 contact address hidden 2025-07-14 09:10:49 +01:00
ameye e9af0263f8 Merge branch 'contact-page-fix' of WrenchBoard/WrenchBoardMainSite2025 into master 2025-07-12 14:11:17 +00:00
victorAnumudu 15bd1a9dd7 fixed contact page form validation 2025-07-12 08:56:25 +01:00
ameye 210e73d09b Merge branch 'cookies-fixing' of WrenchBoard/WrenchBoardMainSite2025 into master 2025-06-30 17:06:52 +00:00
victorAnumudu 64390441a1 cookies fixed 2025-06-29 12:43:42 +01:00
ameye c8095755b5 Merge branch 'footer-update' of WrenchBoard/WrenchBoardMainSite2025 into master 2025-06-28 13:28:17 +00:00
victorAnumudu e1000ce0db updated footer section 2025-06-27 20:10:41 +01:00
victorAnumudu c5d67ad79b social links navigates to new tab on clink 2025-03-31 17:53:02 +01:00
victorAnumudu 80d0f0b326 updated endpoint url in prod env 2025-03-20 19:10:50 +01:00
victorAnumudu ebba068098 chat script commented 2025-03-20 19:00:44 +01:00
ameye 8ad3e31f60 Merge branch 'myrefer-link-fix' of WrenchBoard/WrenchBoardMainSite2025 into master 2024-12-03 21:35:15 +00:00
victorAnumudu 5ba57b4b30 my refer page link fixed 2024-12-03 22:27:27 +01:00
ameye 4764a3dd72 Merge branch 'refer_page' of WrenchBoard/WrenchBoardMainSite2025 into master 2024-12-03 17:49:16 +00:00
victorAnumudu e28e313ec4 added refer link page 2024-12-03 18:38:38 +01:00
ameye eabcc55ae5 Merge branch 'home-page-design-fix' of WrenchBoard/WrenchBoardMainSite2025 into master 2024-11-11 20:27:38 +00:00
victorAnumudu 68dd1eeb56 app download link fixed 2024-11-11 16:59:33 +01:00
CHIEFSOFT\ameye 698c8a9f51 New card images 2024-10-31 05:56:31 -04:00
CHIEFSOFT\ameye 4f10804082 images added 2024-10-30 08:03:24 -04:00
tokslaw e883615f21 socials links added to footer/env. 2024-10-20 14:26:54 -04:00
CHIEFSOFT\ameye 378d81bab2 card icon 2024-10-16 14:28:24 -04:00
CHIEFSOFT\ameye d2ca82573e Added new images 2024-10-16 12:52:04 -04:00
CHIEFSOFT\ameye 6d530e174a New image 2024-10-15 18:04:35 -04:00
CHIEFSOFT\ameye bfb01580c6 more banners 2024-10-15 17:24:09 -04:00
CHIEFSOFT\ameye a79e312551 image update 2024-10-15 16:50:18 -04:00
CHIEFSOFT\ameye b2d1b95f1f wallet point image 2024-10-15 10:39:34 -04:00
CHIEFSOFT\ameye ada93c0903 wallet images 2024-10-15 10:26:36 -04:00
CHIEFSOFT\ameye 2306783e49 cookie remove 2024-10-15 10:05:16 -04:00
CHIEFSOFT\ameye dc811ec391 removed comments 2024-10-14 10:32:59 -04:00
CHIEFSOFT\ameye 6c7cac3b59 Try removed the image 2024-10-14 10:28:49 -04:00
ameye 51f3556d87 Merge branch 'bug-fix' of WrenchBoard/WrenchBoardMainSite2025 into master 2024-10-13 17:15:22 +00:00
victorAnumudu 01eb545687 bug fixed 2024-10-13 07:34:52 +01:00
ameye deb89d1303 Merge branch 'accept-cookies' of WrenchBoard/WrenchBoardMainSite2025 into master 2024-10-12 13:06:51 +00:00
victorAnumudu 4fc97cdd2a accept cookie added and image updated 2024-10-12 09:51:32 +01:00
CHIEFSOFT\ameye 74e8c36c48 bannr image 2024-10-01 10:37:20 -04:00
CHIEFSOFT\ameye 62d4822f96 past due jib image 2024-09-30 10:53:54 -04:00
CHIEFSOFT\ameye 1673e45a9e invite image 2024-09-26 23:45:51 -04:00
CHIEFSOFT\ameye 2fb56cd9f4 learnmore 2024-09-26 21:56:55 -04:00
CHIEFSOFT\ameye ed02d978f3 new banner 2024-09-26 09:21:06 -04:00
CHIEFSOFT\ameye 54dc33aa4d banner-coupons 2024-09-21 08:24:32 -04:00
CHIEFSOFT\ameye 754c54fe28 new images 2024-09-21 08:07:50 -04:00
CHIEFSOFT\ameye c79bc8a7d1 new banners 2024-09-20 22:50:10 -04:00
CHIEFSOFT\ameye 85b92a94d9 https://www.wrenchboard.com/assets/images/apps/banners/banner-waiting.jpg 2024-09-20 22:18:27 -04:00
CHIEFSOFT\ameye 2894d6d25f banner images 2024-09-20 22:02:16 -04:00
ameye f86ab9bd2b Merge branch 'text-bug-fix' of WrenchBoard/WrenchBoardMainSite2025 into master 2024-09-16 21:31:24 +00:00
victorAnumudu 2f9102adb0 text bug fixed 2024-09-16 15:59:30 +01:00
ameye 0aa0ac3976 Merge branch 'home-page-update' of WrenchBoard/WrenchBoardMainSite2025 into master 2024-09-16 11:47:20 +00:00
victorAnumudu 5cae72c683 updated home text 2024-09-15 16:20:45 +01:00
ameye 182e014d99 Merge branch 'text_update' of WrenchBoard/WrenchBoardMainSite2025 into master 2024-09-13 19:26:53 +00:00
victorAnumudu e5627ad80e update text display on home page 2024-09-13 19:27:16 +01:00
CHIEFSOFT\ameye 91863a624c interest-pending 2024-09-12 10:24:47 -04:00
CHIEFSOFT\ameye f12fa3dafd friend invite 2024-09-12 09:42:38 -04:00
CHIEFSOFT\ameye 1bba20656e added images 2024-09-12 09:26:06 -04:00
CHIEFSOFT\ameye 28d98a018a added images 2024-08-23 10:51:00 -04:00
CHIEFSOFT\ameye 86293fb94f fix text 2024-08-21 12:39:24 -04:00
tokslaw-shruboak 0738271f88 Merge branch 'master' of https://gitlab.chiefsoft.net/WrenchBoard/WrenchBoardMainSite2025 2024-08-21 11:32:51 -04:00
tokslaw-shruboak ef20799f9c Revert "Section Two Text change"
This reverts commit c27e8a36b2.
2024-08-21 11:31:55 -04:00
tokslaw c27e8a36b2 Section Two Text change 2024-08-21 11:13:31 -04:00
ameye 252bdeef67 Merge branch 'home-image-update' of WrenchBoard/WrenchBoardMainSite2025 into master 2024-08-19 19:57:47 +00:00
victorAnumudu 278254809e home image updated 2024-08-19 17:39:22 +01:00
ameye f0ff5657c3 Merge branch 'font-increase' of WrenchBoard/WrenchBoardMainSite2025 into master 2024-08-19 14:56:09 +00:00
victorAnumudu ac44c5b0a2 font size incresed 2024-08-19 15:37:16 +01:00
CHIEFSOFT\ameye 415aa1e369 fix comment 2024-08-19 09:36:41 -04:00
CHIEFSOFT\ameye 174e2b992e remove section 2024-08-19 08:17:59 -04:00
ameye cf7ccf4eb1 Merge branch 'home-slider' of WrenchBoard/WrenchBoardMainSite2025 into master 2024-08-18 11:48:55 +00:00
victorAnumudu 3258f97bdc slider missing component added 2024-08-18 07:43:58 +01:00
CHIEFSOFT\ameye 8a75eb4970 correct docker file 2024-08-17 22:40:15 -04:00
ameye 6c213fe6f8 Merge branch 'use-case-error-fix' of WrenchBoard/WrenchBoardMainSite2025 into master 2024-08-16 17:28:46 +00:00
victorAnumudu 5c4980ddad bug fixed 2024-08-16 18:25:42 +01:00
ameye 0c60c31371 Merge branch 'bg-removal' of WrenchBoard/WrenchBoardMainSite2025 into master 2024-08-16 15:40:10 +00:00
victorAnumudu 9133261a8c bg removed 2024-08-16 16:37:50 +01:00
ameye 789cb5d365 Merge branch 'ai-assist' of WrenchBoard/WrenchBoardMainSite2025 into master 2024-08-16 12:51:56 +00:00
victorAnumudu cf4118f5bf ai assist added 2024-08-16 13:36:53 +01:00
ameye 46f0356e71 Merge branch 'font-issue' of WrenchBoard/WrenchBoardMainSite2025 into master 2024-08-16 11:25:50 +00:00
victorAnumudu b68d6ca6bb font fixed 2024-08-16 06:39:38 +01:00
ameye 6225b53ed1 Merge branch 'home-icons' of WrenchBoard/WrenchBoardMainSite2025 into master 2024-08-16 04:40:30 +00:00
victorAnumudu 8efb07da7a icons added 2024-08-15 19:24:40 +01:00
CHIEFSOFT\ameye fd2ee5da6d Removed reference 2024-08-13 09:10:45 -04:00
CHIEFSOFT\ameye 77a98e4924 removed file 2024-08-13 09:06:07 -04:00
CHIEFSOFT\ameye 102dfb2a80 removed package 2024-08-13 08:58:00 -04:00
CHIEFSOFT\ameye b599687fea Removed new section 2024-08-13 08:24:23 -04:00
CHIEFSOFT\ameye 9b4932ff9f pakage lock 2024-08-12 10:53:24 -04:00
CHIEFSOFT\ameye 63e4282ca5 image comment removed 2024-08-12 10:29:57 -04:00
CHIEFSOFT\ameye 56a9a1ba90 image commented 2024-08-12 10:26:03 -04:00
CHIEFSOFT\ameye f253e40073 npm i caniuse-lite 2024-08-12 10:05:39 -04:00
CHIEFSOFT\ameye d4db5e6a77 react-simply-carousel": "^9.1.4" 2024-08-12 09:06:08 -04:00
ameye 959a42ae32 Merge branch 'missing-com-started' of WrenchBoard/WrenchBoardMainSite2025 into master 2024-08-12 12:57:52 +00:00
66 changed files with 1196 additions and 227 deletions
+1
View File
@@ -13,6 +13,7 @@ NEXT_PUBLIC_APPLE_APP='https://itunes.apple.com/us/app/wrenchboard/id1435718367?
NEXT_PUBLIC_FACEBOOK_LINK='https://www.facebook.com/wrenchboard'
NEXT_PUBLIC_TWITTER_LINK='https://twitter.com/wrenchboard/'
NEXT_PUBLIC_LINKEDIN_LINK="https://www.linkedin.com/company/wrenchboard/"
NEXT_PUBLIC_YOUTUBE_LINK="https://www.youtube.com/@WrenchBoard/"
NEXT_PUBLIC_SUPPORT_EMAIL='support@wrenchboard.com'
NEXT_PUBLIC_SUPPORT_PHONE='404 855-7966'
NEXT_PUBLIC_SUPPORT_PHONE_NG='(+420) 336 476 328'
+2 -2
View File
@@ -1,8 +1,8 @@
APP_PORT=9081
ESLINT_NO_DEV_ERRORS=true
NEXT_PUBLIC_AUX_ENDPOINT="https://apigate.lotus.g1.wrenchboard.com/en/wrench/api/v1"
NEXT_PUBLIC_USERS_ENDPOINT="https://apigate.lotus.g1.wrenchboard.com/en/wrench/api/v1"
NEXT_PUBLIC_AUX_ENDPOINT="https://apigate.nebula.g1.wrenchboard.com/en/wrench/api/v1"
NEXT_PUBLIC_USERS_ENDPOINT="https://apigate.nebula.g1.wrenchboard.com/en/wrench/api/v1"
NEXT_PUBLIC_SITE_NAME='WrenchBoard'
NEXT_PUBLIC_DASH_URL='https://users.wrenchboard.com'
+145
View File
@@ -0,0 +1,145 @@
"use client"
import React, {useState} from 'react'
import Carousel from 'react-simply-carousel';
import Image from 'next/image'
export default function FeaturedScreenTwo() {
const [activeSlide, setActiveSlide] = useState(0);
const handleSlideIndexChange = () => {
setActiveSlideIndex(2)
}
return (
<div className='carousel pt-5'>
<Carousel
activeSlideIndex={activeSlide}
onRequestChange={setActiveSlide}
itemsToShow={1}
itemsToScroll={1}
infinite={true}
autoplay={true}
// delay={3000}
autoplayDelay={5000}
speed={3000}
easing="linear"
centerMode
preventScrollOnSwipe
swipeTreshold={60}
updateOnItemClick={true}
activeSlideProps={{
style: {
transform: 'scale(1)'
}
}}
containerProps={{
style: {
width: "100%",
justifyContent: "space-between",
userSelect: "none"
}
}}
forwardBtnProps={{
//here you can also pass className, or any other button element attributes
style: {
alignSelf: 'center',
background: 'black',
border: 'none',
borderRadius: '50%',
color: 'white',
cursor: 'pointer',
fontSize: '20px',
height: 30,
lineHeight: 1,
textAlign: 'center',
width: 30,
display: 'none'
},
children: <span>{`>`}</span>,
}}
backwardBtnProps={{
//here you can also pass className, or any other button element attributes
style: {
alignSelf: 'center',
background: 'black',
border: 'none',
borderRadius: '50%',
color: 'white',
cursor: 'pointer',
fontSize: '20px',
height: 30,
lineHeight: 1,
textAlign: 'center',
width: 30,
display: 'none'
},
children: <span>{`<`}</span>,
}}
dotsNav={{
show: true,
itemBtnProps: {
style: {
height: 16,
width: 16,
borderRadius: "50%",
border: 0
}
},
activeItemBtnProps: {
style: {
height: 16,
width: 16,
borderRadius: "50%",
border: 0,
background: "black"
}
}
}}
responsiveProps={[
{
itemsToShow: 1,
itemsToScroll: 1,
minWidth: 0,
},
{
itemsToShow: 3,
itemsToScroll: 1,
minWidth: 568,
},
{
itemsToShow: 5,
itemsToScroll: 1,
minWidth: 992,
},
{
itemsToShow: 7,
itemsToScroll: 1,
minWidth: 1440,
},
]}
>
{/* here you can also pass any other element attributes. Also, you can use your custom components as slides */}
<div className='slider' style={{ background: 'transparent' }}>
<img src={'/assets/images/slider/app_sliders/screen_1.png'} alt="image" />
</div>
<div className='slider' style={{ background: 'transparent' }}>
<img src={'/assets/images/slider/app_sliders/screen_2.png'} alt="image" />
</div>
<div className='slider' style={{ background: 'transparent' }}>
<img src={'/assets/images/slider/app_sliders/screen_3.png'} alt="image" />
</div>
<div className='slider' style={{ background: 'transparent' }}>
<img src={'/assets/images/slider/app_sliders/screen_6.png'} alt="image" />
</div>
<div className='slider' style={{ background: 'transparent' }}>
<img src={'/assets/images/slider/app_sliders/screen_4.png'} alt="image" />
</div>
<div className='slider' style={{ background: 'transparent' }}>
<img src={'/assets/images/slider/app_sliders/screen_7.png'} alt="image" />
</div>
<div className='slider' style={{ background: 'transparent' }}>
<img src={'/assets/images/slider/app_sliders/screen_5.png'} alt="image" />
</div>
</Carousel>
</div>
);
}
+40 -24
View File
@@ -62,7 +62,7 @@ h4,
h5,
h6 {
font-family: "Roboto", sans-serif;
font-weight: 900;
font-weight: 900 !important;
color: #0e1133;
margin: 0px;
}
@@ -2046,7 +2046,7 @@ p {
right: -30px;
top: 50%;
transform: translateY(-50%);
box-shadow: 0px 30px 70px 0px rgba(68, 1, 15, 0.2);
/* box-shadow: 0px 30px 70px 0px rgba(68, 1, 15, 0.2); */
}
.appie-hero-thumb::before {
position: absolute;
@@ -2859,7 +2859,7 @@ p {
.appie-features-tabs-btn .nav a {
border-right: 3px solid #e8eaef;
border-radius: 0;
font-size: 15px;
font-size: 18px;
font-weight: 500;
color: #505056;
}
@@ -6809,6 +6809,31 @@ blockquote cite {
border-color: #db0f30;
}
.refer-container a {
position: relative;
padding-left: 12px;
}
.refer-container a::before{
content: "■";
position: absolute;
top: 50%;
transform: translateY(-50%);
left: 0px;
font-size: 12px;
}
.refer-container a {
border: none;
color: #505056;
margin-top: 20px;
}
.refer-container a:hover {
color: #4687ba;
background-color: transparent;
border: none;
}
/*===========================
12.APPIE COUNTER css
===========================*/
@@ -8641,36 +8666,27 @@ LND PAGE STYLE STARTS HERE
/* -----------Interface_Section-Css-Start FOR HOME IMAGE SLIDERS ----------------- */
/* interface wraper */
.interface_section .screen_slider {
/* .interface_section .screen_slider {
margin-top: 35px;
/* min-height: 520px; */
min-height: 520px;
display: flex;
align-items: center;
} */
.carousel-container{
padding: 120px 0px 50px;
}
/* interface images */
.interface_section .owl-item .screen_frame_img img {
.react-multi-carousel, .slick-slide{
transform: scale(.9);
/* border: 2px solid #000; */
border-radius: 20px;
transition: 1s all;
transition: all 2s;
/* border: 2px solid #000;
margin: 0 auto;
height: 520px;
width: auto;
width: auto; */
}
.interface_section .owl-item.center .screen_frame_img img {
.react-multi-carousel-item--active, .slick-center{
transform: scale(1);
/* border: 3px solid #000; */
/* padding: 5px; */
transition: all 2s;
}
.carousel .slider {
height: auto !important;
width: 300px !important;
transform: scale(.9);
}
.carousel div {
gap: 5px !important;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 64 64" id="reward"><defs><linearGradient id="b" x1="11.249" x2="57.751" y1="24.596" y2="24.596" gradientUnits="userSpaceOnUse"><stop offset=".102" stop-color="#f8d751"></stop><stop offset=".996" stop-color="#f5aa42"></stop></linearGradient><linearGradient id="a" x1="55.079" x2="40.704" y1="58.21" y2="37.085" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#f8d751"></stop><stop offset=".505" stop-color="#f49500"></stop><stop offset=".991" stop-color="#f25d00"></stop></linearGradient><linearGradient id="c" x1="15.235" x2="24.485" y1="57.382" y2="39.632" xlink:href="#a"></linearGradient><linearGradient id="d" x1="19.567" x2="49.434" y1="24.59" y2="24.59" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff"></stop><stop offset="1" stop-color="#f1f2f2"></stop></linearGradient></defs><path fill="url(#b)" d="M48.846,39.04l-3.411.6-3.752,7.07-.711-.35L34.5,43.193l-7.183,3.514-.093-.175-3.659-6.895-4.72-.824-3.154-.557,1.124-7.915L11.249,24.59l5.566-5.75-1.124-7.915,7.874-1.382,3.752-7.059,7.183,3.5,7.183-3.5,3.752,7.059,7.874,1.382L52.185,18.84l5.566,5.75-5.566,5.751,1.124,7.915Z"></path><polygon fill="url(#a)" points="41.683 46.707 45.435 39.637 48.846 39.04 59.688 55.777 53.329 55.55 50.238 61.105 40.921 46.47 40.972 46.357 41.683 46.707"></polygon><polygon fill="url(#c)" points="23.565 39.637 27.224 46.532 18.711 62.012 15.671 56.426 9.312 56.591 18.763 39.256 18.845 38.813 23.565 39.637"></polygon><circle cx="34.5" cy="24.59" r="14.934" fill="url(#d)"></circle></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 128 128" viewBox="0 0 128 128" id="task"><g><circle cx="64" cy="64" r="63.5" fill="#FFD05B"></circle><path fill="#FFF" d="M47.2,22.7v10.3c0,3.4-2.8,6.2-6.2,6.2H30.7v59.8c0,3.4,2.8,6.2,6.2,6.2h54.2c3.4,0,6.2-2.8,6.2-6.2V28.9 c0-3.4-2.8-6.2-6.2-6.2H47.2z"></path><path fill="#E6E9EE" d="M47.2,22.7L30.7,39.3H41c3.4,0,6.2-2.8,6.2-6.2V22.7z"></path><g><path fill="#84DBFF" d="M47.4 47.3h-8.3c-.5 0-1 .4-1 1v8.3c0 .5.4 1 1 1h8.3c.5 0 1-.4 1-1v-8.3C48.4 47.8 47.9 47.3 47.4 47.3zM46.4 55.6h-6.3v-6.3h6.3V55.6zM47.4 64.7h-8.3c-.5 0-1 .4-1 1V74c0 .5.4 1 1 1h8.3c.5 0 1-.4 1-1v-8.3C48.4 65.2 47.9 64.7 47.4 64.7zM46.4 73h-6.3v-6.3h6.3V73zM47.4 82.1h-8.3c-.5 0-1 .4-1 1v8.3c0 .5.4 1 1 1h8.3c.5 0 1-.4 1-1v-8.3C48.4 82.6 47.9 82.1 47.4 82.1zM46.4 90.4h-6.3v-6.3h6.3V90.4z"></path></g><circle cx="82.1" cy="69.4" r="21.1" fill="#FF7058"></circle><g><path fill="#FFF" d="M78.8,81.1c-0.6-0.1-1.2-0.5-1.6-1l-5-6.5c-0.9-1.1-0.7-2.8,0.5-3.7c1.1-0.9,2.8-0.7,3.7,0.5l2.8,3.6 L88.8,60c0.8-1.2,2.4-1.5,3.6-0.7c1.2,0.8,1.5,2.5,0.7,3.6L81.5,80c-0.5,0.7-1.3,1.1-2.1,1.1C79.2,81.2,79,81.2,78.8,81.1z"></path></g></g></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

+44
View File
@@ -0,0 +1,44 @@
"use client";
import React, { useLayoutEffect, useState } from 'react';
export default function AcceptCookies() {
// Safe cookie getter
function getCookie(name) {
if (typeof document === 'undefined') return null; // SSR safety
const value = `; ${document.cookie}`;
const parts = value.split(`; ${name}=`);
if (parts.length === 2) return parts.pop().split(';').shift();
return null;
}
const [cookies, setCookies] = useState(true); // Start as true
const acceptCookies = () => {
document.cookie = `use_cookies=${encodeURIComponent('true')}; path=/; max-age=31536000`; // 1 year
setCookies(true);
};
useLayoutEffect(()=>{
const useCookies = getCookie('use_cookies');
if (useCookies && decodeURIComponent(useCookies) === 'true') {
setCookies(true);
}else{
setCookies(false)
}
},[])
return (
<>
{cookies ? <></> : (
<div className={`${cookies ? 'slide-down' : 'slide-up'} cookies-wrapper position-fixed d-lg-flex justify-content-center align-items-center gap-5 p-2`}>
<p className="m-0">
This website uses cookies to provide you the best experience possible, as well as for tracking performance and marketing purposes. You can check our privacy policy for more information. By clicking &#x275B;&#x275B;Confirm&#x275C;&#x275C; or by continuing to use our website, you consent to our use of cookies.
</p>
<button onClick={acceptCookies} className="px-5 py-2">
Accept
</button>
</div>
)}
</>
);
}
+20 -17
View File
@@ -1,9 +1,10 @@
import React from 'react';
import thumb5 from '../assets/images/about-thumb-5.png';
import cardImg from '../assets/images/home/wrench-card-only.png'
// import bg from '../assets/images/background-bg.jpg'
import Image from 'next/image';
import cardImg from '../assets/images/home/wrench-card-only.png'
import wrenchAgent from '../assets/images/home/wrench-agent.png'
// import bg from '../assets/images/background-bg.jpg'
function AfterHero() {
return (
<>
@@ -29,7 +30,7 @@ function AfterHero() {
Reward Accomplishments
</h3>
<p>
Set goals, tasks, or anything that motivates or needs to be done and reward completion. WrenchBoard is the platform to plan rewards off pick your nose and blow
On WrenchBoard, set goals, tasks, or anything else that motivates or needs to be done, and reward completion. WrenchBoard is the platform for planning rewards, engaging, and connecting with family.
</p>
<div className=''>
<a className="mb-5 mb-md-0 main-btn" href={process.env.NEXT_PUBLIC_DASH_URL_LOGIN}>
@@ -51,24 +52,26 @@ function AfterHero() {
</div>
<div className="col-lg-5">
<div className='appie-about-container'>
<div className='row appie-about-8-box'>
<div className='h-100 row appie-about-8-box'>
<div className="col-12 col-md-6">
<h3 className="title">
Assign Faster with <br />
wrenchAgent
</h3>
<p>
Ask our &#x275B;&#x275B;<span className=''>wrench</span><span className=''>Agent</span>&#x275C;&#x275C; Generative AI to assist
</p>
<div className=''>
<a className="mb-5 mb-md-0 main-btn" href={process.env.NEXT_PUBLIC_DASH_URL_LOGIN}>
Learn More <i className="fal fa-arrow-right" />
</a>
<div className='h-100 d-flex flex-column justify-content-between'>
<h3 className="title">
Assign Faster with <br />
wrenchAgent
</h3>
<p>
Ask our &#x275B;&#x275B;<span className=''>wrench</span><span className=''>Agent</span>&#x275C;&#x275C; Generative AI to assist
</p>
<div className=''>
<a className="mb-5 mb-md-0 main-btn" href={process.env.NEXT_PUBLIC_DASH_URL_LOGIN}>
Learn More <i className="fal fa-arrow-right" />
</a>
</div>
</div>
</div>
<div className="col-12 col-md-6">
<Image
src={thumb5}
src={wrenchAgent}
className='w-100 h-100'
width={'100%'}
height={'100%'}
+58 -120
View File
@@ -1,145 +1,83 @@
"use client"
import React, {useState} from 'react'
import Carousel from 'react-simply-carousel';
// NOTE React-Slick and slick-carousel goes together. DO install both
import React from 'react';
import Slider from 'react-slick';
import 'slick-carousel/slick/slick.css';
import 'slick-carousel/slick/slick-theme.css';
import Image from 'next/image'
export default function FeaturedScreenTwo() {
const [activeSlide, setActiveSlide] = useState(0);
const handleSlideIndexChange = () => {
setActiveSlideIndex(2)
}
const settings = {
dots: true,
autoplay: true,
infinite: true,
centerMode: true,
className: 'center',
centerPadding: '60px',
slidesToShow: 5,
slidesToScroll: 1,
speed: 4000,
// autoplaySpeed: 2000,
cssEase: "linear",
responsive: [
{
breakpoint: 1024,
settings: {
slidesToShow: 5,
slidesToScroll: 1,
// initialSlide: 1,
// infinite: true,
// dots: true,
},
},
{
breakpoint: 600,
settings: {
slidesToShow: 3,
slidesToScroll: 1,
},
},
{
breakpoint: 480,
settings: {
slidesToShow: 1,
slidesToScroll: 1,
},
},
],
};
return (
<div className='carousel pt-5'>
<Carousel
activeSlideIndex={activeSlide}
onRequestChange={setActiveSlide}
itemsToShow={1}
itemsToScroll={1}
infinite={true}
autoplay={true}
// delay={3000}
autoplayDelay={5000}
speed={3000}
easing="linear"
centerMode
preventScrollOnSwipe
swipeTreshold={60}
updateOnItemClick={true}
activeSlideProps={{
style: {
transform: 'scale(1)'
}
}}
containerProps={{
style: {
width: "100%",
justifyContent: "space-between",
userSelect: "none"
}
}}
forwardBtnProps={{
//here you can also pass className, or any other button element attributes
style: {
alignSelf: 'center',
background: 'black',
border: 'none',
borderRadius: '50%',
color: 'white',
cursor: 'pointer',
fontSize: '20px',
height: 30,
lineHeight: 1,
textAlign: 'center',
width: 30,
display: 'none'
},
children: <span>{`>`}</span>,
}}
backwardBtnProps={{
//here you can also pass className, or any other button element attributes
style: {
alignSelf: 'center',
background: 'black',
border: 'none',
borderRadius: '50%',
color: 'white',
cursor: 'pointer',
fontSize: '20px',
height: 30,
lineHeight: 1,
textAlign: 'center',
width: 30,
display: 'none'
},
children: <span>{`<`}</span>,
}}
dotsNav={{
show: true,
itemBtnProps: {
style: {
height: 16,
width: 16,
borderRadius: "50%",
border: 0
}
},
activeItemBtnProps: {
style: {
height: 16,
width: 16,
borderRadius: "50%",
border: 0,
background: "black"
}
}
}}
responsiveProps={[
{
itemsToShow: 1,
itemsToScroll: 1,
minWidth: 0,
},
{
itemsToShow: 3,
itemsToScroll: 1,
minWidth: 568,
},
{
itemsToShow: 5,
itemsToScroll: 1,
minWidth: 992,
},
{
itemsToShow: 7,
itemsToScroll: 1,
minWidth: 1440,
},
]}
<div className='carousel-container'>
<Slider
{...settings}
>
{/* here you can also pass any other element attributes. Also, you can use your custom components as slides */}
<div className='slider' style={{ background: 'transparent' }}>
<div className='slider-img-con'>
<img src={'/assets/images/slider/app_sliders/screen_1.png'} alt="image" />
</div>
<div className='slider' style={{ background: 'transparent' }}>
<div className='slider-img-con'>
<img src={'/assets/images/slider/app_sliders/screen_2.png'} alt="image" />
</div>
<div className='slider' style={{ background: 'transparent' }}>
<div className='slider-img-con'>
<img src={'/assets/images/slider/app_sliders/screen_3.png'} alt="image" />
</div>
<div className='slider' style={{ background: 'transparent' }}>
<div className='slider-img-con'>
<img src={'/assets/images/slider/app_sliders/screen_6.png'} alt="image" />
</div>
<div className='slider' style={{ background: 'transparent' }}>
<div className='slider-img-con'>
<img src={'/assets/images/slider/app_sliders/screen_4.png'} alt="image" />
</div>
<div className='slider' style={{ background: 'transparent' }}>
<div className='slider-img-con'>
<img src={'/assets/images/slider/app_sliders/screen_7.png'} alt="image" />
</div>
<div className='slider' style={{ background: 'transparent' }}>
<div className='slider-img-con'>
<img src={'/assets/images/slider/app_sliders/screen_5.png'} alt="image" />
</div>
</Carousel>
</Slider>
</div>
);
}
+34 -9
View File
@@ -31,21 +31,25 @@ function FooterHomeOne({ className }) {
<Link href="/service">
Read More <i className="fal fa-arrow-right" />
</Link>
<div className="social mt-30">
{/* <div className="social mt-30">
<ul>
<li>
<a href={site.facebook_link}>
<i className="fab fa-facebook-f" />
<a target='_blank' href={site.facebook_link}>
<i className="fab fa-facebook-f"/>
</a>
</li>
<li>
<a href={process.env.NEXT_PUBLIC_TWITTER_LINK}>
{/* <i className="fab fa-twitter" /> */}
<a target='_blank' href={process.env.NEXT_PUBLIC_TWITTER_LINK}>
<i className="fab fa-x-twitter"></i>
</a>
</li>
<li>
<a target='_blank' className="you" href={process.env.NEXT_PUBLIC_YOUTUBE_LINK}>
<i className="fab fa-youtube"></i>
</a>
</li>
</ul>
</div>
</div> */}
</div>
</div>
<div className="col-lg-2 col-md-6">
@@ -79,7 +83,7 @@ function FooterHomeOne({ className }) {
<Link href="/contact">Contact</Link>
</li>
<li>
<Link href="/faq">Faqs</Link>
<Link href="/faq">FAQs</Link>
</li>
<li>
<a href="https://blog.wrenchboard.com/resources/">Resources</a>
@@ -102,7 +106,7 @@ function FooterHomeOne({ className }) {
<i className="fal fa-envelope" /> {site.support_email}
</a>
</li>
<li>
{/* <li>
<a href="#">
<i className="fal fa-phone" /> 404-855-7966
</a>
@@ -111,9 +115,30 @@ function FooterHomeOne({ className }) {
<a href="#">
<i className="fal fa-map-marker-alt" />Atlanta, GA 30339
</a>
</li>
</li> */}
</ul>
</div>
<div className='footer-about-widget'>
<div className="social mt-30">
<ul>
<li>
<a target='_blank' href={site.facebook_link}>
<i className="fab fa-facebook-f"/>
</a>
</li>
<li>
<a target='_blank' href={process.env.NEXT_PUBLIC_TWITTER_LINK}>
<i className="fab fa-x-twitter"></i>
</a>
</li>
<li>
<a target='_blank' className="you" href={process.env.NEXT_PUBLIC_YOUTUBE_LINK}>
<i className="fab fa-youtube"></i>
</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div className="row">
+5 -4
View File
@@ -3,6 +3,7 @@ import React from 'react';
import Image from 'next/image'
import heroThumbTwo from '../assets/images/app-pic.png';
import AI from '../assets/images/home/ai-assisted.png'
import CustomSlider from './customSlider/CustomSlider'
@@ -32,7 +33,7 @@ function HeroHomeOne() {
Turn Chores into Exciting Challenges and Earn <span className='earn-rewards px-2'>Rewards!</span>
</h1>
<p>Your place to set family goals and reward achievements. Find tasks to earn from, or build a task portfolio and find others to perform tasks for you.</p>
<ul className='d-flex justify-content-center justify-content-lg-start'>
<ul className='d-sm-flex justify-content-center justify-content-lg-start'>
<li className=''>
<a className="item-2" target='_blank' href={process.env.NEXT_PUBLIC_APPLE_APP}>
<i className="fab fa-apple"></i>
@@ -74,9 +75,9 @@ function HeroHomeOne() {
data-wow-delay="600ms"
>
<Image
src={heroThumbTwo}
width={'100%'}
height={'100%'}
src={AI}
width={'150'}
height={'150'}
alt="Image"
/>
</div>
+2 -3
View File
@@ -12,8 +12,7 @@ import AfterHero from './AfterHero';
// import NextAfterHero from './NextAfterHero';
import BackToTop from './BackToTop';
import SelectFeatures from "@/app/components/SelectFeatutes";
import FeaturedScreenTwo from './FeaturedScreenTwo'
// import FeaturedScreenTwo from './FeaturedScreenTwo'
@@ -28,7 +27,7 @@ function HomeOne() {
{/*<ServicesHomeOne />*/}
<TrafficHomeOne />
{/*<TrafficHomeTwo />*/}
<FeaturedScreenTwo />
{/*<FeaturedScreenTwo />*/}
<BlogHomeOne />
<FooterHomeOne />
<BackToTop className='' />
+14 -10
View File
@@ -1,11 +1,15 @@
"use client"
import React, { useState } from 'react';
import Image from 'next/image';
//import { Link } from 'react-router-dom';
import thumb from '../assets/images/features-thumb-11.png';
import shapeSix from '../assets/images/shape/shape-6.png';
import shapeSeven from '../assets/images/shape/shape-7.png';
import shapeEight from '../assets/images/shape/shape-8.png';
import Image from 'next/image';
import rewardIcon from '../assets/images/home/circular-reward.png'
import walletIcon from '../assets/images/home/circular-wallet.png'
import taskIcon from '../assets/images/home/circular-task.png'
import familyIcon from '../assets/images/home/circular-family.png'
function SelectFeatures({ className }) {
const [tab, setTab] = useState('setting');
const handleClick = (e, value) => {
@@ -35,7 +39,7 @@ function SelectFeatures({ className }) {
aria-controls="v-pills-home"
aria-selected="true"
>
<i className="fas fa-cog" /> Reward achievement
<span className={`p-1 rounded-pill`}><Image src={rewardIcon} height='25' width='25' /></span> Reward achievement
</a>
<a
onClick={(e) => handleClick(e, 'report')}
@@ -47,7 +51,7 @@ function SelectFeatures({ className }) {
aria-controls="v-pills-profile"
aria-selected="false"
>
<i className="fas fa-exclamation-triangle" /> Assign tasks or chores
<span className={`p-1 rounded-pill`}><Image src={taskIcon} height='25' width='25' /></span> Assign tasks or chores
</a>
<a
onClick={(e) => handleClick(e, 'notice')}
@@ -59,7 +63,7 @@ function SelectFeatures({ className }) {
aria-controls="v-pills-messages"
aria-selected="false"
>
<i className="fas fa-bell" /> Family engagement
<span className={`p-1 rounded-pill`}><Image src={familyIcon} height='25' width='25' /></span> Family engagement
</a>
<a
onClick={(e) => handleClick(e, 'app')}
@@ -71,7 +75,7 @@ function SelectFeatures({ className }) {
aria-controls="v-pills-settings"
aria-selected="false"
>
<i className="fas fa-lock" /> Fund wallets
<span className={`p-1 rounded-pill`}><Image src={walletIcon} height='25' width='25' /></span> Fund wallets
</a>
</div>
</div>
@@ -110,7 +114,7 @@ function SelectFeatures({ className }) {
Reward <br /> Achievement
</h3>
<p>
Reward with points, badges, recognition, or money rewards with easy steps
Reward with points, badges, recognition, or rewards with easy steps
</p>
<a className="main-btn" href="/about-us">
Learn More
@@ -227,7 +231,7 @@ function SelectFeatures({ className }) {
Fund <br /> wallets
</h3>
<p>
Take control and feel secure by creating a virtual or physical card, allocating funds, and managing wallets for your kids. .
Take control and feel secure by creating a virtual or physical card, allocating funds, and managing wallets for your kids.
</p>
<a className="main-btn" href="#">
Learn More
+8 -8
View File
@@ -11,7 +11,7 @@ function TrafficHomeTwo() {
<div className="appie-traffic-title">
<h3 className="title">Family Connect</h3>
<p>
All you need for a family to get moving with rewards and more. Plan activities and booster family interactions.
Looking for ways to keep your family active and engaged? We offer a variety of fun activities, challenges, and rewards to inspire and motivate your loved ones.
</p>
</div>
<div className="row">
@@ -21,7 +21,7 @@ function TrafficHomeTwo() {
<i className="fal fa-check" />
</div>
<h5 className="title">Organize Chores</h5>
<p>Simple one-time tasks to repeated tasks or promise of performance or set goals.</p>
<p>Whether is one-time or reoccuring task, make chores fun and exciting again for kids.</p>
</div>
</div>
<div className="col-lg-6 col-md-6">
@@ -29,8 +29,8 @@ function TrafficHomeTwo() {
<div className="icon">
<i className="fal fa-check" />
</div>
<h5 className="title">Sibling Activities</h5>
<p>Wrenchboard allows family members to create product connections with educational content with reward tools.
<h5 className="title">Challenge Zone</h5>
<p>Discover exciting challenges, rewards, and friendly competition to keep your kids and whole family engaged.
</p>
</div>
</div>
@@ -48,14 +48,14 @@ function TrafficHomeTwo() {
<div className="icon">
<i className="fal fa-check" />
</div>
<h5 className="title">Games & More </h5>
<p>More opportunities to learn with games or the artificial intelligence library and shared material.</p>
<h5 className="title">Play and Learn</h5>
<p>Discover a world of learning opportunities, from games to cutting-edge AI tools and our vast resource library.</p>
</div>
</div>
<div className="col-lg-12">
<div className="traffic-btn mt-50">
<a className="main-btn" href="#">
Learn more about what you can do with WrenchBoard <i className="fal fa-arrow-right" />
<a className="main-btn" href={process.env.NEXT_PUBLIC_DASH_URL_LOGIN}>
Join us today and start creating lasting memories together <i className="fal fa-arrow-right" />
</a>
</div>
</div>
+31 -11
View File
@@ -17,19 +17,38 @@ function Forms() {
terms_conditions: false
})
const validForm = formDetails.first_name && formDetails.last_name && formDetails.email && formDetails.phone_number && formDetails.subject && formDetails.message
const handleChange = ({target:{name, value}}) => {
setFormDetails(prev => ({...prev, [name]:value}))
if(name == 'terms_conditions'){
setFormDetails(prev => ({...prev, [name]:!prev.terms_conditions}))
}else{
setFormDetails(prev => ({...prev, [name]:value}))
}
}
const [requestStatus, setRequestStatus] = useState({loading:false, status:false, msg:''})
const validForm = formDetails.first_name && formDetails.last_name && formDetails.email && formDetails.phone_number && formDetails.subject && formDetails.message
function handleSubmit(e) {
e.preventDefault()
const isChecked = formDetails.terms_conditions
setRequestStatus({loading:true, status:false, msg:''})
if(!validForm){
setRequestStatus({loading:false, status:false, msg:'please, fill all fields'})
setRequestStatus({loading:false, status:false, msg:'Please, fill all fields'})
setTimeout(()=>{
setRequestStatus({loading:false, status:false, msg:''})
},3000)
return
}
if(!(/^\d{7,15}$/.test(formDetails.phone_number))){
setRequestStatus({loading:false, status:false, msg:'Please, enter a valid phone number'})
setTimeout(()=>{
setRequestStatus({loading:false, status:false, msg:''})
},3000)
return
}
if(!isChecked){
setRequestStatus({loading:false, status:false, msg:'Please, Accept Terms & Conditions'})
setTimeout(()=>{
setRequestStatus({loading:false, status:false, msg:''})
},3000)
@@ -79,7 +98,7 @@ function Forms() {
<div className="contact--info-area">
<h3>Get in touch</h3>
<p>Looking for help? Fill the form and start a new discussion.</p>
<div className="single-info">
{/* <div className="single-info">
<h5>Headquaters</h5>
<p>
<i className="fal fa-home"></i>
@@ -93,7 +112,7 @@ function Forms() {
{process.env.NEXT_PUBLIC_SUPPORT_PHONE}
<br />
</p>
</div>
</div> */}
<div className="single-info">
<h5>Support</h5>
<p>
@@ -135,14 +154,14 @@ function Forms() {
type="email"
name="email"
placeholder="Email Address"
maxLength={35}
maxLength={55}
onChange={handleChange}
value={formDetails.email}
/>
</div>
<div className="col-md-6">
<input
type="number"
type="text"
name="phone_number"
placeholder="Phone Number"
maxLength={15}
@@ -151,7 +170,7 @@ function Forms() {
/>
</div>
<div className="col-md-12">
<input type="text" name="subject" placeholder="Subject" maxLength={35} value={formDetails.subject} onChange={handleChange} />
<input type="text" name="subject" placeholder="Subject" maxLength={150} value={formDetails.subject} onChange={handleChange} />
</div>
<div className="col-md-12">
<textarea
@@ -159,6 +178,7 @@ function Forms() {
placeholder="How can we help?"
onChange={handleChange}
value={formDetails.message}
maxLength={350}
></textarea>
</div>
<div className="col-md-6">
+36
View File
@@ -100,6 +100,42 @@ a {
text-decoration: none;
}
/* ACCEPT COOKIE SLIDE UP EFFECT */
.cookies-wrapper{
width: 90%;
left: 50%;
transform: translateX(-50%);
background-color: white;
box-shadow: 0px 0px 1px black;
z-index: 999;
}
.slide-up {
animation: slideup 1s linear forwards;
}
.slide-down {
animation: slidedown 1s linear forwards;
}
@keyframes slideup {
0%{bottom: -50%;}
100%{bottom: 0;}
}
@keyframes slidedown {
0%{bottom: 0;}
100%{bottom: -50%; display: none;}
}
@media only screen and (max-width: 992px) {
.cookies-wrapper p, .cookies-wrapper button {
font-size: 14px;
line-height: 20px;
}
}
/* END ACCEPT COOKIE SLIDE UP EFFECT */
@media (prefers-color-scheme: dark) {
html {
color-scheme: dark;
+7 -3
View File
@@ -2,6 +2,7 @@ import type { Metadata } from "next";
import { Inter } from "next/font/google";
import "./globals.css";
import Script from "next/script";
import AcceptCookies from "./components/AcceptCookies";
const inter = Inter({ subsets: ["latin"] });
@@ -31,8 +32,11 @@ export default function RootLayout({
/>
<meta property="og:image" content="%PUBLIC_URL%/favicon-32x32.png" />
<body className={inter.className}>{children}</body>
<Script id='chat-support'>
<body className={inter.className}>
{children}
<AcceptCookies />
</body>
{/* <Script id='chat-support'>
{`
var LHC_API = LHC_API || {};
LHC_API.args = {
@@ -58,7 +62,7 @@ export default function RootLayout({
s.parentNode.insertBefore(po, s);
})();
`}
</Script>
</Script> */}
</html>
);
}
+106
View File
@@ -0,0 +1,106 @@
"use client"
import React from 'react';
import Image from 'next/image';
import { useParams } from 'next/navigation';
import cardImg from '../assets/images/home/wrench-card-only.png'
import wrenchAgent from '../assets/images/home/wrench-agent.png'
import Link from 'next/link';
// import bg from '../assets/images/background-bg.jpg'
function Hero() {
const {refer_link} = useParams()
return (
<>
<section className="appie-about-8-area pt-50 pb-70">
<div className="container">
<div className="row">
<div className="col-lg-12">
<div className="appie-section-title">
<h3 className="appie-title">
{/* We bring everything <br />
that's required to build apps */}
Join WrenchBoard and Start Earning
</h3>
</div>
</div>
</div>
<div className="row">
<div className="col-lg-7 mb-3 mb-lg-0">
<div className='appie-about-container'>
<div className='row appie-about-8-box'>
<div className="col-12 col-md-6">
<h3 className="title">
Get Reward for Accomplishments
</h3>
<p>
On WrenchBoard, set goals, tasks, or anything else that motivates or needs to be done, and reward completion. WrenchBoard is the platform for planning rewards, engaging, and connecting with family.
</p>
<div className=''>
<a className="mb-5 mb-md-0 main-btn" href={`${process.env.NEXT_PUBLIC_DASH_URL}/myrefer/${refer_link}`}>
Get Started <i className="fal fa-arrow-right" />
</a>
</div>
</div>
<div className="col-12 col-md-6">
<Image
src={cardImg}
className='w-100 h-100'
width={'100'}
height={'100'}
alt=""
/>
</div>
</div>
</div>
</div>
<div className="col-lg-5">
<div className='appie-about-container'>
<div className='h-100 row appie-about-8-box'>
<div className="col-12 col-md-6">
<div className='h-100 d-flex flex-column gap-5'>
<h3 className="title">
Learn more...
</h3>
<ul className='refer-container'>
<li>
<Link href="/about-us">About WrenchBoard</Link>
</li>
<li>
<Link href="/use-cases">Use Cases</Link>
</li>
<li>
<Link href="/service">Services</Link>
</li>
<li>
<Link href="/faq">FAQ</Link>
</li>
</ul>
<div className='d-none'>
<a className="mb-5 mb-md-0 main-btn" href={`${process.env.NEXT_PUBLIC_DASH_URL}/myrefer/${refer_link}`}>
Get Started <i className="fal fa-arrow-right" />
</a>
</div>
</div>
</div>
<div className="col-12 col-md-6">
<Image
src={wrenchAgent}
className='w-100 h-auto'
width={'100'}
height={'100'}
alt=""
/>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</>
);
}
export default Hero;
+26
View File
@@ -0,0 +1,26 @@
import React from 'react'
import HomeNav from '../../components/navigation/HomeNav';
import Hero from '../Hero';
import FooterHomeOne from '../../components/FooterHomeOne';
import BackToTop from '../../components/BackToTop';
// must be a better way to centralize the style = TEMPORARY USE
import '../../assets/css/bootstrap.min.css';
import '../../assets/css/custom-animated.css';
import '../../assets/css/default.css';
import '../../assets/css/font-awesome.min.css';
import '../../assets/css/magnific-popup.css';
import '../../assets/css/main.css';
import '../../assets/css/style.css';
export default function page() {
return (
<>
{/* <HomeNav />
<div className='' style={{paddingTop:'100px'}}></div> */}
<Hero />
<FooterHomeOne className={''} />
<BackToTop className='' />
</>
);
}
+1 -1
View File
@@ -20,7 +20,7 @@ function UseCase() {
<div key={index} className="col-12 col-md-6 col-lg-4">
<div className="post-item-1">
{<Image width='auto' height='auto' src={blgImg} alt={i.title} />}
{<Image width='100' height='100' src={blgImg} alt={i.title} />}
<div className="b-post-details">
<h3>
<Link href={process.env.NEXT_PUBLIC_DASH_URL_LOGIN}>
+611 -15
View File
@@ -9,10 +9,14 @@
"version": "0.1.0",
"dependencies": {
"axios": "^1.7.2",
"caniuse-lite": "^1.0.30001651",
"next": "14.2.5",
"react": "^18",
"react-dom": "^18",
"react-router-dom": "^6.25.1"
"react-owl-carousel": "^2.3.3",
"react-router-dom": "^6.25.1",
"react-simply-carousel": "^9.1.4",
"sharp": "^0.33.4"
},
"devDependencies": {
"@types/node": "20.14.14",
@@ -23,6 +27,15 @@
"typescript": "5.5.4"
}
},
"node_modules/@emnapi/runtime": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.2.0.tgz",
"integrity": "sha512-bV21/9LQmcQeCPEg3BDFtvwL6cwiTMksYNWQQ4KOxCZikEGalWtenoZ0wCiukJINlGCIi2KXx01g4FoH/LxpzQ==",
"optional": true,
"dependencies": {
"tslib": "^2.4.0"
}
},
"node_modules/@eslint-community/eslint-utils": {
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
@@ -121,6 +134,437 @@
"dev": true,
"license": "BSD-3-Clause"
},
"node_modules/@img/sharp-darwin-arm64": {
"version": "0.33.4",
"resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.4.tgz",
"integrity": "sha512-p0suNqXufJs9t3RqLBO6vvrgr5OhgbWp76s5gTRvdmxmuv9E1rcaqGUsl3l4mKVmXPkTkTErXediAui4x+8PSA==",
"cpu": [
"arm64"
],
"optional": true,
"os": [
"darwin"
],
"engines": {
"glibc": ">=2.26",
"node": "^18.17.0 || ^20.3.0 || >=21.0.0",
"npm": ">=9.6.5",
"pnpm": ">=7.1.0",
"yarn": ">=3.2.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
},
"optionalDependencies": {
"@img/sharp-libvips-darwin-arm64": "1.0.2"
}
},
"node_modules/@img/sharp-darwin-x64": {
"version": "0.33.4",
"resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.4.tgz",
"integrity": "sha512-0l7yRObwtTi82Z6ebVI2PnHT8EB2NxBgpK2MiKJZJ7cz32R4lxd001ecMhzzsZig3Yv9oclvqqdV93jo9hy+Dw==",
"cpu": [
"x64"
],
"optional": true,
"os": [
"darwin"
],
"engines": {
"glibc": ">=2.26",
"node": "^18.17.0 || ^20.3.0 || >=21.0.0",
"npm": ">=9.6.5",
"pnpm": ">=7.1.0",
"yarn": ">=3.2.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
},
"optionalDependencies": {
"@img/sharp-libvips-darwin-x64": "1.0.2"
}
},
"node_modules/@img/sharp-libvips-darwin-arm64": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.2.tgz",
"integrity": "sha512-tcK/41Rq8IKlSaKRCCAuuY3lDJjQnYIW1UXU1kxcEKrfL8WR7N6+rzNoOxoQRJWTAECuKwgAHnPvqXGN8XfkHA==",
"cpu": [
"arm64"
],
"optional": true,
"os": [
"darwin"
],
"engines": {
"macos": ">=11",
"npm": ">=9.6.5",
"pnpm": ">=7.1.0",
"yarn": ">=3.2.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
}
},
"node_modules/@img/sharp-libvips-darwin-x64": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.2.tgz",
"integrity": "sha512-Ofw+7oaWa0HiiMiKWqqaZbaYV3/UGL2wAPeLuJTx+9cXpCRdvQhCLG0IH8YGwM0yGWGLpsF4Su9vM1o6aer+Fw==",
"cpu": [
"x64"
],
"optional": true,
"os": [
"darwin"
],
"engines": {
"macos": ">=10.13",
"npm": ">=9.6.5",
"pnpm": ">=7.1.0",
"yarn": ">=3.2.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
}
},
"node_modules/@img/sharp-libvips-linux-arm": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.2.tgz",
"integrity": "sha512-iLWCvrKgeFoglQxdEwzu1eQV04o8YeYGFXtfWU26Zr2wWT3q3MTzC+QTCO3ZQfWd3doKHT4Pm2kRmLbupT+sZw==",
"cpu": [
"arm"
],
"optional": true,
"os": [
"linux"
],
"engines": {
"glibc": ">=2.28",
"npm": ">=9.6.5",
"pnpm": ">=7.1.0",
"yarn": ">=3.2.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
}
},
"node_modules/@img/sharp-libvips-linux-arm64": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.2.tgz",
"integrity": "sha512-x7kCt3N00ofFmmkkdshwj3vGPCnmiDh7Gwnd4nUwZln2YjqPxV1NlTyZOvoDWdKQVDL911487HOueBvrpflagw==",
"cpu": [
"arm64"
],
"optional": true,
"os": [
"linux"
],
"engines": {
"glibc": ">=2.26",
"npm": ">=9.6.5",
"pnpm": ">=7.1.0",
"yarn": ">=3.2.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
}
},
"node_modules/@img/sharp-libvips-linux-s390x": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.2.tgz",
"integrity": "sha512-cmhQ1J4qVhfmS6szYW7RT+gLJq9dH2i4maq+qyXayUSn9/3iY2ZeWpbAgSpSVbV2E1JUL2Gg7pwnYQ1h8rQIog==",
"cpu": [
"s390x"
],
"optional": true,
"os": [
"linux"
],
"engines": {
"glibc": ">=2.28",
"npm": ">=9.6.5",
"pnpm": ">=7.1.0",
"yarn": ">=3.2.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
}
},
"node_modules/@img/sharp-libvips-linux-x64": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.2.tgz",
"integrity": "sha512-E441q4Qdb+7yuyiADVi5J+44x8ctlrqn8XgkDTwr4qPJzWkaHwD489iZ4nGDgcuya4iMN3ULV6NwbhRZJ9Z7SQ==",
"cpu": [
"x64"
],
"optional": true,
"os": [
"linux"
],
"engines": {
"glibc": ">=2.26",
"npm": ">=9.6.5",
"pnpm": ">=7.1.0",
"yarn": ">=3.2.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
}
},
"node_modules/@img/sharp-libvips-linuxmusl-arm64": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.2.tgz",
"integrity": "sha512-3CAkndNpYUrlDqkCM5qhksfE+qSIREVpyoeHIU6jd48SJZViAmznoQQLAv4hVXF7xyUB9zf+G++e2v1ABjCbEQ==",
"cpu": [
"arm64"
],
"optional": true,
"os": [
"linux"
],
"engines": {
"musl": ">=1.2.2",
"npm": ">=9.6.5",
"pnpm": ">=7.1.0",
"yarn": ">=3.2.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
}
},
"node_modules/@img/sharp-libvips-linuxmusl-x64": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.2.tgz",
"integrity": "sha512-VI94Q6khIHqHWNOh6LLdm9s2Ry4zdjWJwH56WoiJU7NTeDwyApdZZ8c+SADC8OH98KWNQXnE01UdJ9CSfZvwZw==",
"cpu": [
"x64"
],
"optional": true,
"os": [
"linux"
],
"engines": {
"musl": ">=1.2.2",
"npm": ">=9.6.5",
"pnpm": ">=7.1.0",
"yarn": ">=3.2.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
}
},
"node_modules/@img/sharp-linux-arm": {
"version": "0.33.4",
"resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.4.tgz",
"integrity": "sha512-RUgBD1c0+gCYZGCCe6mMdTiOFS0Zc/XrN0fYd6hISIKcDUbAW5NtSQW9g/powkrXYm6Vzwd6y+fqmExDuCdHNQ==",
"cpu": [
"arm"
],
"optional": true,
"os": [
"linux"
],
"engines": {
"glibc": ">=2.28",
"node": "^18.17.0 || ^20.3.0 || >=21.0.0",
"npm": ">=9.6.5",
"pnpm": ">=7.1.0",
"yarn": ">=3.2.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
},
"optionalDependencies": {
"@img/sharp-libvips-linux-arm": "1.0.2"
}
},
"node_modules/@img/sharp-linux-arm64": {
"version": "0.33.4",
"resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.4.tgz",
"integrity": "sha512-2800clwVg1ZQtxwSoTlHvtm9ObgAax7V6MTAB/hDT945Tfyy3hVkmiHpeLPCKYqYR1Gcmv1uDZ3a4OFwkdBL7Q==",
"cpu": [
"arm64"
],
"optional": true,
"os": [
"linux"
],
"engines": {
"glibc": ">=2.26",
"node": "^18.17.0 || ^20.3.0 || >=21.0.0",
"npm": ">=9.6.5",
"pnpm": ">=7.1.0",
"yarn": ">=3.2.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
},
"optionalDependencies": {
"@img/sharp-libvips-linux-arm64": "1.0.2"
}
},
"node_modules/@img/sharp-linux-s390x": {
"version": "0.33.4",
"resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.4.tgz",
"integrity": "sha512-h3RAL3siQoyzSoH36tUeS0PDmb5wINKGYzcLB5C6DIiAn2F3udeFAum+gj8IbA/82+8RGCTn7XW8WTFnqag4tQ==",
"cpu": [
"s390x"
],
"optional": true,
"os": [
"linux"
],
"engines": {
"glibc": ">=2.31",
"node": "^18.17.0 || ^20.3.0 || >=21.0.0",
"npm": ">=9.6.5",
"pnpm": ">=7.1.0",
"yarn": ">=3.2.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
},
"optionalDependencies": {
"@img/sharp-libvips-linux-s390x": "1.0.2"
}
},
"node_modules/@img/sharp-linux-x64": {
"version": "0.33.4",
"resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.4.tgz",
"integrity": "sha512-GoR++s0XW9DGVi8SUGQ/U4AeIzLdNjHka6jidVwapQ/JebGVQIpi52OdyxCNVRE++n1FCLzjDovJNozif7w/Aw==",
"cpu": [
"x64"
],
"optional": true,
"os": [
"linux"
],
"engines": {
"glibc": ">=2.26",
"node": "^18.17.0 || ^20.3.0 || >=21.0.0",
"npm": ">=9.6.5",
"pnpm": ">=7.1.0",
"yarn": ">=3.2.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
},
"optionalDependencies": {
"@img/sharp-libvips-linux-x64": "1.0.2"
}
},
"node_modules/@img/sharp-linuxmusl-arm64": {
"version": "0.33.4",
"resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.4.tgz",
"integrity": "sha512-nhr1yC3BlVrKDTl6cO12gTpXMl4ITBUZieehFvMntlCXFzH2bvKG76tBL2Y/OqhupZt81pR7R+Q5YhJxW0rGgQ==",
"cpu": [
"arm64"
],
"optional": true,
"os": [
"linux"
],
"engines": {
"musl": ">=1.2.2",
"node": "^18.17.0 || ^20.3.0 || >=21.0.0",
"npm": ">=9.6.5",
"pnpm": ">=7.1.0",
"yarn": ">=3.2.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
},
"optionalDependencies": {
"@img/sharp-libvips-linuxmusl-arm64": "1.0.2"
}
},
"node_modules/@img/sharp-linuxmusl-x64": {
"version": "0.33.4",
"resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.4.tgz",
"integrity": "sha512-uCPTku0zwqDmZEOi4ILyGdmW76tH7dm8kKlOIV1XC5cLyJ71ENAAqarOHQh0RLfpIpbV5KOpXzdU6XkJtS0daw==",
"cpu": [
"x64"
],
"optional": true,
"os": [
"linux"
],
"engines": {
"musl": ">=1.2.2",
"node": "^18.17.0 || ^20.3.0 || >=21.0.0",
"npm": ">=9.6.5",
"pnpm": ">=7.1.0",
"yarn": ">=3.2.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
},
"optionalDependencies": {
"@img/sharp-libvips-linuxmusl-x64": "1.0.2"
}
},
"node_modules/@img/sharp-wasm32": {
"version": "0.33.4",
"resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.4.tgz",
"integrity": "sha512-Bmmauh4sXUsUqkleQahpdNXKvo+wa1V9KhT2pDA4VJGKwnKMJXiSTGphn0gnJrlooda0QxCtXc6RX1XAU6hMnQ==",
"cpu": [
"wasm32"
],
"optional": true,
"dependencies": {
"@emnapi/runtime": "^1.1.1"
},
"engines": {
"node": "^18.17.0 || ^20.3.0 || >=21.0.0",
"npm": ">=9.6.5",
"pnpm": ">=7.1.0",
"yarn": ">=3.2.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
}
},
"node_modules/@img/sharp-win32-ia32": {
"version": "0.33.4",
"resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.4.tgz",
"integrity": "sha512-99SJ91XzUhYHbx7uhK3+9Lf7+LjwMGQZMDlO/E/YVJ7Nc3lyDFZPGhjwiYdctoH2BOzW9+TnfqcaMKt0jHLdqw==",
"cpu": [
"ia32"
],
"optional": true,
"os": [
"win32"
],
"engines": {
"node": "^18.17.0 || ^20.3.0 || >=21.0.0",
"npm": ">=9.6.5",
"pnpm": ">=7.1.0",
"yarn": ">=3.2.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
}
},
"node_modules/@img/sharp-win32-x64": {
"version": "0.33.4",
"resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.4.tgz",
"integrity": "sha512-3QLocdTRVIrFNye5YocZl+KKpYKP+fksi1QhmOArgx7GyhIbQp/WrJRu176jm8IxromS7RIkzMiMINVdBtC8Aw==",
"cpu": [
"x64"
],
"optional": true,
"os": [
"win32"
],
"engines": {
"node": "^18.17.0 || ^20.3.0 || >=21.0.0",
"npm": ">=9.6.5",
"pnpm": ">=7.1.0",
"yarn": ">=3.2.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
}
},
"node_modules/@isaacs/cliui": {
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
@@ -428,14 +872,14 @@
"version": "15.7.12",
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz",
"integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==",
"dev": true,
"devOptional": true,
"license": "MIT"
},
"node_modules/@types/react": {
"version": "18.3.3",
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz",
"integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==",
"dev": true,
"devOptional": true,
"dependencies": {
"@types/prop-types": "*",
"csstype": "^3.0.2"
@@ -974,9 +1418,9 @@
}
},
"node_modules/caniuse-lite": {
"version": "1.0.30001643",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001643.tgz",
"integrity": "sha512-ERgWGNleEilSrHM6iUz/zJNSQTP8Mr21wDWpdgvRwcTXGAq6jMtOUPP4dqFPTdKqZ2wKTdtB+uucZ3MRpAUSmg==",
"version": "1.0.30001651",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz",
"integrity": "sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==",
"funding": [
{
"type": "opencollective",
@@ -990,8 +1434,7 @@
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"license": "CC-BY-4.0"
]
},
"node_modules/chalk": {
"version": "4.1.2",
@@ -1016,11 +1459,22 @@
"integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==",
"license": "MIT"
},
"node_modules/color": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
"integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
"dependencies": {
"color-convert": "^2.0.1",
"color-string": "^1.9.0"
},
"engines": {
"node": ">=12.5.0"
}
},
"node_modules/color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
@@ -1033,9 +1487,17 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true,
"license": "MIT"
},
"node_modules/color-string": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
"integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
"dependencies": {
"color-name": "^1.0.0",
"simple-swizzle": "^0.2.2"
}
},
"node_modules/combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
@@ -1073,7 +1535,7 @@
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
"dev": true,
"devOptional": true,
"license": "MIT"
},
"node_modules/damerau-levenshtein": {
@@ -1239,6 +1701,14 @@
"node": ">=0.4.0"
}
},
"node_modules/detect-libc": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz",
"integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==",
"engines": {
"node": ">=8"
}
},
"node_modules/dir-glob": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
@@ -2546,6 +3016,11 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/is-arrayish": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
"integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
},
"node_modules/is-async-function": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz",
@@ -2961,6 +3436,11 @@
"@pkgjs/parseargs": "^0.11.0"
}
},
"node_modules/jquery": {
"version": "3.7.1",
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz",
"integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg=="
},
"node_modules/js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -3278,7 +3758,6 @@
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -3438,6 +3917,14 @@
"node": ">= 0.8.0"
}
},
"node_modules/owl.carousel": {
"version": "2.3.4",
"resolved": "https://registry.npmjs.org/owl.carousel/-/owl.carousel-2.3.4.tgz",
"integrity": "sha512-JaDss9+feAvEW8KZppPSpllfposEzQiW+Ytt/Xm5t/3CTJ7YVmkh6RkWixoA2yXk2boIwedYxOvrrppIGzru9A==",
"dependencies": {
"jquery": ">=1.8.3"
}
},
"node_modules/p-limit": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
@@ -3618,7 +4105,6 @@
"version": "15.8.1",
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
"integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
"dev": true,
"license": "MIT",
"dependencies": {
"loose-envify": "^1.4.0",
@@ -3691,9 +4177,58 @@
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
"dev": true,
"license": "MIT"
},
"node_modules/react-owl-carousel": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/react-owl-carousel/-/react-owl-carousel-2.3.3.tgz",
"integrity": "sha512-B4TI2EDDtp7IDM8CWzl5Rh/17p1NfMW/QBIbkC18CkiMGCbO9ztY+vAPTN60tp+63V9v/oLqArLjkiQtDGqj/A==",
"dependencies": {
"owl.carousel": "~2.3.4",
"react": "16.14.0",
"react-dom": "16.14.0"
},
"peerDependencies": {
"jquery": ">=1.8.3",
"react": ">=15"
}
},
"node_modules/react-owl-carousel/node_modules/react": {
"version": "16.14.0",
"resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz",
"integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==",
"dependencies": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1",
"prop-types": "^15.6.2"
},
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/react-owl-carousel/node_modules/react-dom": {
"version": "16.14.0",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz",
"integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==",
"dependencies": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1",
"prop-types": "^15.6.2",
"scheduler": "^0.19.1"
},
"peerDependencies": {
"react": "^16.14.0"
}
},
"node_modules/react-owl-carousel/node_modules/scheduler": {
"version": "0.19.1",
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz",
"integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==",
"dependencies": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1"
}
},
"node_modules/react-router": {
"version": "6.25.1",
"resolved": "https://registry.npmjs.org/react-router/-/react-router-6.25.1.tgz",
@@ -3724,6 +4259,21 @@
"react-dom": ">=16.8"
}
},
"node_modules/react-simply-carousel": {
"version": "9.1.4",
"resolved": "https://registry.npmjs.org/react-simply-carousel/-/react-simply-carousel-9.1.4.tgz",
"integrity": "sha512-jeOzIwy9jCQKDoxs4Ld4dMyOikyCDvowgP+t5wSX85npa5eGSmcjpJ12f4YabzDR6BEHQ18+5k3/7MwFOyeFkA==",
"peerDependencies": {
"@types/react": "^16.8 || ^17 || ^18",
"react": "^16.8 || ^17 || ^18",
"react-dom": "^16.8 || ^17 || ^18"
},
"peerDependenciesMeta": {
"@types/react": {
"optional": true
}
}
},
"node_modules/reflect.getprototypeof": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz",
@@ -3927,7 +4477,6 @@
"version": "7.6.3",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
"integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
"dev": true,
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
@@ -3970,6 +4519,45 @@
"node": ">= 0.4"
}
},
"node_modules/sharp": {
"version": "0.33.4",
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.4.tgz",
"integrity": "sha512-7i/dt5kGl7qR4gwPRD2biwD2/SvBn3O04J77XKFgL2OnZtQw+AG9wnuS/csmu80nPRHLYE9E41fyEiG8nhH6/Q==",
"hasInstallScript": true,
"dependencies": {
"color": "^4.2.3",
"detect-libc": "^2.0.3",
"semver": "^7.6.0"
},
"engines": {
"libvips": ">=8.15.2",
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
},
"optionalDependencies": {
"@img/sharp-darwin-arm64": "0.33.4",
"@img/sharp-darwin-x64": "0.33.4",
"@img/sharp-libvips-darwin-arm64": "1.0.2",
"@img/sharp-libvips-darwin-x64": "1.0.2",
"@img/sharp-libvips-linux-arm": "1.0.2",
"@img/sharp-libvips-linux-arm64": "1.0.2",
"@img/sharp-libvips-linux-s390x": "1.0.2",
"@img/sharp-libvips-linux-x64": "1.0.2",
"@img/sharp-libvips-linuxmusl-arm64": "1.0.2",
"@img/sharp-libvips-linuxmusl-x64": "1.0.2",
"@img/sharp-linux-arm": "0.33.4",
"@img/sharp-linux-arm64": "0.33.4",
"@img/sharp-linux-s390x": "0.33.4",
"@img/sharp-linux-x64": "0.33.4",
"@img/sharp-linuxmusl-arm64": "0.33.4",
"@img/sharp-linuxmusl-x64": "0.33.4",
"@img/sharp-wasm32": "0.33.4",
"@img/sharp-win32-ia32": "0.33.4",
"@img/sharp-win32-x64": "0.33.4"
}
},
"node_modules/shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -4025,6 +4613,14 @@
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/simple-swizzle": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
"integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
"dependencies": {
"is-arrayish": "^0.3.1"
}
},
"node_modules/slash": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+1
View File
@@ -10,6 +10,7 @@
},
"dependencies": {
"axios": "^1.7.2",
"caniuse-lite": "^1.0.30001651",
"next": "14.2.5",
"react": "^18",
"react-dom": "^18",
Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 125 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 245 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 270 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB