@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,116 @@
|
|
|
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 contactItemShape = PropTypes.shape({
|
|
9
|
+
type: PropTypes.oneOf(["address", "email", "phone"]).isRequired,
|
|
10
|
+
label: PropTypes.string,
|
|
11
|
+
value: PropTypes.string.isRequired,
|
|
12
|
+
href: PropTypes.string,
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
const socialShape = PropTypes.shape({
|
|
16
|
+
label: PropTypes.string.isRequired,
|
|
17
|
+
href: PropTypes.string,
|
|
18
|
+
icon: PropTypes.oneOf(["facebook", "linkedin", "instagram", "youtube"]),
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
const paymentBadgeShape = PropTypes.shape({
|
|
22
|
+
label: PropTypes.string.isRequired,
|
|
23
|
+
src: PropTypes.string.isRequired,
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
export const footer19PropTypes = {
|
|
27
|
+
logoSrc: PropTypes.string,
|
|
28
|
+
brandTitle: PropTypes.string,
|
|
29
|
+
brandSubtitle: PropTypes.string,
|
|
30
|
+
contactItems: PropTypes.arrayOf(contactItemShape),
|
|
31
|
+
quickLinksTitle: PropTypes.string,
|
|
32
|
+
quickLinks: PropTypes.arrayOf(linkShape),
|
|
33
|
+
aboutTitle: PropTypes.string,
|
|
34
|
+
aboutLinks: PropTypes.arrayOf(linkShape),
|
|
35
|
+
accountTitle: PropTypes.string,
|
|
36
|
+
accountLinks: PropTypes.arrayOf(linkShape),
|
|
37
|
+
newsletterTitle: PropTypes.string,
|
|
38
|
+
newsletterDescription: PropTypes.string,
|
|
39
|
+
email: PropTypes.string,
|
|
40
|
+
onEmailChange: PropTypes.func,
|
|
41
|
+
onNewsletterSubmit: PropTypes.func,
|
|
42
|
+
socialLinks: PropTypes.arrayOf(socialShape),
|
|
43
|
+
paymentBadges: PropTypes.arrayOf(paymentBadgeShape),
|
|
44
|
+
copyright: PropTypes.string,
|
|
45
|
+
onBackToTop: PropTypes.func,
|
|
46
|
+
className: PropTypes.string,
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export const footer19DefaultProps = {
|
|
50
|
+
logoSrc: "/footer/footer19/logo.png",
|
|
51
|
+
brandTitle: "Grameen Danone Foods Limited",
|
|
52
|
+
brandSubtitle: "A Social Business Company",
|
|
53
|
+
contactItems: [
|
|
54
|
+
{
|
|
55
|
+
type: "address",
|
|
56
|
+
value: "Grameen Telecom Bhaban, Level-9, Mirpur Zoo Road, Dhaka-1216, Bangladesh",
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
type: "email",
|
|
60
|
+
label: "For Career:",
|
|
61
|
+
value: "info@grameendanone.net",
|
|
62
|
+
href: "mailto:info@grameendanone.net",
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
type: "email",
|
|
66
|
+
label: "For Contact:",
|
|
67
|
+
value: "contact@grameendanone.net",
|
|
68
|
+
href: "mailto:contact@grameendanone.net",
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
type: "phone",
|
|
72
|
+
value: "+880 1708-418508",
|
|
73
|
+
href: "tel:+8801708418508",
|
|
74
|
+
},
|
|
75
|
+
],
|
|
76
|
+
quickLinksTitle: "Quick Links",
|
|
77
|
+
quickLinks: [
|
|
78
|
+
{ label: "Home", href: "#" },
|
|
79
|
+
{ label: "Products", href: "#" },
|
|
80
|
+
{ label: "B2B Collaboration", href: "#" },
|
|
81
|
+
{ label: "Donate", href: "#" },
|
|
82
|
+
{ label: "Inspiring Stories", href: "#" },
|
|
83
|
+
{ label: "Blog", href: "#" },
|
|
84
|
+
{ label: "Career", href: "#" },
|
|
85
|
+
],
|
|
86
|
+
aboutTitle: "About Us",
|
|
87
|
+
aboutLinks: [
|
|
88
|
+
{ label: "Who we are", href: "#" },
|
|
89
|
+
{ label: "Our awards & certifications", href: "#" },
|
|
90
|
+
],
|
|
91
|
+
accountTitle: "Account",
|
|
92
|
+
accountLinks: [
|
|
93
|
+
{ label: "Registration", href: "#" },
|
|
94
|
+
{ label: "Log in", href: "#" },
|
|
95
|
+
],
|
|
96
|
+
newsletterTitle: "Subscribe Newsletter",
|
|
97
|
+
newsletterDescription: "Subscribe newsletter to get updates and offers!",
|
|
98
|
+
email: "",
|
|
99
|
+
socialLinks: [
|
|
100
|
+
{ label: "Facebook", href: "#", icon: "facebook" },
|
|
101
|
+
{ label: "LinkedIn", href: "#", icon: "linkedin" },
|
|
102
|
+
{ label: "Instagram", href: "#", icon: "instagram" },
|
|
103
|
+
{ label: "YouTube", href: "#", icon: "youtube" },
|
|
104
|
+
],
|
|
105
|
+
paymentBadges: [
|
|
106
|
+
{ label: "Visa", src: "/footer/footer19/payment-visa.svg" },
|
|
107
|
+
{ label: "Mastercard", src: "/footer/footer19/payment-mastercard.svg" },
|
|
108
|
+
{ label: "bKash", src: "/footer/footer19/payment-bkash.png" },
|
|
109
|
+
{ label: "Nagad", src: "/footer/footer19/payment-nagad.png" },
|
|
110
|
+
{ label: "Upay", src: "/footer/footer19/payment-upay.png" },
|
|
111
|
+
{ label: "Nexus Pay", src: "/footer/footer19/payment-nexus.png" },
|
|
112
|
+
{ label: "Rocket", src: "/footer/footer19/payment-rocket.png" },
|
|
113
|
+
],
|
|
114
|
+
copyright: "@grameen.danonebd 2022",
|
|
115
|
+
className: "",
|
|
116
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Footer19, default } from "./Footer19";
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { useState } from "react";
|
|
4
|
+
import SafeImage from "../../atoms/SafeImage";
|
|
5
|
+
import {
|
|
6
|
+
footer20DefaultProps,
|
|
7
|
+
footer20PropTypes,
|
|
8
|
+
} from "./Footer20.propTypes";
|
|
9
|
+
|
|
10
|
+
function TwitterIcon({ className = "" }) {
|
|
11
|
+
return (
|
|
12
|
+
<svg viewBox="0 0 14 14" fill="currentColor" aria-hidden="true" className={className}>
|
|
13
|
+
<path d="M11.1 1.5h2l-4.2 4.8L13.7 12.5h-3.8l-3-4-3.4 4H1.8l4.5-5.2L1.5 1.5h3.9l2.7 3.5L11.1 1.5zm-.7 10.1h1.1L4.4 2.6H3.2l7.2 9z" />
|
|
14
|
+
</svg>
|
|
15
|
+
);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function InstagramIcon({ className = "" }) {
|
|
19
|
+
return (
|
|
20
|
+
<svg viewBox="0 0 14 14" fill="none" aria-hidden="true" className={className}>
|
|
21
|
+
<rect x="2" y="2" width="10" height="10" rx="2.5" stroke="currentColor" strokeWidth="1" />
|
|
22
|
+
<circle cx="7" cy="7" r="2" stroke="currentColor" strokeWidth="1" />
|
|
23
|
+
</svg>
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function FacebookIcon({ className = "" }) {
|
|
28
|
+
return (
|
|
29
|
+
<svg viewBox="0 0 14 14" fill="currentColor" aria-hidden="true" className={className}>
|
|
30
|
+
<path d="M8.5 2.5h-1.5A1.5 1.5 0 005.5 4v1.5H4v2h1.5V12h2.5V7.5H10l.5-2H8.5V4c0-.28.22-.5.5-.5H10V2.5H8.5z" />
|
|
31
|
+
</svg>
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function YoutubeIcon({ className = "" }) {
|
|
36
|
+
return (
|
|
37
|
+
<svg viewBox="0 0 14 14" fill="currentColor" aria-hidden="true" className={className}>
|
|
38
|
+
<path d="M12.5 4.2a1.5 1.5 0 00-1.05-1.05C10.4 3 7 3 7 3s-3.4 0-4.45.15A1.5 1.5 0 001.5 4.2 15.7 15.7 0 001.35 7a15.7 15.7 0 00.15 2.8 1.5 1.5 0 001.05 1.05C3.6 11 7 11 7 11s3.4 0 4.45-.15a1.5 1.5 0 001.05-1.05A15.7 15.7 0 0012.65 7a15.7 15.7 0 00-.15-2.8zM5.75 8.75V5.25L9 7l-3.25 1.75z" />
|
|
39
|
+
</svg>
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function DiscordIcon({ className = "" }) {
|
|
44
|
+
return (
|
|
45
|
+
<svg viewBox="0 0 14 14" fill="currentColor" aria-hidden="true" className={className}>
|
|
46
|
+
<path d="M11.7 2.5A9.4 9.4 0 009 2a6.6 6.6 0 00-.3.6A8.7 8.7 0 005.5 2 9.4 9.4 0 003 2.5 12.5 12.5 0 001 8.5a9.4 9.4 0 002.9 1.5c.2-.3.4-.7.6-1a6.2 6.2 0 01-1-.5l.2-.2c1.9.9 4 1 4 1s2.1-.1 4-1l.2.2a6.2 6.2 0 01-1 .5c.2.3.4.7.6 1a9.4 9.4 0 002.9-1.5 12.5 12.5 0 00-2-6 9.4 9.4 0 00-2.7-.5zM5.5 7.5a1 1 0 110-2 1 1 0 010 2zm3 0a1 1 0 110-2 1 1 0 010 2z" />
|
|
47
|
+
</svg>
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function MailIcon({ className = "" }) {
|
|
52
|
+
return (
|
|
53
|
+
<svg viewBox="0 0 20 20" fill="none" aria-hidden="true" className={className}>
|
|
54
|
+
<rect x="2" y="4" width="16" height="12" rx="1" stroke="currentColor" strokeWidth="1.2" />
|
|
55
|
+
<path d="M2 6l8 5 8-5" stroke="currentColor" strokeWidth="1.2" />
|
|
56
|
+
</svg>
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
const SOCIAL_ICONS = {
|
|
61
|
+
twitter: TwitterIcon,
|
|
62
|
+
instagram: InstagramIcon,
|
|
63
|
+
facebook: FacebookIcon,
|
|
64
|
+
youtube: YoutubeIcon,
|
|
65
|
+
discord: DiscordIcon,
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Footer20 — OpenCoins dark gradient footer with newsletter.
|
|
70
|
+
* Figma node 32:19561 (footer section 32:19907).
|
|
71
|
+
*/
|
|
72
|
+
export function Footer20({
|
|
73
|
+
logoSrc = footer20DefaultProps.logoSrc,
|
|
74
|
+
logoAlt = footer20DefaultProps.logoAlt,
|
|
75
|
+
bgSrc = footer20DefaultProps.bgSrc,
|
|
76
|
+
linkColumns = footer20DefaultProps.linkColumns,
|
|
77
|
+
newsletterDescription = footer20DefaultProps.newsletterDescription,
|
|
78
|
+
email: controlledEmail,
|
|
79
|
+
onEmailChange,
|
|
80
|
+
onNewsletterSubmit,
|
|
81
|
+
socialLinks = footer20DefaultProps.socialLinks,
|
|
82
|
+
copyright = footer20DefaultProps.copyright,
|
|
83
|
+
className = "",
|
|
84
|
+
}) {
|
|
85
|
+
const [internalEmail, setInternalEmail] = useState("");
|
|
86
|
+
const email = controlledEmail ?? internalEmail;
|
|
87
|
+
|
|
88
|
+
const handleEmailChange = (event) => {
|
|
89
|
+
if (onEmailChange) onEmailChange(event.target.value);
|
|
90
|
+
else setInternalEmail(event.target.value);
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
const handleSubmit = (event) => {
|
|
94
|
+
event.preventDefault();
|
|
95
|
+
onNewsletterSubmit?.(email);
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
return (
|
|
99
|
+
<footer
|
|
100
|
+
className={["relative min-h-[340px] w-full overflow-hidden", className].filter(Boolean).join(" ")}
|
|
101
|
+
data-footer="footer20"
|
|
102
|
+
>
|
|
103
|
+
{bgSrc ? (
|
|
104
|
+
<SafeImage
|
|
105
|
+
src={bgSrc}
|
|
106
|
+
alt=""
|
|
107
|
+
fill
|
|
108
|
+
className="object-cover object-center"
|
|
109
|
+
aria-hidden="true"
|
|
110
|
+
/>
|
|
111
|
+
) : null}
|
|
112
|
+
<div className="absolute inset-0 bg-[#0e111e]/85" aria-hidden="true" />
|
|
113
|
+
|
|
114
|
+
<div className="relative mx-auto w-full max-w-[1920px] px-4 py-12 sm:px-6 md:px-10 lg:px-10 lg:py-14 xl:px-10">
|
|
115
|
+
<div className="grid grid-cols-1 gap-10 lg:grid-cols-12 lg:gap-8">
|
|
116
|
+
<div className="flex flex-col gap-4 lg:col-span-3">
|
|
117
|
+
<SafeImage
|
|
118
|
+
src={logoSrc}
|
|
119
|
+
alt={logoAlt}
|
|
120
|
+
width={160}
|
|
121
|
+
height={30}
|
|
122
|
+
className="h-7 w-auto max-w-[160px] sm:h-8"
|
|
123
|
+
/>
|
|
124
|
+
<div className="flex flex-wrap gap-2.5">
|
|
125
|
+
{socialLinks.map((social) => {
|
|
126
|
+
const Icon = SOCIAL_ICONS[social.icon] ?? TwitterIcon;
|
|
127
|
+
return (
|
|
128
|
+
<a
|
|
129
|
+
key={social.label}
|
|
130
|
+
href={social.href ?? "#"}
|
|
131
|
+
aria-label={social.label}
|
|
132
|
+
className="rounded-full border border-white/10 p-3 text-white transition-colors duration-200 ease-out hover:border-white/30 hover:bg-white/5 focus-visible:outline-2 focus-visible:outline-offset-2"
|
|
133
|
+
>
|
|
134
|
+
<Icon className="size-3.5" />
|
|
135
|
+
</a>
|
|
136
|
+
);
|
|
137
|
+
})}
|
|
138
|
+
</div>
|
|
139
|
+
</div>
|
|
140
|
+
|
|
141
|
+
{linkColumns.map((column, index) => (
|
|
142
|
+
<div key={index} className="flex flex-col gap-4 lg:col-span-2">
|
|
143
|
+
<ul className="flex flex-col gap-4">
|
|
144
|
+
{column.links.map((link) => (
|
|
145
|
+
<li key={link.label}>
|
|
146
|
+
<a
|
|
147
|
+
href={link.href ?? "#"}
|
|
148
|
+
className="text-sm leading-[22px] text-white/80 transition-colors duration-200 ease-out hover:text-white focus-visible:outline-2 focus-visible:outline-offset-2"
|
|
149
|
+
>
|
|
150
|
+
{link.label}
|
|
151
|
+
</a>
|
|
152
|
+
</li>
|
|
153
|
+
))}
|
|
154
|
+
</ul>
|
|
155
|
+
</div>
|
|
156
|
+
))}
|
|
157
|
+
|
|
158
|
+
<div className="flex flex-col gap-4 lg:col-span-3 lg:items-end">
|
|
159
|
+
<p className="max-w-[338px] text-sm leading-[22px] text-white/80 lg:text-right">
|
|
160
|
+
{newsletterDescription}
|
|
161
|
+
</p>
|
|
162
|
+
<form onSubmit={handleSubmit} className="flex w-full max-w-[338px] flex-col gap-2 sm:flex-row">
|
|
163
|
+
<label className="sr-only" htmlFor="footer20-email">
|
|
164
|
+
Email address
|
|
165
|
+
</label>
|
|
166
|
+
<div className="flex flex-1 items-center gap-1 rounded-lg border border-white/10 px-3 py-2">
|
|
167
|
+
<MailIcon className="size-5 shrink-0 text-pink-400 opacity-80" />
|
|
168
|
+
<input
|
|
169
|
+
id="footer20-email"
|
|
170
|
+
type="email"
|
|
171
|
+
value={email}
|
|
172
|
+
onChange={handleEmailChange}
|
|
173
|
+
placeholder="Enter your email"
|
|
174
|
+
className="min-w-0 flex-1 bg-transparent text-base text-white/60 placeholder:text-white/60 focus-visible:outline-none"
|
|
175
|
+
/>
|
|
176
|
+
</div>
|
|
177
|
+
<button
|
|
178
|
+
type="submit"
|
|
179
|
+
className="shrink-0 rounded-lg px-4 py-2 text-base font-semibold text-white transition-opacity duration-200 ease-out hover:opacity-90 focus-visible:outline-2 focus-visible:outline-offset-2"
|
|
180
|
+
style={{
|
|
181
|
+
backgroundImage:
|
|
182
|
+
"linear-gradient(146deg, rgb(249, 206, 52) 31%, rgb(238, 42, 123) 56%, rgb(98, 40, 215) 140%)",
|
|
183
|
+
}}
|
|
184
|
+
>
|
|
185
|
+
Subscribe
|
|
186
|
+
</button>
|
|
187
|
+
</form>
|
|
188
|
+
</div>
|
|
189
|
+
</div>
|
|
190
|
+
|
|
191
|
+
<div className="mt-12 border-t border-white/10 pt-8">
|
|
192
|
+
<p className="text-center text-sm leading-[22px] text-white/60">{copyright}</p>
|
|
193
|
+
</div>
|
|
194
|
+
</div>
|
|
195
|
+
</footer>
|
|
196
|
+
);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
Footer20.propTypes = footer20PropTypes;
|
|
200
|
+
|
|
201
|
+
export default Footer20;
|
|
@@ -0,0 +1,70 @@
|
|
|
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
|
+
links: PropTypes.arrayOf(linkShape),
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
const socialShape = PropTypes.shape({
|
|
13
|
+
label: PropTypes.string.isRequired,
|
|
14
|
+
href: PropTypes.string,
|
|
15
|
+
icon: PropTypes.oneOf(["twitter", "instagram", "facebook", "youtube", "discord"]),
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
export const footer20PropTypes = {
|
|
19
|
+
logoSrc: PropTypes.string,
|
|
20
|
+
logoAlt: PropTypes.string,
|
|
21
|
+
bgSrc: PropTypes.string,
|
|
22
|
+
linkColumns: PropTypes.arrayOf(columnShape),
|
|
23
|
+
newsletterDescription: PropTypes.string,
|
|
24
|
+
email: PropTypes.string,
|
|
25
|
+
onEmailChange: PropTypes.func,
|
|
26
|
+
onNewsletterSubmit: PropTypes.func,
|
|
27
|
+
socialLinks: PropTypes.arrayOf(socialShape),
|
|
28
|
+
copyright: PropTypes.string,
|
|
29
|
+
className: PropTypes.string,
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export const footer20DefaultProps = {
|
|
33
|
+
logoSrc: "/footer/footer20/logo.png",
|
|
34
|
+
logoAlt: "OpenCoins",
|
|
35
|
+
bgSrc: "/footer/footer20/bg.png",
|
|
36
|
+
linkColumns: [
|
|
37
|
+
{
|
|
38
|
+
links: [
|
|
39
|
+
{ label: "Latest Coins", href: "#" },
|
|
40
|
+
{ label: "About Us", href: "#" },
|
|
41
|
+
{ label: "Blog", href: "#" },
|
|
42
|
+
],
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
links: [
|
|
46
|
+
{ label: "Quick Guide", href: "#" },
|
|
47
|
+
{ label: "Customer care", href: "#" },
|
|
48
|
+
{ label: "FAQs", href: "#" },
|
|
49
|
+
],
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
links: [
|
|
53
|
+
{ label: "Join OpenCoins", href: "#" },
|
|
54
|
+
{ label: "Terms & Condition", href: "#" },
|
|
55
|
+
],
|
|
56
|
+
},
|
|
57
|
+
],
|
|
58
|
+
newsletterDescription:
|
|
59
|
+
"Whether you're new to rare coins, or just new to OpenCoins, we're glad you are here. Stay informed of our special offers.",
|
|
60
|
+
email: "",
|
|
61
|
+
socialLinks: [
|
|
62
|
+
{ label: "Twitter", href: "#", icon: "twitter" },
|
|
63
|
+
{ label: "Instagram", href: "#", icon: "instagram" },
|
|
64
|
+
{ label: "Facebook", href: "#", icon: "facebook" },
|
|
65
|
+
{ label: "YouTube", href: "#", icon: "youtube" },
|
|
66
|
+
{ label: "Discord", href: "#", icon: "discord" },
|
|
67
|
+
],
|
|
68
|
+
copyright: "© 2023 OpenCoins Inc.",
|
|
69
|
+
className: "",
|
|
70
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Footer20, default } from "./Footer20";
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import SafeImage from "../../atoms/SafeImage";
|
|
4
|
+
import {
|
|
5
|
+
footer21DefaultProps,
|
|
6
|
+
footer21PropTypes,
|
|
7
|
+
} from "./Footer21.propTypes";
|
|
8
|
+
|
|
9
|
+
function ExternalLinkIcon({ className = "" }) {
|
|
10
|
+
return (
|
|
11
|
+
<svg viewBox="0 0 14 14" fill="none" aria-hidden="true" className={className}>
|
|
12
|
+
<path
|
|
13
|
+
d="M9 2h3v3M12 2L6 8M5 3H3a1 1 0 00-1 1v8a1 1 0 001 1h8a1 1 0 001-1V9"
|
|
14
|
+
stroke="#E42400"
|
|
15
|
+
strokeWidth="1.2"
|
|
16
|
+
strokeLinecap="round"
|
|
17
|
+
strokeLinejoin="round"
|
|
18
|
+
/>
|
|
19
|
+
</svg>
|
|
20
|
+
);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function FooterLink({ link }) {
|
|
24
|
+
return (
|
|
25
|
+
<a
|
|
26
|
+
href={link.href ?? "#"}
|
|
27
|
+
target={link.external ? "_blank" : undefined}
|
|
28
|
+
rel={link.external ? "noopener noreferrer" : undefined}
|
|
29
|
+
className="flex items-center gap-1.5 text-base leading-6 text-white/80 transition-colors duration-200 ease-out hover:text-white focus-visible:outline-2 focus-visible:outline-offset-2"
|
|
30
|
+
>
|
|
31
|
+
<span>{link.label}</span>
|
|
32
|
+
{link.external ? <ExternalLinkIcon className="size-3.5 shrink-0" /> : null}
|
|
33
|
+
</a>
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function SectionBlock({ section }) {
|
|
38
|
+
return (
|
|
39
|
+
<div className="flex min-w-0 flex-col gap-4">
|
|
40
|
+
<p className="text-base font-bold leading-6 text-white">{section.title}</p>
|
|
41
|
+
<ul className="flex flex-col gap-4">
|
|
42
|
+
{section.links.map((link) => (
|
|
43
|
+
<li key={`${section.title}-${link.label}`}>
|
|
44
|
+
<FooterLink link={link} />
|
|
45
|
+
</li>
|
|
46
|
+
))}
|
|
47
|
+
</ul>
|
|
48
|
+
</div>
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Footer21 — Progressive insurance dark multi-section footer.
|
|
54
|
+
* Figma node 32:19982 at 1440px.
|
|
55
|
+
*/
|
|
56
|
+
export function Footer21({
|
|
57
|
+
logoSrc = footer21DefaultProps.logoSrc,
|
|
58
|
+
logoAlt = footer21DefaultProps.logoAlt,
|
|
59
|
+
sections = footer21DefaultProps.sections,
|
|
60
|
+
externalLinks = footer21DefaultProps.externalLinks,
|
|
61
|
+
legalLinks = footer21DefaultProps.legalLinks,
|
|
62
|
+
copyright = footer21DefaultProps.copyright,
|
|
63
|
+
className = "",
|
|
64
|
+
}) {
|
|
65
|
+
const columnGroups = [
|
|
66
|
+
[sections[0], sections[1]],
|
|
67
|
+
[sections[2], sections[3]],
|
|
68
|
+
[sections[4], sections[5]],
|
|
69
|
+
[sections[6]],
|
|
70
|
+
].filter((group) => group.some(Boolean));
|
|
71
|
+
|
|
72
|
+
return (
|
|
73
|
+
<footer
|
|
74
|
+
className={["relative w-full overflow-hidden bg-[#02182f]", className]
|
|
75
|
+
.filter(Boolean)
|
|
76
|
+
.join(" ")}
|
|
77
|
+
data-footer="footer21"
|
|
78
|
+
>
|
|
79
|
+
<div className="mx-auto w-full max-w-[1920px] px-4 py-12 sm:px-6 md:px-10 lg:px-[75px] lg:py-[60px]">
|
|
80
|
+
<div className="grid grid-cols-1 gap-10 sm:grid-cols-2 lg:grid-cols-5 lg:gap-8">
|
|
81
|
+
{columnGroups.map((group, groupIndex) => (
|
|
82
|
+
<div key={groupIndex} className="flex flex-col gap-10">
|
|
83
|
+
{group.map((section) =>
|
|
84
|
+
section ? <SectionBlock key={section.title} section={section} /> : null,
|
|
85
|
+
)}
|
|
86
|
+
</div>
|
|
87
|
+
))}
|
|
88
|
+
<div className="flex flex-col gap-4 pt-0 lg:pt-10">
|
|
89
|
+
<ul className="flex flex-col gap-4">
|
|
90
|
+
{externalLinks.map((link, index) => (
|
|
91
|
+
<li key={`${link.label}-${index}`}>
|
|
92
|
+
<FooterLink link={link} />
|
|
93
|
+
</li>
|
|
94
|
+
))}
|
|
95
|
+
</ul>
|
|
96
|
+
</div>
|
|
97
|
+
</div>
|
|
98
|
+
|
|
99
|
+
<div className="mt-12 flex flex-col gap-4 border-t border-white/20 pt-6">
|
|
100
|
+
<div className="flex flex-col gap-6 lg:flex-row lg:items-center lg:justify-between">
|
|
101
|
+
<SafeImage
|
|
102
|
+
src={logoSrc}
|
|
103
|
+
alt={logoAlt}
|
|
104
|
+
width={210}
|
|
105
|
+
height={42}
|
|
106
|
+
className="h-8 w-auto max-w-[210px] sm:h-10"
|
|
107
|
+
/>
|
|
108
|
+
<div className="flex flex-col gap-4 text-sm leading-[22px] text-white/60 sm:flex-row sm:flex-wrap sm:items-center">
|
|
109
|
+
{legalLinks.map((link, index) => (
|
|
110
|
+
<span key={link.label} className="flex items-center gap-5">
|
|
111
|
+
{index > 0 ? (
|
|
112
|
+
<span className="hidden h-3 w-px bg-white/20 sm:block" aria-hidden="true" />
|
|
113
|
+
) : null}
|
|
114
|
+
<a
|
|
115
|
+
href={link.href ?? "#"}
|
|
116
|
+
className="whitespace-nowrap transition-colors duration-200 ease-out hover:text-white focus-visible:outline-2 focus-visible:outline-offset-2"
|
|
117
|
+
>
|
|
118
|
+
{link.label}
|
|
119
|
+
</a>
|
|
120
|
+
</span>
|
|
121
|
+
))}
|
|
122
|
+
<span className="hidden h-3 w-px bg-white/20 sm:block" aria-hidden="true" />
|
|
123
|
+
<span className="whitespace-nowrap">{copyright}</span>
|
|
124
|
+
</div>
|
|
125
|
+
</div>
|
|
126
|
+
</div>
|
|
127
|
+
</div>
|
|
128
|
+
</footer>
|
|
129
|
+
);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
Footer21.propTypes = footer21PropTypes;
|
|
133
|
+
|
|
134
|
+
export default Footer21;
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import PropTypes from "prop-types";
|
|
2
|
+
|
|
3
|
+
const linkShape = PropTypes.shape({
|
|
4
|
+
label: PropTypes.string.isRequired,
|
|
5
|
+
href: PropTypes.string,
|
|
6
|
+
external: PropTypes.bool,
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
const sectionShape = PropTypes.shape({
|
|
10
|
+
title: PropTypes.string.isRequired,
|
|
11
|
+
links: PropTypes.arrayOf(linkShape),
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
const legalLinkShape = PropTypes.shape({
|
|
15
|
+
label: PropTypes.string.isRequired,
|
|
16
|
+
href: PropTypes.string,
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
export const footer21PropTypes = {
|
|
20
|
+
logoSrc: PropTypes.string,
|
|
21
|
+
logoAlt: PropTypes.string,
|
|
22
|
+
sections: PropTypes.arrayOf(sectionShape),
|
|
23
|
+
externalLinks: PropTypes.arrayOf(linkShape),
|
|
24
|
+
legalLinks: PropTypes.arrayOf(legalLinkShape),
|
|
25
|
+
copyright: PropTypes.string,
|
|
26
|
+
className: PropTypes.string,
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export const footer21DefaultProps = {
|
|
30
|
+
logoSrc: "/footer/footer21/logo.png",
|
|
31
|
+
logoAlt: "Progressive",
|
|
32
|
+
sections: [
|
|
33
|
+
{
|
|
34
|
+
title: "Our Products",
|
|
35
|
+
links: [
|
|
36
|
+
{ label: "Micro Insurance", href: "#" },
|
|
37
|
+
{ label: "Single Insurance", href: "#" },
|
|
38
|
+
{ label: "Group Insurance", href: "#" },
|
|
39
|
+
{ label: "Special Exclusive Insurance", href: "#" },
|
|
40
|
+
{ label: "Macro Insurance", href: "#" },
|
|
41
|
+
],
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
title: "Claims",
|
|
45
|
+
links: [
|
|
46
|
+
{ label: "Claims information", href: "#" },
|
|
47
|
+
{ label: "Claims procedure", href: "#" },
|
|
48
|
+
{ label: "Download claims form", href: "#" },
|
|
49
|
+
{ label: "Outstanding Claim", href: "#" },
|
|
50
|
+
{ label: "Claims gallery", href: "#" },
|
|
51
|
+
],
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
title: "About Us",
|
|
55
|
+
links: [
|
|
56
|
+
{ label: "Who we are", href: "#" },
|
|
57
|
+
{ label: "Corporate Information", href: "#" },
|
|
58
|
+
{ label: "Company Profile", href: "#" },
|
|
59
|
+
],
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
title: "Insurance Support",
|
|
63
|
+
links: [
|
|
64
|
+
{ label: "Support", href: "#" },
|
|
65
|
+
{ label: "Insurance Guidelines", href: "#" },
|
|
66
|
+
{ label: "Bank Assurance", href: "#" },
|
|
67
|
+
{ label: "Digital Platforms", href: "#" },
|
|
68
|
+
{ label: "Others", href: "#" },
|
|
69
|
+
{ label: "Investments", href: "#" },
|
|
70
|
+
],
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
title: "Board",
|
|
74
|
+
links: [
|
|
75
|
+
{ label: "Board of directors", href: "#" },
|
|
76
|
+
{ label: "Sponsor Share Holders", href: "#" },
|
|
77
|
+
{ label: "Share Holding Position", href: "#" },
|
|
78
|
+
{ label: "Executive Committee", href: "#" },
|
|
79
|
+
{ label: "Audit Committee", href: "#" },
|
|
80
|
+
{ label: "NRC Committee", href: "#" },
|
|
81
|
+
],
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
title: "Management Board",
|
|
85
|
+
links: [
|
|
86
|
+
{ label: "Corporate Management", href: "#" },
|
|
87
|
+
{ label: "Executives", href: "#" },
|
|
88
|
+
{ label: "Marketing", href: "#" },
|
|
89
|
+
],
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
title: "Quick Link",
|
|
93
|
+
links: [
|
|
94
|
+
{ label: "Branches", href: "#" },
|
|
95
|
+
{ label: "Financial information", href: "#" },
|
|
96
|
+
{ label: "Investor information", href: "#" },
|
|
97
|
+
{ label: "Reports", href: "#" },
|
|
98
|
+
{ label: "Mujib Corner", href: "#" },
|
|
99
|
+
{ label: "News & events", href: "#" },
|
|
100
|
+
{ label: "Media", href: "#" },
|
|
101
|
+
{ label: "Career", href: "#" },
|
|
102
|
+
],
|
|
103
|
+
},
|
|
104
|
+
],
|
|
105
|
+
externalLinks: [
|
|
106
|
+
{ label: "IDRA", href: "#", external: true },
|
|
107
|
+
{ label: "BSEC", href: "#", external: true },
|
|
108
|
+
{ label: "DSE", href: "#", external: true },
|
|
109
|
+
{ label: "CSE", href: "#", external: true },
|
|
110
|
+
{ label: "CDBL", href: "#", external: true },
|
|
111
|
+
{ label: "CDBL", href: "#", external: true },
|
|
112
|
+
{ label: "Bangladesh Bank", href: "#", external: true },
|
|
113
|
+
{ label: "BIA", href: "#", external: true },
|
|
114
|
+
],
|
|
115
|
+
legalLinks: [
|
|
116
|
+
{ label: "Return & Refund Policy", href: "#" },
|
|
117
|
+
{ label: "Terms & Conditions", href: "#" },
|
|
118
|
+
{ label: "Privacy Policies", href: "#" },
|
|
119
|
+
],
|
|
120
|
+
copyright: "2024 © All Rights Reserved.",
|
|
121
|
+
className: "",
|
|
122
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Footer21, default } from "./Footer21";
|