@principal-ade/dynamic-file-tree 0.2.10 → 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
@@ -2768,14 +2768,6 @@ var StoryboardWorkflowsTreeCore = ({
2768
2768
  const initialHeight = 600;
2769
2769
  const [containerRef, containerHeight] = useContainerHeight(initialHeight);
2770
2770
  const treeRef = useRef5(null);
2771
- const [treeKey, setTreeKey] = useState7(0);
2772
- const prevOpenStateRef = useRef5(openState);
2773
- useEffect3(() => {
2774
- if (openState !== undefined && openState !== prevOpenStateRef.current) {
2775
- prevOpenStateRef.current = openState;
2776
- setTreeKey((k) => k + 1);
2777
- }
2778
- }, [openState]);
2779
2771
  const handleToggle = (id) => {
2780
2772
  if (onToggle && treeRef.current) {
2781
2773
  const node = treeRef.current.get(id);
@@ -2795,9 +2787,8 @@ var StoryboardWorkflowsTreeCore = ({
2795
2787
  ...verticalPadding ? { paddingTop: verticalPadding, paddingBottom: verticalPadding } : {}
2796
2788
  }
2797
2789
  }, /* @__PURE__ */ React13.createElement(Tree3, {
2798
- key: treeKey,
2799
2790
  ref: treeRef,
2800
- data: treeData,
2791
+ initialData: treeData,
2801
2792
  onSelect: handleSelect,
2802
2793
  openByDefault: defaultOpen,
2803
2794
  ...effectiveInitialOpenState !== undefined && { initialOpenState: effectiveInitialOpenState },
@@ -3047,7 +3038,7 @@ var WorkflowScenarioTreeCore = ({
3047
3038
  };
3048
3039
  // src/components/CanvasListTree/CanvasListTreeCore.tsx
3049
3040
  import { Package as Package3, Folder, LayoutDashboard as LayoutDashboard2, FileText } from "lucide-react";
3050
- 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";
3051
3042
  import { Tree as Tree5 } from "react-arborist";
3052
3043
  var buildTreeData = (canvases, gitStatusMap) => {
3053
3044
  const packagesMap = new Map;
@@ -3303,14 +3294,6 @@ var CanvasListTreeCore = ({
3303
3294
  const initialHeight = 600;
3304
3295
  const [containerRef, containerHeight] = useContainerHeight(initialHeight);
3305
3296
  const treeRef = useRef6(null);
3306
- const [treeKey, setTreeKey] = useState8(0);
3307
- const prevOpenStateRef = useRef6(openState);
3308
- useEffect4(() => {
3309
- if (openState !== undefined && openState !== prevOpenStateRef.current) {
3310
- prevOpenStateRef.current = openState;
3311
- setTreeKey((k) => k + 1);
3312
- }
3313
- }, [openState]);
3314
3297
  const handleToggle = (id) => {
3315
3298
  if (onToggle && treeRef.current) {
3316
3299
  const node = treeRef.current.get(id);
@@ -3330,7 +3313,6 @@ var CanvasListTreeCore = ({
3330
3313
  ...verticalPadding ? { paddingTop: verticalPadding, paddingBottom: verticalPadding } : {}
3331
3314
  }
3332
3315
  }, /* @__PURE__ */ React15.createElement(Tree5, {
3333
- key: treeKey,
3334
3316
  ref: treeRef,
3335
3317
  initialData: treeData,
3336
3318
  onSelect: handleSelect,
@@ -3850,7 +3832,7 @@ var calculateTelemetryCoverageStats = (coverageData) => {
3850
3832
  };
3851
3833
  // src/components/TelemetryCoverageFileTreeContainer.tsx
3852
3834
  import { RefreshCw as RefreshCw2, Eye as Eye3, EyeOff as EyeOff3, AlertCircle as AlertCircle5, Activity as Activity2 } from "lucide-react";
3853
- import React18, { useState as useState9, useMemo as useMemo14 } from "react";
3835
+ import React18, { useState as useState7, useMemo as useMemo14 } from "react";
3854
3836
  var TelemetryCoverageFileTreeContainer = ({
3855
3837
  fileTree,
3856
3838
  theme,
@@ -3870,8 +3852,8 @@ var TelemetryCoverageFileTreeContainer = ({
3870
3852
  verticalNodePadding,
3871
3853
  verticalPadding
3872
3854
  }) => {
3873
- const [filters, setFilters] = useState9([]);
3874
- const [showUncoveredFiles, setShowUncoveredFiles] = useState9(true);
3855
+ const [filters, setFilters] = useState7([]);
3856
+ const [showUncoveredFiles, setShowUncoveredFiles] = useState7(true);
3875
3857
  const selectedDirectories = useMemo14(() => {
3876
3858
  return filters.filter((f) => f.mode === "include").map((f) => f.path);
3877
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;AA6ejB,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.10",
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",