allaw-ui 1.1.1 → 2.0.1

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 (222) hide show
  1. package/dist/assets/allaw-font.eot +0 -0
  2. package/dist/assets/allaw-font.svg +15 -0
  3. package/dist/assets/allaw-font.ttf +0 -0
  4. package/dist/assets/allaw-font.woff +0 -0
  5. package/dist/components/atoms/buttons/ActionCircleButton.stories.d.ts +35 -0
  6. package/dist/components/atoms/buttons/ActionCircleButton.stories.js +54 -0
  7. package/dist/components/atoms/buttons/AgendaSlot.stories.d.ts +41 -0
  8. package/dist/components/atoms/buttons/AgendaSlot.stories.js +77 -0
  9. package/dist/components/atoms/buttons/FavoriteToggle.stories.d.ts +23 -0
  10. package/dist/components/atoms/buttons/FavoriteToggle.stories.js +61 -0
  11. package/dist/components/atoms/buttons/FilterButton.stories.d.ts +36 -0
  12. package/dist/components/atoms/buttons/FilterButton.stories.js +56 -0
  13. package/dist/components/atoms/buttons/FilterButtonPrimary.stories.d.ts +7 -0
  14. package/dist/components/atoms/buttons/FilterButtonPrimary.stories.js +26 -0
  15. package/dist/components/atoms/buttons/GhostButton.stories.d.ts +79 -0
  16. package/dist/components/atoms/buttons/GhostButton.stories.js +95 -0
  17. package/dist/components/atoms/buttons/IconButton.js +2 -2
  18. package/dist/components/atoms/buttons/IconButton.stories.d.ts +48 -0
  19. package/dist/components/atoms/buttons/IconButton.stories.js +76 -0
  20. package/dist/components/atoms/buttons/OAuthProviderButton.css +25 -23
  21. package/dist/components/atoms/buttons/OAuthProviderButton.d.ts +2 -2
  22. package/dist/components/atoms/buttons/OAuthProviderButton.js +43 -10
  23. package/dist/components/atoms/buttons/OAuthProviderButton.stories.d.ts +56 -0
  24. package/dist/components/atoms/buttons/OAuthProviderButton.stories.js +130 -0
  25. package/dist/components/atoms/buttons/PendingDocuments.d.ts +0 -1
  26. package/dist/components/atoms/buttons/PendingDocuments.js +6 -4
  27. package/dist/components/atoms/buttons/PendingDocuments.stories.d.ts +52 -0
  28. package/dist/components/atoms/buttons/PendingDocuments.stories.js +67 -0
  29. package/dist/components/atoms/buttons/PrimaryButton.css +1 -0
  30. package/dist/components/atoms/buttons/PrimaryButton.stories.d.ts +86 -0
  31. package/dist/components/atoms/buttons/PrimaryButton.stories.js +147 -0
  32. package/dist/components/atoms/buttons/SecondaryButton.stories.d.ts +72 -0
  33. package/dist/components/atoms/buttons/SecondaryButton.stories.js +149 -0
  34. package/dist/components/atoms/buttons/TabNavigation.css +2 -0
  35. package/dist/components/atoms/buttons/TabNavigation.stories.d.ts +44 -0
  36. package/dist/components/atoms/buttons/TabNavigation.stories.js +66 -0
  37. package/dist/components/atoms/buttons/TertiaryButton.stories.d.ts +42 -0
  38. package/dist/components/atoms/buttons/TertiaryButton.stories.js +60 -0
  39. package/dist/components/atoms/buttons/{PendingDocuments.css → pendingDocuments.module.css} +9 -8
  40. package/dist/components/atoms/checkboxes/Checkbox.stories.d.ts +77 -0
  41. package/dist/components/atoms/checkboxes/Checkbox.stories.js +123 -0
  42. package/dist/components/atoms/datepickers/Datepicker.js +1 -0
  43. package/dist/components/atoms/datepickers/Datepicker.stories.d.ts +90 -0
  44. package/dist/components/atoms/datepickers/Datepicker.stories.js +67 -0
  45. package/dist/components/atoms/filter/Filter.stories.d.ts +9 -0
  46. package/dist/components/atoms/filter/Filter.stories.js +77 -0
  47. package/dist/components/atoms/filters/SingleFilter.stories.d.ts +7 -0
  48. package/dist/components/atoms/filters/SingleFilter.stories.js +34 -0
  49. package/dist/components/atoms/inputs/Input.stories.d.ts +62 -0
  50. package/dist/components/atoms/inputs/Input.stories.js +101 -0
  51. package/dist/components/atoms/inputs/SearchBar.stories.d.ts +54 -0
  52. package/dist/components/atoms/inputs/SearchBar.stories.js +67 -0
  53. package/dist/components/atoms/inputs/TextArea.stories.d.ts +70 -0
  54. package/dist/components/atoms/inputs/TextArea.stories.js +113 -0
  55. package/dist/components/atoms/progressBars/ProgressBar.css +2 -3
  56. package/dist/components/atoms/progressBars/ProgressBar.js +2 -3
  57. package/dist/components/atoms/progressBars/ProgressBar.stories.d.ts +83 -0
  58. package/dist/components/atoms/progressBars/ProgressBar.stories.js +88 -0
  59. package/dist/components/atoms/radios/RadioButton.stories.d.ts +36 -0
  60. package/dist/components/atoms/radios/RadioButton.stories.js +75 -0
  61. package/dist/components/atoms/selects/ComboBox.css +1 -1
  62. package/dist/components/atoms/selects/ComboBox.stories.d.ts +94 -0
  63. package/dist/components/atoms/selects/ComboBox.stories.js +122 -0
  64. package/dist/components/atoms/selects/Select.d.ts +0 -1
  65. package/dist/components/atoms/selects/Select.js +47 -20
  66. package/dist/components/atoms/selects/{Select.css → Select.module.css} +12 -13
  67. package/dist/components/atoms/selects/Select.stories.d.ts +86 -0
  68. package/dist/components/atoms/selects/Select.stories.js +154 -0
  69. package/dist/components/atoms/selects/SelectableListItem.d.ts +13 -0
  70. package/dist/components/atoms/selects/SelectableListItem.js +18 -0
  71. package/dist/components/atoms/selects/SelectableListItem.module.css +157 -0
  72. package/dist/components/atoms/selects/SelectableListItem.stories.d.ts +33 -0
  73. package/dist/components/atoms/selects/SelectableListItem.stories.js +53 -0
  74. package/dist/components/atoms/selects/index.d.ts +2 -0
  75. package/dist/components/atoms/selects/index.js +1 -0
  76. package/dist/components/atoms/tags/AppointementStatusTag.stories.d.ts +17 -0
  77. package/dist/components/atoms/tags/AppointementStatusTag.stories.js +70 -0
  78. package/dist/components/atoms/tags/FolderStatusTag.css +4 -4
  79. package/dist/components/atoms/tags/FolderStatusTag.stories.d.ts +28 -0
  80. package/dist/components/atoms/tags/FolderStatusTag.stories.js +51 -0
  81. package/dist/components/atoms/tags/OtherStatusTag.css +20 -1
  82. package/dist/components/atoms/tags/OtherStatusTag.d.ts +1 -0
  83. package/dist/components/atoms/tags/OtherStatusTag.js +2 -2
  84. package/dist/components/atoms/tags/OtherStatusTag.stories.d.ts +97 -0
  85. package/dist/components/atoms/tags/OtherStatusTag.stories.js +151 -0
  86. package/dist/components/atoms/typography/CardDate.stories.d.ts +119 -0
  87. package/dist/components/atoms/typography/CardDate.stories.js +103 -0
  88. package/dist/components/atoms/typography/Heading.js +1 -1
  89. package/dist/components/atoms/typography/Heading.stories.d.ts +45 -0
  90. package/dist/components/atoms/typography/Heading.stories.js +90 -0
  91. package/dist/components/atoms/typography/Link.d.ts +13 -0
  92. package/dist/components/atoms/typography/Link.js +35 -0
  93. package/dist/components/atoms/typography/Link.module.css +60 -0
  94. package/dist/components/atoms/typography/Link.stories.d.ts +57 -0
  95. package/dist/components/atoms/typography/Link.stories.js +105 -0
  96. package/dist/components/atoms/typography/Paragraph.d.ts +2 -0
  97. package/dist/components/atoms/typography/Paragraph.js +3 -3
  98. package/dist/components/atoms/typography/Paragraph.stories.d.ts +56 -0
  99. package/dist/components/atoms/typography/Paragraph.stories.js +97 -0
  100. package/dist/components/atoms/typography/SmallTitle.stories.d.ts +42 -0
  101. package/dist/components/atoms/typography/SmallTitle.stories.js +72 -0
  102. package/dist/components/atoms/typography/Subtitle.stories.d.ts +40 -0
  103. package/dist/components/atoms/typography/Subtitle.stories.js +60 -0
  104. package/dist/components/atoms/typography/TinyInfo.d.ts +1 -0
  105. package/dist/components/atoms/typography/TinyInfo.js +2 -2
  106. package/dist/components/atoms/typography/TinyInfo.stories.d.ts +52 -0
  107. package/dist/components/atoms/typography/TinyInfo.stories.js +97 -0
  108. package/dist/components/atoms/typography/index.d.ts +2 -0
  109. package/dist/components/atoms/typography/index.js +1 -0
  110. package/dist/components/atoms/uiVariables/AnimatedBorder.css +55 -0
  111. package/dist/components/atoms/uiVariables/AnimatedBorder.d.ts +4 -0
  112. package/dist/components/atoms/uiVariables/AnimatedBorder.js +11 -0
  113. package/dist/components/atoms/uiVariables/AnimatedBorder.stories.d.ts +17 -0
  114. package/dist/components/atoms/uiVariables/AnimatedBorder.stories.js +20 -0
  115. package/dist/components/atoms/uiVariables/BorderRadius.stories.d.ts +18 -0
  116. package/dist/components/atoms/uiVariables/BorderRadius.stories.js +34 -0
  117. package/dist/components/atoms/uiVariables/Shadows.stories.d.ts +18 -0
  118. package/dist/components/atoms/uiVariables/Shadows.stories.js +34 -0
  119. package/dist/components/atoms/uiVariables/Strokes.stories.d.ts +18 -0
  120. package/dist/components/atoms/uiVariables/Strokes.stories.js +34 -0
  121. package/dist/components/molecules/appointmentSlot/AppointmentSlot.stories.d.ts +70 -0
  122. package/dist/components/molecules/appointmentSlot/AppointmentSlot.stories.js +186 -0
  123. package/dist/components/molecules/billingCount/BillingCount.stories.d.ts +21 -0
  124. package/dist/components/molecules/billingCount/BillingCount.stories.js +44 -0
  125. package/dist/components/molecules/blogCard/BlogCard.d.ts +13 -0
  126. package/dist/components/molecules/blogCard/BlogCard.js +33 -0
  127. package/dist/components/molecules/blogCard/BlogCard.module.css +148 -0
  128. package/dist/components/molecules/blogCard/BlogCard.stories.d.ts +10 -0
  129. package/dist/components/molecules/blogCard/BlogCard.stories.js +33 -0
  130. package/dist/components/molecules/blogCard/index.d.ts +2 -0
  131. package/dist/components/molecules/blogCard/index.js +1 -0
  132. package/dist/components/molecules/blogFooter/BlogFooter.d.ts +12 -0
  133. package/dist/components/molecules/blogFooter/BlogFooter.js +14 -0
  134. package/dist/components/molecules/blogFooter/BlogFooter.module.css +48 -0
  135. package/dist/components/molecules/blogFooter/BlogFooter.stories.d.ts +60 -0
  136. package/dist/components/molecules/blogFooter/BlogFooter.stories.js +67 -0
  137. package/dist/components/molecules/blogFooter/index.d.ts +2 -0
  138. package/dist/components/molecules/blogFooter/index.js +1 -0
  139. package/dist/components/molecules/blogHeader/BlogHeader.d.ts +11 -0
  140. package/dist/components/molecules/blogHeader/BlogHeader.js +21 -0
  141. package/dist/components/molecules/blogHeader/BlogHeader.module.css +150 -0
  142. package/dist/components/molecules/blogHeader/BlogHeader.stories.d.ts +49 -0
  143. package/dist/components/molecules/blogHeader/BlogHeader.stories.js +63 -0
  144. package/dist/components/molecules/blogHeader/index.d.ts +2 -0
  145. package/dist/components/molecules/blogHeader/index.js +1 -0
  146. package/dist/components/molecules/blogText/BlogText.d.ts +7 -0
  147. package/dist/components/molecules/blogText/BlogText.js +11 -0
  148. package/dist/components/molecules/blogText/BlogText.module.css +59 -0
  149. package/dist/components/molecules/blogText/BlogText.stories.d.ts +31 -0
  150. package/dist/components/molecules/blogText/BlogText.stories.js +51 -0
  151. package/dist/components/molecules/blogText/index.d.ts +2 -0
  152. package/dist/components/molecules/blogText/index.js +1 -0
  153. package/dist/components/molecules/blogTextImageBlock/BlogTextImageBlock.d.ts +8 -0
  154. package/dist/components/molecules/blogTextImageBlock/BlogTextImageBlock.js +15 -0
  155. package/dist/components/molecules/blogTextImageBlock/BlogTextImageBlock.module.css +108 -0
  156. package/dist/components/molecules/blogTextImageBlock/BlogTextImageBlock.stories.d.ts +37 -0
  157. package/dist/components/molecules/blogTextImageBlock/BlogTextImageBlock.stories.js +58 -0
  158. package/dist/components/molecules/blogTextImageBlock/index.d.ts +2 -0
  159. package/dist/components/molecules/blogTextImageBlock/index.js +1 -0
  160. package/dist/components/molecules/breadcrumb/Breadcrumb.stories.d.ts +24 -0
  161. package/dist/components/molecules/breadcrumb/Breadcrumb.stories.js +54 -0
  162. package/dist/components/molecules/caseCard/CaseCard.stories.d.ts +114 -0
  163. package/dist/components/molecules/caseCard/CaseCard.stories.js +200 -0
  164. package/dist/components/molecules/caseCardCompact/CaseCardCompact.js +2 -1
  165. package/dist/components/molecules/caseCardCompact/CaseCardCompact.stories.d.ts +11 -0
  166. package/dist/components/molecules/caseCardCompact/CaseCardCompact.stories.js +59 -0
  167. package/dist/components/molecules/caseCardCompact/caseCardCompact.css +5 -2
  168. package/dist/components/molecules/caseLinkCard/CaseCardLink.stories.d.ts +9 -0
  169. package/dist/components/molecules/caseLinkCard/CaseCardLink.stories.js +37 -0
  170. package/dist/components/molecules/caseLinkCard/CaseLinkCard.css +2 -4
  171. package/dist/components/molecules/checkboxForm/CheckboxForm.d.ts +1 -0
  172. package/dist/components/molecules/checkboxForm/CheckboxForm.js +2 -2
  173. package/dist/components/molecules/checkboxForm/CheckboxForm.stories.d.ts +90 -0
  174. package/dist/components/molecules/checkboxForm/CheckboxForm.stories.js +149 -0
  175. package/dist/components/molecules/clientLinkCard/ClientLinkCard.stories.d.ts +11 -0
  176. package/dist/components/molecules/clientLinkCard/ClientLinkCard.stories.js +59 -0
  177. package/dist/components/molecules/contactCard/ContactCard.d.ts +3 -2
  178. package/dist/components/molecules/contactCard/ContactCard.js +23 -24
  179. package/dist/components/molecules/contactCard/ContactCard.stories.d.ts +68 -0
  180. package/dist/components/molecules/contactCard/ContactCard.stories.js +80 -0
  181. package/dist/components/molecules/contactCard/DetailedContactCard.stories.d.ts +94 -0
  182. package/dist/components/molecules/contactCard/DetailedContactCard.stories.js +83 -0
  183. package/dist/components/molecules/contactCard/{ContactCard.css → contactCard.module.css} +34 -28
  184. package/dist/components/molecules/datepickerForm/DatepickerForm.stories.d.ts +164 -0
  185. package/dist/components/molecules/datepickerForm/DatepickerForm.stories.js +113 -0
  186. package/dist/components/molecules/documentCard/DocumentCard.css +4 -1
  187. package/dist/components/molecules/documentCard/DocumentCard.d.ts +3 -2
  188. package/dist/components/molecules/documentCard/DocumentCard.js +45 -7
  189. package/dist/components/molecules/documentCard/DocumentCard.stories.d.ts +71 -0
  190. package/dist/components/molecules/documentCard/DocumentCard.stories.js +100 -0
  191. package/dist/components/molecules/employeeCard/EmployeeCard.stories.d.ts +74 -0
  192. package/dist/components/molecules/employeeCard/EmployeeCard.stories.js +65 -0
  193. package/dist/components/molecules/loadingBox/LoadingBox.stories.d.ts +54 -0
  194. package/dist/components/molecules/loadingBox/LoadingBox.stories.js +128 -0
  195. package/dist/components/molecules/pagination/Pagination.stories.d.ts +44 -0
  196. package/dist/components/molecules/pagination/Pagination.stories.js +59 -0
  197. package/dist/components/molecules/proCard/ProCard.js +0 -4
  198. package/dist/components/molecules/proCard/ProCard.stories.d.ts +49 -0
  199. package/dist/components/molecules/proCard/ProCard.stories.js +69 -0
  200. package/dist/components/molecules/radioForm/RadioForm.stories.d.ts +27 -0
  201. package/dist/components/molecules/radioForm/RadioForm.stories.js +52 -0
  202. package/dist/components/molecules/selectForm/SelectForm.stories.d.ts +58 -0
  203. package/dist/components/molecules/selectForm/SelectForm.stories.js +96 -0
  204. package/dist/components/molecules/stepper/Stepper.css +17 -4
  205. package/dist/components/molecules/stepper/Stepper.stories.d.ts +42 -0
  206. package/dist/components/molecules/stepper/Stepper.stories.js +132 -0
  207. package/dist/index.d.ts +14 -1
  208. package/dist/index.js +8 -1
  209. package/dist/stories/Header.d.ts +13 -0
  210. package/dist/stories/Header.js +20 -0
  211. package/dist/stories/Header.stories.d.ts +18 -0
  212. package/dist/stories/Header.stories.js +26 -0
  213. package/dist/stories/Page.d.ts +3 -0
  214. package/dist/stories/Page.js +37 -0
  215. package/dist/stories/Page.stories.d.ts +12 -0
  216. package/dist/stories/Page.stories.js +76 -0
  217. package/dist/stories/header.css +32 -0
  218. package/dist/stories/page.css +69 -0
  219. package/dist/styles/colors.css +2 -0
  220. package/dist/styles/colors.module.css +107 -0
  221. package/dist/styles/icons.css +76 -107
  222. package/package.json +16 -14
@@ -0,0 +1,75 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import React, { useState } from "react";
13
+ import RadioButton from "./RadioButton";
14
+ import "../../../styles/global.css";
15
+ export var ActionsData = {
16
+ onClick: { action: "clicked" },
17
+ };
18
+ export default {
19
+ title: "Components/Atoms/Radios/RadioButton",
20
+ component: RadioButton,
21
+ tags: ["autodocs"],
22
+ excludeStories: /.*Data$/,
23
+ args: __assign({}, ActionsData),
24
+ argTypes: {
25
+ style: {
26
+ control: {
27
+ type: "radio",
28
+ options: ["user", "hybride"],
29
+ },
30
+ },
31
+ },
32
+ parameters: {
33
+ backgrounds: {
34
+ default: "light",
35
+ values: [
36
+ { name: "light", value: "#ffffff" },
37
+ { name: "grey", value: "#728ea7" },
38
+ { name: "figma", value: "#404040" },
39
+ { name: "dark", value: "#171e25" },
40
+ ],
41
+ },
42
+ },
43
+ };
44
+ var Template = function (args) {
45
+ var _a = useState(false), isActive = _a[0], setIsActive = _a[1];
46
+ var handleClick = function () {
47
+ setIsActive(!isActive);
48
+ args.onClick();
49
+ };
50
+ return React.createElement(RadioButton, __assign({}, args, { isActive: isActive, onClick: handleClick }));
51
+ };
52
+ export var UserDefault = Template.bind({});
53
+ UserDefault.args = {
54
+ label: "Option 2",
55
+ style: "user",
56
+ isActive: false,
57
+ };
58
+ export var UserActive = Template.bind({});
59
+ UserActive.args = {
60
+ label: "Option 2",
61
+ style: "user",
62
+ isActive: true,
63
+ };
64
+ export var HybrideDefault = Template.bind({});
65
+ HybrideDefault.args = {
66
+ label: "Option 2",
67
+ style: "hybride",
68
+ isActive: false,
69
+ };
70
+ export var HybrideActive = Template.bind({});
71
+ HybrideActive.args = {
72
+ label: "Option 2",
73
+ style: "hybride",
74
+ isActive: true,
75
+ };
@@ -33,7 +33,7 @@
33
33
  cursor: pointer;
34
34
  outline: none;
35
35
  font-family: "Open Sans";
36
- font-size: 14px;
36
+ font-size: 16px;
37
37
  font-style: normal;
38
38
  font-weight: 500;
39
39
  line-height: normal;
@@ -0,0 +1,94 @@
1
+ export const ActionsData: {};
2
+ declare namespace _default {
3
+ export let title: string;
4
+ export { ComboBox as component };
5
+ export let tags: string[];
6
+ export let excludeStories: RegExp;
7
+ export let args: {};
8
+ export namespace argTypes {
9
+ export namespace items {
10
+ namespace control {
11
+ let type: string;
12
+ }
13
+ }
14
+ export namespace placeholder {
15
+ export namespace control_1 {
16
+ let type_1: string;
17
+ export { type_1 as type };
18
+ }
19
+ export { control_1 as control };
20
+ }
21
+ export namespace isRequired {
22
+ export namespace control_2 {
23
+ let type_2: string;
24
+ export { type_2 as type };
25
+ }
26
+ export { control_2 as control };
27
+ }
28
+ export namespace selectedItem {
29
+ export namespace control_3 {
30
+ let type_3: string;
31
+ export { type_3 as type };
32
+ }
33
+ export { control_3 as control };
34
+ }
35
+ export namespace onChange {
36
+ namespace table {
37
+ let disable: boolean;
38
+ }
39
+ }
40
+ export namespace width {
41
+ export namespace control_4 {
42
+ let type_4: string;
43
+ export { type_4 as type };
44
+ export let min: number;
45
+ export let max: number;
46
+ }
47
+ export { control_4 as control };
48
+ }
49
+ export namespace openOnMount {
50
+ export namespace control_5 {
51
+ let type_5: string;
52
+ export { type_5 as type };
53
+ }
54
+ export { control_5 as control };
55
+ }
56
+ export namespace title_1 {
57
+ export namespace control_6 {
58
+ let type_6: string;
59
+ export { type_6 as type };
60
+ }
61
+ export { control_6 as control };
62
+ }
63
+ export { title_1 as title };
64
+ }
65
+ export namespace parameters {
66
+ namespace backgrounds {
67
+ let _default: string;
68
+ export { _default as default };
69
+ export let values: {
70
+ name: string;
71
+ value: string;
72
+ }[];
73
+ }
74
+ let layout: string;
75
+ namespace viewport {
76
+ namespace viewports {
77
+ namespace responsive {
78
+ let name: string;
79
+ namespace styles {
80
+ let height: string;
81
+ }
82
+ }
83
+ }
84
+ let defaultViewport: string;
85
+ }
86
+ }
87
+ }
88
+ export default _default;
89
+ export const Default: any;
90
+ export const Pressed: any;
91
+ export const Required: any;
92
+ export const CustomWidth: any;
93
+ export const OpenOnMount: any;
94
+ import ComboBox from "./ComboBox";
@@ -0,0 +1,122 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ // ComboBox.stories.jsx
13
+ import React, { useState } from "react";
14
+ import ComboBox from "./ComboBox";
15
+ import "../../../styles/global.css";
16
+ export var ActionsData = {};
17
+ export default {
18
+ title: "Components/Atoms/selects/ComboBox",
19
+ component: ComboBox,
20
+ tags: ["autodocs"],
21
+ excludeStories: /.*Data$/,
22
+ args: __assign({}, ActionsData),
23
+ argTypes: {
24
+ items: {
25
+ control: {
26
+ type: "array",
27
+ },
28
+ },
29
+ placeholder: {
30
+ control: {
31
+ type: "text",
32
+ },
33
+ },
34
+ isRequired: {
35
+ control: {
36
+ type: "boolean",
37
+ },
38
+ },
39
+ selectedItem: {
40
+ control: {
41
+ type: "text",
42
+ },
43
+ },
44
+ onChange: {
45
+ table: {
46
+ disable: true,
47
+ },
48
+ },
49
+ width: {
50
+ control: {
51
+ type: "number",
52
+ min: 1,
53
+ max: 100,
54
+ },
55
+ },
56
+ openOnMount: {
57
+ control: {
58
+ type: "boolean",
59
+ },
60
+ },
61
+ title: {
62
+ control: {
63
+ type: "text",
64
+ },
65
+ },
66
+ },
67
+ parameters: {
68
+ backgrounds: {
69
+ default: "light",
70
+ values: [
71
+ { name: "light", value: "#ffffff" },
72
+ { name: "grey", value: "#728ea7" },
73
+ { name: "figma", value: "#404040" },
74
+ { name: "dark", value: "#171e25" },
75
+ ],
76
+ },
77
+ layout: "padded",
78
+ viewport: {
79
+ viewports: {
80
+ responsive: {
81
+ name: "Responsive",
82
+ styles: {
83
+ height: "360px",
84
+ },
85
+ },
86
+ },
87
+ defaultViewport: "responsive",
88
+ },
89
+ },
90
+ };
91
+ var Template = function (args) {
92
+ var _a = useState(args.selectedItem), selected = _a[0], setSelected = _a[1];
93
+ var handleChange = function (newSelected) {
94
+ setSelected(newSelected);
95
+ };
96
+ return React.createElement(ComboBox, __assign({}, args, { selectedItem: selected, onChange: handleChange }));
97
+ };
98
+ export var Default = Template.bind({});
99
+ Default.args = {
100
+ items: [
101
+ { label: "Lundi 12 août", value: "lundi-12-aout" },
102
+ { label: "Mardi 13 août", value: "mardi-13-aout" },
103
+ { label: "Mercredi 14 août", value: "mercredi-14-aout" },
104
+ { label: "Jeudi 15 août", value: "jeudi-15-aout" },
105
+ { label: "Vendredi 16 août", value: "vendredi-16-aout" },
106
+ { label: "Samedi 17 août", value: "samedi-17-aout" },
107
+ ],
108
+ selectedItem: "lundi-12-aout", // Élément sélectionné par défaut
109
+ placeholder: "Sélectionner...",
110
+ isRequired: false,
111
+ width: 100,
112
+ openOnMount: true,
113
+ title: "Sélectionnez une date",
114
+ };
115
+ export var Pressed = Template.bind({});
116
+ Pressed.args = __assign(__assign({}, Default.args), { selectedItem: "lundi-12-aout" });
117
+ export var Required = Template.bind({});
118
+ Required.args = __assign(__assign({}, Default.args), { isRequired: true });
119
+ export var CustomWidth = Template.bind({});
120
+ CustomWidth.args = __assign(__assign({}, Default.args), { width: 50 });
121
+ export var OpenOnMount = Template.bind({});
122
+ OpenOnMount.args = __assign(__assign({}, Default.args), { openOnMount: true });
@@ -1,5 +1,4 @@
1
1
  import React from "react";
2
- import "./Select.css";
3
2
  import "../../../styles/global.css";
4
3
  export interface SelectItem {
5
4
  label: string;
@@ -9,7 +9,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
9
9
  };
10
10
  import React, { useState, useEffect, useRef, useImperativeHandle, forwardRef, } from "react";
11
11
  import ReactDOM from "react-dom";
12
- import "./Select.css";
12
+ import styles from "./Select.module.css";
13
13
  import "../../../styles/global.css";
14
14
  import TinyInfo from "../typography/TinyInfo";
15
15
  function Select(_a, ref) {
@@ -25,12 +25,13 @@ function Select(_a, ref) {
25
25
  left: 0,
26
26
  width: 0,
27
27
  }), listPosition = _l[0], setListPosition = _l[1];
28
+ var _m = useState("bottom"), placement = _m[0], setPlacement = _m[1];
28
29
  useEffect(function () {
29
30
  setSelected((multiple ? selectedItem || [] : selectedItem || ""));
30
31
  }, [selectedItem, multiple]);
31
32
  useEffect(function () {
32
33
  if (!multiple && selectedItem && isOpen && listRef.current) {
33
- var selectedItemElement = listRef.current.querySelector(".select-item[data-value=\"".concat(selectedItem, "\"]"));
34
+ var selectedItemElement = listRef.current.querySelector(".".concat(styles.selectItem, "[data-value=\"").concat(selectedItem, "\"]"));
34
35
  if (selectedItemElement instanceof HTMLElement) {
35
36
  var listHeight = listRef.current.offsetHeight;
36
37
  var itemHeight = selectedItemElement.offsetHeight;
@@ -64,20 +65,32 @@ function Select(_a, ref) {
64
65
  return !errorMessage;
65
66
  };
66
67
  var updateListPosition = function () {
67
- if (selectRef.current) {
68
- var rect = selectRef.current.getBoundingClientRect();
68
+ if (selectRef.current && listRef.current) {
69
+ var selectRect = selectRef.current.getBoundingClientRect();
70
+ var listHeight = listRef.current.getBoundingClientRect().height;
71
+ var windowHeight = window.innerHeight;
72
+ var spaceBelow = windowHeight - selectRect.bottom;
73
+ var shouldShowBelow = spaceBelow >= listHeight;
74
+ setPlacement(shouldShowBelow ? "bottom" : "top");
69
75
  setListPosition({
70
- top: rect.bottom + window.scrollY,
71
- left: rect.left + window.scrollX,
72
- width: rect.width,
76
+ top: shouldShowBelow
77
+ ? selectRect.bottom
78
+ : selectRect.top - listHeight - 5,
79
+ left: selectRect.left,
80
+ width: selectRect.width,
73
81
  });
74
82
  }
75
83
  };
76
84
  var toggleOpen = function () {
77
85
  if (!isOpen) {
78
- updateListPosition();
86
+ setIsOpen(true);
87
+ requestAnimationFrame(function () {
88
+ updateListPosition();
89
+ });
90
+ }
91
+ else {
92
+ setIsOpen(false);
79
93
  }
80
- setIsOpen(!isOpen);
81
94
  };
82
95
  var handleClickOutside = function (event) {
83
96
  if (selectRef.current &&
@@ -98,30 +111,44 @@ function Select(_a, ref) {
98
111
  document.removeEventListener("mousedown", handleClickOutside);
99
112
  };
100
113
  }, [isOpen]);
101
- var renderList = function () { return (React.createElement("div", { ref: listRef, className: "select-list ".concat(isOpen ? "visible" : ""), style: {
114
+ useEffect(function () {
115
+ if (isOpen) {
116
+ var handleScroll_1 = function () {
117
+ updateListPosition();
118
+ };
119
+ window.addEventListener("scroll", handleScroll_1, true);
120
+ return function () {
121
+ window.removeEventListener("scroll", handleScroll_1, true);
122
+ };
123
+ }
124
+ return function () { };
125
+ }, [isOpen]);
126
+ var renderList = function () { return (React.createElement("div", { ref: listRef, className: "".concat(styles.selectList, " ").concat(isOpen ? styles.visible : "", " ").concat(placement), style: {
127
+ position: "fixed",
102
128
  top: "".concat(listPosition.top, "px"),
103
129
  left: "".concat(listPosition.left, "px"),
104
130
  width: "".concat(listPosition.width, "px"),
105
- } }, items.map(function (item) { return (React.createElement("div", { key: item.value, "data-value": item.value, className: "select-item ".concat(Array.isArray(selected) && selected.includes(item.value)
106
- ? "selected"
107
- : "", " ").concat(!multiple && item.value === selectedItem ? "highlighted" : "", " ").concat(!multiple ? "single-select" : ""), onClick: function () { return handleSelect(item); } },
108
- multiple && React.createElement("span", { className: "select-item-icon allaw-icon-check" }),
109
- React.createElement("span", { className: "select-item-text" }, item.label))); }))); };
131
+ margin: placement === "bottom" ? "4px 0 0 0" : "0 0 4px 0",
132
+ } }, items.map(function (item) { return (React.createElement("div", { key: item.value, "data-value": item.value, className: "".concat(styles.selectItem, " ").concat(Array.isArray(selected) && selected.includes(item.value)
133
+ ? styles.selected
134
+ : "", " ").concat(!multiple && item.value === selectedItem ? styles.highlighted : "", " ").concat(!multiple ? styles.singleSelect : ""), onClick: function () { return handleSelect(item); } },
135
+ multiple && React.createElement("span", { className: styles.selectItemIcon }),
136
+ React.createElement("span", { className: styles.selectItemText }, item.label))); }))); };
110
137
  useImperativeHandle(ref, function () { return ({
111
138
  validate: function () { return validateSelect(selected); },
112
139
  }); });
113
- return (React.createElement("div", { ref: selectRef, className: "select-container ".concat(isOpen ? "select-pressed" : ""), style: { width: "".concat(width, "%") } },
114
- React.createElement("button", { type: "button", className: "select ".concat(isOpen ? "select-pressed" : "select-default"), onClick: toggleOpen, style: { width: "100%" } },
115
- React.createElement("span", { className: "select-text" }, Array.isArray(selected) && selected.length > 0
140
+ return (React.createElement("div", { ref: selectRef, className: "".concat(styles.selectContainer, " ").concat(isOpen ? styles.selectPressed : ""), style: { width: "".concat(width, "%") } },
141
+ React.createElement("button", { type: "button", className: "".concat(styles.select, " ").concat(isOpen ? styles.selectPressed : styles.selectDefault), onClick: toggleOpen, style: { width: "100%" } },
142
+ React.createElement("span", { className: styles.selectText }, Array.isArray(selected) && selected.length > 0
116
143
  ? selected
117
144
  .map(function (val) { var _a; return (_a = items.find(function (item) { return item.value === val; })) === null || _a === void 0 ? void 0 : _a.label; })
118
145
  .join(", ")
119
146
  : !Array.isArray(selected) && selected
120
147
  ? (_b = items.find(function (item) { return item.value === selected; })) === null || _b === void 0 ? void 0 : _b.label
121
148
  : placeholder),
122
- React.createElement("span", { className: "select-icon ".concat(isOpen ? "allaw-icon-chevron-up" : "allaw-icon-chevron-down") })),
149
+ React.createElement("span", { className: "".concat(styles.selectIcon, " ").concat(isOpen ? styles.allawIconChevronUp : styles.allawIconChevronDown) })),
123
150
  isOpen && ReactDOM.createPortal(renderList(), document.body),
124
- isRequired && showError && error && (React.createElement("div", { className: "error-message" },
151
+ isRequired && showError && error && (React.createElement("div", { className: styles.errorMessage },
125
152
  React.createElement(TinyInfo, { variant: "medium12", color: "actions-error", text: error })))));
126
153
  }
127
154
  export default forwardRef(Select);
@@ -1,4 +1,4 @@
1
- .select-container {
1
+ .selectContainer {
2
2
  position: relative;
3
3
  }
4
4
 
@@ -21,7 +21,7 @@
21
21
  background: var(--grey-venom, #e6edf5);
22
22
  }
23
23
 
24
- .select-text {
24
+ .selectText {
25
25
  color: var(--Primary-Mid-black, var(--primary-black, #171e25));
26
26
  font-family: "Open Sans";
27
27
  font-size: 14px;
@@ -33,7 +33,7 @@
33
33
  text-overflow: ellipsis;
34
34
  }
35
35
 
36
- .select-icon {
36
+ .selectIcon {
37
37
  width: 24px;
38
38
  height: 24px;
39
39
  flex-shrink: 0;
@@ -43,14 +43,13 @@
43
43
  padding-top: 4px;
44
44
  }
45
45
 
46
- .select-list {
46
+ .selectList {
47
47
  position: absolute;
48
48
  top: 100%;
49
49
  left: 0;
50
50
  right: 0;
51
51
  display: flex;
52
52
  flex-direction: column;
53
- /* background: var(--secondary-light-grey, #f4f7fb); */
54
53
  background: #fff;
55
54
  border-radius: 8px;
56
55
  padding: 8px 0;
@@ -69,7 +68,7 @@
69
68
  margin-top: 4px;
70
69
  }
71
70
 
72
- .select-item {
71
+ .selectItem {
73
72
  display: flex;
74
73
  align-items: center;
75
74
  padding: 8px 16px;
@@ -77,36 +76,36 @@
77
76
  width: 100%;
78
77
  }
79
78
 
80
- .select-item:hover {
79
+ .selectItem:hover {
81
80
  background: var(--grey-venom, #e6edf5);
82
81
  }
83
82
 
84
- .select-item .select-item-icon {
83
+ .selectItem .selectItemIcon {
85
84
  margin-right: 11px;
86
85
  visibility: hidden;
87
86
  color: var(--bleu-allaw, #0070f3);
88
87
  }
89
88
 
90
- .select-item.selected .select-item-icon {
89
+ .selectItem.selected .selectItemIcon {
91
90
  visibility: visible;
92
91
  }
93
92
 
94
- .select-item.single-select .select-item-icon {
93
+ .selectItem.singleSelect .selectItemIcon {
95
94
  display: none;
96
95
  }
97
96
 
98
- .select-item-text {
97
+ .selectItemText {
99
98
  white-space: nowrap;
100
99
  overflow: hidden;
101
100
  text-overflow: ellipsis;
102
101
  width: 100%;
103
102
  }
104
103
 
105
- .error-message {
104
+ .errorMessage {
106
105
  padding-top: 4px;
107
106
  padding-left: 14px;
108
107
  }
109
108
 
110
- .select-item.highlighted {
109
+ .selectItem.highlighted {
111
110
  background-color: var(--venom-grey-dark, #d1dce8);
112
111
  }
@@ -0,0 +1,86 @@
1
+ export const ActionsData: {};
2
+ declare namespace _default {
3
+ export let title: string;
4
+ export { Select as component };
5
+ export let tags: string[];
6
+ export let excludeStories: RegExp;
7
+ export let args: {};
8
+ export namespace argTypes {
9
+ namespace items {
10
+ namespace control {
11
+ let type: string;
12
+ }
13
+ }
14
+ namespace placeholder {
15
+ export namespace control_1 {
16
+ let type_1: string;
17
+ export { type_1 as type };
18
+ }
19
+ export { control_1 as control };
20
+ }
21
+ namespace multiple {
22
+ export namespace control_2 {
23
+ let type_2: string;
24
+ export { type_2 as type };
25
+ }
26
+ export { control_2 as control };
27
+ }
28
+ namespace isRequired {
29
+ export namespace control_3 {
30
+ let type_3: string;
31
+ export { type_3 as type };
32
+ }
33
+ export { control_3 as control };
34
+ }
35
+ namespace selectedItem {
36
+ export namespace control_4 {
37
+ let type_4: string;
38
+ export { type_4 as type };
39
+ }
40
+ export { control_4 as control };
41
+ }
42
+ namespace onChange {
43
+ namespace table {
44
+ let disable: boolean;
45
+ }
46
+ }
47
+ namespace width {
48
+ export namespace control_5 {
49
+ let type_5: string;
50
+ export { type_5 as type };
51
+ export let min: number;
52
+ export let max: number;
53
+ }
54
+ export { control_5 as control };
55
+ }
56
+ }
57
+ export namespace parameters {
58
+ namespace backgrounds {
59
+ let _default: string;
60
+ export { _default as default };
61
+ export let values: {
62
+ name: string;
63
+ value: string;
64
+ }[];
65
+ }
66
+ let layout: string;
67
+ namespace viewport {
68
+ namespace viewports {
69
+ namespace responsive {
70
+ let name: string;
71
+ namespace styles {
72
+ let height: string;
73
+ }
74
+ }
75
+ }
76
+ let defaultViewport: string;
77
+ }
78
+ }
79
+ }
80
+ export default _default;
81
+ export const Default: any;
82
+ export const Pressed: any;
83
+ export const Multiple: any;
84
+ export const Required: any;
85
+ export const CustomWidth: any;
86
+ import Select from "./Select";