@principal-ade/dynamic-file-tree 0.2.9 → 0.2.11

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.mjs CHANGED
@@ -1952,7 +1952,7 @@ var MultiFileTree = ({
1952
1952
  };
1953
1953
  // src/components/StoryboardWorkflowsTree/StoryboardWorkflowsTreeCore.tsx
1954
1954
  import { Package, FolderKanban, LayoutDashboard, Workflow, BookOpen, FolderOpen, GitCommit, ExternalLink, List, ListX, Eye as Eye2, EyeOff as EyeOff2 } from "lucide-react";
1955
- import React13, { useMemo as useMemo9, useRef as useRef5, useState as useState7, useEffect as useEffect3 } from "react";
1955
+ import React13, { useMemo as useMemo9, useRef as useRef5 } from "react";
1956
1956
  import { Tree as Tree3 } from "react-arborist";
1957
1957
 
1958
1958
  // src/utils/gitStatus.tsx
@@ -2267,9 +2267,6 @@ var buildTreeDataFromStoryboards = (storyboards, workflowCoverageMap, traceWorkf
2267
2267
  bestPriority = statusPriority[wfStatus] ?? 99;
2268
2268
  }
2269
2269
  }
2270
- if (bestStatus) {
2271
- console.log(`[StoryboardGitStatus] ${storyboard.name}: ${bestStatus}`);
2272
- }
2273
2270
  return bestStatus;
2274
2271
  };
2275
2272
  return {
@@ -2771,14 +2768,6 @@ var StoryboardWorkflowsTreeCore = ({
2771
2768
  const initialHeight = 600;
2772
2769
  const [containerRef, containerHeight] = useContainerHeight(initialHeight);
2773
2770
  const treeRef = useRef5(null);
2774
- const [treeKey, setTreeKey] = useState7(0);
2775
- const prevOpenStateRef = useRef5(openState);
2776
- useEffect3(() => {
2777
- if (openState !== undefined && openState !== prevOpenStateRef.current) {
2778
- prevOpenStateRef.current = openState;
2779
- setTreeKey((k) => k + 1);
2780
- }
2781
- }, [openState]);
2782
2771
  const handleToggle = (id) => {
2783
2772
  if (onToggle && treeRef.current) {
2784
2773
  const node = treeRef.current.get(id);
@@ -2798,9 +2787,8 @@ var StoryboardWorkflowsTreeCore = ({
2798
2787
  ...verticalPadding ? { paddingTop: verticalPadding, paddingBottom: verticalPadding } : {}
2799
2788
  }
2800
2789
  }, /* @__PURE__ */ React13.createElement(Tree3, {
2801
- key: treeKey,
2802
2790
  ref: treeRef,
2803
- data: treeData,
2791
+ initialData: treeData,
2804
2792
  onSelect: handleSelect,
2805
2793
  openByDefault: defaultOpen,
2806
2794
  ...effectiveInitialOpenState !== undefined && { initialOpenState: effectiveInitialOpenState },
@@ -3050,7 +3038,7 @@ var WorkflowScenarioTreeCore = ({
3050
3038
  };
3051
3039
  // src/components/CanvasListTree/CanvasListTreeCore.tsx
3052
3040
  import { Package as Package3, Folder, LayoutDashboard as LayoutDashboard2, FileText } from "lucide-react";
3053
- import React15, { useMemo as useMemo11, useRef as useRef6, useState as useState8, useEffect as useEffect4 } from "react";
3041
+ import React15, { useMemo as useMemo11, useRef as useRef6 } from "react";
3054
3042
  import { Tree as Tree5 } from "react-arborist";
3055
3043
  var buildTreeData = (canvases, gitStatusMap) => {
3056
3044
  const packagesMap = new Map;
@@ -3306,14 +3294,6 @@ var CanvasListTreeCore = ({
3306
3294
  const initialHeight = 600;
3307
3295
  const [containerRef, containerHeight] = useContainerHeight(initialHeight);
3308
3296
  const treeRef = useRef6(null);
3309
- const [treeKey, setTreeKey] = useState8(0);
3310
- const prevOpenStateRef = useRef6(openState);
3311
- useEffect4(() => {
3312
- if (openState !== undefined && openState !== prevOpenStateRef.current) {
3313
- prevOpenStateRef.current = openState;
3314
- setTreeKey((k) => k + 1);
3315
- }
3316
- }, [openState]);
3317
3297
  const handleToggle = (id) => {
3318
3298
  if (onToggle && treeRef.current) {
3319
3299
  const node = treeRef.current.get(id);
@@ -3333,7 +3313,6 @@ var CanvasListTreeCore = ({
3333
3313
  ...verticalPadding ? { paddingTop: verticalPadding, paddingBottom: verticalPadding } : {}
3334
3314
  }
3335
3315
  }, /* @__PURE__ */ React15.createElement(Tree5, {
3336
- key: treeKey,
3337
3316
  ref: treeRef,
3338
3317
  initialData: treeData,
3339
3318
  onSelect: handleSelect,
@@ -3853,7 +3832,7 @@ var calculateTelemetryCoverageStats = (coverageData) => {
3853
3832
  };
3854
3833
  // src/components/TelemetryCoverageFileTreeContainer.tsx
3855
3834
  import { RefreshCw as RefreshCw2, Eye as Eye3, EyeOff as EyeOff3, AlertCircle as AlertCircle5, Activity as Activity2 } from "lucide-react";
3856
- import React18, { useState as useState9, useMemo as useMemo14 } from "react";
3835
+ import React18, { useState as useState7, useMemo as useMemo14 } from "react";
3857
3836
  var TelemetryCoverageFileTreeContainer = ({
3858
3837
  fileTree,
3859
3838
  theme,
@@ -3873,8 +3852,8 @@ var TelemetryCoverageFileTreeContainer = ({
3873
3852
  verticalNodePadding,
3874
3853
  verticalPadding
3875
3854
  }) => {
3876
- const [filters, setFilters] = useState9([]);
3877
- const [showUncoveredFiles, setShowUncoveredFiles] = useState9(true);
3855
+ const [filters, setFilters] = useState7([]);
3856
+ const [showUncoveredFiles, setShowUncoveredFiles] = useState7(true);
3878
3857
  const selectedDirectories = useMemo14(() => {
3879
3858
  return filters.filter((f) => f.mode === "include").map((f) => f.path);
3880
3859
  }, [filters]);
@@ -1 +1 @@
1
- {"version":3,"file":"CanvasListTreeCore.d.ts","sourceRoot":"","sources":["../../../../src/components/CanvasListTree/CanvasListTreeCore.tsx"],"names":[],"mappings":"AACA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAQpE,OAAO,KAAK,EAEV,mBAAmB,EAEpB,MAAM,SAAS,CAAC;AAuNjB,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA0M5D,CAAC"}
1
+ {"version":3,"file":"CanvasListTreeCore.d.ts","sourceRoot":"","sources":["../../../../src/components/CanvasListTree/CanvasListTreeCore.tsx"],"names":[],"mappings":"AACA,OAAO,KAA0B,MAAM,OAAO,CAAC;AAQ/C,OAAO,KAAK,EAEV,mBAAmB,EAEpB,MAAM,SAAS,CAAC;AAuNjB,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA6L5D,CAAC"}
@@ -39,5 +39,12 @@ export declare const WithStatusBars: Story;
39
39
  * the scenarios are shown as expandable children under the workflow node.
40
40
  * Each scenario displays its description and trace count.
41
41
  */
42
+ /**
43
+ * Scroll Preservation Test - Many Storyboards
44
+ *
45
+ * Tests that expanding nodes at the bottom of a long list preserves scroll position.
46
+ * This was a bug where the tree would re-mount and reset scroll to top.
47
+ */
48
+ export declare const ScrollPreservationTest: Story;
42
49
  export declare const WorkflowsWithScenarios: Story;
43
50
  //# sourceMappingURL=StoryboardWorkflowsTree.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StoryboardWorkflowsTree.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/StoryboardWorkflowsTree/StoryboardWorkflowsTree.stories.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAyP5E,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,2BAA2B,CAOlD,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAE1D,eAAO,MAAM,OAAO,EAAE,KAOrB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAO3B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAOhC,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAOzB,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAOhC,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAQ3B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAOxB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAO3B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAOzB,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAOhC,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAOxB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAuE7B,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,KAkEpC,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAgE7B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAU3B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAwB/B,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAiBlC,CAAC;AA4CF,eAAO,MAAM,eAAe,EAAE,KAe7B,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,KAqEvC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,KAyFvC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAiH9B,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,KA2GzC,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,KAyEzC,CAAC;AAMF,eAAO,MAAM,aAAa,EAAE,KAwF3B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KA0H/B,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,KAwF1C,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,KAuIrC,CAAC;AAMF,eAAO,MAAM,eAAe,EAAE,KAqK7B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAoH5B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,EAAE,KA0JpC,CAAC"}
1
+ {"version":3,"file":"StoryboardWorkflowsTree.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/StoryboardWorkflowsTree/StoryboardWorkflowsTree.stories.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAyP5E,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,2BAA2B,CAOlD,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAE1D,eAAO,MAAM,OAAO,EAAE,KAOrB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAO3B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAOhC,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAOzB,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAOhC,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAQ3B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAOxB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAO3B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAOzB,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAOhC,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAOxB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAuE7B,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,KAkEpC,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAgE7B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAU3B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAwB/B,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAiBlC,CAAC;AA4CF,eAAO,MAAM,eAAe,EAAE,KAe7B,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,KAqEvC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,KAyFvC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAiH9B,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,KA2GzC,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,KAyEzC,CAAC;AAMF,eAAO,MAAM,aAAa,EAAE,KAwF3B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KA0H/B,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,KAwF1C,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,KAuIrC,CAAC;AAMF,eAAO,MAAM,eAAe,EAAE,KAqK7B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAoH5B,CAAC;AAEF;;;;;;GAMG;AACH;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,EAAE,KAmEpC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,KA0JpC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"StoryboardWorkflowsTreeCore.d.ts","sourceRoot":"","sources":["../../../../src/components/StoryboardWorkflowsTree/StoryboardWorkflowsTreeCore.tsx"],"names":[],"mappings":"AACA,OAAO,KAA+C,MAAM,OAAO,CAAC;AASpE,OAAO,KAAK,EAEV,4BAA4B,EAQ7B,MAAM,SAAS,CAAC;AAkfjB,eAAO,MAAM,2BAA2B,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAke9E,CAAC"}
1
+ {"version":3,"file":"StoryboardWorkflowsTreeCore.d.ts","sourceRoot":"","sources":["../../../../src/components/StoryboardWorkflowsTree/StoryboardWorkflowsTreeCore.tsx"],"names":[],"mappings":"AACA,OAAO,KAA0B,MAAM,OAAO,CAAC;AAS/C,OAAO,KAAK,EAEV,4BAA4B,EAQ7B,MAAM,SAAS,CAAC;AA6ejB,eAAO,MAAM,2BAA2B,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAqd9E,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@principal-ade/dynamic-file-tree",
3
- "version": "0.2.9",
3
+ "version": "0.2.11",
4
4
  "description": "React component for selective directory filtering and file tree visualization",
5
5
  "type": "module",
6
6
  "main": "dist/index.mjs",