@groupeactual/ui-kit 1.6.7-beta.0 → 1.7.0-beta.0

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 (192) hide show
  1. package/dist/cjs/index.js +9 -9
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/es/index.d.ts +9 -56
  4. package/dist/es/index.js +107 -0
  5. package/dist/es/index.js.map +1 -0
  6. package/dist/es/{types → src}/components/Form/AutoCompleteMulti/AutoCompleteMulti.d.ts +1 -1
  7. package/dist/{cjs/types → es/src}/components/Form/AutoCompleteSingle/AutoCompleteSingle.d.ts +1 -1
  8. package/dist/{cjs/types → es/src}/components/Form/Select/Select.d.ts +4 -2
  9. package/dist/{cjs/types → es/src}/components/IconButton/IconButton.d.ts +1 -1
  10. package/dist/es/{types → src}/components/Modal/Dialog/Dialog.d.ts +1 -1
  11. package/dist/es/{types → src}/components/Modal/Drawer/Drawer.d.ts +1 -1
  12. package/dist/es/src/components/UploadDocument/FileUploaderSingle.d.ts +30 -0
  13. package/dist/{cjs/types → es/src}/helpers/dataGetValue.d.ts +1 -1
  14. package/dist/{cjs/types → es/src}/hooks/useGooleDrivePicker.d.ts +2 -2
  15. package/dist/es/src/index.d.ts +4 -0
  16. package/package.json +18 -23
  17. package/src/DesignSystemProvider.tsx +2 -1
  18. package/src/components/Accordion/Accordion.tsx +1 -1
  19. package/src/components/BannerNotification/BannerNotification.tsx +1 -1
  20. package/src/components/Breadcrumbs/Breadcrumbs.tsx +2 -2
  21. package/src/components/Chip/Chip.tsx +1 -1
  22. package/src/components/Datatable/Datatable.tsx +4 -3
  23. package/src/components/Datatable/DatatableCellRender.tsx +2 -2
  24. package/src/components/EmbbededNotification/EmbeddedNotification.tsx +2 -2
  25. package/src/components/Form/AutoCompleteMulti/AutoCompleteMulti.tsx +22 -12
  26. package/src/components/Form/AutoCompleteSingle/AutoCompleteSingle.tsx +22 -10
  27. package/src/components/Form/Checkbox/Checkbox.tsx +2 -2
  28. package/src/components/Form/CheckboxGroup/CheckboxGroup.tsx +1 -1
  29. package/src/components/Form/DatePicker/DatePicker.tsx +1 -1
  30. package/src/components/Form/MultiSelect/MultiSelect.tsx +10 -7
  31. package/src/components/Form/RadioGroup/RadioGroup.tsx +2 -2
  32. package/src/components/Form/Select/Select.tsx +15 -6
  33. package/src/components/Form/TextField/TextField.tsx +1 -1
  34. package/src/components/IconButton/IconButton.tsx +3 -3
  35. package/src/components/MenuItem/MenuItem.tsx +2 -2
  36. package/src/components/Modal/Dialog/Dialog.tsx +7 -4
  37. package/src/components/Modal/Drawer/Drawer.tsx +2 -2
  38. package/src/components/Navigation/Stepper/Step.tsx +3 -2
  39. package/src/components/NotistackAdapter/NotistackAdapter.tsx +1 -1
  40. package/src/components/Pagination/Pagination.tsx +7 -11
  41. package/src/components/Snackbar/Snackbar.tsx +1 -1
  42. package/src/components/UploadDocument/FileUploaderSingle.tsx +49 -77
  43. package/src/helpers/GooglePickerWrapper.tsx +1 -1
  44. package/src/helpers/dataGetValue.ts +1 -1
  45. package/src/hooks/useGooleDrivePicker.ts +2 -2
  46. package/src/index.ts +3 -5
  47. package/dist/cjs/types/components/Form/AutoCompleteMulti/AutoCompleteMulti.d.ts +0 -18
  48. package/dist/cjs/types/components/Modal/Dialog/Dialog.d.ts +0 -4
  49. package/dist/cjs/types/components/Modal/Drawer/Drawer.d.ts +0 -4
  50. package/dist/cjs/types/components/UploadDocument/FileUploaderSingle.d.ts +0 -78
  51. package/dist/cjs/types/index.d.ts +0 -2
  52. package/dist/es/index.mjs +0 -106
  53. package/dist/es/index.mjs.map +0 -1
  54. package/dist/es/types/DesignSystemProvider.d.ts +0 -13
  55. package/dist/es/types/components/Accordion/Accordion.d.ts +0 -15
  56. package/dist/es/types/components/Accordion/index.d.ts +0 -1
  57. package/dist/es/types/components/BannerNotification/BannerNotification.d.ts +0 -11
  58. package/dist/es/types/components/BannerNotification/index.d.ts +0 -1
  59. package/dist/es/types/components/Breadcrumbs/Breadcrumbs.d.ts +0 -15
  60. package/dist/es/types/components/Breadcrumbs/index.d.ts +0 -1
  61. package/dist/es/types/components/Button/Button.d.ts +0 -11
  62. package/dist/es/types/components/Button/index.d.ts +0 -1
  63. package/dist/es/types/components/Chip/Chip.d.ts +0 -19
  64. package/dist/es/types/components/Chip/index.d.ts +0 -1
  65. package/dist/es/types/components/Datatable/Datatable.d.ts +0 -4
  66. package/dist/es/types/components/Datatable/DatatableCellRender.d.ts +0 -4
  67. package/dist/es/types/components/Datatable/datatable.interface.d.ts +0 -53
  68. package/dist/es/types/components/Datatable/index.d.ts +0 -1
  69. package/dist/es/types/components/Datatable/use-pagination-props.hook.d.ts +0 -3
  70. package/dist/es/types/components/EmbbededNotification/EmbeddedNotification.d.ts +0 -13
  71. package/dist/es/types/components/EmbbededNotification/index.d.ts +0 -1
  72. package/dist/es/types/components/Form/AutoCompleteMulti/index.d.ts +0 -1
  73. package/dist/es/types/components/Form/AutoCompleteSingle/AutoCompleteSingle.d.ts +0 -19
  74. package/dist/es/types/components/Form/AutoCompleteSingle/index.d.ts +0 -1
  75. package/dist/es/types/components/Form/Checkbox/Checkbox.d.ts +0 -17
  76. package/dist/es/types/components/Form/Checkbox/index.d.ts +0 -1
  77. package/dist/es/types/components/Form/CheckboxGroup/CheckboxGroup.d.ts +0 -20
  78. package/dist/es/types/components/Form/CheckboxGroup/index.d.ts +0 -1
  79. package/dist/es/types/components/Form/DatePicker/DatePicker.d.ts +0 -15
  80. package/dist/es/types/components/Form/DatePicker/index.d.ts +0 -1
  81. package/dist/es/types/components/Form/MultiSelect/MultiSelect.d.ts +0 -23
  82. package/dist/es/types/components/Form/MultiSelect/index.d.ts +0 -1
  83. package/dist/es/types/components/Form/RadioGroup/RadioGroup.d.ts +0 -21
  84. package/dist/es/types/components/Form/RadioGroup/index.d.ts +0 -1
  85. package/dist/es/types/components/Form/Select/Select.d.ts +0 -22
  86. package/dist/es/types/components/Form/Select/index.d.ts +0 -1
  87. package/dist/es/types/components/Form/Switch/Switch.d.ts +0 -13
  88. package/dist/es/types/components/Form/Switch/index.d.ts +0 -1
  89. package/dist/es/types/components/Form/TextField/TextField.d.ts +0 -21
  90. package/dist/es/types/components/Form/TextField/index.d.ts +0 -1
  91. package/dist/es/types/components/IconButton/IconButton.d.ts +0 -19
  92. package/dist/es/types/components/IconButton/index.d.ts +0 -1
  93. package/dist/es/types/components/IconProvider/IconProvider.d.ts +0 -22
  94. package/dist/es/types/components/IconProvider/index.d.ts +0 -1
  95. package/dist/es/types/components/Link/Link.d.ts +0 -11
  96. package/dist/es/types/components/Link/index.d.ts +0 -1
  97. package/dist/es/types/components/MenuItem/MenuItem.d.ts +0 -13
  98. package/dist/es/types/components/MenuItem/index.d.ts +0 -1
  99. package/dist/es/types/components/Modal/Dialog/index.d.ts +0 -1
  100. package/dist/es/types/components/Modal/Drawer/index.d.ts +0 -1
  101. package/dist/es/types/components/Modal/modal.interface.d.ts +0 -24
  102. package/dist/es/types/components/Navigation/Stepper/Step.d.ts +0 -7
  103. package/dist/es/types/components/Navigation/Stepper/Stepper.d.ts +0 -11
  104. package/dist/es/types/components/Navigation/Stepper/index.d.ts +0 -1
  105. package/dist/es/types/components/Navigation/Stepper/stepper.helper.d.ts +0 -2
  106. package/dist/es/types/components/Navigation/Stepper/stepper.interface.d.ts +0 -12
  107. package/dist/es/types/components/NotistackAdapter/NotistackAdapter.d.ts +0 -4
  108. package/dist/es/types/components/NotistackAdapter/index.d.ts +0 -1
  109. package/dist/es/types/components/Pagination/Pagination.d.ts +0 -16
  110. package/dist/es/types/components/Pagination/index.d.ts +0 -1
  111. package/dist/es/types/components/Pagination/pagination.helper.d.ts +0 -1
  112. package/dist/es/types/components/Snackbar/Snackbar.d.ts +0 -11
  113. package/dist/es/types/components/Snackbar/index.d.ts +0 -1
  114. package/dist/es/types/components/Text/Text.d.ts +0 -11
  115. package/dist/es/types/components/Text/index.d.ts +0 -1
  116. package/dist/es/types/components/Tooltip/Tooltip.d.ts +0 -13
  117. package/dist/es/types/components/Tooltip/index.d.ts +0 -1
  118. package/dist/es/types/components/Tooltip/tooltip.interface.d.ts +0 -1
  119. package/dist/es/types/components/UploadDocument/FileUploaderSingle.d.ts +0 -78
  120. package/dist/es/types/components/UploadDocument/index.d.ts +0 -1
  121. package/dist/es/types/components/index.d.ts +0 -31
  122. package/dist/es/types/helpers/GooglePickerWrapper.d.ts +0 -13
  123. package/dist/es/types/helpers/dataGetValue.d.ts +0 -2
  124. package/dist/es/types/hooks/useGooleDrivePicker.d.ts +0 -4
  125. package/dist/es/types/index.d.ts +0 -2
  126. package/dist/es/types/types/googleDrive.d.ts +0 -133
  127. /package/dist/{cjs/types → es/src}/DesignSystemProvider.d.ts +0 -0
  128. /package/dist/{cjs/types → es/src}/components/Accordion/Accordion.d.ts +0 -0
  129. /package/dist/{cjs/types → es/src}/components/Accordion/index.d.ts +0 -0
  130. /package/dist/{cjs/types → es/src}/components/BannerNotification/BannerNotification.d.ts +0 -0
  131. /package/dist/{cjs/types → es/src}/components/BannerNotification/index.d.ts +0 -0
  132. /package/dist/{cjs/types → es/src}/components/Breadcrumbs/Breadcrumbs.d.ts +0 -0
  133. /package/dist/{cjs/types → es/src}/components/Breadcrumbs/index.d.ts +0 -0
  134. /package/dist/{cjs/types → es/src}/components/Button/Button.d.ts +0 -0
  135. /package/dist/{cjs/types → es/src}/components/Button/index.d.ts +0 -0
  136. /package/dist/{cjs/types → es/src}/components/Chip/Chip.d.ts +0 -0
  137. /package/dist/{cjs/types → es/src}/components/Chip/index.d.ts +0 -0
  138. /package/dist/{cjs/types → es/src}/components/Datatable/Datatable.d.ts +0 -0
  139. /package/dist/{cjs/types → es/src}/components/Datatable/DatatableCellRender.d.ts +0 -0
  140. /package/dist/{cjs/types → es/src}/components/Datatable/datatable.interface.d.ts +0 -0
  141. /package/dist/{cjs/types → es/src}/components/Datatable/index.d.ts +0 -0
  142. /package/dist/{cjs/types → es/src}/components/Datatable/use-pagination-props.hook.d.ts +0 -0
  143. /package/dist/{cjs/types → es/src}/components/EmbbededNotification/EmbeddedNotification.d.ts +0 -0
  144. /package/dist/{cjs/types → es/src}/components/EmbbededNotification/index.d.ts +0 -0
  145. /package/dist/{cjs/types → es/src}/components/Form/AutoCompleteMulti/index.d.ts +0 -0
  146. /package/dist/{cjs/types → es/src}/components/Form/AutoCompleteSingle/index.d.ts +0 -0
  147. /package/dist/{cjs/types → es/src}/components/Form/Checkbox/Checkbox.d.ts +0 -0
  148. /package/dist/{cjs/types → es/src}/components/Form/Checkbox/index.d.ts +0 -0
  149. /package/dist/{cjs/types → es/src}/components/Form/CheckboxGroup/CheckboxGroup.d.ts +0 -0
  150. /package/dist/{cjs/types → es/src}/components/Form/CheckboxGroup/index.d.ts +0 -0
  151. /package/dist/{cjs/types → es/src}/components/Form/DatePicker/DatePicker.d.ts +0 -0
  152. /package/dist/{cjs/types → es/src}/components/Form/DatePicker/index.d.ts +0 -0
  153. /package/dist/{cjs/types → es/src}/components/Form/MultiSelect/MultiSelect.d.ts +0 -0
  154. /package/dist/{cjs/types → es/src}/components/Form/MultiSelect/index.d.ts +0 -0
  155. /package/dist/{cjs/types → es/src}/components/Form/RadioGroup/RadioGroup.d.ts +0 -0
  156. /package/dist/{cjs/types → es/src}/components/Form/RadioGroup/index.d.ts +0 -0
  157. /package/dist/{cjs/types → es/src}/components/Form/Select/index.d.ts +0 -0
  158. /package/dist/{cjs/types → es/src}/components/Form/Switch/Switch.d.ts +0 -0
  159. /package/dist/{cjs/types → es/src}/components/Form/Switch/index.d.ts +0 -0
  160. /package/dist/{cjs/types → es/src}/components/Form/TextField/TextField.d.ts +0 -0
  161. /package/dist/{cjs/types → es/src}/components/Form/TextField/index.d.ts +0 -0
  162. /package/dist/{cjs/types → es/src}/components/IconButton/index.d.ts +0 -0
  163. /package/dist/{cjs/types → es/src}/components/IconProvider/IconProvider.d.ts +0 -0
  164. /package/dist/{cjs/types → es/src}/components/IconProvider/index.d.ts +0 -0
  165. /package/dist/{cjs/types → es/src}/components/Link/Link.d.ts +0 -0
  166. /package/dist/{cjs/types → es/src}/components/Link/index.d.ts +0 -0
  167. /package/dist/{cjs/types → es/src}/components/MenuItem/MenuItem.d.ts +0 -0
  168. /package/dist/{cjs/types → es/src}/components/MenuItem/index.d.ts +0 -0
  169. /package/dist/{cjs/types → es/src}/components/Modal/Dialog/index.d.ts +0 -0
  170. /package/dist/{cjs/types → es/src}/components/Modal/Drawer/index.d.ts +0 -0
  171. /package/dist/{cjs/types → es/src}/components/Modal/modal.interface.d.ts +0 -0
  172. /package/dist/{cjs/types → es/src}/components/Navigation/Stepper/Step.d.ts +0 -0
  173. /package/dist/{cjs/types → es/src}/components/Navigation/Stepper/Stepper.d.ts +0 -0
  174. /package/dist/{cjs/types → es/src}/components/Navigation/Stepper/index.d.ts +0 -0
  175. /package/dist/{cjs/types → es/src}/components/Navigation/Stepper/stepper.helper.d.ts +0 -0
  176. /package/dist/{cjs/types → es/src}/components/Navigation/Stepper/stepper.interface.d.ts +0 -0
  177. /package/dist/{cjs/types → es/src}/components/NotistackAdapter/NotistackAdapter.d.ts +0 -0
  178. /package/dist/{cjs/types → es/src}/components/NotistackAdapter/index.d.ts +0 -0
  179. /package/dist/{cjs/types → es/src}/components/Pagination/Pagination.d.ts +0 -0
  180. /package/dist/{cjs/types → es/src}/components/Pagination/index.d.ts +0 -0
  181. /package/dist/{cjs/types → es/src}/components/Pagination/pagination.helper.d.ts +0 -0
  182. /package/dist/{cjs/types → es/src}/components/Snackbar/Snackbar.d.ts +0 -0
  183. /package/dist/{cjs/types → es/src}/components/Snackbar/index.d.ts +0 -0
  184. /package/dist/{cjs/types → es/src}/components/Text/Text.d.ts +0 -0
  185. /package/dist/{cjs/types → es/src}/components/Text/index.d.ts +0 -0
  186. /package/dist/{cjs/types → es/src}/components/Tooltip/Tooltip.d.ts +0 -0
  187. /package/dist/{cjs/types → es/src}/components/Tooltip/index.d.ts +0 -0
  188. /package/dist/{cjs/types → es/src}/components/Tooltip/tooltip.interface.d.ts +0 -0
  189. /package/dist/{cjs/types → es/src}/components/UploadDocument/index.d.ts +0 -0
  190. /package/dist/{cjs/types → es/src}/components/index.d.ts +0 -0
  191. /package/dist/{cjs/types → es/src}/helpers/GooglePickerWrapper.d.ts +0 -0
  192. /package/dist/{cjs/types → es/src}/types/googleDrive.d.ts +0 -0
@@ -11,9 +11,9 @@ import {
11
11
  useTheme,
12
12
  } from '@mui/material';
13
13
 
14
- import IconProvider from '../IconProvider';
15
- import Tooltip from '../Tooltip';
16
- import { Placement } from '../Tooltip/tooltip.interface';
14
+ import IconProvider from '@/components/IconProvider';
15
+ import Tooltip from '@/components/Tooltip';
16
+ import { Placement } from '@/components/Tooltip/tooltip.interface';
17
17
 
18
18
  interface Props extends IconButtonProps {
19
19
  icon: IconDefinition;
@@ -10,8 +10,8 @@ import {
10
10
  useTheme,
11
11
  } from '@mui/material';
12
12
 
13
- import IconProvider from '../IconProvider';
14
- import Text from '../Text';
13
+ import IconProvider from '@/components/IconProvider';
14
+ import Text from '@/components/Text';
15
15
 
16
16
  interface Props extends MenuItemProps {
17
17
  testId: string;
@@ -10,10 +10,13 @@ import {
10
10
  } from '@mui/material';
11
11
  import { OverridableTypeMap } from '@mui/material/OverridableComponent';
12
12
 
13
- import IconButton from '../../IconButton';
14
- import IconProvider from '../../IconProvider';
15
- import Text from '../../Text';
16
- import { DialogTitleProps, ModalProps } from '../modal.interface';
13
+ import IconButton from '@/components/IconButton';
14
+ import IconProvider from '@/components/IconProvider';
15
+ import {
16
+ DialogTitleProps,
17
+ ModalProps,
18
+ } from '@/components/Modal/modal.interface';
19
+ import Text from '@/components/Text';
17
20
 
18
21
  const BootstrapDialog = styled(DialogMUI)(() => ({
19
22
  '& .MuiDialogContent-root': {
@@ -9,8 +9,8 @@ import {
9
9
  Drawer as DrawerMUI,
10
10
  } from '@mui/material';
11
11
 
12
- import IconButton from '../../IconButton';
13
- import { ModalProps } from '../modal.interface';
12
+ import IconButton from '@/components/IconButton';
13
+ import { ModalProps } from '@/components/Modal/modal.interface';
14
14
 
15
15
  const Drawer = ({
16
16
  title,
@@ -4,8 +4,9 @@ import { faCheck } from '@fortawesome/pro-regular-svg-icons';
4
4
  import { faCheckCircle, faDotCircle } from '@fortawesome/pro-solid-svg-icons';
5
5
  import { Box, Stack, useTheme } from '@mui/material';
6
6
 
7
- import IconProvider from '../../IconProvider';
8
- import Text from '../../Text';
7
+ import IconProvider from '@/components/IconProvider';
8
+ import Text from '@/components/Text';
9
+
9
10
  import { stepperItemsToPercent } from './stepper.helper';
10
11
  import { Step } from './stepper.interface';
11
12
 
@@ -2,7 +2,7 @@ import React, { forwardRef } from 'react';
2
2
 
3
3
  import { CustomContentProps, SnackbarContent } from 'notistack';
4
4
 
5
- import Snackbar from '../Snackbar/Snackbar';
5
+ import Snackbar from '@/components/Snackbar';
6
6
 
7
7
  const NotistackAdapter = forwardRef<HTMLDivElement, CustomContentProps>(
8
8
  ({ message, variant }, ref) => {
@@ -1,5 +1,6 @@
1
1
  import React, { ChangeEvent, useEffect, useMemo, useState } from 'react';
2
2
 
3
+ import { faCaretDown } from '@fortawesome/pro-solid-svg-icons';
3
4
  import { PaginationStyle } from '@groupeactual/design-tokens';
4
5
  import {
5
6
  Box,
@@ -9,8 +10,9 @@ import {
9
10
  useTheme,
10
11
  } from '@mui/material';
11
12
 
12
- import Select from '../Form/Select';
13
- import Text from '../Text';
13
+ import Select from '@/components/Form/Select';
14
+ import Text from '@/components/Text';
15
+
14
16
  import { getTotalPages } from './pagination.helper';
15
17
 
16
18
  interface Props {
@@ -86,7 +88,7 @@ const Pagination = ({
86
88
  }}
87
89
  >
88
90
  <Box display="flex" alignItems="center">
89
- <Text variant="body1Medium">
91
+ <Text variant="body1Bold">
90
92
  {totalRows} {totalString}
91
93
  </Text>
92
94
  <Divider
@@ -99,20 +101,14 @@ const Pagination = ({
99
101
  }}
100
102
  />
101
103
  <Select
102
- label=""
103
104
  className="dac-select-label"
104
105
  labelId="select-label"
105
106
  value={internalLimit}
106
107
  onChange={handleChangeLimit}
107
108
  options={limitsPerPage}
108
109
  getRenderValue={(value) => value.toString()}
109
- width={75}
110
- sx={{
111
- backgroundColor: 'white',
112
- '&.MuiInputBase-root': {
113
- height: '32px !important',
114
- },
115
- }}
110
+ popupIcon={faCaretDown}
111
+ width={60}
116
112
  />
117
113
  <Text variant="body1" pl="8px">
118
114
  {totalPerPageString}
@@ -9,7 +9,7 @@ import {
9
9
  import { SnackbarStyle } from '@groupeactual/design-tokens';
10
10
  import { Alert, AlertProps, styled, useTheme } from '@mui/material';
11
11
 
12
- import IconProvider from '../IconProvider/IconProvider';
12
+ import IconProvider from '@/components/IconProvider';
13
13
 
14
14
  interface Props extends Omit<AlertProps, 'severity' | 'text'> {
15
15
  text: string | React.ReactNode;
@@ -21,13 +21,13 @@ import {
21
21
  import { Box, IconButton } from '@mui/material';
22
22
  import Menu from '@mui/material/Menu';
23
23
 
24
- import GooglePickerWrapper from '../../helpers/GooglePickerWrapper';
25
- import { dataGetValue } from '../../helpers/dataGetValue';
26
- import Button from '../Button/Button';
27
- import IconProvider from '../IconProvider/IconProvider';
28
- import MenuItem from '../MenuItem/MenuItem';
29
- import Text from '../Text/Text';
30
- import Tooltip from '../Tooltip';
24
+ import Button from '@/components/Button';
25
+ import IconProvider from '@/components/IconProvider';
26
+ import MenuItem from '@/components/MenuItem';
27
+ import Text from '@/components/Text';
28
+ import Tooltip from '@/components/Tooltip';
29
+ import GooglePickerWrapper from '@/helpers/GooglePickerWrapper';
30
+ import { dataGetValue } from '@/helpers/dataGetValue';
31
31
 
32
32
  export interface Props {
33
33
  setFile: (file: File | null) => void;
@@ -39,12 +39,13 @@ export interface Props {
39
39
  fileUrl?: string | null;
40
40
  fileName?: string | null;
41
41
  accept?: string[];
42
- acceptText?: { fileFormat?: string; maxSize?: string; subText?: string };
42
+ acceptText?: string;
43
43
  disabledInput?: boolean;
44
44
  title?: string;
45
45
  children?: JSX.Element | null;
46
46
  titleAddButton?: string;
47
- validateFile?: (size: number, type: string) => boolean;
47
+ subText?: string;
48
+ maxSize?: string;
48
49
  removeExistingFile?: () => void;
49
50
  onTouched?: () => void;
50
51
  onFileDataChange?: (
@@ -58,52 +59,6 @@ export interface Props {
58
59
  ) => void;
59
60
  }
60
61
 
61
- /**
62
- * A single file uploader component that supports file selection from local storage or Google Drive.
63
- *
64
- * @param {string[]} accept - Array of accepted file types, will display acceptText message
65
- * but not verify size or type of your file.
66
- *
67
- * Example:
68
- * ```js
69
- * accept={[
70
- 'application/pdf',
71
- 'image/png',
72
- 'image/jpeg',
73
- 'image/jpg',
74
- ]}
75
- * ```
76
- * @param {Object} acceptText - Object containing text for accepted file format, max size, and additional subtext.
77
- *
78
- * Example:
79
- * ```js
80
- * acceptText={{
81
- maxSize: '10 Mo',
82
- subText: 'Sélectionnez un fichier',
83
- }}
84
- * ```
85
- *
86
- * @param {Function} validateFile - Function to validate the file size and type.
87
- *
88
- * Example:
89
- * ```js
90
- * validateFile={(size, type) => {
91
- * if (size > 10 * 1024 * 1024) {
92
- * setCustomFileError('Le fichier doit être inférieur à 10 Mo');
93
- * return true;
94
- * }
95
- * if (!['application/pdf', 'image/png', 'image/jpeg', 'image/jpg'].includes(type)) {
96
- * setCustomFileError('Le fichier doit être au format PDF, PNG, JPEG ou JPG');
97
- * return true;
98
- * }
99
- * return false;
100
- * }}
101
- * ```
102
- *
103
- * @param {Function} onFileDataChange - Callback function to handle file data changes and give you all informations you need
104
- * to handle google drive file.
105
- */
106
-
107
62
  const FileUploaderSingle = ({
108
63
  enableGoogleDrive = false,
109
64
  googleAuthClientId,
@@ -111,19 +66,21 @@ const FileUploaderSingle = ({
111
66
  error = false,
112
67
  helperText = '',
113
68
  accept = [],
114
- acceptText = { fileFormat: '', maxSize: '', subText: '' },
69
+ acceptText = '',
115
70
  title = '',
71
+ subText = '',
72
+ maxSize = 'Max. 10mo',
116
73
  disabledInput = false,
117
74
  children = null,
118
75
  fileUrl = null,
119
76
  fileName = null,
120
77
  titleAddButton,
121
- validateFile,
122
78
  setFile,
123
79
  removeExistingFile,
124
80
  onTouched,
125
81
  onFileDataChange,
126
82
  }: Props) => {
83
+ const [customFileError, setCustomFileError] = useState<string | null>();
127
84
  const [currentFile, setCurrentFile] = useState<File | null>(null);
128
85
  const [fileData, setFileData] = useState<{
129
86
  name: string;
@@ -144,6 +101,23 @@ const FileUploaderSingle = ({
144
101
  setAnchorEl(null);
145
102
  };
146
103
 
104
+ const validateFile = (size, type) => {
105
+ // if (size > 10 * 1024 * 1024) {
106
+ // setCustomFileError('Le fichier doit être inférieur à 10 Mo');
107
+ // setIsDroppingFile(false);
108
+ // return true;
109
+ // }
110
+ if (!accept.includes(type)) {
111
+ setCustomFileError(
112
+ `Le fichier doit être au format ${acceptText || extractExtensions(accept).join(', ')}`,
113
+ );
114
+ setIsDroppingFile(false);
115
+ return true;
116
+ }
117
+
118
+ return false;
119
+ };
120
+
147
121
  const handleFileChange = useCallback(
148
122
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
149
123
  (data?: any, token: string | null = null, fakeClick?: boolean) => {
@@ -158,8 +132,7 @@ const FileUploaderSingle = ({
158
132
  ) {
159
133
  const file = fileInputRef.current.files[0];
160
134
  setCurrentFile(fileInputRef.current.files[0]);
161
- if (validateFile && validateFile(file.size, file.type)) {
162
- setIsDroppingFile(false);
135
+ if (validateFile(file.size, file.type)) {
163
136
  return;
164
137
  }
165
138
  onFileDataChange?.({
@@ -167,6 +140,7 @@ const FileUploaderSingle = ({
167
140
  size: Math.round(file.size / 1024),
168
141
  type: file.type,
169
142
  });
143
+ setCustomFileError(null);
170
144
  setFileData({
171
145
  name: file.name,
172
146
  size: Math.round(file.size / 1024),
@@ -183,18 +157,17 @@ const FileUploaderSingle = ({
183
157
  driveFileId: data.docs[0].id,
184
158
  driveAccessToken: token,
185
159
  };
186
- if (
187
- validateFile &&
188
- validateFile(data.docs[0].sizeBytes, data.docs[0].mimeType)
189
- ) {
160
+ if (validateFile(data.docs[0].sizeBytes, data.docs[0].mimeType)) {
190
161
  return;
191
162
  }
192
163
  onFileDataChange?.(fileData);
193
164
  setIsDroppingFile(false);
165
+ setCustomFileError(null);
194
166
  setFileData(fileData);
195
167
  }
196
168
  },
197
169
  [
170
+ setCustomFileError,
198
171
  setIsDroppingFile,
199
172
  setCurrentFile,
200
173
  setFileData,
@@ -215,6 +188,7 @@ const FileUploaderSingle = ({
215
188
  URL.revokeObjectURL(URL.createObjectURL(currentFile));
216
189
  setCurrentFile(null);
217
190
  }
191
+ setCustomFileError(null);
218
192
  setFileData(null);
219
193
  setIsDroppingFile(false);
220
194
  setFile(null);
@@ -226,7 +200,7 @@ const FileUploaderSingle = ({
226
200
 
227
201
  const dashedColor = useMemo(() => {
228
202
  if (isDroppingFile) return '%23004F88';
229
- if (error) return '%23b80025';
203
+ if (error || customFileError) return '%23b80025';
230
204
  return '%23CBCBCB';
231
205
  }, [isDroppingFile, error]);
232
206
 
@@ -238,9 +212,9 @@ const FileUploaderSingle = ({
238
212
 
239
213
  const titleColor = useMemo(() => {
240
214
  if (fileData?.name) return 'greyDark';
241
- if (error) return 'redError';
215
+ if (error || customFileError) return 'redError';
242
216
  return 'greyXDark';
243
- }, [fileData?.name, error]);
217
+ }, [fileData?.name, error, customFileError]);
244
218
 
245
219
  const inputCss = useMemo(
246
220
  () => ({
@@ -345,15 +319,12 @@ const FileUploaderSingle = ({
345
319
  }}
346
320
  >
347
321
  Format{' '}
348
- {(acceptText?.fileFormat &&
349
- acceptText?.fileFormat?.trim() !== ''
350
- ? acceptText.fileFormat
351
- : extractExtensions(accept).join(', ')) + ' - '}
352
- {(acceptText.maxSize && acceptText.maxSize) || 'Max 10 Mo'}
353
- {acceptText.subText && (
322
+ {acceptText || extractExtensions(accept).join(', ') + ' - '}
323
+ {maxSize}
324
+ {subText && (
354
325
  <>
355
326
  <br />
356
- {acceptText.subText}
327
+ {subText}
357
328
  </>
358
329
  )}
359
330
  </Text>
@@ -450,14 +421,15 @@ const FileUploaderSingle = ({
450
421
  </Box>
451
422
  </Box>
452
423
  </Tooltip>
453
- {(error || helperText) && (
424
+
425
+ {(error || customFileError || helperText) && (
454
426
  <Box pl={1} pt={1}>
455
427
  <Text
456
428
  variant="caption"
457
- color={(error && 'redError') || 'greyDark'}
429
+ color={((error || customFileError) && 'redError') || 'greyDark'}
458
430
  data-testid="helperText"
459
431
  >
460
- {helperText}
432
+ {customFileError ? customFileError : helperText}
461
433
  </Text>
462
434
  </Box>
463
435
  )}
@@ -467,7 +439,7 @@ const FileUploaderSingle = ({
467
439
  sx={{
468
440
  display: 'flex',
469
441
  alignItems: 'center',
470
- border: `1px solid ${(error && '#b80025') || '#CBCBCB'}`,
442
+ border: `1px solid ${((error || customFileError) && 'redError') || '#CBCBCB'}`,
471
443
  borderRadius: '4px',
472
444
  justifyContent: 'space-between',
473
445
  maxHeight: '50px',
@@ -2,7 +2,7 @@ import React from 'react';
2
2
 
3
3
  import useGoogleDrivePicker, {
4
4
  GOOGLE_ACTION,
5
- } from '../hooks/useGooleDrivePicker';
5
+ } from '@/hooks/useGooleDrivePicker';
6
6
 
7
7
  interface GooglePickerWrapperProps {
8
8
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -1,4 +1,4 @@
1
- import { Haystack } from '../types/googleDrive';
1
+ import { Haystack } from '@/types/googleDrive';
2
2
 
3
3
  export function dataGetValue(
4
4
  object: Haystack,
@@ -4,7 +4,7 @@ import {
4
4
  GoogleDrivePickerData,
5
5
  GoogleDrivePickerOptions,
6
6
  TokenResponse,
7
- } from '../types/googleDrive';
7
+ } from '@/types/googleDrive';
8
8
 
9
9
  const useGoogleDrivePicker = (
10
10
  callbackFunction: (result: GoogleDrivePickerData, token: string) => void,
@@ -103,6 +103,6 @@ const useGoogleDrivePicker = (
103
103
  return [openPicker, token] as const;
104
104
  };
105
105
 
106
- export * from '../types/googleDrive';
106
+ export * from '@/types/googleDrive';
107
107
 
108
108
  export default useGoogleDrivePicker;
package/src/index.ts CHANGED
@@ -1,6 +1,4 @@
1
1
  export * from './components';
2
- export {
3
- default as DesignSystemProvider,
4
- DesignSystemContext,
5
- type DesignSystemContextValues
6
- } from './DesignSystemProvider';
2
+ export { default as DesignSystemProvider } from './DesignSystemProvider';
3
+ export { DesignSystemContext } from './DesignSystemProvider';
4
+ export { type DesignSystemContextValues } from './DesignSystemProvider';
@@ -1,18 +0,0 @@
1
- import React from 'react';
2
- import { type AutocompleteProps } from '@mui/material';
3
- interface AutocompleteMultipleSelectProps<T> extends Omit<AutocompleteProps<T, true, true, false>, 'onChange' | 'value' | 'options' | 'renderInput' | 'error'> {
4
- value: T[] | undefined;
5
- label?: string;
6
- helperText?: string;
7
- placeholder?: string;
8
- options: T[];
9
- getOptionLabel: (option: T) => string;
10
- getKeyValue: (option: T) => string;
11
- onChange: (value: T[]) => void;
12
- getOptionDisabled?: (option: T) => boolean;
13
- color?: 'success';
14
- width?: number | string;
15
- error?: string;
16
- }
17
- declare const AutocompleteMultipleSelect: <T>({ value, label, placeholder, options, disabled, getOptionLabel, getKeyValue, onChange, getOptionDisabled, width, color, helperText, error, ...props }: AutocompleteMultipleSelectProps<T>) => React.JSX.Element;
18
- export default AutocompleteMultipleSelect;
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { ModalProps } from '../modal.interface';
3
- declare const Dialog: ({ title, open, onClose, component, icon, ...props }: Omit<ModalProps, "footer" | "cardProps" | "size">) => React.JSX.Element;
4
- export default Dialog;
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { ModalProps } from '../modal.interface';
3
- declare const Drawer: ({ title, open, onClose, component, footer, cardProps, size, ...props }: Omit<ModalProps, "withHeaderDivider" | "icon">) => React.JSX.Element;
4
- export default Drawer;
@@ -1,78 +0,0 @@
1
- import React from 'react';
2
- export interface Props {
3
- setFile: (file: File | null) => void;
4
- enableGoogleDrive: boolean;
5
- googleAuthClientId?: string;
6
- googleApiKey?: string;
7
- error?: boolean;
8
- helperText?: string;
9
- fileUrl?: string | null;
10
- fileName?: string | null;
11
- accept?: string[];
12
- acceptText?: {
13
- fileFormat?: string;
14
- maxSize?: string;
15
- subText?: string;
16
- };
17
- disabledInput?: boolean;
18
- title?: string;
19
- children?: JSX.Element | null;
20
- titleAddButton?: string;
21
- validateFile?: (size: number, type: string) => boolean;
22
- removeExistingFile?: () => void;
23
- onTouched?: () => void;
24
- onFileDataChange?: (fileData: {
25
- name: string;
26
- size: number;
27
- type?: string;
28
- driveFileId?: string;
29
- driveAccessToken?: string;
30
- } | null) => void;
31
- }
32
- /**
33
- * A single file uploader component that supports file selection from local storage or Google Drive.
34
- *
35
- * @param {string[]} accept - Array of accepted file types, will display acceptText message
36
- * but not verify size or type of your file.
37
- *
38
- * Example:
39
- * ```js
40
- * accept={[
41
- 'application/pdf',
42
- 'image/png',
43
- 'image/jpeg',
44
- 'image/jpg',
45
- ]}
46
- * ```
47
- * @param {Object} acceptText - Object containing text for accepted file format, max size, and additional subtext.
48
- *
49
- * Example:
50
- * ```js
51
- * acceptText={{
52
- maxSize: '10 Mo',
53
- subText: 'Sélectionnez un fichier',
54
- }}
55
- * ```
56
- *
57
- * @param {Function} validateFile - Function to validate the file size and type.
58
- *
59
- * Example:
60
- * ```js
61
- * validateFile={(size, type) => {
62
- * if (size > 10 * 1024 * 1024) {
63
- * setCustomFileError('Le fichier doit être inférieur à 10 Mo');
64
- * return true;
65
- * }
66
- * if (!['application/pdf', 'image/png', 'image/jpeg', 'image/jpg'].includes(type)) {
67
- * setCustomFileError('Le fichier doit être au format PDF, PNG, JPEG ou JPG');
68
- * return true;
69
- * }
70
- * return false;
71
- * }}
72
- * ```
73
- *
74
- * @param {Function} onFileDataChange - Callback function to handle file data changes and give you all informations you need
75
- * to handle google drive file.
76
- */
77
- declare const FileUploaderSingle: ({ enableGoogleDrive, googleAuthClientId, googleApiKey, error, helperText, accept, acceptText, title, disabledInput, children, fileUrl, fileName, titleAddButton, validateFile, setFile, removeExistingFile, onTouched, onFileDataChange, }: Props) => React.JSX.Element;
78
- export default FileUploaderSingle;
@@ -1,2 +0,0 @@
1
- export * from './components';
2
- export { default as DesignSystemProvider, DesignSystemContext, type DesignSystemContextValues } from './DesignSystemProvider';