@notionhive/footers 0.1.0
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.
- package/bin/footers.js +16 -0
- package/category.config.json +7 -0
- package/package.json +24 -0
- package/registry/footer-01.json +6 -0
- package/registry/footer-02.json +9 -0
- package/registry/footer-03.json +9 -0
- package/registry/footer-04.json +9 -0
- package/registry/footer-05.json +9 -0
- package/registry/footer-06.json +7 -0
- package/registry/footer-07.json +9 -0
- package/registry/footer-08.json +9 -0
- package/registry/footer-09.json +9 -0
- package/registry/footer-10.json +9 -0
- package/registry/footer-11.json +7 -0
- package/registry/footer-12.json +9 -0
- package/registry/footer-13.json +9 -0
- package/registry/footer-14.json +9 -0
- package/registry/footer-15.json +9 -0
- package/registry/footer-16.json +9 -0
- package/registry/footer-17.json +9 -0
- package/registry/footer-18.json +9 -0
- package/registry/footer-19.json +9 -0
- package/registry/footer-20.json +9 -0
- package/registry/footer-21.json +9 -0
- package/registry/footer-22.json +9 -0
- package/registry/footer-23.json +9 -0
- package/registry/footer-24.json +9 -0
- package/registry/footer-25.json +9 -0
- package/registry/footer-26.json +9 -0
- package/registry/footer-27.json +9 -0
- package/registry/footer-28.json +9 -0
- package/registry/footer-29.json +6 -0
- package/registry/footer-30.json +6 -0
- package/registry/index.json +263 -0
- package/templates/components/atoms/SafeImage/SafeImage.jsx +101 -0
- package/templates/components/atoms/SafeImage/index.js +1 -0
- package/templates/components/organisms/Footer01/Footer01.jsx +142 -0
- package/templates/components/organisms/Footer01/Footer01.propTypes.js +110 -0
- package/templates/components/organisms/Footer01/index.js +1 -0
- package/templates/components/organisms/Footer02/Footer02.jsx +136 -0
- package/templates/components/organisms/Footer02/Footer02.propTypes.js +112 -0
- package/templates/components/organisms/Footer02/index.js +1 -0
- package/templates/components/organisms/Footer03/Footer03.jsx +162 -0
- package/templates/components/organisms/Footer03/Footer03.propTypes.js +73 -0
- package/templates/components/organisms/Footer03/index.js +1 -0
- package/templates/components/organisms/Footer04/Footer04.jsx +128 -0
- package/templates/components/organisms/Footer04/Footer04.propTypes.js +93 -0
- package/templates/components/organisms/Footer04/index.js +1 -0
- package/templates/components/organisms/Footer05/Footer05.jsx +101 -0
- package/templates/components/organisms/Footer05/Footer05.propTypes.js +42 -0
- package/templates/components/organisms/Footer05/index.js +1 -0
- package/templates/components/organisms/Footer06/Footer06.jsx +170 -0
- package/templates/components/organisms/Footer06/Footer06.propTypes.js +53 -0
- package/templates/components/organisms/Footer06/index.js +1 -0
- package/templates/components/organisms/Footer07/Footer07.jsx +253 -0
- package/templates/components/organisms/Footer07/Footer07.propTypes.js +83 -0
- package/templates/components/organisms/Footer07/index.js +1 -0
- package/templates/components/organisms/Footer08/Footer08.jsx +183 -0
- package/templates/components/organisms/Footer08/Footer08.propTypes.js +92 -0
- package/templates/components/organisms/Footer08/index.js +1 -0
- package/templates/components/organisms/Footer09/Footer09.jsx +199 -0
- package/templates/components/organisms/Footer09/Footer09.propTypes.js +76 -0
- package/templates/components/organisms/Footer09/index.js +1 -0
- package/templates/components/organisms/Footer10/Footer10.jsx +172 -0
- package/templates/components/organisms/Footer10/Footer10.propTypes.js +38 -0
- package/templates/components/organisms/Footer10/index.js +1 -0
- package/templates/components/organisms/Footer11/Footer11.jsx +107 -0
- package/templates/components/organisms/Footer11/Footer11.propTypes.js +64 -0
- package/templates/components/organisms/Footer11/index.js +1 -0
- package/templates/components/organisms/Footer12/Footer12.jsx +122 -0
- package/templates/components/organisms/Footer12/Footer12.propTypes.js +94 -0
- package/templates/components/organisms/Footer12/index.js +1 -0
- package/templates/components/organisms/Footer13/Footer13.jsx +156 -0
- package/templates/components/organisms/Footer13/Footer13.propTypes.js +80 -0
- package/templates/components/organisms/Footer13/index.js +1 -0
- package/templates/components/organisms/Footer14/Footer14.jsx +157 -0
- package/templates/components/organisms/Footer14/Footer14.propTypes.js +60 -0
- package/templates/components/organisms/Footer14/index.js +1 -0
- package/templates/components/organisms/Footer15/Footer15.jsx +184 -0
- package/templates/components/organisms/Footer15/Footer15.propTypes.js +58 -0
- package/templates/components/organisms/Footer15/index.js +1 -0
- package/templates/components/organisms/Footer16/Footer16.jsx +87 -0
- package/templates/components/organisms/Footer16/Footer16.propTypes.js +73 -0
- package/templates/components/organisms/Footer16/index.js +1 -0
- package/templates/components/organisms/Footer17/Footer17.jsx +176 -0
- package/templates/components/organisms/Footer17/Footer17.propTypes.js +117 -0
- package/templates/components/organisms/Footer17/index.js +1 -0
- package/templates/components/organisms/Footer18/Footer18.jsx +236 -0
- package/templates/components/organisms/Footer18/Footer18.propTypes.js +92 -0
- package/templates/components/organisms/Footer18/index.js +1 -0
- package/templates/components/organisms/Footer19/Footer19.jsx +287 -0
- package/templates/components/organisms/Footer19/Footer19.propTypes.js +116 -0
- package/templates/components/organisms/Footer19/index.js +1 -0
- package/templates/components/organisms/Footer20/Footer20.jsx +201 -0
- package/templates/components/organisms/Footer20/Footer20.propTypes.js +70 -0
- package/templates/components/organisms/Footer20/index.js +1 -0
- package/templates/components/organisms/Footer21/Footer21.jsx +134 -0
- package/templates/components/organisms/Footer21/Footer21.propTypes.js +122 -0
- package/templates/components/organisms/Footer21/index.js +1 -0
- package/templates/components/organisms/Footer22/Footer22.jsx +136 -0
- package/templates/components/organisms/Footer22/Footer22.propTypes.js +58 -0
- package/templates/components/organisms/Footer22/index.js +1 -0
- package/templates/components/organisms/Footer23/Footer23.jsx +177 -0
- package/templates/components/organisms/Footer23/Footer23.propTypes.js +97 -0
- package/templates/components/organisms/Footer23/index.js +1 -0
- package/templates/components/organisms/Footer24/Footer24.jsx +192 -0
- package/templates/components/organisms/Footer24/Footer24.propTypes.js +132 -0
- package/templates/components/organisms/Footer24/index.js +1 -0
- package/templates/components/organisms/Footer25/Footer25.jsx +135 -0
- package/templates/components/organisms/Footer25/Footer25.propTypes.js +124 -0
- package/templates/components/organisms/Footer25/index.js +1 -0
- package/templates/components/organisms/Footer26/Footer26.jsx +167 -0
- package/templates/components/organisms/Footer26/Footer26.propTypes.js +54 -0
- package/templates/components/organisms/Footer26/index.js +1 -0
- package/templates/components/organisms/Footer27/Footer27.jsx +171 -0
- package/templates/components/organisms/Footer27/Footer27.propTypes.js +105 -0
- package/templates/components/organisms/Footer27/index.js +1 -0
- package/templates/components/organisms/Footer28/Footer28.jsx +98 -0
- package/templates/components/organisms/Footer28/Footer28.propTypes.js +96 -0
- package/templates/components/organisms/Footer28/index.js +1 -0
- package/templates/components/organisms/Footer29/Footer29.jsx +118 -0
- package/templates/components/organisms/Footer29/Footer29.propTypes.js +68 -0
- package/templates/components/organisms/Footer29/index.js +1 -0
- package/templates/components/organisms/Footer30/Footer30.jsx +92 -0
- package/templates/components/organisms/Footer30/Footer30.propTypes.js +51 -0
- package/templates/components/organisms/Footer30/index.js +1 -0
- package/templates/public/footer/footer02/payment-01.png +0 -0
- package/templates/public/footer/footer02/payment-02.png +0 -0
- package/templates/public/footer/footer02/payment-03.png +0 -0
- package/templates/public/footer/footer02/payment-04.png +0 -0
- package/templates/public/footer/footer02/payment-05.png +0 -0
- package/templates/public/footer/footer02/payment-06.png +0 -0
- package/templates/public/footer/footer02/payment-07.png +0 -0
- package/templates/public/footer/footer02/payment-08.png +0 -0
- package/templates/public/footer/footer02/payment-09.svg +5 -0
- package/templates/public/footer/footer02/payment-10.svg +11 -0
- package/templates/public/footer/footer02/payment-11.svg +22 -0
- package/templates/public/footer/footer02/payment-12.svg +25 -0
- package/templates/public/footer/footer02/payment-13.svg +10 -0
- package/templates/public/footer/footer02/payment-14.svg +36 -0
- package/templates/public/footer/footer02/payment-15.svg +18 -0
- package/templates/public/footer/footer02/payment-sprite-01.png +0 -0
- package/templates/public/footer/footer02/payment-sprite-02.png +0 -0
- package/templates/public/footer/footer02/payment-sprite-03.png +0 -0
- package/templates/public/footer/footer02/payment-sprite-04.png +0 -0
- package/templates/public/footer/footer02/payment-sprite-05.png +0 -0
- package/templates/public/footer/footer02/payment-sprite-06.png +0 -0
- package/templates/public/footer/footer03/logo-mask.png +0 -0
- package/templates/public/footer/footer03/logo.png +0 -0
- package/templates/public/footer/footer04/logo.svg +45 -0
- package/templates/public/footer/footer05/brand-watermark.png +0 -0
- package/templates/public/footer/footer07/logo.png +0 -0
- package/templates/public/footer/footer07/watch-hero.png +0 -0
- package/templates/public/footer/footer07/watch-overlay.png +0 -0
- package/templates/public/footer/footer08/logo.png +0 -0
- package/templates/public/footer/footer08/logo.svg +3 -0
- package/templates/public/footer/footer09/logo.svg +13 -0
- package/templates/public/footer/footer10/hero-image.png +0 -0
- package/templates/public/footer/footer10/hero-mask-download.svg +3 -0
- package/templates/public/footer/footer10/hero-mask.svg +3 -0
- package/templates/public/footer/footer12/logo-icon.svg +3 -0
- package/templates/public/footer/footer12/refugee-logo.png +0 -0
- package/templates/public/footer/footer13/logo.png +0 -0
- package/templates/public/footer/footer14/logo.png +0 -0
- package/templates/public/footer/footer15/logo.svg +19 -0
- package/templates/public/footer/footer16/logo.svg +6 -0
- package/templates/public/footer/footer17/logo-left.svg +11 -0
- package/templates/public/footer/footer17/logo-right.svg +36 -0
- package/templates/public/footer/footer18/logo.png +108 -0
- package/templates/public/footer/footer18/logo.svg +108 -0
- package/templates/public/footer/footer19/logo.png +0 -0
- package/templates/public/footer/footer19/payment-bkash.png +0 -0
- package/templates/public/footer/footer19/payment-mastercard.svg +12 -0
- package/templates/public/footer/footer19/payment-nagad.png +0 -0
- package/templates/public/footer/footer19/payment-nexus.png +0 -0
- package/templates/public/footer/footer19/payment-rocket.png +0 -0
- package/templates/public/footer/footer19/payment-upay.png +0 -0
- package/templates/public/footer/footer19/payment-visa.svg +6 -0
- package/templates/public/footer/footer20/bg.png +0 -0
- package/templates/public/footer/footer20/logo.png +0 -0
- package/templates/public/footer/footer21/logo.png +0 -0
- package/templates/public/footer/footer22/logo-icon.svg +10 -0
- package/templates/public/footer/footer22/logo-name.svg +5 -0
- package/templates/public/footer/footer22/logo-tagline.svg +5 -0
- package/templates/public/footer/footer23/logo-icon.svg +10 -0
- package/templates/public/footer/footer23/logo-name.svg +20 -0
- package/templates/public/footer/footer23/logo-tagline.svg +17 -0
- package/templates/public/footer/footer24/logo.svg +46 -0
- package/templates/public/footer/footer24/map.png +0 -0
- package/templates/public/footer/footer25/logo-icon.svg +15 -0
- package/templates/public/footer/footer25/logo-text.svg +42 -0
- package/templates/public/footer/footer25/map-pin.svg +7 -0
- package/templates/public/footer/footer25/map.png +0 -0
- package/templates/public/footer/footer26/logo-jpl.svg +5 -0
- package/templates/public/footer/footer26/logo.png +0 -0
- package/templates/public/footer/footer27/logo.png +0 -0
- package/templates/public/footer/footer28/logo.png +0 -0
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import PropTypes from "prop-types";
|
|
2
|
+
|
|
3
|
+
const linkShape = PropTypes.shape({
|
|
4
|
+
label: PropTypes.string.isRequired,
|
|
5
|
+
href: PropTypes.string,
|
|
6
|
+
});
|
|
7
|
+
|
|
8
|
+
const columnShape = PropTypes.shape({
|
|
9
|
+
title: PropTypes.string.isRequired,
|
|
10
|
+
links: PropTypes.arrayOf(linkShape),
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
const contactLineShape = PropTypes.shape({
|
|
14
|
+
label: PropTypes.string.isRequired,
|
|
15
|
+
value: PropTypes.string.isRequired,
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
const socialShape = PropTypes.shape({
|
|
19
|
+
label: PropTypes.string.isRequired,
|
|
20
|
+
href: PropTypes.string,
|
|
21
|
+
icon: PropTypes.oneOf([
|
|
22
|
+
"facebook",
|
|
23
|
+
"twitter",
|
|
24
|
+
"youtube",
|
|
25
|
+
"linkedin",
|
|
26
|
+
"instagram",
|
|
27
|
+
"flickr",
|
|
28
|
+
]),
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
export const footer24PropTypes = {
|
|
32
|
+
contactTitle: PropTypes.string,
|
|
33
|
+
contactLines: PropTypes.arrayOf(contactLineShape),
|
|
34
|
+
mapSrc: PropTypes.string,
|
|
35
|
+
mapAlt: PropTypes.string,
|
|
36
|
+
linkColumns: PropTypes.arrayOf(columnShape),
|
|
37
|
+
copyright: PropTypes.string,
|
|
38
|
+
privacyLabel: PropTypes.string,
|
|
39
|
+
privacyHref: PropTypes.string,
|
|
40
|
+
logoSrc: PropTypes.string,
|
|
41
|
+
logoAlt: PropTypes.string,
|
|
42
|
+
socialButtons: PropTypes.arrayOf(socialShape),
|
|
43
|
+
className: PropTypes.string,
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
export const footer24DefaultProps = {
|
|
47
|
+
contactTitle: "Contact Us",
|
|
48
|
+
contactLines: [
|
|
49
|
+
{
|
|
50
|
+
label: "Address:",
|
|
51
|
+
value: "kha-208, 1 Bir Uttam Rafiqul Islam Ave, Dhaka 1212",
|
|
52
|
+
},
|
|
53
|
+
{ label: "Tel:", value: "728 273 2678" },
|
|
54
|
+
{ label: "Fax:", value: "267-273-0983" },
|
|
55
|
+
{ label: "Email:", value: "dummymail@bracu.ac.bd" },
|
|
56
|
+
],
|
|
57
|
+
mapSrc: "/footer/footer24/map.png",
|
|
58
|
+
mapAlt: "BRAC University campus map",
|
|
59
|
+
linkColumns: [
|
|
60
|
+
{
|
|
61
|
+
title: "About",
|
|
62
|
+
links: [
|
|
63
|
+
{ label: "Mission and Vision", href: "#" },
|
|
64
|
+
{ label: "Leadership and Management", href: "#" },
|
|
65
|
+
{ label: "The Vice Chancellor", href: "#" },
|
|
66
|
+
{ label: "Board of Trustees", href: "#" },
|
|
67
|
+
{ label: "Academic Council", href: "#" },
|
|
68
|
+
{ label: "Administration", href: "#" },
|
|
69
|
+
{ label: "Faculty", href: "#" },
|
|
70
|
+
{ label: "Staff", href: "#" },
|
|
71
|
+
{ label: "Affiliations", href: "#" },
|
|
72
|
+
],
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
title: "Academics",
|
|
76
|
+
links: [
|
|
77
|
+
{ label: "Institutes & Schools", href: "#" },
|
|
78
|
+
{ label: "Departments", href: "#" },
|
|
79
|
+
{ label: "Centres & Initiatives", href: "#" },
|
|
80
|
+
{ label: "Office of the Registrar", href: "#" },
|
|
81
|
+
{ label: "Fees & Payments", href: "#" },
|
|
82
|
+
{ label: "Programs", href: "#" },
|
|
83
|
+
{ label: "Policies & Procedures", href: "#" },
|
|
84
|
+
{ label: "Residential Campus", href: "#" },
|
|
85
|
+
{ label: "Institutional Quality Assurance Cell", href: "#" },
|
|
86
|
+
{ label: "Teaching & Research", href: "#" },
|
|
87
|
+
],
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
title: "Resources",
|
|
91
|
+
links: [
|
|
92
|
+
{ label: "Ayesha Abed Library", href: "#" },
|
|
93
|
+
{ label: "Publications", href: "#" },
|
|
94
|
+
{ label: "News & Events", href: "#" },
|
|
95
|
+
{ label: "Announcements", href: "#" },
|
|
96
|
+
{ label: "Academic Dates", href: "#" },
|
|
97
|
+
{ label: "Convocation", href: "#" },
|
|
98
|
+
{ label: "Alumni", href: "#" },
|
|
99
|
+
{ label: "Campus Life", href: "#" },
|
|
100
|
+
{ label: "Clubs", href: "#" },
|
|
101
|
+
{ label: "Request for logo", href: "#" },
|
|
102
|
+
],
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
title: "Quick Links",
|
|
106
|
+
links: [
|
|
107
|
+
{ label: "Apply Now", href: "#" },
|
|
108
|
+
{ label: "Admissions", href: "#" },
|
|
109
|
+
{ label: "Career", href: "#" },
|
|
110
|
+
{ label: "Scholarships and Financial Aid", href: "#" },
|
|
111
|
+
{ label: "Undergraduate Admissions", href: "#" },
|
|
112
|
+
{ label: "Postgraduate Admissions", href: "#" },
|
|
113
|
+
{ label: "International Applicants", href: "#" },
|
|
114
|
+
{ label: "Important Dates & Deadlines", href: "#" },
|
|
115
|
+
],
|
|
116
|
+
},
|
|
117
|
+
],
|
|
118
|
+
copyright: "© 2024 BRAC University. All rights reserved.",
|
|
119
|
+
privacyLabel: "Privacy Policy",
|
|
120
|
+
privacyHref: "#",
|
|
121
|
+
logoSrc: "/footer/footer24/logo.svg",
|
|
122
|
+
logoAlt: "BRAC University",
|
|
123
|
+
socialButtons: [
|
|
124
|
+
{ label: "Facebook", href: "#", icon: "facebook" },
|
|
125
|
+
{ label: "X", href: "#", icon: "twitter" },
|
|
126
|
+
{ label: "YouTube", href: "#", icon: "youtube" },
|
|
127
|
+
{ label: "LinkedIn", href: "#", icon: "linkedin" },
|
|
128
|
+
{ label: "Instagram", href: "#", icon: "instagram" },
|
|
129
|
+
{ label: "Flickr", href: "#", icon: "flickr" },
|
|
130
|
+
],
|
|
131
|
+
className: "",
|
|
132
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Footer24, default } from "./Footer24";
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import SafeImage from "../../atoms/SafeImage";
|
|
4
|
+
import {
|
|
5
|
+
footer25DefaultProps,
|
|
6
|
+
footer25PropTypes,
|
|
7
|
+
} from "./Footer25.propTypes";
|
|
8
|
+
|
|
9
|
+
function LinkColumn({ column }) {
|
|
10
|
+
return (
|
|
11
|
+
<div className="flex min-w-0 flex-col gap-4 xl:gap-[30px]">
|
|
12
|
+
<p className="text-[10px] font-semibold uppercase leading-[1.1] tracking-[1px] text-[#1d45b5]">
|
|
13
|
+
{column.title}
|
|
14
|
+
</p>
|
|
15
|
+
<ul className="flex flex-col gap-2.5">
|
|
16
|
+
{column.links.map((link) => (
|
|
17
|
+
<li key={link.label}>
|
|
18
|
+
<a
|
|
19
|
+
href={link.href ?? "#"}
|
|
20
|
+
className="text-sm leading-[1.1] text-[#141414]/80 transition-colors duration-200 ease-out hover:text-[#1d45b5] focus-visible:outline-2 focus-visible:outline-offset-2"
|
|
21
|
+
>
|
|
22
|
+
{link.label}
|
|
23
|
+
</a>
|
|
24
|
+
</li>
|
|
25
|
+
))}
|
|
26
|
+
</ul>
|
|
27
|
+
</div>
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function ContactBlock({ block }) {
|
|
32
|
+
return (
|
|
33
|
+
<div className="flex flex-col gap-4">
|
|
34
|
+
<p className="text-[10px] font-semibold uppercase leading-[1.1] tracking-[1px] text-[#1d45b5]">
|
|
35
|
+
{block.title}
|
|
36
|
+
</p>
|
|
37
|
+
<div className="text-sm leading-[1.1] text-[#141414]/80">
|
|
38
|
+
{block.lines.map((line) => (
|
|
39
|
+
<p key={line}>{line}</p>
|
|
40
|
+
))}
|
|
41
|
+
</div>
|
|
42
|
+
</div>
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Footer25 — Uttara University footer with map.
|
|
48
|
+
* Figma node 32:20666 at 1920px.
|
|
49
|
+
*/
|
|
50
|
+
export function Footer25({
|
|
51
|
+
linkColumns = footer25DefaultProps.linkColumns,
|
|
52
|
+
logoIconSrc = footer25DefaultProps.logoIconSrc,
|
|
53
|
+
logoTextSrc = footer25DefaultProps.logoTextSrc,
|
|
54
|
+
location = footer25DefaultProps.location,
|
|
55
|
+
contact = footer25DefaultProps.contact,
|
|
56
|
+
copyright = footer25DefaultProps.copyright,
|
|
57
|
+
mapSrc = footer25DefaultProps.mapSrc,
|
|
58
|
+
mapPinSrc = footer25DefaultProps.mapPinSrc,
|
|
59
|
+
mapLabel = footer25DefaultProps.mapLabel,
|
|
60
|
+
className = "",
|
|
61
|
+
}) {
|
|
62
|
+
return (
|
|
63
|
+
<footer
|
|
64
|
+
className={["relative w-full overflow-hidden bg-white", className]
|
|
65
|
+
.filter(Boolean)
|
|
66
|
+
.join(" ")}
|
|
67
|
+
data-footer="footer25"
|
|
68
|
+
>
|
|
69
|
+
<div className="border-t-4 border-[#1d45b5]">
|
|
70
|
+
<div className="mx-auto flex w-full max-w-[1920px] flex-col px-4 py-10 sm:px-6 md:px-10 lg:px-20 lg:py-[66px] xl:px-[262px]">
|
|
71
|
+
<div className="grid grid-cols-1 gap-10 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-6 xl:justify-between">
|
|
72
|
+
{linkColumns.map((column) => (
|
|
73
|
+
<LinkColumn key={column.title} column={column} />
|
|
74
|
+
))}
|
|
75
|
+
</div>
|
|
76
|
+
|
|
77
|
+
<div className="my-10 h-px w-full bg-[#141414]/10" />
|
|
78
|
+
|
|
79
|
+
<div className="flex flex-col gap-8 lg:flex-row lg:items-end lg:justify-between">
|
|
80
|
+
<div className="flex flex-col gap-8 sm:flex-row sm:items-end sm:gap-16 xl:gap-[135px]">
|
|
81
|
+
<div className="relative h-[70px] w-[143px] shrink-0">
|
|
82
|
+
<SafeImage
|
|
83
|
+
src={logoIconSrc}
|
|
84
|
+
alt=""
|
|
85
|
+
width={143}
|
|
86
|
+
height={64}
|
|
87
|
+
className="absolute left-0 top-0 h-auto w-full max-w-[143px]"
|
|
88
|
+
/>
|
|
89
|
+
<SafeImage
|
|
90
|
+
src={logoTextSrc}
|
|
91
|
+
alt="Uttara University"
|
|
92
|
+
width={143}
|
|
93
|
+
height={8}
|
|
94
|
+
className="absolute bottom-0 left-0 h-auto w-full max-w-[143px]"
|
|
95
|
+
/>
|
|
96
|
+
</div>
|
|
97
|
+
<div className="flex flex-col gap-8 sm:flex-row sm:gap-5">
|
|
98
|
+
<ContactBlock block={location} />
|
|
99
|
+
<ContactBlock block={contact} />
|
|
100
|
+
</div>
|
|
101
|
+
</div>
|
|
102
|
+
<p className="text-sm leading-[1.1] text-[#141414]/80">{copyright}</p>
|
|
103
|
+
</div>
|
|
104
|
+
</div>
|
|
105
|
+
</div>
|
|
106
|
+
|
|
107
|
+
<div className="relative mx-auto w-full max-w-[1920px] px-4 sm:px-6 md:px-10 lg:px-[262px]">
|
|
108
|
+
<div className="relative aspect-[1396/330] w-full overflow-hidden">
|
|
109
|
+
<SafeImage
|
|
110
|
+
src={mapSrc}
|
|
111
|
+
alt="Uttara University location map"
|
|
112
|
+
fill
|
|
113
|
+
className="object-cover object-center"
|
|
114
|
+
/>
|
|
115
|
+
<div className="absolute left-1/2 top-1/2 flex -translate-x-1/2 -translate-y-1/2 flex-col items-center gap-2">
|
|
116
|
+
<SafeImage
|
|
117
|
+
src={mapPinSrc}
|
|
118
|
+
alt=""
|
|
119
|
+
width={24}
|
|
120
|
+
height={24}
|
|
121
|
+
className="size-6"
|
|
122
|
+
/>
|
|
123
|
+
<p className="text-center text-[10px] font-semibold uppercase leading-[1.1] tracking-[1px] text-[#141414]">
|
|
124
|
+
{mapLabel}
|
|
125
|
+
</p>
|
|
126
|
+
</div>
|
|
127
|
+
</div>
|
|
128
|
+
</div>
|
|
129
|
+
</footer>
|
|
130
|
+
);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
Footer25.propTypes = footer25PropTypes;
|
|
134
|
+
|
|
135
|
+
export default Footer25;
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import PropTypes from "prop-types";
|
|
2
|
+
|
|
3
|
+
const linkShape = PropTypes.shape({
|
|
4
|
+
label: PropTypes.string.isRequired,
|
|
5
|
+
href: PropTypes.string,
|
|
6
|
+
});
|
|
7
|
+
|
|
8
|
+
const columnShape = PropTypes.shape({
|
|
9
|
+
title: PropTypes.string.isRequired,
|
|
10
|
+
links: PropTypes.arrayOf(linkShape),
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
const contactBlockShape = PropTypes.shape({
|
|
14
|
+
title: PropTypes.string.isRequired,
|
|
15
|
+
lines: PropTypes.arrayOf(PropTypes.string),
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
export const footer25PropTypes = {
|
|
19
|
+
linkColumns: PropTypes.arrayOf(columnShape),
|
|
20
|
+
logoIconSrc: PropTypes.string,
|
|
21
|
+
logoTextSrc: PropTypes.string,
|
|
22
|
+
location: contactBlockShape,
|
|
23
|
+
contact: contactBlockShape,
|
|
24
|
+
copyright: PropTypes.string,
|
|
25
|
+
mapSrc: PropTypes.string,
|
|
26
|
+
mapPinSrc: PropTypes.string,
|
|
27
|
+
mapLabel: PropTypes.string,
|
|
28
|
+
className: PropTypes.string,
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export const footer25DefaultProps = {
|
|
32
|
+
linkColumns: [
|
|
33
|
+
{
|
|
34
|
+
title: "About Us",
|
|
35
|
+
links: [
|
|
36
|
+
{ label: "About UU", href: "#" },
|
|
37
|
+
{ label: "Mission, Vision & Motto", href: "#" },
|
|
38
|
+
{ label: "Overview, Features & Facilities", href: "#" },
|
|
39
|
+
{ label: "UU at a Glance", href: "#" },
|
|
40
|
+
{ label: "Accreditations & Memberships", href: "#" },
|
|
41
|
+
{ label: "Explore Campus", href: "#" },
|
|
42
|
+
{ label: "Campus Life", href: "#" },
|
|
43
|
+
{ label: "UU Logo Resource & Socials", href: "#" },
|
|
44
|
+
],
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
title: "Academic",
|
|
48
|
+
links: [
|
|
49
|
+
{ label: "Schools", href: "#" },
|
|
50
|
+
{ label: "Programs", href: "#" },
|
|
51
|
+
{ label: "Research & Innovation", href: "#" },
|
|
52
|
+
{ label: "IQAC", href: "#" },
|
|
53
|
+
{ label: "IRC", href: "#" },
|
|
54
|
+
{ label: "Linkages", href: "#" },
|
|
55
|
+
{ label: "Academic Calendar", href: "#" },
|
|
56
|
+
{ label: "Grading System", href: "#" },
|
|
57
|
+
{ label: "Academic Regulations", href: "#" },
|
|
58
|
+
{ label: "Policies & Procedures", href: "#" },
|
|
59
|
+
],
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
title: "Prospective Students",
|
|
63
|
+
links: [
|
|
64
|
+
{ label: "Why Study at UU", href: "#" },
|
|
65
|
+
{ label: "Online Admission", href: "#" },
|
|
66
|
+
{ label: "Entry Requirements", href: "#" },
|
|
67
|
+
{ label: "Admission Test", href: "#" },
|
|
68
|
+
{ label: "Credit Transfer", href: "#" },
|
|
69
|
+
{ label: "Admission procedure", href: "#" },
|
|
70
|
+
{ label: "Tuition fees", href: "#" },
|
|
71
|
+
{ label: "Scholarship & Waiver Calculator", href: "#" },
|
|
72
|
+
{ label: "Financial Aid & Study Support Loan", href: "#" },
|
|
73
|
+
{ label: "International Students", href: "#" },
|
|
74
|
+
{ label: "International Collaboration", href: "#" },
|
|
75
|
+
{ label: "Payment Guidelines", href: "#" },
|
|
76
|
+
{ label: "UU FAQ", href: "#" },
|
|
77
|
+
{ label: "Contact the Office of Admission", href: "#" },
|
|
78
|
+
],
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
title: "Research",
|
|
82
|
+
links: [
|
|
83
|
+
{ label: "Centre for Clean Energy Research", href: "#" },
|
|
84
|
+
{ label: "Centre for Research & Training", href: "#" },
|
|
85
|
+
{ label: "Centre for Sustainable Nanoparticle Synthesis", href: "#" },
|
|
86
|
+
{ label: "Fintech Research Group", href: "#" },
|
|
87
|
+
{ label: "Institute of Policy Research", href: "#" },
|
|
88
|
+
],
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
title: "Quick link",
|
|
92
|
+
links: [
|
|
93
|
+
{ label: "Apply Now", href: "#" },
|
|
94
|
+
{ label: "Admissions", href: "#" },
|
|
95
|
+
{ label: "Contact Us", href: "#" },
|
|
96
|
+
],
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
title: "Socials",
|
|
100
|
+
links: [
|
|
101
|
+
{ label: "Facebook", href: "#" },
|
|
102
|
+
{ label: "Twitter", href: "#" },
|
|
103
|
+
{ label: "YouTube", href: "#" },
|
|
104
|
+
{ label: "LinkedIn", href: "#" },
|
|
105
|
+
{ label: "Instagram", href: "#" },
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
],
|
|
109
|
+
logoIconSrc: "/footer/footer25/logo-icon.svg",
|
|
110
|
+
logoTextSrc: "/footer/footer25/logo-text.svg",
|
|
111
|
+
location: {
|
|
112
|
+
title: "Location",
|
|
113
|
+
lines: ["Holding 77, Beribadh Road,", "Turag, Uttara, Dhaka 1230, Bangladesh"],
|
|
114
|
+
},
|
|
115
|
+
contact: {
|
|
116
|
+
title: "Contact Us",
|
|
117
|
+
lines: ["+8802-58952280", "info@uttara.ac.bd"],
|
|
118
|
+
},
|
|
119
|
+
copyright: "© 2025 Uttara University. All Rights Reserved",
|
|
120
|
+
mapSrc: "/footer/footer25/map.png",
|
|
121
|
+
mapPinSrc: "/footer/footer25/map-pin.svg",
|
|
122
|
+
mapLabel: "uttara university",
|
|
123
|
+
className: "",
|
|
124
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Footer25, default } from "./Footer25";
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import SafeImage from "../../atoms/SafeImage";
|
|
4
|
+
import {
|
|
5
|
+
footer26DefaultProps,
|
|
6
|
+
footer26PropTypes,
|
|
7
|
+
} from "./Footer26.propTypes";
|
|
8
|
+
|
|
9
|
+
function FacebookIcon({ className = "" }) {
|
|
10
|
+
return (
|
|
11
|
+
<svg viewBox="0 0 10 20" fill="currentColor" aria-hidden="true" className={className}>
|
|
12
|
+
<path d="M6.5 2H5a2 2 0 00-2 2v2H1v3h2v7h3v-7h2.5l.5-3H6V4c0-.55.45-1 1-1h1.5V2H6.5z" />
|
|
13
|
+
</svg>
|
|
14
|
+
);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
function InstagramIcon({ className = "" }) {
|
|
18
|
+
return (
|
|
19
|
+
<svg viewBox="0 0 20 20" fill="currentColor" aria-hidden="true" className={className}>
|
|
20
|
+
<path d="M10 1.8c2.67 0 2.99.01 4.04.06 1.01.05 1.56.23 1.93.38.48.19.83.41 1.19.77.36.36.58.71.77 1.19.15.37.33.92.38 1.93.05 1.05.06 1.37.06 4.04s-.01 2.99-.06 4.04c-.05 1.01-.23 1.56-.38 1.93-.19.48-.41.83-.77 1.19-.36.36-.71.58-1.19.77-.37.15-.92.33-1.93.38-1.05.05-1.37.06-4.04.06s-2.99-.01-4.04-.06c-1.01-.05-1.56-.23-1.93-.38a3.2 3.2 0 01-1.19-.77 3.2 3.2 0 01-.77-1.19c-.15-.37-.33-.92-.38-1.93C1.81 14.99 1.8 14.67 1.8 12s.01-2.99.06-4.04c.05-1.01.23-1.56.38-1.93.19-.48.41-.83.77-1.19.36-.36.71-.58 1.19-.77.37-.15.92-.33 1.93-.38C7.01 1.81 7.33 1.8 10 1.8zm0 3.7a6.5 6.5 0 100 13 6.5 6.5 0 000-13zm0 10.6a4.1 4.1 0 110-8.2 4.1 4.1 0 010 8.2zm6.5-11.1a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0z" />
|
|
21
|
+
</svg>
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function YoutubeIcon({ className = "" }) {
|
|
26
|
+
return (
|
|
27
|
+
<svg viewBox="0 0 22 16" fill="currentColor" aria-hidden="true" className={className}>
|
|
28
|
+
<path d="M21.5 3.2a2.5 2.5 0 00-1.75-1.75C17.5 1 11 1 11 1S4.5 1 2.25 1.45A2.5 2.5 0 00.5 3.2 26 26 0 000 8a26 26 0 00.5 4.8 2.5 2.5 0 001.75 1.75C4.5 15 11 15 11 15s6.5 0 8.75-.45A2.5 2.5 0 0021.5 12.8 26 26 0 0022 8a26 26 0 00-.5-4.8zM8.75 11.5V4.5L14.5 8l-5.75 3.5z" />
|
|
29
|
+
</svg>
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function LinkedinIcon({ className = "" }) {
|
|
34
|
+
return (
|
|
35
|
+
<svg viewBox="0 0 17 17" fill="currentColor" aria-hidden="true" className={className}>
|
|
36
|
+
<rect x="1" y="6" width="3" height="10" />
|
|
37
|
+
<circle cx="2.5" cy="3" r="1.8" />
|
|
38
|
+
<path d="M7 6h2.8v1.2c.5-.9 1.5-1.4 2.6-1.4 2.8 0 3.1 1.8 3.1 4.1V16H13v-4.2c0-1 0-2.3-1.4-2.3-1.4 0-1.6 1.1-1.6 2.1V16H7V6z" />
|
|
39
|
+
</svg>
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const SOCIAL_ICONS = {
|
|
44
|
+
facebook: FacebookIcon,
|
|
45
|
+
instagram: InstagramIcon,
|
|
46
|
+
youtube: YoutubeIcon,
|
|
47
|
+
linkedin: LinkedinIcon,
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Footer26 — Joules Power Limited renewable energy footer.
|
|
52
|
+
* Figma node 32:20798 at 1920px.
|
|
53
|
+
*/
|
|
54
|
+
export function Footer26({
|
|
55
|
+
logoSrc = footer26DefaultProps.logoSrc,
|
|
56
|
+
logoAlt = footer26DefaultProps.logoAlt,
|
|
57
|
+
description = footer26DefaultProps.description,
|
|
58
|
+
socialButtons = footer26DefaultProps.socialButtons,
|
|
59
|
+
quickLinksTitle = footer26DefaultProps.quickLinksTitle,
|
|
60
|
+
quickLinks = footer26DefaultProps.quickLinks,
|
|
61
|
+
copyright = footer26DefaultProps.copyright,
|
|
62
|
+
legalLinks = footer26DefaultProps.legalLinks,
|
|
63
|
+
className = "",
|
|
64
|
+
}) {
|
|
65
|
+
const midpoint = Math.ceil(quickLinks.length / 2);
|
|
66
|
+
const leftLinks = quickLinks.slice(0, midpoint);
|
|
67
|
+
const rightLinks = quickLinks.slice(midpoint);
|
|
68
|
+
|
|
69
|
+
return (
|
|
70
|
+
<footer
|
|
71
|
+
className={["relative w-full overflow-hidden bg-white", className]
|
|
72
|
+
.filter(Boolean)
|
|
73
|
+
.join(" ")}
|
|
74
|
+
data-footer="footer26"
|
|
75
|
+
>
|
|
76
|
+
<div className="mx-auto flex w-full max-w-[1920px] flex-col gap-12 px-4 py-10 sm:px-6 md:px-10 lg:gap-[50px] lg:px-[75px] lg:py-[75px]">
|
|
77
|
+
<div className="flex flex-col gap-10 lg:flex-row lg:items-start lg:justify-between">
|
|
78
|
+
<div className="flex max-w-xs flex-col gap-6">
|
|
79
|
+
<SafeImage
|
|
80
|
+
src={logoSrc}
|
|
81
|
+
alt={logoAlt}
|
|
82
|
+
width={200}
|
|
83
|
+
height={64}
|
|
84
|
+
className="h-auto w-full max-w-[200px]"
|
|
85
|
+
/>
|
|
86
|
+
<p className="text-sm leading-normal text-[#0a142f]/50">{description}</p>
|
|
87
|
+
<div className="flex flex-wrap items-center gap-7">
|
|
88
|
+
{socialButtons.map((social) => {
|
|
89
|
+
const Icon = SOCIAL_ICONS[social.icon] ?? FacebookIcon;
|
|
90
|
+
return (
|
|
91
|
+
<a
|
|
92
|
+
key={social.label}
|
|
93
|
+
href={social.href ?? "#"}
|
|
94
|
+
aria-label={social.label}
|
|
95
|
+
className="text-[#0a142f] transition-colors duration-200 ease-out hover:opacity-70 focus-visible:outline-2 focus-visible:outline-offset-2"
|
|
96
|
+
>
|
|
97
|
+
<Icon className="h-5 w-auto" />
|
|
98
|
+
</a>
|
|
99
|
+
);
|
|
100
|
+
})}
|
|
101
|
+
</div>
|
|
102
|
+
</div>
|
|
103
|
+
|
|
104
|
+
<div className="flex flex-col gap-4">
|
|
105
|
+
<p className="text-base font-semibold leading-7 text-[#0a142f]">
|
|
106
|
+
{quickLinksTitle}
|
|
107
|
+
</p>
|
|
108
|
+
<div className="flex flex-col gap-10 sm:flex-row sm:gap-[130px]">
|
|
109
|
+
<ul className="flex flex-col gap-2.5">
|
|
110
|
+
{leftLinks.map((link) => (
|
|
111
|
+
<li key={link.label}>
|
|
112
|
+
<a
|
|
113
|
+
href={link.href ?? "#"}
|
|
114
|
+
className="text-base font-medium leading-normal text-[#0a142f]/60 transition-colors duration-200 ease-out hover:text-[#0a142f] focus-visible:outline-2 focus-visible:outline-offset-2"
|
|
115
|
+
>
|
|
116
|
+
{link.label}
|
|
117
|
+
</a>
|
|
118
|
+
</li>
|
|
119
|
+
))}
|
|
120
|
+
</ul>
|
|
121
|
+
<ul className="flex flex-col gap-2.5">
|
|
122
|
+
{rightLinks.map((link) => (
|
|
123
|
+
<li key={link.label}>
|
|
124
|
+
<a
|
|
125
|
+
href={link.href ?? "#"}
|
|
126
|
+
className="text-base font-medium leading-normal text-[#0a142f]/60 transition-colors duration-200 ease-out hover:text-[#0a142f] focus-visible:outline-2 focus-visible:outline-offset-2"
|
|
127
|
+
>
|
|
128
|
+
{link.label}
|
|
129
|
+
</a>
|
|
130
|
+
</li>
|
|
131
|
+
))}
|
|
132
|
+
</ul>
|
|
133
|
+
</div>
|
|
134
|
+
</div>
|
|
135
|
+
</div>
|
|
136
|
+
|
|
137
|
+
<div className="flex flex-col gap-5">
|
|
138
|
+
<div className="h-px w-full bg-[#0a142f]/10" />
|
|
139
|
+
<div className="flex flex-col items-center justify-between gap-4 sm:flex-row">
|
|
140
|
+
<p className="text-base font-medium text-[#0a142f]/60">{copyright}</p>
|
|
141
|
+
<div className="flex flex-wrap items-center justify-center gap-2">
|
|
142
|
+
{legalLinks.map((link, index) => (
|
|
143
|
+
<span key={link.label} className="flex items-center gap-2">
|
|
144
|
+
{index > 0 ? (
|
|
145
|
+
<span className="text-[#0a142f]/40" aria-hidden="true">
|
|
146
|
+
|
|
|
147
|
+
</span>
|
|
148
|
+
) : null}
|
|
149
|
+
<a
|
|
150
|
+
href={link.href ?? "#"}
|
|
151
|
+
className="text-base font-medium text-[#0a142f]/60 transition-colors duration-200 ease-out hover:text-[#0a142f] focus-visible:outline-2 focus-visible:outline-offset-2"
|
|
152
|
+
>
|
|
153
|
+
{link.label}
|
|
154
|
+
</a>
|
|
155
|
+
</span>
|
|
156
|
+
))}
|
|
157
|
+
</div>
|
|
158
|
+
</div>
|
|
159
|
+
</div>
|
|
160
|
+
</div>
|
|
161
|
+
</footer>
|
|
162
|
+
);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
Footer26.propTypes = footer26PropTypes;
|
|
166
|
+
|
|
167
|
+
export default Footer26;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import PropTypes from "prop-types";
|
|
2
|
+
|
|
3
|
+
const linkShape = PropTypes.shape({
|
|
4
|
+
label: PropTypes.string.isRequired,
|
|
5
|
+
href: PropTypes.string,
|
|
6
|
+
});
|
|
7
|
+
|
|
8
|
+
const socialShape = PropTypes.shape({
|
|
9
|
+
label: PropTypes.string.isRequired,
|
|
10
|
+
href: PropTypes.string,
|
|
11
|
+
icon: PropTypes.oneOf(["facebook", "instagram", "youtube", "linkedin"]),
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
export const footer26PropTypes = {
|
|
15
|
+
logoSrc: PropTypes.string,
|
|
16
|
+
logoAlt: PropTypes.string,
|
|
17
|
+
description: PropTypes.string,
|
|
18
|
+
socialButtons: PropTypes.arrayOf(socialShape),
|
|
19
|
+
quickLinksTitle: PropTypes.string,
|
|
20
|
+
quickLinks: PropTypes.arrayOf(linkShape),
|
|
21
|
+
copyright: PropTypes.string,
|
|
22
|
+
legalLinks: PropTypes.arrayOf(linkShape),
|
|
23
|
+
className: PropTypes.string,
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export const footer26DefaultProps = {
|
|
27
|
+
logoSrc: "/footer/footer26/logo-jpl.svg",
|
|
28
|
+
logoAlt: "Joules Power Limited",
|
|
29
|
+
description:
|
|
30
|
+
"Joules Power Limited (JPL) is at the forefront of renewable energy development in Bangladesh.",
|
|
31
|
+
socialButtons: [
|
|
32
|
+
{ label: "Facebook", href: "#", icon: "facebook" },
|
|
33
|
+
{ label: "Instagram", href: "#", icon: "instagram" },
|
|
34
|
+
{ label: "YouTube", href: "#", icon: "youtube" },
|
|
35
|
+
{ label: "LinkedIn", href: "#", icon: "linkedin" },
|
|
36
|
+
],
|
|
37
|
+
quickLinksTitle: "Quick Links",
|
|
38
|
+
quickLinks: [
|
|
39
|
+
{ label: "About Us", href: "#" },
|
|
40
|
+
{ label: "Board of Directors", href: "#" },
|
|
41
|
+
{ label: "Awards & Achievements", href: "#" },
|
|
42
|
+
{ label: "Our Culture", href: "#" },
|
|
43
|
+
{ label: "Commercial Projects", href: "#" },
|
|
44
|
+
{ label: "Industrial Projects", href: "#" },
|
|
45
|
+
{ label: "News", href: "#" },
|
|
46
|
+
{ label: "Contact Us", href: "#" },
|
|
47
|
+
],
|
|
48
|
+
copyright: "© 2024 Joules Power Limited. All Rights Reserved.",
|
|
49
|
+
legalLinks: [
|
|
50
|
+
{ label: "Privacy", href: "#" },
|
|
51
|
+
{ label: "Terms & Conditions", href: "#" },
|
|
52
|
+
],
|
|
53
|
+
className: "",
|
|
54
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Footer26, default } from "./Footer26";
|