@tecsinapse/cortex-react 1.15.0-beta.9 → 1.15.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 (83) hide show
  1. package/dist/cjs/components/Calendar/Calendar.js +1 -0
  2. package/dist/cjs/components/Calendar/CalendarCell.js +4 -0
  3. package/dist/cjs/components/Calendar/CalendarGrid.js +1 -0
  4. package/dist/cjs/components/Calendar/RangeCalendar.js +1 -0
  5. package/dist/cjs/components/DatePicker/DatePickerInput.js +1 -0
  6. package/dist/cjs/components/DatePicker/DateRangePickerInput.js +1 -0
  7. package/dist/cjs/components/Input/Mask.js +1 -0
  8. package/dist/cjs/components/Input/Search.js +1 -0
  9. package/dist/cjs/components/Menubar/Categories.js +1 -0
  10. package/dist/cjs/components/Menubar/Dropdown.js +1 -0
  11. package/dist/cjs/components/Menubar/Header.js +1 -0
  12. package/dist/cjs/components/Menubar/Item.js +1 -0
  13. package/dist/cjs/components/Menubar/MostUsed.js +1 -0
  14. package/dist/cjs/components/Menubar/Root.js +1 -0
  15. package/dist/cjs/components/Menubar/Search.js +1 -0
  16. package/dist/cjs/components/Menubar/SubItem.js +1 -0
  17. package/dist/cjs/components/Popover/Provider.js +1 -0
  18. package/dist/cjs/components/Select/GroupedOptions.js +1 -0
  19. package/dist/cjs/components/Select/MultiGroupedOptions.js +1 -0
  20. package/dist/cjs/components/Select/MultiOption.js +1 -1
  21. package/dist/cjs/components/Select/MultiOptions.js +1 -0
  22. package/dist/cjs/components/Select/Options.js +1 -0
  23. package/dist/cjs/components/Select/Trigger.js +1 -1
  24. package/dist/cjs/components/TimePicker/TimePickerInput.js +1 -0
  25. package/dist/cjs/components/Tooltip.js +1 -0
  26. package/dist/cjs/components/Uploader/Dropzone.js +23 -7
  27. package/dist/cjs/components/Uploader/Manager.js +17 -5
  28. package/dist/cjs/components/Uploader/Root.js +10 -14
  29. package/dist/cjs/components/Uploader/Upload.js +9 -5
  30. package/dist/cjs/hooks/useCalendarCell.js +1 -0
  31. package/dist/cjs/hooks/useFileUpload.js +42 -19
  32. package/dist/cjs/hooks/useManagerHelpers.js +34 -0
  33. package/dist/cjs/index.js +3 -0
  34. package/dist/cjs/provider/ManagerContext.js +125 -0
  35. package/dist/cjs/provider/MenubarProvider.js +1 -0
  36. package/dist/esm/components/Calendar/Calendar.js +1 -0
  37. package/dist/esm/components/Calendar/CalendarCell.js +4 -0
  38. package/dist/esm/components/Calendar/CalendarGrid.js +1 -0
  39. package/dist/esm/components/Calendar/RangeCalendar.js +1 -0
  40. package/dist/esm/components/DatePicker/DatePickerInput.js +1 -0
  41. package/dist/esm/components/DatePicker/DateRangePickerInput.js +1 -0
  42. package/dist/esm/components/Input/Mask.js +1 -0
  43. package/dist/esm/components/Input/Search.js +1 -0
  44. package/dist/esm/components/Menubar/Categories.js +1 -0
  45. package/dist/esm/components/Menubar/Dropdown.js +1 -0
  46. package/dist/esm/components/Menubar/Header.js +1 -0
  47. package/dist/esm/components/Menubar/Item.js +1 -0
  48. package/dist/esm/components/Menubar/MostUsed.js +1 -0
  49. package/dist/esm/components/Menubar/Root.js +1 -0
  50. package/dist/esm/components/Menubar/Search.js +1 -0
  51. package/dist/esm/components/Menubar/SubItem.js +1 -0
  52. package/dist/esm/components/Popover/Provider.js +1 -0
  53. package/dist/esm/components/Select/GroupedOptions.js +1 -0
  54. package/dist/esm/components/Select/MultiGroupedOptions.js +1 -0
  55. package/dist/esm/components/Select/MultiOption.js +1 -1
  56. package/dist/esm/components/Select/MultiOptions.js +1 -0
  57. package/dist/esm/components/Select/Options.js +1 -0
  58. package/dist/esm/components/Select/Trigger.js +1 -1
  59. package/dist/esm/components/TimePicker/TimePickerInput.js +1 -0
  60. package/dist/esm/components/Tooltip.js +1 -0
  61. package/dist/esm/components/Uploader/Dropzone.js +23 -7
  62. package/dist/esm/components/Uploader/Manager.js +17 -5
  63. package/dist/esm/components/Uploader/Root.js +11 -15
  64. package/dist/esm/components/Uploader/Upload.js +10 -6
  65. package/dist/esm/hooks/useCalendarCell.js +1 -0
  66. package/dist/esm/hooks/useFileUpload.js +43 -20
  67. package/dist/esm/hooks/useManagerHelpers.js +32 -0
  68. package/dist/esm/index.js +1 -0
  69. package/dist/esm/provider/ManagerContext.js +122 -0
  70. package/dist/esm/provider/MenubarProvider.js +1 -0
  71. package/dist/types/components/Uploader/Dropzone.d.ts +1 -1
  72. package/dist/types/components/Uploader/Root.d.ts +1 -1
  73. package/dist/types/components/Uploader/Upload.d.ts +1 -1
  74. package/dist/types/components/Uploader/index.d.ts +2 -2
  75. package/dist/types/components/Uploader/types.d.ts +14 -8
  76. package/dist/types/hooks/useFileUpload.d.ts +8 -4
  77. package/dist/types/hooks/useManagerHelpers.d.ts +15 -0
  78. package/dist/types/provider/ManagerContext.d.ts +20 -0
  79. package/dist/types/provider/index.d.ts +1 -0
  80. package/package.json +3 -3
  81. package/dist/cjs/hooks/useManager.js +0 -23
  82. package/dist/esm/hooks/useManager.js +0 -21
  83. package/dist/types/hooks/useManager.d.ts +0 -9
@@ -8,6 +8,7 @@ require('react-aria');
8
8
  require('../../provider/MenubarContext.js');
9
9
  require('../../provider/SnackbarProvider.js');
10
10
  var CalendarProvider = require('../../provider/CalendarProvider.js');
11
+ require('../../provider/ManagerContext.js');
11
12
  require('react-stately');
12
13
  require('../Popover/Context.js');
13
14
  require('react-dropzone');
@@ -9,6 +9,10 @@ var useCalendarCell = require('../../hooks/useCalendarCell.js');
9
9
  require('../Popover/Context.js');
10
10
  require('react-dropzone');
11
11
  require('uuid');
12
+ require('../../provider/MenubarContext.js');
13
+ require('../../provider/SnackbarProvider.js');
14
+ require('../../provider/CalendarProvider.js');
15
+ require('../../provider/ManagerContext.js');
12
16
  require('@floating-ui/react');
13
17
  require('currency.js');
14
18
  var calendarCell = require('../../styles/calendar-cell.js');
@@ -8,6 +8,7 @@ require('react');
8
8
  require('../../provider/MenubarContext.js');
9
9
  require('../../provider/SnackbarProvider.js');
10
10
  require('../../provider/CalendarProvider.js');
11
+ require('../../provider/ManagerContext.js');
11
12
  var useCalendarGrid = require('../../hooks/useCalendarGrid.js');
12
13
  require('../Popover/Context.js');
13
14
  require('react-dropzone');
@@ -8,6 +8,7 @@ require('react');
8
8
  require('../../provider/MenubarContext.js');
9
9
  require('../../provider/SnackbarProvider.js');
10
10
  var CalendarProvider = require('../../provider/CalendarProvider.js');
11
+ require('../../provider/ManagerContext.js');
11
12
  require('../Popover/Context.js');
12
13
  require('react-dropzone');
13
14
  require('uuid');
@@ -9,6 +9,7 @@ require('react');
9
9
  require('../../provider/MenubarContext.js');
10
10
  require('../../provider/SnackbarProvider.js');
11
11
  require('../../provider/CalendarProvider.js');
12
+ require('../../provider/ManagerContext.js');
12
13
  var useDatePickerInput = require('../../hooks/useDatePickerInput.js');
13
14
  var useDatePickerInputCommon = require('../../hooks/useDatePickerInputCommon.js');
14
15
  require('react-dropzone');
@@ -9,6 +9,7 @@ require('react');
9
9
  require('../../provider/MenubarContext.js');
10
10
  require('../../provider/SnackbarProvider.js');
11
11
  require('../../provider/CalendarProvider.js');
12
+ require('../../provider/ManagerContext.js');
12
13
  var useDatePickerInputCommon = require('../../hooks/useDatePickerInputCommon.js');
13
14
  var useDateRangePickerInput = require('../../hooks/useDateRangePickerInput.js');
14
15
  require('react-dropzone');
@@ -8,6 +8,7 @@ require('react-stately');
8
8
  require('../../provider/MenubarContext.js');
9
9
  require('../../provider/SnackbarProvider.js');
10
10
  require('../../provider/CalendarProvider.js');
11
+ require('../../provider/ManagerContext.js');
11
12
  require('../Popover/Context.js');
12
13
  require('react-dropzone');
13
14
  require('uuid');
@@ -9,6 +9,7 @@ require('react-stately');
9
9
  require('../../provider/MenubarContext.js');
10
10
  require('../../provider/SnackbarProvider.js');
11
11
  require('../../provider/CalendarProvider.js');
12
+ require('../../provider/ManagerContext.js');
12
13
  require('../Popover/Context.js');
13
14
  var useDebouncedState = require('../../hooks/useDebouncedState.js');
14
15
  require('react-dropzone');
@@ -9,6 +9,7 @@ require('react');
9
9
  require('../../provider/MenubarContext.js');
10
10
  require('../../provider/SnackbarProvider.js');
11
11
  require('../../provider/CalendarProvider.js');
12
+ require('../../provider/ManagerContext.js');
12
13
  require('../Popover/Context.js');
13
14
  var useDimensions = require('../../hooks/useDimensions.js');
14
15
  require('react-dropzone');
@@ -16,6 +16,7 @@ require('../../provider/MenubarContext.js');
16
16
  require('../../provider/SnackbarProvider.js');
17
17
  var useMenubar = require('../../provider/useMenubar.js');
18
18
  require('../../provider/CalendarProvider.js');
19
+ require('../../provider/ManagerContext.js');
19
20
 
20
21
  const { dropdown } = menubar.menubar();
21
22
  const Dropdown = ({ children, ...rest }) => {
@@ -15,6 +15,7 @@ require('../../provider/MenubarContext.js');
15
15
  require('../../provider/SnackbarProvider.js');
16
16
  var useMenubar = require('../../provider/useMenubar.js');
17
17
  require('../../provider/CalendarProvider.js');
18
+ require('../../provider/ManagerContext.js');
18
19
  var menubar = require('../../styles/menubar.js');
19
20
  var Button = require('../Button.js');
20
21
 
@@ -15,6 +15,7 @@ require('../../provider/MenubarContext.js');
15
15
  require('../../provider/SnackbarProvider.js');
16
16
  var useMenubar = require('../../provider/useMenubar.js');
17
17
  require('../../provider/CalendarProvider.js');
18
+ require('../../provider/ManagerContext.js');
18
19
  var menubar = require('../../styles/menubar.js');
19
20
  var IconControlSubItem = require('./IconControlSubItem.js');
20
21
  var ItemLink = require('./ItemLink.js');
@@ -9,6 +9,7 @@ require('react');
9
9
  require('../../provider/MenubarContext.js');
10
10
  require('../../provider/SnackbarProvider.js');
11
11
  require('../../provider/CalendarProvider.js');
12
+ require('../../provider/ManagerContext.js');
12
13
  require('../Popover/Context.js');
13
14
  var useDimensions = require('../../hooks/useDimensions.js');
14
15
  require('react-dropzone');
@@ -6,6 +6,7 @@ require('../../provider/SnackbarProvider.js');
6
6
  require('../../provider/MenubarContext.js');
7
7
  require('react');
8
8
  require('../../provider/CalendarProvider.js');
9
+ require('../../provider/ManagerContext.js');
9
10
 
10
11
  const Root = ({ children }) => {
11
12
  return /* @__PURE__ */ jsxRuntime.jsx(MenubarProvider.MenubarProvider, { children });
@@ -17,6 +17,7 @@ require('../../provider/MenubarContext.js');
17
17
  require('../../provider/SnackbarProvider.js');
18
18
  var useMenubar = require('../../provider/useMenubar.js');
19
19
  require('../../provider/CalendarProvider.js');
20
+ require('../../provider/ManagerContext.js');
20
21
 
21
22
  const Search = (props) => {
22
23
  const [show] = useMenubar.useMenubar();
@@ -16,6 +16,7 @@ require('../../provider/MenubarContext.js');
16
16
  require('../../provider/SnackbarProvider.js');
17
17
  var useMenubar = require('../../provider/useMenubar.js');
18
18
  require('../../provider/CalendarProvider.js');
19
+ require('../../provider/ManagerContext.js');
19
20
 
20
21
  const { container } = menubar.subItem();
21
22
  const SubItem = ({
@@ -8,6 +8,7 @@ require('react');
8
8
  require('../../provider/MenubarContext.js');
9
9
  require('../../provider/SnackbarProvider.js');
10
10
  require('../../provider/CalendarProvider.js');
11
+ require('../../provider/ManagerContext.js');
11
12
  var Context = require('./Context.js');
12
13
  require('react-dropzone');
13
14
  require('uuid');
@@ -9,6 +9,7 @@ require('react-stately');
9
9
  require('../../provider/MenubarContext.js');
10
10
  require('../../provider/SnackbarProvider.js');
11
11
  require('../../provider/CalendarProvider.js');
12
+ require('../../provider/ManagerContext.js');
12
13
  var Context = require('../Popover/Context.js');
13
14
  require('react-dropzone');
14
15
  require('uuid');
@@ -9,6 +9,7 @@ require('react-stately');
9
9
  require('../../provider/MenubarContext.js');
10
10
  require('../../provider/SnackbarProvider.js');
11
11
  require('../../provider/CalendarProvider.js');
12
+ require('../../provider/ManagerContext.js');
12
13
  require('../Popover/Context.js');
13
14
  require('react-dropzone');
14
15
  require('uuid');
@@ -27,7 +27,7 @@ const SelectMultiOption = ({
27
27
  ref: inputRef
28
28
  }
29
29
  ),
30
- labelExtractor(option)
30
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate flex-1", children: labelExtractor(option) })
31
31
  ]
32
32
  }
33
33
  );
@@ -9,6 +9,7 @@ require('react-stately');
9
9
  require('../../provider/MenubarContext.js');
10
10
  require('../../provider/SnackbarProvider.js');
11
11
  require('../../provider/CalendarProvider.js');
12
+ require('../../provider/ManagerContext.js');
12
13
  require('../Popover/Context.js');
13
14
  require('react-dropzone');
14
15
  require('uuid');
@@ -9,6 +9,7 @@ require('react-stately');
9
9
  require('../../provider/MenubarContext.js');
10
10
  require('../../provider/SnackbarProvider.js');
11
11
  require('../../provider/CalendarProvider.js');
12
+ require('../../provider/ManagerContext.js');
12
13
  var Context = require('../Popover/Context.js');
13
14
  require('react-dropzone');
14
15
  require('uuid');
@@ -45,7 +45,7 @@ const SelectTrigger = ({
45
45
  /* @__PURE__ */ jsxRuntime.jsx(
46
46
  "span",
47
47
  {
48
- className: clsx({ "mt-mili": hasValue && label }),
48
+ className: clsx("truncate", { "mt-mili": hasValue && label }),
49
49
  "data-testid": "select-placeholder",
50
50
  children: _placeholder
51
51
  }
@@ -8,6 +8,7 @@ require('react');
8
8
  require('../../provider/MenubarContext.js');
9
9
  require('../../provider/SnackbarProvider.js');
10
10
  require('../../provider/CalendarProvider.js');
11
+ require('../../provider/ManagerContext.js');
11
12
  require('../Popover/Context.js');
12
13
  require('react-dropzone');
13
14
  require('uuid');
@@ -10,6 +10,7 @@ var react = require('../utils/react.js');
10
10
  require('../provider/MenubarContext.js');
11
11
  require('../provider/SnackbarProvider.js');
12
12
  require('../provider/CalendarProvider.js');
13
+ require('../provider/ManagerContext.js');
13
14
  require('./Popover/Context.js');
14
15
  require('react-dropzone');
15
16
  require('uuid');
@@ -10,7 +10,8 @@ const Dropzone = ({
10
10
  dropzoneProps,
11
11
  selectFileText = "Select a file to start",
12
12
  dropText = "By dragging and dropping it here or clicking the button below",
13
- buttonText = "Select File"
13
+ buttonText = "Select File",
14
+ hasButton = true
14
15
  }) => {
15
16
  const { getRootProps, getInputProps, isDragActive, isFileLimitReached } = dropzoneProps;
16
17
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -25,13 +26,28 @@ const Dropzone = ({
25
26
  ),
26
27
  children: [
27
28
  /* @__PURE__ */ jsxRuntime.jsx("input", { ...getInputProps() }),
28
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col justify-center text-center items-center gap-deca", children: [
29
- /* @__PURE__ */ jsxRuntime.jsx(hi2.HiOutlineCloudArrowUp, { className: "text-primary-medium", size: 35 }),
30
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "gap-mili", children: [
31
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-lg font-semibold", "data-testid": "select-dropzone", children: selectFileText }),
32
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-secondary-medium", children: dropText })
29
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col justify-center text-center items-center", children: [
30
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
31
+ /* @__PURE__ */ jsxRuntime.jsx(
32
+ hi2.HiOutlineCloudArrowUp,
33
+ {
34
+ className: "text-primary-medium mb-nano",
35
+ size: 35
36
+ }
37
+ ),
38
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-lg font-semibold", "data-testid": "select-dropzone", children: selectFileText })
33
39
  ] }),
34
- isFileLimitReached ? /* @__PURE__ */ jsxRuntime.jsx(Tooltip.Tooltip, { text: "Voc\xEA s\xF3 pode selecionar um \xFAnico arquivo.", children: /* @__PURE__ */ jsxRuntime.jsx("button", { disabled: true, className: clsx(cortexCore.button(), "cursor-not-allowed"), children: buttonText }) }) : /* @__PURE__ */ jsxRuntime.jsx("button", { className: cortexCore.button(), children: buttonText })
40
+ hasButton ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-centi", children: [
41
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-secondary-medium", children: dropText }),
42
+ isFileLimitReached ? /* @__PURE__ */ jsxRuntime.jsx(Tooltip.Tooltip, { text: "Voc\xEA s\xF3 pode selecionar um \xFAnico arquivo.", children: /* @__PURE__ */ jsxRuntime.jsx(
43
+ "button",
44
+ {
45
+ disabled: true,
46
+ className: clsx(cortexCore.button(), "cursor-not-allowed"),
47
+ children: buttonText
48
+ }
49
+ ) }) : /* @__PURE__ */ jsxRuntime.jsx("button", { className: cortexCore.button(), children: buttonText })
50
+ ] }) : null
35
51
  ] })
36
52
  ]
37
53
  }
@@ -8,7 +8,8 @@ var io = require('react-icons/io');
8
8
  var clsx = require('clsx');
9
9
  var io5 = require('react-icons/io5');
10
10
  var cortexCore = require('@tecsinapse/cortex-core');
11
- var useManager = require('../../hooks/useManager.js');
11
+ var useManagerHelpers = require('../../hooks/useManagerHelpers.js');
12
+ var Loading = require('../Loading.js');
12
13
 
13
14
  const Manager = ({
14
15
  open,
@@ -17,7 +18,17 @@ const Manager = ({
17
18
  uploadProgressText = "Upload(s) in progress",
18
19
  onClose
19
20
  }) => {
20
- const { min, setMin, regularFiles, folderFiles } = useManager.useManager({ files });
21
+ const {
22
+ min,
23
+ setMin,
24
+ regularFiles,
25
+ folderFiles,
26
+ totalLength,
27
+ setFolders,
28
+ isLoading
29
+ } = useManagerHelpers.useManagerHelpers({
30
+ files
31
+ });
21
32
  return reactDom.createPortal(
22
33
  /* @__PURE__ */ jsxRuntime.jsx(
23
34
  "div",
@@ -42,7 +53,8 @@ const Manager = ({
42
53
  {
43
54
  variants: { variant: "filled", size: "square" },
44
55
  onClick: onClose,
45
- children: /* @__PURE__ */ jsxRuntime.jsx(io.IoMdClose, {})
56
+ disabled: isLoading,
57
+ children: isLoading ? /* @__PURE__ */ jsxRuntime.jsx(Loading.Loading, {}) : /* @__PURE__ */ jsxRuntime.jsx(io.IoMdClose, {})
46
58
  }
47
59
  )
48
60
  ] }),
@@ -52,7 +64,7 @@ const Manager = ({
52
64
  className: clsx.clsx("w-full h-auto max-h-[300px] gap-mili", {
53
65
  hidden: min,
54
66
  "flex flex-col": !min,
55
- "pb-kilo overflow-scroll pr-deca": files.length > 3
67
+ "pb-kilo overflow-scroll pr-deca": totalLength > 3
56
68
  }),
57
69
  children: [
58
70
  regularFiles.length > 0 ? regularFiles.map((file, index) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -65,7 +77,7 @@ const Manager = ({
65
77
  },
66
78
  file.uid
67
79
  )) : null,
68
- folderFiles.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(Upload.FolderList, { files: folderFiles }) : null
80
+ folderFiles.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(Upload.FolderList, { files: folderFiles, setFolders }) : null
69
81
  ]
70
82
  }
71
83
  )
@@ -3,24 +3,22 @@
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var Modal = require('./Modal.js');
5
5
  var Dropzone = require('./Dropzone.js');
6
- var Manager = require('./Manager.js');
6
+ var Files = require('./Files.js');
7
7
 
8
8
  const Root = ({
9
9
  open,
10
10
  onClose,
11
- files,
12
- onDelete,
13
11
  dropzoneProps,
14
12
  selectFileText,
15
13
  dropText,
16
14
  buttonText,
17
- uploadProgressText,
18
15
  titleModal,
19
- isManagerOpen,
20
- closeManager
16
+ onDelete,
17
+ uploadProgressText,
18
+ files
21
19
  }) => {
22
- return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
23
- /* @__PURE__ */ jsxRuntime.jsx(Modal.Modal, { onClose, open, title: titleModal, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-1 flex-col w-full gap-deca md:flex-row", children: /* @__PURE__ */ jsxRuntime.jsx(
20
+ return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsx(Modal.Modal, { onClose, open, title: titleModal, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-1 flex-col w-full gap-deca md:flex-row", children: [
21
+ /* @__PURE__ */ jsxRuntime.jsx(
24
22
  Dropzone.Dropzone,
25
23
  {
26
24
  dropzoneProps,
@@ -28,18 +26,16 @@ const Root = ({
28
26
  dropText,
29
27
  buttonText
30
28
  }
31
- ) }) }),
29
+ ),
32
30
  /* @__PURE__ */ jsxRuntime.jsx(
33
- Manager.Manager,
31
+ Files.Files,
34
32
  {
35
- open: isManagerOpen,
36
33
  files,
37
34
  onDelete,
38
- uploadProgressText,
39
- onClose: closeManager
35
+ uploadProgressText
40
36
  }
41
37
  )
42
- ] });
38
+ ] }) }) });
43
39
  };
44
40
 
45
41
  exports.Root = Root;
@@ -66,7 +66,7 @@ const File = ({
66
66
  file.status === "success" && showDelete ? /* @__PURE__ */ jsxRuntime.jsx(
67
67
  "button",
68
68
  {
69
- onClick: () => onDelete(index),
69
+ onClick: () => onDelete?.(index),
70
70
  "data-testid": "remove-button",
71
71
  className: cortexCore.button({
72
72
  className: " bg-inherit border-2 border-primary-light text-primary-light",
@@ -86,9 +86,12 @@ const File = ({
86
86
  ] }, index);
87
87
  };
88
88
  const Folder = ({ name, subItems }) => {
89
- const size = countFolderElements(
90
- subItems.map((it) => it.path),
91
- name
89
+ const size = React.useMemo(
90
+ () => countFolderElements(
91
+ subItems.map((it) => it.path),
92
+ name
93
+ ),
94
+ [subItems, name]
92
95
  );
93
96
  const loading = React.useMemo(
94
97
  () => subItems.some((it) => it.status === "uploading"),
@@ -116,7 +119,7 @@ const Folder = ({ name, subItems }) => {
116
119
  /* @__PURE__ */ jsxRuntime.jsx(ProgressBar.ProgressBar, { intent, infinite: loading })
117
120
  ] });
118
121
  };
119
- const FolderList = ({ files }) => {
122
+ const FolderList = ({ files, setFolders }) => {
120
123
  const folders = React.useMemo(() => {
121
124
  const segments = {};
122
125
  files.forEach((file) => {
@@ -127,6 +130,7 @@ const FolderList = ({ files }) => {
127
130
  });
128
131
  return segments;
129
132
  }, [files]);
133
+ React.useEffect(() => setFolders(Object.entries(folders)), [folders, setFolders]);
130
134
  return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: Object.entries(folders).map(([name, children], index) => /* @__PURE__ */ jsxRuntime.jsx(Folder, { name, subItems: children }, index)) });
131
135
  };
132
136
 
@@ -13,6 +13,7 @@ require('currency.js');
13
13
  require('../provider/MenubarContext.js');
14
14
  require('../provider/SnackbarProvider.js');
15
15
  var CalendarProvider = require('../provider/CalendarProvider.js');
16
+ require('../provider/ManagerContext.js');
16
17
 
17
18
  const useCalendarCell = ({ state, date: date$1 }) => {
18
19
  const { isTodayHighlited } = CalendarProvider.useCalendarContext();
@@ -4,22 +4,43 @@ var React = require('react');
4
4
  var reactDropzone = require('react-dropzone');
5
5
  var uuid = require('uuid');
6
6
  var types = require('../components/Uploader/types.js');
7
+ require('react/jsx-runtime');
8
+ require('@internationalized/date');
9
+ require('react-aria');
10
+ require('react-stately');
11
+ require('../components/Popover/Context.js');
12
+ require('@floating-ui/react');
13
+ require('currency.js');
14
+ require('../provider/MenubarContext.js');
15
+ require('../provider/SnackbarProvider.js');
16
+ require('../provider/CalendarProvider.js');
17
+ var ManagerContext = require('../provider/ManagerContext.js');
7
18
 
8
19
  const useFileUpload = ({
9
20
  accept = {},
10
21
  onAccept,
22
+ onOpenManager,
11
23
  onFileRejected,
12
24
  maxSize,
13
25
  allowMultiple = true,
14
26
  preventDuplicates = false,
15
27
  onDuplicate,
16
28
  hasManager = true,
17
- isFolder = false
29
+ isFolder = false,
30
+ noClick = false,
31
+ ignoreRejections = false,
32
+ uploadProgressText
18
33
  }) => {
19
- const [files, setFiles] = React.useState([]);
34
+ const {
35
+ showManager,
36
+ files,
37
+ setFiles,
38
+ isOpen: isManagerOpen,
39
+ setIsOpen: setIsManagerOpen,
40
+ uploadFiles
41
+ } = ManagerContext.useManager();
20
42
  const [duplicates, setDuplicates] = React.useState([]);
21
43
  const [isOpen, setIsOpen] = React.useState(false);
22
- const [isManagerOpen, setIsManagerOpen] = React.useState(false);
23
44
  const onOpen = React.useCallback(() => setIsOpen(true), []);
24
45
  const onClose = React.useCallback(() => setIsOpen(false), []);
25
46
  const handleRemoveFile = React.useCallback((index) => {
@@ -28,7 +49,10 @@ const useFileUpload = ({
28
49
  const handleClearFiles = React.useCallback(() => {
29
50
  setFiles([]);
30
51
  }, []);
31
- const openManager = React.useCallback(() => setIsManagerOpen(true), []);
52
+ const openManager = React.useCallback(() => {
53
+ setIsManagerOpen(true);
54
+ onOpenManager?.();
55
+ }, []);
32
56
  const closeManager = React.useCallback(() => {
33
57
  handleClearFiles();
34
58
  setIsManagerOpen(false);
@@ -41,7 +65,8 @@ const useFileUpload = ({
41
65
  },
42
66
  []
43
67
  );
44
- const onDrop = async (acceptedFiles) => {
68
+ const onDrop = async (acceptedFiles, fileRejections) => {
69
+ if (fileRejections.length > 0 && !ignoreRejections) return;
45
70
  if (hasManager) {
46
71
  openManager();
47
72
  onClose();
@@ -66,20 +91,17 @@ const useFileUpload = ({
66
91
  uid: uuid.v4(),
67
92
  isFolder
68
93
  }));
69
- try {
70
- setFiles((prevFiles) => [...prevFiles, ...newFiles]);
71
- if (onAccept) {
72
- const updatedFiles = await onAccept(newFiles);
73
- setFiles((prevFiles) => updateFiles(prevFiles, updatedFiles));
74
- }
75
- } catch (e) {
76
- const updatedFiles = newFiles.map((f) => ({
77
- ...f,
78
- status: types.FileStatus.ERROR
79
- }));
80
- setFiles((prevFiles) => updateFiles(prevFiles, updatedFiles));
81
- }
94
+ uploadFiles({ onAccept, newFiles, updateFiles });
82
95
  };
96
+ React.useEffect(() => {
97
+ if (hasManager) {
98
+ showManager?.({
99
+ onClose: closeManager,
100
+ onDelete: handleRemoveFile,
101
+ uploadProgressText
102
+ });
103
+ }
104
+ }, [handleRemoveFile, closeManager]);
83
105
  const addMimeTypes = (key, acc) => {
84
106
  types.AcceptSpecificMap[key].forEach((mimeType) => {
85
107
  acc[mimeType] = [];
@@ -101,7 +123,8 @@ const useFileUpload = ({
101
123
  accept: mappedAccept,
102
124
  multiple: allowMultiple,
103
125
  maxSize,
104
- onDropRejected: onFileRejected
126
+ onDropRejected: onFileRejected,
127
+ noClick
105
128
  });
106
129
  const isFileLimitReached = !allowMultiple && files.length > 0;
107
130
  return {
@@ -0,0 +1,34 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+
5
+ const useManagerHelpers = ({
6
+ files
7
+ }) => {
8
+ const [min, setMin] = React.useState(false);
9
+ const [folders, setFolders] = React.useState();
10
+ const folderFiles = React.useMemo(
11
+ () => files?.filter((file) => file.isFolder) ?? [],
12
+ [files]
13
+ );
14
+ const regularFiles = React.useMemo(
15
+ () => files?.filter((file) => !file.isFolder) ?? [],
16
+ [files]
17
+ );
18
+ const totalLength = (regularFiles ?? []).length + (folders ?? []).length;
19
+ const isLoading = React.useMemo(
20
+ () => files?.some((file) => file.status === "uploading"),
21
+ [files]
22
+ );
23
+ return {
24
+ min,
25
+ setMin,
26
+ folderFiles,
27
+ regularFiles,
28
+ totalLength,
29
+ setFolders,
30
+ isLoading
31
+ };
32
+ };
33
+
34
+ exports.useManagerHelpers = useManagerHelpers;
package/dist/cjs/index.js CHANGED
@@ -67,6 +67,7 @@ var SnackbarProvider = require('./provider/SnackbarProvider.js');
67
67
  var MenubarContext = require('./provider/MenubarContext.js');
68
68
  var useMenubar = require('./provider/useMenubar.js');
69
69
  var CalendarProvider = require('./provider/CalendarProvider.js');
70
+ var ManagerContext = require('./provider/ManagerContext.js');
70
71
  var context = require('./components/Accordion/context.js');
71
72
  var masks = require('./components/Input/masks.js');
72
73
  var Root = require('./components/Uploader/Root.js');
@@ -156,6 +157,8 @@ exports.MenubarContext = MenubarContext.MenubarContext;
156
157
  exports.useMenubar = useMenubar.useMenubar;
157
158
  exports.CalendarProvider = CalendarProvider.CalendarProvider;
158
159
  exports.useCalendarContext = CalendarProvider.useCalendarContext;
160
+ exports.ManagerProvider = ManagerContext.ManagerProvider;
161
+ exports.useManager = ManagerContext.useManager;
159
162
  exports.Context = context.Context;
160
163
  exports.useAccordionContext = context.useAccordionContext;
161
164
  exports.BRLMask = masks.BRLMask;