allaw-ui 0.0.19 → 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 (166) hide show
  1. package/README.md +30 -10
  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 +113 -13
  67. package/dist/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/atoms/buttons/ButtonPrimary.css +0 -52
  155. package/dist/components/atoms/buttons/ButtonPrimary.d.ts +0 -11
  156. package/dist/components/atoms/buttons/ButtonPrimary.js +0 -11
  157. package/dist/components/buttons/ButtonPrimary.d.ts +0 -11
  158. package/dist/components/buttons/ButtonPrimary.js +0 -11
  159. package/dist/components/tags/AppointementStatusTag.css +0 -58
  160. package/dist/components/tags/AppointementStatusTag.d.ts +0 -8
  161. package/dist/components/tags/AppointementStatusTag.js +0 -41
  162. package/dist/stories/button.css +0 -30
  163. package/dist/stories/header.css +0 -32
  164. package/dist/stories/page.css +0 -69
  165. package/dist/tags/AppointementStatusTag.d.ts +0 -8
  166. package/dist/tags/AppointementStatusTag.js +0 -41
package/README.md CHANGED
@@ -15,6 +15,21 @@ Importez les composants dont vous avez besoin dans votre application React.
15
15
  - Button
16
16
  - Icon
17
17
  - Tag
18
+ - EmployeeCard
19
+ - CaseCard
20
+ - DocumentCard
21
+ - ContactCard
22
+ - Stepper
23
+ - ProgressBar
24
+ - Input
25
+ - SearchBar
26
+ - Typography (Heading, Subtitle, Paragraph, TinyInfo, SmallTitle)
27
+ - AppointementStatusTag
28
+ - FolderStatusTag
29
+ - PendingDocuments
30
+ - ActionCircleButton
31
+ - GhostButton
32
+ - Checkbox
18
33
 
19
34
  Pour une documentation complète de chaque composant, veuillez consulter notre Storybook.
20
35
 
@@ -28,7 +43,7 @@ Pour une documentation complète de chaque composant, veuillez consulter notre S
28
43
 
29
44
  ### Installation des dépendances
30
45
 
31
- npm install
46
+ npm install
32
47
 
33
48
  Storybook sera disponible à l'adresse [http://localhost:6006](http://localhost:6006).
34
49
 
@@ -36,9 +51,9 @@ Storybook sera disponible à l'adresse [http://localhost:6006](http://localhost:
36
51
 
37
52
  import "../node_modules/allaw-ui/dist/styles/colors.css";
38
53
 
39
- <div className={styles.testCouleur}>
40
- Test couleur variable --bleu-allaw
41
- </div>
54
+ <div className={styles.testCouleur}>
55
+ Test couleur variable --bleu-allaw
56
+ </div>
42
57
 
43
58
  Fichier page.modules.css :
44
59
  .testCouleur {
@@ -47,9 +62,9 @@ color: var(--bleu-allaw);
47
62
 
48
63
  ### Utilisation des Boutons
49
64
 
50
- import { Button } from "allaw-ui";
65
+ import PrimaryButton from "allaw-ui/dist/components/atoms/buttons/PrimaryButton";
51
66
 
52
- <Button
67
+ <Button
53
68
  label="click me"
54
69
  startIcon="allaw-icon-arrow-right"
55
70
  endIcon="allaw-icon-arrow-left"
@@ -57,15 +72,20 @@ import { Button } from "allaw-ui";
57
72
 
58
73
  ### Utilisation des Tags
59
74
 
60
- import { Tag } from "allaw-ui";
61
-
62
- <Tag status="passed" variant="big" />
75
+ import { Tag } from "allaw-ui";
76
+ <Tag status="passed" variant="big" />
63
77
 
64
78
  ### Build
65
79
 
66
80
  Pour construire la bibliothèque :
67
81
 
68
- npm run build
82
+ npm run build
83
+
84
+ ### Storybook
85
+
86
+ Pour lancer Storybook en mode développement :
87
+
88
+ npm run build-storybook
69
89
 
70
90
  ## Contribution
71
91
 
@@ -0,0 +1,5 @@
1
+ * {
2
+ box-sizing: border-box;
3
+ padding: 0;
4
+ margin: 0;
5
+ }
@@ -0,0 +1,143 @@
1
+ .approved-circle {
2
+ width: 32px;
3
+ height: 32px;
4
+ display: flex;
5
+ flex-direction: row;
6
+ align-items: center;
7
+ justify-content: center;
8
+ border-radius: 16px;
9
+ border: 1px solid var(--Tags-Vert, #29a36a);
10
+ background: var(--tag-green-light, #daf6e9);
11
+ cursor: pointer;
12
+ }
13
+
14
+ .approved-icon {
15
+ width: 16px;
16
+ height: 16px;
17
+ display: flex;
18
+ flex-direction: row;
19
+ align-items: center;
20
+ justify-content: center;
21
+ color: var(--Tags-Vert, #29a36a);
22
+ font-size: 14px;
23
+ transition: transform 0.15s ease;
24
+ }
25
+
26
+ .approved-circle:hover .approved-icon {
27
+ transform: scale(1.1);
28
+ transform-origin: center;
29
+ cursor: pointer;
30
+ }
31
+
32
+ .approved-circle:active .approved-icon {
33
+ transform: scale(1.2);
34
+ transform-origin: center;
35
+ }
36
+
37
+ /* Styles pour le bouton rejeté */
38
+ .rejected-circle {
39
+ width: 32px;
40
+ height: 32px;
41
+ display: flex;
42
+ flex-direction: row;
43
+ align-items: center;
44
+ justify-content: center;
45
+ border-radius: 16px;
46
+ border: 1px solid var(--red-tag-dark, #e15151);
47
+ background: var(--red-tag-light, #fdf2f2);
48
+ cursor: pointer;
49
+ }
50
+
51
+ .rejected-icon {
52
+ width: 16px;
53
+ height: 16px;
54
+ display: flex;
55
+ flex-direction: row;
56
+ align-items: center;
57
+ justify-content: center;
58
+ color: var(--red-tag-dark, #e15151);
59
+ font-size: 9px;
60
+ transition: transform 0.15s ease;
61
+ }
62
+
63
+ .rejected-circle:hover .rejected-icon {
64
+ transform: scale(1.1);
65
+ transform-origin: center;
66
+ cursor: pointer;
67
+ }
68
+
69
+ .rejected-circle:active .rejected-icon {
70
+ transform: scale(1.2);
71
+ transform-origin: center;
72
+ }
73
+
74
+ /* Styles pour le bouton dual */
75
+ .dual-button {
76
+ display: flex;
77
+ height: 32px;
78
+ width: 64px;
79
+ display: flex;
80
+ flex-direction: row;
81
+ align-items: center;
82
+ justify-content: center;
83
+ border-radius: 16px;
84
+ background: var(--secondary-light-grey, #f4f7fb);
85
+ }
86
+
87
+ .dual-rejected-icon {
88
+ width: 24px;
89
+ height: 24px;
90
+ color: #e15151;
91
+ background: none;
92
+ font-size: 9px;
93
+ display: flex;
94
+ flex-direction: row;
95
+ align-items: center;
96
+ justify-content: center;
97
+ padding-right: 4px;
98
+ transition: transform 0.15s ease;
99
+ }
100
+
101
+ .dual-rejected-icon:hover {
102
+ transform: scale(1.1);
103
+ transform-origin: center;
104
+ cursor: pointer;
105
+ }
106
+
107
+ .dual-rejected-icon:active {
108
+ transform: scale(1.2);
109
+ transform-origin: center;
110
+ }
111
+
112
+ .separator {
113
+ width: 1px;
114
+ height: 18px;
115
+ background-color: var(--light-grey, #728ea7);
116
+ opacity: 0.4;
117
+ }
118
+
119
+ .dual-approved-icon {
120
+ width: 24px;
121
+ height: 24px;
122
+ display: flex;
123
+ flex-direction: row;
124
+ align-items: center;
125
+ justify-content: center;
126
+ flex-shrink: 0;
127
+ font-size: 14px;
128
+ color: var(--Tags-Vert, #29a36a);
129
+ background: none;
130
+ padding-left: 4px;
131
+ transition: transform 0.15s ease;
132
+ }
133
+
134
+ .dual-approved-icon:hover {
135
+ transform: scale(1.1);
136
+ transform-origin: center;
137
+ cursor: pointer;
138
+ }
139
+
140
+ .dual-approved-icon:active {
141
+ transform: scale(1.2);
142
+ transform-origin: center;
143
+ }
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import "./ActionCircleButton.css";
3
+ interface ActionCircleButtonProps {
4
+ status: "approved" | "rejected" | "dual";
5
+ onApprove?: () => void;
6
+ onReject?: () => void;
7
+ }
8
+ declare const ActionCircleButton: React.FC<ActionCircleButtonProps>;
9
+ export default ActionCircleButton;
@@ -0,0 +1,23 @@
1
+ import React from "react";
2
+ import "./ActionCircleButton.css";
3
+ var ActionCircleButton = function (_a) {
4
+ var status = _a.status, onApprove = _a.onApprove, onReject = _a.onReject;
5
+ if (status === "approved") {
6
+ return (React.createElement("button", { className: "approved-circle", onClick: onApprove },
7
+ React.createElement("span", { className: "allaw-icon-check approved-icon" })));
8
+ }
9
+ if (status === "rejected") {
10
+ return (React.createElement("button", { className: "rejected-circle", onClick: onReject },
11
+ React.createElement("span", { className: "allaw-icon-close rejected-icon" })));
12
+ }
13
+ if (status === "dual") {
14
+ return (React.createElement("div", { className: "dual-button" },
15
+ React.createElement("button", { className: "dual-rejected-icon", onClick: onReject },
16
+ React.createElement("span", { className: "allaw-icon-close" })),
17
+ React.createElement("span", { className: "separator" }),
18
+ React.createElement("button", { className: "dual-approved-icon", onClick: onApprove },
19
+ React.createElement("span", { className: "allaw-icon-check" }))));
20
+ }
21
+ return null;
22
+ };
23
+ export default ActionCircleButton;
@@ -0,0 +1,116 @@
1
+ .agenda-slot {
2
+ display: flex;
3
+ width: 149.333px;
4
+ padding: 16px;
5
+ justify-content: center;
6
+ align-items: center;
7
+ gap: 8px;
8
+ border-radius: 8px;
9
+ cursor: pointer;
10
+ font-family: "Inter", sans-serif;
11
+ font-size: 14px;
12
+ font-style: normal;
13
+ font-weight: 600;
14
+ line-height: normal;
15
+ text-align: center;
16
+ }
17
+
18
+ .agenda-slot.pro {
19
+ background: var(--secondary-light-grey, #f4f7fb);
20
+ color: var(--Primary-Mid-black, var(--primary-black, #171e25));
21
+ }
22
+
23
+ .agenda-slot.pro:hover {
24
+ background: #cfdeec;
25
+ color: var(--Primary-Mid-black, var(--primary-black, #171e25));
26
+ }
27
+
28
+ .agenda-slot.pro:active {
29
+ background: #cfdeec;
30
+ color: var(--Primary-Mid-black, var(--primary-black, #171e25));
31
+ }
32
+
33
+ .agenda-slot.pro.disabled {
34
+ background: var(--venom-grey, #e6edf5);
35
+ color: var(--Primary-Mid-black, var(--primary-black, #171e25));
36
+ font-weight: 700;
37
+ cursor: not-allowed;
38
+ }
39
+
40
+ .agenda-slot.hybride {
41
+ width: 104px;
42
+ height: 48px;
43
+ padding: 16px;
44
+ justify-content: center;
45
+ align-items: center;
46
+ gap: 8px;
47
+ flex-shrink: 0;
48
+ border-radius: 8px;
49
+ background: var(--tag-blue-light, #daebfb);
50
+ color: var(--Tags-Bleu-fonc, var(--tag-blue, #1985e8));
51
+ font-family: "Open Sans", sans-serif;
52
+ font-size: 16px;
53
+ font-style: normal;
54
+ font-weight: 600;
55
+ line-height: normal;
56
+ }
57
+
58
+ .agenda-slot.hybride:active {
59
+ background: var(--tag-blue, #1985e8);
60
+ color: var(--Tags-Bleu-clair, var(--tag-blue-light, #daebfb));
61
+ }
62
+
63
+ .agenda-slot.hybride.disabled {
64
+ background: var(--secondary-light-grey, #f4f7fb);
65
+ color: #bfd5e9;
66
+ cursor: not-allowed;
67
+ font-family: "Open Sans", sans-serif;
68
+ font-size: 16px;
69
+ font-style: normal;
70
+ font-weight: 600;
71
+ line-height: normal;
72
+ }
73
+
74
+ .agenda-slot.user {
75
+ width: 64px;
76
+ height: 40px;
77
+ padding: 8px;
78
+ justify-content: center;
79
+ align-items: center;
80
+ gap: 8px;
81
+ flex-shrink: 0;
82
+ border-radius: 8px;
83
+ background: var(--tag-blue-light, #daebfb);
84
+ color: var(--Tags-Bleu-fonc, var(--tag-blue, #1985e8));
85
+ font-family: "Inter", sans-serif;
86
+ font-size: 16px;
87
+ font-style: normal;
88
+ font-weight: 500;
89
+ line-height: 21px;
90
+ text-transform: uppercase;
91
+ text-align: center;
92
+ }
93
+
94
+ .agenda-slot.user:active {
95
+ background: var(--tag-blue, #1985e8);
96
+ color: var(--Tags-Bleu-clair, var(--tag-blue-light, #daebfb));
97
+ }
98
+
99
+ .agenda-slot.user.disabled {
100
+ background: var(--secondary-light-grey, #f4f7fb);
101
+ color: var(--Tags-Mid-grey, var(--light-grey, #728ea7));
102
+ cursor: not-allowed;
103
+ font-family: "Inter", sans-serif;
104
+ font-size: 16px;
105
+ font-style: normal;
106
+ font-weight: 500;
107
+ line-height: 21px;
108
+ text-transform: uppercase;
109
+ text-align: center;
110
+ }
111
+
112
+ .agenda-slot.disabled {
113
+ background-color: var(--disabled-bg, #e0e0e0);
114
+ color: #a0a0a0;
115
+ cursor: not-allowed;
116
+ }
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ import "./AgendaSlot.css";
3
+ interface AgendaSlotProps {
4
+ time: string;
5
+ appearance: "pro" | "hybride" | "user";
6
+ isDisabled?: boolean;
7
+ onClick?: () => void;
8
+ }
9
+ declare const AgendaSlot: React.FC<AgendaSlotProps>;
10
+ export default AgendaSlot;
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ import "./AgendaSlot.css";
3
+ var AgendaSlot = function (_a) {
4
+ var time = _a.time, appearance = _a.appearance, _b = _a.isDisabled, isDisabled = _b === void 0 ? false : _b, onClick = _a.onClick;
5
+ return (React.createElement("div", { className: "agenda-slot ".concat(appearance, " ").concat(isDisabled ? "disabled" : ""), onClick: !isDisabled ? onClick : undefined }, time));
6
+ };
7
+ export default AgendaSlot;
@@ -0,0 +1,35 @@
1
+ @import "../../../styles/colors.css";
2
+
3
+ .favorite-toggle {
4
+ width: 28px;
5
+ height: 28px;
6
+ display: flex;
7
+ flex-direction: row;
8
+ justify-content: center;
9
+ align-items: center;
10
+ cursor: pointer;
11
+ }
12
+
13
+ .favorite-toggle .icon {
14
+ width: 24px;
15
+ height: 24px;
16
+ flex-shrink: 0;
17
+ font-size: 24px;
18
+ display: flex;
19
+ flex-direction: row;
20
+ justify-content: center;
21
+ align-items: center;
22
+ transition: transform 0.15s ease;
23
+ }
24
+
25
+ .favorite-toggle .icon.favorite {
26
+ color: #fcc812;
27
+ }
28
+
29
+ .favorite-toggle .icon.not-favorite {
30
+ color: #000000;
31
+ }
32
+
33
+ .favorite-toggle .icon:active {
34
+ transform: scale(1.05);
35
+ }
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ import "./FavoriteToggle.css";
3
+ export interface FavoriteToggleProps {
4
+ isFavorite: boolean;
5
+ onToggle: (isFavorite: boolean) => void;
6
+ }
7
+ declare const FavoriteToggle: React.FC<FavoriteToggleProps>;
8
+ export default FavoriteToggle;
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ import "./FavoriteToggle.css";
3
+ var FavoriteToggle = function (_a) {
4
+ var isFavorite = _a.isFavorite, onToggle = _a.onToggle;
5
+ var handleToggle = function () {
6
+ onToggle(!isFavorite);
7
+ };
8
+ return (React.createElement("div", { className: "favorite-toggle", onClick: handleToggle },
9
+ React.createElement("i", { className: "icon ".concat(isFavorite ? "favorite allaw-icon-star-fill" : "not-favorite allaw-icon-star-unfill") })));
10
+ };
11
+ export default FavoriteToggle;
@@ -0,0 +1,55 @@
1
+ @import "../../../styles/colors.css";
2
+
3
+ /* Styles pour le bouton actif */
4
+ .filter-button-active {
5
+ display: inline-flex;
6
+ height: 35px;
7
+ padding: 12px 24px;
8
+ justify-content: center;
9
+ align-items: center;
10
+ gap: 8px;
11
+ flex-shrink: 0;
12
+ border-radius: 56px;
13
+ background: var(--dark-grey, #456073);
14
+ }
15
+
16
+ .filter-button-active .filter-button-label {
17
+ color: var(--Primary-Blanc, #fff);
18
+ font-family: "Open Sans";
19
+ font-size: 14px;
20
+ font-style: normal;
21
+ font-weight: 400;
22
+ line-height: normal;
23
+ }
24
+
25
+ /* Styles pour le bouton inactif */
26
+ .filter-button-inactive {
27
+ display: inline-flex;
28
+ height: 35px;
29
+ padding: 12px 24px;
30
+ justify-content: center;
31
+ align-items: center;
32
+ gap: 8px;
33
+ flex-shrink: 0;
34
+ border-radius: 56px;
35
+ border: 1px solid var(--venom-grey, #e6edf5);
36
+ background: var(--secondary-light-grey, #f4f7fb);
37
+ }
38
+
39
+ .filter-button-inactive:hover {
40
+ background: var(--grey-venom, #e6edf5);
41
+ cursor: pointer;
42
+ }
43
+
44
+ .filter-button-inactive:active {
45
+ background: #d8e1eb;
46
+ }
47
+
48
+ .filter-button-inactive .filter-button-label {
49
+ color: var(--Primary-Mid-black, var(--primary-black, #171e25));
50
+ font-family: "Open Sans";
51
+ font-size: 14px;
52
+ font-style: normal;
53
+ font-weight: 400;
54
+ line-height: normal;
55
+ }
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import "./FilterButton.css";
3
+ import "../../../styles/global.css";
4
+ export interface FilterButtonProps {
5
+ label: string;
6
+ isActive: boolean;
7
+ }
8
+ declare const FilterButton: React.FC<FilterButtonProps>;
9
+ export default FilterButton;
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import "./FilterButton.css";
3
+ import "../../../styles/global.css";
4
+ var FilterButton = function (_a) {
5
+ var label = _a.label, isActive = _a.isActive;
6
+ return (React.createElement("button", { className: "filter-button ".concat(isActive ? "filter-button-active" : "filter-button-inactive") },
7
+ React.createElement("span", { className: "filter-button-label" }, label)));
8
+ };
9
+ export default FilterButton;
@@ -0,0 +1,63 @@
1
+ @import "../../../styles/colors.css";
2
+
3
+ .ghost-button {
4
+ display: inline-flex;
5
+ align-items: center;
6
+ gap: 8px;
7
+ padding: 4px 0px;
8
+ border: none;
9
+ background: none;
10
+ cursor: pointer;
11
+ transition:
12
+ color 0.15s,
13
+ transform 0.03s;
14
+ }
15
+
16
+ .ghost-button:active {
17
+ transform: scale(0.98);
18
+ }
19
+
20
+ .ghost-button-default {
21
+ color: var(--Primary-Blanc, #fff);
22
+ }
23
+
24
+ .ghost-button-default:hover {
25
+ color: var(--Primary-Blanc, #fff);
26
+ }
27
+
28
+ .ghost-button-variant {
29
+ color: var(--actions-error, #e15151);
30
+ }
31
+
32
+ .ghost-button-variant:hover {
33
+ color: var(--actions-error, #e15151);
34
+ }
35
+
36
+ .ghost-button-icon {
37
+ display: flex;
38
+ align-items: center;
39
+ justify-content: center;
40
+ width: 16px;
41
+ height: 16px;
42
+ padding: 3.333px;
43
+ }
44
+
45
+ .ghost-button-label {
46
+ font-family: "Open Sans", sans-serif;
47
+ font-size: 14px;
48
+ font-style: normal;
49
+ line-height: normal;
50
+ letter-spacing: 0em;
51
+ }
52
+
53
+ /* Styles spécifiques pour variant=false */
54
+ .ghost-button-default .ghost-button-label {
55
+ font-weight: 400;
56
+ color: var(--Primary-Blanc, #fff);
57
+ }
58
+
59
+ /* Styles spécifiques pour variant=true */
60
+ .ghost-button-variant .ghost-button-label {
61
+ font-weight: 400;
62
+ color: var(--actions-error, #e15151);
63
+ }
@@ -0,0 +1,14 @@
1
+ import React from "react";
2
+ import "./GhostButton.css";
3
+ import "../../../styles/global.css";
4
+ export interface GhostButtonProps {
5
+ startIcon?: React.ReactNode;
6
+ endIcon?: React.ReactNode;
7
+ label: string;
8
+ variant?: boolean;
9
+ startIconName?: string;
10
+ endIconName?: string;
11
+ onClick?: () => void;
12
+ }
13
+ declare const GhostButton: React.FC<GhostButtonProps>;
14
+ export default GhostButton;
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ import "./GhostButton.css";
3
+ import "../../../styles/global.css";
4
+ var GhostButton = function (_a) {
5
+ var startIcon = _a.startIcon, endIcon = _a.endIcon, label = _a.label, _b = _a.variant, variant = _b === void 0 ? false : _b, startIconName = _a.startIconName, endIconName = _a.endIconName, onClick = _a.onClick;
6
+ return (React.createElement("button", { className: "ghost-button ".concat(variant ? "ghost-button-variant" : "ghost-button-default"), onClick: onClick },
7
+ startIcon && React.createElement("span", { className: "ghost-button-icon ".concat(startIconName) }),
8
+ React.createElement("span", { className: "ghost-button-label" }, label),
9
+ endIcon && React.createElement("span", { className: "ghost-button-icon ".concat(endIconName) })));
10
+ };
11
+ export default GhostButton;