@principal-ade/dynamic-file-tree 0.1.33 → 0.1.35

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/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export { useContainerHeight } from './src/hooks/useContainerHeight';
2
+ export { getDndProps } from './src/hooks/useDndManager';
2
3
  export { DirectoryFilterInput } from './src/components/DirectoryFilterInput';
3
4
  export type { DirectoryFilter, DirectoryFilterInputProps } from './src/components/DirectoryFilterInput';
4
5
  export { TreeNode } from './src/components/TreeNode';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAGpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,YAAY,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAGxG,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG7E,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,YAAY,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAG7E,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,YAAY,EAAE,oBAAoB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAGhG,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,YAAY,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAGnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,YAAY,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAGjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,YAAY,EACV,sBAAsB,EACtB,aAAa,EACb,SAAS,EACV,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AACzF,YAAY,EAAE,+BAA+B,EAAE,MAAM,6CAA6C,CAAC;AAGnG,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAClF,YAAY,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAGjG,OAAO,EACL,yBAAyB,EACzB,+BAA+B,GAChC,MAAM,4CAA4C,CAAC;AACpD,YAAY,EACV,8BAA8B,EAC9B,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EAAE,kCAAkC,EAAE,MAAM,qDAAqD,CAAC;AACzG,YAAY,EAAE,uCAAuC,EAAE,MAAM,qDAAqD,CAAC;AAGnH,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,YAAY,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAGxG,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG7E,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,YAAY,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAG7E,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,YAAY,EAAE,oBAAoB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAGhG,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,YAAY,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAGnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,YAAY,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAGjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,YAAY,EACV,sBAAsB,EACtB,aAAa,EACb,SAAS,EACV,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AACzF,YAAY,EAAE,+BAA+B,EAAE,MAAM,6CAA6C,CAAC;AAGnG,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAClF,YAAY,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAGjG,OAAO,EACL,yBAAyB,EACzB,+BAA+B,GAChC,MAAM,4CAA4C,CAAC;AACpD,YAAY,EACV,8BAA8B,EAC9B,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EAAE,kCAAkC,EAAE,MAAM,qDAAqD,CAAC;AACzG,YAAY,EAAE,uCAAuC,EAAE,MAAM,qDAAqD,CAAC;AAGnH,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC"}
package/dist/index.mjs CHANGED
@@ -18,6 +18,13 @@ var useContainerHeight = (initialHeight = 600) => {
18
18
  }, []);
19
19
  return [containerRef, containerHeight];
20
20
  };
21
+ // src/hooks/useDndManager.ts
22
+ var getDndProps = (enableDragAndDrop = false) => {
23
+ return {
24
+ disableDrag: !enableDragAndDrop,
25
+ disableDrop: !enableDragAndDrop
26
+ };
27
+ };
21
28
  // src/components/DirectoryFilterInput.tsx
22
29
  import React, { useState as useState2, useCallback, useRef as useRef2, useEffect as useEffect2 } from "react";
23
30
  var DirectoryFilterInput = ({
@@ -256,7 +263,8 @@ function TreeNode({
256
263
  nameColor,
257
264
  horizontalNodePadding = "8px",
258
265
  verticalNodePadding = "3px",
259
- onContextMenu
266
+ onContextMenu,
267
+ onHover
260
268
  }) {
261
269
  const [isHovered, setIsHovered] = useState3(false);
262
270
  const isFolder = node.isInternal;
@@ -297,8 +305,14 @@ function TreeNode({
297
305
  onContextMenu(e, node);
298
306
  }
299
307
  },
300
- onMouseEnter: () => setIsHovered(true),
301
- onMouseLeave: () => setIsHovered(false)
308
+ onMouseEnter: () => {
309
+ setIsHovered(true);
310
+ onHover?.(true, node);
311
+ },
312
+ onMouseLeave: () => {
313
+ setIsHovered(false);
314
+ onHover?.(false, node);
315
+ }
302
316
  }, /* @__PURE__ */ React2.createElement("div", {
303
317
  style: { display: "flex", alignItems: "center", minWidth: 0, flex: 1 }
304
318
  }, caret, /* @__PURE__ */ React2.createElement("span", {
@@ -393,8 +407,10 @@ var DynamicFileTree = ({
393
407
  verticalPadding,
394
408
  onContextMenu,
395
409
  initialHeight = 600,
396
- autoHeight = false
410
+ autoHeight = false,
411
+ enableDragAndDrop = false
397
412
  }) => {
413
+ const dndProps = getDndProps(enableDragAndDrop);
398
414
  const NodeRenderer = (props) => {
399
415
  const nodePath = props.node.data.id;
400
416
  const isSelectedOrChild = selectedDirectories.some((selectedDir) => {
@@ -463,7 +479,8 @@ var DynamicFileTree = ({
463
479
  ...selectedFile !== undefined && { selection: selectedFile },
464
480
  width: "100%",
465
481
  height: containerHeight,
466
- rowHeight: 28
482
+ rowHeight: 28,
483
+ ...dndProps
467
484
  }, NodeRenderer));
468
485
  };
469
486
  // src/components/OrderedFileList.tsx
@@ -1126,10 +1143,13 @@ var GitStatusFileTree = ({
1126
1143
  verticalNodePadding,
1127
1144
  verticalPadding,
1128
1145
  onContextMenu,
1146
+ onNodeHover,
1129
1147
  openByDefault,
1130
1148
  initialHeight = 600,
1131
- autoHeight = false
1149
+ autoHeight = false,
1150
+ enableDragAndDrop = false
1132
1151
  }) => {
1152
+ const dndProps = getDndProps(enableDragAndDrop);
1133
1153
  const gitStatusMap = useMemo5(() => {
1134
1154
  const map = new Map;
1135
1155
  gitStatusData.forEach((item) => {
@@ -1176,6 +1196,11 @@ var GitStatusFileTree = ({
1176
1196
  if (onContextMenu) {
1177
1197
  onContextMenu(e, node2.data.id, !!node2.data.children);
1178
1198
  }
1199
+ },
1200
+ onHover: (isHovered, node2) => {
1201
+ if (onNodeHover) {
1202
+ onNodeHover(isHovered ? node2.data.id : null, !!node2.data.children);
1203
+ }
1179
1204
  }
1180
1205
  });
1181
1206
  };
@@ -1246,7 +1271,8 @@ var GitStatusFileTree = ({
1246
1271
  ...openByDefault !== undefined && { openByDefault },
1247
1272
  width: "100%",
1248
1273
  height: containerHeight,
1249
- rowHeight: 28
1274
+ rowHeight: 28,
1275
+ ...dndProps
1250
1276
  }, NodeRenderer)));
1251
1277
  };
1252
1278
  // src/components/GitStatusFileTreeContainer.tsx
@@ -1975,8 +2001,10 @@ var TelemetryCoverageFileTree = ({
1975
2001
  openByDefault = true,
1976
2002
  initialHeight = 600,
1977
2003
  autoHeight = false,
1978
- testFilePatterns = DEFAULT_TEST_PATTERNS
2004
+ testFilePatterns = DEFAULT_TEST_PATTERNS,
2005
+ enableDragAndDrop = false
1979
2006
  }) => {
2007
+ const dndProps = getDndProps(enableDragAndDrop);
1980
2008
  const coverageMap = useMemo9(() => {
1981
2009
  const map = new Map;
1982
2010
  coverageData.forEach((item) => {
@@ -2111,7 +2139,8 @@ var TelemetryCoverageFileTree = ({
2111
2139
  openByDefault,
2112
2140
  width: "100%",
2113
2141
  height: containerHeight,
2114
- rowHeight: 28
2142
+ rowHeight: 28,
2143
+ ...dndProps
2115
2144
  }, NodeRenderer)));
2116
2145
  };
2117
2146
  var calculateTelemetryCoverageStats = (coverageData) => {
@@ -2310,6 +2339,7 @@ export {
2310
2339
  useContainerHeight,
2311
2340
  updateTreePaths,
2312
2341
  parseUnifiedPath,
2342
+ getDndProps,
2313
2343
  filterFileTreeByPaths,
2314
2344
  extractNameFromPath,
2315
2345
  combineRepositoryTrees,
@@ -16,6 +16,7 @@ export interface DynamicFileTreeProps {
16
16
  onContextMenu?: (event: React.MouseEvent, nodePath: string, isFolder: boolean) => void;
17
17
  initialHeight?: number;
18
18
  autoHeight?: boolean;
19
+ enableDragAndDrop?: boolean;
19
20
  }
20
21
  export declare const DynamicFileTree: React.FC<DynamicFileTreeProps>;
21
22
  //# sourceMappingURL=DynamicFileTree.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicFileTree.d.ts","sourceRoot":"","sources":["../../../src/components/DynamicFileTree.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAgB,MAAM,sCAAsC,CAAC;AAC9E,OAAO,KAAkB,MAAM,OAAO,CAAC;AAgBvC,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpD,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACvF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAqGD,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAgH1D,CAAC"}
1
+ {"version":3,"file":"DynamicFileTree.d.ts","sourceRoot":"","sources":["../../../src/components/DynamicFileTree.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAgB,MAAM,sCAAsC,CAAC;AAC9E,OAAO,KAAkB,MAAM,OAAO,CAAC;AAiBvC,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpD,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACvF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAqGD,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAmH1D,CAAC"}
@@ -22,9 +22,11 @@ export interface GitStatusFileTreeProps {
22
22
  verticalNodePadding?: string;
23
23
  verticalPadding?: string;
24
24
  onContextMenu?: (event: React.MouseEvent, nodePath: string, isFolder: boolean) => void;
25
+ onNodeHover?: (nodePath: string | null, isFolder: boolean) => void;
25
26
  openByDefault?: boolean;
26
27
  initialHeight?: number;
27
28
  autoHeight?: boolean;
29
+ enableDragAndDrop?: boolean;
28
30
  }
29
31
  export declare const GitStatusFileTree: React.FC<GitStatusFileTreeProps>;
30
32
  //# sourceMappingURL=GitStatusFileTree.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GitStatusFileTree.d.ts","sourceRoot":"","sources":["../../../src/components/GitStatusFileTree.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAgB,MAAM,sCAAsC,CAAC;AAS9E,OAAO,KAAkB,MAAM,OAAO,CAAC;AAQvC,MAAM,MAAM,SAAS,GACjB,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,CAAC;AAGT,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,SAAS,CAAC;CACnB;AAmBD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,aAAa,EAAE,aAAa,EAAE,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpD,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACvF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AA0JD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CA0L9D,CAAC"}
1
+ {"version":3,"file":"GitStatusFileTree.d.ts","sourceRoot":"","sources":["../../../src/components/GitStatusFileTree.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAgB,MAAM,sCAAsC,CAAC;AAS9E,OAAO,KAAkB,MAAM,OAAO,CAAC;AASvC,MAAM,MAAM,SAAS,GACjB,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,CAAC;AAGT,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,SAAS,CAAC;CACnB;AAmBD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,aAAa,EAAE,aAAa,EAAE,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpD,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACvF,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACnE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AA0JD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAmM9D,CAAC"}
@@ -45,6 +45,8 @@ export interface TelemetryCoverageFileTreeProps {
45
45
  autoHeight?: boolean;
46
46
  /** Test file patterns (default: common test patterns) */
47
47
  testFilePatterns?: RegExp[];
48
+ /** Enable drag-and-drop (default: false). Requires DndProvider at app root to avoid conflicts. */
49
+ enableDragAndDrop?: boolean;
48
50
  }
49
51
  /**
50
52
  * TelemetryCoverageFileTree Component
@@ -1 +1 @@
1
- {"version":3,"file":"TelemetryCoverageFileTree.d.ts","sourceRoot":"","sources":["../../../src/components/TelemetryCoverageFileTree.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAgB,MAAM,sCAAsC,CAAC;AAO9E,OAAO,KAAkB,MAAM,OAAO,CAAC;AAOvC;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,sBAAsB;IACtB,MAAM,EAAE,uBAAuB,CAAC;IAChC,qCAAqC;IACrC,eAAe,EAAE,MAAM,CAAC;IACxB,oCAAoC;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAoBD,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,EAAE,qBAAqB,EAAE,CAAC;IACtC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpD,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,2CAA2C;IAC3C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kDAAkD;IAClD,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACvF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AA6KD;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,EAAE,CAAC,8BAA8B,CA8M9E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,+BAA+B,GAAI,cAAc,qBAAqB,EAAE;;;;;;;;CAgBpF,CAAC"}
1
+ {"version":3,"file":"TelemetryCoverageFileTree.d.ts","sourceRoot":"","sources":["../../../src/components/TelemetryCoverageFileTree.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAgB,MAAM,sCAAsC,CAAC;AAO9E,OAAO,KAAkB,MAAM,OAAO,CAAC;AAQvC;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,sBAAsB;IACtB,MAAM,EAAE,uBAAuB,CAAC;IAChC,qCAAqC;IACrC,eAAe,EAAE,MAAM,CAAC;IACxB,oCAAoC;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAoBD,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,EAAE,qBAAqB,EAAE,CAAC;IACtC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpD,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,2CAA2C;IAC3C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kDAAkD;IAClD,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACvF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,kGAAkG;IAClG,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AA6KD;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,EAAE,CAAC,8BAA8B,CAiN9E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,+BAA+B,GAAI,cAAc,qBAAqB,EAAE;;;;;;;;CAgBpF,CAAC"}
@@ -16,6 +16,7 @@ export interface TreeNodeProps<T extends TreeNodeData> extends NodeRendererProps
16
16
  horizontalNodePadding?: string;
17
17
  verticalNodePadding?: string;
18
18
  onContextMenu?: (event: React.MouseEvent, node: NodeRendererProps<T>['node']) => void;
19
+ onHover?: (isHovered: boolean, node: NodeRendererProps<T>['node']) => void;
19
20
  }
20
- export declare function TreeNode<T extends TreeNodeData>({ node, style, dragHandle, theme, rightContent, extraContent, isSelectedDirectory, nameColor, horizontalNodePadding, verticalNodePadding, onContextMenu, }: TreeNodeProps<T>): React.JSX.Element;
21
+ export declare function TreeNode<T extends TreeNodeData>({ node, style, dragHandle, theme, rightContent, extraContent, isSelectedDirectory, nameColor, horizontalNodePadding, verticalNodePadding, onContextMenu, onHover, }: TreeNodeProps<T>): React.JSX.Element;
21
22
  //# sourceMappingURL=TreeNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TreeNode.d.ts","sourceRoot":"","sources":["../../../src/components/TreeNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,KAAK,EAAE,EAAY,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,YAAY,CAAE,SAAQ,iBAAiB,CAAC,CAAC,CAAC;IACjF,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;CACvF;AAED,wBAAgB,QAAQ,CAAC,CAAC,SAAS,YAAY,EAAE,EAC/C,IAAI,EACJ,KAAK,EACL,UAAU,EACV,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,mBAA2B,EAC3B,SAAS,EACT,qBAA6B,EAC7B,mBAA2B,EAC3B,aAAa,GACd,EAAE,aAAa,CAAC,CAAC,CAAC,qBAuFlB"}
1
+ {"version":3,"file":"TreeNode.d.ts","sourceRoot":"","sources":["../../../src/components/TreeNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,KAAK,EAAE,EAAY,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,YAAY,CAAE,SAAQ,iBAAiB,CAAC,CAAC,CAAC;IACjF,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IACtF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;CAC5E;AAED,wBAAgB,QAAQ,CAAC,CAAC,SAAS,YAAY,EAAE,EAC/C,IAAI,EACJ,KAAK,EACL,UAAU,EACV,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,mBAA2B,EAC3B,SAAS,EACT,qBAA6B,EAC7B,mBAA2B,EAC3B,aAAa,EACb,OAAO,GACR,EAAE,aAAa,CAAC,CAAC,CAAC,qBA6FlB"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Utility to check drag-and-drop availability.
3
+ *
4
+ * To prevent "Cannot have two HTML5 backends at the same time" errors when
5
+ * multiple file tree instances are rendered (e.g., from different panel packages),
6
+ * we disable drag-and-drop by default.
7
+ *
8
+ * If the parent application provides a DndProvider at the root level and passes
9
+ * `enableDragAndDrop={true}` to the tree components, drag-and-drop will be enabled
10
+ * and all tree instances will share the same DnD backend.
11
+ *
12
+ * @param enableDragAndDrop - Whether drag-and-drop should be enabled (default: false)
13
+ * @returns Object with `disableDrag` and `disableDrop` props for react-arborist Tree
14
+ */
15
+ export declare const getDndProps: (enableDragAndDrop?: boolean) => {
16
+ disableDrag: boolean;
17
+ disableDrop: boolean;
18
+ };
19
+ //# sourceMappingURL=useDndManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDndManager.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDndManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,WAAW,GAAI,2BAAyB,KAAG;IAAE,WAAW,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAOnG,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@principal-ade/dynamic-file-tree",
3
- "version": "0.1.33",
3
+ "version": "0.1.35",
4
4
  "description": "React component for selective directory filtering and file tree visualization",
5
5
  "type": "module",
6
6
  "main": "dist/index.mjs",