oddsgate-ds 1.0.24 → 1.0.26

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.
Files changed (44) hide show
  1. package/dist/cjs/index.js +5 -5
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/types/components/molecules/ProductCard/ProductCard.component.d.ts +4 -0
  4. package/dist/cjs/types/components/molecules/ProductCard/ProductCard.interface.d.ts +6 -0
  5. package/dist/{esm/types/components/molecules/ProjectCard/ProjectCard.stories.d.ts → cjs/types/components/molecules/ProductCard/ProductCard.stories.d.ts} +2 -2
  6. package/dist/cjs/types/components/molecules/ProductCard/ProductCard.theme.d.ts +4 -0
  7. package/dist/cjs/types/components/molecules/ProductCard/index.d.ts +1 -0
  8. package/dist/cjs/types/index.d.ts +1 -1
  9. package/dist/esm/index.js +5 -5
  10. package/dist/esm/index.js.map +1 -1
  11. package/dist/esm/types/components/molecules/ProductCard/ProductCard.component.d.ts +4 -0
  12. package/dist/esm/types/components/molecules/ProductCard/ProductCard.interface.d.ts +6 -0
  13. package/dist/{cjs/types/components/molecules/ProjectCard/ProjectCard.stories.d.ts → esm/types/components/molecules/ProductCard/ProductCard.stories.d.ts} +2 -2
  14. package/dist/esm/types/components/molecules/ProductCard/ProductCard.theme.d.ts +4 -0
  15. package/dist/esm/types/components/molecules/ProductCard/index.d.ts +1 -0
  16. package/dist/esm/types/index.d.ts +1 -1
  17. package/dist/types.d.ts +4 -6
  18. package/package.json +1 -1
  19. package/src/components/atoms/Button/Button.theme.ts +2 -2
  20. package/src/components/atoms/SocialLinks/SocialLinks.theme.ts +1 -1
  21. package/src/components/molecules/ProductCard/ProductCard.component.tsx +31 -0
  22. package/src/components/molecules/ProductCard/ProductCard.interface.ts +6 -0
  23. package/src/components/molecules/ProductCard/ProductCard.stories.tsx +33 -0
  24. package/src/components/molecules/ProductCard/ProductCard.theme.ts +27 -0
  25. package/src/components/molecules/ProductCard/index.ts +1 -0
  26. package/src/components/organisms/CircularSlider/CircularSlider.component.tsx +38 -19
  27. package/src/components/organisms/CircularSlider/CircularSlider.stories.tsx +7 -11
  28. package/src/components/organisms/CircularSlider/CircularSlider.theme.ts +20 -18
  29. package/src/components/organisms/Tabs/Tabs.theme.ts +2 -1
  30. package/src/index.ts +1 -1
  31. package/src/styles/utilities.ts +7 -0
  32. package/dist/cjs/types/components/molecules/ProjectCard/ProjectCard.component.d.ts +0 -4
  33. package/dist/cjs/types/components/molecules/ProjectCard/ProjectCard.interface.d.ts +0 -8
  34. package/dist/cjs/types/components/molecules/ProjectCard/ProjectCard.theme.d.ts +0 -3
  35. package/dist/cjs/types/components/molecules/ProjectCard/index.d.ts +0 -1
  36. package/dist/esm/types/components/molecules/ProjectCard/ProjectCard.component.d.ts +0 -4
  37. package/dist/esm/types/components/molecules/ProjectCard/ProjectCard.interface.d.ts +0 -8
  38. package/dist/esm/types/components/molecules/ProjectCard/ProjectCard.theme.d.ts +0 -3
  39. package/dist/esm/types/components/molecules/ProjectCard/index.d.ts +0 -1
  40. package/src/components/molecules/ProjectCard/ProjectCard.component.tsx +0 -45
  41. package/src/components/molecules/ProjectCard/ProjectCard.interface.ts +0 -8
  42. package/src/components/molecules/ProjectCard/ProjectCard.stories.tsx +0 -72
  43. package/src/components/molecules/ProjectCard/ProjectCard.theme.ts +0 -61
  44. package/src/components/molecules/ProjectCard/index.ts +0 -1
@@ -0,0 +1,4 @@
1
+ import { IProductCard } from './ProductCard.interface';
2
+ import React from 'react';
3
+ declare const ProductCard: ({ title, imageElement, description, className, style, ...props }: IProductCard) => React.JSX.Element;
4
+ export default ProductCard;
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ import { ICard } from '../Card/Card.interface';
3
+ export interface IProductCard extends ICard {
4
+ title?: string;
5
+ description?: string | React.ReactElement;
6
+ }
@@ -1,5 +1,5 @@
1
1
  import type { StoryObj } from '@storybook/react';
2
- import { IProjectCard } from './ProjectCard.interface';
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<IProjectCard>;
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 ProjectCard } from './components/molecules/ProjectCard';
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 IProjectCard extends ICard {
515
- category?: string;
514
+ interface IProductCard extends ICard {
516
515
  title?: string;
517
- buttonLabel?: string;
518
- linkElement?: React.ReactElement;
516
+ description?: string | React.ReactElement;
519
517
  }
520
518
 
521
- declare const ProjectCard: ({ variant, category, title, imageElement, linkElement, buttonLabel, ...props }: IProjectCard) => React__default.JSX.Element;
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, ProjectCard, Quote, RichText, Row, ScrollingNav, Separator, ShareModal, Slider, SocialLinks, Spacer, Tabs, TeamCard, Video, VideoEmbed, clickOutSideToClose, iconsList, variables };
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oddsgate-ds",
3
- "version": "1.0.24",
3
+ "version": "1.0.26",
4
4
  "description": "Miew theme component library",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -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: 18px 26px;
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.third50};
102
+ color: ${colors.primary50};
103
103
  }
104
104
  `}
105
105
  `;
@@ -4,7 +4,7 @@ import { ISocialLinks } from './SocialLinks.interface';
4
4
  import { colors } from '@/styles/variables';
5
5
 
6
6
  export const StyledSocialLinks = styled.ul<ISocialLinks>`
7
- display: flex;
7
+ display: inline-flex;
8
8
  align-items: center;
9
9
  gap: 12px;
10
10
 
@@ -0,0 +1,31 @@
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
+ return (
19
+ <StyledProductCard className={className} style={style}>
20
+ <StyledProductCardWrapper>
21
+ <Heading tag={'h3'} size={'h3'} className={'fw-bold'}>
22
+ {title}
23
+ </Heading>
24
+ {imageElement}
25
+ </StyledProductCardWrapper>
26
+ {description && <RichText tag='p' className='color-secondary50 mt-4'>{description}</RichText>}
27
+ </StyledProductCard>
28
+ )
29
+ }
30
+
31
+ export default ProductCard
@@ -0,0 +1,6 @@
1
+ import { ICard } from '../Card/Card.interface';
2
+
3
+ export interface IProductCard extends ICard {
4
+ title?: string
5
+ description?: string | React.ReactElement
6
+ }
@@ -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: 'Lorem ipsum',
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,27 @@
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
+ & picture{
10
+ width: 100%;
11
+ max-width: 10rem;
12
+
13
+ &img{
14
+ object-fit: contain;
15
+ }
16
+ }
17
+ `;
18
+
19
+ export const StyledProductCardWrapper = styled.div<IProductCard>`
20
+ display:flex;
21
+ flex-flow:column;
22
+ align-items: center;
23
+ gap: 1rem;
24
+ background-color: ${colors.primary50};
25
+ padding: 2rem;
26
+ border-radius: ${radius.md};
27
+ `;
@@ -0,0 +1 @@
1
+ export { default } from "./ProductCard.component";
@@ -1,4 +1,4 @@
1
- import React, { useEffect, useRef } from 'react'
1
+ import React, { useEffect, useRef, useState } from 'react'
2
2
  import {
3
3
  StyledCircularSlider,
4
4
  StyledCircularSliderContent,
@@ -7,6 +7,7 @@ import {
7
7
  StyledCircularSliderWrapper
8
8
  } from './CircularSlider.theme'
9
9
 
10
+ import Heading from '@/components/atoms/Heading/Heading.component';
10
11
  import { ICircularSlider } from './CircularSlider.interface'
11
12
 
12
13
  const CircularSlider = ({
@@ -15,14 +16,28 @@ const CircularSlider = ({
15
16
  className,
16
17
  }: ICircularSlider) => {
17
18
 
19
+ const [slideContent, setSlideContent] = useState({
20
+ name: '',
21
+ role: '',
22
+ });
18
23
  const slider = useRef<HTMLDivElement>();
19
24
  const wrapper = useRef<HTMLDivElement>();
20
25
  const slidesHolder = useRef<HTMLDivElement>();
26
+ const contentHolder = useRef<HTMLDivElement>();
21
27
 
22
- const sliderSize = 80 / 100;
23
- const slideSize = 15 / 100;
28
+ const sliderSize = 1;
29
+ const slideSize = 0.15;
24
30
 
25
31
 
32
+ //force 12 items
33
+ if (content && content.length < 12) {
34
+ let counter = 0;
35
+ for (let i = content.length; i <= 12; i++) {
36
+ content[i] = content[counter];
37
+ counter++;
38
+ }
39
+ }
40
+
26
41
  useEffect(() => {
27
42
  if (!slidesHolder.current) return //bail out;
28
43
 
@@ -34,8 +49,8 @@ const CircularSlider = ({
34
49
 
35
50
  let currentAngle = -90;
36
51
 
37
- // const stepAngle = 2 * Math.PI / slidesHolder?.current?.children.length;
38
- const stepAngle = 0.52;
52
+ const stepAngle = 2 * Math.PI / slidesHolder?.current?.children.length;
53
+ // const stepAngle = 0.52;
39
54
 
40
55
  let currentSlide = 0;
41
56
 
@@ -81,11 +96,19 @@ const CircularSlider = ({
81
96
  }
82
97
 
83
98
  const addStyle = () => {
84
- slides[currentSlide].classList.add('slides-holder__item_active');
99
+ setTimeout(() => {
100
+ contentHolder?.current?.classList.add('active');
101
+ }, 400);
102
+
103
+ content && setSlideContent(content[currentSlide] as any)
104
+ slides[currentSlide].classList.add('active');
85
105
  slides[currentSlide].style.height = slides[currentSlide].style.width = slidesSize + 20 + 'px';
86
106
  };
87
107
  const removeStyle = () => {
88
- slides[currentSlide].classList.remove('slides-holder__item_active');
108
+ contentHolder?.current?.classList.remove('active');
109
+
110
+ content && setSlideContent(content[currentSlide] as any)
111
+ slides[currentSlide].classList.remove('active');
89
112
  slides[currentSlide].style.height = slides[currentSlide].style.width = slidesSize + 'px';
90
113
  };
91
114
 
@@ -131,18 +154,17 @@ const CircularSlider = ({
131
154
  }
132
155
  }, [])
133
156
 
157
+ if (!content) return <></>
134
158
 
135
159
  return (
136
- <StyledCircularSlider ref={slider as any}>
160
+ <StyledCircularSlider ref={slider as any} className={className} style={style}>
161
+ <StyledCircularSliderContent ref={contentHolder as any}>
162
+ <div>
163
+ <Heading tag="span" size="h2" className='color-primary50 fw-bold'>{slideContent?.name}</Heading>
164
+ <Heading tag="span" size="h4" className='color-secondary50'>{slideContent?.role}</Heading>
165
+ </div>
166
+ </StyledCircularSliderContent>
137
167
  <StyledCircularSliderWrapper ref={wrapper as any}>
138
- {/* <div className="controls">
139
- <div className="controls__left">
140
- <div className="icon-wrapper">left</div>
141
- </div>
142
- <div className="controls__right">
143
- <div className="icon-wrapper">right</div>
144
- </div>
145
- </div> */}
146
168
  <StyledCircularSliderSlides ref={slidesHolder as any}>
147
169
  {content?.map((item, index) => {
148
170
  return (
@@ -150,9 +172,6 @@ const CircularSlider = ({
150
172
  )
151
173
  })}
152
174
  </StyledCircularSliderSlides>
153
- <StyledCircularSliderContent>
154
-
155
- </StyledCircularSliderContent>
156
175
  </StyledCircularSliderWrapper>
157
176
  </StyledCircularSlider>
158
177
 
@@ -1,12 +1,8 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react'
2
2
 
3
- import Button from '../../atoms/Button/Button.component'
4
3
  import CircularSlider from './CircularSlider.component'
5
- import Flex from '../../atoms/Flex/Flex.component'
6
4
  import { ICircularSlider } from './CircularSlider.interface'
7
5
  import React from 'react'
8
- import RichText from '../../atoms/RichText/RichText.component'
9
- import Video from '../../atoms/Video/Video.component'
10
6
 
11
7
  // More on default export: https://storybook.js.org/docs/react/writing-stories/introduction#default-export
12
8
  export default {
@@ -35,37 +31,37 @@ export const Simple: StoryObj<ICircularSlider> = {
35
31
  args: {
36
32
  content: [
37
33
  {
38
- name: "My name",
34
+ name: "My name 1",
39
35
  role: "My role",
40
36
  img: image
41
37
  },
42
38
  {
43
- name: "My name",
39
+ name: "My name 2",
44
40
  role: "My role",
45
41
  img: image
46
42
  },
47
43
  {
48
- name: "My name",
44
+ name: "My name 3",
49
45
  role: "My role",
50
46
  img: image
51
47
  },
52
48
  {
53
- name: "My name",
49
+ name: "My name 4",
54
50
  role: "My role",
55
51
  img: image
56
52
  },
57
53
  {
58
- name: "My name",
54
+ name: "My name 5",
59
55
  role: "My role",
60
56
  img: image
61
57
  },
62
58
  {
63
- name: "My name",
59
+ name: "My name 6",
64
60
  role: "My role",
65
61
  img: image
66
62
  },
67
63
  {
68
- name: "My name",
64
+ name: "My name 7",
69
65
  role: "My role",
70
66
  img: image
71
67
  }
@@ -1,31 +1,22 @@
1
1
  import { ICircularSlider } from './CircularSlider.interface';
2
- import { StyledVideo } from '../../atoms/Video/Video.theme';
3
2
  import styled from 'styled-components';
4
3
 
5
4
  export const StyledCircularSlider = styled.div<ICircularSlider>`
6
5
  width: 100%;
7
- min-height: 100vh;
8
6
  overflow: hidden;
9
- display: flex;
10
- justify-content: center;
11
- align-items: flex-end;
12
-
13
7
  `;
14
8
 
15
9
  export const StyledCircularSliderWrapper = styled.div<ICircularSlider>`
16
- margin: 0 auto;
17
- margin-right: 0;
10
+ position: relative;
18
11
  display: flex;
19
12
  justify-content: center;
20
- position: relative;
21
- padding: 20px 20px 0px 20px;
22
- overflow: hidden;
23
- transform: translateX(60%);
13
+ margin: 0 auto;
14
+ margin-right: 0;
15
+ top: 50%;
16
+ transform: translate(65%, -50%);
24
17
  `;
25
18
 
26
19
  export const StyledCircularSliderSlides = styled.div<ICircularSlider>`
27
- border-radius: 50%;
28
- border: 2px solid #8EB8E5;
29
20
  transform-origin: center;
30
21
  display: flex;
31
22
  justify-content: center;
@@ -35,11 +26,8 @@ export const StyledCircularSliderSlides = styled.div<ICircularSlider>`
35
26
  transform: rotate(-90deg);
36
27
  `;
37
28
  export const StyledCircularSliderSlide = styled.div<ICircularSlider>`
38
- border-radius: 50%;
39
- border: 2px solid #7C99B4;
40
29
  position: absolute;
41
30
  transform-origin: center;
42
- background-color: #222;
43
31
  transition: .3s linear all;
44
32
  filter: brightness(70%);
45
33
 
@@ -47,12 +35,26 @@ export const StyledCircularSliderSlide = styled.div<ICircularSlider>`
47
35
  pointer-events:none;
48
36
  }
49
37
 
50
- &.slides-holder__item_active{
38
+ &.active{
51
39
  filter: brightness(100%);
52
40
  }
53
41
  `;
54
42
 
55
43
  export const StyledCircularSliderContent = styled.div<ICircularSlider>`
44
+ position: absolute;
45
+ top: 50%;
46
+ left:33.333%;
56
47
 
48
+ width: 25%;
49
+ text-align: center;
50
+
51
+ opacity: 0;
52
+ transform: translateY(5%);
53
+ transition: all 0.3s ease;
54
+
55
+ &.active{
56
+ opacity: 1;
57
+ transform: translateY(-50%);
58
+ }
57
59
  `;
58
60
 
@@ -22,7 +22,7 @@ export const StyledTabsLinks = styled.a<ITabsItem>`
22
22
  align-items: center;
23
23
  justify-content: space-between;
24
24
  width: 100%;
25
- color: ${colors.white};
25
+ color: ${colors.secondary50};
26
26
  background-color: ${colors.third10};
27
27
  padding: 8px 18px;
28
28
  border-radius: 50px;
@@ -71,6 +71,7 @@ export const StyledTabs = styled.div<ITabs>`
71
71
 
72
72
  ${StyledTabsMenu}{
73
73
  flex-flow: column;
74
+ align-items: stretch;
74
75
  justify-content: flex-start;
75
76
  }
76
77
  }
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 ProjectCard } from './components/molecules/ProjectCard'
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'
@@ -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,4 +0,0 @@
1
- import { IProjectCard } from './ProjectCard.interface';
2
- import React from 'react';
3
- declare const ProjectCard: ({ variant, category, title, imageElement, linkElement, buttonLabel, ...props }: IProjectCard) => React.JSX.Element;
4
- export default ProjectCard;
@@ -1,8 +0,0 @@
1
- /// <reference types="react" />
2
- import { ICard } from '../Card/Card.interface';
3
- export interface IProjectCard extends ICard {
4
- category?: string;
5
- title?: string;
6
- buttonLabel?: string;
7
- linkElement?: React.ReactElement;
8
- }
@@ -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,4 +0,0 @@
1
- import { IProjectCard } from './ProjectCard.interface';
2
- import React from 'react';
3
- declare const ProjectCard: ({ variant, category, title, imageElement, linkElement, buttonLabel, ...props }: IProjectCard) => React.JSX.Element;
4
- export default ProjectCard;
@@ -1,8 +0,0 @@
1
- /// <reference types="react" />
2
- import { ICard } from '../Card/Card.interface';
3
- export interface IProjectCard extends ICard {
4
- category?: string;
5
- title?: string;
6
- buttonLabel?: string;
7
- linkElement?: React.ReactElement;
8
- }
@@ -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,8 +0,0 @@
1
- import { ICard } from '../Card/Card.interface';
2
-
3
- export interface IProjectCard extends ICard {
4
- category?: string
5
- title?: string
6
- buttonLabel?: string,
7
- linkElement?: React.ReactElement
8
- }