@powerhousedao/design-system 5.0.0-staging.21 → 5.0.0-staging.22
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.
- package/dist/src/connect/components/drop-zone/drop-zone.d.ts +1 -0
- package/dist/src/connect/components/drop-zone/drop-zone.d.ts.map +1 -1
- package/dist/src/connect/components/drop-zone/drop-zone.js +2 -1
- package/dist/src/connect/components/drop-zone/drop-zone.js.map +1 -1
- package/dist/src/connect/components/drop-zone/withDropZone.d.ts.map +1 -1
- package/dist/src/connect/components/drop-zone/withDropZone.js.map +1 -1
- package/dist/src/connect/hooks/drag-and-drop/use-drop.d.ts +5 -0
- package/dist/src/connect/hooks/drag-and-drop/use-drop.d.ts.map +1 -1
- package/dist/src/connect/hooks/drag-and-drop/use-drop.js +59 -7
- package/dist/src/connect/hooks/drag-and-drop/use-drop.js.map +1 -1
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/package.json +5 -5
|
@@ -13,6 +13,7 @@ export type DropZoneProps = ComponentPropsWithoutRef<"div"> & {
|
|
|
13
13
|
readonly setSelectedNode?: (nodeOrNodeSlug: Node | string | undefined) => void;
|
|
14
14
|
readonly useLocalStorage?: boolean;
|
|
15
15
|
readonly driveId?: string;
|
|
16
|
+
readonly acceptedFileExtensions?: string[];
|
|
16
17
|
};
|
|
17
18
|
export declare function DropZone(props: DropZoneProps): import("react/jsx-runtime").JSX.Element;
|
|
18
19
|
//# sourceMappingURL=drop-zone.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drop-zone.d.ts","sourceRoot":"","sources":["../../../../../src/connect/components/drop-zone/drop-zone.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,SAAS,EAGf,MAAM,OAAO,CAAC;AAMf,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,MAAM,aAAa,GAAG,wBAAwB,CAAC,KAAK,CAAC,GAAG;IAC5D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAC3C,QAAQ,CAAC,UAAU,CAAC,EAAE,CACpB,GAAG,EAAE,IAAI,EACT,MAAM,EAAE,IAAI,GAAG,SAAS,KACrB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,CACpB,GAAG,EAAE,IAAI,EACT,MAAM,EAAE,IAAI,GAAG,SAAS,KACrB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,eAAe,CAAC,EAAE,CACzB,cAAc,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,KACtC,IAAI,CAAC;IACV,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"drop-zone.d.ts","sourceRoot":"","sources":["../../../../../src/connect/components/drop-zone/drop-zone.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,SAAS,EAGf,MAAM,OAAO,CAAC;AAMf,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,MAAM,aAAa,GAAG,wBAAwB,CAAC,KAAK,CAAC,GAAG;IAC5D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAC3C,QAAQ,CAAC,UAAU,CAAC,EAAE,CACpB,GAAG,EAAE,IAAI,EACT,MAAM,EAAE,IAAI,GAAG,SAAS,KACrB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,CACpB,GAAG,EAAE,IAAI,EACT,MAAM,EAAE,IAAI,GAAG,SAAS,KACrB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,eAAe,CAAC,EAAE,CACzB,cAAc,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,KACtC,IAAI,CAAC;IACV,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5C,CAAC;AAEF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,2CAgI5C"}
|
|
@@ -7,7 +7,7 @@ import { ConnectReplaceDuplicateModal } from "../modal/replace-duplicate-modal.j
|
|
|
7
7
|
import { UploadFileListContainer } from "./upload-file-list-container.js";
|
|
8
8
|
import { useUploadTracker } from "./use-upload-tracker.js";
|
|
9
9
|
export function DropZone(props) {
|
|
10
|
-
const { title = "Drag your documents", subtitle = "to drop them in the currently selected folder.", node, enable = true, children, onAddFile, onMoveNode, onCopyNode, setSelectedNode, useLocalStorage = false, driveId, className, ...delegatedProps } = props;
|
|
10
|
+
const { title = "Drag your documents", subtitle = "to drop them in the currently selected folder.", node, enable = true, children, onAddFile, onMoveNode, onCopyNode, setSelectedNode, useLocalStorage = false, driveId, acceptedFileExtensions = [".zip", ".phd", ".phdm"], className, ...delegatedProps } = props;
|
|
11
11
|
// Modal state for conflict resolution
|
|
12
12
|
const [modalOpen, setModalOpen] = useState(false);
|
|
13
13
|
const [conflictUploadId, setConflictUploadId] = useState(null);
|
|
@@ -48,6 +48,7 @@ export function DropZone(props) {
|
|
|
48
48
|
onMoveNode: onMoveNode ?? (async () => { }),
|
|
49
49
|
onCopyNode: onCopyNode ?? (async () => { }),
|
|
50
50
|
trackNestedDrag: true,
|
|
51
|
+
acceptedFileExtensions,
|
|
51
52
|
});
|
|
52
53
|
return (_jsxs("div", { className: twMerge("relative", className), ...(enable ? dropProps : {}), ...delegatedProps, children: [children, enable && isDropTarget && (_jsx("div", { className: "fixed inset-0 z-[1000] flex min-h-screen w-screen items-center justify-center bg-black/50", children: _jsx("div", { className: "rounded-[24px] bg-white p-6 shadow-[1px_4px_15px_rgba(74,88,115,0.25)]", children: _jsxs("div", { className: "relative flex h-[130px] w-[400px] flex-col items-center justify-start overflow-visible rounded-lg border border-dashed border-black px-4 py-6", children: [_jsx("div", { className: "text-center text-base leading-5 text-zinc-500", children: title }), _jsx("div", { className: "text-center text-base leading-5 text-zinc-500", children: subtitle }), _jsx("span", { className: "pointer-events-none absolute -bottom-16 left-1/2 z-10 -translate-x-1/2", children: _jsx(Icon, { name: "DocumentIcons", size: 144, "aria-hidden": "true" }) })] }) }) })), _jsx(UploadFileListContainer, { uploadsArray: uploadsArray, uploadsCount: uploadsCount, removeUpload: removeUpload, clearAllUploads: clearAllUploads, setSelectedNode: setSelectedNode, onConflictResolution: handleConflictResolution }), _jsx(ConnectReplaceDuplicateModal, { open: modalOpen, onOpenChange: handleModalClose, fileName: conflictUploadId
|
|
53
54
|
? uploadsArray.find((u) => u?.id === conflictUploadId)?.fileName
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drop-zone.js","sourceRoot":"","sources":["../../../../../src/connect/components/drop-zone/drop-zone.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC,OAAO,EAGL,SAAS,EACT,QAAQ,GACT,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,uCAAuC,CAAC;AAChE,OAAO,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"drop-zone.js","sourceRoot":"","sources":["../../../../../src/connect/components/drop-zone/drop-zone.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withDropZone.d.ts","sourceRoot":"","sources":["../../../../../src/connect/components/drop-zone/withDropZone.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"withDropZone.d.ts","sourceRoot":"","sources":["../../../../../src/connect/components/drop-zone/withDropZone.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,gBAAgB,EAEjB,MAAM,gCAAgC,CAAC;AAMxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,wBAAgB,YAAY,CAAC,CAAC,SAAS,gBAAgB,EACrD,gBAAgB,EAAE,aAAa,CAAC,CAAC,CAAC,GACjC,aAAa,CAAC,CAAC,CAAC,CAoClB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withDropZone.js","sourceRoot":"","sources":["../../../../../src/connect/components/drop-zone/withDropZone.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAMxD,OAAO,
|
|
1
|
+
{"version":3,"file":"withDropZone.js","sourceRoot":"","sources":["../../../../../src/connect/components/drop-zone/withDropZone.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAMxD,OAAO,EACL,eAAe,EACf,aAAa,EACb,kBAAkB,GACnB,MAAM,gCAAgC,CAAC;AAGxC,MAAM,UAAU,YAAY,CAC1B,gBAAkC;IAElC,MAAM,qBAAqB,GAAG,CAAC,KAAQ,EAAE,EAAE;QACzC,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QAEpE,MAAM,SAAS,GAAG,KAAK,EACrB,IAAU,EACV,MAAW,EACX,UAAuC,EACvC,eAAoC,EACpC,EAAE;YACF,OAAO,MAAM,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;QAC7D,CAAC,CAAC;QAEF,IAAI,KAAK,CAAC,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;YAC7C,OAAO,CACL,KAAC,QAAQ,IACP,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,eAAe,EAChC,eAAe,EAAE,IAAI,EACrB,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAEzB,KAAC,gBAAgB,OAAK,KAAK,GAAI,GACtB,CACZ,CAAC;QACJ,CAAC;QAED,OAAO,KAAC,gBAAgB,OAAK,KAAK,GAAI,CAAC;IACzC,CAAC,CAAC;IAEF,qBAAqB,CAAC,WAAW,GAAG,gBAClC,gBAAgB,CAAC,WAAW,IAAI,gBAAgB,CAAC,IAAI,IAAI,WAC3D,GAAG,CAAC;IAEJ,OAAO,qBAAqB,CAAC;AAC/B,CAAC"}
|
|
@@ -10,6 +10,11 @@ type Props = {
|
|
|
10
10
|
* Defaults to false to preserve legacy behavior.
|
|
11
11
|
*/
|
|
12
12
|
trackNestedDrag?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Array of accepted file extensions (e.g., ['.zip', '.phd', '.phdm'])
|
|
15
|
+
* If not provided, all files are accepted
|
|
16
|
+
*/
|
|
17
|
+
acceptedFileExtensions?: string[];
|
|
13
18
|
};
|
|
14
19
|
export declare function useDrop(props: Props): {
|
|
15
20
|
isDropTarget: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-drop.d.ts","sourceRoot":"","sources":["../../../../../src/connect/hooks/drag-and-drop/use-drop.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAI3C,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,IAAI,GAAG,SAAS,CAAC;IACvB,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAG,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1E,UAAU,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAG,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1E,UAAU,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAG,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1E;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"use-drop.d.ts","sourceRoot":"","sources":["../../../../../src/connect/hooks/drag-and-drop/use-drop.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAI3C,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,IAAI,GAAG,SAAS,CAAC;IACvB,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAG,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1E,UAAU,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAG,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1E,UAAU,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAG,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1E;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;CACnC,CAAC;AACF,wBAAgB,OAAO,CAAC,KAAK,EAAE,KAAK;;;EA4LnC"}
|
|
@@ -1,20 +1,63 @@
|
|
|
1
1
|
import { UI_NODE } from "#connect";
|
|
2
2
|
import { useCallback, useMemo, useRef, useState } from "react";
|
|
3
3
|
export function useDrop(props) {
|
|
4
|
-
const { node, onAddFile, onCopyNode, onMoveNode, trackNestedDrag = false, } = props;
|
|
4
|
+
const { node, onAddFile, onCopyNode, onMoveNode, trackNestedDrag = false, acceptedFileExtensions, } = props;
|
|
5
5
|
const [isDropTarget, setIsDropTarget] = useState(false);
|
|
6
6
|
const dragDepthRef = useRef(0);
|
|
7
|
+
/**
|
|
8
|
+
* Check if the dragged content is valid based on accepted file extensions
|
|
9
|
+
*/
|
|
10
|
+
const isValidDropContent = useCallback((dataTransfer) => {
|
|
11
|
+
if (!acceptedFileExtensions || acceptedFileExtensions.length === 0) {
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
// Always allow internal node dragging
|
|
15
|
+
if (dataTransfer.types.includes(UI_NODE)) {
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
// Check if dragging files
|
|
19
|
+
if (dataTransfer.types.includes("Files")) {
|
|
20
|
+
const items = Array.from(dataTransfer.items);
|
|
21
|
+
return items.some((item) => {
|
|
22
|
+
if (item.kind === "file") {
|
|
23
|
+
// Check MIME types for zip files
|
|
24
|
+
if (item.type === "application/zip" ||
|
|
25
|
+
item.type === "application/x-zip-compressed") {
|
|
26
|
+
return acceptedFileExtensions.includes(".zip");
|
|
27
|
+
}
|
|
28
|
+
// For custom extensions (.phd, .phdm), browsers might not report
|
|
29
|
+
// a specific MIME type (they show as '' or 'application/octet-stream')
|
|
30
|
+
// We allow these through and do stricter validation on drop
|
|
31
|
+
if (item.type === "" || item.type === "application/octet-stream") {
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return false;
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
return false;
|
|
39
|
+
}, [acceptedFileExtensions]);
|
|
7
40
|
const onDragOver = useCallback((event) => {
|
|
8
41
|
event.preventDefault();
|
|
9
42
|
event.stopPropagation();
|
|
10
|
-
|
|
11
|
-
|
|
43
|
+
const isValid = isValidDropContent(event.dataTransfer);
|
|
44
|
+
if (isValid) {
|
|
45
|
+
setIsDropTarget(true);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
// Visual feedback that dropping is not allowed
|
|
49
|
+
event.dataTransfer.dropEffect = "none";
|
|
50
|
+
}
|
|
51
|
+
}, [isValidDropContent]);
|
|
12
52
|
const onDragEnter = useCallback((event) => {
|
|
13
53
|
event.preventDefault();
|
|
14
54
|
event.stopPropagation();
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
55
|
+
const isValid = isValidDropContent(event.dataTransfer);
|
|
56
|
+
if (isValid) {
|
|
57
|
+
dragDepthRef.current += 1;
|
|
58
|
+
setIsDropTarget(true);
|
|
59
|
+
}
|
|
60
|
+
}, [isValidDropContent]);
|
|
18
61
|
const onDragLeaveDepth = useCallback((event) => {
|
|
19
62
|
event.preventDefault();
|
|
20
63
|
event.stopPropagation();
|
|
@@ -37,7 +80,16 @@ export function useDrop(props) {
|
|
|
37
80
|
return;
|
|
38
81
|
}
|
|
39
82
|
try {
|
|
40
|
-
|
|
83
|
+
let droppedFiles = getDroppedFiles(event.dataTransfer.items).filter(Boolean);
|
|
84
|
+
// Filter files by accepted extensions if specified
|
|
85
|
+
if (acceptedFileExtensions && acceptedFileExtensions.length > 0) {
|
|
86
|
+
droppedFiles = droppedFiles.filter((file) => {
|
|
87
|
+
if (!file)
|
|
88
|
+
return false;
|
|
89
|
+
const fileName = file.name.toLowerCase();
|
|
90
|
+
return acceptedFileExtensions.some((ext) => fileName.endsWith(ext.toLowerCase()));
|
|
91
|
+
});
|
|
92
|
+
}
|
|
41
93
|
if (droppedFiles.length) {
|
|
42
94
|
for (const file of droppedFiles) {
|
|
43
95
|
if (file) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-drop.js","sourceRoot":"","sources":["../../../../../src/connect/hooks/drag-and-drop/use-drop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGnC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"use-drop.js","sourceRoot":"","sources":["../../../../../src/connect/hooks/drag-and-drop/use-drop.ts"],"names":[],"mappings":"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"}
|