hds-web 0.1.10 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/chromatic.yml +26 -0
- package/README.md +3 -0
- package/dist/index.css +4 -2
- package/dist/index.es.css +4 -2
- package/dist/index.es.js +11 -3
- package/dist/index.js +11 -3
- package/package.json +7 -3
- package/src/HDS/assets/icons/HasuraPrimary.svg +10 -0
- package/src/HDS/components/BadgesCaption/badges.js +1 -1
- package/src/HDS/components/Buttons/button.js +7 -7
- package/src/HDS/components/Cards/Menu/flyoutB.js +63 -0
- package/src/HDS/components/Cards/Menu/index.js +2 -1
- package/src/HDS/components/Cards/Misc/iconCard.js +22 -0
- package/src/HDS/components/Cards/Misc/index.js +2 -1
- package/src/HDS/components/Cards/Misc/talkCard.js +48 -27
- package/src/HDS/components/Carousels/carouselCard.js +24 -13
- package/src/HDS/components/Headers/customHeader.js +50 -41
- package/src/HDS/components/Headers/v3Header.js +127 -100
- package/src/HDS/components/Hero/h1.js +189 -0
- package/src/HDS/components/Hero/index.js +1 -0
- package/src/HDS/components/Snippet/CodeSnippet.js +58 -58
- package/src/HDS/components/Snippet/index.js +1 -1
- package/src/HDS/components/common-components/Icon/IconMap.js +2 -0
- package/src/HDS/components/index.js +2 -1
- package/src/HDS/foundation/Animations/featureCard.js +77 -0
- package/src/HDS/foundation/Animations/index.js +1 -0
- package/src/HDS/helpers/Time/time.js +48 -70
- package/src/index.css +154 -0
- package/src/styles/tailwind.css +1022 -199
- package/src/HDS/components/Avatars/selectors.js +0 -0
- package/src/HDS/components/Buttons/socialMediaButton.js +0 -78
- package/src/HDS/components/Cards/Misc/featureCard.js +0 -0
- package/src/HDS/foundation/Typography/translated.js +0 -20
@@ -10,37 +10,37 @@ const solutions = [
|
|
10
10
|
name: 'Analytics',
|
11
11
|
description: 'Get a better understanding of where your traffic is coming from.',
|
12
12
|
href: '#',
|
13
|
-
icon: '',
|
13
|
+
icon: 'home03',
|
14
14
|
},
|
15
15
|
{
|
16
16
|
name: 'Engagement',
|
17
17
|
description: 'Speak directly to your customers in a more meaningful way.',
|
18
18
|
href: '#',
|
19
|
-
icon: '',
|
19
|
+
icon: 'home03',
|
20
20
|
},
|
21
21
|
{
|
22
22
|
name: 'Security',
|
23
23
|
description: 'Your customers’ data will be safe and secure.',
|
24
24
|
href: '#',
|
25
|
-
icon: ''
|
25
|
+
icon: 'home03'
|
26
26
|
},
|
27
27
|
{
|
28
28
|
name: 'Integrations',
|
29
29
|
description: "Connect with third-party tools that you're already using.",
|
30
30
|
href: '#',
|
31
|
-
icon: '',
|
31
|
+
icon: 'home03',
|
32
32
|
},
|
33
33
|
{
|
34
34
|
name: 'Automations',
|
35
35
|
description: 'Build strategic funnels that will drive your customers to convert',
|
36
36
|
href: '#',
|
37
|
-
icon: '',
|
37
|
+
icon: 'home03',
|
38
38
|
},
|
39
39
|
{
|
40
40
|
name: 'Reports',
|
41
41
|
description: 'Get detailed reports that will help you make more informed decisions ',
|
42
42
|
href: '#',
|
43
|
-
icon: '',
|
43
|
+
icon: 'home03',
|
44
44
|
},
|
45
45
|
]
|
46
46
|
const resources = [
|
@@ -61,22 +61,19 @@ function classNames(...classes) {
|
|
61
61
|
export default function v3Header() {
|
62
62
|
return (
|
63
63
|
<Popover className="relative bg-white">
|
64
|
-
<div className="flex items-center justify-between p-6 md:justify-start md:space-x-6">
|
64
|
+
<div className="flex items-center bg-neutral-50 justify-between p-6 md:justify-start md:space-x-6">
|
65
65
|
<div>
|
66
66
|
<a href="#" className="flex items-center">
|
67
|
-
<Icon variant={'
|
68
|
-
<Typography className='ml-1.5' textStyle='h4'>HASURA</Typography>
|
67
|
+
<Icon variant={'hasuraPrimary'} strokeColor={''} />
|
69
68
|
</a>
|
70
69
|
</div>
|
71
70
|
<div className="-my-2 -mr-2 md:hidden">
|
72
71
|
<Popover.Button className="inline-flex items-center justify-center rounded-md bg-white p-2 text-gray-400 hover:bg-gray-100 hover:text-gray-500 focus:outline-none focus:ring-2 focus:ring-inset focus:ring-indigo-500">
|
73
72
|
<span className="sr-only">Open menu</span>
|
74
73
|
<div className=' gap-6 flex'>
|
75
|
-
<Icon height={'h-
|
76
|
-
<Icon height={'h-
|
74
|
+
<Icon height={'h-5 w-5'} variant={'searchsm'} strokeColor={'#3970FD'} />
|
75
|
+
<Icon height={'h-5 w-5'} variant={'menu05'} strokeColor={'#3970FD'} />
|
77
76
|
</div>
|
78
|
-
|
79
|
-
|
80
77
|
</Popover.Button>
|
81
78
|
</div>
|
82
79
|
<div className="hidden md:flex md:flex-1 md:items-center md:justify-between">
|
@@ -112,7 +109,7 @@ export default function v3Header() {
|
|
112
109
|
>
|
113
110
|
<Popover.Panel className="absolute z-10 -ml-4 mt-3 w-screen max-w-md transform lg:max-w-3xl">
|
114
111
|
<div className="overflow-hidden rounded-lg shadow-lg ring-1 ring-black ring-opacity-5">
|
115
|
-
<div className="relative grid gap-6 bg-
|
112
|
+
<div className="relative grid gap-6 bg-neutral-0 px-5 py-6 sm:gap-8 sm:p-8 lg:grid-cols-2">
|
116
113
|
{solutions.map((item) => (
|
117
114
|
<a
|
118
115
|
key={item.name}
|
@@ -120,6 +117,7 @@ export default function v3Header() {
|
|
120
117
|
className="-m-3 flex items-start rounded-lg p-3 hover:bg-gray-50"
|
121
118
|
>
|
122
119
|
<div className="flex h-10 w-10 flex-shrink-0 items-center justify-center rounded-md bg-indigo-500 text-white sm:h-12 sm:w-12">
|
120
|
+
|
123
121
|
{/* <item.icon className="h-6 w-6" aria-hidden="true" /> */}
|
124
122
|
</div>
|
125
123
|
<div className="ml-4">
|
@@ -161,69 +159,78 @@ export default function v3Header() {
|
|
161
159
|
Pricing
|
162
160
|
</a>
|
163
161
|
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
162
|
+
<Popover className="relative">
|
163
|
+
{({ open }) => (
|
164
|
+
<>
|
165
|
+
<Popover.Button
|
166
|
+
className={classNames(
|
167
|
+
open ? 'text-gray-900' : 'text-gray-500',
|
168
|
+
'group inline-flex items-center rounded-md bg-white text-base font-medium hover:text-gray-900 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2'
|
169
|
+
)}
|
170
|
+
>
|
171
|
+
<span>More</span>
|
172
|
+
<Icon variant='home03'
|
173
|
+
className={classNames(
|
174
|
+
open ? 'text-gray-600' : 'text-gray-400',
|
175
|
+
'ml-2 h-5 w-5 group-hover:text-gray-500'
|
176
|
+
)}
|
177
|
+
aria-hidden="true"
|
178
|
+
/>
|
179
|
+
<Icon variant={'home03'} strokeColor={'#1EA7FD'} />
|
180
|
+
</Popover.Button>
|
183
181
|
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
182
|
+
<Transition
|
183
|
+
as={Fragment}
|
184
|
+
enter="transition ease-out duration-200"
|
185
|
+
enterFrom="opacity-0 translate-y-1"
|
186
|
+
enterTo="opacity-100 translate-y-0"
|
187
|
+
leave="transition ease-in duration-150"
|
188
|
+
leaveFrom="opacity-100 translate-y-0"
|
189
|
+
leaveTo="opacity-0 translate-y-1"
|
190
|
+
>
|
191
|
+
<Popover.Panel className="absolute left-1/2 z-10 mt-3 w-screen max-w-xs -translate-x-1/2 transform px-2 sm:px-0">
|
192
|
+
<div className="overflow-hidden rounded-lg shadow-lg ring-1 ring-black ring-opacity-5">
|
193
|
+
<div className="relative grid gap-6 bg-white px-5 py-6 sm:gap-8 sm:p-8">
|
194
|
+
{resources.map((item) => (
|
195
|
+
<a key={item.name} href={item.href} className="-m-3 block rounded-md p-3 hover:bg-gray-50">
|
196
|
+
<p className="text-base font-medium text-gray-900">{item.name}</p>
|
197
|
+
<p className="mt-1 text-sm text-gray-500">{item.description}</p>
|
198
|
+
</a>
|
199
|
+
))}
|
200
|
+
</div>
|
201
|
+
</div>
|
202
|
+
</Popover.Panel>
|
203
|
+
</Transition>
|
204
|
+
</>
|
205
|
+
)}
|
206
|
+
</Popover>
|
209
207
|
</Popover.Group>
|
210
208
|
|
211
209
|
|
212
210
|
<div className="flex items-center gap-6 md:ml-12">
|
211
|
+
|
213
212
|
<Icon height={'h-6'} variant={'searchsm'} strokeColor={'#3970FD'} />
|
214
213
|
<HDSButton
|
215
|
-
rightIconVariant="chevronright"
|
216
|
-
rightIconColor='#3970FD'
|
217
214
|
label="Log In"
|
218
|
-
state="default"
|
219
|
-
leftIconVariant=""
|
220
215
|
type='tonal'
|
216
|
+
leftIconVariant='none'
|
217
|
+
rightIconVariant='none'
|
218
|
+
state='default'
|
219
|
+
size='sm'
|
220
|
+
rightAnimatedArrow='true'
|
221
|
+
rightAnimatedArrowColor='#3970FD'
|
222
|
+
animatedHoverStroke='group-hover:stroke-neutral-0'
|
221
223
|
/>
|
222
224
|
<HDSButton
|
223
|
-
rightIconVariant="chevronright"
|
224
225
|
label="Get Started"
|
225
|
-
|
226
|
-
leftIconVariant=
|
226
|
+
type='primary'
|
227
|
+
leftIconVariant='none'
|
228
|
+
rightIconVariant='none'
|
229
|
+
state='default'
|
230
|
+
size='sm'
|
231
|
+
rightAnimatedArrow='true'
|
232
|
+
rightAnimatedArrowColor='#ffffff'
|
233
|
+
animatedHoverStroke='group-hover:stroke-neutral-0'
|
227
234
|
/>
|
228
235
|
|
229
236
|
</div>
|
@@ -242,44 +249,46 @@ export default function v3Header() {
|
|
242
249
|
leaveFrom="opacity-100 scale-100"
|
243
250
|
leaveTo="opacity-0 scale-95"
|
244
251
|
>
|
245
|
-
<Popover.Panel focus className="absolute inset-x-0 top-0 origin-top-right transform
|
246
|
-
<div className="
|
247
|
-
<div className="px-5
|
248
|
-
<div className="flex items-center justify-
|
249
|
-
<div>
|
250
|
-
<img
|
251
|
-
className="h-8 w-auto"
|
252
|
-
src="https://tailwindui.com/img/logos/mark.svg?color=indigo&shade=600"
|
253
|
-
alt="Your Company"
|
254
|
-
/>
|
255
|
-
</div>
|
252
|
+
<Popover.Panel focus className="absolute bg-neutral-0 inset-x-0 top-0 origin-top-right transform transition md:hidden">
|
253
|
+
<div className=" rounded-lg bg-white shadow-lg">
|
254
|
+
<div className="px-5 pt-5 pb-6">
|
255
|
+
<div className="flex items-center justify-end">
|
256
256
|
<div className="-mr-2">
|
257
|
-
<Popover.Button className="inline-flex items-center justify-center rounded-md bg-white p-2 text-gray-400 hover:bg-gray-100 hover:text-gray-500
|
258
|
-
<
|
259
|
-
{/* <Icon variant='home3' className="h-6 w-6" aria-hidden="true" /> */}
|
260
|
-
<Icon height={'h-6'} variant={'menu05'} strokeColor={'#3970FD'} />
|
257
|
+
<Popover.Button className="inline-flex items-center justify-center rounded-md bg-white p-2 text-gray-400 hover:bg-gray-100 hover:text-gray-500 w-full">
|
258
|
+
<Icon height={'h-5 w-5'} variant={'xclose'} strokeColor={'#3970FD'} />
|
261
259
|
</Popover.Button>
|
262
260
|
</div>
|
263
261
|
</div>
|
264
|
-
<div className="mt-6">
|
265
|
-
<
|
262
|
+
<div className="mt-6 ">
|
263
|
+
<div className='flex flex-col items-center'>
|
264
|
+
<img
|
265
|
+
className="inline-block w-full px-4 "
|
266
|
+
src="https://res.cloudinary.com/dh8fp23nd/image/upload/v1683015500/hasura-con-2023/engage_clgotb.png"
|
267
|
+
alt=""
|
268
|
+
/>
|
269
|
+
</div>
|
270
|
+
|
271
|
+
<nav className="grid gap-8 p-6">
|
266
272
|
{solutions.map((item) => (
|
267
273
|
<a
|
268
274
|
key={item.name}
|
269
275
|
href={item.href}
|
270
|
-
className="-m-3 flex items-center rounded-
|
276
|
+
className="-m-3 bg-blue-100 flex items-center rounded-2xl px-6 py-4"
|
271
277
|
>
|
272
|
-
|
273
|
-
|
278
|
+
|
279
|
+
<div className="flex h-10 w-10 flex-shrink-0 items-center justify-center rounded-md bg-indigo-500 text-white">
|
280
|
+
|
281
|
+
<Icon height='h-5 w-5' variant={'home03'} strokeColor={'#3970FD'} />
|
282
|
+
|
274
283
|
</div>
|
275
|
-
<div className="ml-
|
284
|
+
<div className="ml-1 text-base font-medium text-gray-900">{item.name}</div>
|
276
285
|
</a>
|
277
286
|
))}
|
278
287
|
</nav>
|
279
288
|
</div>
|
280
289
|
</div>
|
281
290
|
<div className="py-6 px-5">
|
282
|
-
<div className="grid grid-cols-2 gap-4">
|
291
|
+
{/* <div className="grid grid-cols-2 gap-4">
|
283
292
|
<a href="#" className="text-base font-medium text-gray-900 hover:text-gray-700">
|
284
293
|
Pricing
|
285
294
|
</a>
|
@@ -300,20 +309,38 @@ export default function v3Header() {
|
|
300
309
|
{item.name}
|
301
310
|
</a>
|
302
311
|
))}
|
303
|
-
</div>
|
312
|
+
</div> */}
|
304
313
|
<div className="mt-6">
|
305
|
-
<
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
314
|
+
<div className='flex flex-row justify-around'>
|
315
|
+
<div className='w-full'>
|
316
|
+
<HDSButton
|
317
|
+
label="Log In"
|
318
|
+
type='primary'
|
319
|
+
leftIconVariant='none'
|
320
|
+
rightIconVariant='none'
|
321
|
+
state='default'
|
322
|
+
size='sm'
|
323
|
+
rightAnimatedArrow='true'
|
324
|
+
rightAnimatedArrowColor='#ffffff'
|
325
|
+
animatedHoverStroke='group-hover:stroke-neutral-0'
|
326
|
+
|
327
|
+
/>
|
328
|
+
</div>
|
329
|
+
<div className='w-full'>
|
330
|
+
<HDSButton
|
331
|
+
label="Sign up"
|
332
|
+
type='primary'
|
333
|
+
leftIconVariant='none'
|
334
|
+
rightIconVariant='none'
|
335
|
+
state='default'
|
336
|
+
size='sm'
|
337
|
+
rightAnimatedArrow='true'
|
338
|
+
rightAnimatedArrowColor='#ffffff'
|
339
|
+
animatedHoverStroke='group-hover:stroke-neutral-0'
|
340
|
+
|
341
|
+
/>
|
342
|
+
</div>
|
343
|
+
</div>
|
317
344
|
</div>
|
318
345
|
</div>
|
319
346
|
</div>
|
@@ -0,0 +1,189 @@
|
|
1
|
+
import { useState, useEffect } from "react";
|
2
|
+
import { Typography } from "../../foundation/Typography";
|
3
|
+
import { HDSButton } from "../Buttons";
|
4
|
+
import { HDSColor } from "../../foundation/ColorPalette";
|
5
|
+
import { Icon } from "../common-components";
|
6
|
+
|
7
|
+
export default function Hero({ heroData, logo, scrollArrow, fontSize }) {
|
8
|
+
const [valumeMuteIcon, setValumeMuteIcon] = useState("volumex");
|
9
|
+
const videoMute = () => {
|
10
|
+
if (heroData.video_url) {
|
11
|
+
const videoEle = document.getElementById("hero_vid");
|
12
|
+
if (videoEle?.muted) {
|
13
|
+
videoEle.muted = false;
|
14
|
+
setValumeMuteIcon("volumemax")
|
15
|
+
} else {
|
16
|
+
videoEle.muted = true;
|
17
|
+
setValumeMuteIcon("volumex")
|
18
|
+
}
|
19
|
+
}
|
20
|
+
}
|
21
|
+
|
22
|
+
const videoGradientBg = HDSColor(heroData.video_gradient_bg);
|
23
|
+
return (
|
24
|
+
<div className="db:pt-32 mb-10 db:mb-5 tb:mb-16 tb-l:mb-0">
|
25
|
+
<div className="tb:px-4">
|
26
|
+
<div className={"max-w-7xl mx-auto rounded-3xl overflow-hidden " + ((heroData.bg_color) ? heroData.bg_color : "")} >
|
27
|
+
<div className="w-full">
|
28
|
+
<div className={"db:flex db:w-full tb-l:flex block" + ((heroData.video_url) ? " tb:block" : " tb:flex")}>
|
29
|
+
<div className={"db:px-28 db:py-20 db:pr-0 tb-l:self-center tb-l:min-w-[400px] mx-auto db:ml-0 db:max-w-[625px] db:min-w-[625px] p-5 pt-10 z-[1] tb:p-16 tb-l:py-12" + ((heroData.video_url) ? " tb:max-w-[530px]" : " tb:ml-0 tb:max-w-[290px] tb:min-w-[310px] tb:pr-0")}
|
30
|
+
>
|
31
|
+
{
|
32
|
+
heroData.tag_line && (
|
33
|
+
<div
|
34
|
+
|
35
|
+
>
|
36
|
+
<Typography textStyle="h6" as="h6" className={"pb-6 uppercase text-center db:text-left font-normal tb-l:text-left " + ((heroData.tag_line_color) ? heroData.tag_line_color : "") + ((heroData.video_url) ? " tb:text-center" : " tb:text-left")}
|
37
|
+
>
|
38
|
+
{heroData.tag_line}
|
39
|
+
</Typography>
|
40
|
+
</div>
|
41
|
+
)
|
42
|
+
}
|
43
|
+
{
|
44
|
+
heroData.title && (
|
45
|
+
<div
|
46
|
+
|
47
|
+
>
|
48
|
+
{
|
49
|
+
logo ? (
|
50
|
+
<div className={"pb-4 db:text-left text-center tb-l:text-left" + ((heroData.video_url) ? " tb:text-center" : " tb:text-left")}>
|
51
|
+
<img className="w-[290px] inline-block" src={logo} alt="Brand" />
|
52
|
+
</div>
|
53
|
+
) : (
|
54
|
+
<Typography textStyle={fontSize ? fontSize : "h1"} as="h1" className={"pb-2 text-center break-words db:text-left tb-l:text-left " + ((heroData.title_color) ? heroData.title_color : "") + ((heroData.video_url) ? " tb:text-center" : " tb:text-left")}>{heroData.title}</Typography>
|
55
|
+
)
|
56
|
+
}
|
57
|
+
</div>
|
58
|
+
)
|
59
|
+
}
|
60
|
+
{
|
61
|
+
heroData.sub_title && (
|
62
|
+
<div
|
63
|
+
|
64
|
+
>
|
65
|
+
<Typography textStyle="sub1" className={"text-center db:text-left tb-l:text-left " + ((heroData.sub_title_color) ? heroData.sub_title_color : "") + ((heroData.video_url) ? " tb:text-center" : " tb:text-left")}>{heroData.sub_title}</Typography>
|
66
|
+
</div>
|
67
|
+
)
|
68
|
+
}
|
69
|
+
{
|
70
|
+
heroData.description && (
|
71
|
+
<div
|
72
|
+
|
73
|
+
>
|
74
|
+
<Typography textStyle="sub2" className="text-center tb:text-left db:text-left tb-l:text-left text-blue-700 [&>*]:mb-8 last:[&>*]:mb-0">{heroData.description}</Typography>
|
75
|
+
</div>
|
76
|
+
)
|
77
|
+
}
|
78
|
+
{
|
79
|
+
heroData.buttons && (
|
80
|
+
<div className={" gap-2 flex items-center justify-center tb-l:justify-start db:justify-start pt-6" + ((heroData.video_url) ? " tb:justify-center" : " tb:justify-start")}>
|
81
|
+
{
|
82
|
+
heroData.buttons.map((btn, index) => (
|
83
|
+
<HDSButton
|
84
|
+
leftIconVariant='none'
|
85
|
+
rightIconVariant='none'
|
86
|
+
label={btn.cta_text}
|
87
|
+
state='default'
|
88
|
+
size='lg'
|
89
|
+
rightAnimatedArrow='true'
|
90
|
+
rightAnimatedArrowColor='#ffffff'
|
91
|
+
/>
|
92
|
+
))
|
93
|
+
}
|
94
|
+
</div>
|
95
|
+
)
|
96
|
+
}
|
97
|
+
</div>
|
98
|
+
{
|
99
|
+
heroData.video_url ? (
|
100
|
+
<div className={"relative" + ((heroData.video_gradient_bg) ? "" : " p-4")}>
|
101
|
+
<div className="w-12 h-12 bg-neutral-0 rounded-full absolute right-8 bottom-8 shadow-md cursor-pointer z-[2] flex items-center justify-center" onClick={() => videoMute()}>
|
102
|
+
<Icon height={'w-6 h-6 stroke-neutral-800 stroke-[1.5px]'} variant={valumeMuteIcon} strokeColor="#1F2A37" />
|
103
|
+
</div>
|
104
|
+
<video
|
105
|
+
id="hero_vid"
|
106
|
+
controls={false}
|
107
|
+
// autoPlay
|
108
|
+
loop
|
109
|
+
muted
|
110
|
+
poster="https://res.cloudinary.com/dh8fp23nd/image/upload/v1683311269/hasura-con-2023/hascon23_fallback_homepage_tg5sgv.jpg"
|
111
|
+
width="500"
|
112
|
+
height="500"
|
113
|
+
className={"tb:w-full w-full db:max-w-[500px]" + ((heroData.video_gradient_bg) ? "" : " rounded-xl shadow-md")}
|
114
|
+
>
|
115
|
+
<source
|
116
|
+
src={heroData.video_url}
|
117
|
+
type="video/mp4"
|
118
|
+
/>
|
119
|
+
</video>
|
120
|
+
{
|
121
|
+
heroData.video_gradient_bg && (<div className={`tb-l:w-1/2 w-full h-1/2 tb:h-full absolute left-0 top-0 tb-l:ml-[-4px] tb-l:bg-gradient-to-r ${videoGradientBg} to-transparent bg-gradient-to-b tb:mt-[-4px] tb-l:mt-0`}></div>)
|
122
|
+
}
|
123
|
+
</div>
|
124
|
+
) : (
|
125
|
+
<div className="w-full"
|
126
|
+
variants={{
|
127
|
+
hidden: {
|
128
|
+
opacity: 0,
|
129
|
+
},
|
130
|
+
visible: {
|
131
|
+
opacity: 1,
|
132
|
+
transition: {
|
133
|
+
delay: .2,
|
134
|
+
duration: 1,
|
135
|
+
}
|
136
|
+
},
|
137
|
+
}}
|
138
|
+
>
|
139
|
+
{heroData.img_url && (
|
140
|
+
<div className="text-right pt-0 flex items-end justify-end h-full">
|
141
|
+
<img
|
142
|
+
src={heroData.img_url}
|
143
|
+
alt="Hero"
|
144
|
+
className="db:inline tb:w-[90%] tb-l:w-[70%] db:w-[75%] w-full rounded-b-3xl"
|
145
|
+
/>
|
146
|
+
</div>
|
147
|
+
)}
|
148
|
+
</div>
|
149
|
+
)
|
150
|
+
}
|
151
|
+
</div>
|
152
|
+
</div>
|
153
|
+
</div>
|
154
|
+
{
|
155
|
+
scrollArrow && (
|
156
|
+
<div className=" hidden tb-l:block translate-y-[-20px]">
|
157
|
+
<div className="px-6 flex justify-center pb-16 animate-bounce h-6 grid-cols-3">
|
158
|
+
<svg width="60" height="60" viewBox="0 0 60 60" fill="none" xmlns="http://www.w3.org/2000/svg">
|
159
|
+
<g filter="url(#filter0_dd_1052_3729)">
|
160
|
+
<circle cx="30" cy="26" r="24" fill="white" />
|
161
|
+
<path d="M25 27L30 32L35 27M25 20L30 25L35 20" stroke="#1F2A37" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" />
|
162
|
+
</g>
|
163
|
+
<defs>
|
164
|
+
<filter id="filter0_dd_1052_3729" x="0" y="0" width="60" height="60" filterUnits="userSpaceOnUse" colorInterpolationFilters="sRGB">
|
165
|
+
<feFlood floodOpacity="0" result="BackgroundImageFix" />
|
166
|
+
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha" />
|
167
|
+
<feMorphology radius="2" operator="erode" in="SourceAlpha" result="effect1_dropShadow_1052_3729" />
|
168
|
+
<feOffset dy="2" />
|
169
|
+
<feGaussianBlur stdDeviation="2" />
|
170
|
+
<feColorMatrix type="matrix" values="0 0 0 0 0.109804 0 0 0 0 0.14902 0 0 0 0 0.247059 0 0 0 0.06 0" />
|
171
|
+
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_1052_3729" />
|
172
|
+
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha" />
|
173
|
+
<feMorphology radius="2" operator="erode" in="SourceAlpha" result="effect2_dropShadow_1052_3729" />
|
174
|
+
<feOffset dy="4" />
|
175
|
+
<feGaussianBlur stdDeviation="4" />
|
176
|
+
<feColorMatrix type="matrix" values="0 0 0 0 0.109804 0 0 0 0 0.14902 0 0 0 0 0.247059 0 0 0 0.1 0" />
|
177
|
+
<feBlend mode="normal" in2="effect1_dropShadow_1052_3729" result="effect2_dropShadow_1052_3729" />
|
178
|
+
<feBlend mode="normal" in="SourceGraphic" in2="effect2_dropShadow_1052_3729" result="shape" />
|
179
|
+
</filter>
|
180
|
+
</defs>
|
181
|
+
</svg>
|
182
|
+
</div>
|
183
|
+
</div>
|
184
|
+
)
|
185
|
+
}
|
186
|
+
</div>
|
187
|
+
</div>
|
188
|
+
);
|
189
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
export {default as Hero1} from './h1'
|