oddsgate-ds 1.0.25 → 1.0.27
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/cjs/index.js +5 -5
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/components/molecules/ProductCard/ProductCard.component.d.ts +4 -0
- package/dist/cjs/types/components/molecules/ProductCard/ProductCard.interface.d.ts +6 -0
- package/dist/{esm/types/components/molecules/ProjectCard/ProjectCard.stories.d.ts → cjs/types/components/molecules/ProductCard/ProductCard.stories.d.ts} +2 -2
- package/dist/cjs/types/components/molecules/ProductCard/ProductCard.theme.d.ts +4 -0
- package/dist/cjs/types/components/molecules/ProductCard/index.d.ts +1 -0
- package/dist/cjs/types/index.d.ts +1 -1
- package/dist/esm/index.js +5 -5
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/components/molecules/ProductCard/ProductCard.component.d.ts +4 -0
- package/dist/esm/types/components/molecules/ProductCard/ProductCard.interface.d.ts +6 -0
- package/dist/{cjs/types/components/molecules/ProjectCard/ProjectCard.stories.d.ts → esm/types/components/molecules/ProductCard/ProductCard.stories.d.ts} +2 -2
- package/dist/esm/types/components/molecules/ProductCard/ProductCard.theme.d.ts +4 -0
- package/dist/esm/types/components/molecules/ProductCard/index.d.ts +1 -0
- package/dist/esm/types/index.d.ts +1 -1
- package/dist/types.d.ts +4 -6
- package/package.json +1 -1
- package/src/components/atoms/Button/Button.theme.ts +2 -2
- package/src/components/atoms/SocialLinks/SocialLinks.theme.ts +1 -1
- package/src/components/molecules/ProductCard/ProductCard.component.tsx +44 -0
- package/src/components/molecules/ProductCard/ProductCard.interface.ts +6 -0
- package/src/components/molecules/ProductCard/ProductCard.stories.tsx +33 -0
- package/src/components/molecules/ProductCard/ProductCard.theme.ts +24 -0
- package/src/components/molecules/ProductCard/index.ts +1 -0
- package/src/components/organisms/CircularSlider/CircularSlider.component.tsx +2 -2
- package/src/components/organisms/CircularSlider/CircularSlider.theme.ts +4 -10
- package/src/index.ts +1 -1
- package/src/styles/utilities.ts +7 -0
- package/dist/cjs/types/components/molecules/ProjectCard/ProjectCard.component.d.ts +0 -4
- package/dist/cjs/types/components/molecules/ProjectCard/ProjectCard.interface.d.ts +0 -8
- package/dist/cjs/types/components/molecules/ProjectCard/ProjectCard.theme.d.ts +0 -3
- package/dist/cjs/types/components/molecules/ProjectCard/index.d.ts +0 -1
- package/dist/esm/types/components/molecules/ProjectCard/ProjectCard.component.d.ts +0 -4
- package/dist/esm/types/components/molecules/ProjectCard/ProjectCard.interface.d.ts +0 -8
- package/dist/esm/types/components/molecules/ProjectCard/ProjectCard.theme.d.ts +0 -3
- package/dist/esm/types/components/molecules/ProjectCard/index.d.ts +0 -1
- package/src/components/molecules/ProjectCard/ProjectCard.component.tsx +0 -45
- package/src/components/molecules/ProjectCard/ProjectCard.interface.ts +0 -8
- package/src/components/molecules/ProjectCard/ProjectCard.stories.tsx +0 -72
- package/src/components/molecules/ProjectCard/ProjectCard.theme.ts +0 -61
- package/src/components/molecules/ProjectCard/index.ts +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { StoryObj } from '@storybook/react';
|
|
2
|
-
import {
|
|
2
|
+
import { IProductCard } from './ProductCard.interface';
|
|
3
3
|
declare const _default: import("@storybook/types").ComponentAnnotations<import("@storybook/react").ReactRenderer, import("@storybook/types").Args>;
|
|
4
4
|
export default _default;
|
|
5
|
-
export declare const Simple: StoryObj<
|
|
5
|
+
export declare const Simple: StoryObj<IProductCard>;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { IProductCard } from './ProductCard.interface';
|
|
3
|
+
export declare const StyledProductCard: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, IProductCard>> & string;
|
|
4
|
+
export declare const StyledProductCardWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, IProductCard>> & string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "./ProductCard.component";
|
|
@@ -35,7 +35,7 @@ export { default as IconTitle } from './components/molecules/IconTitle';
|
|
|
35
35
|
export { default as BlogCard } from './components/molecules/BlogCard';
|
|
36
36
|
export { default as TeamCard } from './components/molecules/TeamCard';
|
|
37
37
|
export { default as LogosCard } from './components/molecules/LogosCard';
|
|
38
|
-
export { default as
|
|
38
|
+
export { default as ProductCard } from './components/molecules/ProductCard';
|
|
39
39
|
export { default as Slider } from './components/organisms/Slider';
|
|
40
40
|
export { default as Cover } from './components/organisms/Cover';
|
|
41
41
|
export { default as Tabs } from './components/organisms/Tabs';
|
package/dist/types.d.ts
CHANGED
|
@@ -511,14 +511,12 @@ interface ILogosCard {
|
|
|
511
511
|
|
|
512
512
|
declare const LogosCard: ({ imageElement, title, className, style, ...props }: ILogosCard) => React__default.JSX.Element;
|
|
513
513
|
|
|
514
|
-
interface
|
|
515
|
-
category?: string;
|
|
514
|
+
interface IProductCard extends ICard {
|
|
516
515
|
title?: string;
|
|
517
|
-
|
|
518
|
-
linkElement?: React.ReactElement;
|
|
516
|
+
description?: string | React.ReactElement;
|
|
519
517
|
}
|
|
520
518
|
|
|
521
|
-
declare const
|
|
519
|
+
declare const ProductCard: ({ title, imageElement, description, className, style, ...props }: IProductCard) => React__default.JSX.Element;
|
|
522
520
|
|
|
523
521
|
interface ISlider {
|
|
524
522
|
$responsiveCSS?: string;
|
|
@@ -590,4 +588,4 @@ declare const GlobalStyles: React$1.NamedExoticComponent<styled_components.Execu
|
|
|
590
588
|
|
|
591
589
|
declare function clickOutSideToClose(ref: React.RefObject<HTMLDivElement>, closeFunction: () => void): void;
|
|
592
590
|
|
|
593
|
-
export { Accordion, AccordionItem, BlogCard, Button, CheckRadioField, Chip, CircularSlider, CloseButton, Column, Counter, Cover, Dropdown, DropdownItem, EmptyState, Flex, FormField, GlobalStyles, Heading, Icon, IconBox, IconTitle, ImageWrapper, Loader, LogosCard, Marquee, Modal, OffCanvas, PortalComponent,
|
|
591
|
+
export { Accordion, AccordionItem, BlogCard, Button, CheckRadioField, Chip, CircularSlider, CloseButton, Column, Counter, Cover, Dropdown, DropdownItem, EmptyState, Flex, FormField, GlobalStyles, Heading, Icon, IconBox, IconTitle, ImageWrapper, Loader, LogosCard, Marquee, Modal, OffCanvas, PortalComponent, ProductCard, Quote, RichText, Row, ScrollingNav, Separator, ShareModal, Slider, SocialLinks, Spacer, Tabs, TeamCard, Video, VideoEmbed, clickOutSideToClose, iconsList, variables };
|
package/package.json
CHANGED
|
@@ -63,7 +63,7 @@ export const StyledButton = styled.a<IButtonSC>`
|
|
|
63
63
|
${fontSize('h5')};
|
|
64
64
|
font-weight: 700;
|
|
65
65
|
text-transform:uppercase;
|
|
66
|
-
padding:
|
|
66
|
+
padding: 10px 20px;
|
|
67
67
|
border-radius: 50px;
|
|
68
68
|
|
|
69
69
|
${props.$mode === "light" ? `
|
|
@@ -99,7 +99,7 @@ export const StyledButton = styled.a<IButtonSC>`
|
|
|
99
99
|
color: ${colors.secondary50};
|
|
100
100
|
|
|
101
101
|
&:hover{
|
|
102
|
-
color: ${colors.
|
|
102
|
+
color: ${colors.primary50};
|
|
103
103
|
}
|
|
104
104
|
`}
|
|
105
105
|
`;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { StyledProductCard, StyledProductCardWrapper } from './ProductCard.theme'
|
|
2
|
+
|
|
3
|
+
import Heading from '@/components/atoms/Heading'
|
|
4
|
+
import { IProductCard } from './ProductCard.interface'
|
|
5
|
+
import ImageWrapper from '@/components/atoms/ImageWrapper'
|
|
6
|
+
import React from 'react'
|
|
7
|
+
import RichText from '@/components/atoms/RichText/RichText.component'
|
|
8
|
+
|
|
9
|
+
const ProductCard = ({
|
|
10
|
+
title,
|
|
11
|
+
imageElement,
|
|
12
|
+
description,
|
|
13
|
+
className,
|
|
14
|
+
style,
|
|
15
|
+
...props
|
|
16
|
+
}: IProductCard) => {
|
|
17
|
+
|
|
18
|
+
const parts = title ? title.split(" ") : [];
|
|
19
|
+
const half = parts ? parts.length / 2 : 0;
|
|
20
|
+
|
|
21
|
+
const firstRowTitle = Array.prototype.join.call({
|
|
22
|
+
...parts,
|
|
23
|
+
length: half,
|
|
24
|
+
}, " ");
|
|
25
|
+
|
|
26
|
+
const secondRowTitle = parts.slice(half, parts?.length).join(" ")
|
|
27
|
+
|
|
28
|
+
return (
|
|
29
|
+
<StyledProductCard className={className} style={style}>
|
|
30
|
+
<StyledProductCardWrapper>
|
|
31
|
+
<Heading tag={'h3'} size={'h3'} className={'fw-bold'}>
|
|
32
|
+
{firstRowTitle}
|
|
33
|
+
</Heading>
|
|
34
|
+
{imageElement}
|
|
35
|
+
<Heading tag={'h3'} size={'h3'} className={'fw-bold'}>
|
|
36
|
+
{secondRowTitle}
|
|
37
|
+
</Heading>
|
|
38
|
+
</StyledProductCardWrapper>
|
|
39
|
+
{description && <RichText tag='p' className='color-secondary50 mt-4'>{description}</RichText>}
|
|
40
|
+
</StyledProductCard>
|
|
41
|
+
)
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export default ProductCard
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react'
|
|
2
|
+
|
|
3
|
+
import { IProductCard } from './ProductCard.interface'
|
|
4
|
+
import ProductCard from './ProductCard.component'
|
|
5
|
+
import React from 'react'
|
|
6
|
+
|
|
7
|
+
// More on default export: https://storybook.js.org/docs/react/writing-stories/introduction#default-export
|
|
8
|
+
export default {
|
|
9
|
+
title: 'Components/ProductCard',
|
|
10
|
+
component: ProductCard,
|
|
11
|
+
tags: ['autodocs']
|
|
12
|
+
} as Meta
|
|
13
|
+
|
|
14
|
+
const image = (
|
|
15
|
+
<img
|
|
16
|
+
width="100%"
|
|
17
|
+
height="100%"
|
|
18
|
+
sizes="100vw"
|
|
19
|
+
decoding="async"
|
|
20
|
+
src="/assets/placeholder.png"
|
|
21
|
+
alt="Empty state"
|
|
22
|
+
/>
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
export const Simple: StoryObj<IProductCard> = {
|
|
26
|
+
render: args => <ProductCard {...args} style={{ maxWidth: '320px' }}></ProductCard>,
|
|
27
|
+
args: {
|
|
28
|
+
title: 'Cras vel facilisis tellus',
|
|
29
|
+
imageElement: image,
|
|
30
|
+
description:
|
|
31
|
+
'Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique. Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique.',
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { colors, radius } from '@/styles/variables';
|
|
2
|
+
import styled, { css } from 'styled-components';
|
|
3
|
+
|
|
4
|
+
import { IProductCard } from './ProductCard.interface';
|
|
5
|
+
|
|
6
|
+
export const StyledProductCard = styled.div <IProductCard>`
|
|
7
|
+
text-align:center;
|
|
8
|
+
|
|
9
|
+
& img{
|
|
10
|
+
width: 100%;
|
|
11
|
+
max-width: 10rem;
|
|
12
|
+
object-fit: contain;
|
|
13
|
+
}
|
|
14
|
+
`;
|
|
15
|
+
|
|
16
|
+
export const StyledProductCardWrapper = styled.div<IProductCard>`
|
|
17
|
+
display:flex;
|
|
18
|
+
flex-flow:column;
|
|
19
|
+
align-items: center;
|
|
20
|
+
gap: 1rem;
|
|
21
|
+
background-color: ${colors.primary50};
|
|
22
|
+
padding: 2rem;
|
|
23
|
+
border-radius: ${radius.md};
|
|
24
|
+
`;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "./ProductCard.component";
|
|
@@ -101,14 +101,14 @@ const CircularSlider = ({
|
|
|
101
101
|
}, 400);
|
|
102
102
|
|
|
103
103
|
content && setSlideContent(content[currentSlide] as any)
|
|
104
|
-
slides[currentSlide].classList.add('
|
|
104
|
+
slides[currentSlide].classList.add('active');
|
|
105
105
|
slides[currentSlide].style.height = slides[currentSlide].style.width = slidesSize + 20 + 'px';
|
|
106
106
|
};
|
|
107
107
|
const removeStyle = () => {
|
|
108
108
|
contentHolder?.current?.classList.remove('active');
|
|
109
109
|
|
|
110
110
|
content && setSlideContent(content[currentSlide] as any)
|
|
111
|
-
slides[currentSlide].classList.remove('
|
|
111
|
+
slides[currentSlide].classList.remove('active');
|
|
112
112
|
slides[currentSlide].style.height = slides[currentSlide].style.width = slidesSize + 'px';
|
|
113
113
|
};
|
|
114
114
|
|
|
@@ -3,12 +3,7 @@ import styled from 'styled-components';
|
|
|
3
3
|
|
|
4
4
|
export const StyledCircularSlider = styled.div<ICircularSlider>`
|
|
5
5
|
width: 100%;
|
|
6
|
-
min-height: 100vh;
|
|
7
6
|
overflow: hidden;
|
|
8
|
-
display: flex;
|
|
9
|
-
justify-content: center;
|
|
10
|
-
align-items: flex-end;
|
|
11
|
-
|
|
12
7
|
`;
|
|
13
8
|
|
|
14
9
|
export const StyledCircularSliderWrapper = styled.div<ICircularSlider>`
|
|
@@ -17,8 +12,8 @@ export const StyledCircularSliderWrapper = styled.div<ICircularSlider>`
|
|
|
17
12
|
justify-content: center;
|
|
18
13
|
margin: 0 auto;
|
|
19
14
|
margin-right: 0;
|
|
20
|
-
|
|
21
|
-
transform:
|
|
15
|
+
top: 50%;
|
|
16
|
+
transform: translate(65%, -50%);
|
|
22
17
|
`;
|
|
23
18
|
|
|
24
19
|
export const StyledCircularSliderSlides = styled.div<ICircularSlider>`
|
|
@@ -40,7 +35,7 @@ export const StyledCircularSliderSlide = styled.div<ICircularSlider>`
|
|
|
40
35
|
pointer-events:none;
|
|
41
36
|
}
|
|
42
37
|
|
|
43
|
-
&.
|
|
38
|
+
&.active{
|
|
44
39
|
filter: brightness(100%);
|
|
45
40
|
}
|
|
46
41
|
`;
|
|
@@ -54,13 +49,12 @@ export const StyledCircularSliderContent = styled.div<ICircularSlider>`
|
|
|
54
49
|
text-align: center;
|
|
55
50
|
|
|
56
51
|
opacity: 0;
|
|
57
|
-
transform: translateY(
|
|
52
|
+
transform: translateY(5%);
|
|
58
53
|
transition: all 0.3s ease;
|
|
59
54
|
|
|
60
55
|
&.active{
|
|
61
56
|
opacity: 1;
|
|
62
57
|
transform: translateY(-50%);
|
|
63
|
-
|
|
64
58
|
}
|
|
65
59
|
`;
|
|
66
60
|
|
package/src/index.ts
CHANGED
|
@@ -41,7 +41,7 @@ export { default as IconTitle } from './components/molecules/IconTitle'
|
|
|
41
41
|
export { default as BlogCard } from './components/molecules/BlogCard'
|
|
42
42
|
export { default as TeamCard } from './components/molecules/TeamCard'
|
|
43
43
|
export { default as LogosCard } from './components/molecules/LogosCard'
|
|
44
|
-
export { default as
|
|
44
|
+
export { default as ProductCard } from './components/molecules/ProductCard'
|
|
45
45
|
// //organisms
|
|
46
46
|
export { default as Slider } from './components/organisms/Slider'
|
|
47
47
|
export { default as Cover } from './components/organisms/Cover'
|
package/src/styles/utilities.ts
CHANGED
|
@@ -68,6 +68,7 @@ export const utilities: {
|
|
|
68
68
|
values: {
|
|
69
69
|
relative: "relative",
|
|
70
70
|
absolute: "absolute",
|
|
71
|
+
sticky: "sticky",
|
|
71
72
|
fixed: "fixed"
|
|
72
73
|
},
|
|
73
74
|
},
|
|
@@ -210,6 +211,12 @@ export const utilities: {
|
|
|
210
211
|
class: "ms",
|
|
211
212
|
values: spacers
|
|
212
213
|
},
|
|
214
|
+
"negative-margin-start": {
|
|
215
|
+
responsive: true,
|
|
216
|
+
property: "margin-left",
|
|
217
|
+
class: "ms-neg",
|
|
218
|
+
values: spacesNegative
|
|
219
|
+
},
|
|
213
220
|
"padding": {
|
|
214
221
|
responsive: true,
|
|
215
222
|
property: "padding",
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { IProjectCard } from './ProjectCard.interface';
|
|
3
|
-
export declare const StyledProjectCard: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("../Card/Card.interface").ICard, IProjectCard>> & string & Omit<({ variant, imageElement, children, className, style, ...props }: import("../Card/Card.interface").ICard) => import("react").JSX.Element, keyof import("react").Component<any, {}, any>>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { default } from "./ProjectCard.component";
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { IProjectCard } from './ProjectCard.interface';
|
|
3
|
-
export declare const StyledProjectCard: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("../Card/Card.interface").ICard, IProjectCard>> & string & Omit<({ variant, imageElement, children, className, style, ...props }: import("../Card/Card.interface").ICard) => import("react").JSX.Element, keyof import("react").Component<any, {}, any>>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { default } from "./ProjectCard.component";
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import Button from '@/components/atoms/Button/Button.component'
|
|
2
|
-
import Chip from '@/components/atoms/Chip/Chip.component'
|
|
3
|
-
import Heading from '@/components/atoms/Heading'
|
|
4
|
-
import { IProjectCard } from './ProjectCard.interface'
|
|
5
|
-
import Icon from '@/components/atoms/Icon/Icon.component'
|
|
6
|
-
import ImageWrapper from '@/components/atoms/ImageWrapper'
|
|
7
|
-
import React from 'react'
|
|
8
|
-
import Separator from '@/components/atoms/Separator/Separator.component'
|
|
9
|
-
import { StyledProjectCard } from './ProjectCard.theme'
|
|
10
|
-
|
|
11
|
-
const ProjectCard = ({
|
|
12
|
-
variant,
|
|
13
|
-
category,
|
|
14
|
-
title,
|
|
15
|
-
imageElement,
|
|
16
|
-
linkElement,
|
|
17
|
-
buttonLabel,
|
|
18
|
-
...props
|
|
19
|
-
}: IProjectCard) => {
|
|
20
|
-
return (
|
|
21
|
-
<StyledProjectCard
|
|
22
|
-
variant={variant}
|
|
23
|
-
imageElement={
|
|
24
|
-
<ImageWrapper aspectRatioHeight={variant === 'featured' ? 40 : 82}>
|
|
25
|
-
{imageElement}
|
|
26
|
-
</ImageWrapper>
|
|
27
|
-
}
|
|
28
|
-
{...props}
|
|
29
|
-
>
|
|
30
|
-
<div className="w-100">
|
|
31
|
-
<div className="d-flex align-items-center justify-content-between mb-4">
|
|
32
|
-
<Heading tag={'h3'} size={'h5'} className={'textEllipsis'}>
|
|
33
|
-
{title}
|
|
34
|
-
</Heading>
|
|
35
|
-
<Icon icon="icon-forward-arrow"></Icon>
|
|
36
|
-
</div>
|
|
37
|
-
|
|
38
|
-
<Separator color="#fff" height="1px" />
|
|
39
|
-
{linkElement}
|
|
40
|
-
</div>
|
|
41
|
-
</StyledProjectCard>
|
|
42
|
-
)
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
export default ProjectCard
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { Column, Row } from './../../atoms/FlexGrid'
|
|
2
|
-
import type { Meta, StoryObj } from '@storybook/react'
|
|
3
|
-
|
|
4
|
-
import { IProjectCard } from './ProjectCard.interface'
|
|
5
|
-
import ProjectCard from './ProjectCard.component'
|
|
6
|
-
import React from 'react'
|
|
7
|
-
|
|
8
|
-
// More on default export: https://storybook.js.org/docs/react/writing-stories/introduction#default-export
|
|
9
|
-
export default {
|
|
10
|
-
title: 'Components/ProjectCard',
|
|
11
|
-
component: ProjectCard,
|
|
12
|
-
tags: ['autodocs']
|
|
13
|
-
} as Meta
|
|
14
|
-
|
|
15
|
-
const image = (
|
|
16
|
-
<img
|
|
17
|
-
width="100%"
|
|
18
|
-
height="100%"
|
|
19
|
-
sizes="100vw"
|
|
20
|
-
decoding="async"
|
|
21
|
-
src="/assets/placeholder.png"
|
|
22
|
-
alt="Empty state"
|
|
23
|
-
/>
|
|
24
|
-
)
|
|
25
|
-
|
|
26
|
-
export const Simple: StoryObj<IProjectCard> = {
|
|
27
|
-
render: args => (
|
|
28
|
-
<Row>
|
|
29
|
-
<Column md={4}>
|
|
30
|
-
<ProjectCard {...args}></ProjectCard>
|
|
31
|
-
</Column>
|
|
32
|
-
<Column md={4}>
|
|
33
|
-
<ProjectCard {...args}></ProjectCard>
|
|
34
|
-
</Column>
|
|
35
|
-
<Column md={4}>
|
|
36
|
-
<ProjectCard {...args}></ProjectCard>
|
|
37
|
-
</Column>
|
|
38
|
-
|
|
39
|
-
<Column md={6}>
|
|
40
|
-
<ProjectCard variant="featured" {...args}></ProjectCard>
|
|
41
|
-
</Column>
|
|
42
|
-
<Column md={6}>
|
|
43
|
-
<ProjectCard variant="featured" {...args}></ProjectCard>
|
|
44
|
-
</Column>
|
|
45
|
-
|
|
46
|
-
<Column md={4}>
|
|
47
|
-
<ProjectCard {...args}></ProjectCard>
|
|
48
|
-
</Column>
|
|
49
|
-
<Column md={4}>
|
|
50
|
-
<ProjectCard {...args}></ProjectCard>
|
|
51
|
-
</Column>
|
|
52
|
-
<Column md={4}>
|
|
53
|
-
<ProjectCard {...args}></ProjectCard>
|
|
54
|
-
</Column>
|
|
55
|
-
|
|
56
|
-
<Column md={8}>
|
|
57
|
-
<ProjectCard variant="featured" {...args}></ProjectCard>
|
|
58
|
-
</Column>
|
|
59
|
-
|
|
60
|
-
<Column md={4}>
|
|
61
|
-
<ProjectCard {...args}></ProjectCard>
|
|
62
|
-
</Column>
|
|
63
|
-
</Row>
|
|
64
|
-
),
|
|
65
|
-
args: {
|
|
66
|
-
category: 'Document type',
|
|
67
|
-
title: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
|
|
68
|
-
imageElement: image,
|
|
69
|
-
buttonLabel: 'Download',
|
|
70
|
-
linkElement: <a href="#" className="linker"></a>
|
|
71
|
-
}
|
|
72
|
-
}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import styled, { css } from 'styled-components';
|
|
2
|
-
|
|
3
|
-
import Card from '../Card/Card.component';
|
|
4
|
-
import { IProjectCard } from './ProjectCard.interface';
|
|
5
|
-
import { colors } from '@/styles/variables';
|
|
6
|
-
|
|
7
|
-
export const StyledProjectCard = styled(Card) <IProjectCard>`
|
|
8
|
-
& picture{
|
|
9
|
-
&:before{
|
|
10
|
-
content: '';
|
|
11
|
-
position: absolute;
|
|
12
|
-
top: 0;
|
|
13
|
-
left: 0;
|
|
14
|
-
width: 100%;
|
|
15
|
-
height: 100%;
|
|
16
|
-
background: rgba(0,0,0,0.5);
|
|
17
|
-
z-index: 1;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
& figcaption{
|
|
22
|
-
position: absolute;
|
|
23
|
-
top: 0;
|
|
24
|
-
left: 0;
|
|
25
|
-
width: 100%;
|
|
26
|
-
height: 100%;
|
|
27
|
-
display: flex;
|
|
28
|
-
align-items: flex-end;
|
|
29
|
-
padding: 1rem;
|
|
30
|
-
color: ${colors.white};
|
|
31
|
-
z-index: 2;
|
|
32
|
-
|
|
33
|
-
& i{
|
|
34
|
-
min-width: 3rem;
|
|
35
|
-
height: 3rem;
|
|
36
|
-
line-height: 3rem;
|
|
37
|
-
font-size: 2.6rem;
|
|
38
|
-
|
|
39
|
-
border-radius: 50px;
|
|
40
|
-
color: ${colors.deepblue};
|
|
41
|
-
background-color: ${colors.softgreen};
|
|
42
|
-
|
|
43
|
-
transition: all 0.3s linear;
|
|
44
|
-
transform: rotateZ(-45deg);
|
|
45
|
-
transform-origin: center center;
|
|
46
|
-
text-align: center;
|
|
47
|
-
|
|
48
|
-
&::before{
|
|
49
|
-
line-height: inherit;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
&:hover{
|
|
55
|
-
& figcaption{
|
|
56
|
-
& i{
|
|
57
|
-
transform: rotateZ(0);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
`;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { default } from "./ProjectCard.component";
|