allaw-ui 0.0.18 → 0.0.293

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 (162) hide show
  1. package/README.md +51 -2
  2. package/dist/app/globals.css +5 -0
  3. package/dist/components/atoms/buttons/ActionCircleButton.css +143 -0
  4. package/dist/components/atoms/buttons/ActionCircleButton.d.ts +9 -0
  5. package/dist/components/atoms/buttons/ActionCircleButton.js +23 -0
  6. package/dist/components/atoms/buttons/AgendaSlot.css +116 -0
  7. package/dist/components/atoms/buttons/AgendaSlot.d.ts +10 -0
  8. package/dist/components/atoms/buttons/AgendaSlot.js +7 -0
  9. package/dist/components/atoms/buttons/FavoriteToggle.css +35 -0
  10. package/dist/components/atoms/buttons/FavoriteToggle.d.ts +8 -0
  11. package/dist/components/atoms/buttons/FavoriteToggle.js +11 -0
  12. package/dist/components/atoms/buttons/FilterButton.css +55 -0
  13. package/dist/components/atoms/buttons/FilterButton.d.ts +9 -0
  14. package/dist/components/atoms/buttons/FilterButton.js +9 -0
  15. package/dist/components/atoms/buttons/GhostButton.css +63 -0
  16. package/dist/components/atoms/buttons/GhostButton.d.ts +14 -0
  17. package/dist/components/atoms/buttons/GhostButton.js +11 -0
  18. package/dist/components/atoms/buttons/IconButton.css +111 -0
  19. package/dist/components/atoms/buttons/IconButton.d.ts +10 -0
  20. package/dist/components/atoms/buttons/IconButton.js +14 -0
  21. package/dist/components/atoms/buttons/PendingDocuments.css +53 -0
  22. package/dist/components/atoms/buttons/PendingDocuments.d.ts +10 -0
  23. package/dist/components/atoms/buttons/PendingDocuments.js +13 -0
  24. package/dist/components/{buttons/ButtonPrimary.css → atoms/buttons/PrimaryButton.css} +11 -7
  25. package/dist/components/atoms/buttons/PrimaryButton.d.ts +15 -0
  26. package/dist/components/atoms/buttons/PrimaryButton.js +11 -0
  27. package/dist/components/atoms/buttons/SecondaryButton.css +123 -0
  28. package/dist/components/atoms/buttons/SecondaryButton.d.ts +14 -0
  29. package/dist/components/atoms/buttons/SecondaryButton.js +11 -0
  30. package/dist/components/atoms/buttons/TabNavigation.css +43 -0
  31. package/dist/components/atoms/buttons/TabNavigation.d.ts +13 -0
  32. package/dist/components/atoms/buttons/TabNavigation.js +10 -0
  33. package/dist/components/atoms/buttons/TertiaryButton.css +63 -0
  34. package/dist/components/atoms/buttons/TertiaryButton.d.ts +10 -0
  35. package/dist/components/atoms/buttons/TertiaryButton.js +10 -0
  36. package/dist/components/atoms/buttons/index.d.ts +18 -0
  37. package/dist/components/atoms/buttons/index.js +9 -0
  38. package/dist/components/atoms/checkboxes/Checkbox.css +50 -0
  39. package/dist/components/atoms/checkboxes/Checkbox.d.ts +10 -0
  40. package/dist/components/atoms/checkboxes/Checkbox.js +19 -0
  41. package/dist/components/atoms/checkboxes/index.d.ts +2 -0
  42. package/dist/components/atoms/checkboxes/index.js +1 -0
  43. package/dist/components/atoms/inputs/Input.css +185 -0
  44. package/dist/components/atoms/inputs/Input.d.ts +22 -0
  45. package/dist/components/atoms/inputs/Input.js +86 -0
  46. package/dist/components/atoms/inputs/SearchBar.css +54 -0
  47. package/dist/components/atoms/inputs/SearchBar.d.ts +12 -0
  48. package/dist/components/atoms/inputs/SearchBar.js +20 -0
  49. package/dist/components/atoms/inputs/index.d.ts +4 -0
  50. package/dist/components/atoms/inputs/index.js +2 -0
  51. package/dist/components/atoms/progressBars/ProgressBar.css +108 -0
  52. package/dist/components/atoms/progressBars/ProgressBar.d.ts +15 -0
  53. package/dist/components/atoms/progressBars/ProgressBar.js +17 -0
  54. package/dist/components/atoms/progressBars/index.d.ts +2 -0
  55. package/dist/components/atoms/progressBars/index.js +1 -0
  56. package/dist/components/atoms/radios/RadioButton.css +98 -0
  57. package/dist/components/atoms/radios/RadioButton.d.ts +11 -0
  58. package/dist/components/atoms/radios/RadioButton.js +10 -0
  59. package/dist/components/atoms/radios/index.d.ts +2 -0
  60. package/dist/components/atoms/radios/index.js +1 -0
  61. package/dist/components/atoms/selects/Select.css +103 -0
  62. package/dist/components/atoms/selects/Select.d.ts +22 -0
  63. package/dist/components/atoms/selects/Select.js +86 -0
  64. package/dist/components/atoms/selects/index.d.ts +2 -0
  65. package/dist/components/atoms/selects/index.js +1 -0
  66. package/dist/components/atoms/tags/AppointementStatusTag.css +158 -0
  67. package/dist/{tags → components/atoms/tags}/AppointementStatusTag.d.ts +1 -1
  68. package/dist/components/atoms/tags/FolderStatusTag.css +26 -0
  69. package/dist/components/atoms/tags/FolderStatusTag.d.ts +7 -0
  70. package/dist/components/atoms/tags/FolderStatusTag.js +8 -0
  71. package/dist/components/atoms/tags/OtherStatusTag.css +72 -0
  72. package/dist/components/atoms/tags/OtherStatusTag.d.ts +10 -0
  73. package/dist/components/atoms/tags/OtherStatusTag.js +10 -0
  74. package/dist/components/atoms/tags/index.d.ts +6 -0
  75. package/dist/components/atoms/tags/index.js +3 -0
  76. package/dist/components/atoms/typography/Heading.css +68 -0
  77. package/dist/components/atoms/typography/Heading.d.ts +9 -0
  78. package/dist/components/atoms/typography/Heading.js +7 -0
  79. package/dist/components/atoms/typography/Paragraph.css +43 -0
  80. package/dist/components/atoms/typography/Paragraph.d.ts +9 -0
  81. package/dist/components/atoms/typography/Paragraph.js +7 -0
  82. package/dist/components/atoms/typography/SmallTitle.css +53 -0
  83. package/dist/components/atoms/typography/SmallTitle.d.ts +9 -0
  84. package/dist/components/atoms/typography/SmallTitle.js +7 -0
  85. package/dist/components/atoms/typography/Subtitle.css +40 -0
  86. package/dist/components/atoms/typography/Subtitle.d.ts +9 -0
  87. package/dist/components/atoms/typography/Subtitle.js +7 -0
  88. package/dist/components/atoms/typography/TinyInfo.css +56 -0
  89. package/dist/components/atoms/typography/TinyInfo.d.ts +9 -0
  90. package/dist/components/atoms/typography/TinyInfo.js +8 -0
  91. package/dist/components/atoms/typography/index.d.ts +10 -0
  92. package/dist/components/atoms/typography/index.js +5 -0
  93. package/dist/components/atoms/uiVariables/BorderRadius.d.ts +6 -0
  94. package/dist/components/atoms/uiVariables/BorderRadius.js +12 -0
  95. package/dist/components/atoms/uiVariables/BorderRadiusExample.css +31 -0
  96. package/dist/components/atoms/uiVariables/Shadows.d.ts +6 -0
  97. package/dist/components/atoms/uiVariables/Shadows.js +11 -0
  98. package/dist/components/atoms/uiVariables/ShadowsExample.css +27 -0
  99. package/dist/components/atoms/uiVariables/Strokes.d.ts +6 -0
  100. package/dist/components/atoms/uiVariables/Strokes.js +10 -0
  101. package/dist/components/atoms/uiVariables/StrokesExample.css +22 -0
  102. package/dist/components/atoms/uiVariables/index.d.ts +3 -0
  103. package/dist/components/atoms/uiVariables/index.js +3 -0
  104. package/dist/components/molecules/appointmentSlot/AppointmentSlot.css +366 -0
  105. package/dist/components/molecules/appointmentSlot/AppointmentSlot.d.ts +25 -0
  106. package/dist/components/molecules/appointmentSlot/AppointmentSlot.js +109 -0
  107. package/dist/components/molecules/appointmentSlot/TestClic.css +19 -0
  108. package/dist/components/molecules/appointmentSlot/TestClic.d.ts +4 -0
  109. package/dist/components/molecules/appointmentSlot/TestClic.js +28 -0
  110. package/dist/components/molecules/appointmentSlot/index.d.ts +2 -0
  111. package/dist/components/molecules/appointmentSlot/index.js +1 -0
  112. package/dist/components/molecules/caseCard/CaseCard.css +119 -0
  113. package/dist/components/molecules/caseCard/CaseCard.d.ts +14 -0
  114. package/dist/components/molecules/caseCard/CaseCard.js +20 -0
  115. package/dist/components/molecules/caseCard/index.d.ts +2 -0
  116. package/dist/components/molecules/caseCard/index.js +1 -0
  117. package/dist/components/molecules/checkboxForm/CheckboxForm.css +22 -0
  118. package/dist/components/molecules/checkboxForm/CheckboxForm.d.ts +11 -0
  119. package/dist/components/molecules/checkboxForm/CheckboxForm.js +15 -0
  120. package/dist/components/molecules/checkboxForm/index.d.ts +2 -0
  121. package/dist/components/molecules/checkboxForm/index.js +1 -0
  122. package/dist/components/molecules/contactCard/ContactCard.css +386 -0
  123. package/dist/components/molecules/contactCard/ContactCard.d.ts +17 -0
  124. package/dist/components/molecules/contactCard/ContactCard.js +80 -0
  125. package/dist/components/molecules/contactCard/index.d.ts +2 -0
  126. package/dist/components/molecules/contactCard/index.js +1 -0
  127. package/dist/components/molecules/documentCard/DocumentCard.css +130 -0
  128. package/dist/components/molecules/documentCard/DocumentCard.d.ts +14 -0
  129. package/dist/components/molecules/documentCard/DocumentCard.js +59 -0
  130. package/dist/components/molecules/documentCard/index.d.ts +2 -0
  131. package/dist/components/molecules/documentCard/index.js +1 -0
  132. package/dist/components/molecules/employeeCard/EmployeeCard.css +187 -0
  133. package/dist/components/molecules/employeeCard/EmployeeCard.d.ts +15 -0
  134. package/dist/components/molecules/employeeCard/EmployeeCard.js +34 -0
  135. package/dist/components/molecules/employeeCard/index.d.ts +2 -0
  136. package/dist/components/molecules/employeeCard/index.js +1 -0
  137. package/dist/components/molecules/stepper/Stepper.css +80 -0
  138. package/dist/components/molecules/stepper/Stepper.d.ts +27 -0
  139. package/dist/components/molecules/stepper/Stepper.js +66 -0
  140. package/dist/components/molecules/stepper/index.d.ts +2 -0
  141. package/dist/components/molecules/stepper/index.js +1 -0
  142. package/dist/index.d.ts +36 -2
  143. package/dist/index.js +52 -2
  144. package/dist/styles/colors.css +2 -0
  145. package/dist/styles/global.css +9 -0
  146. package/dist/styles/ui-variables/border-radius.css +6 -0
  147. package/dist/styles/ui-variables/shadows.css +5 -0
  148. package/dist/styles/ui-variables/stroke.css +4 -0
  149. package/dist/utils/regex.d.ts +5 -0
  150. package/dist/utils/regex.js +7 -0
  151. package/package.json +36 -16
  152. package/dist/buttons/ButtonPrimary.d.ts +0 -10
  153. package/dist/buttons/ButtonPrimary.js +0 -10
  154. package/dist/components/buttons/ButtonPrimary.d.ts +0 -11
  155. package/dist/components/buttons/ButtonPrimary.js +0 -11
  156. package/dist/components/tags/AppointementStatusTag.css +0 -58
  157. package/dist/components/tags/AppointementStatusTag.d.ts +0 -8
  158. package/dist/stories/button.css +0 -30
  159. package/dist/stories/header.css +0 -32
  160. package/dist/stories/page.css +0 -69
  161. package/dist/tags/AppointementStatusTag.js +0 -41
  162. /package/dist/components/{tags → atoms/tags}/AppointementStatusTag.js +0 -0
@@ -0,0 +1,20 @@
1
+ import React from "react";
2
+ import "./CaseCard.css";
3
+ import OtherStatusTag from "../../atoms/tags/OtherStatusTag";
4
+ var CaseCard = function (_a) {
5
+ var clientName = _a.clientName, title = _a.title, nextAppointment = _a.nextAppointment, categories = _a.categories, variant = _a.variant;
6
+ return (React.createElement("div", { className: "case-card-wrapper case-card-".concat(variant) },
7
+ React.createElement("div", { className: "case-card-content" },
8
+ React.createElement("div", { className: "case-card-header" },
9
+ React.createElement("span", { className: "case-card-client-name" }, clientName),
10
+ React.createElement("h2", { className: variant === "desktop"
11
+ ? "case-card-title"
12
+ : "case-card-title-extended" }, title)),
13
+ React.createElement("div", { className: "case-card-categories" }, categories.map(function (category, index) { return (React.createElement(OtherStatusTag, { key: index, label: category, type: "readonly" })); }))),
14
+ nextAppointment && variant !== "archived" && (React.createElement("div", { className: "case-card-next-appointment" },
15
+ React.createElement("span", { className: "case-card-next-appointment-label" }, "Prochain RDV"),
16
+ variant === "desktop" ? (React.createElement(React.Fragment, null,
17
+ React.createElement("span", { className: "case-card-next-appointment-date" }, nextAppointment.date),
18
+ React.createElement("span", { className: "case-card-next-appointment-time" }, nextAppointment.time))) : (React.createElement("span", { className: "case-card-next-appointment-date-only" }, nextAppointment.date))))));
19
+ };
20
+ export default CaseCard;
@@ -0,0 +1,2 @@
1
+ export { default as CaseCard } from "./CaseCard";
2
+ export type { CaseCardProps } from "./CaseCard";
@@ -0,0 +1 @@
1
+ export { default as CaseCard } from "./CaseCard";
@@ -0,0 +1,22 @@
1
+ .checkbox-form {
2
+ display: flex;
3
+ align-items: center;
4
+ gap: 8px;
5
+ }
6
+
7
+ .checkbox-form-black {
8
+ color: var(--noir);
9
+ }
10
+
11
+ .checkbox-form-white {
12
+ color: var(--pure-white);
13
+ }
14
+
15
+ .checkbox-form-label-container {
16
+ display: flex;
17
+ align-items: center;
18
+ }
19
+
20
+ .checkbox-form-required {
21
+ color: var(--dark-grey, #456073);
22
+ }
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ import "./CheckboxForm.css";
3
+ export interface CheckboxFormProps {
4
+ checked?: boolean;
5
+ onChange?: (checked: boolean) => void;
6
+ isWhite?: boolean;
7
+ label?: string;
8
+ isRequired?: boolean;
9
+ }
10
+ declare const CheckboxForm: React.FC<CheckboxFormProps>;
11
+ export default CheckboxForm;
@@ -0,0 +1,15 @@
1
+ import React from "react";
2
+ import Checkbox from "../../atoms/checkboxes/Checkbox";
3
+ import Paragraph from "../../atoms/typography/Paragraph";
4
+ import "./CheckboxForm.css";
5
+ var CheckboxForm = function (_a) {
6
+ var _b = _a.checked, checked = _b === void 0 ? false : _b, onChange = _a.onChange, _c = _a.isWhite, isWhite = _c === void 0 ? false : _c, label = _a.label, _d = _a.isRequired, isRequired = _d === void 0 ? false : _d;
7
+ return (React.createElement("div", { className: "checkbox-form ".concat(isWhite ? "checkbox-form-white" : "checkbox-form-black") },
8
+ React.createElement(Checkbox, { checked: checked, onChange: onChange, isWhite: isWhite }),
9
+ label && (React.createElement("div", { className: "checkbox-form-label-container" },
10
+ React.createElement(Paragraph, { variant: "semiBold", color: isWhite ? "pure-white" : "noir", text: label }),
11
+ isRequired && (React.createElement("span", { className: "checkbox-form-required" },
12
+ "\u00A0",
13
+ "*"))))));
14
+ };
15
+ export default CheckboxForm;
@@ -0,0 +1,2 @@
1
+ export { default as CheckboxForm } from "./CheckboxForm";
2
+ export type { CheckboxFormProps } from "./CheckboxForm";
@@ -0,0 +1 @@
1
+ export { default as CheckboxForm } from "./CheckboxForm";
@@ -0,0 +1,386 @@
1
+ @import "../../../styles/colors.css";
2
+
3
+ .contact-card {
4
+ font-family: "Open Sans", sans-serif;
5
+ border-radius: 16px;
6
+ border: 1px solid var(--venom-grey, #e6edf5);
7
+ background: var(--Primary-Blanc, #fff);
8
+ }
9
+
10
+ .gender-separator {
11
+ width: 4px;
12
+ height: 4px;
13
+ background-color: var(--Primary-Dark-grey, var(--dark-grey, #456073));
14
+ border-radius: 50%;
15
+ }
16
+
17
+ .contact-card.small .contact-details,
18
+ .contact-card.medium .contact-details,
19
+ .contact-card.large .contact-details {
20
+ display: flex;
21
+ align-items: center;
22
+ gap: 8px;
23
+ line-height: normal;
24
+ }
25
+
26
+ .contact-card.small {
27
+ display: flex;
28
+ width: 260px;
29
+ padding: 15px 16px 15px 16px;
30
+ justify-content: space-between;
31
+ align-items: flex-end;
32
+ }
33
+
34
+ .contact-card.small .contact-card-content {
35
+ display: flex;
36
+ flex-direction: row;
37
+ align-items: center;
38
+ justify-content: center;
39
+ gap: 13px;
40
+ align-self: stretch;
41
+ }
42
+
43
+ .contact-card.small .profile-picture-container {
44
+ border-radius: 64px;
45
+ border: 2px solid var(--venom-grey, #e6edf5);
46
+ background: lightgray 50% / cover no-repeat;
47
+ display: flex;
48
+ flex-direction: row;
49
+ justify-content: center;
50
+ align-items: center;
51
+ padding-bottom: 0px;
52
+ }
53
+
54
+ .contact-card.small .contact-info {
55
+ display: flex;
56
+ flex-direction: column;
57
+ justify-content: center;
58
+ align-items: flex-start;
59
+ gap: 24px;
60
+ align-self: stretch;
61
+ padding-bottom: 4px;
62
+ padding-left: 1px;
63
+ }
64
+
65
+ .contact-card.small .contact-name {
66
+ color: var(--Primary-Mid-black, var(--primary-black, #171e25));
67
+ font-family: "Open Sans";
68
+ font-size: 16px;
69
+ font-style: normal;
70
+ font-weight: 600;
71
+ line-height: 5px;
72
+ margin: 0;
73
+ padding-bottom: 0px;
74
+ }
75
+
76
+ .contact-card.small .contact-details {
77
+ color: var(--Primary-Dark-grey, var(--dark-grey, #456073));
78
+ font-family: "Open Sans";
79
+ font-size: 12px;
80
+ font-style: normal;
81
+ font-weight: 400;
82
+ line-height: 0px;
83
+ letter-spacing: 0.12px;
84
+ margin: 0;
85
+ }
86
+
87
+ .contact-card.medium {
88
+ display: flex;
89
+ width: 342px;
90
+ padding: 14px 16px 13px 16px;
91
+ align-items: stretch;
92
+ gap: 16px;
93
+ border-radius: 16px;
94
+ border: 1px solid var(--venom-grey, #e6edf5);
95
+ background: var(--Primary-Blanc, #fff);
96
+ }
97
+
98
+ .contact-card.medium .contact-card-content {
99
+ display: flex;
100
+ flex-direction: row;
101
+ justify-content: space-between;
102
+ align-items: center;
103
+ flex: 1;
104
+ height: 100%;
105
+ gap: 10px;
106
+ }
107
+
108
+ .contact-card.medium .contact-info-group {
109
+ display: flex;
110
+ flex-direction: row;
111
+ align-items: center;
112
+ gap: 10px;
113
+ }
114
+
115
+ .contact-card.medium .profile-picture-container {
116
+ border-radius: 64px;
117
+ border: 3px solid var(--venom-grey, #e6edf5);
118
+ display: flex;
119
+ flex-direction: row;
120
+ justify-content: center;
121
+ align-items: center;
122
+ }
123
+ .contact-card.medium .contact-info {
124
+ margin-left: -24px;
125
+ margin-top: -4px;
126
+ display: flex;
127
+ flex-direction: column;
128
+ justify-content: center;
129
+ padding-left: 8px;
130
+ }
131
+
132
+ .contact-card.medium .contact-name {
133
+ color: var(--Primary-Mid-black, var(--primary-black, #171e25));
134
+ text-overflow: ellipsis;
135
+ font-family: "Open Sans";
136
+ font-size: 18px;
137
+ font-style: normal;
138
+ font-weight: 700;
139
+ line-height: 24px;
140
+ }
141
+
142
+ .contact-card.medium .contact-details {
143
+ color: var(--Primary-Dark-grey, var(--dark-grey, #456073));
144
+ font-family: "Open Sans";
145
+ margin-top: 5px;
146
+ font-size: 14px;
147
+ font-style: normal;
148
+ font-weight: 400;
149
+ line-height: normal;
150
+ }
151
+
152
+ .contact-card.medium .status-container {
153
+ display: flex;
154
+ flex-direction: column;
155
+ justify-content: center;
156
+ align-items: center;
157
+ height: 100%;
158
+ align-self: stretch;
159
+ }
160
+
161
+ .contact-card.small .avatar,
162
+ .contact-card.medium .avatar {
163
+ width: 71px;
164
+ height: 71px;
165
+ border-radius: 50%;
166
+ object-fit: cover;
167
+ }
168
+
169
+ .contact-card.large .avatar {
170
+ width: 90px;
171
+ height: 90px;
172
+ border-radius: 50%;
173
+ object-fit: cover;
174
+ display: flex;
175
+ justify-content: center;
176
+ align-items: center;
177
+ }
178
+
179
+ .contact-header {
180
+ display: flex;
181
+ justify-content: space-between;
182
+ align-items: center;
183
+ width: 100%;
184
+ }
185
+
186
+ .contact-additional-info {
187
+ margin-top: 16px;
188
+ }
189
+
190
+ .contact-additional-info p {
191
+ margin: 8px 0;
192
+ }
193
+
194
+ .contact-additional-info strong {
195
+ font-weight: 600;
196
+ margin-right: 8px;
197
+ }
198
+
199
+ .contact-card.large {
200
+ display: flex;
201
+ width: 1141px;
202
+ padding: 24px 24px 17px 24px;
203
+ align-items: flex-start;
204
+ gap: 56px;
205
+ border-radius: 16px;
206
+ border: 1px solid var(--venom-grey, #e6edf5);
207
+ background: var(--Primary-Blanc, #fff);
208
+ }
209
+
210
+ .contact-card.large .profile-picture-container {
211
+ width: 90px;
212
+ height: 90px;
213
+ flex-shrink: 0;
214
+ border-radius: 94px;
215
+ border: 2px solid var(--venom-grey, #e6edf5);
216
+ background: lightgray 50% / cover no-repeat;
217
+ display: flex;
218
+ justify-content: center;
219
+ align-items: center;
220
+ box-sizing: content-box;
221
+ }
222
+
223
+ .contact-card.large .content-container {
224
+ display: flex;
225
+ flex-direction: column;
226
+ justify-content: center;
227
+ align-items: flex-start;
228
+ gap: 0px;
229
+ flex: 1 0 0;
230
+ align-self: stretch;
231
+ }
232
+
233
+ .contact-card.large .contact-name {
234
+ color: var(--Primary-Mid-black, var(--primary-black, #171e25));
235
+ font-family: Poppins, sans-serif;
236
+ font-size: 24px;
237
+ font-style: normal;
238
+ font-weight: 600;
239
+ line-height: 16px;
240
+ padding-bottom: 20px;
241
+ }
242
+
243
+ .contact-card.large .contact-details {
244
+ color: var(--Primary-Dark-grey, var(--dark-grey, #456073));
245
+ font-family: "Open Sans", sans-serif;
246
+ font-size: 14px;
247
+ font-style: normal;
248
+ font-weight: 400;
249
+ line-height: 1px;
250
+ }
251
+
252
+ .contact-card.large .contact-additional-info {
253
+ margin-top: 11px;
254
+ }
255
+
256
+ .contact-card.large .contact-additional-info {
257
+ display: flex;
258
+ flex-direction: column;
259
+ justify-content: center;
260
+ align-items: flex-start;
261
+ gap: 0px;
262
+ }
263
+
264
+ .contact-card.large .contact-address-container {
265
+ display: flex;
266
+ flex-direction: row;
267
+ justify-content: center;
268
+ align-items: center;
269
+ gap: 16px;
270
+ line-height: 0px;
271
+ }
272
+
273
+ .contact-card.large .contact-telephone-email-container {
274
+ display: flex;
275
+ flex-direction: row;
276
+ justify-content: center;
277
+ align-items: center;
278
+ gap: 48px;
279
+ margin-top: -3px;
280
+ }
281
+
282
+ .contact-card.large .info-label {
283
+ color: var(--Tags-Mid-grey, var(--light-grey, #728ea7));
284
+ font-family: "Open Sans", sans-serif;
285
+ font-size: 12px;
286
+ font-style: normal;
287
+ font-weight: 600;
288
+ line-height: normal;
289
+ }
290
+
291
+ .contact-card.large .info-value {
292
+ flex: 1 0 0;
293
+ align-self: stretch;
294
+ color: var(--Primary-Dark-grey, var(--dark-grey, #456073));
295
+ font-family: "Open Sans", sans-serif;
296
+ font-size: 16px;
297
+ font-style: normal;
298
+ font-weight: 400;
299
+ line-height: normal;
300
+ }
301
+
302
+ .contact-card.large .contact-phone {
303
+ font-family: Inter, sans-serif;
304
+ font-weight: 500;
305
+ }
306
+
307
+ .contact-card.editable {
308
+ display: flex;
309
+ padding: 24px;
310
+ width: 1214px;
311
+ justify-content: space-between;
312
+ align-items: flex-start;
313
+ align-self: stretch;
314
+ border-radius: 16px;
315
+ border: 1px solid var(--Primary-Venom-grey, #e6edf5);
316
+ background: var(--Primary-Blanc, #fff);
317
+ }
318
+
319
+ .contact-card.editable .content-container {
320
+ display: flex;
321
+ align-items: center;
322
+ gap: 24px;
323
+ }
324
+
325
+ .contact-card.editable .name-tag-container {
326
+ display: flex;
327
+ flex-direction: column;
328
+ justify-content: center;
329
+ align-items: center;
330
+ gap: 16px;
331
+ padding-left: 2px;
332
+ }
333
+
334
+ .contact-card.editable .contact-name {
335
+ color: var(--Primary-Mid-black, #171e25);
336
+ font-family: Poppins;
337
+ font-size: 24px;
338
+ font-style: normal;
339
+ font-weight: 600;
340
+ line-height: 18px;
341
+ }
342
+
343
+ .contact-card.editable .info-container {
344
+ display: flex;
345
+ flex-direction: column;
346
+ align-items: flex-start;
347
+ gap: 10px;
348
+ padding-left: 6px;
349
+ }
350
+
351
+ .contact-card.editable .info-item {
352
+ display: flex;
353
+ align-items: center;
354
+ gap: 8px;
355
+ }
356
+
357
+ .contact-card.editable .info-icon {
358
+ width: 24px;
359
+ height: 24px;
360
+ color: #25beeb;
361
+ font-size: 20px;
362
+ display: flex;
363
+ justify-content: center;
364
+ align-items: center;
365
+ }
366
+
367
+ .contact-card.editable .info-text {
368
+ color: var(--Primary-Mid-black, #171e25);
369
+ font-family: "Open Sans";
370
+ font-size: 16px;
371
+ font-style: normal;
372
+ font-weight: 400;
373
+ line-height: normal;
374
+ }
375
+
376
+ .contact-card.editable .info-text.contact {
377
+ color: var(--Primary-Dark-grey, #456073);
378
+ }
379
+
380
+ .contact-card.editable .telephone-email-items {
381
+ display: flex;
382
+ flex-direction: row;
383
+ justify-content: center;
384
+ align-items: center;
385
+ gap: 16px;
386
+ }
@@ -0,0 +1,17 @@
1
+ import React from "react";
2
+ import "./ContactCard.css";
3
+ export interface ContactCardProps {
4
+ size: "small" | "medium" | "large" | "editable";
5
+ name: string;
6
+ birthDate: string;
7
+ avatarUrl: string;
8
+ status: string;
9
+ address: string;
10
+ phone: string;
11
+ email: string;
12
+ isEditable: boolean;
13
+ onEdit: () => void;
14
+ gender: "male" | "female";
15
+ }
16
+ declare const ContactCard: React.FC<ContactCardProps>;
17
+ export default ContactCard;
@@ -0,0 +1,80 @@
1
+ import React from "react";
2
+ import "./ContactCard.css";
3
+ import OtherStatusTag from "../../atoms/tags/OtherStatusTag";
4
+ import IconButton from "../../atoms/buttons/IconButton";
5
+ import Image from "next/image";
6
+ var NoPhoto = "/assets/NoPhoto.png";
7
+ var ContactCard = function (_a) {
8
+ var size = _a.size, name = _a.name, birthDate = _a.birthDate, avatarUrl = _a.avatarUrl, status = _a.status, address = _a.address, phone = _a.phone, email = _a.email, onEdit = _a.onEdit, gender = _a.gender;
9
+ var renderContent = function () {
10
+ switch (size) {
11
+ case "small":
12
+ return (React.createElement("div", { className: "contact-card-content" },
13
+ React.createElement("div", { className: "profile-picture-container" },
14
+ React.createElement(Image, { src: avatarUrl || NoPhoto, alt: name, width: 64, height: 64, className: "avatar" })),
15
+ React.createElement("div", { className: "contact-info" },
16
+ React.createElement("h3", { className: "contact-name" }, name),
17
+ React.createElement("p", { className: "contact-details" },
18
+ React.createElement("span", null, gender === "male" ? "M" : "F"),
19
+ React.createElement("span", { className: "gender-separator" }),
20
+ React.createElement("span", null, birthDate)))));
21
+ case "medium":
22
+ return (React.createElement("div", { className: "contact-card-content" },
23
+ React.createElement("div", { className: "profile-picture-container" },
24
+ React.createElement(Image, { src: avatarUrl || NoPhoto, alt: name, width: 72, height: 72, className: "avatar" })),
25
+ React.createElement("div", { className: "contact-info" },
26
+ React.createElement("h3", { className: "contact-name" }, name),
27
+ React.createElement("p", { className: "contact-details" },
28
+ React.createElement("span", null, gender === "male" ? "M" : "F"),
29
+ React.createElement("span", { className: "gender-separator" }),
30
+ React.createElement("span", null, birthDate))),
31
+ React.createElement("div", { className: "status-container" },
32
+ React.createElement(OtherStatusTag, { label: status, type: "readonly" }))));
33
+ case "large":
34
+ return (React.createElement(React.Fragment, null,
35
+ React.createElement("div", { className: "profile-picture-container" },
36
+ React.createElement(Image, { src: avatarUrl || NoPhoto, alt: name, width: 94, height: 94, className: "avatar" })),
37
+ React.createElement("div", { className: "content-container" },
38
+ React.createElement("div", null,
39
+ React.createElement("h3", { className: "contact-name" }, name),
40
+ React.createElement("p", { className: "contact-details" },
41
+ React.createElement("span", null, gender === "male" ? "M" : "F"),
42
+ React.createElement("span", { className: "gender-separator" }),
43
+ React.createElement("span", null, birthDate))),
44
+ React.createElement("div", { className: "contact-additional-info" },
45
+ React.createElement("div", { className: "contact-address-container" },
46
+ React.createElement("p", { className: "info-label" }, "ADRESSE"),
47
+ React.createElement("p", { className: "info-value" }, address)),
48
+ React.createElement("div", { className: "contact-telephone-email-container" },
49
+ React.createElement("p", { className: "info-label" }, "CONTACT"),
50
+ React.createElement("p", { className: "info-value" },
51
+ React.createElement("span", { className: "contact-phone" }, phone)),
52
+ React.createElement("p", { className: "info-value" },
53
+ React.createElement("span", { className: "contact-phone" }, email))))),
54
+ React.createElement("div", { className: "status-container" },
55
+ React.createElement(OtherStatusTag, { label: status, type: "readonly" }))));
56
+ case "editable":
57
+ return (React.createElement(React.Fragment, null,
58
+ React.createElement("div", { className: "content-container" },
59
+ React.createElement("div", { className: "name-tag-container" },
60
+ React.createElement("h3", { className: "contact-name" }, name),
61
+ React.createElement(OtherStatusTag, { label: status, type: "readonly" })),
62
+ React.createElement("div", { className: "info-container" },
63
+ React.createElement("div", { className: "info-item" },
64
+ React.createElement("i", { className: "allaw-icon-user info-icon" }),
65
+ React.createElement("span", { className: "info-text" },
66
+ gender === "male" ? "Client" : "Cliente",
67
+ " de l'\u00E9tude")),
68
+ React.createElement("div", { className: "telephone-email-items" },
69
+ React.createElement("div", { className: "info-item" },
70
+ React.createElement("i", { className: "allaw-icon-phone info-icon" }),
71
+ React.createElement("span", { className: "info-text contact" }, phone)),
72
+ React.createElement("div", { className: "info-item" },
73
+ React.createElement("i", { className: "allaw-icon-mail info-icon" }),
74
+ React.createElement("span", { className: "info-text contact" }, email))))),
75
+ React.createElement(IconButton, { style: "largeFilled", iconName: "allaw-icon-edit-2", onClick: onEdit })));
76
+ }
77
+ };
78
+ return React.createElement("div", { className: "contact-card ".concat(size) }, renderContent());
79
+ };
80
+ export default ContactCard;
@@ -0,0 +1,2 @@
1
+ export { default as ContactCard } from "./ContactCard";
2
+ export type { ContactCardProps } from "./ContactCard";
@@ -0,0 +1 @@
1
+ export { default as ContactCard } from "./ContactCard";