hds-web 1.6.7 → 1.6.8
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/dist/index.css +2 -5
- package/dist/index.es.css +2 -5
- package/dist/index.es.js +13 -13
- package/dist/index.js +13 -13
- package/package.json +1 -1
- package/src/HDS/assets/icons/calendar-plus-01.svg +1 -1
- package/src/HDS/assets/icons/calendar-plus-02.svg +1 -1
- package/src/HDS/components/Avatars/hasConAv.js +10 -9
- package/src/HDS/components/Avatars/profileAvatar.js +29 -10
- package/src/HDS/components/BadgesCaption/badges.js +4 -7
- package/src/HDS/components/Buttons/button.js +14 -25
- package/src/HDS/components/Cards/Dropdown/v3Dropdown.js +1 -1
- package/src/HDS/components/Cards/Feedback/feedback.js +1 -1
- package/src/HDS/components/Cards/Link/link.js +13 -19
- package/src/HDS/components/Cards/Menu/flyout.js +4 -5
- package/src/HDS/components/Cards/Menu/flyoutA.js +4 -5
- package/src/HDS/components/Cards/Menu/flyoutFull.js +0 -1
- package/src/HDS/components/Cards/Misc/iconCard.js +60 -71
- package/src/HDS/components/Cards/Misc/index.js +0 -1
- package/src/HDS/components/Cards/Misc/talkCard.js +18 -19
- package/src/HDS/components/Cards/TalkDetailCard/talkDetailCard.js +52 -83
- package/src/HDS/components/Carousels/carouselCard.js +90 -101
- package/src/HDS/components/Headers/v3Header.js +85 -111
- package/src/HDS/components/Hero/h2.js +36 -58
- package/src/HDS/components/Hero/index.js +1 -2
- package/src/HDS/components/Tables/index.js +1 -2
- package/src/HDS/components/Tables/tableB.js +10 -10
- package/src/HDS/components/Tables/tableC.js +23 -20
- package/src/HDS/components/Tabs/tab.js +16 -47
- package/src/HDS/components/common-components/Icon/IconMap.js +0 -6
- package/src/HDS/components/index.js +1 -2
- package/src/HDS/foundation/ColorPalette/color.js +1 -193
- package/src/HDS/foundation/Typography/Typography.js +1 -2
- package/src/HDS/helpers/index.js +1 -2
- package/src/HDS/modules/TextCard/textCard.js +71 -8
- package/src/HDS/modules/index.js +1 -2
- package/src/index.css +1 -39
- package/src/styles/tailwind.css +1842 -3151
- package/tailwind.config.js +3 -6
- package/src/HDS/assets/icons/hasura-1.svg +0 -3
- package/src/HDS/assets/icons/hasura-2.svg +0 -3
- package/src/HDS/assets/icons/hasura-3.svg +0 -3
- package/src/HDS/components/Cards/ImageBox/imagebox.js +0 -51
- package/src/HDS/components/Cards/ImageBox/index.js +0 -1
- package/src/HDS/components/Cards/Misc/talkcard2.js +0 -118
- package/src/HDS/components/Hero/h3.js +0 -413
- package/src/HDS/components/Tables/tableD.js +0 -326
- package/src/HDS/helpers/Grid/grid.js +0 -64
- package/src/HDS/helpers/Grid/index.js +0 -1
- package/src/HDS/helpers/Media/index.js +0 -1
- package/src/HDS/helpers/Media/mediabox.js +0 -75
- package/src/HDS/modules/navCard/index.js +0 -1
- package/src/HDS/modules/navCard/navCard.js +0 -82
package/tailwind.config.js
CHANGED
@@ -19,7 +19,6 @@ module.exports = {
|
|
19
19
|
'"Segoe UI Symbol"',
|
20
20
|
'"Noto Color Emoji"',
|
21
21
|
],
|
22
|
-
petrona: ['Petrona', 'sans']
|
23
22
|
},
|
24
23
|
|
25
24
|
colors: {
|
@@ -169,9 +168,7 @@ module.exports = {
|
|
169
168
|
extend: {
|
170
169
|
screens: {
|
171
170
|
'mb-s': '360px',
|
172
|
-
'mb-m':'400px',
|
173
171
|
'tb': '600px',
|
174
|
-
'tb-m': '800px',
|
175
172
|
'tb-l': '905px',
|
176
173
|
'db': '1240px',
|
177
174
|
'db-l': '2560px'
|
@@ -512,7 +509,7 @@ module.exports = {
|
|
512
509
|
// add more for more breakpoints
|
513
510
|
|
514
511
|
// body2-medium-style
|
515
|
-
'hds-m-body2-medium': ['
|
512
|
+
'hds-m-body2-medium': ['875rem', {
|
516
513
|
lineHeight: '1.5rem',
|
517
514
|
letterSpacing: '',
|
518
515
|
fontWeight: '500',
|
@@ -530,7 +527,7 @@ module.exports = {
|
|
530
527
|
// add more for more breakpoints
|
531
528
|
|
532
529
|
// body2-semi-bold-style
|
533
|
-
'hds-m-body2-semi-bold': ['
|
530
|
+
'hds-m-body2-semi-bold': ['875rem', {
|
534
531
|
lineHeight: '1.5rem',
|
535
532
|
letterSpacing: '',
|
536
533
|
fontWeight: '600',
|
@@ -548,7 +545,7 @@ module.exports = {
|
|
548
545
|
// add more for more breakpoints
|
549
546
|
|
550
547
|
// body2-bold-style
|
551
|
-
'hds-m-body2-bold': ['
|
548
|
+
'hds-m-body2-bold': ['875rem', {
|
552
549
|
lineHeight: '1.5rem',
|
553
550
|
letterSpacing: '',
|
554
551
|
fontWeight: '700',
|
@@ -1,3 +0,0 @@
|
|
1
|
-
<svg viewBox="0 0 21 21" fill="none" xmlns="http://www.w3.org/2000/svg">
|
2
|
-
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.04272 3.01211C6.48206 2.0875 8.19783 1.54417 10.0375 1.54417H10.2472C12.0869 1.54417 13.8027 2.07797 15.242 3.01211C15.69 3.29807 16.281 3.20275 16.6051 2.79287L17.7871 0.953183C17.8824 0.819734 18.0254 0.724414 18.1874 0.714882C18.3495 0.70535 18.5115 0.772074 18.6068 0.905523C19.56 2.2972 19.8269 5.45231 19.3027 7.07276C19.112 7.64469 19.0644 8.2452 19.1692 8.82666C19.2836 9.40812 19.3885 10.104 19.3885 10.5901C19.3885 15.5944 15.2992 19.6455 10.2472 19.6455H10.0375C4.98552 19.6455 0.896274 15.5944 0.896274 10.5901C0.896274 10.104 1.01066 9.40812 1.11551 8.82666C1.22036 8.2452 1.16317 7.64469 0.982062 7.07276C0.457799 5.45231 0.734229 2.2972 1.6779 0.905523C1.76369 0.762542 1.93527 0.70535 2.09731 0.714882C2.25936 0.733946 2.41187 0.819734 2.49766 0.953183L3.67963 2.79287C4.01326 3.20275 4.59471 3.29807 5.04272 3.01211ZM11.108 14.2727V7H9.28977L7.5 8.09375V9.76989L9.09091 8.81818H9.13352V14.2727H11.108Z" fill="#80A3FF"/>
|
3
|
-
</svg>
|
@@ -1,3 +0,0 @@
|
|
1
|
-
<svg viewBox="0 0 21 21" fill="none" xmlns="http://www.w3.org/2000/svg">
|
2
|
-
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.04272 3.01211C6.48206 2.0875 8.19783 1.54417 10.0375 1.54417H10.2472C12.0869 1.54417 13.8027 2.07797 15.242 3.01211C15.69 3.29807 16.281 3.20275 16.6051 2.79287L17.7871 0.953183C17.8824 0.819734 18.0254 0.724414 18.1874 0.714882C18.3495 0.70535 18.5115 0.772074 18.6068 0.905523C19.56 2.2972 19.8269 5.45231 19.3027 7.07276C19.112 7.64469 19.0644 8.2452 19.1692 8.82666C19.2836 9.40812 19.3885 10.104 19.3885 10.5901C19.3885 15.5944 15.2992 19.6455 10.2472 19.6455H10.0375C4.98552 19.6455 0.896274 15.5944 0.896274 10.5901C0.896274 10.104 1.01066 9.40812 1.11551 8.82666C1.22036 8.2452 1.16317 7.64469 0.982062 7.07276C0.457799 5.45231 0.734229 2.2972 1.6779 0.905523C1.76369 0.762542 1.93527 0.70535 2.09731 0.714882C2.25936 0.733946 2.41187 0.819734 2.49766 0.953183L3.67963 2.79287C4.01326 3.20275 4.59471 3.29807 5.04272 3.01211ZM7.14205 12.9517V14.3722H12.7244V12.7955H9.88352V12.7528L10.5653 12.1847C11.1193 11.723 11.5466 11.3253 11.8473 10.9915C12.148 10.6577 12.3563 10.3535 12.4723 10.0788C12.5883 9.80185 12.6463 9.52367 12.6463 9.24432C12.6463 8.79214 12.5291 8.39796 12.2947 8.06179C12.0627 7.72562 11.7325 7.4652 11.304 7.28054C10.8778 7.09351 10.3736 7 9.79119 7C9.22775 7 8.73651 7.09943 8.31747 7.2983C7.89844 7.49716 7.5741 7.78125 7.34446 8.15057C7.11482 8.51989 7 8.96023 7 9.47159H8.875C8.875 9.26799 8.91288 9.09517 8.98864 8.95312C9.06439 8.81108 9.17093 8.70336 9.30824 8.62997C9.44792 8.55658 9.6089 8.51989 9.79119 8.51989C9.97348 8.51989 10.1345 8.55658 10.2741 8.62997C10.4138 8.70099 10.5227 8.80279 10.6009 8.93537C10.6813 9.06794 10.7216 9.22775 10.7216 9.41477C10.7216 9.58523 10.6861 9.74029 10.6151 9.87997C10.5464 10.0196 10.447 10.1558 10.3168 10.2884C10.1889 10.4186 10.035 10.5582 9.85511 10.7074L7.14205 12.9517Z" fill="#80A3FF"/>
|
3
|
-
</svg>
|
@@ -1,3 +0,0 @@
|
|
1
|
-
<svg viewBox="0 0 21 21" fill="none" xmlns="http://www.w3.org/2000/svg">
|
2
|
-
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.04272 3.01211C6.48206 2.0875 8.19783 1.54417 10.0375 1.54417H10.2472C12.0869 1.54417 13.8027 2.07797 15.242 3.01211C15.69 3.29807 16.281 3.20275 16.6051 2.79287L17.7871 0.953183C17.8824 0.819734 18.0254 0.724414 18.1874 0.714882C18.3495 0.70535 18.5115 0.772074 18.6068 0.905523C19.56 2.2972 19.8269 5.45231 19.3027 7.07276C19.112 7.64469 19.0644 8.2452 19.1692 8.82666C19.2836 9.40812 19.3885 10.104 19.3885 10.5901C19.3885 15.5944 15.2992 19.6455 10.2472 19.6455H10.0375C4.98552 19.6455 0.896274 15.5944 0.896274 10.5901C0.896274 10.104 1.01066 9.40812 1.11551 8.82666C1.22036 8.2452 1.16317 7.64469 0.982062 7.07276C0.457799 5.45231 0.734229 2.2972 1.6779 0.905523C1.76369 0.762542 1.93527 0.70535 2.09731 0.714882C2.25936 0.733946 2.41187 0.819734 2.49766 0.953183L3.67963 2.79287C4.01326 3.20275 4.59471 3.29807 5.04272 3.01211ZM8.42756 14.1768C8.87263 14.3733 9.38163 14.4716 9.95455 14.4716C10.5488 14.4716 11.0732 14.3781 11.5277 14.1911C11.9846 14.004 12.3409 13.746 12.5966 13.4169C12.8546 13.0878 12.9825 12.7102 12.9801 12.2841C12.9848 11.839 12.8393 11.4697 12.5433 11.1761C12.2474 10.8802 11.8059 10.7003 11.2188 10.6364V10.5795C11.652 10.5322 12.0095 10.3783 12.2912 10.1179C12.5753 9.85748 12.715 9.52367 12.7102 9.11648C12.7126 8.70691 12.5966 8.34351 12.3622 8.02628C12.1302 7.70668 11.8071 7.45573 11.3928 7.27344C10.9808 7.09115 10.5062 7 9.96875 7C9.41951 7 8.933 7.09706 8.50923 7.29119C8.08546 7.48532 7.75166 7.75284 7.50781 8.09375C7.26634 8.43466 7.14441 8.82765 7.14205 9.27273H9.03125C9.03362 9.12595 9.07505 8.99574 9.15554 8.8821C9.23603 8.76847 9.34612 8.67969 9.4858 8.61577C9.62784 8.55185 9.78883 8.51989 9.96875 8.51989C10.1345 8.51989 10.2801 8.55066 10.4055 8.61222C10.5334 8.67377 10.6328 8.759 10.7038 8.8679C10.7749 8.9768 10.8092 9.10227 10.8068 9.24432C10.8092 9.3911 10.7678 9.52131 10.6825 9.63494C10.5997 9.74858 10.4825 9.83736 10.331 9.90128C10.1818 9.9652 10.009 9.99716 9.8125 9.99716H9.07386V11.3608H9.8125C10.0256 11.3608 10.2138 11.3928 10.3771 11.4567C10.5405 11.5206 10.6671 11.6094 10.7571 11.723C10.8494 11.8366 10.8944 11.9669 10.892 12.1136C10.8944 12.2628 10.8565 12.3954 10.7784 12.5114C10.7003 12.6274 10.5914 12.7185 10.4517 12.7848C10.312 12.8487 10.151 12.8807 9.96875 12.8807C9.77936 12.8807 9.61127 12.8499 9.46449 12.7884C9.31771 12.7268 9.2017 12.6416 9.11648 12.5327C9.03362 12.4214 8.991 12.2959 8.98864 12.1562H7C7.00237 12.6084 7.13021 13.0085 7.38352 13.3565C7.63684 13.7045 7.98485 13.978 8.42756 14.1768Z" fill="#80A3FF"/>
|
3
|
-
</svg>
|
@@ -1,51 +0,0 @@
|
|
1
|
-
import React from "react";
|
2
|
-
import { HDSButton } from "../../Buttons";
|
3
|
-
import { Typography } from "../../../foundation/Typography";
|
4
|
-
import { HDSColor } from "../../../foundation/ColorPalette";
|
5
|
-
|
6
|
-
export default function ImageBox(props) {
|
7
|
-
const {
|
8
|
-
btnbutton,
|
9
|
-
title,
|
10
|
-
description,
|
11
|
-
className,
|
12
|
-
imgUrl,
|
13
|
-
imgAlt,
|
14
|
-
titleTextColor = 'text-neutral-1000',
|
15
|
-
imageClasses,
|
16
|
-
btn,
|
17
|
-
} = props;
|
18
|
-
return (
|
19
|
-
<div className={className}>
|
20
|
-
{imgUrl &&
|
21
|
-
<div>
|
22
|
-
<img src={imgUrl} alt={imgAlt} className={imageClasses} />
|
23
|
-
</div>}
|
24
|
-
{title && (
|
25
|
-
<Typography textStyle='h3' className={HDSColor(titleTextColor)}>{title}</Typography>
|
26
|
-
)
|
27
|
-
}
|
28
|
-
{description && (
|
29
|
-
<Typography textStyle='body1'>{description}</Typography>
|
30
|
-
)
|
31
|
-
|
32
|
-
}
|
33
|
-
{btn.btnLabel && (
|
34
|
-
<a href={btn.cta_link}>
|
35
|
-
<HDSButton
|
36
|
-
label={btn.cta_text}
|
37
|
-
type={btn.cta_type}
|
38
|
-
leftIconVariant='none'
|
39
|
-
rightIconVariant='none'
|
40
|
-
state='default'
|
41
|
-
size='md'
|
42
|
-
rightAnimatedArrow={true}
|
43
|
-
rightAnimatedArrowColor='#3970FD'
|
44
|
-
/>
|
45
|
-
</a>
|
46
|
-
)
|
47
|
-
|
48
|
-
}
|
49
|
-
</div>
|
50
|
-
)
|
51
|
-
}
|
@@ -1 +0,0 @@
|
|
1
|
-
export {default as ImageBox} from './imagebox'
|
@@ -1,118 +0,0 @@
|
|
1
|
-
import React from "react";
|
2
|
-
import { Badges } from '../../BadgesCaption';
|
3
|
-
import { Typography } from '../../../foundation/Typography'
|
4
|
-
import { ProfileAvatar } from '../../Avatars'
|
5
|
-
import { Time } from "../../../helpers/Time";
|
6
|
-
import { HDSButton } from '../../Buttons'
|
7
|
-
import ReactMarkdown from "react-markdown";
|
8
|
-
import { HDSColor } from "../../../foundation/ColorPalette";
|
9
|
-
|
10
|
-
export default function TalkCard2(props) {
|
11
|
-
let CardClass = ''
|
12
|
-
if (props.speakerSet) {
|
13
|
-
CardClass = 'tb-l:justify-between';
|
14
|
-
}
|
15
|
-
else CardClass = 'tb-l:justify-center';
|
16
|
-
|
17
|
-
|
18
|
-
return (
|
19
|
-
|
20
|
-
<div className="grid">
|
21
|
-
<div className={`flex flex-col tb-l:flex-row tb-l:justify-between `}>
|
22
|
-
<div className={"px-6 pt-6 tb-l:px-8 tb-l:pb-6 tb-l:border-r tb-l:border-r-neutral-200"}>
|
23
|
-
<div className="flex flex-row flex-wrap tb:gap-3 gap-2">
|
24
|
-
{props.badges &&
|
25
|
-
props.badges.map((value, index) => (
|
26
|
-
<div key={index} className='flex whitespace-nowrap'>
|
27
|
-
<Badges
|
28
|
-
size={value.size}
|
29
|
-
color={value.color}
|
30
|
-
leftIconVariant={value.leftIconVariant}
|
31
|
-
leftIconColor={value.leftIconColor}
|
32
|
-
leftIconColorClass={HDSColor(value.leftIconColorClass)}
|
33
|
-
children={value.label}
|
34
|
-
|
35
|
-
/>
|
36
|
-
</div>
|
37
|
-
))
|
38
|
-
}
|
39
|
-
|
40
|
-
</div>
|
41
|
-
<div className="tb-l:w-[380px] db:w-[520px] flex flex-col tb:justify-between">
|
42
|
-
<div>
|
43
|
-
<Typography className='mt-2 text-blue-800' textStyle='h5'>{props.title}</Typography>
|
44
|
-
{props.para &&
|
45
|
-
<Typography
|
46
|
-
className='line-clamp-3 mt-2 text-neutral-700'
|
47
|
-
textStyle='body1c'>
|
48
|
-
{props.para}
|
49
|
-
</Typography>
|
50
|
-
}
|
51
|
-
</div>
|
52
|
-
<div className="flex pb-6 tb-l:pb-0">
|
53
|
-
{props.readUrl &&
|
54
|
-
props.para && (
|
55
|
-
<a href={props.readUrl}>
|
56
|
-
<HDSButton
|
57
|
-
label='Read more'
|
58
|
-
type='secondaryLink'
|
59
|
-
leftIconVariant='none'
|
60
|
-
rightIconVariant='none'
|
61
|
-
state='default'
|
62
|
-
size='md'
|
63
|
-
rightAnimatedArrow={true}
|
64
|
-
rightAnimatedArrowColor='#3970FD'
|
65
|
-
className='mt-2'
|
66
|
-
btnTextColorClass='text-blue-500'
|
67
|
-
animatedHoverStroke='stroke-blue-500'
|
68
|
-
/>
|
69
|
-
</a>
|
70
|
-
)}
|
71
|
-
</div>
|
72
|
-
</div>
|
73
|
-
</div>
|
74
|
-
|
75
|
-
<div className={`${CardClass} tb-l:divide-y-2 divide-neutral-200 flex tb-l:w-full flex-col pt-0`} >
|
76
|
-
{
|
77
|
-
props.speakerSet && (
|
78
|
-
<div className="px-6 py-6 border-t border-neutral-200 flex flex-col gap-6 tb:mt-0 tb-l:border-0 tb-l:h-full tb-l:justify-center ">
|
79
|
-
{props.speakerSet.map((value, i) => (
|
80
|
-
<div key={i} className="block">
|
81
|
-
|
82
|
-
<ProfileAvatar
|
83
|
-
name={value.name}
|
84
|
-
size='md'
|
85
|
-
designation={value.designation}
|
86
|
-
imageUrl={value.imageUrl}
|
87
|
-
avatarBgColor={props.avatarBgColor}
|
88
|
-
/>
|
89
|
-
</div>
|
90
|
-
|
91
|
-
))}
|
92
|
-
</div>
|
93
|
-
)
|
94
|
-
}
|
95
|
-
{props.eventTime &&
|
96
|
-
<div className="border-t border-neutral-200 tb-l:border-0 w-full pl-6 p-6 flex flex-row justify-between items-center">
|
97
|
-
<Typography textStyle='h6' className='text-blue-800 uppercase'>{props.eventTime}</Typography>
|
98
|
-
{props.addCalendarUrl &&
|
99
|
-
<a href={props.addCalendarUrl}>
|
100
|
-
<HDSButton
|
101
|
-
leftIconVariant='calendarplus02'
|
102
|
-
leftIconColor="#1E56E3"
|
103
|
-
rightIconVariant='none'
|
104
|
-
state='default'
|
105
|
-
size='sm'
|
106
|
-
type="iconOnly"
|
107
|
-
label=''
|
108
|
-
/>
|
109
|
-
</a>
|
110
|
-
}
|
111
|
-
</div>}
|
112
|
-
</div>
|
113
|
-
</div>
|
114
|
-
</div>
|
115
|
-
|
116
|
-
)
|
117
|
-
|
118
|
-
}
|
@@ -1,413 +0,0 @@
|
|
1
|
-
import React, { useState, useEffect } from 'react';
|
2
|
-
import { MediaBox } from '../../helpers/Media';
|
3
|
-
import { Typography } from '../../foundation/Typography';
|
4
|
-
import { HDSButton } from '../../components/Buttons';
|
5
|
-
import { HDSColor } from '../../foundation/ColorPalette';
|
6
|
-
import { Tab } from '../../components/Tabs';
|
7
|
-
import PropTypes from 'prop-types';
|
8
|
-
import { LinkCard } from '../Cards/Link';
|
9
|
-
|
10
|
-
const tabCard = (Content) => (
|
11
|
-
<>
|
12
|
-
<div className='tb:px-3'>
|
13
|
-
{Content.title &&
|
14
|
-
<Typography
|
15
|
-
textStyle='h2'
|
16
|
-
className={HDSColor(Content.titleTextColor)}>
|
17
|
-
{Content.title}
|
18
|
-
</Typography>}
|
19
|
-
|
20
|
-
{Content.subTitle &&
|
21
|
-
<Typography
|
22
|
-
textStyle='sub2'
|
23
|
-
className={`mt-2 ${HDSColor(Content.subTitleTextColor)}`}>
|
24
|
-
{Content.subTitle}
|
25
|
-
</Typography>}
|
26
|
-
</div>
|
27
|
-
{Content.btnLabel &&
|
28
|
-
<div className='flex pl-3 pt-6'>
|
29
|
-
<HDSButton
|
30
|
-
label={Content.btnLabel}
|
31
|
-
type='secondary'
|
32
|
-
leftIconVariant='none'
|
33
|
-
rightIconVariant='none'
|
34
|
-
state='default'
|
35
|
-
size='sm'
|
36
|
-
rightAnimatedArrow={true}
|
37
|
-
rightAnimatedArrowColor='#1E56E3'
|
38
|
-
animatedHoverStroke='group-hover:stroke-blue-600'
|
39
|
-
className='flex'
|
40
|
-
btnTextColorClass='text-blue-600'
|
41
|
-
/>
|
42
|
-
</div>
|
43
|
-
}
|
44
|
-
|
45
|
-
</>
|
46
|
-
)
|
47
|
-
|
48
|
-
export default function HeroCapability(props) {
|
49
|
-
const {
|
50
|
-
heroData,
|
51
|
-
activeTab,
|
52
|
-
onTabChange
|
53
|
-
} = props;
|
54
|
-
let currentTab;
|
55
|
-
if(activeTab.activeTab){
|
56
|
-
currentTab = activeTab.activeTab;
|
57
|
-
}
|
58
|
-
if (!heroData) {
|
59
|
-
return <div></div>; // Replace with your loading indicator or fallback UI
|
60
|
-
}
|
61
|
-
|
62
|
-
const LinkCardsFn = (heroData) => {
|
63
|
-
return (
|
64
|
-
heroData.linkCards && (
|
65
|
-
<div className="flex px-8 tb:px-0 tb:justify-center overflow-auto scrollbar-hide flex-row mt-16 gap-6 tb:flex-row ">
|
66
|
-
{heroData.linkCards.map((card, index) => (
|
67
|
-
<div key={index} className={`${HDSColor(card.cardBorderClass)} border rounded-2xl w-full pb-2 min-w-[11.5rem] max-w-[22.313rem]`}>
|
68
|
-
<LinkCard
|
69
|
-
titleTextColor= {card.titleTextColor}
|
70
|
-
descTextColor={card.descTextColor}
|
71
|
-
linkUrl={card.linkUrl}
|
72
|
-
cardBgColor={card.cardBgColor}
|
73
|
-
cardHoverBg={card.cardHoverBg}
|
74
|
-
iconVariant={card.iconVariant}
|
75
|
-
iconStrokeClass={card.iconStrokeColor}
|
76
|
-
iconArrowVariant={card.iconArrowVariant}
|
77
|
-
iconArrowStrokeClass={card.iconArrowStrokeColor}
|
78
|
-
title={card.title}
|
79
|
-
description={card.description}
|
80
|
-
/>
|
81
|
-
</div>
|
82
|
-
))}
|
83
|
-
</div>
|
84
|
-
)
|
85
|
-
);
|
86
|
-
};
|
87
|
-
|
88
|
-
|
89
|
-
const handleTabClick = (tab) => {
|
90
|
-
if (tab.name) {
|
91
|
-
const nameCheck = tab.name.replace(/\s/g, ''); // Remove spaces from tab name
|
92
|
-
onTabChange(nameCheck);
|
93
|
-
}
|
94
|
-
else return;
|
95
|
-
// Perform any other actions based on the clicked tab
|
96
|
-
}
|
97
|
-
let heroBgColorClass = '';
|
98
|
-
let bgTabClass = '';
|
99
|
-
let videoUrl = '';
|
100
|
-
let videoPoster = '';
|
101
|
-
let img_url = '';
|
102
|
-
let pillColorClass= '';
|
103
|
-
if(props.heroData && props.heroData.tabContent && props.heroData.tabContent[currentTab] && props.heroData.tabContent[currentTab]['heroBgColor']){
|
104
|
-
heroBgColorClass = HDSColor(props.heroData.tabContent[currentTab]['heroBgColor'])
|
105
|
-
}
|
106
|
-
if(props.heroData && props.heroData.tabContent && props.heroData.tabContent[currentTab] && props.heroData.tabContent[currentTab]['bgColorTab']){
|
107
|
-
bgTabClass = HDSColor(props.heroData.tabContent[currentTab]['bgColorTab'])
|
108
|
-
}
|
109
|
-
if(props.heroData && props.heroData.tabContent && props.heroData.tabContent[currentTab] && props.heroData.tabContent[currentTab]['videoUrl']){
|
110
|
-
videoUrl = props.heroData.tabContent[currentTab]['videoUrl']
|
111
|
-
}
|
112
|
-
if(props.heroData && props.heroData.tabContent && props.heroData.tabContent[currentTab] && props.heroData.tabContent[currentTab]['videoPoster']){
|
113
|
-
videoPoster = props.heroData.tabContent[currentTab]['videoPoster']
|
114
|
-
}
|
115
|
-
if(props.heroData && props.heroData.tabContent && props.heroData.tabContent[currentTab] && props.heroData.tabContent[currentTab]['img_url']){
|
116
|
-
img_url = props.heroData.tabContent[currentTab]['img_url']
|
117
|
-
}
|
118
|
-
if(props.heroData && props.heroData.tabContent && props.heroData.tabContent[currentTab] && props.heroData.tabContent[currentTab]['pillColor']){
|
119
|
-
pillColorClass = props.heroData.tabContent[currentTab]['pillColor']
|
120
|
-
}
|
121
|
-
if(props.heroData && props.heroData.tabContent && props.heroData.tabContent[currentTab] && props.heroData.tabContent[currentTab]['bgColorTab']){
|
122
|
-
bgTabClass = HDSColor(props.heroData.tabContent[currentTab]['bgColorTab']);
|
123
|
-
}
|
124
|
-
|
125
|
-
return (
|
126
|
-
<div className={`${(heroBgColorClass)} -mt-[81px] pt-[81px] tb:mt-0 tb:pt-0 max-w-7xl rounded-b-3xl tb:rounded-3xl`} >
|
127
|
-
{/* <div className={`${(heroBgColorClass)} max-w-7xl rounded-3xl bg-gradient-to-br from-green-500 to-green-900`} > */}
|
128
|
-
{props.heroData.navTabs &&
|
129
|
-
|
130
|
-
<div className='py-5 db:p-20 tb:p-10 flex flex-col shadow rounded-2xl'>
|
131
|
-
|
132
|
-
<div className='flex px-8 tb:px-0 overflow-scroll scrollbar-hide tb-l:justify-center justify-start'>
|
133
|
-
<div className={`${bgTabClass} bg-opacity-30 p-1 rounded-[32px]`}>
|
134
|
-
<Tab
|
135
|
-
onTabClick={handleTabClick}
|
136
|
-
tabs={props.heroData.navTabs}
|
137
|
-
bgColorTab={props.heroData.bgColorTab}
|
138
|
-
pillColor={pillColorClass}
|
139
|
-
/>
|
140
|
-
</div>
|
141
|
-
</div>
|
142
|
-
<div className='flex flex-col-reverse pt-6 px-8 tb:px-0 tb:flex tb:flex-row tb:items-center tb:pt-10 tb:justify-between'>
|
143
|
-
<div className=' mt-3 db:max-w-[488px] tb:w-1/2'>
|
144
|
-
{props.heroData.tabContent &&
|
145
|
-
props.heroData.tabContent[currentTab] &&
|
146
|
-
tabCard(props.heroData.tabContent[currentTab])}
|
147
|
-
</div>
|
148
|
-
<div className=' db:max-w-[540px] tb:w-1/2 '>
|
149
|
-
<MediaBox
|
150
|
-
video_url = {videoUrl}
|
151
|
-
video_poster = {videoPoster}
|
152
|
-
|
153
|
-
/>
|
154
|
-
</div>
|
155
|
-
</div>
|
156
|
-
|
157
|
-
<div className=''>
|
158
|
-
{props.heroData.tabContent[currentTab] &&
|
159
|
-
LinkCardsFn(props.heroData.tabContent[currentTab])}
|
160
|
-
</div>
|
161
|
-
</div>
|
162
|
-
|
163
|
-
}
|
164
|
-
|
165
|
-
</div>
|
166
|
-
)
|
167
|
-
}
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
HeroCapability.defaultProps={
|
173
|
-
heroData : {
|
174
|
-
tabContent: {
|
175
|
-
'Performance': {
|
176
|
-
heroBgColor:'bg-green-500',
|
177
|
-
title: 'Blazing-fast APIs at Global Scale ',
|
178
|
-
subTitle: 'Hasura optimizes your API performance up to 10x faster with end-to-end caching, while scaling both vertically and horizontally.',
|
179
|
-
videoUrl: "https://res.cloudinary.com/dh8fp23nd/video/upload/v1683307555/hasura-con-2023/tg_hascon23_homepage_ue29jn.mp4",
|
180
|
-
videoPoster: "https://res.cloudinary.com/dh8fp23nd/image/upload/v1685017301/Group_2608667_gu6idw.png",
|
181
|
-
subTitleTextColor: 'text-neutral-0',
|
182
|
-
titleTextColor: 'text-neutral-0',
|
183
|
-
bgColorTab: 'bg-neutral-1000',
|
184
|
-
pillColor:'bg-pink-500',
|
185
|
-
button: [
|
186
|
-
{
|
187
|
-
cta_text: 'Get Started',
|
188
|
-
btnBg: '',
|
189
|
-
bg_color: 'bg-blue-900',
|
190
|
-
|
191
|
-
cta_link: '',
|
192
|
-
cta_type:''
|
193
|
-
},
|
194
|
-
{
|
195
|
-
cta_text: 'Get Started',
|
196
|
-
btnBg: '',
|
197
|
-
bg_color: 'bg-blue-900',
|
198
|
-
cta_link: '',
|
199
|
-
cta_type:''
|
200
|
-
}
|
201
|
-
],
|
202
|
-
linkCards: [
|
203
|
-
{
|
204
|
-
titleTextColor: 'text-neutral-0',
|
205
|
-
descTextColor: 'text-neutral-0',
|
206
|
-
iconVariant: 'videorecorder',
|
207
|
-
iconStrokeColor: '#3970FD',
|
208
|
-
iconArrowVariant: 'arrownarrowupright',
|
209
|
-
iconArrowStrokeColor: 'blue-400',
|
210
|
-
title: 'Webinar',
|
211
|
-
description: 'Model Level Authorization System for GraphQL with Hasura',
|
212
|
-
|
213
|
-
|
214
|
-
},
|
215
|
-
{
|
216
|
-
cardBgColor: 'bg-pink-300',
|
217
|
-
cardHoverBg: 'bg-pink-900',
|
218
|
-
iconVariant: 'videorecorder',
|
219
|
-
iconStrokeColor: '#3970FD',
|
220
|
-
iconArrowVariant: 'arrownarrowupright',
|
221
|
-
iconArrowStrokeColor: 'blue-400',
|
222
|
-
title: 'Webinar',
|
223
|
-
description: 'GraphQL response caching',
|
224
|
-
|
225
|
-
|
226
|
-
},
|
227
|
-
{
|
228
|
-
cardBgColor: 'bg-pink-300',
|
229
|
-
cardHoverBg: 'bg-pink-900',
|
230
|
-
iconVariant: 'videorecorder',
|
231
|
-
iconStrokeColor: '#3970FD',
|
232
|
-
iconArrowVariant: 'arrownarrowupright',
|
233
|
-
iconArrowStrokeColor: 'blue-400',
|
234
|
-
title: 'Webinar',
|
235
|
-
description: 'Model Level Authorization System for GraphQL with Hasura',
|
236
|
-
|
237
|
-
|
238
|
-
},
|
239
|
-
],
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
},
|
245
|
-
'Company': {
|
246
|
-
heroBgColor:'bg-blue-500',
|
247
|
-
title: 'Leverage Hasura’s Authorization Engine',
|
248
|
-
subTitle: 'Hasura optimizes your API performance up to 10x faster with end-to-end caching, while scaling both vertically and horizontally.ss',
|
249
|
-
videoUrl: "https://res.cloudinary.com/dh8fp23nd/video/upload/v1683307555/hasura-con-2023/tg_hascon23_homepage_ue29jn.mp4",
|
250
|
-
videoPoster: "https://res.cloudinary.com/dh8fp23nd/image/upload/v1685017301/Group_2608667_gu6idw.png",
|
251
|
-
imgUrl:'',
|
252
|
-
subTitleTextColor: 'text-neutral-0',
|
253
|
-
titleTextColor: 'text-neutral-0',
|
254
|
-
bgColorTab: 'bg-neutral-1000',
|
255
|
-
pillColor:'bg-amber-500',
|
256
|
-
button: [
|
257
|
-
{
|
258
|
-
cta_text: 'Get Started',
|
259
|
-
btnBg: '',
|
260
|
-
bg_color: 'bg-blue-900',
|
261
|
-
|
262
|
-
cta_link: '',
|
263
|
-
cta_type:''
|
264
|
-
},
|
265
|
-
{
|
266
|
-
cta_text: 'Get Started',
|
267
|
-
btnBg: '',
|
268
|
-
bg_color: 'bg-blue-900',
|
269
|
-
cta_link: '',
|
270
|
-
cta_type:''
|
271
|
-
}
|
272
|
-
],
|
273
|
-
linkCards: [
|
274
|
-
{
|
275
|
-
titleTextColor: 'text-neutral-0',
|
276
|
-
descTextColor: 'text-neutral-0',
|
277
|
-
iconVariant: 'videorecorder',
|
278
|
-
iconStrokeColor: '#3970FD',
|
279
|
-
iconArrowVariant: 'arrownarrowupright',
|
280
|
-
iconArrowStrokeColor: 'blue-400',
|
281
|
-
title: 'Webinar',
|
282
|
-
description: 'Model Level Authorization System for GraphQL with Hasura',
|
283
|
-
|
284
|
-
|
285
|
-
},
|
286
|
-
{
|
287
|
-
cardBgColor: 'bg-pink-300',
|
288
|
-
cardHoverBg: 'bg-pink-900',
|
289
|
-
iconVariant: 'videorecorder',
|
290
|
-
iconStrokeColor: '#3970FD',
|
291
|
-
iconArrowVariant: 'arrownarrowupright',
|
292
|
-
iconArrowStrokeColor: 'blue-400',
|
293
|
-
title: 'Webinar',
|
294
|
-
description: 'Model Level Authorization System for GraphQL with Hasura',
|
295
|
-
|
296
|
-
|
297
|
-
},
|
298
|
-
{
|
299
|
-
cardBgColor: 'bg-pink-300',
|
300
|
-
cardHoverBg: 'bg-pink-900',
|
301
|
-
iconVariant: 'videorecorder',
|
302
|
-
iconStrokeColor: '#3970FD',
|
303
|
-
iconArrowVariant: 'arrownarrowupright',
|
304
|
-
iconArrowStrokeColor: 'blue-400',
|
305
|
-
title: 'Webinar',
|
306
|
-
description: 'Model Level Authorization System for GraphQL with Hasura',
|
307
|
-
|
308
|
-
|
309
|
-
},
|
310
|
-
],
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
},
|
316
|
-
'Authorization': {
|
317
|
-
heroBgColor:'bg-cyan-500',
|
318
|
-
title: 'Blazing-fast APIs at Global Scale ',
|
319
|
-
subTitle: 'Hasura optimizes your API performance up to 10x faster with end-to-end caching, while scaling both vertically and horizontally.',
|
320
|
-
videoUrl: "https://res.cloudinary.com/dh8fp23nd/video/upload/v1683307555/hasura-con-2023/tg_hascon23_homepage_ue29jn.mp4",
|
321
|
-
videoPoster: "https://res.cloudinary.com/dh8fp23nd/image/upload/v1685017301/Group_2608667_gu6idw.png",
|
322
|
-
imgUrl:'',
|
323
|
-
subTitleTextColor: 'text-neutral-0',
|
324
|
-
titleTextColor: 'text-neutral-0',
|
325
|
-
bgColorTab: 'bg-pink-500',
|
326
|
-
pillColor:'bg-neutral-500',
|
327
|
-
button: [
|
328
|
-
{
|
329
|
-
cta_text: 'Get Started',
|
330
|
-
btnBg: '',
|
331
|
-
bg_color: 'bg-blue-900',
|
332
|
-
|
333
|
-
cta_link: '',
|
334
|
-
cta_type:''
|
335
|
-
},
|
336
|
-
{
|
337
|
-
cta_text: 'Get Started',
|
338
|
-
btnBg: '',
|
339
|
-
bg_color: 'bg-blue-900',
|
340
|
-
cta_link: '',
|
341
|
-
cta_type:''
|
342
|
-
}
|
343
|
-
],
|
344
|
-
linkCards: [
|
345
|
-
{
|
346
|
-
titleTextColor: 'text-neutral-0',
|
347
|
-
descTextColor: 'text-neutral-0',
|
348
|
-
iconVariant: 'videorecorder',
|
349
|
-
iconStrokeColor: '#3970FD',
|
350
|
-
iconArrowVariant: 'arrownarrowupright',
|
351
|
-
iconArrowStrokeColor: 'blue-400',
|
352
|
-
title: 'Webinar',
|
353
|
-
description: 'Model Level Authorization System for GraphQL with Hasura',
|
354
|
-
|
355
|
-
|
356
|
-
},
|
357
|
-
{
|
358
|
-
cardBgColor: 'bg-pink-300',
|
359
|
-
cardHoverBg: 'bg-pink-900',
|
360
|
-
iconVariant: 'videorecorder',
|
361
|
-
iconStrokeColor: '#3970FD',
|
362
|
-
iconArrowVariant: 'arrownarrowupright',
|
363
|
-
iconArrowStrokeColor: 'blue-400',
|
364
|
-
title: 'Webinar',
|
365
|
-
description: 'Model Level Authorization System for GraphQL with Hasura',
|
366
|
-
|
367
|
-
|
368
|
-
},
|
369
|
-
{
|
370
|
-
cardBgColor: 'bg-pink-300',
|
371
|
-
cardHoverBg: 'bg-pink-900',
|
372
|
-
iconVariant: 'videorecorder',
|
373
|
-
iconStrokeColor: '#3970FD',
|
374
|
-
iconArrowVariant: 'arrownarrowupright',
|
375
|
-
iconArrowStrokeColor: 'blue-400',
|
376
|
-
title: 'Webinar',
|
377
|
-
description: 'Model Level Authorization System for GraphQL with Hasura',
|
378
|
-
|
379
|
-
|
380
|
-
},
|
381
|
-
],
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
},
|
387
|
-
},
|
388
|
-
|
389
|
-
navTabs: [
|
390
|
-
{
|
391
|
-
current: true,
|
392
|
-
name: 'Performance'
|
393
|
-
},
|
394
|
-
{
|
395
|
-
current: 'false',
|
396
|
-
name: 'Company'
|
397
|
-
},
|
398
|
-
{
|
399
|
-
current: 'false',
|
400
|
-
name: 'Authorization'
|
401
|
-
},
|
402
|
-
{
|
403
|
-
current: 'false',
|
404
|
-
name: 'Observability'
|
405
|
-
},
|
406
|
-
{
|
407
|
-
current: 'false',
|
408
|
-
name: 'API Security'
|
409
|
-
}
|
410
|
-
]
|
411
|
-
}
|
412
|
-
|
413
|
-
}
|