@tecsinapse/cortex-react 1.15.0-beta.2 → 1.15.0-beta.21

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 (80) 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/MultiOptions.js +1 -0
  21. package/dist/cjs/components/Select/Options.js +1 -0
  22. package/dist/cjs/components/TimePicker/TimePickerInput.js +1 -0
  23. package/dist/cjs/components/Tooltip.js +1 -0
  24. package/dist/cjs/components/Uploader/Dropzone.js +23 -7
  25. package/dist/cjs/components/Uploader/Manager.js +26 -20
  26. package/dist/cjs/components/Uploader/Modal.js +1 -2
  27. package/dist/cjs/components/Uploader/Root.js +10 -14
  28. package/dist/cjs/components/Uploader/Upload.js +74 -2
  29. package/dist/cjs/hooks/useCalendarCell.js +1 -0
  30. package/dist/cjs/hooks/useFileUpload.js +56 -28
  31. package/dist/cjs/hooks/useManagerHelpers.js +29 -0
  32. package/dist/cjs/index.js +3 -0
  33. package/dist/cjs/provider/ManagerContext.js +125 -0
  34. package/dist/cjs/provider/MenubarProvider.js +1 -0
  35. package/dist/cjs/styles/progressBar.js +1 -1
  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/MultiOptions.js +1 -0
  56. package/dist/esm/components/Select/Options.js +1 -0
  57. package/dist/esm/components/TimePicker/TimePickerInput.js +1 -0
  58. package/dist/esm/components/Tooltip.js +1 -0
  59. package/dist/esm/components/Uploader/Dropzone.js +23 -7
  60. package/dist/esm/components/Uploader/Manager.js +28 -22
  61. package/dist/esm/components/Uploader/Modal.js +1 -2
  62. package/dist/esm/components/Uploader/Root.js +11 -15
  63. package/dist/esm/components/Uploader/Upload.js +75 -5
  64. package/dist/esm/hooks/useCalendarCell.js +1 -0
  65. package/dist/esm/hooks/useFileUpload.js +57 -29
  66. package/dist/esm/hooks/useManagerHelpers.js +27 -0
  67. package/dist/esm/index.js +1 -0
  68. package/dist/esm/provider/ManagerContext.js +122 -0
  69. package/dist/esm/provider/MenubarProvider.js +1 -0
  70. package/dist/esm/styles/progressBar.js +1 -1
  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 +3 -1
  74. package/dist/types/components/Uploader/index.d.ts +2 -2
  75. package/dist/types/components/Uploader/types.d.ts +31 -7
  76. package/dist/types/hooks/useFileUpload.d.ts +8 -4
  77. package/dist/types/hooks/useManagerHelpers.d.ts +14 -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
@@ -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');
@@ -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');
@@ -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
  }
@@ -5,10 +5,10 @@ var reactDom = require('react-dom');
5
5
  var Upload = require('./Upload.js');
6
6
  var Button = require('../Button.js');
7
7
  var io = require('react-icons/io');
8
- var React = require('react');
9
8
  var clsx = require('clsx');
10
9
  var io5 = require('react-icons/io5');
11
10
  var cortexCore = require('@tecsinapse/cortex-core');
11
+ var useManagerHelpers = require('../../hooks/useManagerHelpers.js');
12
12
 
13
13
  const Manager = ({
14
14
  open,
@@ -17,13 +17,15 @@ const Manager = ({
17
17
  uploadProgressText = "Upload(s) in progress",
18
18
  onClose
19
19
  }) => {
20
- const [min, setMin] = React.useState(false);
20
+ const { min, setMin, regularFiles, folderFiles, totalLength, setFolders } = useManagerHelpers.useManagerHelpers({
21
+ files
22
+ });
21
23
  return reactDom.createPortal(
22
24
  /* @__PURE__ */ jsxRuntime.jsx(
23
25
  "div",
24
26
  {
25
27
  className: cortexCore.manager({
26
- className: "h-auto max-h-[350px] w-[450px] overflow-hidden pt-deca",
28
+ className: "h-auto max-h-[350px] w-[450px] overflow-hidden",
27
29
  open
28
30
  }),
29
31
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col w-full h-full gap-mili items-center", children: [
@@ -31,9 +33,9 @@ const Manager = ({
31
33
  /* @__PURE__ */ jsxRuntime.jsx(
32
34
  Button.Button,
33
35
  {
34
- variants: { variant: "outline", size: "square" },
36
+ variants: { variant: "text", size: "square" },
35
37
  onClick: () => setMin((min2) => !min2),
36
- children: min ? /* @__PURE__ */ jsxRuntime.jsx(io5.IoArrowUp, {}) : /* @__PURE__ */ jsxRuntime.jsx(io5.IoArrowDown, {})
38
+ children: min ? /* @__PURE__ */ jsxRuntime.jsx(io5.IoChevronUp, {}) : /* @__PURE__ */ jsxRuntime.jsx(io5.IoChevronDown, {})
37
39
  }
38
40
  ),
39
41
  /* @__PURE__ */ jsxRuntime.jsx("h3", { "data-testid": "upload-progress", children: uploadProgressText }),
@@ -46,23 +48,27 @@ const Manager = ({
46
48
  }
47
49
  )
48
50
  ] }),
49
- /* @__PURE__ */ jsxRuntime.jsx(
51
+ /* @__PURE__ */ jsxRuntime.jsxs(
50
52
  "div",
51
53
  {
52
- className: clsx.clsx(
53
- "w-full overflow-scroll h-auto max-h-[300px] px-deca",
54
- { hidden: min, "flex flex-col": !min, "pb-deca": files.length > 3 }
55
- ),
56
- children: files.map((file, index) => /* @__PURE__ */ jsxRuntime.jsx(
57
- Upload.File,
58
- {
59
- file,
60
- index,
61
- onDelete,
62
- showDelete: false
63
- },
64
- file.uid
65
- ))
54
+ className: clsx.clsx("w-full h-auto max-h-[300px] gap-mili", {
55
+ hidden: min,
56
+ "flex flex-col": !min,
57
+ "pb-kilo overflow-scroll pr-deca": totalLength > 3
58
+ }),
59
+ children: [
60
+ regularFiles.length > 0 ? regularFiles.map((file, index) => /* @__PURE__ */ jsxRuntime.jsx(
61
+ Upload.File,
62
+ {
63
+ file,
64
+ index,
65
+ onDelete,
66
+ showDelete: false
67
+ },
68
+ file.uid
69
+ )) : null,
70
+ folderFiles.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(Upload.FolderList, { files: folderFiles, setFolders }) : null
71
+ ]
66
72
  }
67
73
  )
68
74
  ] })
@@ -21,8 +21,7 @@ const Modal = ({
21
21
  className: "flex flex-col bg-secondary-xlight rounded-mili min-w-[70vw] max-w-[95vh] max-h-[95vh] overflow-auto",
22
22
  children: [
23
23
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex w-full items-center justify-between mb-deca", children: [
24
- /* @__PURE__ */ jsxRuntime.jsx("div", {}),
25
- /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-deca font-semibold", children: title }),
24
+ /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-deca font-semibold ml-tera flex-1 text-center", children: title }),
26
25
  /* @__PURE__ */ jsxRuntime.jsx(
27
26
  "button",
28
27
  {
@@ -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;
@@ -2,10 +2,32 @@
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var cortexCore = require('@tecsinapse/cortex-core');
5
+ var React = require('react');
5
6
  var fa6 = require('react-icons/fa6');
6
7
  var md = require('react-icons/md');
7
8
  var ProgressBar = require('../ProgressBar/ProgressBar.js');
8
9
 
10
+ const recursiveCountFolderElements = (node) => {
11
+ let count = 0;
12
+ for (const key in node) {
13
+ count++;
14
+ count += recursiveCountFolderElements(node[key]);
15
+ }
16
+ return count;
17
+ };
18
+ const countFolderElements = (paths, root) => {
19
+ if (!paths.length) return 0;
20
+ const tree = {};
21
+ for (const path of paths) {
22
+ const parts = path.replace(root + "/", "").split("/").filter(Boolean);
23
+ let current = tree;
24
+ for (const part of parts) {
25
+ if (!current[part]) current[part] = {};
26
+ current = current[part];
27
+ }
28
+ }
29
+ return recursiveCountFolderElements(tree);
30
+ };
9
31
  const File = ({
10
32
  file,
11
33
  index,
@@ -22,7 +44,7 @@ const File = ({
22
44
  return "info";
23
45
  }
24
46
  }
25
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col", children: [
47
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col w-full", children: [
26
48
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between border rounded-t-mili shadow p-mili", children: [
27
49
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-centi", children: [
28
50
  file.file && file.file.type.startsWith("image/") ? /* @__PURE__ */ jsxRuntime.jsx(
@@ -44,7 +66,7 @@ const File = ({
44
66
  file.status === "success" && showDelete ? /* @__PURE__ */ jsxRuntime.jsx(
45
67
  "button",
46
68
  {
47
- onClick: () => onDelete(index),
69
+ onClick: () => onDelete?.(index),
48
70
  "data-testid": "remove-button",
49
71
  className: cortexCore.button({
50
72
  className: " bg-inherit border-2 border-primary-light text-primary-light",
@@ -63,5 +85,55 @@ const File = ({
63
85
  )
64
86
  ] }, index);
65
87
  };
88
+ const Folder = ({ name, subItems }) => {
89
+ const size = React.useMemo(
90
+ () => countFolderElements(
91
+ subItems.map((it) => it.path),
92
+ name
93
+ ),
94
+ [subItems, name]
95
+ );
96
+ const loading = React.useMemo(
97
+ () => subItems.some((it) => it.status === "uploading"),
98
+ [subItems]
99
+ );
100
+ const intent = React.useMemo(() => {
101
+ if (loading) return "info";
102
+ if ((subItems ?? []).some((item) => item.status === "error") && (subItems ?? []).some((item) => item.status === "success")) {
103
+ return "warning";
104
+ }
105
+ return "success";
106
+ }, [subItems]);
107
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col w-full", children: [
108
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-between border rounded-t-mili shadow p-mili", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-centi", children: [
109
+ /* @__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.FaRegFolder, {}) }),
110
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-col", children: [
111
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-semibold truncate max-w-[200px]", children: name }),
112
+ /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm text-gray-500", children: [
113
+ size,
114
+ " ",
115
+ size > 1 ? "itens" : "item"
116
+ ] })
117
+ ] })
118
+ ] }) }),
119
+ /* @__PURE__ */ jsxRuntime.jsx(ProgressBar.ProgressBar, { intent, infinite: loading })
120
+ ] });
121
+ };
122
+ const FolderList = ({ files, setFolders }) => {
123
+ const folders = React.useMemo(() => {
124
+ const segments = {};
125
+ files.forEach((file) => {
126
+ const path = file.file.relativePath.replace(/^\//, "");
127
+ const root = path.split("/")[0];
128
+ const current = Array.from(segments?.[root] ?? []);
129
+ segments[root] = [...current, { path, status: file.status }];
130
+ });
131
+ return segments;
132
+ }, [files]);
133
+ React.useEffect(() => setFolders(Object.entries(folders)), [folders, setFolders]);
134
+ return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: Object.entries(folders).map(([name, children], index) => /* @__PURE__ */ jsxRuntime.jsx(Folder, { name, subItems: children }, index)) });
135
+ };
66
136
 
67
137
  exports.File = File;
138
+ exports.Folder = Folder;
139
+ exports.FolderList = FolderList;
@@ -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();