@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
@@ -0,0 +1,125 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var Manager = require('../components/Uploader/Manager.js');
6
+ require('clsx');
7
+ require('../components/Accordion/context.js');
8
+ require('react-icons/lia');
9
+ require('@internationalized/date');
10
+ require('../components/Badge.js');
11
+ require('react-icons/md');
12
+ require('../components/Card.js');
13
+ require('../components/Button.js');
14
+ require('react-aria');
15
+ require('react-stately');
16
+ require('./MenubarContext.js');
17
+ require('./SnackbarProvider.js');
18
+ require('./CalendarProvider.js');
19
+ require('../components/Popover/Context.js');
20
+ require('react-dropzone');
21
+ require('uuid');
22
+ var types = require('../components/Uploader/types.js');
23
+ require('@floating-ui/react');
24
+ require('currency.js');
25
+ require('../components/Calendar/CalendarCell.js');
26
+ require('@tecsinapse/cortex-core');
27
+ require('react-icons/fa');
28
+ require('react-icons/io');
29
+ require('embla-carousel-react');
30
+ require('embla-carousel-autoplay');
31
+ require('../components/Checkbox.js');
32
+ require('../components/ColorPicker.js');
33
+ require('../components/DatePicker/DateSegment.js');
34
+ require('../components/DatePicker/DatePickerInputBase.js');
35
+ require('../components/GroupButton.js');
36
+ require('../components/Hint.js');
37
+ require('../components/Input/Box.js');
38
+ require('../components/Input/Face.js');
39
+ require('../components/Input/Left.js');
40
+ require('../components/Input/Mask.js');
41
+ require('../components/Input/Right.js');
42
+ require('../components/Input/Root.js');
43
+ require('../components/Input/Search.js');
44
+ require('../components/Menubar/Left.js');
45
+ require('../styles/menubar.js');
46
+ require('../components/Menubar/Right.js');
47
+ require('../components/Menubar/Dropdown.js');
48
+ require('../components/Menubar/MostUsed.js');
49
+ require('../components/Menubar/MostUsedItem.js');
50
+ require('../components/Menubar/Header.js');
51
+ require('../components/Menubar/Item.js');
52
+ require('./CategoriesContext.js');
53
+ require('../components/Menubar/SubItem.js');
54
+ require('../components/Modal.js');
55
+ require('../components/ProgressBar/Progress.js');
56
+ require('../components/RadioButton.js');
57
+ require('../components/Select/GroupedOptions.js');
58
+ require('../components/Select/context.js');
59
+ require('../components/Select/MultiGroupedOptions.js');
60
+ require('../components/Select/MultiOptions.js');
61
+ require('../components/Select/Options.js');
62
+ require('../components/Select/Trigger.js');
63
+ require('../components/Snackbar/BaseSnackbar.js');
64
+ require('../styles/stepNodeVariants.js');
65
+ require('../components/Tag.js');
66
+ require('../components/TextArea/Box.js');
67
+ require('../components/TextArea/Face.js');
68
+ require('../components/TextArea/Left.js');
69
+ require('../components/TextArea/Right.js');
70
+ require('../components/TextArea/Root.js');
71
+ require('../components/TimePicker/TimeFieldInput.js');
72
+ require('../components/Toggle.js');
73
+ require('../components/Tooltip.js');
74
+ require('react-icons/hi2');
75
+ require('react-icons/fa6');
76
+ require('react-dom');
77
+
78
+ const ManagerContext = React.createContext(null);
79
+ const ManagerProvider = ({ children }) => {
80
+ const [props, setProps] = React.useState({});
81
+ const [files, setFiles] = React.useState([]);
82
+ const [isOpen, setIsOpen] = React.useState(false);
83
+ const uploadFiles = async ({
84
+ onAccept,
85
+ newFiles,
86
+ updateFiles
87
+ }) => {
88
+ try {
89
+ setFiles((prevFiles) => [...prevFiles, ...newFiles]);
90
+ if (onAccept) {
91
+ const updatedFiles = await onAccept(newFiles);
92
+ setFiles((prevFiles) => updateFiles(prevFiles, updatedFiles));
93
+ }
94
+ } catch (e) {
95
+ const updatedFiles = newFiles.map((f) => ({
96
+ ...f,
97
+ status: types.FileStatus.ERROR
98
+ }));
99
+ setFiles((prevFiles) => updateFiles(prevFiles, updatedFiles));
100
+ }
101
+ };
102
+ const showManager = (_props) => {
103
+ setProps(_props);
104
+ };
105
+ return /* @__PURE__ */ jsxRuntime.jsxs(
106
+ ManagerContext.Provider,
107
+ {
108
+ value: { showManager, files, setFiles, isOpen, setIsOpen, uploadFiles },
109
+ children: [
110
+ children,
111
+ /* @__PURE__ */ jsxRuntime.jsx(Manager.Manager, { files, open: isOpen, ...props })
112
+ ]
113
+ }
114
+ );
115
+ };
116
+ const useManager = () => {
117
+ const context = React.useContext(ManagerContext);
118
+ if (!context) {
119
+ throw new Error("useManager must be used within a ManagerProvider");
120
+ }
121
+ return context;
122
+ };
123
+
124
+ exports.ManagerProvider = ManagerProvider;
125
+ exports.useManager = useManager;
@@ -8,6 +8,7 @@ require('react-stately');
8
8
  var MenubarContext = require('./MenubarContext.js');
9
9
  require('./SnackbarProvider.js');
10
10
  require('./CalendarProvider.js');
11
+ require('./ManagerContext.js');
11
12
  require('../components/Popover/Context.js');
12
13
  require('react-dropzone');
13
14
  require('uuid');
@@ -6,6 +6,7 @@ import 'react-aria';
6
6
  import '../../provider/MenubarContext.js';
7
7
  import '../../provider/SnackbarProvider.js';
8
8
  import { CalendarProvider } from '../../provider/CalendarProvider.js';
9
+ import '../../provider/ManagerContext.js';
9
10
  import 'react-stately';
10
11
  import '../Popover/Context.js';
11
12
  import 'react-dropzone';
@@ -7,6 +7,10 @@ import { useCalendarCell } from '../../hooks/useCalendarCell.js';
7
7
  import '../Popover/Context.js';
8
8
  import 'react-dropzone';
9
9
  import 'uuid';
10
+ import '../../provider/MenubarContext.js';
11
+ import '../../provider/SnackbarProvider.js';
12
+ import '../../provider/CalendarProvider.js';
13
+ import '../../provider/ManagerContext.js';
10
14
  import '@floating-ui/react';
11
15
  import 'currency.js';
12
16
  import { calendarCell } from '../../styles/calendar-cell.js';
@@ -6,6 +6,7 @@ import 'react';
6
6
  import '../../provider/MenubarContext.js';
7
7
  import '../../provider/SnackbarProvider.js';
8
8
  import '../../provider/CalendarProvider.js';
9
+ import '../../provider/ManagerContext.js';
9
10
  import { useCalendarGrid } from '../../hooks/useCalendarGrid.js';
10
11
  import '../Popover/Context.js';
11
12
  import 'react-dropzone';
@@ -6,6 +6,7 @@ import 'react';
6
6
  import '../../provider/MenubarContext.js';
7
7
  import '../../provider/SnackbarProvider.js';
8
8
  import { CalendarProvider } from '../../provider/CalendarProvider.js';
9
+ import '../../provider/ManagerContext.js';
9
10
  import '../Popover/Context.js';
10
11
  import 'react-dropzone';
11
12
  import 'uuid';
@@ -7,6 +7,7 @@ import 'react';
7
7
  import '../../provider/MenubarContext.js';
8
8
  import '../../provider/SnackbarProvider.js';
9
9
  import '../../provider/CalendarProvider.js';
10
+ import '../../provider/ManagerContext.js';
10
11
  import { useDatePickerInput } from '../../hooks/useDatePickerInput.js';
11
12
  import { useDatePickerInputCommon } from '../../hooks/useDatePickerInputCommon.js';
12
13
  import 'react-dropzone';
@@ -7,6 +7,7 @@ import 'react';
7
7
  import '../../provider/MenubarContext.js';
8
8
  import '../../provider/SnackbarProvider.js';
9
9
  import '../../provider/CalendarProvider.js';
10
+ import '../../provider/ManagerContext.js';
10
11
  import { useDatePickerInputCommon } from '../../hooks/useDatePickerInputCommon.js';
11
12
  import { useDateRangePickerInput } from '../../hooks/useDateRangePickerInput.js';
12
13
  import 'react-dropzone';
@@ -6,6 +6,7 @@ import 'react-stately';
6
6
  import '../../provider/MenubarContext.js';
7
7
  import '../../provider/SnackbarProvider.js';
8
8
  import '../../provider/CalendarProvider.js';
9
+ import '../../provider/ManagerContext.js';
9
10
  import '../Popover/Context.js';
10
11
  import 'react-dropzone';
11
12
  import 'uuid';
@@ -7,6 +7,7 @@ import 'react-stately';
7
7
  import '../../provider/MenubarContext.js';
8
8
  import '../../provider/SnackbarProvider.js';
9
9
  import '../../provider/CalendarProvider.js';
10
+ import '../../provider/ManagerContext.js';
10
11
  import '../Popover/Context.js';
11
12
  import { useDebouncedState } from '../../hooks/useDebouncedState.js';
12
13
  import 'react-dropzone';
@@ -7,6 +7,7 @@ import 'react';
7
7
  import '../../provider/MenubarContext.js';
8
8
  import '../../provider/SnackbarProvider.js';
9
9
  import '../../provider/CalendarProvider.js';
10
+ import '../../provider/ManagerContext.js';
10
11
  import '../Popover/Context.js';
11
12
  import { useDimensions } from '../../hooks/useDimensions.js';
12
13
  import 'react-dropzone';
@@ -14,6 +14,7 @@ import '../../provider/MenubarContext.js';
14
14
  import '../../provider/SnackbarProvider.js';
15
15
  import { useMenubar } from '../../provider/useMenubar.js';
16
16
  import '../../provider/CalendarProvider.js';
17
+ import '../../provider/ManagerContext.js';
17
18
 
18
19
  const { dropdown } = menubar();
19
20
  const Dropdown = ({ children, ...rest }) => {
@@ -13,6 +13,7 @@ import '../../provider/MenubarContext.js';
13
13
  import '../../provider/SnackbarProvider.js';
14
14
  import { useMenubar } from '../../provider/useMenubar.js';
15
15
  import '../../provider/CalendarProvider.js';
16
+ import '../../provider/ManagerContext.js';
16
17
  import { menubar } from '../../styles/menubar.js';
17
18
  import { Button } from '../Button.js';
18
19
 
@@ -13,6 +13,7 @@ import '../../provider/MenubarContext.js';
13
13
  import '../../provider/SnackbarProvider.js';
14
14
  import { useMenubar } from '../../provider/useMenubar.js';
15
15
  import '../../provider/CalendarProvider.js';
16
+ import '../../provider/ManagerContext.js';
16
17
  import { item } from '../../styles/menubar.js';
17
18
  import IconControlSubItem from './IconControlSubItem.js';
18
19
  import ItemLink from './ItemLink.js';
@@ -7,6 +7,7 @@ import 'react';
7
7
  import '../../provider/MenubarContext.js';
8
8
  import '../../provider/SnackbarProvider.js';
9
9
  import '../../provider/CalendarProvider.js';
10
+ import '../../provider/ManagerContext.js';
10
11
  import '../Popover/Context.js';
11
12
  import { useDimensions } from '../../hooks/useDimensions.js';
12
13
  import 'react-dropzone';
@@ -4,6 +4,7 @@ import '../../provider/SnackbarProvider.js';
4
4
  import '../../provider/MenubarContext.js';
5
5
  import 'react';
6
6
  import '../../provider/CalendarProvider.js';
7
+ import '../../provider/ManagerContext.js';
7
8
 
8
9
  const Root = ({ children }) => {
9
10
  return /* @__PURE__ */ jsx(MenubarProvider, { children });
@@ -15,6 +15,7 @@ import '../../provider/MenubarContext.js';
15
15
  import '../../provider/SnackbarProvider.js';
16
16
  import { useMenubar } from '../../provider/useMenubar.js';
17
17
  import '../../provider/CalendarProvider.js';
18
+ import '../../provider/ManagerContext.js';
18
19
 
19
20
  const Search = (props) => {
20
21
  const [show] = useMenubar();
@@ -14,6 +14,7 @@ import '../../provider/MenubarContext.js';
14
14
  import '../../provider/SnackbarProvider.js';
15
15
  import { useMenubar } from '../../provider/useMenubar.js';
16
16
  import '../../provider/CalendarProvider.js';
17
+ import '../../provider/ManagerContext.js';
17
18
 
18
19
  const { container } = subItem();
19
20
  const SubItem = ({
@@ -6,6 +6,7 @@ import 'react';
6
6
  import '../../provider/MenubarContext.js';
7
7
  import '../../provider/SnackbarProvider.js';
8
8
  import '../../provider/CalendarProvider.js';
9
+ import '../../provider/ManagerContext.js';
9
10
  import { Context } from './Context.js';
10
11
  import 'react-dropzone';
11
12
  import 'uuid';
@@ -7,6 +7,7 @@ import 'react-stately';
7
7
  import '../../provider/MenubarContext.js';
8
8
  import '../../provider/SnackbarProvider.js';
9
9
  import '../../provider/CalendarProvider.js';
10
+ import '../../provider/ManagerContext.js';
10
11
  import { usePopoverContext } from '../Popover/Context.js';
11
12
  import 'react-dropzone';
12
13
  import 'uuid';
@@ -7,6 +7,7 @@ import 'react-stately';
7
7
  import '../../provider/MenubarContext.js';
8
8
  import '../../provider/SnackbarProvider.js';
9
9
  import '../../provider/CalendarProvider.js';
10
+ import '../../provider/ManagerContext.js';
10
11
  import '../Popover/Context.js';
11
12
  import 'react-dropzone';
12
13
  import 'uuid';
@@ -25,7 +25,7 @@ const SelectMultiOption = ({
25
25
  ref: inputRef
26
26
  }
27
27
  ),
28
- labelExtractor(option$1)
28
+ /* @__PURE__ */ jsx("span", { className: "truncate flex-1", children: labelExtractor(option$1) })
29
29
  ]
30
30
  }
31
31
  );
@@ -7,6 +7,7 @@ import 'react-stately';
7
7
  import '../../provider/MenubarContext.js';
8
8
  import '../../provider/SnackbarProvider.js';
9
9
  import '../../provider/CalendarProvider.js';
10
+ import '../../provider/ManagerContext.js';
10
11
  import '../Popover/Context.js';
11
12
  import 'react-dropzone';
12
13
  import 'uuid';
@@ -7,6 +7,7 @@ import 'react-stately';
7
7
  import '../../provider/MenubarContext.js';
8
8
  import '../../provider/SnackbarProvider.js';
9
9
  import '../../provider/CalendarProvider.js';
10
+ import '../../provider/ManagerContext.js';
10
11
  import { usePopoverContext } from '../Popover/Context.js';
11
12
  import 'react-dropzone';
12
13
  import 'uuid';
@@ -43,7 +43,7 @@ const SelectTrigger = ({
43
43
  /* @__PURE__ */ jsx(
44
44
  "span",
45
45
  {
46
- className: clsx({ "mt-mili": hasValue && label }),
46
+ className: clsx("truncate", { "mt-mili": hasValue && label }),
47
47
  "data-testid": "select-placeholder",
48
48
  children: _placeholder
49
49
  }
@@ -6,6 +6,7 @@ import 'react';
6
6
  import '../../provider/MenubarContext.js';
7
7
  import '../../provider/SnackbarProvider.js';
8
8
  import '../../provider/CalendarProvider.js';
9
+ import '../../provider/ManagerContext.js';
9
10
  import '../Popover/Context.js';
10
11
  import 'react-dropzone';
11
12
  import 'uuid';
@@ -8,6 +8,7 @@ import { cloneWithProps } from '../utils/react.js';
8
8
  import '../provider/MenubarContext.js';
9
9
  import '../provider/SnackbarProvider.js';
10
10
  import '../provider/CalendarProvider.js';
11
+ import '../provider/ManagerContext.js';
11
12
  import './Popover/Context.js';
12
13
  import 'react-dropzone';
13
14
  import 'uuid';
@@ -8,7 +8,8 @@ const Dropzone = ({
8
8
  dropzoneProps,
9
9
  selectFileText = "Select a file to start",
10
10
  dropText = "By dragging and dropping it here or clicking the button below",
11
- buttonText = "Select File"
11
+ buttonText = "Select File",
12
+ hasButton = true
12
13
  }) => {
13
14
  const { getRootProps, getInputProps, isDragActive, isFileLimitReached } = dropzoneProps;
14
15
  return /* @__PURE__ */ jsxs(
@@ -23,13 +24,28 @@ const Dropzone = ({
23
24
  ),
24
25
  children: [
25
26
  /* @__PURE__ */ jsx("input", { ...getInputProps() }),
26
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col justify-center text-center items-center gap-deca", children: [
27
- /* @__PURE__ */ jsx(HiOutlineCloudArrowUp, { className: "text-primary-medium", size: 35 }),
28
- /* @__PURE__ */ jsxs("div", { className: "gap-mili", children: [
29
- /* @__PURE__ */ jsx("p", { className: "text-lg font-semibold", "data-testid": "select-dropzone", children: selectFileText }),
30
- /* @__PURE__ */ jsx("p", { className: "text-sm text-secondary-medium", children: dropText })
27
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col justify-center text-center items-center", children: [
28
+ /* @__PURE__ */ jsxs("div", { children: [
29
+ /* @__PURE__ */ jsx(
30
+ HiOutlineCloudArrowUp,
31
+ {
32
+ className: "text-primary-medium mb-nano",
33
+ size: 35
34
+ }
35
+ ),
36
+ /* @__PURE__ */ jsx("p", { className: "text-lg font-semibold", "data-testid": "select-dropzone", children: selectFileText })
31
37
  ] }),
32
- isFileLimitReached ? /* @__PURE__ */ jsx(Tooltip, { text: "Voc\xEA s\xF3 pode selecionar um \xFAnico arquivo.", children: /* @__PURE__ */ jsx("button", { disabled: true, className: clsx(button(), "cursor-not-allowed"), children: buttonText }) }) : /* @__PURE__ */ jsx("button", { className: button(), children: buttonText })
38
+ hasButton ? /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-centi", children: [
39
+ /* @__PURE__ */ jsx("p", { className: "text-sm text-secondary-medium", children: dropText }),
40
+ isFileLimitReached ? /* @__PURE__ */ jsx(Tooltip, { text: "Voc\xEA s\xF3 pode selecionar um \xFAnico arquivo.", children: /* @__PURE__ */ jsx(
41
+ "button",
42
+ {
43
+ disabled: true,
44
+ className: clsx(button(), "cursor-not-allowed"),
45
+ children: buttonText
46
+ }
47
+ ) }) : /* @__PURE__ */ jsx("button", { className: button(), children: buttonText })
48
+ ] }) : null
33
49
  ] })
34
50
  ]
35
51
  }
@@ -6,7 +6,8 @@ import { IoMdClose } from 'react-icons/io';
6
6
  import { clsx } from 'clsx';
7
7
  import { IoChevronUp, IoChevronDown } from 'react-icons/io5';
8
8
  import { manager } from '@tecsinapse/cortex-core';
9
- import { useManager } from '../../hooks/useManager.js';
9
+ import { useManagerHelpers } from '../../hooks/useManagerHelpers.js';
10
+ import { Loading } from '../Loading.js';
10
11
 
11
12
  const Manager = ({
12
13
  open,
@@ -15,7 +16,17 @@ const Manager = ({
15
16
  uploadProgressText = "Upload(s) in progress",
16
17
  onClose
17
18
  }) => {
18
- const { min, setMin, regularFiles, folderFiles } = useManager({ files });
19
+ const {
20
+ min,
21
+ setMin,
22
+ regularFiles,
23
+ folderFiles,
24
+ totalLength,
25
+ setFolders,
26
+ isLoading
27
+ } = useManagerHelpers({
28
+ files
29
+ });
19
30
  return createPortal(
20
31
  /* @__PURE__ */ jsx(
21
32
  "div",
@@ -40,7 +51,8 @@ const Manager = ({
40
51
  {
41
52
  variants: { variant: "filled", size: "square" },
42
53
  onClick: onClose,
43
- children: /* @__PURE__ */ jsx(IoMdClose, {})
54
+ disabled: isLoading,
55
+ children: isLoading ? /* @__PURE__ */ jsx(Loading, {}) : /* @__PURE__ */ jsx(IoMdClose, {})
44
56
  }
45
57
  )
46
58
  ] }),
@@ -50,7 +62,7 @@ const Manager = ({
50
62
  className: clsx("w-full h-auto max-h-[300px] gap-mili", {
51
63
  hidden: min,
52
64
  "flex flex-col": !min,
53
- "pb-kilo overflow-scroll pr-deca": files.length > 3
65
+ "pb-kilo overflow-scroll pr-deca": totalLength > 3
54
66
  }),
55
67
  children: [
56
68
  regularFiles.length > 0 ? regularFiles.map((file, index) => /* @__PURE__ */ jsx(
@@ -63,7 +75,7 @@ const Manager = ({
63
75
  },
64
76
  file.uid
65
77
  )) : null,
66
- folderFiles.length > 0 ? /* @__PURE__ */ jsx(FolderList, { files: folderFiles }) : null
78
+ folderFiles.length > 0 ? /* @__PURE__ */ jsx(FolderList, { files: folderFiles, setFolders }) : null
67
79
  ]
68
80
  }
69
81
  )
@@ -1,24 +1,22 @@
1
- import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
1
+ import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
2
2
  import { Modal } from './Modal.js';
3
3
  import { Dropzone } from './Dropzone.js';
4
- import { Manager } from './Manager.js';
4
+ import { Files } from './Files.js';
5
5
 
6
6
  const Root = ({
7
7
  open,
8
8
  onClose,
9
- files,
10
- onDelete,
11
9
  dropzoneProps,
12
10
  selectFileText,
13
11
  dropText,
14
12
  buttonText,
15
- uploadProgressText,
16
13
  titleModal,
17
- isManagerOpen,
18
- closeManager
14
+ onDelete,
15
+ uploadProgressText,
16
+ files
19
17
  }) => {
20
- return /* @__PURE__ */ jsxs(Fragment, { children: [
21
- /* @__PURE__ */ jsx(Modal, { onClose, open, title: titleModal, children: /* @__PURE__ */ jsx("div", { className: "flex flex-1 flex-col w-full gap-deca md:flex-row", children: /* @__PURE__ */ jsx(
18
+ return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(Modal, { onClose, open, title: titleModal, children: /* @__PURE__ */ jsxs("div", { className: "flex flex-1 flex-col w-full gap-deca md:flex-row", children: [
19
+ /* @__PURE__ */ jsx(
22
20
  Dropzone,
23
21
  {
24
22
  dropzoneProps,
@@ -26,18 +24,16 @@ const Root = ({
26
24
  dropText,
27
25
  buttonText
28
26
  }
29
- ) }) }),
27
+ ),
30
28
  /* @__PURE__ */ jsx(
31
- Manager,
29
+ Files,
32
30
  {
33
- open: isManagerOpen,
34
31
  files,
35
32
  onDelete,
36
- uploadProgressText,
37
- onClose: closeManager
33
+ uploadProgressText
38
34
  }
39
35
  )
40
- ] });
36
+ ] }) }) });
41
37
  };
42
38
 
43
39
  export { Root };
@@ -1,6 +1,6 @@
1
1
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
2
  import { button } from '@tecsinapse/cortex-core';
3
- import { useMemo } from 'react';
3
+ import { useMemo, useEffect } from 'react';
4
4
  import { FaRegFileLines, FaRegFolder } from 'react-icons/fa6';
5
5
  import { MdClose } from 'react-icons/md';
6
6
  import { ProgressBar } from '../ProgressBar/ProgressBar.js';
@@ -64,7 +64,7 @@ const File = ({
64
64
  file.status === "success" && showDelete ? /* @__PURE__ */ jsx(
65
65
  "button",
66
66
  {
67
- onClick: () => onDelete(index),
67
+ onClick: () => onDelete?.(index),
68
68
  "data-testid": "remove-button",
69
69
  className: button({
70
70
  className: " bg-inherit border-2 border-primary-light text-primary-light",
@@ -84,9 +84,12 @@ const File = ({
84
84
  ] }, index);
85
85
  };
86
86
  const Folder = ({ name, subItems }) => {
87
- const size = countFolderElements(
88
- subItems.map((it) => it.path),
89
- name
87
+ const size = useMemo(
88
+ () => countFolderElements(
89
+ subItems.map((it) => it.path),
90
+ name
91
+ ),
92
+ [subItems, name]
90
93
  );
91
94
  const loading = useMemo(
92
95
  () => subItems.some((it) => it.status === "uploading"),
@@ -114,7 +117,7 @@ const Folder = ({ name, subItems }) => {
114
117
  /* @__PURE__ */ jsx(ProgressBar, { intent, infinite: loading })
115
118
  ] });
116
119
  };
117
- const FolderList = ({ files }) => {
120
+ const FolderList = ({ files, setFolders }) => {
118
121
  const folders = useMemo(() => {
119
122
  const segments = {};
120
123
  files.forEach((file) => {
@@ -125,6 +128,7 @@ const FolderList = ({ files }) => {
125
128
  });
126
129
  return segments;
127
130
  }, [files]);
131
+ useEffect(() => setFolders(Object.entries(folders)), [folders, setFolders]);
128
132
  return /* @__PURE__ */ jsx(Fragment, { children: Object.entries(folders).map(([name, children], index) => /* @__PURE__ */ jsx(Folder, { name, subItems: children }, index)) });
129
133
  };
130
134
 
@@ -11,6 +11,7 @@ import 'currency.js';
11
11
  import '../provider/MenubarContext.js';
12
12
  import '../provider/SnackbarProvider.js';
13
13
  import { useCalendarContext } from '../provider/CalendarProvider.js';
14
+ import '../provider/ManagerContext.js';
14
15
 
15
16
  const useCalendarCell = ({ state, date }) => {
16
17
  const { isTodayHighlited } = useCalendarContext();