allaw-ui 1.0.132 → 1.0.134
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/components/atoms/selects/SelectableListItem.d.ts +1 -1
- package/dist/components/atoms/typography/Heading.d.ts +0 -6
- package/dist/components/atoms/typography/Heading.js +3 -21
- package/dist/components/atoms/typography/Heading.stories.d.ts +0 -1
- package/dist/components/atoms/typography/Heading.stories.js +4 -10
- package/dist/components/atoms/typography/Paragraph.d.ts +1 -0
- package/dist/components/atoms/typography/Paragraph.js +2 -2
- package/dist/components/molecules/blogCard/BlogCard.d.ts +1 -1
- package/dist/components/molecules/blogCard/BlogCard.js +12 -14
- package/dist/components/molecules/blogCard/BlogCard.module.css +87 -80
- package/dist/components/molecules/blogHeader/BlogHeader.d.ts +1 -1
- package/dist/components/molecules/blogHeader/BlogHeader.js +8 -8
- package/dist/components/molecules/blogHeader/BlogHeader.module.css +17 -18
- package/dist/components/molecules/blogText/BlogText.d.ts +7 -0
- package/dist/components/molecules/blogText/BlogText.js +11 -0
- package/dist/components/molecules/blogText/BlogText.module.css +54 -0
- package/dist/components/molecules/blogText/BlogText.stories.d.ts +30 -0
- package/dist/components/molecules/blogText/BlogText.stories.js +51 -0
- package/dist/components/molecules/blogText/index.d.ts +2 -0
- package/dist/components/molecules/blogText/index.js +1 -0
- package/dist/components/molecules/blogTextImageBlock/BlogTextImageBlock.d.ts +8 -0
- package/dist/components/molecules/blogTextImageBlock/BlogTextImageBlock.js +15 -0
- package/dist/components/molecules/blogTextImageBlock/BlogTextImageBlock.module.css +103 -0
- package/dist/components/molecules/blogTextImageBlock/BlogTextImageBlock.stories.d.ts +36 -0
- package/dist/components/molecules/blogTextImageBlock/BlogTextImageBlock.stories.js +58 -0
- package/dist/components/molecules/blogTextImageBlock/index.d.ts +2 -0
- package/dist/components/molecules/blogTextImageBlock/index.js +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +2 -0
- package/dist/stories/Header.stories.d.ts +3 -3
- package/package.json +1 -1
|
@@ -4,7 +4,7 @@ export interface SelectableListItemProps {
|
|
|
4
4
|
labels: {
|
|
5
5
|
label: string;
|
|
6
6
|
width?: string;
|
|
7
|
-
align?:
|
|
7
|
+
align?: string;
|
|
8
8
|
fontWeight?: "normal" | "bold";
|
|
9
9
|
color?: "mid-grey" | "dark-grey" | "noir" | "venom-grey-dark" | "actions-valid" | "actions-error";
|
|
10
10
|
}[];
|
|
@@ -1,15 +1,9 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
export interface ResponsiveSetting {
|
|
3
|
-
maxWidth: number;
|
|
4
|
-
minWidth: number;
|
|
5
|
-
styles: React.CSSProperties;
|
|
6
|
-
}
|
|
7
2
|
export interface HeadingProps {
|
|
8
3
|
variant: "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "h7";
|
|
9
4
|
color?: "bleu-allaw" | "mid-grey" | "dark-grey" | "noir" | "pure-white";
|
|
10
5
|
text: React.ReactNode;
|
|
11
6
|
align?: "left" | "justify" | "center";
|
|
12
|
-
responsiveSettings?: ResponsiveSetting[];
|
|
13
7
|
}
|
|
14
8
|
declare const Heading: React.FC<HeadingProps>;
|
|
15
9
|
export default Heading;
|
|
@@ -1,25 +1,7 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from "react";
|
|
2
2
|
import styles from "./Heading.module.css";
|
|
3
3
|
var Heading = function (_a) {
|
|
4
|
-
var variant = _a.variant, _b = _a.color, color = _b === void 0 ? "pure-white" : _b, text = _a.text, _c = _a.align, align = _c === void 0 ? "center" : _c
|
|
5
|
-
|
|
6
|
-
var calculateStyles = function () {
|
|
7
|
-
if (!responsiveSettings || responsiveSettings.length === 0)
|
|
8
|
-
return;
|
|
9
|
-
var currentWidth = window.innerWidth;
|
|
10
|
-
var matchedSetting = responsiveSettings.find(function (setting) {
|
|
11
|
-
return currentWidth <= setting.maxWidth && currentWidth >= setting.minWidth;
|
|
12
|
-
});
|
|
13
|
-
if (matchedSetting) {
|
|
14
|
-
setDynamicStyles(matchedSetting.styles);
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
useEffect(function () {
|
|
18
|
-
calculateStyles();
|
|
19
|
-
var handleResize = function () { return calculateStyles(); };
|
|
20
|
-
window.addEventListener("resize", handleResize);
|
|
21
|
-
return function () { return window.removeEventListener("resize", handleResize); };
|
|
22
|
-
}, [responsiveSettings]);
|
|
23
|
-
return (React.createElement("span", { className: "".concat(styles.heading, " ").concat(styles[variant], " ").concat(styles["color-".concat(color)], " ").concat(styles["align-".concat(align)]), style: dynamicStyles }, text));
|
|
4
|
+
var variant = _a.variant, _b = _a.color, color = _b === void 0 ? "pure-white" : _b, text = _a.text, _c = _a.align, align = _c === void 0 ? "center" : _c;
|
|
5
|
+
return (React.createElement("span", { className: "".concat(styles.heading, " ").concat(styles[variant], " ").concat(styles["color-".concat(color)], " ").concat(styles["align-".concat(align)]) }, text));
|
|
24
6
|
};
|
|
25
7
|
export default Heading;
|
|
@@ -20,7 +20,7 @@ export default {
|
|
|
20
20
|
variant: {
|
|
21
21
|
control: {
|
|
22
22
|
type: "select",
|
|
23
|
-
options: ["h1", "h2", "h3", "h4", "h5", "h6"
|
|
23
|
+
options: ["h1", "h2", "h3", "h4", "h5", "h6"],
|
|
24
24
|
},
|
|
25
25
|
},
|
|
26
26
|
color: {
|
|
@@ -64,13 +64,13 @@ export var H1 = Template.bind({});
|
|
|
64
64
|
H1.args = {
|
|
65
65
|
variant: "h1",
|
|
66
66
|
color: "pure-white",
|
|
67
|
-
text: "Poppins – SemiBold –
|
|
67
|
+
text: "Poppins – SemiBold – 50px",
|
|
68
68
|
};
|
|
69
69
|
export var H2 = Template.bind({});
|
|
70
70
|
H2.args = {
|
|
71
71
|
variant: "h2",
|
|
72
72
|
color: "pure-white",
|
|
73
|
-
text: "Poppins – SemiBold –
|
|
73
|
+
text: "Poppins – SemiBold – 38px",
|
|
74
74
|
};
|
|
75
75
|
export var H3 = Template.bind({});
|
|
76
76
|
H3.args = {
|
|
@@ -88,18 +88,12 @@ export var H5 = Template.bind({});
|
|
|
88
88
|
H5.args = {
|
|
89
89
|
variant: "h5",
|
|
90
90
|
color: "pure-white",
|
|
91
|
-
text: "Poppins – Medium –
|
|
91
|
+
text: "Poppins – Medium – 18px",
|
|
92
92
|
};
|
|
93
93
|
export var H6 = Template.bind({});
|
|
94
94
|
H6.args = {
|
|
95
95
|
variant: "h6",
|
|
96
96
|
color: "pure-white",
|
|
97
|
-
text: "Poppins – SemiBold – 18px",
|
|
98
|
-
};
|
|
99
|
-
export var H7 = Template.bind({});
|
|
100
|
-
H7.args = {
|
|
101
|
-
variant: "h7",
|
|
102
|
-
color: "pure-white",
|
|
103
97
|
text: "Poppins – SemiBold – 14px",
|
|
104
98
|
};
|
|
105
99
|
export var ResponsiveExample = Template.bind({});
|
|
@@ -13,7 +13,7 @@ import React from "react";
|
|
|
13
13
|
import "./Paragraph.css";
|
|
14
14
|
import { convertToHtml } from "../../../utils/utils";
|
|
15
15
|
var Paragraph = function (_a) {
|
|
16
|
-
var variant = _a.variant, color = _a.color, text = _a.text, maxLines = _a.maxLines, maxChars = _a.maxChars, _b = _a.size, size = _b === void 0 ? "default" : _b;
|
|
16
|
+
var variant = _a.variant, color = _a.color, text = _a.text, maxLines = _a.maxLines, maxChars = _a.maxChars, _b = _a.size, size = _b === void 0 ? "default" : _b, className = _a.className;
|
|
17
17
|
var truncateText = function (text, maxChars) {
|
|
18
18
|
if (text.length <= maxChars)
|
|
19
19
|
return text;
|
|
@@ -21,7 +21,7 @@ var Paragraph = function (_a) {
|
|
|
21
21
|
};
|
|
22
22
|
var htmlText = convertToHtml(text);
|
|
23
23
|
var truncatedText = maxChars ? truncateText(htmlText, maxChars) : htmlText;
|
|
24
|
-
return (React.createElement("div", { className: "paragraph ".concat(variant, " ").concat(color ? "color-".concat(color) : "", " ").concat(size === "small" ? "paragraph-small" : ""), style: __assign({ whiteSpace: "pre-line" }, (maxLines
|
|
24
|
+
return (React.createElement("div", { className: "paragraph ".concat(variant, " ").concat(color ? "color-".concat(color) : "", " ").concat(size === "small" ? "paragraph-small" : "", " ").concat(className || "").trim(), style: __assign({ whiteSpace: "pre-line" }, (maxLines
|
|
25
25
|
? {
|
|
26
26
|
WebkitLineClamp: maxLines,
|
|
27
27
|
display: "-webkit-box",
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import React from
|
|
2
|
-
import styles from
|
|
3
|
-
import Link from
|
|
4
|
-
import { OtherStatusTag } from
|
|
5
|
-
import {
|
|
6
|
-
import Image from
|
|
1
|
+
import React from "react";
|
|
2
|
+
import styles from "./BlogCard.module.css";
|
|
3
|
+
import Link from "next/link";
|
|
4
|
+
import { OtherStatusTag } from "../../atoms/tags";
|
|
5
|
+
import { TinyInfo } from "../../atoms/typography";
|
|
6
|
+
import Image from "next/image";
|
|
7
7
|
var BlogTopSection = function (_a) {
|
|
8
8
|
var Image_URL = _a.Image_URL, Title = _a.Title;
|
|
9
|
-
return (React.createElement("div", { className: "".concat(styles.blogTopSection, " ").concat(!Image_URL ? styles.placeholder :
|
|
9
|
+
return (React.createElement("div", { className: "".concat(styles.blogTopSection, " ").concat(!Image_URL ? styles.placeholder : "") }, Image_URL ? (React.createElement(Image, { className: styles.blogImage, src: Image_URL, alt: Title || "Image de l’article de blog", width: 361, height: 230, objectFit: "cover" })) : (React.createElement("span", { className: styles.placeholderText }))));
|
|
10
10
|
};
|
|
11
11
|
var BlogBottomSection = function (_a) {
|
|
12
12
|
var Tags = _a.Tags, Date = _a.Date, Title = _a.Title, Description = _a.Description;
|
|
@@ -19,18 +19,16 @@ var BlogBottomSection = function (_a) {
|
|
|
19
19
|
React.createElement(TinyInfo, { text: Date.toLocaleDateString(), variant: "medium14", color: "mid-grey" })),
|
|
20
20
|
React.createElement("div", { className: styles.blogSplitSection }),
|
|
21
21
|
React.createElement("div", { className: styles.blogBottomSectionDown },
|
|
22
|
-
React.createElement("div", { className: styles.blogTitle },
|
|
23
|
-
React.createElement(Heading, { variant: "h6", text: Title, color: "noir", align: "left" })),
|
|
22
|
+
React.createElement("div", { className: styles.blogTitle }, Title),
|
|
24
23
|
React.createElement("div", { className: styles.blogDescription },
|
|
25
24
|
React.createElement(TinyInfo, { variant: "medium14", text: Description, color: "noir", align: "left" })))));
|
|
26
25
|
};
|
|
27
26
|
var BlogCard = function (_a) {
|
|
28
27
|
var Article_URL = _a.Article_URL, Image_URL = _a.Image_URL, Tags = _a.Tags, Date = _a.Date, Title = _a.Title, Description = _a.Description, _b = _a.Preview, Preview = _b === void 0 ? false : _b, onClick = _a.onClick;
|
|
29
|
-
return (React.createElement(React.Fragment, null, onClick ? React.createElement("button", { className: styles.blogContainer, onClick: function () { return onClick && onClick(); } },
|
|
28
|
+
return (React.createElement(React.Fragment, null, onClick ? (React.createElement("button", { className: styles.blogContainer, onClick: function () { return onClick && onClick(); } },
|
|
30
29
|
!Preview && React.createElement(BlogTopSection, { Image_URL: Image_URL, Title: Title }),
|
|
31
|
-
React.createElement(BlogBottomSection, { Tags: Tags, Date: Date, Title: Title, Description: Description })) :
|
|
32
|
-
React.createElement(
|
|
33
|
-
|
|
34
|
-
React.createElement(BlogBottomSection, { Tags: Tags, Date: Date, Title: Title, Description: Description }))));
|
|
30
|
+
React.createElement(BlogBottomSection, { Tags: Tags, Date: Date, Title: Title, Description: Description }))) : (React.createElement(Link, { href: Article_URL, className: styles.blogContainer },
|
|
31
|
+
!Preview && React.createElement(BlogTopSection, { Image_URL: Image_URL, Title: Title }),
|
|
32
|
+
React.createElement(BlogBottomSection, { Tags: Tags, Date: Date, Title: Title, Description: Description })))));
|
|
35
33
|
};
|
|
36
34
|
export default BlogCard;
|
|
@@ -1,117 +1,124 @@
|
|
|
1
1
|
.blogContainer {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
2
|
+
text-decoration: none;
|
|
3
|
+
display: flex;
|
|
4
|
+
flex-direction: column;
|
|
5
|
+
align-items: flex-start;
|
|
6
|
+
width: 361px;
|
|
7
|
+
box-shadow: 0px 1px 20px 0px rgba(213, 233, 246, 0.8);
|
|
8
|
+
border-radius: 16px;
|
|
9
|
+
overflow: hidden;
|
|
10
|
+
transition: transform 0.2s ease;
|
|
11
|
+
cursor: pointer;
|
|
12
|
+
border: none;
|
|
13
|
+
height: 100%;
|
|
14
|
+
max-height: 385px;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
.blogContainer:hover {
|
|
18
|
-
|
|
18
|
+
transform: scale(1.015);
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
.blogTopSection {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
height: 200px;
|
|
23
|
+
object-fit: contain;
|
|
24
|
+
width: 100%;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
.blogSplitSection {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
width: 329px;
|
|
29
|
+
height: 1px;
|
|
30
|
+
background: #f1f4f8;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
.blogBottomSection {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
34
|
+
flex: 1;
|
|
35
|
+
display: flex;
|
|
36
|
+
padding: 23px 16px 24px 16px;
|
|
37
|
+
flex-direction: column;
|
|
38
|
+
align-items: flex-start;
|
|
39
|
+
gap: 12px;
|
|
40
|
+
background: #fff;
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
.blogImage {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
44
|
+
background: var(--Primary-Light-grey, #f4f7fb);
|
|
45
|
+
width: 100%;
|
|
46
|
+
height: 100%;
|
|
47
|
+
object-fit: cover;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
.blogTitle {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
51
|
+
display: -webkit-box;
|
|
52
|
+
line-clamp: 1;
|
|
53
|
+
-webkit-line-clamp: 1;
|
|
54
|
+
-webkit-box-orient: vertical;
|
|
55
|
+
overflow: hidden;
|
|
56
|
+
color: var(--Primary-Mid-black, #171e25);
|
|
57
|
+
text-align: center;
|
|
58
|
+
font-family: Poppins;
|
|
59
|
+
font-size: 18px;
|
|
60
|
+
font-style: normal;
|
|
61
|
+
font-weight: 600;
|
|
62
|
+
line-height: 22px;
|
|
56
63
|
}
|
|
57
64
|
|
|
58
65
|
.blogDescription {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
66
|
+
display: -webkit-box;
|
|
67
|
+
line-clamp: 3;
|
|
68
|
+
-webkit-line-clamp: 3;
|
|
69
|
+
-webkit-box-orient: vertical;
|
|
70
|
+
overflow: hidden;
|
|
71
|
+
text-overflow: ellipsis;
|
|
72
|
+
white-space: normal;
|
|
73
|
+
word-wrap: break-word;
|
|
74
|
+
overflow-wrap: break-word;
|
|
75
|
+
word-break: break-word;
|
|
76
|
+
hyphens: auto;
|
|
70
77
|
}
|
|
71
78
|
|
|
72
79
|
.blogTopSectionPlaceholder {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
+
background: var(--Primary-Light-grey, #f4f7fb);
|
|
81
|
+
display: flex;
|
|
82
|
+
align-items: center;
|
|
83
|
+
justify-content: center;
|
|
84
|
+
color: #ccc;
|
|
85
|
+
font-family: Arial, sans-serif;
|
|
86
|
+
font-size: 14px;
|
|
80
87
|
}
|
|
81
88
|
|
|
82
89
|
.tagsContainer {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
90
|
+
display: flex;
|
|
91
|
+
flex-direction: row;
|
|
92
|
+
justify-content: center;
|
|
93
|
+
gap: 8px;
|
|
94
|
+
max-width: 100%;
|
|
95
|
+
scroll-behavior: smooth;
|
|
96
|
+
flex-wrap: wrap;
|
|
97
|
+
overflow: hidden;
|
|
91
98
|
}
|
|
92
99
|
|
|
93
100
|
.blogBottomSectionUp {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
101
|
+
display: flex;
|
|
102
|
+
justify-content: space-between;
|
|
103
|
+
align-items: center;
|
|
104
|
+
align-self: stretch;
|
|
105
|
+
width: 100%;
|
|
106
|
+
overflow: hidden;
|
|
100
107
|
}
|
|
101
108
|
|
|
102
109
|
.blogBottomSectionDown {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
110
|
+
display: flex;
|
|
111
|
+
flex-direction: column;
|
|
112
|
+
align-items: flex-start;
|
|
113
|
+
gap: 16px;
|
|
114
|
+
align-self: stretch;
|
|
108
115
|
}
|
|
109
116
|
|
|
110
117
|
.blogDate {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
}
|
|
118
|
+
color: #728ea7;
|
|
119
|
+
font-family: Inter;
|
|
120
|
+
font-size: 14px;
|
|
121
|
+
font-style: normal;
|
|
122
|
+
font-weight: 600;
|
|
123
|
+
line-height: normal;
|
|
124
|
+
}
|
|
@@ -7,5 +7,5 @@ export type BlogHeaderProps = {
|
|
|
7
7
|
Profession: "Avocat" | "Notaire" | "Commissaire de justice";
|
|
8
8
|
ImageBlog: string;
|
|
9
9
|
};
|
|
10
|
-
declare function BlogHeader({ Title, Author, Date, TimeToRead, Profession, ImageBlog }: BlogHeaderProps): React.JSX.Element;
|
|
10
|
+
declare function BlogHeader({ Title, Author, Date, TimeToRead, Profession, ImageBlog, }: BlogHeaderProps): React.JSX.Element;
|
|
11
11
|
export default BlogHeader;
|
|
@@ -4,18 +4,18 @@ import Image from "next/image";
|
|
|
4
4
|
import styles from "./BlogHeader.module.css";
|
|
5
5
|
function BlogHeader(_a) {
|
|
6
6
|
var Title = _a.Title, Author = _a.Author, Date = _a.Date, TimeToRead = _a.TimeToRead, Profession = _a.Profession, ImageBlog = _a.ImageBlog;
|
|
7
|
-
return (React.createElement("
|
|
7
|
+
return (React.createElement("article", { className: styles.blogContainerWrapper },
|
|
8
8
|
React.createElement("div", { className: styles.blogContainer },
|
|
9
|
-
React.createElement("
|
|
10
|
-
React.createElement("h1", { className: styles.title }, Title)),
|
|
9
|
+
React.createElement("h1", { className: styles.title }, Title),
|
|
11
10
|
React.createElement("div", { className: styles.blogInfoContainer },
|
|
12
|
-
React.createElement(
|
|
11
|
+
React.createElement("time", { className: styles.blogDate, dateTime: Date.toISOString(), "aria-label": "Date de publication" },
|
|
12
|
+
React.createElement(TinyInfo, { variant: "semiBold12", text: Date.toLocaleDateString(), color: "dark-grey" })),
|
|
13
13
|
React.createElement("div", { className: styles.timeToReadContainer },
|
|
14
|
-
React.createElement("i", { className: "allaw-icon-clock" }),
|
|
14
|
+
React.createElement("i", { className: "allaw-icon-clock", "aria-hidden": "true" }),
|
|
15
15
|
React.createElement(TinyInfo, { variant: "semiBold12", text: "".concat(TimeToRead, " min"), color: "dark-grey" })),
|
|
16
|
-
React.createElement(TinyInfo, { variant: "semiBold12", text: Profession, color: "dark-grey" }),
|
|
17
|
-
React.createElement(TinyInfo, { variant: "semiBold12", text: Author, color: "dark-grey" })),
|
|
18
|
-
React.createElement("
|
|
16
|
+
React.createElement(TinyInfo, { variant: "semiBold12", text: Profession, color: "dark-grey", "aria-label": "Profession de l'auteur" }),
|
|
17
|
+
React.createElement(TinyInfo, { variant: "semiBold12", text: Author, color: "dark-grey", "aria-label": "Auteur de l'article" })),
|
|
18
|
+
React.createElement("figure", { className: styles.blogImageContainer },
|
|
19
19
|
React.createElement(Image, { src: ImageBlog, alt: "Illustration pour l'article intitul\u00E9 \"".concat(Title, "\""), width: 1000, height: 449, className: styles.blogImage })))));
|
|
20
20
|
}
|
|
21
21
|
export default BlogHeader;
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
justify-content: center;
|
|
4
4
|
background-color: white;
|
|
5
5
|
padding: 16px;
|
|
6
|
+
gap: 20px;
|
|
6
7
|
width: 100%;
|
|
7
8
|
}
|
|
8
9
|
|
|
@@ -13,6 +14,7 @@
|
|
|
13
14
|
flex-direction: column;
|
|
14
15
|
align-items: flex-start;
|
|
15
16
|
background-color: white;
|
|
17
|
+
padding: 16px;
|
|
16
18
|
gap: 16px;
|
|
17
19
|
}
|
|
18
20
|
|
|
@@ -25,7 +27,15 @@
|
|
|
25
27
|
flex-wrap: wrap;
|
|
26
28
|
}
|
|
27
29
|
|
|
28
|
-
.
|
|
30
|
+
.title {
|
|
31
|
+
color: var(--Primary-Mid-black, #171e25);
|
|
32
|
+
font-family: var(--font-poppins);
|
|
33
|
+
font-family: "Poppins";
|
|
34
|
+
font-size: 40px;
|
|
35
|
+
font-style: normal;
|
|
36
|
+
font-weight: 600;
|
|
37
|
+
line-height: normal;
|
|
38
|
+
letter-spacing: 0.4px;
|
|
29
39
|
display: -webkit-box;
|
|
30
40
|
-webkit-line-clamp: 2;
|
|
31
41
|
line-clamp: 2;
|
|
@@ -38,17 +48,6 @@
|
|
|
38
48
|
overflow-wrap: break-word;
|
|
39
49
|
}
|
|
40
50
|
|
|
41
|
-
.title {
|
|
42
|
-
color: var(--Primary-Mid-black, #171E25);
|
|
43
|
-
font-family: var(--font-poppins);
|
|
44
|
-
font-family: "Poppins";
|
|
45
|
-
font-size: 40px;
|
|
46
|
-
font-style: normal;
|
|
47
|
-
font-weight: 600;
|
|
48
|
-
line-height: normal;
|
|
49
|
-
letter-spacing: 0.4px;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
51
|
.blogImage {
|
|
53
52
|
width: 100%;
|
|
54
53
|
height: 450px;
|
|
@@ -58,6 +57,8 @@
|
|
|
58
57
|
|
|
59
58
|
.blogImageContainer {
|
|
60
59
|
width: 100%;
|
|
60
|
+
max-width: 1000px;
|
|
61
|
+
max-height: 449px;
|
|
61
62
|
height: auto;
|
|
62
63
|
overflow: hidden;
|
|
63
64
|
display: flex;
|
|
@@ -73,16 +74,16 @@
|
|
|
73
74
|
}
|
|
74
75
|
|
|
75
76
|
.timeToReadContainer > i {
|
|
76
|
-
color: #
|
|
77
|
+
color: #25beeb;
|
|
77
78
|
font-size: 12px;
|
|
78
|
-
}
|
|
79
|
+
}
|
|
79
80
|
|
|
80
81
|
@media (max-width: 700px) and (min-width: 400px) {
|
|
81
82
|
.blogInfoContainer {
|
|
82
83
|
display: grid;
|
|
83
84
|
grid-template-columns: 1fr 1fr;
|
|
84
85
|
grid-template-rows: 1fr 1fr;
|
|
85
|
-
gap: 6px;
|
|
86
|
+
gap: 6px;
|
|
86
87
|
width: 100%;
|
|
87
88
|
justify-content: space-between;
|
|
88
89
|
align-items: stretch;
|
|
@@ -132,7 +133,7 @@
|
|
|
132
133
|
padding: 0;
|
|
133
134
|
}
|
|
134
135
|
|
|
135
|
-
.
|
|
136
|
+
.title {
|
|
136
137
|
-webkit-line-clamp: 3;
|
|
137
138
|
line-clamp: 3;
|
|
138
139
|
}
|
|
@@ -144,6 +145,4 @@
|
|
|
144
145
|
padding: 0 8px;
|
|
145
146
|
margin-top: 4px;
|
|
146
147
|
}
|
|
147
|
-
|
|
148
|
-
|
|
149
148
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Paragraph } from "src/components/atoms/typography";
|
|
3
|
+
import styles from "./BlogText.module.css";
|
|
4
|
+
function BlogText(_a) {
|
|
5
|
+
var Title = _a.Title, Article = _a.Article;
|
|
6
|
+
return (React.createElement("section", { className: styles.BlogTextContainerWrapper },
|
|
7
|
+
React.createElement("div", { className: styles.BlogTextContainer },
|
|
8
|
+
React.createElement("h3", { className: styles.BlogTextTitle }, Title),
|
|
9
|
+
React.createElement(Paragraph, { variant: "semiBold", color: "dark-grey", text: Article, className: styles.BlogTextCustomParagraph }))));
|
|
10
|
+
}
|
|
11
|
+
export default BlogText;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
.BlogTextContainerWrapper {
|
|
2
|
+
display: flex;
|
|
3
|
+
justify-content: center;
|
|
4
|
+
background-color: white;
|
|
5
|
+
padding: 16px;
|
|
6
|
+
width: 100%;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.BlogTextContainer {
|
|
10
|
+
display: flex;
|
|
11
|
+
max-width: 1000px;
|
|
12
|
+
width: 100%;
|
|
13
|
+
min-height: 200px;
|
|
14
|
+
flex-direction: column;
|
|
15
|
+
align-items: flex-start;
|
|
16
|
+
gap: 20px;
|
|
17
|
+
overflow-wrap: break-word;
|
|
18
|
+
word-break: break-word;
|
|
19
|
+
white-space: normal;
|
|
20
|
+
padding: 16px;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.BlogTextTitle {
|
|
24
|
+
color: var(--Primary-Mid-black, #171e25);
|
|
25
|
+
font-family: Poppins;
|
|
26
|
+
font-size: 18px;
|
|
27
|
+
font-style: normal;
|
|
28
|
+
font-weight: 600;
|
|
29
|
+
line-height: normal;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.BlogTextCustomParagraph {
|
|
33
|
+
white-space: pre-wrap;
|
|
34
|
+
overflow: auto;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
@media (max-width: 825px) {
|
|
38
|
+
.BlogTextContainer {
|
|
39
|
+
gap: 12px;
|
|
40
|
+
padding: 0 12px;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
@media (max-width: 400px) {
|
|
45
|
+
.BlogTextContainerWrapper {
|
|
46
|
+
padding: 0;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.BlogTextContainer {
|
|
50
|
+
gap: 10px;
|
|
51
|
+
padding: 0 8px;
|
|
52
|
+
margin-top: 4px;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
declare namespace _default {
|
|
2
|
+
export let title: string;
|
|
3
|
+
export { BlogText as component };
|
|
4
|
+
export let tags: string[];
|
|
5
|
+
export namespace argTypes {
|
|
6
|
+
namespace Title {
|
|
7
|
+
let control: string;
|
|
8
|
+
let description: string;
|
|
9
|
+
}
|
|
10
|
+
namespace Article {
|
|
11
|
+
let control_1: string;
|
|
12
|
+
export { control_1 as control };
|
|
13
|
+
let description_1: string;
|
|
14
|
+
export { description_1 as description };
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export namespace parameters {
|
|
18
|
+
namespace docs {
|
|
19
|
+
export namespace description_2 {
|
|
20
|
+
let component: string;
|
|
21
|
+
}
|
|
22
|
+
export { description_2 as description };
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export default _default;
|
|
27
|
+
export const ShortTitleAndContent: any;
|
|
28
|
+
export const LongTitleAndContent: any;
|
|
29
|
+
export const ArticleWithLineBreaks: any;
|
|
30
|
+
import BlogText from "../blogText/BlogText";
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import React from "react";
|
|
13
|
+
import BlogText from "../blogText/BlogText";
|
|
14
|
+
export default {
|
|
15
|
+
title: "Components/molecules/Blog/BlogText",
|
|
16
|
+
component: BlogText,
|
|
17
|
+
tags: ["autodocs"],
|
|
18
|
+
argTypes: {
|
|
19
|
+
Title: {
|
|
20
|
+
control: "text",
|
|
21
|
+
description: "Le titre principal du bloc de texte du blog.",
|
|
22
|
+
},
|
|
23
|
+
Article: {
|
|
24
|
+
control: "text",
|
|
25
|
+
description: "Le contenu textuel de l'article ou de la description du blog.",
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
parameters: {
|
|
29
|
+
docs: {
|
|
30
|
+
description: {
|
|
31
|
+
component: "Le composant `BlogText` est conçu pour afficher un titre et un long article ou contenu dans un format structuré, idéal pour les sections de texte des blogs.",
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
var Template = function (args) { return React.createElement(BlogText, __assign({}, args)); };
|
|
37
|
+
export var ShortTitleAndContent = Template.bind({});
|
|
38
|
+
ShortTitleAndContent.args = {
|
|
39
|
+
Title: "Introduction",
|
|
40
|
+
Article: "Ceci est un article court qui résume l'idée principale de la section.",
|
|
41
|
+
};
|
|
42
|
+
export var LongTitleAndContent = Template.bind({});
|
|
43
|
+
LongTitleAndContent.args = {
|
|
44
|
+
Title: "Pourquoi adopter une architecture modulaire dans vos projets ?",
|
|
45
|
+
Article: "L'adoption d'une architecture modulaire offre plusieurs avantages clés pour les projets de développement.\n\nEn premier lieu, elle améliore la maintenabilité du code en permettant aux développeurs de travailler sur des modules indépendants.\n\nEnsuite, elle facilite le déploiement incrémental et la collaboration d'équipe, réduisant ainsi les conflits lors du développement.\n\nEnfin, elle permet une meilleure scalabilité en isolant les fonctionnalités, ce qui rend les mises à jour plus fluides et réduit les risques d'introduire des bugs dans l'ensemble de l'application.",
|
|
46
|
+
};
|
|
47
|
+
export var ArticleWithLineBreaks = Template.bind({});
|
|
48
|
+
ArticleWithLineBreaks.args = {
|
|
49
|
+
Title: "Article avec retours à la ligne",
|
|
50
|
+
Article: "L'adoption d'une architecture modulaire offre plusieurs avantages :\n\n- Maintenabilit\u00E9 du code : possibilit\u00E9 de travailler sur des modules ind\u00E9pendants.\n- D\u00E9ploiement incr\u00E9mental : am\u00E9lioration de la collaboration.\n- Scalabilit\u00E9 : isolation des fonctionnalit\u00E9s pour r\u00E9duire les risques de bugs.\n\nCeci est un test avec des retours \u00E0 la ligne pour valider l'affichage.",
|
|
51
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as BlogText } from "./BlogText";
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export type BlogTextImageBlockProps = {
|
|
3
|
+
Title: string;
|
|
4
|
+
Article: string;
|
|
5
|
+
Image_URL: string;
|
|
6
|
+
};
|
|
7
|
+
declare function BlogTextImageBlock({ Title, Article, Image_URL, }: BlogTextImageBlockProps): React.JSX.Element;
|
|
8
|
+
export default BlogTextImageBlock;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import styles from "./BlogTextImageBlock.module.css";
|
|
3
|
+
import Image from "next/image";
|
|
4
|
+
import { Paragraph } from "src/components/atoms/typography";
|
|
5
|
+
function BlogTextImageBlock(_a) {
|
|
6
|
+
var Title = _a.Title, Article = _a.Article, Image_URL = _a.Image_URL;
|
|
7
|
+
return (React.createElement("section", { className: styles.BlogTextImageBlockWrapper },
|
|
8
|
+
React.createElement("div", { className: styles.BlogTextImageBlockContainer },
|
|
9
|
+
React.createElement("div", { className: styles.BlogTextImageBlockLeft },
|
|
10
|
+
React.createElement("div", { className: styles.BlogTextImageBlockTitle }, Title),
|
|
11
|
+
React.createElement(Paragraph, { variant: "semiBold", text: Article, color: "dark-grey", className: styles.blogTextImageBlockParagraph })),
|
|
12
|
+
React.createElement("figure", { className: styles.BlogTextImageBlockRight },
|
|
13
|
+
React.createElement(Image, { width: 484, height: 322, src: Image_URL, alt: "Image d'un article de blog", className: styles.blogTextImageBlockImage })))));
|
|
14
|
+
}
|
|
15
|
+
export default BlogTextImageBlock;
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
.BlogTextImageBlockWrapper {
|
|
2
|
+
display: flex;
|
|
3
|
+
justify-content: center;
|
|
4
|
+
background-color: white;
|
|
5
|
+
width: 100%;
|
|
6
|
+
padding: 16px;
|
|
7
|
+
gap: 20px;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.BlogTextImageBlockContainer {
|
|
11
|
+
display: flex;
|
|
12
|
+
width: 100%;
|
|
13
|
+
max-width: 1000px;
|
|
14
|
+
flex-direction: row;
|
|
15
|
+
background-color: white;
|
|
16
|
+
padding: 16px;
|
|
17
|
+
gap: 32px;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.BlogTextImageBlockLeft {
|
|
21
|
+
flex: 0 0 calc(50% - 16px);
|
|
22
|
+
display: flex;
|
|
23
|
+
flex-direction: column;
|
|
24
|
+
gap: 16px;
|
|
25
|
+
word-wrap: break-word;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.BlogTextImageBlockRight {
|
|
29
|
+
flex: 0 0 calc(50% - 16px);
|
|
30
|
+
display: flex;
|
|
31
|
+
justify-content: center;
|
|
32
|
+
align-items: center;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.BlogTextImageBlockTitle {
|
|
36
|
+
color: var(--Primary-Mid-black, #171e25);
|
|
37
|
+
font-family: "Poppins" !important;
|
|
38
|
+
font-size: 18px;
|
|
39
|
+
font-weight: 600;
|
|
40
|
+
margin: 0;
|
|
41
|
+
word-wrap: break-word;
|
|
42
|
+
overflow-wrap: break-word;
|
|
43
|
+
white-space: normal;
|
|
44
|
+
text-overflow: ellipsis;
|
|
45
|
+
overflow: hidden;
|
|
46
|
+
display: block;
|
|
47
|
+
word-break: break-word;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.blogTextImageBlockParagraph {
|
|
51
|
+
font-size: 16px;
|
|
52
|
+
line-height: 1.5;
|
|
53
|
+
margin: 0;
|
|
54
|
+
text-align: left;
|
|
55
|
+
word-break: break-word;
|
|
56
|
+
word-wrap: break-word;
|
|
57
|
+
overflow-wrap: break-word;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.blogTextImageBlockImage {
|
|
61
|
+
width: 100%;
|
|
62
|
+
max-width: 100%;
|
|
63
|
+
max-height: 400px;
|
|
64
|
+
height: auto;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
@media (max-width: 800px) {
|
|
68
|
+
.BlogTextImageBlockContainer {
|
|
69
|
+
flex-direction: column;
|
|
70
|
+
gap: 16px;
|
|
71
|
+
padding: 8px;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.BlogTextImageBlockLeft,
|
|
75
|
+
.BlogTextImageBlockRight {
|
|
76
|
+
flex: 0 0 auto;
|
|
77
|
+
width: 100%;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.BlogTextImageBlockRight {
|
|
81
|
+
justify-content: center;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.blogTextImageBlockImage {
|
|
85
|
+
max-width: 100%;
|
|
86
|
+
height: auto;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
@media (max-width: 400px) {
|
|
91
|
+
.BlogTextImageBlockWrapper {
|
|
92
|
+
padding: 4px;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.BlogTextImageBlockTitle {
|
|
96
|
+
font-size: 16px;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.blogTextImageBlockParagraph {
|
|
100
|
+
font-size: 14px;
|
|
101
|
+
line-height: 1.4;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
declare namespace _default {
|
|
2
|
+
export let title: string;
|
|
3
|
+
export { BlogTextImageBlock as component };
|
|
4
|
+
export let tags: string[];
|
|
5
|
+
export namespace argTypes {
|
|
6
|
+
namespace Title {
|
|
7
|
+
let control: string;
|
|
8
|
+
let description: string;
|
|
9
|
+
}
|
|
10
|
+
namespace Article {
|
|
11
|
+
let control_1: string;
|
|
12
|
+
export { control_1 as control };
|
|
13
|
+
let description_1: string;
|
|
14
|
+
export { description_1 as description };
|
|
15
|
+
}
|
|
16
|
+
namespace Image_URL {
|
|
17
|
+
let control_2: string;
|
|
18
|
+
export { control_2 as control };
|
|
19
|
+
let description_2: string;
|
|
20
|
+
export { description_2 as description };
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export namespace parameters {
|
|
24
|
+
namespace docs {
|
|
25
|
+
export namespace description_3 {
|
|
26
|
+
let component: string;
|
|
27
|
+
}
|
|
28
|
+
export { description_3 as description };
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export default _default;
|
|
33
|
+
export const DefaultView: any;
|
|
34
|
+
export const LongArticleWithImage: any;
|
|
35
|
+
export const ArticleWithoutImage: any;
|
|
36
|
+
import BlogTextImageBlock from "./BlogTextImageBlock";
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import React from "react";
|
|
13
|
+
import BlogTextImageBlock from "./BlogTextImageBlock";
|
|
14
|
+
export default {
|
|
15
|
+
title: "Components/molecules/Blog/BlogTextImageBlock",
|
|
16
|
+
component: BlogTextImageBlock,
|
|
17
|
+
tags: ["autodocs"],
|
|
18
|
+
argTypes: {
|
|
19
|
+
Title: {
|
|
20
|
+
control: "text",
|
|
21
|
+
description: "Le titre principal de l'article du bloc.",
|
|
22
|
+
},
|
|
23
|
+
Article: {
|
|
24
|
+
control: "text",
|
|
25
|
+
description: "Le contenu textuel de l'article ou de la description.",
|
|
26
|
+
},
|
|
27
|
+
Image_URL: {
|
|
28
|
+
control: "text",
|
|
29
|
+
description: "L'URL de l'image à afficher dans le bloc.",
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
parameters: {
|
|
33
|
+
docs: {
|
|
34
|
+
description: {
|
|
35
|
+
component: "Le composant `BlogTextImageBlock` affiche un bloc structuré avec un titre, un paragraphe et une image associée. Il est idéal pour présenter des articles ou sections de blogs.",
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
var Template = function (args) { return React.createElement(BlogTextImageBlock, __assign({}, args)); };
|
|
41
|
+
export var DefaultView = Template.bind({});
|
|
42
|
+
DefaultView.args = {
|
|
43
|
+
Title: "Titre d'exemple",
|
|
44
|
+
Article: "Ceci est un exemple d'article court. Ce composant est conçu pour afficher un contenu structuré avec un titre, un paragraphe et une image.",
|
|
45
|
+
Image_URL: "https://images.unsplash.com/photo-1733324770222-a6c4a921b379?q=80&w=1740&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",
|
|
46
|
+
};
|
|
47
|
+
export var LongArticleWithImage = Template.bind({});
|
|
48
|
+
LongArticleWithImage.args = {
|
|
49
|
+
Title: "Pourquoi une architecture modulaire est essentielle",
|
|
50
|
+
Article: "L'architecture modulaire est une pratique clé pour la réussite des projets modernes.\n\nElle offre une meilleure maintenabilité en permettant aux développeurs de se concentrer sur des modules indépendants. De plus, elle améliore la collaboration grâce au déploiement incrémental et à une réduction des conflits.\n\nEnfin, elle garantit une meilleure scalabilité en isolant les fonctionnalités, ce qui simplifie les mises à jour et réduit les risques d'introduire des bugs dans l'ensemble de l'application.",
|
|
51
|
+
Image_URL: "https://images.unsplash.com/photo-1731955196267-e863d6f39794?q=80&w=1693&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",
|
|
52
|
+
};
|
|
53
|
+
export var ArticleWithoutImage = Template.bind({});
|
|
54
|
+
ArticleWithoutImage.args = {
|
|
55
|
+
Title: "Titre sans image",
|
|
56
|
+
Article: "Ce test illustre l'affichage d'un article sans image associée. Le composant doit s'adapter en conséquence, en affichant uniquement le titre et le contenu textuel.",
|
|
57
|
+
Image_URL: "",
|
|
58
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as BlogTextImageBlock } from "./BlogTextImageBlock";
|
package/dist/index.d.ts
CHANGED
|
@@ -66,3 +66,7 @@ export { default as BlogHeader } from "./components/molecules/blogHeader/BlogHea
|
|
|
66
66
|
export type { BlogHeaderProps } from "./components/molecules/blogHeader/BlogHeader";
|
|
67
67
|
export { default as BlogCard } from "./components/molecules/blogCard/BlogCard";
|
|
68
68
|
export type { BlogCardProps } from "./components/molecules/blogCard/BlogCard";
|
|
69
|
+
export { default as BlogText } from "./components/molecules/blogText/BlogText";
|
|
70
|
+
export type { BlogTextProps } from "./components/molecules/blogText/BlogText";
|
|
71
|
+
export { default as blogTextImageBlock } from "./components/molecules/blogTextImageBlock/BlogTextImageBlock";
|
|
72
|
+
export type { BlogTextImageBlockProps } from "./components/molecules/blogTextImageBlock/BlogTextImageBlock";
|
package/dist/index.js
CHANGED
|
@@ -82,3 +82,5 @@ export { default as ProCard } from "./components/molecules/proCard/ProCard";
|
|
|
82
82
|
export { default as Pagination } from "./components/molecules/pagination/Pagination";
|
|
83
83
|
export { default as BlogHeader } from "./components/molecules/blogHeader/BlogHeader";
|
|
84
84
|
export { default as BlogCard } from "./components/molecules/blogCard/BlogCard";
|
|
85
|
+
export { default as BlogText } from "./components/molecules/blogText/BlogText";
|
|
86
|
+
export { default as blogTextImageBlock } from "./components/molecules/blogTextImageBlock/BlogTextImageBlock";
|
|
@@ -7,9 +7,9 @@ declare const meta: {
|
|
|
7
7
|
layout: string;
|
|
8
8
|
};
|
|
9
9
|
args: {
|
|
10
|
-
onLogin: import("@vitest/spy").Mock<[]
|
|
11
|
-
onLogout: import("@vitest/spy").Mock<[]
|
|
12
|
-
onCreateAccount: import("@vitest/spy").Mock<[]
|
|
10
|
+
onLogin: import("@vitest/spy").Mock<(...args: any[]) => any>;
|
|
11
|
+
onLogout: import("@vitest/spy").Mock<(...args: any[]) => any>;
|
|
12
|
+
onCreateAccount: import("@vitest/spy").Mock<(...args: any[]) => any>;
|
|
13
13
|
};
|
|
14
14
|
};
|
|
15
15
|
export default meta;
|