@tecsinapse/cortex-react 1.15.0-beta.8 → 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 (81) 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 +31 -17
  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 +45 -20
  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 +31 -17
  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 +46 -21
  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
@@ -1,22 +1,44 @@
1
- import { useState, useCallback } from 'react';
1
+ import { useState, useCallback, useEffect } from 'react';
2
2
  import { useDropzone } from 'react-dropzone';
3
3
  import { v4 } from 'uuid';
4
4
  import { FileStatus, AcceptSpecificMap } from '../components/Uploader/types.js';
5
+ import 'react/jsx-runtime';
6
+ import '@internationalized/date';
7
+ import 'react-aria';
8
+ import 'react-stately';
9
+ import '../components/Popover/Context.js';
10
+ import '@floating-ui/react';
11
+ import 'currency.js';
12
+ import '../provider/MenubarContext.js';
13
+ import '../provider/SnackbarProvider.js';
14
+ import '../provider/CalendarProvider.js';
15
+ import { useManager } from '../provider/ManagerContext.js';
5
16
 
6
17
  const useFileUpload = ({
7
18
  accept = {},
8
19
  onAccept,
20
+ onOpenManager,
9
21
  onFileRejected,
10
22
  maxSize,
11
23
  allowMultiple = true,
12
24
  preventDuplicates = false,
13
25
  onDuplicate,
14
- hasManager = true
26
+ hasManager = true,
27
+ isFolder = false,
28
+ noClick = false,
29
+ ignoreRejections = false,
30
+ uploadProgressText
15
31
  }) => {
16
- const [files, setFiles] = useState([]);
32
+ const {
33
+ showManager,
34
+ files,
35
+ setFiles,
36
+ isOpen: isManagerOpen,
37
+ setIsOpen: setIsManagerOpen,
38
+ uploadFiles
39
+ } = useManager();
17
40
  const [duplicates, setDuplicates] = useState([]);
18
41
  const [isOpen, setIsOpen] = useState(false);
19
- const [isManagerOpen, setIsManagerOpen] = useState(false);
20
42
  const onOpen = useCallback(() => setIsOpen(true), []);
21
43
  const onClose = useCallback(() => setIsOpen(false), []);
22
44
  const handleRemoveFile = useCallback((index) => {
@@ -25,7 +47,10 @@ const useFileUpload = ({
25
47
  const handleClearFiles = useCallback(() => {
26
48
  setFiles([]);
27
49
  }, []);
28
- const openManager = useCallback(() => setIsManagerOpen(true), []);
50
+ const openManager = useCallback(() => {
51
+ setIsManagerOpen(true);
52
+ onOpenManager?.();
53
+ }, []);
29
54
  const closeManager = useCallback(() => {
30
55
  handleClearFiles();
31
56
  setIsManagerOpen(false);
@@ -38,7 +63,8 @@ const useFileUpload = ({
38
63
  },
39
64
  []
40
65
  );
41
- const onDrop = async (acceptedFiles) => {
66
+ const onDrop = async (acceptedFiles, fileRejections) => {
67
+ if (fileRejections.length > 0 && !ignoreRejections) return;
42
68
  if (hasManager) {
43
69
  openManager();
44
70
  onClose();
@@ -60,22 +86,20 @@ const useFileUpload = ({
60
86
  const newFiles = toProcess.map((file) => ({
61
87
  file,
62
88
  status: onAccept ? FileStatus.UPLOADING : FileStatus.SUCCESS,
63
- uid: v4()
89
+ uid: v4(),
90
+ isFolder
64
91
  }));
65
- try {
66
- setFiles((prevFiles) => [...prevFiles, ...newFiles]);
67
- if (onAccept) {
68
- const updatedFiles = await onAccept(newFiles);
69
- setFiles((prevFiles) => updateFiles(prevFiles, updatedFiles));
70
- }
71
- } catch (e) {
72
- const updatedFiles = newFiles.map((f) => ({
73
- ...f,
74
- status: FileStatus.ERROR
75
- }));
76
- setFiles((prevFiles) => updateFiles(prevFiles, updatedFiles));
77
- }
92
+ uploadFiles({ onAccept, newFiles, updateFiles });
78
93
  };
94
+ useEffect(() => {
95
+ if (hasManager) {
96
+ showManager?.({
97
+ onClose: closeManager,
98
+ onDelete: handleRemoveFile,
99
+ uploadProgressText
100
+ });
101
+ }
102
+ }, [handleRemoveFile, closeManager]);
79
103
  const addMimeTypes = (key, acc) => {
80
104
  AcceptSpecificMap[key].forEach((mimeType) => {
81
105
  acc[mimeType] = [];
@@ -97,7 +121,8 @@ const useFileUpload = ({
97
121
  accept: mappedAccept,
98
122
  multiple: allowMultiple,
99
123
  maxSize,
100
- onDropRejected: onFileRejected
124
+ onDropRejected: onFileRejected,
125
+ noClick
101
126
  });
102
127
  const isFileLimitReached = !allowMultiple && files.length > 0;
103
128
  return {
@@ -0,0 +1,32 @@
1
+ import { useState, useMemo } from 'react';
2
+
3
+ const useManagerHelpers = ({
4
+ files
5
+ }) => {
6
+ const [min, setMin] = useState(false);
7
+ const [folders, setFolders] = useState();
8
+ const folderFiles = useMemo(
9
+ () => files?.filter((file) => file.isFolder) ?? [],
10
+ [files]
11
+ );
12
+ const regularFiles = useMemo(
13
+ () => files?.filter((file) => !file.isFolder) ?? [],
14
+ [files]
15
+ );
16
+ const totalLength = (regularFiles ?? []).length + (folders ?? []).length;
17
+ const isLoading = useMemo(
18
+ () => files?.some((file) => file.status === "uploading"),
19
+ [files]
20
+ );
21
+ return {
22
+ min,
23
+ setMin,
24
+ folderFiles,
25
+ regularFiles,
26
+ totalLength,
27
+ setFolders,
28
+ isLoading
29
+ };
30
+ };
31
+
32
+ export { useManagerHelpers };
package/dist/esm/index.js CHANGED
@@ -65,6 +65,7 @@ export { SnackbarProvider, useSnackbar } from './provider/SnackbarProvider.js';
65
65
  export { MenubarContext } from './provider/MenubarContext.js';
66
66
  export { useMenubar } from './provider/useMenubar.js';
67
67
  export { CalendarProvider, useCalendarContext } from './provider/CalendarProvider.js';
68
+ export { ManagerProvider, useManager } from './provider/ManagerContext.js';
68
69
  export { Context, useAccordionContext } from './components/Accordion/context.js';
69
70
  export { BRLMask, CurrencyIMask, ExpressionMasks, Masks, NumberIMask, PercentageIMask, PercentageMask } from './components/Input/masks.js';
70
71
  export { Root } from './components/Uploader/Root.js';
@@ -0,0 +1,122 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { createContext, useState, useContext } from 'react';
3
+ import { Manager } from '../components/Uploader/Manager.js';
4
+ import 'clsx';
5
+ import '../components/Accordion/context.js';
6
+ import 'react-icons/lia';
7
+ import '@internationalized/date';
8
+ import '../components/Badge.js';
9
+ import 'react-icons/md';
10
+ import '../components/Card.js';
11
+ import '../components/Button.js';
12
+ import 'react-aria';
13
+ import 'react-stately';
14
+ import './MenubarContext.js';
15
+ import './SnackbarProvider.js';
16
+ import './CalendarProvider.js';
17
+ import '../components/Popover/Context.js';
18
+ import 'react-dropzone';
19
+ import 'uuid';
20
+ import { FileStatus } from '../components/Uploader/types.js';
21
+ import '@floating-ui/react';
22
+ import 'currency.js';
23
+ import '../components/Calendar/CalendarCell.js';
24
+ import '@tecsinapse/cortex-core';
25
+ import 'react-icons/fa';
26
+ import 'react-icons/io';
27
+ import 'embla-carousel-react';
28
+ import 'embla-carousel-autoplay';
29
+ import '../components/Checkbox.js';
30
+ import '../components/ColorPicker.js';
31
+ import '../components/DatePicker/DateSegment.js';
32
+ import '../components/DatePicker/DatePickerInputBase.js';
33
+ import '../components/GroupButton.js';
34
+ import '../components/Hint.js';
35
+ import '../components/Input/Box.js';
36
+ import '../components/Input/Face.js';
37
+ import '../components/Input/Left.js';
38
+ import '../components/Input/Mask.js';
39
+ import '../components/Input/Right.js';
40
+ import '../components/Input/Root.js';
41
+ import '../components/Input/Search.js';
42
+ import '../components/Menubar/Left.js';
43
+ import '../styles/menubar.js';
44
+ import '../components/Menubar/Right.js';
45
+ import '../components/Menubar/Dropdown.js';
46
+ import '../components/Menubar/MostUsed.js';
47
+ import '../components/Menubar/MostUsedItem.js';
48
+ import '../components/Menubar/Header.js';
49
+ import '../components/Menubar/Item.js';
50
+ import './CategoriesContext.js';
51
+ import '../components/Menubar/SubItem.js';
52
+ import '../components/Modal.js';
53
+ import '../components/ProgressBar/Progress.js';
54
+ import '../components/RadioButton.js';
55
+ import '../components/Select/GroupedOptions.js';
56
+ import '../components/Select/context.js';
57
+ import '../components/Select/MultiGroupedOptions.js';
58
+ import '../components/Select/MultiOptions.js';
59
+ import '../components/Select/Options.js';
60
+ import '../components/Select/Trigger.js';
61
+ import '../components/Snackbar/BaseSnackbar.js';
62
+ import '../styles/stepNodeVariants.js';
63
+ import '../components/Tag.js';
64
+ import '../components/TextArea/Box.js';
65
+ import '../components/TextArea/Face.js';
66
+ import '../components/TextArea/Left.js';
67
+ import '../components/TextArea/Right.js';
68
+ import '../components/TextArea/Root.js';
69
+ import '../components/TimePicker/TimeFieldInput.js';
70
+ import '../components/Toggle.js';
71
+ import '../components/Tooltip.js';
72
+ import 'react-icons/hi2';
73
+ import 'react-icons/fa6';
74
+ import 'react-dom';
75
+
76
+ const ManagerContext = createContext(null);
77
+ const ManagerProvider = ({ children }) => {
78
+ const [props, setProps] = useState({});
79
+ const [files, setFiles] = useState([]);
80
+ const [isOpen, setIsOpen] = useState(false);
81
+ const uploadFiles = async ({
82
+ onAccept,
83
+ newFiles,
84
+ updateFiles
85
+ }) => {
86
+ try {
87
+ setFiles((prevFiles) => [...prevFiles, ...newFiles]);
88
+ if (onAccept) {
89
+ const updatedFiles = await onAccept(newFiles);
90
+ setFiles((prevFiles) => updateFiles(prevFiles, updatedFiles));
91
+ }
92
+ } catch (e) {
93
+ const updatedFiles = newFiles.map((f) => ({
94
+ ...f,
95
+ status: FileStatus.ERROR
96
+ }));
97
+ setFiles((prevFiles) => updateFiles(prevFiles, updatedFiles));
98
+ }
99
+ };
100
+ const showManager = (_props) => {
101
+ setProps(_props);
102
+ };
103
+ return /* @__PURE__ */ jsxs(
104
+ ManagerContext.Provider,
105
+ {
106
+ value: { showManager, files, setFiles, isOpen, setIsOpen, uploadFiles },
107
+ children: [
108
+ children,
109
+ /* @__PURE__ */ jsx(Manager, { files, open: isOpen, ...props })
110
+ ]
111
+ }
112
+ );
113
+ };
114
+ const useManager = () => {
115
+ const context = useContext(ManagerContext);
116
+ if (!context) {
117
+ throw new Error("useManager must be used within a ManagerProvider");
118
+ }
119
+ return context;
120
+ };
121
+
122
+ export { ManagerProvider, useManager };
@@ -6,6 +6,7 @@ import 'react-stately';
6
6
  import { MenubarContext } from './MenubarContext.js';
7
7
  import './SnackbarProvider.js';
8
8
  import './CalendarProvider.js';
9
+ import './ManagerContext.js';
9
10
  import '../components/Popover/Context.js';
10
11
  import 'react-dropzone';
11
12
  import 'uuid';
@@ -1,2 +1,2 @@
1
1
  import { DropzoneProps } from './types';
2
- export declare const Dropzone: ({ dropzoneProps, selectFileText, dropText, buttonText, }: DropzoneProps) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const Dropzone: ({ dropzoneProps, selectFileText, dropText, buttonText, hasButton, }: DropzoneProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,2 +1,2 @@
1
1
  import { ManagerProps } from './types';
2
- export declare const Manager: <T>({ open, files, onDelete, uploadProgressText, onClose, type, }: ManagerProps<T>) => any;
2
+ export declare const Manager: <T>({ open, files, onDelete, uploadProgressText, onClose, }: ManagerProps<T>) => any;
@@ -1,2 +1,2 @@
1
1
  import { RootUploaderProps } from './types';
2
- export declare const Root: <T>({ open, onClose, files, onDelete, dropzoneProps, selectFileText, dropText, buttonText, uploadProgressText, titleModal, isManagerOpen, closeManager, }: RootUploaderProps<T>) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const Root: <T>({ open, onClose, dropzoneProps, selectFileText, dropText, buttonText, titleModal, onDelete, uploadProgressText, files, }: RootUploaderProps<T>) => import("react/jsx-runtime").JSX.Element;
@@ -1,4 +1,4 @@
1
1
  import { FileProps, FolderListProps, FolderProps } from './types';
2
2
  export declare const File: <T>({ file, index, onDelete, showDelete, }: FileProps<T>) => import("react/jsx-runtime").JSX.Element;
3
3
  export declare const Folder: ({ name, subItems }: FolderProps) => import("react/jsx-runtime").JSX.Element;
4
- export declare const FolderList: <T>({ files }: FolderListProps<T>) => import("react/jsx-runtime").JSX.Element;
4
+ export declare const FolderList: <T>({ files, setFolders }: FolderListProps<T>) => import("react/jsx-runtime").JSX.Element;
@@ -1,9 +1,9 @@
1
1
  export * from './Root';
2
2
  export * from './types';
3
3
  export declare const Uploader: {
4
- Dropzone: ({ dropzoneProps, selectFileText, dropText, buttonText, }: import("./types").DropzoneProps) => import("react/jsx-runtime").JSX.Element;
4
+ Dropzone: ({ dropzoneProps, selectFileText, dropText, buttonText, hasButton, }: import("./types").DropzoneProps) => import("react/jsx-runtime").JSX.Element;
5
5
  Files: <T>({ files, onDelete, uploadProgressText, }: import("./types").FilesProps<T>) => import("react/jsx-runtime").JSX.Element;
6
6
  Modal: ({ open, onClose, children, title, }: import("./types").ModalProps) => any;
7
- Root: <T>({ open, onClose, files, onDelete, dropzoneProps, selectFileText, dropText, buttonText, uploadProgressText, titleModal, isManagerOpen, closeManager, }: import("./types").RootUploaderProps<T>) => import("react/jsx-runtime").JSX.Element;
8
- Manager: <T>({ open, files, onDelete, uploadProgressText, onClose, type, }: import("./types").ManagerProps<T>) => any;
7
+ Root: <T>({ open, onClose, dropzoneProps, selectFileText, dropText, buttonText, titleModal, onDelete, uploadProgressText, files, }: import("./types").RootUploaderProps<T>) => import("react/jsx-runtime").JSX.Element;
8
+ Manager: <T>({ open, files, onDelete, uploadProgressText, onClose, }: import("./types").ManagerProps<T>) => any;
9
9
  };
@@ -12,7 +12,7 @@ export interface FileItem {
12
12
  export interface FileProps<T> {
13
13
  file: FileUpload<T>;
14
14
  index: number;
15
- onDelete: (index: number) => void;
15
+ onDelete?: (index: number) => void;
16
16
  showDelete?: boolean;
17
17
  }
18
18
  export interface FolderProps {
@@ -24,6 +24,13 @@ export interface FolderProps {
24
24
  }
25
25
  export interface FolderListProps<T> {
26
26
  files: FileUpload<T>[];
27
+ setFolders: React.Dispatch<React.SetStateAction<[
28
+ string,
29
+ {
30
+ status: string;
31
+ path: string;
32
+ }[]
33
+ ][] | undefined>>;
27
34
  }
28
35
  export interface FilesProps<T> {
29
36
  files: FileUpload<T>[];
@@ -35,6 +42,7 @@ export interface UseDropzoneProps {
35
42
  getInputProps: <T extends DropzoneInputProps>(props?: T) => T;
36
43
  isDragActive: boolean;
37
44
  isFileLimitReached: boolean;
45
+ fileRejections: FileRejection[];
38
46
  }
39
47
  export interface DropzoneProps {
40
48
  dropzoneProps: UseDropzoneProps;
@@ -42,6 +50,7 @@ export interface DropzoneProps {
42
50
  dropText?: string;
43
51
  buttonText?: string;
44
52
  isFileLimitReached?: boolean;
53
+ hasButton?: boolean;
45
54
  }
46
55
  export interface ModalProps {
47
56
  open: boolean;
@@ -59,12 +68,11 @@ export type FileUpload<T> = {
59
68
  metadata?: T;
60
69
  uid: string;
61
70
  status: 'success' | 'error' | 'uploading';
71
+ isFolder?: boolean;
62
72
  };
63
73
  export interface RootUploaderProps<T> {
64
74
  open: boolean;
65
75
  onClose: () => void;
66
- isManagerOpen: boolean;
67
- closeManager: () => void;
68
76
  files: FileUpload<T>[];
69
77
  onDelete: (index: number) => void;
70
78
  dropzoneProps: UseDropzoneProps;
@@ -75,12 +83,11 @@ export interface RootUploaderProps<T> {
75
83
  titleModal?: string;
76
84
  }
77
85
  export interface ManagerProps<T> {
78
- open: boolean;
79
- files: FileUpload<T>[];
80
- onDelete: (index: number) => void;
86
+ open?: boolean;
87
+ files?: FileUpload<T>[];
88
+ onDelete?: (index: number) => void;
81
89
  uploadProgressText?: string;
82
- onClose: () => void;
83
- type?: 'file' | 'folder';
90
+ onClose?: () => void;
84
91
  }
85
92
  export declare const AcceptSpecificMap: {
86
93
  readonly APPLICATION: readonly ["application/pdf", "application/zip", "application/msword", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "application/vnd.ms-excel", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "application/vnd.ms-powerpoint", "application/vnd.openxmlformats-officedocument.presentationml.presentation", "application/x-rar-compressed", "application/x-7z-compressed", "application/json", "application/xml", "application/rtf", "application/x-tar", "application/x-httpd-php", "application/octet-stream"];
@@ -1,6 +1,6 @@
1
1
  import { type DropEvent, type FileRejection } from 'react-dropzone';
2
2
  import { AcceptSpecificMap, UseDropzoneProps, type FileUpload } from '../components/Uploader/types';
3
- interface UseFileUploadOptions<T> {
3
+ interface UseFileUploadOptions {
4
4
  accept?: {
5
5
  IMAGE?: (typeof AcceptSpecificMap.IMAGE)[number][];
6
6
  APPLICATION?: (typeof AcceptSpecificMap.APPLICATION)[number][];
@@ -8,15 +8,20 @@ interface UseFileUploadOptions<T> {
8
8
  VIDEO?: (typeof AcceptSpecificMap.VIDEO)[number][];
9
9
  TEXT?: (typeof AcceptSpecificMap.TEXT)[number][];
10
10
  };
11
- onAccept?: (files: FileUpload<T>[]) => Promise<FileUpload<T>[]>;
11
+ onAccept?: (files: FileUpload<unknown>[]) => Promise<FileUpload<unknown>[]>;
12
+ onOpenManager?: () => void;
12
13
  onFileRejected?: (fileRejections: FileRejection[], event: DropEvent) => void;
13
14
  maxSize?: number;
14
15
  allowMultiple?: boolean;
15
16
  preventDuplicates?: boolean;
16
17
  onDuplicate?: (duplicates: File[]) => void;
17
18
  hasManager?: boolean;
19
+ isFolder?: boolean;
20
+ uploadProgressText?: string;
21
+ noClick?: boolean;
22
+ ignoreRejections?: boolean;
18
23
  }
19
- export declare const useFileUpload: <T>({ accept, onAccept, onFileRejected, maxSize, allowMultiple, preventDuplicates, onDuplicate, hasManager, }: UseFileUploadOptions<T>) => {
24
+ export declare const useFileUpload: <T>({ accept, onAccept, onOpenManager, onFileRejected, maxSize, allowMultiple, preventDuplicates, onDuplicate, hasManager, isFolder, noClick, ignoreRejections, uploadProgressText, }: UseFileUploadOptions) => {
20
25
  onOpen: () => void;
21
26
  onClose: () => void;
22
27
  onDelete: (index: number) => void;
@@ -25,7 +30,7 @@ export declare const useFileUpload: <T>({ accept, onAccept, onFileRejected, maxS
25
30
  openManager: () => void;
26
31
  closeManager: () => void;
27
32
  isManagerOpen: boolean;
28
- files: FileUpload<T>[];
33
+ files: FileUpload<unknown>[];
29
34
  duplicates: File[];
30
35
  onClearFiles: () => void;
31
36
  };
@@ -0,0 +1,15 @@
1
+ import { FileUpload } from '../components';
2
+ export declare const useManagerHelpers: <T>({ files, }: {
3
+ files?: FileUpload<T>[];
4
+ }) => {
5
+ min: boolean;
6
+ setMin: import("react").Dispatch<import("react").SetStateAction<boolean>>;
7
+ folderFiles: FileUpload<T>[];
8
+ regularFiles: FileUpload<T>[];
9
+ totalLength: number;
10
+ setFolders: import("react").Dispatch<import("react").SetStateAction<[string, {
11
+ status: string;
12
+ path: string;
13
+ }[]][] | undefined>>;
14
+ isLoading: boolean | undefined;
15
+ };
@@ -0,0 +1,20 @@
1
+ import { ReactNode } from 'react';
2
+ import { FileUpload, ManagerProps } from '../components';
3
+ interface UploadFilesProps<T> {
4
+ onAccept?: (files: FileUpload<T>[]) => Promise<FileUpload<T>[]>;
5
+ newFiles: FileUpload<T>[];
6
+ updateFiles: (prevFiles: FileUpload<unknown>[], newFiles: FileUpload<T>[]) => FileUpload<T>[];
7
+ }
8
+ interface ManagerContextProps<T> {
9
+ showManager: (props: ManagerProps<T>) => void;
10
+ files: FileUpload<T>[];
11
+ setFiles: React.Dispatch<React.SetStateAction<FileUpload<T>[]>>;
12
+ isOpen: boolean;
13
+ setIsOpen: React.Dispatch<React.SetStateAction<boolean>>;
14
+ uploadFiles: (props: UploadFilesProps<T>) => void;
15
+ }
16
+ export declare const ManagerProvider: ({ children }: {
17
+ children: ReactNode;
18
+ }) => import("react/jsx-runtime").JSX.Element;
19
+ export declare const useManager: () => ManagerContextProps<unknown>;
20
+ export {};
@@ -3,3 +3,4 @@ export * from './SnackbarProvider';
3
3
  export * from './MenubarContext';
4
4
  export * from './useMenubar';
5
5
  export * from './CalendarProvider';
6
+ export * from './ManagerContext';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tecsinapse/cortex-react",
3
- "version": "1.15.0-beta.8",
3
+ "version": "1.15.0",
4
4
  "description": "React components based in @tecsinapse/cortex-core",
5
5
  "license": "MIT",
6
6
  "main": "dist/esm/index.js",
@@ -20,7 +20,7 @@
20
20
  "dependencies": {
21
21
  "@floating-ui/react": "^0.26.18",
22
22
  "@internationalized/date": "3.7.0",
23
- "@tecsinapse/cortex-core": "1.2.0-beta.6",
23
+ "@tecsinapse/cortex-core": "1.2.0",
24
24
  "clsx": "2.1.1",
25
25
  "currency.js": "2.0.4",
26
26
  "embla-carousel-autoplay": "^8.0.0",
@@ -48,5 +48,5 @@
48
48
  "react-icons": ">=5.2.0",
49
49
  "tailwind": ">=3.3.0"
50
50
  },
51
- "gitHead": "e193bd148328ee510548708de7803cb1832abd6d"
51
+ "gitHead": "877a756e55265fa6fef624c881b496ece5b2366b"
52
52
  }