hds-web 1.17.3 → 1.17.5

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.
@@ -33,840 +33,156 @@ function classNames(...classes) {
33
33
  return classes.filter(Boolean).join(' ')
34
34
  }
35
35
 
36
+
37
+
36
38
  export default function V3Header(props) {
39
+ const listSize = props.HEADER_LIST.length;
37
40
  const [mobileNavOpen, setmobileNavOpen] = useState(false);
38
41
  const [isProduct, setIsProduct] = useState(false)
39
42
  const [isDeveloper, setIsDeveloper] = useState(false)
40
43
  const [isCompany, setIsCompany] = useState(false)
41
44
  const [currentTab, setCurrentTab] = useState('')
45
+ const [isShown, setIsShown] = useState(false)
42
46
  const [isArrowActive, setIsArrowActive] = useState(false)
43
47
 
44
- const dropdownA = (solutions) => (
48
+ //testing
49
+ const [dropdownVisibility, setDropdownVisibility] = useState(Array(props.HEADER_LIST.length).fill(false));
50
+ console.log(mobileNavOpen, isProduct, dropdownVisibility, currentTab)
51
+ const handleDropdownEnter = (index) => {
52
+ setDropdownVisibility((prevVisibility) => {
53
+ const updatedVisibility = [...prevVisibility];
54
+ updatedVisibility[index] = true;
55
+ return updatedVisibility;
56
+ });
57
+ };
58
+
59
+ const handleDropdownLeave = (index) => {
60
+ setDropdownVisibility((prevVisibility) => {
61
+ const updatedVisibility = [...prevVisibility];
62
+ updatedVisibility[index] = false;
63
+ return updatedVisibility;
64
+ });
65
+ };
66
+
67
+ const renderDropdown = (primaryCard, secondaryCardArr, tertiaryCard) => (
45
68
  <div>
46
69
  <div>
47
- <hr className='w-full h-9 border-0 ' />
70
+ <hr className="w-full h-9 border-0" />
48
71
  </div>
49
-
50
- <div className=" p-2 bg-neutral-150 rounded-3xl ">
72
+ <div className="p-2 bg-neutral-150 rounded-3xl">
51
73
  <V3Dropdown
52
- primaryCard={{
53
- iconVariant: 'hasura',
54
- mainDescription: 'Choose from our open source community edition, fully managed cloud edition or custom enterprise',
55
- primaryBtnLabel: 'Hasura Product',
56
- strokeClass: 'stroke-neutral-800',
57
- secondaryBtn: [
58
- { cta_leftVariantIcon: 'home03', cta_leftVariantIconColor: '#6C737F', cta_text: 'Compare plans' }
59
- ],
60
- }}
61
- secondaryCardArr={[
62
- {
63
- split: true,
64
- childArray: [
65
- {
66
- description: '',
67
- href: '#',
68
- icon: "lightning01",
69
- name: 'Instant API',
70
- strokeClass: 'stroke-blue-500'
71
- },
72
- {
73
- description: '',
74
- href: '#',
75
- icon: 'data',
76
- name: 'Federation',
77
- strokeClass: 'stroke-blue-500'
78
- },
79
- {
80
- description: '',
81
- href: '#',
82
- icon: 'eye',
83
- name: 'Authorization',
84
- strokeClass: 'stroke-blue-500'
85
- },
86
- {
87
- description: '',
88
- href: '#',
89
- icon: 'shieldtick',
90
- name: 'API Security',
91
- strokeClass: 'stroke-blue-500'
92
- },
93
- {
94
- description: '',
95
- href: '#',
96
- icon: 'speedometer03',
97
- name: 'Performance',
98
- strokeClass: 'stroke-blue-500'
99
- },
100
- {
101
- description: '',
102
- href: '#',
103
- icon: "barchartsquare01",
104
- name: 'Observability',
105
- strokeClass: 'stroke-blue-500'
106
- }
107
- ],
108
- label: 'CAPABILITIES'
109
- },
110
- {
111
- childArray: [
112
- {
113
- description: '',
114
- href: '#',
115
- icon: 'database01',
116
- name: 'All DBs',
117
- strokeClass: 'stroke-blue-500'
118
- },
119
- {
120
- description: '',
121
- href: '#',
122
- icon: 'checksquare',
123
- name: 'Planned DBs',
124
- strokeClass: 'stroke-blue-500'
125
- },
126
- ],
127
- label: 'Integrations'
128
- }
129
- ]}
74
+ primaryCard={primaryCard}
75
+ secondaryCardArr={secondaryCardArr}
76
+ tertiaryCard={tertiaryCard}
130
77
  />
131
78
  </div>
132
79
  </div>
133
- )
134
- const dropdownB = (solutions) => (
135
- <div>
136
- <div>
137
- <hr className='w-full h-9 border-0 ' />
138
- </div>
139
-
140
-
141
- <div className=" p-2 bg-neutral-150 rounded-3xl ">
142
- <V3Dropdown
143
-
144
- secondaryCardArr={[
145
- {
146
- childArray: [
147
- {
148
- description: '',
149
- href: '#',
150
- icon: "file02",
151
- name: 'Documentation',
152
- strokeClass: 'stroke-blue-500'
153
- },
154
- {
155
- description: '',
156
- href: '#',
157
- icon: 'hasura',
158
- name: 'Hasura hub',
159
- strokeClass: 'stroke-blue-500'
160
- },
161
- {
162
- description: '',
163
- href: '#',
164
- icon: 'route',
165
- name: 'Guides',
166
- strokeClass: 'stroke-blue-500'
167
- },
168
- {
169
- description: '',
170
- href: '#',
171
- icon: 'asterisk02',
172
- name: 'GraphQL hub',
173
- strokeClass: 'stroke-blue-500'
174
- },
175
- {
176
- description: '',
177
- href: '#',
178
- icon: "codebrowser",
179
- name: 'GraphQL',
180
- strokeClass: 'stroke-blue-500'
181
- },
182
- {
183
- description: '',
184
- href: '#',
185
- icon: 'gitpullrequest',
186
- name: 'Changelog',
187
- strokeClass: 'stroke-blue-500'
188
- }
189
- ],
190
- label: 'BUILD'
191
- },
192
- {
193
-
194
- childArray: [
195
- {
196
- description: '',
197
- href: '#',
198
- icon: 'bookopen01',
199
- name: 'Blog',
200
- strokeClass: 'stroke-blue-500'
201
- },
202
- {
203
- description: '',
204
- href: '#',
205
- icon: 'videorecorder',
206
- name: 'Tech talks',
207
- strokeClass: 'stroke-blue-500'
208
- },
209
- {
210
- description: '',
211
- href: '#',
212
- icon: 'graduationhat02',
213
- name: 'Tutorials',
214
- strokeClass: 'stroke-blue-500'
215
- },
216
- {
217
- description: '',
218
- href: '#',
219
- icon: 'calendarplus02',
220
- name: 'Events',
221
- strokeClass: 'stroke-blue-500'
222
- },
223
- {
224
- description: '',
225
- href: '#',
226
- icon: 'box',
227
- name: 'Resources',
228
- strokeClass: 'stroke-blue-500'
229
- },
230
- ],
231
- label: 'Learn',
232
-
233
- },
234
- {
235
-
236
- childArray: [
237
- {
238
- description: '',
239
- href: '#',
240
- icon: 'users01',
241
- name: 'Community',
242
- strokeClass: 'stroke-blue-500'
243
- },
244
- {
245
- description: '',
246
- href: '#',
247
- icon: 'cube01',
248
- name: 'Discord',
249
- strokeClass: 'stroke-blue-500'
250
- },
251
- {
252
- description: '',
253
- href: '#',
254
- icon: 'cube01',
255
- name: 'Forum',
256
- strokeClass: 'stroke-blue-500'
257
- },
258
- {
259
- description: '',
260
- href: '#',
261
- icon: 'cube01',
262
- name: 'Meetups',
263
- strokeClass: 'stroke-blue-500'
264
- },
265
- {
266
- description: '',
267
- href: '#',
268
- icon: 'hand',
269
- name: 'Support',
270
- strokeClass: 'stroke-blue-500'
271
- },
272
- ],
273
- label: 'Connect',
274
-
275
- },
276
- ]}
277
-
278
- tertiaryCard={[
279
- {
280
- title: 'HasuraCon 2023 is here!',
281
-
282
- title_colorClass: 'text-neutral-900',
283
- img_url: 'https://res.cloudinary.com/hasura-cms-uploads/image/upload/v1687040455/hascon_211daeb83a.png'
284
- },
285
- {
286
- title: 'Top 6 Architecture Trends for API Development',
287
-
288
- title_colorClass: 'text-neutral-900',
289
- img_url: 'https://res.cloudinary.com/hasura-cms-uploads/image/upload/v1687040455/api_trends_0a035678d8.png'
290
- },
291
- {
292
- title: 'Announcing Hasura integration with Snowflake',
293
-
294
- title_colorClass: 'text-neutral-900',
295
- img_url: 'https://res.cloudinary.com/hasura-cms-uploads/image/upload/v1687040455/snowflake_def20494db.png'
296
- },
297
- ]}
298
- />
299
- </div>
300
- </div>
301
- )
302
- const dropdownC = (solutions) => (
303
- <div>
304
- <div>
305
- <hr className='w-full h-9 border-0 ' />
306
- </div>
307
- <div className=" p-2 bg-neutral-150 rounded-3xl ">
308
- <V3Dropdown
309
-
310
- secondaryCardArr={[
311
- {
312
- childArray: [
313
- {
314
- description: '',
315
- href: '#',
316
- icon: "pentool02",
317
- name: 'Our story',
318
- strokeClass: 'stroke-blue-500'
319
- },
320
- {
321
- description: '',
322
- href: '#',
323
- icon: 'data',
324
- name: 'Partners',
325
- strokeClass: 'stroke-blue-500'
326
- },
327
- {
328
- description: '',
329
- href: '#',
330
- icon: 'hearthand',
331
- name: 'Work at Hasura',
332
- strokeClass: 'stroke-blue-500'
333
- },
334
- {
335
- description: '',
336
- href: '#',
337
- icon: 'headingsquare',
338
- name: 'News room',
339
- strokeClass: 'stroke-blue-500'
340
- },
341
- {
342
- description: '',
343
- href: '#',
344
- icon: 'star06',
345
- name: 'Brand',
346
- strokeClass: 'stroke-blue-500'
347
- },
348
-
349
- ],
350
- label: 'Company'
351
- },
352
-
353
- ]}
354
-
355
- tertiaryCard={[
356
- {
357
- title: 'HasuraCon 2023 is here!',
358
-
359
- title_colorClass: 'text-neutral-900',
360
- img_url: 'https://res.cloudinary.com/hasura-cms-uploads/image/upload/v1687040455/hascon_211daeb83a.png'
361
- },
362
- {
363
- title: 'Top 6 Architecture Trends for API Development',
364
-
365
- title_colorClass: 'text-neutral-900',
366
- img_url: 'https://res.cloudinary.com/hasura-cms-uploads/image/upload/v1687040455/api_trends_0a035678d8.png'
367
- },
368
- {
369
- title: 'Announcing Hasura integration with Snowflake',
80
+ );
370
81
 
371
- title_colorClass: 'text-neutral-900',
372
- img_url: 'https://res.cloudinary.com/hasura-cms-uploads/image/upload/v1687040455/snowflake_def20494db.png'
373
- },
374
- ]}
375
- />
376
- </div>
377
- </div>
378
- )
82
+ const renderDropdownContainer = (headerList, id) => {
83
+ const { title, primaryCard, secondaryCardArr, tertiaryCard } = headerList[id];
379
84
 
380
- const headerListfn = (HEADER_LIST) => (
381
- <>
382
- {/* <div id='github_button' className='flex items-center justify-center -mb-2'>
383
- <GithubWidget />
384
- </div> */}
385
-
386
- <div id='dropdown_product'>
387
- {HEADER_LIST[0] && (
85
+ return (
86
+ <div id={`dropdown_${id}`}>
87
+ {headerList[id] && (
388
88
  <div
389
- className="relative "
390
-
391
- onMouseEnter={() => setIsProduct(true)}
392
- onMouseLeave={() => setIsProduct(false)}
393
-
89
+ className="relative"
90
+ onMouseEnter={() => handleDropdownEnter(id)}
91
+ onMouseLeave={() => handleDropdownLeave(id)}
394
92
  >
395
93
  <div
396
94
  className={classNames(
397
95
  'group inline-flex items-center rounded-md bg-white hover:text-gray-900 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2',
398
- isProduct ? '' : 'text-gray-500',
96
+ dropdownVisibility[id] ? '' : 'text-gray-500'
399
97
  )}
400
98
  >
401
-
402
99
  <div className="flex flex-col items-center cursor-pointer">
403
100
  <Typography
404
- className='hover:text-blue-600'
405
- textStyle="body3c-medium">{`${HEADER_LIST[0]['title']} `}</Typography>
101
+ className="hover:text-blue-600"
102
+ textStyle="body3c-medium"
103
+ >
104
+ {`${title} `}
105
+ </Typography>
406
106
  </div>
407
-
408
107
  </div>
409
- <motion.div
410
-
411
-
412
- >
413
- {isProduct && (
108
+ <motion.div>
109
+ {dropdownVisibility[id] && (
414
110
  <div
415
- id='dropdownA'
416
-
417
- className="left-0 z-20 shadow-home-drop "
418
- onMouseEnter={() => setIsProduct(true)}
419
- onMouseLeave={
420
- () => setIsProduct(false)
421
-
422
- }
423
- onScroll={() => setIsProduct(false)} // Keep isProduct true when hovering over dropdown content
111
+ id={`dropdown_${id}_content`}
112
+ className="left-0 z-20"
113
+ onMouseEnter={() => handleDropdownEnter(id)}
114
+ onMouseLeave={() => handleDropdownLeave(id)}
115
+ onScroll={() => handleDropdownLeave(id)}
424
116
  >
425
117
  <motion.div
426
118
  initial={{ opacity: 0 }}
427
119
  animate={{ opacity: 1 }}
428
- transition={{ ease: "easeInOut", duration: 0.1 }}
429
- className='absolute -left-[137px] z-[2] transform'>
430
- {dropdownA(HEADER_LIST[0]['titleDropdown'])}
120
+ transition={{ ease: 'easeInOut', duration: 0.1 }}
121
+ className={"absolute -left-[137px] z-[2] transform " + (dropdownVisibility[0] ? '-left-[137px] ' : '') + (dropdownVisibility[1] ? '-left-[218px]' : '') + (dropdownVisibility[3] ? '-left-[50px] ' : '')}
122
+
123
+ >
124
+ {renderDropdown(
125
+ primaryCard,
126
+ secondaryCardArr,
127
+ tertiaryCard
128
+ )}
431
129
  </motion.div>
432
130
  </div>
433
-
434
131
  )}
435
132
  </motion.div>
436
133
  </div>
437
134
  )}
438
135
  </div>
439
- <div id="dropdown_developer" className='relative' >
440
- {HEADER_LIST[1] && (
441
- <div
442
- className=""
443
- onMouseEnter={() => setIsDeveloper(true)}
444
- onMouseLeave={() => setIsDeveloper(false)}
445
-
446
- >
447
- <div
448
- className={classNames(
449
- 'group inline-flex items-center rounded-md bg-white hover:text-gray-900 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2',
450
- isDeveloper ? '' : 'text-gray-500',
451
- )}
452
- >
453
- <div className="flex flex-col items-center h-full cursor-pointer">
454
- <Typography className='hover:text-blue-600' textStyle="body3c-medium">{`${HEADER_LIST[1]['title']}`}</Typography>
455
- </div>
456
- </div>
457
- {isDeveloper && (
458
- <div
459
-
460
- className="shadow-home-drop "
461
- onMouseEnter={() => setIsDeveloper(true)}
462
- onMouseLeave={() => setIsDeveloper(false)}
463
- onScroll={() => setIsDeveloper(false)} // Keep isProduct true when hovering over dropdown content
464
- >
465
- <motion.div
466
- initial={{ opacity: 0 }}
467
- animate={{ opacity: 1 }}
468
- transition={{ ease: "easeInOut", duration: 0.1 }}
469
- className='absolute -left-[218px] z-[2]'>
470
- {dropdownB(HEADER_LIST[1]['titleDropdown'])}
471
- </motion.div>
472
- </div>
473
- )}
474
- </div>
475
- )}
476
- </div>
477
-
478
- <div id="dropdown_company" >
479
- {HEADER_LIST[3] && (
480
- <div
481
- className="relative"
482
- onMouseEnter={() => setIsCompany(true)}
483
- onMouseLeave={() => setIsCompany(false)}
484
-
485
- >
486
- <div
487
- className={classNames(
488
- 'group inline-flex items-center rounded-md bg-white hover:text-gray-900 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2',
489
- isCompany ? '' : 'text-gray-500',
490
- )}
491
- >
492
- <div className="flex flex-col items-center h-full cursor-pointer">
493
- <Typography className='hover:text-blue-600' textStyle="body3c-medium">{`${HEADER_LIST[3]['title']}`}</Typography>
494
- </div>
495
- </div>
496
- {isCompany && (
497
- <div
498
- className="left-0 z-20 shadow-home-drop "
499
- onMouseEnter={() => setIsCompany(true)}
500
- onMouseLeave={() => setIsCompany(false)}
501
- onScroll={() => setIsCompany(false)} // Keep isProduct true when hovering over dropdown content
502
- >
503
- <motion.div
504
- initial={{ opacity: 0 }}
505
- animate={{ opacity: 1 }}
506
- transition={{ ease: "easeInOut", duration: 0.1 }}
507
- className='absolute -left-[50px] z-[2] transform'>
508
- {dropdownC(HEADER_LIST[3]['titleDropdown'])}
509
- </motion.div>
510
- </div>
511
- )}
512
- </div>
513
- )}
514
- </div>
515
- <div id="dropdown_customers" >
516
- {HEADER_LIST[2] && (
517
- <div
518
- className={classNames(
519
- 'group inline-flex items-center rounded-md bg-white hover:text-gray-900 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2'
520
- )}
521
- >
522
- <div className="flex flex-col items-center h-full cursor-pointer">
523
- <Typography className='hover:text-blue-600' textStyle="body3c-medium">{`${HEADER_LIST[2]['title']}`}</Typography>
524
- </div>
525
- </div>
136
+ );
137
+ };
526
138
 
527
- )}
528
- </div>
529
- <div id="dropdown_pricing" >
530
- {HEADER_LIST[4] && (
531
- <div
532
- className={classNames(
533
- 'group inline-flex items-center rounded-md bg-white hover:text-gray-900 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2'
534
- )}
535
- >
536
- <div className="flex flex-col items-center h-full cursor-pointer">
537
- <Typography className='hover:text-blue-600 ' textStyle="body3c-medium">{`${HEADER_LIST[4]['title']}`}</Typography>
538
- </div>
539
- </div>
540
- )}
541
- </div>
542
139
 
140
+ const headerListfunction = (headerList) => (
141
+ <>
142
+ {renderDropdownContainer(headerList, 0)}
143
+ {renderDropdownContainer(headerList, 1)}
144
+ {renderDropdownContainer(headerList, 3)}
543
145
  </>
544
146
  );
545
147
 
546
- const mobileNav = (Header_LIST) => (
148
+
149
+ //testing
150
+
151
+ const mobileNav = (HEADER_LIST) => (
547
152
  <div className='pt-4 '>
548
153
  <div className='transform transition-all'>
549
154
  {isProduct && (
550
155
  <motion.div
551
156
  className='product_mobile mr-0'>
552
- <div className='mt'>
553
- <V3Dropdown
554
- primaryCard={{
555
- iconVariant: 'hasura',
556
- mainDescription: 'Choose from our open source community edition, fully managed cloud edition or custom enterprise',
557
- primaryBtnLabel: 'Hasura Product',
558
- strokeClass: 'stroke-neutral-800',
559
- secondaryBtn: [
560
- { cta_leftVariantIcon: 'home03', cta_leftVariantIconColor: '#6C737F', cta_text: 'Compare plans' }
561
- ],
562
- }}
563
- secondaryCardArr={[
564
- {
565
- split: true,
566
- childArray: [
567
- {
568
- description: '',
569
- href: '#',
570
- icon: "lightning01",
571
- name: 'Instant API',
572
- strokeClass: 'stroke-blue-500'
573
- },
574
- {
575
- description: '',
576
- href: '#',
577
- icon: 'data',
578
- name: 'Federation',
579
- strokeClass: 'stroke-blue-500'
580
- },
581
- {
582
- description: '',
583
- href: '#',
584
- icon: 'eye',
585
- name: 'Authorization',
586
- strokeClass: 'stroke-blue-500'
587
- },
588
- {
589
- description: '',
590
- href: '#',
591
- icon: 'shieldtick',
592
- name: 'API Security',
593
- strokeClass: 'stroke-blue-500'
594
- },
595
- {
596
- description: '',
597
- href: '#',
598
- icon: 'speedometer03',
599
- name: 'Performance',
600
- strokeClass: 'stroke-blue-500'
601
- },
602
- {
603
- description: '',
604
- href: '#',
605
- icon: "barchartsquare01",
606
- name: 'Observability',
607
- strokeClass: 'stroke-blue-500'
608
- }
609
- ],
610
- label: 'CAPABILITIES'
611
- },
612
- {
613
- childArray: [
614
- {
615
- description: '',
616
- href: '#',
617
- icon: 'cube01',
618
- name: 'All DBs',
619
- strokeClass: 'stroke-blue-500'
620
- },
621
- {
622
- description: '',
623
- href: '#',
624
- icon: 'cube01',
625
- name: 'Planned DBs',
626
- strokeClass: 'stroke-blue-500'
627
- },
628
- ],
629
- label: 'Integrations'
630
- }
631
- ]}
632
- />
633
- </div>
157
+
158
+ <V3Dropdown
159
+ primaryCard={HEADER_LIST[0]['primaryCard']}
160
+ secondaryCardArr={HEADER_LIST[0]['secondaryCardArr']}
161
+ tertiaryCard={HEADER_LIST[0]['tertiaryCard']}
162
+ />
163
+
634
164
  </motion.div>)}
635
165
  {isDeveloper && (
636
166
  <div className='product_developer'>
637
167
  <V3Dropdown
638
-
639
- secondaryCardArr={[
640
- {
641
- childArray: [
642
- {
643
- description: '',
644
- href: '#',
645
- icon: "lightning01",
646
- name: 'Documentation',
647
- strokeClass: 'stroke-blue-500'
648
- },
649
- {
650
- description: '',
651
- href: '#',
652
- icon: 'data',
653
- name: 'Hasura hub',
654
- strokeClass: 'stroke-blue-500'
655
- },
656
- {
657
- description: '',
658
- href: '#',
659
- icon: 'eye',
660
- name: 'Guides',
661
- strokeClass: 'stroke-blue-500'
662
- },
663
- {
664
- description: '',
665
- href: '#',
666
- icon: 'shieldtick',
667
- name: 'GraphQL hub',
668
- strokeClass: 'stroke-blue-500'
669
- },
670
- {
671
- description: '',
672
- href: '#',
673
- icon: 'speedometer03',
674
- name: 'Changelog',
675
- strokeClass: 'stroke-blue-500'
676
- },
677
- {
678
- description: '',
679
- href: '#',
680
- icon: "barchartsquare01",
681
- name: 'GraphQL',
682
- strokeClass: 'stroke-blue-500'
683
- }
684
- ],
685
- label: 'BUILD'
686
- },
687
- {
688
-
689
- childArray: [
690
- {
691
- description: '',
692
- href: '#',
693
- icon: 'cube01',
694
- name: 'Blog',
695
- strokeClass: 'stroke-blue-500'
696
- },
697
- {
698
- description: '',
699
- href: '#',
700
- icon: 'cube01',
701
- name: 'Tech talks',
702
- strokeClass: 'stroke-blue-500'
703
- },
704
- {
705
- description: '',
706
- href: '#',
707
- icon: 'cube01',
708
- name: 'Tutorials',
709
- strokeClass: 'stroke-blue-500'
710
- },
711
- {
712
- description: '',
713
- href: '#',
714
- icon: 'cube01',
715
- name: 'Events',
716
- strokeClass: 'stroke-blue-500'
717
- },
718
- {
719
- description: '',
720
- href: '#',
721
- icon: 'cube01',
722
- name: 'Resources',
723
- strokeClass: 'stroke-blue-500'
724
- },
725
- ],
726
- label: 'Learn',
727
-
728
- },
729
- {
730
-
731
- childArray: [
732
- {
733
- description: '',
734
- href: '#',
735
- icon: 'cube01',
736
- name: 'Community',
737
- strokeClass: 'stroke-blue-500'
738
- },
739
- {
740
- description: '',
741
- href: '#',
742
- icon: 'cube01',
743
- name: 'Discord',
744
- strokeClass: 'stroke-blue-500'
745
- },
746
- {
747
- description: '',
748
- href: '#',
749
- icon: 'cube01',
750
- name: 'Forum',
751
- strokeClass: 'stroke-blue-500'
752
- },
753
- {
754
- description: '',
755
- href: '#',
756
- icon: 'cube01',
757
- name: 'Meetups',
758
- strokeClass: 'stroke-blue-500'
759
- },
760
- {
761
- description: '',
762
- href: '#',
763
- icon: 'cube01',
764
- name: 'Support',
765
- strokeClass: 'stroke-blue-500'
766
- },
767
- ],
768
- label: 'Connect',
769
-
770
- },
771
- ]}
772
-
773
- tertiaryCard={[
774
- {
775
- title: 'HasuraCon 2023 is here!',
776
-
777
- title_colorClass: 'text-neutral-900',
778
- img_url: 'https://res.cloudinary.com/hasura-cms-uploads/image/upload/v1687040455/hascon_211daeb83a.png'
779
- },
780
- {
781
- title: 'Top 6 Architecture Trends for API Development',
782
-
783
- title_colorClass: 'text-neutral-900',
784
- img_url: 'https://res.cloudinary.com/hasura-cms-uploads/image/upload/v1687040455/api_trends_0a035678d8.png'
785
- },
786
- {
787
- title: 'Announcing Hasura integration with Snowflake',
788
-
789
- title_colorClass: 'text-neutral-900',
790
- img_url: 'https://res.cloudinary.com/hasura-cms-uploads/image/upload/v1687040455/snowflake_def20494db.png'
791
- },
792
- ]}
168
+ primaryCard={HEADER_LIST[1]['primaryCard']}
169
+ secondaryCardArr={HEADER_LIST[1]['secondaryCardArr']}
170
+ tertiaryCard={HEADER_LIST[1]['tertiaryCard']}
793
171
  />
794
172
  </div>)
795
173
  }
796
174
  {isCompany && (<div className='product_company'>
797
175
  <V3Dropdown
798
-
799
- secondaryCardArr={[
800
- {
801
- childArray: [
802
- {
803
- description: '',
804
- href: '#',
805
- icon: "lightning01",
806
- name: 'Our story',
807
- strokeClass: 'stroke-blue-500'
808
- },
809
- {
810
- description: '',
811
- href: '#',
812
- icon: 'data',
813
- name: 'Partners',
814
- strokeClass: 'stroke-blue-500'
815
- },
816
- {
817
- description: '',
818
- href: '#',
819
- icon: 'eye',
820
- name: 'Work at Hasura',
821
- strokeClass: 'stroke-blue-500'
822
- },
823
- {
824
- description: '',
825
- href: '#',
826
- icon: 'shieldtick',
827
- name: 'News room',
828
- strokeClass: 'stroke-blue-500'
829
- },
830
- {
831
- description: '',
832
- href: '#',
833
- icon: 'speedometer03',
834
- name: 'Brand',
835
- strokeClass: 'stroke-blue-500'
836
- },
837
-
838
- ],
839
- label: 'Company'
840
- },
841
-
842
- ]}
843
-
844
- tertiaryCard={[
845
- {
846
- title: 'HasuraCon 2023 is here!',
847
-
848
- title_colorClass: 'text-neutral-900',
849
- img_url: 'https://res.cloudinary.com/hasura-cms-uploads/image/upload/v1687040455/hascon_211daeb83a.png'
850
- },
851
- {
852
- title: 'Top 6 Architecture Trends for API Development',
853
-
854
- title_colorClass: 'text-neutral-900',
855
- img_url: 'https://res.cloudinary.com/hasura-cms-uploads/image/upload/v1687040455/api_trends_0a035678d8.png'
856
- },
857
- {
858
- title: 'Announcing Hasura integration with Snowflake',
859
-
860
- title_colorClass: 'text-neutral-900',
861
- img_url: 'https://res.cloudinary.com/hasura-cms-uploads/image/upload/v1687040455/snowflake_def20494db.png'
862
- },
863
- ]}
176
+ primaryCard={HEADER_LIST[3]['primaryCard']}
177
+ secondaryCardArr={HEADER_LIST[3]['secondaryCardArr']}
178
+ tertiaryCard={HEADER_LIST[3]['tertiaryCard']}
864
179
  />
865
180
  </div>)}
866
181
  </div>
867
182
  </div>
868
183
  )
869
184
 
185
+
870
186
  let class1;
871
187
  let class2;
872
188
  let class3;
@@ -887,20 +203,30 @@ export default function V3Header(props) {
887
203
  setIsCompany(false);
888
204
  setIsProduct(false);
889
205
  setCurrentTab('')
206
+ props.HEADER_LIST.forEach((item, index) => {
207
+ // Access the values of each item and the index
208
+ handleDropdownLeave(index)
209
+ });
890
210
  }
891
- function handleBackClick(sda) {
892
- console.log('clicked', sda);
211
+ function handleBackClick() {
893
212
  setIsDeveloper(false);
894
213
  setIsCompany(false);
895
214
  setIsProduct(false);
896
215
  setCurrentTab('');
216
+ props.HEADER_LIST.forEach((item, index) => {
217
+ // Access the values of each item and the index
218
+ handleDropdownLeave(index)
219
+ });
220
+
897
221
  }
898
222
 
899
223
 
900
224
  function handleMbDropdownClick(title) {
901
-
225
+ const i = props.HEADER_LIST.findIndex(item => item.title === title);
226
+ handleDropdownEnter(i);
902
227
  // Implement your logic to open the additional options for the clicked dropdown
903
228
  if (title === 'Developer') {
229
+
904
230
  setIsDeveloper(true);
905
231
  }
906
232
  if (title === 'Product') {
@@ -932,16 +258,23 @@ export default function V3Header(props) {
932
258
  <Icon height='w-[103px] h-[33px]' variant={'hasuraPrimary'} strokeColor={''} />
933
259
  </a>
934
260
  </div>
935
- <div className='hds-hidden-tbl flex z-[10] mr-[30px] items-center gap-6'>
261
+ <div className='hds-hidden-tbl flex z-[10] items-center gap-6'>
936
262
  <div className={'h-full ' + ((mobileNavOpen) ? " hds-hidden" : "")}>
937
263
  <AlgoliaSearch {...props} />
938
264
  </div>
939
- <div onClick={() => handleMbDropdownClose()}>
940
- <div className=' h-5 mt-3 cursor-pointer' >
941
- <div aria-hidden="true" className={`${class1} block absolute h-[2px] w-[15px] bg-neutral-800 transform transition duration-500 ease-in-out`}></div>
942
- <div aria-hidden="true" className={`${class3} block absolute h-0.5 w-[15px] bg-neutral-800 transform transition duration-500 ease-in-out`}></div>
943
- </div>
944
- </div>
265
+ {!(isCompany || isDeveloper || isProduct) &&
266
+ (
267
+ <motion.div
268
+ initial={{ opacity: 0 }}
269
+ animate={{ opacity: 1 }}
270
+ transition={{ duration: 0.3, opacity: { ease: "easeIn" } }}
271
+ className='h-5 w-5 mt-3' onClick={() => handleMbDropdownClose()}>
272
+ <div className=' h-5 cursor-pointer' >
273
+ <div aria-hidden="true" className={`${class1} block absolute h-[2px] w-[15px] bg-neutral-800 transform transition duration-500 ease-in-out`}></div>
274
+ <div aria-hidden="true" className={`${class3} block absolute h-0.5 w-[15px] bg-neutral-800 transform transition duration-500 ease-in-out`}></div>
275
+ </div>
276
+
277
+ </motion.div>)}
945
278
  </div>
946
279
  </div>
947
280
  <div className='hds-hidden tb-l:flex flex-row w-full justify-between items-center'>
@@ -951,23 +284,7 @@ export default function V3Header(props) {
951
284
  onMouseLeave={() => setIsArrowActive(false)}
952
285
 
953
286
  >
954
-
955
- {headerListfn(props.HEADER_LIST)}
956
- {/* <span className="absolute top-8 left-0 w-full">
957
-
958
- {isArrowActive ? (
959
- <div
960
- className={`w-full relative transition-all duration-500 ${isProduct ? 'left-6' : isDeveloper ? 'left-[108px]' : 'left-[200px]'
961
- }`}
962
- >
963
- {(isProduct || isCompany || isDeveloper) &&
964
-
965
- <Icon height="h-5 w-5 fill-neutral-150" variant="triangle" strokeClass="stroke-neutral-150" />
966
- }
967
- </div>
968
- ) : null}
969
- </span> */}
970
-
287
+ {headerListfunction(props.HEADER_LIST)}
971
288
 
972
289
  </nav>
973
290
 
@@ -1018,25 +335,40 @@ export default function V3Header(props) {
1018
335
  <span className="sr-only">Open menu</span> */}
1019
336
 
1020
337
 
1021
- <div className={"bg-neutral-100 hds-hidden-tbl block fixed w-full tb:max-w-[480px] tb:left-auto tb:right-4 mx-auto left-4 top-0 transform transition duration-500 ease-in-out h-[calc(100%-1px)] max-h-screen overflow-y-auto" + ((mobileNavOpen) ? " translate-x-0" : " translate-x-[1240px]")}>
338
+ <div className={"bg-neutral-100 shadow-sh1 hds-hidden-tbl block fixed w-full tb:max-w-[480px] tb:left-auto tb:right-0 mx-auto left-4 top-0 transform transition duration-500 ease-in-out h-[calc(100%-1px)] max-h-screen overflow-y-auto" + ((mobileNavOpen) ? " translate-x-0" : " translate-x-[1240px]")}>
1022
339
 
1023
- <div className="bg-neutral-100 h-[calc(100%-80px)] rounded-2xl overflow-scroll ">
340
+ <div className="bg-neutral-100 h-[calc(100%-80px)] rounded-2xl overflow-y-scroll scrollbar-hide">
1024
341
 
1025
- <div className='pt-9 pb-4 mr-[17px] min-h-[36px] flex flex-row justify-between items-center sticky top-0 bg-neutral-100 z-50 '>
1026
- {(isCompany || isDeveloper || isProduct) && <div
1027
- className=' flex flex-row justify-start z-10'
1028
- onClick={() => handleBackClick()}
342
+ <div className='pt-6 pb-4 tb:mr-[16px] mr-[34px] min-h-[36px] flex flex-row justify-between items-center sticky top-0 bg-neutral-100 z-50 '>
343
+ {(isCompany || isDeveloper || isProduct) &&
344
+ (
345
+ <div
346
+ className=' flex flex-row justify-start z-10'
347
+ onClick={() => handleBackClick()}
1029
348
 
1030
- >
1031
- <Icon height='w-5 h-5 ml-4 cursor-pointer' variant={'arrowleft'} strokeClass='stroke-neutral-1000' />
1032
- </div>}
349
+ >
350
+ <Icon height='w-5 h-5 ml-4 cursor-pointer' variant={'arrowleft'} strokeClass='stroke-neutral-1000' />
351
+ </div>
352
+ )}
1033
353
  <motion.div
1034
354
  initial={{ opacity: 0 }}
1035
355
  animate={{ opacity: 1 }}
1036
356
  transition={{ duration: 0.4, opacity: { ease: "easeIn" } }}
1037
- className='w-full justify-center -ml-9 flex '>
357
+ className='w-full justify-center flex '>
1038
358
  <Typography textStyle='body3c-medium' className='text-neutral-900'>{currentTab}</Typography>
1039
359
  </motion.div>
360
+ {(isCompany || isDeveloper || isProduct) &&
361
+ (
362
+ <motion.div
363
+ initial={{ opacity: 0 }}
364
+ animate={{ opacity: 1 }}
365
+ transition={{ duration: 0.4, opacity: { ease: "easeIn" } }}
366
+ className=' flex flex-row justify-start z-10'
367
+ onClick={() => handleMbDropdownClose()}
368
+
369
+ >
370
+ <Icon height='w-5 h-5 ml-4 stroke-2 cursor-pointer' variant={'xclose'} strokeClass='stroke-neutral-1000' />
371
+ </motion.div>)}
1040
372
 
1041
373
  </div>
1042
374
  <AnimatePresence mode='wait' exit={false} >
@@ -1051,7 +383,7 @@ export default function V3Header(props) {
1051
383
  className="flex flex-col justify-between "
1052
384
  >
1053
385
  <div className="flex flex-col justify-between rounded-2xl h-full">
1054
- <div className="pl-4 pr-[34px]">
386
+ <div className="pl-4 pr-8 tb:pr-4">
1055
387
  {mobileNav(props.HEADER_LIST)}
1056
388
  </div>
1057
389
  </div>
@@ -1070,7 +402,7 @@ export default function V3Header(props) {
1070
402
  alt=""
1071
403
  />
1072
404
  </div>
1073
- <nav className="grid divide-y mr-8 bg-neutral-0 divide-neutral-200 border border-neutral-200 rounded-3xl mb-6">
405
+ <nav className="grid divide-y mr-8 tb:mr-4 bg-neutral-0 divide-neutral-200 border border-neutral-200 rounded-3xl mb-6">
1074
406
  {props.HEADER_LIST.map((item) => (
1075
407
  <div
1076
408
  key={item['title']}
@@ -1107,6 +439,7 @@ export default function V3Header(props) {
1107
439
  rightAnimatedArrow='true'
1108
440
  rightAnimatedArrowColor='#3970FD'
1109
441
  animatedHoverStroke='group-hover:stroke-neutral-0'
442
+ className=' !w-full'
1110
443
  />
1111
444
  </a>
1112
445
  <a href='https://cloud.hasura.io/signup?pg=home&plcmt=header&cta=try-hasura&tech=default' className='w-1/2'>
@@ -1120,6 +453,7 @@ export default function V3Header(props) {
1120
453
  rightAnimatedArrow='true'
1121
454
  rightAnimatedArrowColor='#ffffff'
1122
455
  animatedHoverStroke='group-hover:stroke-neutral-0'
456
+ className=' !w-full'
1123
457
  />
1124
458
  </a>
1125
459
  </div>
@@ -1130,99 +464,6 @@ export default function V3Header(props) {
1130
464
 
1131
465
  </div>
1132
466
  </div>
1133
-
1134
-
1135
-
1136
- {/* mobile menu */}
1137
- <>
1138
- <div>
1139
-
1140
-
1141
- <div className="absolute h-[calc(100%-112px)] bg-base-0 z-[1] inset-x-0 top-0 origin-top-right hds-hidden transform transition">
1142
- <div className=" rounded-lg bg-neutral-0 h-[calc(100%-112px)] shadow-lg">
1143
- <div className="bg-neutral-0">
1144
- {/* <div className="flex items-center justify-end">
1145
- <div className="">
1146
- <div className="inline-flex items-center justify-center pt-4 pr-4 w-full focus:ring-0">
1147
- <Icon height={'h-5 w-5'} variant={'xclose'} strokeColor={'#3970FD'} />
1148
- </div>
1149
- </div>
1150
- </div> */}
1151
- <div className="mt-6 flex flex-col gap-6">
1152
- <div className='flex flex-col items-center'>
1153
- <img
1154
- className="inline-block w-full px-4 "
1155
- src="https://res.cloudinary.com/dh8fp23nd/image/upload/v1683015500/hasura-con-2023/engage_clgotb.png"
1156
- alt=""
1157
- />
1158
- </div>
1159
-
1160
- <nav className="grid divide-y divide-neutral-200 border border-neutral-200 rounded-3xl hds-hidden-tbl ">
1161
- {props.HEADER_LIST.map((item) => (
1162
- <div
1163
- key={item['title']}
1164
- href='#'
1165
- className="flex justify-between items-center p-4 cursor-pointer"
1166
- >
1167
- {headerListfn(props.HEADER_LIST)}
1168
-
1169
- <div className="flex items-center justify-center gap-2 ">
1170
-
1171
- <Icon height='h-5 w-5' variant={'home03'} strokeColor={'#3970FD'} />
1172
-
1173
-
1174
- <Typography textStyle='body3c-medium' className='text-neutral-900'>
1175
- {`${item['title']}`}
1176
- </Typography>
1177
- </div>
1178
-
1179
- <Icon height='h-5 w-5 stroke-[1.5px]' variant={'chevronright'} strokeClass='stroke-neutral-500' />
1180
- </div>
1181
- ))}
1182
- </nav>
1183
- </div>
1184
- </div>
1185
- <div className="py-6 px-5 ">
1186
- <div className="mt-6 ">
1187
- <div className='flex flex-row justify-around'>
1188
- <div className='w-full flex gap-2'>
1189
- <div className='w-1/2'>
1190
- <HDSButton
1191
- label="Log In"
1192
- type='tonal'
1193
- leftIconVariant='none'
1194
- rightIconVariant='none'
1195
- state='default'
1196
- size='sm'
1197
- rightAnimatedArrow='true'
1198
- rightAnimatedArrowColor='#3970FD'
1199
- animatedHoverStroke='group-hover:stroke-neutral-0'
1200
-
1201
-
1202
- />
1203
- </div>
1204
- <div className='w-1/2'>
1205
- <HDSButton
1206
- label="Sign up"
1207
- type='primary'
1208
- leftIconVariant='none'
1209
- rightIconVariant='none'
1210
- state='default'
1211
- size='sm'
1212
- rightAnimatedArrow='true'
1213
- rightAnimatedArrowColor='#ffffff'
1214
- animatedHoverStroke='group-hover:stroke-neutral-0'
1215
- />
1216
- </div>
1217
- </div>
1218
- </div>
1219
- </div>
1220
- </div>
1221
- </div>
1222
- </div>
1223
- </div>
1224
- </>
1225
- {/* mobile menu */}
1226
467
  </div>
1227
468
  )
1228
469
  }
@@ -1231,62 +472,243 @@ V3Header.defaultProps = {
1231
472
  HEADER_LIST: [
1232
473
  {
1233
474
  title: 'Product',
1234
- titleDropdown: [
1235
- {
1236
- name: 'Analytics',
1237
- description: 'Get a better understanding of where your traffic is coming from.',
1238
- href: '#',
1239
- icon: 'home03',
1240
- },
1241
- {
1242
- name: 'Engagement',
1243
- description: 'Speak directly to your customers in a more meaningful way.',
1244
- href: '#',
1245
- icon: 'home03',
1246
- },
475
+ primaryCard: {
476
+ iconVariant: 'hasura',
477
+ mainDescription: 'Choose from our open source community edition, fully managed cloud edition or custom enterprise',
478
+ primaryBtnLabel: 'Hasura Product',
479
+ strokeClass: 'stroke-neutral-800',
480
+ secondaryBtn: [
481
+ { cta_leftVariantIcon: 'home03', cta_leftVariantIconColor: '#6C737F', cta_text: 'Compare plans' }
482
+ ],
483
+ },
484
+ secondaryCardArr:
485
+ [
486
+ {
487
+ split: true,
488
+ childArray: [
489
+ {
490
+ description: '',
491
+ href: '#',
492
+ icon: "lightning01",
493
+ name: 'Instant API',
494
+ strokeClass: 'stroke-blue-500'
495
+ },
496
+ {
497
+ description: '',
498
+ href: '#',
499
+ icon: 'data',
500
+ name: 'Federation',
501
+ strokeClass: 'stroke-blue-500'
502
+ },
503
+ {
504
+ description: '',
505
+ href: '#',
506
+ icon: 'eye',
507
+ name: 'Authorization',
508
+ strokeClass: 'stroke-blue-500'
509
+ },
510
+ {
511
+ description: '',
512
+ href: '#',
513
+ icon: 'shieldtick',
514
+ name: 'API Security',
515
+ strokeClass: 'stroke-blue-500'
516
+ },
517
+ {
518
+ description: '',
519
+ href: '#',
520
+ icon: 'speedometer03',
521
+ name: 'Performance',
522
+ strokeClass: 'stroke-blue-500'
523
+ },
524
+ {
525
+ description: '',
526
+ href: '#',
527
+ icon: "barchartsquare01",
528
+ name: 'Observability',
529
+ strokeClass: 'stroke-blue-500'
530
+ }
531
+ ],
532
+ label: 'CAPABILITIES'
533
+ },
534
+ {
535
+ childArray: [
536
+ {
537
+ description: '',
538
+ href: '#',
539
+ icon: 'database01',
540
+ name: 'All DBs',
541
+ strokeClass: 'stroke-blue-500'
542
+ },
543
+ {
544
+ description: '',
545
+ href: '#',
546
+ icon: 'checksquare',
547
+ name: 'Planned DBs',
548
+ strokeClass: 'stroke-blue-500'
549
+ },
550
+ ],
551
+ label: 'Integrations'
552
+ }
553
+ ]
554
+ },
555
+ {
556
+
557
+ title: 'Developer',
558
+ secondaryCardArr: [
1247
559
  {
1248
- name: 's',
1249
- description: 'Your customers’ data will be safe and secure.',
1250
- href: '#',
1251
- icon: 'home03'
560
+ childArray: [
561
+ {
562
+ description: '',
563
+ href: '#',
564
+ icon: "file02",
565
+ name: 'Documentation',
566
+ strokeClass: 'stroke-blue-500'
567
+ },
568
+ {
569
+ description: '',
570
+ href: '#',
571
+ icon: 'hasura',
572
+ name: 'Hasura hub',
573
+ strokeClass: 'stroke-blue-500'
574
+ },
575
+ {
576
+ description: '',
577
+ href: '#',
578
+ icon: 'route',
579
+ name: 'Guides',
580
+ strokeClass: 'stroke-blue-500'
581
+ },
582
+ {
583
+ description: '',
584
+ href: '#',
585
+ icon: 'asterisk02',
586
+ name: 'GraphQL hub',
587
+ strokeClass: 'stroke-blue-500'
588
+ },
589
+ {
590
+ description: '',
591
+ href: '#',
592
+ icon: "codebrowser",
593
+ name: 'GraphQL',
594
+ strokeClass: 'stroke-blue-500'
595
+ },
596
+ {
597
+ description: '',
598
+ href: '#',
599
+ icon: 'gitpullrequest',
600
+ name: 'Changelog',
601
+ strokeClass: 'stroke-blue-500'
602
+ }
603
+ ],
604
+ label: 'BUILD'
1252
605
  },
1253
606
  {
1254
- name: 'Securidty',
1255
- description: 'Your customers’ data will be safe and secure.',
1256
- href: '#',
1257
- icon: 'home03'
607
+
608
+ childArray: [
609
+ {
610
+ description: '',
611
+ href: '#',
612
+ icon: 'bookopen01',
613
+ name: 'Blog',
614
+ strokeClass: 'stroke-blue-500'
615
+ },
616
+ {
617
+ description: '',
618
+ href: '#',
619
+ icon: 'videorecorder',
620
+ name: 'Tech talks',
621
+ strokeClass: 'stroke-blue-500'
622
+ },
623
+ {
624
+ description: '',
625
+ href: '#',
626
+ icon: 'graduationhat02',
627
+ name: 'Tutorials',
628
+ strokeClass: 'stroke-blue-500'
629
+ },
630
+ {
631
+ description: '',
632
+ href: '#',
633
+ icon: 'calendarplus02',
634
+ name: 'Events',
635
+ strokeClass: 'stroke-blue-500'
636
+ },
637
+ {
638
+ description: '',
639
+ href: '#',
640
+ icon: 'box',
641
+ name: 'Resources',
642
+ strokeClass: 'stroke-blue-500'
643
+ },
644
+ ],
645
+ label: 'Learn',
646
+
1258
647
  },
1259
648
  {
1260
- name: 'Secudristy',
1261
- description: 'Your customers’ data will be safe and secure.',
1262
- href: '#',
1263
- icon: 'home03'
649
+
650
+ childArray: [
651
+ {
652
+ description: '',
653
+ href: '#',
654
+ icon: 'users01',
655
+ name: 'Community',
656
+ strokeClass: 'stroke-blue-500'
657
+ },
658
+ {
659
+ description: '',
660
+ href: '#',
661
+ icon: 'cube01',
662
+ name: 'Discord',
663
+ strokeClass: 'stroke-blue-500'
664
+ },
665
+ {
666
+ description: '',
667
+ href: '#',
668
+ icon: 'cube01',
669
+ name: 'Forum',
670
+ strokeClass: 'stroke-blue-500'
671
+ },
672
+ {
673
+ description: '',
674
+ href: '#',
675
+ icon: 'cube01',
676
+ name: 'Meetups',
677
+ strokeClass: 'stroke-blue-500'
678
+ },
679
+ {
680
+ description: '',
681
+ href: '#',
682
+ icon: 'hand',
683
+ name: 'Support',
684
+ strokeClass: 'stroke-blue-500'
685
+ },
686
+ ],
687
+ label: 'Connect',
688
+
1264
689
  },
1265
690
  ],
1266
- },
1267
- {
1268
691
 
1269
- title: 'Developer',
1270
- titleDropdown: [
692
+ tertiaryCard: [
1271
693
  {
1272
- name: 'Analytics',
1273
- description: 'Get a better understanding of where your traffic is coming from.',
1274
- href: '#',
1275
- icon: 'home03',
694
+ title: 'HasuraCon 2023 is here!',
695
+
696
+ title_colorClass: 'text-neutral-900',
697
+ img_url: 'https://res.cloudinary.com/hasura-cms-uploads/image/upload/v1687040455/hascon_211daeb83a.png'
1276
698
  },
1277
699
  {
1278
- name: 'Engagement',
1279
- description: 'Speak directly to your customers in a more meaningful way.',
1280
- href: '#',
1281
- icon: 'home03',
700
+ title: 'Top 6 Architecture Trends for API Development',
701
+
702
+ title_colorClass: 'text-neutral-900',
703
+ img_url: 'https://res.cloudinary.com/hasura-cms-uploads/image/upload/v1687040455/api_trends_0a035678d8.png'
1282
704
  },
1283
705
  {
1284
- name: 'Security',
1285
- description: 'Your customers’ data will be safe and secure.',
1286
- href: '#',
1287
- icon: 'home03'
706
+ title: 'Announcing Hasura integration with Snowflake',
707
+
708
+ title_colorClass: 'text-neutral-900',
709
+ img_url: 'https://res.cloudinary.com/hasura-cms-uploads/image/upload/v1687040455/snowflake_def20494db.png'
1288
710
  },
1289
- ],
711
+ ]
1290
712
  },
1291
713
  {
1292
714
 
@@ -1298,26 +720,71 @@ V3Header.defaultProps = {
1298
720
  {
1299
721
 
1300
722
  title: 'Company',
1301
- titleDropdown: [
723
+ secondaryCardArr: [
1302
724
  {
1303
- name: 'Analytics',
1304
- description: 'Get a better understanding of where your traffic is coming from.',
1305
- href: '#',
1306
- icon: 'home03',
725
+ childArray: [
726
+ {
727
+ description: '',
728
+ href: '#',
729
+ icon: "pentool02",
730
+ name: 'Our story',
731
+ strokeClass: 'stroke-blue-500'
732
+ },
733
+ {
734
+ description: '',
735
+ href: '#',
736
+ icon: 'data',
737
+ name: 'Partners',
738
+ strokeClass: 'stroke-blue-500'
739
+ },
740
+ {
741
+ description: '',
742
+ href: '#',
743
+ icon: 'hearthand',
744
+ name: 'Work at Hasura',
745
+ strokeClass: 'stroke-blue-500'
746
+ },
747
+ {
748
+ description: '',
749
+ href: '#',
750
+ icon: 'headingsquare',
751
+ name: 'News room',
752
+ strokeClass: 'stroke-blue-500'
753
+ },
754
+ {
755
+ description: '',
756
+ href: '#',
757
+ icon: 'star06',
758
+ name: 'Brand',
759
+ strokeClass: 'stroke-blue-500'
760
+ },
761
+
762
+ ],
763
+ label: 'Company'
764
+ },
765
+
766
+ ],
767
+
768
+ tertiaryCard: [
769
+ {
770
+ title: 'HasuraCon 2023 is here!',
771
+
772
+ title_colorClass: 'text-neutral-900',
773
+ img_url: 'https://res.cloudinary.com/hasura-cms-uploads/image/upload/v1687040455/hascon_211daeb83a.png'
1307
774
  },
1308
775
  {
1309
- name: 'Engagement',
1310
- description: 'Speak directly to your customers in a more meaningful way.',
1311
- href: '#',
1312
- icon: 'home03',
776
+ title: 'Top 6 Architecture Trends for API Development',
777
+
778
+ title_colorClass: 'text-neutral-900',
779
+ img_url: 'https://res.cloudinary.com/hasura-cms-uploads/image/upload/v1687040455/api_trends_0a035678d8.png'
1313
780
  },
1314
781
  {
1315
- name: 'Security',
1316
- description: 'Your customers’ data will be safe and secure.',
1317
- href: '#',
1318
- icon: 'home03'
782
+ title: 'Announcing Hasura integration with Snowflake',
783
+
784
+ title_colorClass: 'text-neutral-900',
785
+ img_url: 'https://res.cloudinary.com/hasura-cms-uploads/image/upload/v1687040455/snowflake_def20494db.png'
1319
786
  },
1320
- ],
787
+ ]
1321
788
  },
1322
789
  {
1323
790
 
@@ -1325,30 +792,6 @@ V3Header.defaultProps = {
1325
792
  href: ''
1326
793
 
1327
794
  },
1328
- // {
1329
-
1330
- // title: 'Pricing',
1331
- // titleDropdown: [
1332
- // {
1333
- // name: 'Analytics',
1334
- // description: 'Get a better understanding of where your traffic is coming from.',
1335
- // href: '#',
1336
- // icon: 'home03',
1337
- // },
1338
- // {
1339
- // name: 'Engagement',
1340
- // description: 'Speak directly to your customers in a more meaningful way.',
1341
- // href: '#',
1342
- // icon: 'home03',
1343
- // },
1344
- // {
1345
- // name: 'Security',
1346
- // description: 'Your customers’ data will be safe and secure.',
1347
- // href: '#',
1348
- // icon: 'home03'
1349
- // },
1350
- // ]
1351
- // },
1352
795
 
1353
796
 
1354
797
  ],