@tecsinapse/cortex-react 1.15.0-beta.9 → 1.15.1-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 (84) 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 +19 -9
  30. package/dist/cjs/hooks/useCalendarCell.js +1 -0
  31. package/dist/cjs/hooks/useFileUpload.js +44 -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 +20 -10
  65. package/dist/esm/hooks/useCalendarCell.js +1 -0
  66. package/dist/esm/hooks/useFileUpload.js +45 -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/Manager.d.ts +1 -1
  73. package/dist/types/components/Uploader/Root.d.ts +1 -1
  74. package/dist/types/components/Uploader/Upload.d.ts +1 -1
  75. package/dist/types/components/Uploader/index.d.ts +3 -3
  76. package/dist/types/components/Uploader/types.d.ts +15 -8
  77. package/dist/types/hooks/useFileUpload.d.ts +9 -4
  78. package/dist/types/hooks/useManagerHelpers.d.ts +15 -0
  79. package/dist/types/provider/ManagerContext.d.ts +20 -0
  80. package/dist/types/provider/index.d.ts +1 -0
  81. package/package.json +3 -3
  82. package/dist/cjs/hooks/useManager.js +0 -23
  83. package/dist/esm/hooks/useManager.js +0 -21
  84. 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,16 +8,27 @@ 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
12
 
13
13
  const Manager = ({
14
14
  open,
15
15
  files,
16
16
  onDelete,
17
17
  uploadProgressText = "Upload(s) in progress",
18
+ uploadSuccessText = "Upload(s) completed",
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",
@@ -36,12 +47,13 @@ const Manager = ({
36
47
  children: min ? /* @__PURE__ */ jsxRuntime.jsx(io5.IoChevronUp, {}) : /* @__PURE__ */ jsxRuntime.jsx(io5.IoChevronDown, {})
37
48
  }
38
49
  ),
39
- /* @__PURE__ */ jsxRuntime.jsx("h3", { "data-testid": "upload-progress", children: uploadProgressText }),
50
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { "data-testid": "upload-progress", children: isLoading ? uploadProgressText : uploadSuccessText }),
40
51
  /* @__PURE__ */ jsxRuntime.jsx(
41
52
  Button.Button,
42
53
  {
43
54
  variants: { variant: "filled", size: "square" },
44
55
  onClick: onClose,
56
+ disabled: isLoading,
45
57
  children: /* @__PURE__ */ jsxRuntime.jsx(io.IoMdClose, {})
46
58
  }
47
59
  )
@@ -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;
@@ -44,6 +44,15 @@ const File = ({
44
44
  return "info";
45
45
  }
46
46
  }
47
+ const formatFileSize = (size) => {
48
+ const units = ["B", "KB", "MB", "GB"];
49
+ let i = 0;
50
+ while (size >= 1024 && i < units.length - 1) {
51
+ size /= 1024;
52
+ i++;
53
+ }
54
+ return `${size.toFixed(2)} ${units[i]}`;
55
+ };
47
56
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col w-full", children: [
48
57
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between border rounded-t-mili shadow p-mili", children: [
49
58
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-centi", children: [
@@ -57,16 +66,13 @@ const File = ({
57
66
  ) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "border-2 text-kilo text-primary-medium w-tera h-tera flex items-center justify-center rounded-mili", children: /* @__PURE__ */ jsxRuntime.jsx(fa6.FaRegFileLines, {}) }),
58
67
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-col", children: [
59
68
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-semibold truncate max-w-[200px]", children: file.file.name }),
60
- /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm text-gray-500", children: [
61
- (file.file.size / 1024).toFixed(2),
62
- " KB"
63
- ] })
69
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-gray-500", children: formatFileSize(file.file.size) })
64
70
  ] })
65
71
  ] }),
66
72
  file.status === "success" && showDelete ? /* @__PURE__ */ jsxRuntime.jsx(
67
73
  "button",
68
74
  {
69
- onClick: () => onDelete(index),
75
+ onClick: () => onDelete?.(index),
70
76
  "data-testid": "remove-button",
71
77
  className: cortexCore.button({
72
78
  className: " bg-inherit border-2 border-primary-light text-primary-light",
@@ -86,9 +92,12 @@ const File = ({
86
92
  ] }, index);
87
93
  };
88
94
  const Folder = ({ name, subItems }) => {
89
- const size = countFolderElements(
90
- subItems.map((it) => it.path),
91
- name
95
+ const size = React.useMemo(
96
+ () => countFolderElements(
97
+ subItems.map((it) => it.path),
98
+ name
99
+ ),
100
+ [subItems, name]
92
101
  );
93
102
  const loading = React.useMemo(
94
103
  () => subItems.some((it) => it.status === "uploading"),
@@ -116,7 +125,7 @@ const Folder = ({ name, subItems }) => {
116
125
  /* @__PURE__ */ jsxRuntime.jsx(ProgressBar.ProgressBar, { intent, infinite: loading })
117
126
  ] });
118
127
  };
119
- const FolderList = ({ files }) => {
128
+ const FolderList = ({ files, setFolders }) => {
120
129
  const folders = React.useMemo(() => {
121
130
  const segments = {};
122
131
  files.forEach((file) => {
@@ -127,6 +136,7 @@ const FolderList = ({ files }) => {
127
136
  });
128
137
  return segments;
129
138
  }, [files]);
139
+ React.useEffect(() => setFolders(Object.entries(folders)), [folders, setFolders]);
130
140
  return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: Object.entries(folders).map(([name, children], index) => /* @__PURE__ */ jsxRuntime.jsx(Folder, { name, subItems: children }, index)) });
131
141
  };
132
142
 
@@ -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,44 @@ 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,
33
+ uploadSuccessText
18
34
  }) => {
19
- const [files, setFiles] = React.useState([]);
35
+ const {
36
+ showManager,
37
+ files,
38
+ setFiles,
39
+ isOpen: isManagerOpen,
40
+ setIsOpen: setIsManagerOpen,
41
+ uploadFiles
42
+ } = ManagerContext.useManager();
20
43
  const [duplicates, setDuplicates] = React.useState([]);
21
44
  const [isOpen, setIsOpen] = React.useState(false);
22
- const [isManagerOpen, setIsManagerOpen] = React.useState(false);
23
45
  const onOpen = React.useCallback(() => setIsOpen(true), []);
24
46
  const onClose = React.useCallback(() => setIsOpen(false), []);
25
47
  const handleRemoveFile = React.useCallback((index) => {
@@ -28,7 +50,10 @@ const useFileUpload = ({
28
50
  const handleClearFiles = React.useCallback(() => {
29
51
  setFiles([]);
30
52
  }, []);
31
- const openManager = React.useCallback(() => setIsManagerOpen(true), []);
53
+ const openManager = React.useCallback(() => {
54
+ setIsManagerOpen(true);
55
+ onOpenManager?.();
56
+ }, []);
32
57
  const closeManager = React.useCallback(() => {
33
58
  handleClearFiles();
34
59
  setIsManagerOpen(false);
@@ -41,7 +66,8 @@ const useFileUpload = ({
41
66
  },
42
67
  []
43
68
  );
44
- const onDrop = async (acceptedFiles) => {
69
+ const onDrop = async (acceptedFiles, fileRejections) => {
70
+ if (fileRejections.length > 0 && !ignoreRejections) return;
45
71
  if (hasManager) {
46
72
  openManager();
47
73
  onClose();
@@ -66,20 +92,18 @@ const useFileUpload = ({
66
92
  uid: uuid.v4(),
67
93
  isFolder
68
94
  }));
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
- }
95
+ uploadFiles({ onAccept, newFiles, updateFiles });
82
96
  };
97
+ React.useEffect(() => {
98
+ if (hasManager) {
99
+ showManager?.({
100
+ onClose: closeManager,
101
+ onDelete: handleRemoveFile,
102
+ uploadProgressText,
103
+ uploadSuccessText
104
+ });
105
+ }
106
+ }, [handleRemoveFile, closeManager]);
83
107
  const addMimeTypes = (key, acc) => {
84
108
  types.AcceptSpecificMap[key].forEach((mimeType) => {
85
109
  acc[mimeType] = [];
@@ -101,7 +125,8 @@ const useFileUpload = ({
101
125
  accept: mappedAccept,
102
126
  multiple: allowMultiple,
103
127
  maxSize,
104
- onDropRejected: onFileRejected
128
+ onDropRejected: onFileRejected,
129
+ noClick
105
130
  });
106
131
  const isFileLimitReached = !allowMultiple && files.length > 0;
107
132
  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;