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
@@ -0,0 +1,98 @@
1
+ .radio-button {
2
+ display: flex;
3
+ align-items: center;
4
+ gap: 8px;
5
+ border: none;
6
+ background: none;
7
+ cursor: pointer;
8
+ transition:
9
+ color 0.15s,
10
+ border-bottom 0.15s;
11
+ }
12
+
13
+ .radio-button-user {
14
+ width: 362px;
15
+ height: 48px;
16
+ padding: 12px 24px;
17
+ flex-shrink: 0;
18
+ border-radius: 16px;
19
+ background: var(--secondary-light-grey, #f4f7fb);
20
+ }
21
+
22
+ .radio-button-user-active {
23
+ background: var(--venom-grey, #e6edf5);
24
+ }
25
+
26
+ .radio-button-hybride {
27
+ display: flex;
28
+ align-items: center;
29
+ gap: 8px;
30
+ }
31
+
32
+ .radio-button-hybride-active {
33
+ display: inline-flex;
34
+ align-items: center;
35
+ gap: 8px;
36
+ }
37
+
38
+ .radio-button-icon {
39
+ display: flex;
40
+ align-items: center;
41
+ justify-content: center;
42
+ border-radius: 50%;
43
+ background: var(--Primary-Blanc, #fff);
44
+ }
45
+
46
+ .radio-button-user .radio-button-icon {
47
+ width: 24px;
48
+ height: 24px;
49
+ border: 1px solid #d1dce7;
50
+ border-radius: 50%;
51
+ }
52
+
53
+ .radio-button-user-active .radio-button-icon {
54
+ width: 24px;
55
+ height: 24px;
56
+ padding: 3px;
57
+ border: 1px solid #d1dce7;
58
+ border-radius: 50%;
59
+ }
60
+
61
+ .radio-button-user-active .radio-button-icon-inner {
62
+ width: 16px;
63
+ height: 16px;
64
+ border-radius: 50%;
65
+ background: var(--primary-blue, #25beeb);
66
+ }
67
+
68
+ .radio-button-hybride .radio-button-icon {
69
+ width: 18px;
70
+ height: 18px;
71
+ border: 1px solid #d1dce7;
72
+ border-radius: 50%;
73
+ }
74
+
75
+ .radio-button-hybride-active .radio-button-icon {
76
+ width: 18px;
77
+ height: 18px;
78
+ padding: 3px;
79
+ border: 0.75px solid #d1dce7;
80
+ border-radius: 50%;
81
+ }
82
+
83
+ .radio-button-hybride-active .radio-button-icon-inner {
84
+ width: 12px;
85
+ height: 12px;
86
+ flex-shrink: 0;
87
+ border-radius: 24px;
88
+ background: var(--primary-blue, #25beeb);
89
+ }
90
+
91
+ .radio-button-label {
92
+ font-family: "Open Sans", sans-serif;
93
+ font-size: 16px;
94
+ font-style: normal;
95
+ font-weight: 600;
96
+ line-height: normal;
97
+ color: var(--Primary-Mid-black, var(--primary-black, #171e25));
98
+ }
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ import "./RadioButton.css";
3
+ import "../../../styles/global.css";
4
+ export interface RadioButtonProps {
5
+ label: string;
6
+ style?: "user" | "hybride";
7
+ isActive: boolean;
8
+ onClick: () => void;
9
+ }
10
+ declare const RadioButton: React.FC<RadioButtonProps>;
11
+ export default RadioButton;
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ import "./RadioButton.css";
3
+ import "../../../styles/global.css";
4
+ var RadioButton = function (_a) {
5
+ var label = _a.label, _b = _a.style, style = _b === void 0 ? "user" : _b, isActive = _a.isActive, onClick = _a.onClick;
6
+ return (React.createElement("button", { className: "radio-button radio-button-".concat(style, " ").concat(isActive ? "radio-button-".concat(style, "-active") : ""), onClick: onClick },
7
+ React.createElement("span", { className: "radio-button-icon" }, isActive && React.createElement("span", { className: "radio-button-icon-inner" })),
8
+ React.createElement("span", { className: "radio-button-label" }, label)));
9
+ };
10
+ export default RadioButton;
@@ -0,0 +1,2 @@
1
+ export { default as RadioButton } from "./RadioButton";
2
+ export type { RadioButtonProps } from "./RadioButton";
@@ -0,0 +1 @@
1
+ export { default as RadioButton } from "./RadioButton";
@@ -0,0 +1,103 @@
1
+ .select-container {
2
+ position: relative;
3
+ }
4
+
5
+ .select {
6
+ display: flex;
7
+ width: 480px;
8
+ padding: 8px 16px;
9
+ justify-content: space-between;
10
+ align-items: center;
11
+ gap: 8px;
12
+ border-radius: 8px;
13
+ background: var(--secondary-light-grey, #f4f7fb);
14
+ cursor: pointer;
15
+ }
16
+
17
+ .select-text {
18
+ color: var(--Primary-Mid-black, var(--primary-black, #171e25));
19
+ font-family: "Open Sans";
20
+ font-size: 14px;
21
+ font-style: normal;
22
+ font-weight: 700;
23
+ line-height: normal;
24
+ white-space: nowrap;
25
+ overflow: hidden;
26
+ text-overflow: ellipsis;
27
+ }
28
+
29
+ .select-icon {
30
+ width: 24px;
31
+ height: 24px;
32
+ flex-shrink: 0;
33
+ display: flex;
34
+ align-items: center;
35
+ justify-content: center;
36
+ padding-top: 4px;
37
+ }
38
+
39
+ .select-list {
40
+ display: none; /* Masquer par défaut */
41
+ flex-direction: column;
42
+ width: 480px;
43
+ background: var(--secondary-light-grey, #f4f7fb);
44
+ border-radius: 8px;
45
+ margin-top: 8px;
46
+ padding: 8px 0;
47
+ color: var(--Primary-Mid-black, var(--primary-black, #171e25));
48
+ font-family: "Open Sans";
49
+ font-size: 14px;
50
+ font-style: normal;
51
+ font-weight: 500;
52
+ line-height: normal;
53
+ max-height: 600px;
54
+ overflow-y: auto;
55
+ position: absolute;
56
+ top: 100%;
57
+ left: 0;
58
+ z-index: 1000;
59
+ }
60
+
61
+ .select-pressed .select-list {
62
+ display: flex;
63
+ opacity: 1;
64
+ transform: translateY(0) scale(1);
65
+ }
66
+
67
+ .select-item {
68
+ display: flex;
69
+ align-items: center;
70
+ padding: 8px 16px;
71
+ cursor: pointer;
72
+ width: 100%;
73
+ }
74
+
75
+ .select-item:hover {
76
+ background: var(--venom-grey-dark, #d1dce8);
77
+ }
78
+
79
+ .select-item .select-item-icon {
80
+ margin-right: 11px;
81
+ visibility: hidden;
82
+ color: var(--bleu-allaw, #0070f3);
83
+ }
84
+
85
+ .select-item.selected .select-item-icon {
86
+ visibility: visible;
87
+ }
88
+
89
+ .select-item.single-select .select-item-icon {
90
+ display: none;
91
+ }
92
+
93
+ .select-item-text {
94
+ white-space: nowrap;
95
+ overflow: hidden;
96
+ text-overflow: ellipsis;
97
+ width: 100%;
98
+ }
99
+
100
+ .error-message {
101
+ padding-top: 4px;
102
+ padding-left: 14px;
103
+ }
@@ -0,0 +1,22 @@
1
+ import React from "react";
2
+ import "./Select.css";
3
+ import "../../../styles/global.css";
4
+ export interface SelectItem {
5
+ label: string;
6
+ value: string;
7
+ }
8
+ export interface SelectProps<T extends string | string[]> {
9
+ items: SelectItem[];
10
+ selectedItem?: T;
11
+ placeholder?: string;
12
+ multiple?: boolean;
13
+ isRequired?: boolean;
14
+ showError?: boolean;
15
+ onChange?: (selected: T) => void;
16
+ onError?: (error: string) => void;
17
+ }
18
+ export interface SelectRef {
19
+ validate: () => boolean;
20
+ }
21
+ declare const Select: React.ForwardRefExoticComponent<SelectProps<string | string[]> & React.RefAttributes<SelectRef>>;
22
+ export default Select;
@@ -0,0 +1,86 @@
1
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
2
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
3
+ if (ar || !(i in from)) {
4
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
5
+ ar[i] = from[i];
6
+ }
7
+ }
8
+ return to.concat(ar || Array.prototype.slice.call(from));
9
+ };
10
+ import React, { useState, useEffect, useRef, useImperativeHandle, forwardRef, } from "react";
11
+ import "./Select.css";
12
+ import "../../../styles/global.css";
13
+ import TinyInfo from "../typography/TinyInfo";
14
+ var Select = forwardRef(function (_a, ref) {
15
+ var _b;
16
+ var items = _a.items, selectedItem = _a.selectedItem, _c = _a.placeholder, placeholder = _c === void 0 ? "Select..." : _c, _d = _a.multiple, multiple = _d === void 0 ? false : _d, _e = _a.isRequired, isRequired = _e === void 0 ? false : _e, _f = _a.showError, showError = _f === void 0 ? false : _f, onChange = _a.onChange, onError = _a.onError;
17
+ var _g = useState(false), isOpen = _g[0], setIsOpen = _g[1];
18
+ var _h = useState(multiple ? [] : selectedItem || ""), selected = _h[0], setSelected = _h[1];
19
+ var _j = useState(""), error = _j[0], setError = _j[1];
20
+ var selectRef = useRef(null);
21
+ useEffect(function () {
22
+ setSelected(multiple ? [] : selectedItem || "");
23
+ }, [selectedItem, multiple]);
24
+ var handleSelect = function (item) {
25
+ var newSelected;
26
+ if (multiple) {
27
+ newSelected = Array.isArray(selected)
28
+ ? selected.includes(item.value)
29
+ ? selected.filter(function (i) { return i !== item.value; })
30
+ : __spreadArray(__spreadArray([], selected, true), [item.value], false)
31
+ : [item.value];
32
+ }
33
+ else {
34
+ newSelected = item.value;
35
+ setIsOpen(false);
36
+ }
37
+ setSelected(newSelected);
38
+ onChange === null || onChange === void 0 ? void 0 : onChange(newSelected);
39
+ validateSelect(newSelected);
40
+ };
41
+ var validateSelect = function (value) {
42
+ var isEmpty = value === "" || (Array.isArray(value) && value.length === 0);
43
+ var errorMessage = isRequired && isEmpty ? "Ce champ est requis" : "";
44
+ setError(errorMessage);
45
+ onError === null || onError === void 0 ? void 0 : onError(errorMessage);
46
+ // console.log(
47
+ // `Select: Validation result - ${errorMessage ? "invalid" : "valid"}`
48
+ // );
49
+ return !errorMessage;
50
+ };
51
+ var toggleOpen = function () {
52
+ setIsOpen(!isOpen);
53
+ };
54
+ var handleClickOutside = function (event) {
55
+ if (selectRef.current &&
56
+ !selectRef.current.contains(event.target)) {
57
+ setIsOpen(false);
58
+ }
59
+ };
60
+ useEffect(function () {
61
+ document.addEventListener("mousedown", handleClickOutside);
62
+ return function () {
63
+ document.removeEventListener("mousedown", handleClickOutside);
64
+ };
65
+ }, []);
66
+ useImperativeHandle(ref, function () { return ({
67
+ validate: function () { return validateSelect(selected); },
68
+ }); });
69
+ return (React.createElement("div", { ref: selectRef, className: "select-container ".concat(isOpen ? "select-pressed" : "") },
70
+ React.createElement("button", { className: "select ".concat(isOpen ? "select-pressed" : "select-default"), onClick: toggleOpen },
71
+ React.createElement("span", { className: "select-text" }, Array.isArray(selected) && selected.length > 0
72
+ ? selected
73
+ .map(function (val) { var _a; return (_a = items.find(function (item) { return item.value === val; })) === null || _a === void 0 ? void 0 : _a.label; })
74
+ .join(", ")
75
+ : !Array.isArray(selected) && selected
76
+ ? (_b = items.find(function (item) { return item.value === selected; })) === null || _b === void 0 ? void 0 : _b.label
77
+ : placeholder),
78
+ React.createElement("span", { className: "select-icon ".concat(isOpen ? "allaw-icon-chevron-up" : "allaw-icon-chevron-down") })),
79
+ isOpen && (React.createElement("div", { className: "select-list" }, items.map(function (item) { return (React.createElement("div", { key: item.value, className: "select-item ".concat(Array.isArray(selected) && selected.includes(item.value) ? "selected" : "", " ").concat(!multiple ? "single-select" : ""), onClick: function () { return handleSelect(item); } },
80
+ multiple && (React.createElement("span", { className: "select-item-icon allaw-icon-check" })),
81
+ React.createElement("span", { className: "select-item-text" }, item.label))); }))),
82
+ isRequired && showError && error && (React.createElement("div", { className: "error-message" },
83
+ React.createElement(TinyInfo, { variant: "medium12", color: "actions-error", text: error })))));
84
+ });
85
+ Select.displayName = "Select";
86
+ export default Select;
@@ -0,0 +1,2 @@
1
+ export { default } from "./Select";
2
+ export type { SelectItem, SelectProps, SelectRef } from "./Select";
@@ -0,0 +1 @@
1
+ export { default } from "./Select";
@@ -1,4 +1,7 @@
1
+ @import "../../../styles/colors.css";
2
+
1
3
  .appointement-status-tag {
4
+ height: 32px;
2
5
  display: inline-block;
3
6
  border-radius: 8px;
4
7
  text-align: center;
@@ -21,37 +24,134 @@
21
24
  line-height: 16.34px;
22
25
  }
23
26
 
27
+ /* Status confirmed */
24
28
  .status-confirmed {
25
- background-color: #daf6e9;
26
- color: #29a36a;
29
+ display: inline-flex;
30
+ padding: 8px;
31
+ justify-content: center;
32
+ align-items: center;
33
+ gap: 8px;
34
+ flex-shrink: 0;
35
+ border-radius: 8px;
36
+ background: var(--tag-green-light, #daf6e9);
37
+ color: var(--Tags-Vert, #29a36a);
27
38
  }
28
39
 
40
+ /* Status pending */
29
41
  .status-pending {
30
- background-color: #fdf2f2;
31
- color: #e15151;
42
+ display: inline-flex;
43
+ padding: 8px;
44
+ justify-content: center;
45
+ align-items: center;
46
+ gap: 8px;
47
+ flex-shrink: 0;
48
+ border-radius: 8px;
49
+ background: var(--tag-red-light, #fdf2f2);
50
+ color: var(--Tags-Rouge, #e15151);
51
+ text-align: right;
52
+ font-family: "Open Sans";
53
+ font-size: 12px;
54
+ font-style: normal;
55
+ font-weight: 600;
56
+ line-height: normal;
32
57
  }
33
58
 
59
+ /* Status available */
34
60
  .status-available {
35
- background-color: #daebfb;
36
- color: #1985e8;
61
+ display: inline-flex;
62
+ padding: 8px;
63
+ justify-content: center;
64
+ align-items: center;
65
+ gap: 8px;
66
+ flex-shrink: 0;
67
+ border-radius: 8px;
68
+ background: var(--tag-blue-light, #daebfb);
69
+ color: var(--Tags-Bleu-fonc, var(--tag-blue, #1985e8));
70
+ text-align: right;
71
+ font-family: "Open Sans";
72
+ font-size: 12px;
73
+ font-style: normal;
74
+ font-weight: 600;
75
+ line-height: normal;
76
+ }
77
+
78
+ /* Status unavailable */
79
+ .status-unavailable {
80
+ display: inline-flex;
81
+ padding: 8px;
82
+ justify-content: center;
83
+ align-items: center;
84
+ gap: 8px;
85
+ flex-shrink: 0;
86
+ border-radius: 8px;
87
+ background: var(--secondary-light-grey, #f4f7fb);
88
+ color: var(--Tags-Mid-grey, var(--light-grey, #728ea7));
89
+ text-align: right;
90
+ font-family: "Open Sans";
91
+ font-size: 12px;
92
+ font-style: normal;
93
+ font-weight: 600;
94
+ line-height: normal;
37
95
  }
38
96
 
39
- .status-unavailable,
97
+ /* Status cancelled */
40
98
  .status-cancelled {
41
- background-color: #f4f7fb;
42
- color: #728ea7;
99
+ display: inline-flex;
100
+ padding: 8px;
101
+ justify-content: center;
102
+ align-items: center;
103
+ gap: 8px;
104
+ flex-shrink: 0;
105
+ border-radius: 8px;
106
+ background: var(--secondary-light-grey, #f4f7fb);
107
+ color: var(--Tags-Mid-grey, var(--light-grey, #728ea7));
108
+ text-align: right;
109
+ font-family: "Open Sans";
110
+ font-size: 12px;
111
+ font-style: normal;
112
+ font-weight: 600;
113
+ line-height: normal;
43
114
  }
44
115
 
116
+ /* Status passed */
45
117
  .status-passed {
46
- background-color: #dee8f2;
47
- color: #728ea7;
118
+ display: inline-flex;
119
+ padding: 8px;
120
+ justify-content: center;
121
+ align-items: center;
122
+ gap: 8px;
123
+ flex-shrink: 0;
124
+ border-radius: 8px;
125
+ background: var(--tag-grey-light, #dee8f2);
126
+ color: var(--Tags-Mid-grey, var(--light-grey, #728ea7));
127
+ text-align: right;
128
+ font-family: "Open Sans";
129
+ font-size: 12px;
130
+ font-style: normal;
131
+ font-weight: 600;
132
+ line-height: normal;
48
133
  }
49
134
 
135
+ /* Status refused */
50
136
  .status-refused {
51
- background-color: #646464;
52
- color: white;
137
+ display: inline-flex;
138
+ padding: 8px;
139
+ justify-content: center;
140
+ align-items: center;
141
+ gap: 8px;
142
+ flex-shrink: 0;
143
+ border-radius: 8px;
144
+ background: #646464;
145
+ color: var(--Primary-Blanc, #fff);
146
+ text-align: right;
147
+ font-family: "Open Sans";
148
+ font-size: 12px;
149
+ font-style: normal;
150
+ font-weight: 600;
151
+ line-height: normal;
53
152
  }
54
153
 
154
+ /* Status cancelled-big */
55
155
  .status-cancelled-big {
56
156
  background-color: #fdf2f2;
57
157
  color: #e15151;
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
2
  import "./AppointementStatusTag.css";
3
- interface AppointementStatusTagProps {
3
+ export interface AppointementStatusTagProps {
4
4
  status: "confirmed" | "pending" | "available" | "unavailable" | "cancelled" | "passed" | "refused";
5
5
  variant?: "default" | "big";
6
6
  }
@@ -0,0 +1,26 @@
1
+ @import "../../../styles/colors.css";
2
+
3
+ .folder-status-tag {
4
+ display: inline-flex;
5
+ padding: 8px;
6
+ justify-content: center;
7
+ align-items: center;
8
+ gap: 8px;
9
+ border-radius: 8px;
10
+ font-family: "Open Sans", sans-serif;
11
+ font-size: 14px;
12
+ font-style: normal;
13
+ font-weight: 700;
14
+ line-height: normal;
15
+ text-align: right;
16
+ }
17
+
18
+ .folder-status-tag.open {
19
+ background: var(--tag-green-light, #daf6e9);
20
+ color: var(--Tags-Vert, #29a36a);
21
+ }
22
+
23
+ .folder-status-tag.closed {
24
+ background: var(--tag-red-light, #fdf2f2);
25
+ color: var(--Tags-Rouge, #e15151);
26
+ }
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ import "./FolderStatusTag.css";
3
+ export interface FolderStatusTagProps {
4
+ isClosed?: boolean;
5
+ }
6
+ declare const FolderStatusTag: React.FC<FolderStatusTagProps>;
7
+ export default FolderStatusTag;
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ import "./FolderStatusTag.css";
3
+ var FolderStatusTag = function (_a) {
4
+ var _b = _a.isClosed, isClosed = _b === void 0 ? false : _b;
5
+ var label = isClosed ? "DOSSIER CLÔS" : "DOSSIER OUVERT";
6
+ return (React.createElement("div", { className: "folder-status-tag ".concat(isClosed ? "closed" : "open") }, label));
7
+ };
8
+ export default FolderStatusTag;
@@ -0,0 +1,72 @@
1
+ .other-status-tag {
2
+ height: 26px;
3
+ display: inline-flex;
4
+ padding: 8px 10px;
5
+ justify-content: center;
6
+ align-items: center;
7
+ gap: 10px;
8
+ border-radius: 8px;
9
+ font-family: "Open Sans", sans-serif;
10
+ font-size: 14px;
11
+ font-style: normal;
12
+ font-weight: 600;
13
+ line-height: normal;
14
+ text-align: center;
15
+ }
16
+
17
+ .other-status-tag.readonly {
18
+ background: var(--tag-white, #eef5fc);
19
+ color: var(--Primary-Dark-grey, var(--dark-grey, #456073));
20
+ }
21
+
22
+ .other-status-tag.editable {
23
+ height: 35px;
24
+ padding: 8px;
25
+ gap: 4px;
26
+ flex-shrink: 0;
27
+ border: 1px solid #000;
28
+ background: #fff;
29
+ color: var(--Primary-Mid-black, var(--primary-black, #171e25));
30
+ font-weight: 400;
31
+ cursor: pointer;
32
+ }
33
+
34
+ .other-status-tag.editable:hover {
35
+ background: rgba(255, 255, 255, 0.6);
36
+ }
37
+
38
+ .other-status-tag.editable .icon {
39
+ display: flex;
40
+ width: 16px;
41
+ height: 16px;
42
+ padding: 3.333px;
43
+ justify-content: center;
44
+ align-items: center;
45
+ font-size: 11px;
46
+ }
47
+
48
+ .other-status-tag.information {
49
+ height: 25px;
50
+ padding: 8px;
51
+ gap: 4px;
52
+ flex-shrink: 0;
53
+ border-radius: 8px;
54
+ border: 1px solid var(--tag-blue, #1985e8);
55
+ color: var(--tag-blue, #1985e8);
56
+ text-align: center;
57
+ font-family: "Open Sans";
58
+ font-size: 12px;
59
+ font-style: normal;
60
+ font-weight: 400;
61
+ line-height: normal;
62
+ letter-spacing: 0.12px;
63
+ }
64
+
65
+ .other-status-tag.information .icon {
66
+ display: flex;
67
+ width: 16px;
68
+ height: 16px;
69
+ padding: 3.333px;
70
+ justify-content: center;
71
+ align-items: center;
72
+ }
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ import "./OtherStatusTag.css";
3
+ export interface OtherStatusTagProps {
4
+ label?: string;
5
+ type?: "readonly" | "editable" | "information";
6
+ startIcon?: boolean;
7
+ startIconName?: string;
8
+ }
9
+ declare const OtherStatusTag: React.FC<OtherStatusTagProps>;
10
+ export default OtherStatusTag;
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ import "./OtherStatusTag.css";
3
+ var OtherStatusTag = function (_a) {
4
+ var _b = _a.label, label = _b === void 0 ? "Tags" : _b, _c = _a.type, type = _c === void 0 ? "readonly" : _c, _d = _a.startIcon, startIcon = _d === void 0 ? false : _d, _e = _a.startIconName, startIconName = _e === void 0 ? "allaw-icon-pmr" : _e;
5
+ return (React.createElement("div", { className: "other-status-tag ".concat(type) },
6
+ type === "information" && startIcon && (React.createElement("span", { className: "icon ".concat(startIconName) })),
7
+ label,
8
+ type === "editable" && React.createElement("span", { className: "icon allaw-icon-close" })));
9
+ };
10
+ export default OtherStatusTag;
@@ -0,0 +1,6 @@
1
+ export { default as AppointementStatusTag } from "./AppointementStatusTag";
2
+ export { default as FolderStatusTag } from "./FolderStatusTag";
3
+ export { default as OtherStatusTag } from "./OtherStatusTag";
4
+ export type { AppointementStatusTagProps } from "./AppointementStatusTag";
5
+ export type { FolderStatusTagProps } from "./FolderStatusTag";
6
+ export type { OtherStatusTagProps } from "./OtherStatusTag";
@@ -0,0 +1,3 @@
1
+ export { default as AppointementStatusTag } from "./AppointementStatusTag";
2
+ export { default as FolderStatusTag } from "./FolderStatusTag";
3
+ export { default as OtherStatusTag } from "./OtherStatusTag";