allaw-ui 2.2.5 → 2.2.6

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 (42) hide show
  1. package/dist/components/atoms/buttons/IconButton.js +2 -7
  2. package/dist/components/atoms/buttons/TertiaryButton.d.ts +1 -0
  3. package/dist/components/atoms/buttons/TertiaryButton.js +6 -2
  4. package/dist/components/atoms/featureCard/featureCard.js +1 -4
  5. package/dist/components/molecules/banner/Banner.js +10 -2
  6. package/dist/components/molecules/banner/Banner.module.css +13 -6
  7. package/dist/components/molecules/brands/Brands.d.ts +9 -0
  8. package/dist/components/molecules/brands/Brands.js +13 -0
  9. package/dist/components/molecules/brands/Brands.stories.d.ts +8 -0
  10. package/dist/components/molecules/brands/Brands.stories.js +66 -0
  11. package/dist/components/molecules/brands/brands.module.css +74 -0
  12. package/dist/components/molecules/brands/index.d.ts +2 -0
  13. package/dist/components/molecules/brands/index.js +1 -0
  14. package/dist/components/molecules/featureGrid/FeatureGrid.js +2 -2
  15. package/dist/components/molecules/featureGrid/featureGrid.module.css +2 -2
  16. package/dist/components/molecules/flexContent/FlexContent.d.ts +18 -0
  17. package/dist/components/molecules/flexContent/FlexContent.js +21 -0
  18. package/dist/components/molecules/flexContent/FlexContent.stories.d.ts +9 -0
  19. package/dist/components/molecules/flexContent/FlexContent.stories.js +47 -0
  20. package/dist/components/molecules/flexContent/flexContent.module.css +217 -0
  21. package/dist/components/molecules/flexContent/index.d.ts +2 -0
  22. package/dist/components/molecules/flexContent/index.js +1 -0
  23. package/dist/components/molecules/frameCTA/FrameCTA.d.ts +1 -0
  24. package/dist/components/molecules/frameCTA/FrameCTA.js +3 -3
  25. package/dist/components/molecules/frameCTA/FrameCTA.stories.d.ts +1 -0
  26. package/dist/components/molecules/frameCTA/FrameCTA.stories.js +23 -0
  27. package/dist/components/molecules/frameCTA/frameCTA.module.css +27 -8
  28. package/dist/components/molecules/heroSection/HeroSection.d.ts +1 -0
  29. package/dist/components/molecules/heroSection/HeroSection.js +13 -15
  30. package/dist/components/molecules/heroSection/HeroSection.stories.d.ts +2 -0
  31. package/dist/components/molecules/heroSection/HeroSection.stories.js +38 -1
  32. package/dist/components/molecules/heroSection/heroSection.module.css +120 -90
  33. package/dist/components/molecules/questionAnswer/QuestionAnswer.d.ts +9 -0
  34. package/dist/components/molecules/questionAnswer/QuestionAnswer.js +38 -0
  35. package/dist/components/molecules/questionAnswer/QuestionAnswer.stories.d.ts +17 -0
  36. package/dist/components/molecules/questionAnswer/QuestionAnswer.stories.js +48 -0
  37. package/dist/components/molecules/questionAnswer/index.d.ts +2 -0
  38. package/dist/components/molecules/questionAnswer/index.js +1 -0
  39. package/dist/components/molecules/questionAnswer/questionAnswer.module.css +126 -0
  40. package/dist/index.d.ts +18 -10
  41. package/dist/index.js +10 -5
  42. package/package.json +1 -1
@@ -0,0 +1,217 @@
1
+ .flexContentContainer {
2
+ display: flex;
3
+ padding: 48px 32px;
4
+ flex-direction: column;
5
+ justify-content: center;
6
+ align-items: flex-start;
7
+ gap: 90px;
8
+ width: 100%;
9
+ height: auto;
10
+ min-height: 675px;
11
+ }
12
+
13
+ .flexContentTitle {
14
+ color: var(--Primary-Mid-black, #171e25);
15
+ text-align: center;
16
+ font-family: Poppins;
17
+ font-size: 28px;
18
+ font-style: normal;
19
+ font-weight: 600;
20
+ line-height: normal;
21
+ display: -webkit-box;
22
+ -webkit-box-orient: vertical;
23
+ -webkit-line-clamp: 2;
24
+ line-clamp: 2;
25
+ overflow: hidden;
26
+ width: 100%;
27
+ max-width: 100%;
28
+ }
29
+
30
+ .flexContentWrapper.fullWidth .contentLeftWrap {
31
+ width: 100%;
32
+ }
33
+
34
+ .flexContentWrapper.fullWidth .contentRight {
35
+ display: none;
36
+ }
37
+
38
+ .flexContentWrapper {
39
+ width: 100%;
40
+ height: auto;
41
+ display: flex;
42
+ overflow: hidden;
43
+ flex-direction: row;
44
+ align-items: center;
45
+ gap: 4rem;
46
+ }
47
+
48
+ .flexContentWrapper.reverse {
49
+ flex-direction: row-reverse;
50
+ }
51
+
52
+ .flexContentLeftWrapper {
53
+ width: auto;
54
+ display: flex;
55
+ align-items: center;
56
+ gap: 70px;
57
+ flex: 1 0 0;
58
+ }
59
+
60
+ .flexContentLeft {
61
+ display: flex;
62
+ flex-direction: column;
63
+ justify-content: center;
64
+ align-items: flex-start;
65
+ gap: 48px;
66
+ }
67
+
68
+ .flexContentSectionTitle {
69
+ color: var(--Primary-Mid-black, #171e25);
70
+ font-family: Poppins;
71
+ font-size: 28px;
72
+ font-style: normal;
73
+ font-weight: 600;
74
+ line-height: normal;
75
+ }
76
+
77
+ .flexContentDescription {
78
+ overflow: hidden;
79
+ color: var(--Primary-Dark-grey, #456073);
80
+ text-overflow: ellipsis;
81
+ font-family: "Open Sans";
82
+ font-size: 20px;
83
+ font-style: normal;
84
+ font-weight: 600;
85
+ line-height: normal;
86
+ display: -webkit-box;
87
+ -webkit-box-orient: vertical;
88
+ -webkit-line-clamp: 8;
89
+ line-clamp: 8;
90
+ align-self: stretch;
91
+ width: 100%;
92
+ max-width: 100%;
93
+ }
94
+
95
+ .flexContentButton {
96
+ display: flex;
97
+ height: 48px;
98
+ padding: 12px 40px;
99
+ justify-content: center;
100
+ align-items: center;
101
+ gap: 8px;
102
+ border-radius: 56px;
103
+ background: #2d6176;
104
+ }
105
+
106
+ .flexContentButton:hover {
107
+ filter: brightness(90%);
108
+ }
109
+
110
+ .flexContentButtonLabel {
111
+ color: var(--Primary-Blanc, #fff);
112
+ font-family: "Open Sans";
113
+ font-size: 16px;
114
+ font-style: normal;
115
+ font-weight: 600;
116
+ line-height: normal;
117
+ text-align: center;
118
+ }
119
+
120
+ .flexContentRight {
121
+ width: auto;
122
+ }
123
+
124
+ .flexContentImage {
125
+ width: 100%;
126
+ min-width: 100%;
127
+ max-width: 100%;
128
+ height: 400px;
129
+ max-height: 500px;
130
+ border-radius: 16px;
131
+ object-fit: cover;
132
+ object-position: center;
133
+ overflow: hidden;
134
+ }
135
+
136
+ @media (max-width: 1200px) {
137
+ .flexContentButton {
138
+ align-self: stretch;
139
+ justify-content: center;
140
+ }
141
+ }
142
+
143
+ @media (max-width: 995px) {
144
+ .flexContentContainer {
145
+ padding: 40px 24px;
146
+ gap: 40px;
147
+ max-height: none;
148
+ min-height: 0;
149
+ }
150
+
151
+ .flexContentTitle {
152
+ display: none;
153
+ }
154
+
155
+ .flexContentSectionTitle {
156
+ font-size: 24px;
157
+ }
158
+
159
+ .flexContentDescription {
160
+ font-size: 16px;
161
+ font-weight: 500;
162
+ }
163
+
164
+ .flexContentWrapper {
165
+ flex-direction: column;
166
+ align-items: flex-start;
167
+ gap: 32px;
168
+ max-height: none;
169
+ width: 100%;
170
+ }
171
+
172
+ .flexContentWrapper.reverse {
173
+ flex-direction: column !important;
174
+ }
175
+
176
+ .flexContentRight {
177
+ width: 100% !important;
178
+ order: -1;
179
+ }
180
+
181
+ .flexContentLeftWrapper {
182
+ width: 100% !important;
183
+ order: 1;
184
+ }
185
+
186
+ .flexContentImage {
187
+ width: 100%;
188
+ max-height: 300px;
189
+ object-fit: fill;
190
+ object-position: center;
191
+ }
192
+ }
193
+
194
+ @media (min-width: 996px) {
195
+ .desktopWidth {
196
+ width: auto !important;
197
+ }
198
+ }
199
+
200
+ @media (max-width: 995px) and (min-width: 500px) {
201
+ .flexContentImage {
202
+ width: 100%;
203
+ height: 100%;
204
+ max-height: 500px;
205
+ object-fit: cover;
206
+ object-position: center;
207
+ }
208
+
209
+ .flexContentRight {
210
+ width: 100%;
211
+ height: auto;
212
+ min-height: 350px;
213
+ display: flex;
214
+ align-items: center;
215
+ justify-content: center;
216
+ }
217
+ }
@@ -0,0 +1,2 @@
1
+ export { default as FlexContent } from "./FlexContent";
2
+ export type { FlexContentProps } from "./FlexContent";
@@ -0,0 +1 @@
1
+ export { default as FlexContent } from "./FlexContent";
@@ -13,6 +13,7 @@ export type FrameCTAProps = {
13
13
  src: string;
14
14
  alt: string;
15
15
  };
16
+ textColor?: "black" | "white" | "gray";
16
17
  };
17
18
  declare const FrameCTA: React.FC<FrameCTAProps>;
18
19
  export default FrameCTA;
@@ -3,10 +3,10 @@ import Link from "next/link";
3
3
  import styles from "./frameCTA.module.css";
4
4
  import Image from "next/image";
5
5
  var FrameCTA = function (_a) {
6
- var title = _a.title, primaryButton = _a.primaryButton, secondaryButton = _a.secondaryButton, backgroundImage = _a.backgroundImage;
7
- return (React.createElement("section", { className: styles.frameCTAContainer, "aria-labelledby": "cta-title" },
6
+ var title = _a.title, primaryButton = _a.primaryButton, secondaryButton = _a.secondaryButton, backgroundImage = _a.backgroundImage, textColor = _a.textColor;
7
+ return (React.createElement("section", { className: "".concat(styles.frameCTAContainer, " ").concat(styles["text-".concat(textColor)]), "aria-labelledby": "cta-title" },
8
8
  React.createElement("div", { className: styles.frameCTABackgroundImage, "aria-hidden": "true" },
9
- React.createElement(Image, { src: backgroundImage.src, alt: backgroundImage.alt, layout: "fill", objectFit: "cover", objectPosition: "center", className: styles.frameCTABackground })),
9
+ React.createElement(Image, { src: backgroundImage.src, alt: backgroundImage.alt, fill: true, className: styles.frameCTABackground })),
10
10
  React.createElement("div", { className: styles.frameCTAContent },
11
11
  React.createElement("h2", { className: styles.frameCTATitle }, title),
12
12
  React.createElement("div", { className: styles.frameCTAButtonContainer },
@@ -4,4 +4,5 @@ declare namespace _default {
4
4
  }
5
5
  export default _default;
6
6
  export const Default: any;
7
+ export const WhiteText: any;
7
8
  import FrameCTA from "./FrameCTA";
@@ -19,6 +19,12 @@ export default {
19
19
  var Template = function (args) { return React.createElement(FrameCTA, __assign({}, args)); };
20
20
  export var Default = Template.bind({});
21
21
  Default.args = {
22
+ textColor: {
23
+ control: "select",
24
+ options: ["black", "white", "gray"],
25
+ description: "Couleur du texte pour le titre et le contenu",
26
+ defaultValue: "",
27
+ },
22
28
  title: "Poppins - SemiBold - 46px souvent sur 2 lignes",
23
29
  primaryButton: {
24
30
  label: "Bouton",
@@ -33,3 +39,20 @@ Default.args = {
33
39
  alt: "Image de fond arrière plan",
34
40
  },
35
41
  };
42
+ export var WhiteText = Template.bind({});
43
+ WhiteText.args = {
44
+ title: "Texte en blanc sur la même image",
45
+ primaryButton: {
46
+ label: "Bouton principal",
47
+ href: "/primary",
48
+ },
49
+ secondaryButton: {
50
+ label: "Bouton secondaire",
51
+ href: "/secondary",
52
+ },
53
+ backgroundImage: {
54
+ src: "https://images.unsplash.com/photo-1731862872903-1d39fe0c10f8?q=80&w=2108&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D", // Même image que dans l'exemple par défaut
55
+ alt: "Image de fond arrière plan",
56
+ },
57
+ textColor: "white",
58
+ };
@@ -1,6 +1,7 @@
1
1
  .frameCTAContainer {
2
2
  width: 100%;
3
- height: 675px;
3
+ min-height: 675px;
4
+ height: auto;
4
5
  position: relative;
5
6
  border-radius: 16px;
6
7
  display: flex;
@@ -38,7 +39,7 @@
38
39
  color: var(--Primary-Mid-black, #171e25);
39
40
  text-align: center;
40
41
  font-family: Poppins;
41
- font-size: 46px;
42
+ font-size: 34px;
42
43
  font-style: normal;
43
44
  font-weight: 600;
44
45
  line-height: normal;
@@ -83,6 +84,7 @@
83
84
 
84
85
  .frameCTAButtonLabel {
85
86
  color: var(--Primary-Blanc, #fff);
87
+ text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3);
86
88
  font-family: "Open Sans";
87
89
  font-size: 16px;
88
90
  font-style: normal;
@@ -95,15 +97,32 @@
95
97
  text-overflow: ellipsis;
96
98
  }
97
99
 
98
- .primaryButton:hover,
99
- .secondaryButton:hover {
100
- filter: brightness(95%);
101
- transform: scale(1.005);
100
+ .frameCTAPrimaryButton:hover,
101
+ .frameCTASecondaryButton:hover {
102
+ filter: brightness(90%);
103
+ }
104
+
105
+ .text-black .frameCTATitle {
106
+ color: var(--noir, #171e25);
107
+ }
108
+
109
+ .text-white .frameCTATitle {
110
+ color: var(--pure-white, #ffffff);
111
+ }
112
+
113
+ .text-gray .frameCTATitle {
114
+ color: var(--Primary-Dark-grey, #456073);
102
115
  }
103
116
 
104
117
  @media (max-width: 995px) {
105
118
  .frameCTAContainer {
106
- height: 420px;
119
+ height: auto;
120
+ min-height: 450px;
121
+ border-radius: 0;
122
+ }
123
+
124
+ .frameCTABackground {
125
+ border-radius: 0;
107
126
  }
108
127
 
109
128
  .frameCTAContent {
@@ -114,7 +133,7 @@
114
133
  }
115
134
 
116
135
  .frameCTATitle {
117
- font-size: 24px;
136
+ font-size: 30px;
118
137
  margin-bottom: 10px;
119
138
  text-align: center;
120
139
  }
@@ -15,6 +15,7 @@ export type HeroSectionProps = {
15
15
  href: string;
16
16
  label: string;
17
17
  };
18
+ textColor?: "black" | "white" | "gray";
18
19
  };
19
20
  declare const HeroSection: React.FC<HeroSectionProps>;
20
21
  export default HeroSection;
@@ -3,20 +3,18 @@ import styles from "./heroSection.module.css";
3
3
  import Image from "next/image";
4
4
  import Link from "next/link";
5
5
  var HeroSection = function (_a) {
6
- var _b = _a.reverse, reverse = _b === void 0 ? false : _b, title = _a.title, content = _a.content, imageBackground = _a.imageBackground, imageTop = _a.imageTop, action = _a.action;
7
- return (React.createElement("section", { className: "".concat(styles.heroSection, " ").concat(reverse ? styles.reverse : "") },
8
- React.createElement("div", { className: styles.leftSection, style: {
9
- backgroundImage: "url(".concat(imageBackground.src || "", ")"),
10
- } },
11
- React.createElement("div", { className: styles.heroSectionContent },
12
- React.createElement("h2", { className: styles.heroSectionTitle }, title),
13
- React.createElement("p", { className: styles.heroSectionParagraph }, content),
14
- React.createElement(Link, { href: action.href, className: styles.action },
15
- React.createElement("span", { className: styles.actionLabel }, action.label)))),
16
- React.createElement("aside", { className: styles.rightSection },
17
- React.createElement("div", { className: styles.heroSectionBgImage },
18
- React.createElement(Image, { src: imageBackground.src || "", alt: imageBackground.alt || "", className: styles.heroSectionImage, layout: "fill", objectFit: "cover", objectPosition: "center" })),
19
- React.createElement("div", { className: styles.heroSectionTopImage },
20
- React.createElement(Image, { src: imageTop.src || "", alt: imageTop.alt || "", className: styles.heroSectionImage, width: 615, height: 322 })))));
6
+ var _b = _a.reverse, reverse = _b === void 0 ? false : _b, title = _a.title, content = _a.content, imageBackground = _a.imageBackground, imageTop = _a.imageTop, action = _a.action, textColor = _a.textColor;
7
+ return (React.createElement("header", { className: "".concat(styles.banner, " ").concat(reverse ? styles.bannerReverse : ""), style: {
8
+ backgroundImage: "url(".concat(imageBackground.src, ")"),
9
+ }, "aria-labelledby": "hero-title" },
10
+ React.createElement("div", { className: styles.overlayContainer },
11
+ React.createElement("div", { className: styles.contentWrapper },
12
+ React.createElement("div", { className: "".concat(styles.contentLeft, " ").concat(textColor ? styles["text-".concat(textColor)] : "") },
13
+ React.createElement("h1", { id: "hero-title", className: styles.contentTitle }, title),
14
+ React.createElement("p", { className: styles.contentText }, content),
15
+ React.createElement(Link, { href: action.href, className: styles.contentButton },
16
+ React.createElement("span", { className: styles.contentButtonLabel }, action.label))),
17
+ React.createElement("div", { className: styles.contentRight },
18
+ React.createElement(Image, { src: imageTop.src, alt: imageTop.alt, className: styles.contentImage, width: 600, height: 400, priority: true }))))));
21
19
  };
22
20
  export default HeroSection;
@@ -41,4 +41,6 @@ declare namespace _default {
41
41
  }
42
42
  export default _default;
43
43
  export const Default: any;
44
+ export const WithLongDescription: any;
45
+ export const WhiteTextColor: any;
44
46
  import HeroSection from "./HeroSection";
@@ -49,7 +49,7 @@ Default.args = {
49
49
  title: "Transformez votre carrière en un clic",
50
50
  content: "Accédez à des opportunités adaptées à vos aspirations, connectez-vous avec des clients du monde entier et simplifiez vos projets grâce à nos outils performants.",
51
51
  imageBackground: {
52
- src: "https://images.unsplash.com/photo-1736695796493-699707480bcf?w=500&auto=format&fit=crop&q=60&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxmZWF0dXJlZC1waG90b3MtZmVlZHwxNDB8fHxlbnwwfHx8fHw%3D",
52
+ src: "https://plus.unsplash.com/premium_photo-1672940671025-113a634f83d1?q=80&w=2070&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",
53
53
  alt: "Personne travaillant sur un ordinateur portable",
54
54
  },
55
55
  imageTop: {
@@ -61,3 +61,40 @@ Default.args = {
61
61
  label: "Rejoignez-nous",
62
62
  },
63
63
  };
64
+ export var WithLongDescription = Template.bind({});
65
+ WithLongDescription.args = {
66
+ reverse: true,
67
+ title: "Un avenir meilleur vous attend",
68
+ content: "Découvrez une plateforme révolutionnaire qui connecte des talents avec des opportunités uniques. Nous croyons en la puissance de la collaboration et en la capacité des individus à atteindre leurs objectifs, quels qu'ils soient. Grâce à notre réseau mondial, vous pouvez collaborer avec des experts de diverses industries, apprendre de nouvelles compétences et faire partie d'une communauté qui valorise l'innovation. Que vous soyez à la recherche d'un emploi, d'un client, ou d'une nouvelle aventure, nous avons les outils pour vous aider à réussir. Inscrivez-vous aujourd'hui pour découvrir un monde de possibilités sans fin.",
69
+ imageBackground: {
70
+ src: "https://images.unsplash.com/photo-1737381439846-b927265e7dfc?q=80&w=2070&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",
71
+ alt: "Personne au sommet d'une montagne au coucher du soleil",
72
+ },
73
+ imageTop: {
74
+ src: "https://images.unsplash.com/photo-1737498352618-4fac98caa557?q=80&w=1974&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",
75
+ alt: "Personne analysant des graphiques financiers sur un écran",
76
+ },
77
+ action: {
78
+ href: "/explore",
79
+ label: "Découvrez maintenant",
80
+ },
81
+ };
82
+ export var WhiteTextColor = Template.bind({});
83
+ WhiteTextColor.args = {
84
+ reverse: false,
85
+ title: "Avec un texte blanc en format mobile",
86
+ content: "Ce texte utilise la couleur blanche pour être lisible sur des fonds sombres ou colorés.",
87
+ imageBackground: {
88
+ src: "https://images.unsplash.com/photo-1737381439846-b927265e7dfc?q=80&w=2070&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",
89
+ alt: "Personne créative travaillant dans un espace sombre",
90
+ },
91
+ imageTop: {
92
+ src: "https://images.unsplash.com/photo-1737498352618-4fac98caa557?q=80&w=1974&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",
93
+ alt: "Éléments graphiques et lumineux",
94
+ },
95
+ action: {
96
+ href: "/white-text",
97
+ label: "En savoir plus",
98
+ },
99
+ textColor: "white",
100
+ };