@principal-ade/dynamic-file-tree 0.1.36 → 0.1.38
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 +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +205 -50
- package/dist/src/components/CanvasNarrativeTree/CanvasNarrativeTree.stories.d.ts +20 -0
- package/dist/src/components/CanvasNarrativeTree/CanvasNarrativeTree.stories.d.ts.map +1 -0
- package/dist/src/components/CanvasNarrativeTree/CanvasNarrativeTreeCore.d.ts +4 -0
- package/dist/src/components/CanvasNarrativeTree/CanvasNarrativeTreeCore.d.ts.map +1 -0
- package/dist/src/components/CanvasNarrativeTree/types.d.ts +37 -0
- package/dist/src/components/CanvasNarrativeTree/types.d.ts.map +1 -0
- package/dist/src/components/GitStatusFileTree.stories.d.ts +1 -0
- package/dist/src/components/GitStatusFileTree.stories.d.ts.map +1 -1
- package/package.json +3 -2
package/dist/index.d.ts
CHANGED
|
@@ -18,6 +18,8 @@ export { GitStatusFileTreeContainer } from './src/components/GitStatusFileTreeCo
|
|
|
18
18
|
export type { GitStatusFileTreeContainerProps } from './src/components/GitStatusFileTreeContainer';
|
|
19
19
|
export { MultiFileTree, MultiFileTreeCore } from './src/components/MultiFileTree';
|
|
20
20
|
export type { MultiFileTreeProps, MultiFileTreeCoreProps } from './src/components/MultiFileTree';
|
|
21
|
+
export { CanvasNarrativeTreeCore } from './src/components/CanvasNarrativeTree/CanvasNarrativeTreeCore';
|
|
22
|
+
export type { CanvasNarrativeTreeCoreProps, CanvasNarrativeNodeData, CanvasNarrativeNodeType, DiscoveredCanvas, NarrativeFile, } from './src/components/CanvasNarrativeTree/types';
|
|
21
23
|
export { TelemetryCoverageFileTree, calculateTelemetryCoverageStats, } from './src/components/TelemetryCoverageFileTree';
|
|
22
24
|
export type { TelemetryCoverageFileTreeProps, FileTelemetryCoverage, TelemetryCoverageStatus, } from './src/components/TelemetryCoverageFileTree';
|
|
23
25
|
export { TelemetryCoverageFileTreeContainer } from './src/components/TelemetryCoverageFileTreeContainer';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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"}
|
|
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,EAAE,uBAAuB,EAAE,MAAM,8DAA8D,CAAC;AACvG,YAAY,EACV,4BAA4B,EAC5B,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,aAAa,GACd,MAAM,4CAA4C,CAAC;AAGpD,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
|
@@ -1859,6 +1859,160 @@ var MultiFileTree = ({
|
|
|
1859
1859
|
}
|
|
1860
1860
|
}, "Selected: ", selectedFile.source.name, " / ", selectedFile.path));
|
|
1861
1861
|
};
|
|
1862
|
+
// src/components/CanvasNarrativeTree/CanvasNarrativeTreeCore.tsx
|
|
1863
|
+
import { Package, Workflow, Scroll } from "lucide-react";
|
|
1864
|
+
import React11, { useMemo as useMemo9 } from "react";
|
|
1865
|
+
import { Tree as Tree3 } from "react-arborist";
|
|
1866
|
+
var buildTreeData = (canvases, narratives) => {
|
|
1867
|
+
const packagesMap = new Map;
|
|
1868
|
+
const rootCanvases = [];
|
|
1869
|
+
for (const canvas of canvases) {
|
|
1870
|
+
if (canvas.scope === "package" && canvas.packageName) {
|
|
1871
|
+
const existing = packagesMap.get(canvas.packageName) || [];
|
|
1872
|
+
existing.push(canvas);
|
|
1873
|
+
packagesMap.set(canvas.packageName, existing);
|
|
1874
|
+
} else {
|
|
1875
|
+
rootCanvases.push(canvas);
|
|
1876
|
+
}
|
|
1877
|
+
}
|
|
1878
|
+
const canvasToNarratives = new Map;
|
|
1879
|
+
for (const narrative of narratives) {
|
|
1880
|
+
const canvasPath = narrative.template.canvas;
|
|
1881
|
+
if (canvasPath) {
|
|
1882
|
+
for (const canvas of canvases) {
|
|
1883
|
+
if (canvas.path === canvasPath || canvas.path.endsWith(canvasPath)) {
|
|
1884
|
+
const existing = canvasToNarratives.get(canvas.id) || [];
|
|
1885
|
+
existing.push(narrative);
|
|
1886
|
+
canvasToNarratives.set(canvas.id, existing);
|
|
1887
|
+
break;
|
|
1888
|
+
}
|
|
1889
|
+
}
|
|
1890
|
+
}
|
|
1891
|
+
}
|
|
1892
|
+
const buildCanvasNode = (canvas) => {
|
|
1893
|
+
const narrativesForCanvas = canvasToNarratives.get(canvas.id) || [];
|
|
1894
|
+
const narrativeNodes = narrativesForCanvas.map(({ file, template }) => ({
|
|
1895
|
+
id: `narrative:${file.id}`,
|
|
1896
|
+
name: file.name,
|
|
1897
|
+
type: "narrative",
|
|
1898
|
+
narrative: file,
|
|
1899
|
+
narrativeTemplate: template,
|
|
1900
|
+
canvas
|
|
1901
|
+
})).sort((a, b) => a.name.localeCompare(b.name));
|
|
1902
|
+
return {
|
|
1903
|
+
id: `canvas:${canvas.id}`,
|
|
1904
|
+
name: canvas.name,
|
|
1905
|
+
type: "canvas",
|
|
1906
|
+
canvas,
|
|
1907
|
+
children: narrativeNodes.length > 0 ? narrativeNodes : undefined
|
|
1908
|
+
};
|
|
1909
|
+
};
|
|
1910
|
+
const hasMultiplePackages = packagesMap.size > 1;
|
|
1911
|
+
const hasRootAndPackages = packagesMap.size > 0 && rootCanvases.length > 0;
|
|
1912
|
+
const shouldShowPackageLevel = hasMultiplePackages || hasRootAndPackages;
|
|
1913
|
+
if (shouldShowPackageLevel) {
|
|
1914
|
+
const result = [];
|
|
1915
|
+
for (const [packageName, packageCanvases] of packagesMap) {
|
|
1916
|
+
const canvasNodes = packageCanvases.map(buildCanvasNode).sort((a, b) => a.name.localeCompare(b.name));
|
|
1917
|
+
result.push({
|
|
1918
|
+
id: `package:${packageName}`,
|
|
1919
|
+
name: packageName,
|
|
1920
|
+
type: "package",
|
|
1921
|
+
packageName,
|
|
1922
|
+
scope: "package",
|
|
1923
|
+
children: canvasNodes
|
|
1924
|
+
});
|
|
1925
|
+
}
|
|
1926
|
+
if (rootCanvases.length > 0) {
|
|
1927
|
+
const rootCanvasNodes = rootCanvases.map(buildCanvasNode).sort((a, b) => a.name.localeCompare(b.name));
|
|
1928
|
+
result.push({
|
|
1929
|
+
id: "package:root",
|
|
1930
|
+
name: "Root",
|
|
1931
|
+
type: "package",
|
|
1932
|
+
packageName: "root",
|
|
1933
|
+
scope: "root",
|
|
1934
|
+
children: rootCanvasNodes
|
|
1935
|
+
});
|
|
1936
|
+
}
|
|
1937
|
+
return result.sort((a, b) => {
|
|
1938
|
+
if (a.packageName === "root")
|
|
1939
|
+
return 1;
|
|
1940
|
+
if (b.packageName === "root")
|
|
1941
|
+
return -1;
|
|
1942
|
+
return a.name.localeCompare(b.name);
|
|
1943
|
+
});
|
|
1944
|
+
} else {
|
|
1945
|
+
const allCanvases = [...rootCanvases];
|
|
1946
|
+
for (const packageCanvases of packagesMap.values()) {
|
|
1947
|
+
allCanvases.push(...packageCanvases);
|
|
1948
|
+
}
|
|
1949
|
+
return allCanvases.map(buildCanvasNode).sort((a, b) => a.name.localeCompare(b.name));
|
|
1950
|
+
}
|
|
1951
|
+
};
|
|
1952
|
+
var CanvasNarrativeTreeCore = ({
|
|
1953
|
+
canvases,
|
|
1954
|
+
narratives,
|
|
1955
|
+
theme,
|
|
1956
|
+
onClick,
|
|
1957
|
+
selectedNodeId,
|
|
1958
|
+
defaultOpen = false,
|
|
1959
|
+
initialOpenState,
|
|
1960
|
+
horizontalNodePadding = "8px",
|
|
1961
|
+
verticalNodePadding = "3px",
|
|
1962
|
+
verticalPadding
|
|
1963
|
+
}) => {
|
|
1964
|
+
const treeData = useMemo9(() => buildTreeData(canvases, narratives), [canvases, narratives]);
|
|
1965
|
+
const NodeRenderer = (props) => {
|
|
1966
|
+
const { node } = props;
|
|
1967
|
+
const data = node.data;
|
|
1968
|
+
const icon = data.type === "package" ? /* @__PURE__ */ React11.createElement(Package, {
|
|
1969
|
+
size: 16
|
|
1970
|
+
}) : data.type === "canvas" ? /* @__PURE__ */ React11.createElement(Workflow, {
|
|
1971
|
+
size: 16
|
|
1972
|
+
}) : /* @__PURE__ */ React11.createElement(Scroll, {
|
|
1973
|
+
size: 16
|
|
1974
|
+
});
|
|
1975
|
+
const nameColor = data.type === "package" ? theme.colors.primary : data.type === "canvas" ? theme.colors.success : theme.colors.textSecondary;
|
|
1976
|
+
return /* @__PURE__ */ React11.createElement(TreeNode, {
|
|
1977
|
+
...props,
|
|
1978
|
+
theme,
|
|
1979
|
+
nameColor,
|
|
1980
|
+
rightContent: icon,
|
|
1981
|
+
horizontalNodePadding,
|
|
1982
|
+
verticalNodePadding
|
|
1983
|
+
});
|
|
1984
|
+
};
|
|
1985
|
+
const handleSelect = (selectedNodes) => {
|
|
1986
|
+
if (selectedNodes.length === 0)
|
|
1987
|
+
return;
|
|
1988
|
+
const node = selectedNodes[0];
|
|
1989
|
+
const nodeData = node.data;
|
|
1990
|
+
if (nodeData.type === "canvas" || nodeData.type === "narrative") {
|
|
1991
|
+
onClick(nodeData);
|
|
1992
|
+
}
|
|
1993
|
+
};
|
|
1994
|
+
const initialHeight = 600;
|
|
1995
|
+
const [containerRef, containerHeight] = useContainerHeight(initialHeight);
|
|
1996
|
+
return /* @__PURE__ */ React11.createElement("div", {
|
|
1997
|
+
ref: containerRef,
|
|
1998
|
+
style: {
|
|
1999
|
+
backgroundColor: theme.colors.background,
|
|
2000
|
+
color: theme.colors.text,
|
|
2001
|
+
fontFamily: theme.fonts.body,
|
|
2002
|
+
height: "100%",
|
|
2003
|
+
...verticalPadding ? { paddingTop: verticalPadding, paddingBottom: verticalPadding } : {}
|
|
2004
|
+
}
|
|
2005
|
+
}, /* @__PURE__ */ React11.createElement(Tree3, {
|
|
2006
|
+
initialData: treeData,
|
|
2007
|
+
onSelect: handleSelect,
|
|
2008
|
+
openByDefault: defaultOpen,
|
|
2009
|
+
...initialOpenState !== undefined && { initialOpenState },
|
|
2010
|
+
...selectedNodeId !== undefined && { selection: selectedNodeId },
|
|
2011
|
+
width: "100%",
|
|
2012
|
+
height: containerHeight,
|
|
2013
|
+
rowHeight: 28
|
|
2014
|
+
}, NodeRenderer));
|
|
2015
|
+
};
|
|
1862
2016
|
// src/components/TelemetryCoverageFileTree.tsx
|
|
1863
2017
|
import {
|
|
1864
2018
|
Activity,
|
|
@@ -1866,9 +2020,9 @@ import {
|
|
|
1866
2020
|
Circle,
|
|
1867
2021
|
TestTube
|
|
1868
2022
|
} from "lucide-react";
|
|
1869
|
-
import
|
|
1870
|
-
import { Tree as
|
|
1871
|
-
var TelemetryCoverageContext =
|
|
2023
|
+
import React12, { useMemo as useMemo10 } from "react";
|
|
2024
|
+
import { Tree as Tree4 } from "react-arborist";
|
|
2025
|
+
var TelemetryCoverageContext = React12.createContext(null);
|
|
1872
2026
|
var DEFAULT_TEST_PATTERNS = [
|
|
1873
2027
|
/\.test\.[jt]sx?$/,
|
|
1874
2028
|
/\.spec\.[jt]sx?$/,
|
|
@@ -1885,7 +2039,7 @@ var getCoverageStatusDisplay = (coverage, _theme) => {
|
|
|
1885
2039
|
switch (status) {
|
|
1886
2040
|
case "covered":
|
|
1887
2041
|
return {
|
|
1888
|
-
icon: /* @__PURE__ */
|
|
2042
|
+
icon: /* @__PURE__ */ React12.createElement(Activity, {
|
|
1889
2043
|
size: 14
|
|
1890
2044
|
}),
|
|
1891
2045
|
color: "#22c55e",
|
|
@@ -1894,7 +2048,7 @@ var getCoverageStatusDisplay = (coverage, _theme) => {
|
|
|
1894
2048
|
};
|
|
1895
2049
|
case "partial":
|
|
1896
2050
|
return {
|
|
1897
|
-
icon: /* @__PURE__ */
|
|
2051
|
+
icon: /* @__PURE__ */ React12.createElement(CircleDot, {
|
|
1898
2052
|
size: 14
|
|
1899
2053
|
}),
|
|
1900
2054
|
color: "#eab308",
|
|
@@ -1903,7 +2057,7 @@ var getCoverageStatusDisplay = (coverage, _theme) => {
|
|
|
1903
2057
|
};
|
|
1904
2058
|
case "none":
|
|
1905
2059
|
return {
|
|
1906
|
-
icon: /* @__PURE__ */
|
|
2060
|
+
icon: /* @__PURE__ */ React12.createElement(Circle, {
|
|
1907
2061
|
size: 14
|
|
1908
2062
|
}),
|
|
1909
2063
|
color: "#6b7280",
|
|
@@ -2005,7 +2159,7 @@ var TelemetryCoverageFileTree = ({
|
|
|
2005
2159
|
enableDragAndDrop = false
|
|
2006
2160
|
}) => {
|
|
2007
2161
|
const dndProps = getDndProps(enableDragAndDrop);
|
|
2008
|
-
const coverageMap =
|
|
2162
|
+
const coverageMap = useMemo10(() => {
|
|
2009
2163
|
const map = new Map;
|
|
2010
2164
|
coverageData.forEach((item) => {
|
|
2011
2165
|
map.set(item.filePath, item);
|
|
@@ -2014,7 +2168,7 @@ var TelemetryCoverageFileTree = ({
|
|
|
2014
2168
|
}, [coverageData]);
|
|
2015
2169
|
const NodeRenderer = (props) => {
|
|
2016
2170
|
const { node } = props;
|
|
2017
|
-
const ctx =
|
|
2171
|
+
const ctx = React12.useContext(TelemetryCoverageContext);
|
|
2018
2172
|
const coverage = ctx?.coverageMap.get(node.data.id);
|
|
2019
2173
|
const hasTracedChildren = ctx?.hasTracedChildrenMap.get(node.data.id);
|
|
2020
2174
|
const coverageDisplay = coverage ? getCoverageStatusDisplay(coverage, theme) : null;
|
|
@@ -2026,11 +2180,11 @@ var TelemetryCoverageFileTree = ({
|
|
|
2026
2180
|
} else if (node.data.isTestFile) {
|
|
2027
2181
|
nameColor = "#6b728080";
|
|
2028
2182
|
}
|
|
2029
|
-
const leftIcon = node.data.isTestFile && !coverage ? /* @__PURE__ */
|
|
2183
|
+
const leftIcon = node.data.isTestFile && !coverage ? /* @__PURE__ */ React12.createElement(TestTube, {
|
|
2030
2184
|
size: 14,
|
|
2031
2185
|
style: { marginRight: 4, color: "#6b7280" }
|
|
2032
2186
|
}) : null;
|
|
2033
|
-
const rightContent = coverageDisplay ? /* @__PURE__ */
|
|
2187
|
+
const rightContent = coverageDisplay ? /* @__PURE__ */ React12.createElement("div", {
|
|
2034
2188
|
style: {
|
|
2035
2189
|
display: "flex",
|
|
2036
2190
|
alignItems: "center",
|
|
@@ -2038,14 +2192,14 @@ var TelemetryCoverageFileTree = ({
|
|
|
2038
2192
|
marginRight: "8px"
|
|
2039
2193
|
},
|
|
2040
2194
|
title: coverageDisplay.label
|
|
2041
|
-
}, coverageDisplay.icon, /* @__PURE__ */
|
|
2195
|
+
}, coverageDisplay.icon, /* @__PURE__ */ React12.createElement("span", {
|
|
2042
2196
|
style: {
|
|
2043
2197
|
marginLeft: "4px",
|
|
2044
2198
|
fontSize: "11px",
|
|
2045
2199
|
fontWeight: "bold",
|
|
2046
2200
|
fontFamily: "monospace"
|
|
2047
2201
|
}
|
|
2048
|
-
}, coverageDisplay.badge)) : node.data.isTestFile ? /* @__PURE__ */
|
|
2202
|
+
}, coverageDisplay.badge)) : node.data.isTestFile ? /* @__PURE__ */ React12.createElement("div", {
|
|
2049
2203
|
style: {
|
|
2050
2204
|
display: "flex",
|
|
2051
2205
|
alignItems: "center",
|
|
@@ -2054,10 +2208,10 @@ var TelemetryCoverageFileTree = ({
|
|
|
2054
2208
|
opacity: 0.5
|
|
2055
2209
|
},
|
|
2056
2210
|
title: "No telemetry instrumentation"
|
|
2057
|
-
}, /* @__PURE__ */
|
|
2211
|
+
}, /* @__PURE__ */ React12.createElement(Circle, {
|
|
2058
2212
|
size: 14
|
|
2059
2213
|
})) : null;
|
|
2060
|
-
return /* @__PURE__ */
|
|
2214
|
+
return /* @__PURE__ */ React12.createElement(TreeNode, {
|
|
2061
2215
|
...props,
|
|
2062
2216
|
theme,
|
|
2063
2217
|
rightContent,
|
|
@@ -2072,16 +2226,16 @@ var TelemetryCoverageFileTree = ({
|
|
|
2072
2226
|
}
|
|
2073
2227
|
});
|
|
2074
2228
|
};
|
|
2075
|
-
const treeStructure =
|
|
2229
|
+
const treeStructure = useMemo10(() => {
|
|
2076
2230
|
return transformTreeStructure2(fileTree, showOnlyTestFiles, testFilePatterns);
|
|
2077
2231
|
}, [fileTree, showOnlyTestFiles, testFilePatterns]);
|
|
2078
|
-
const treeData =
|
|
2232
|
+
const treeData = useMemo10(() => {
|
|
2079
2233
|
if (showUncoveredFiles) {
|
|
2080
2234
|
return treeStructure;
|
|
2081
2235
|
}
|
|
2082
2236
|
return filterCoveredNodes(treeStructure, coverageMap);
|
|
2083
2237
|
}, [treeStructure, showUncoveredFiles, coverageMap]);
|
|
2084
|
-
const hasTracedChildrenMap =
|
|
2238
|
+
const hasTracedChildrenMap = useMemo10(() => {
|
|
2085
2239
|
const map = new Map;
|
|
2086
2240
|
const markTracedParents = (nodes) => {
|
|
2087
2241
|
let hasTraced = false;
|
|
@@ -2113,7 +2267,7 @@ var TelemetryCoverageFileTree = ({
|
|
|
2113
2267
|
onDirectorySelect(selectedDirs);
|
|
2114
2268
|
}
|
|
2115
2269
|
};
|
|
2116
|
-
const calculatedHeight =
|
|
2270
|
+
const calculatedHeight = useMemo10(() => {
|
|
2117
2271
|
if (autoHeight) {
|
|
2118
2272
|
const visibleNodeCount = countVisibleNodes3(treeData, openByDefault);
|
|
2119
2273
|
return visibleNodeCount * 28;
|
|
@@ -2121,7 +2275,7 @@ var TelemetryCoverageFileTree = ({
|
|
|
2121
2275
|
return initialHeight;
|
|
2122
2276
|
}, [autoHeight, treeData, openByDefault, initialHeight]);
|
|
2123
2277
|
const [containerRef, containerHeight] = useContainerHeight(calculatedHeight);
|
|
2124
|
-
return /* @__PURE__ */
|
|
2278
|
+
return /* @__PURE__ */ React12.createElement("div", {
|
|
2125
2279
|
ref: containerRef,
|
|
2126
2280
|
style: {
|
|
2127
2281
|
backgroundColor: transparentBackground ? "transparent" : theme.colors.background,
|
|
@@ -2130,9 +2284,9 @@ var TelemetryCoverageFileTree = ({
|
|
|
2130
2284
|
...autoHeight ? {} : { height: "100%" },
|
|
2131
2285
|
...verticalPadding ? { paddingTop: verticalPadding, paddingBottom: verticalPadding } : {}
|
|
2132
2286
|
}
|
|
2133
|
-
}, /* @__PURE__ */
|
|
2287
|
+
}, /* @__PURE__ */ React12.createElement(TelemetryCoverageContext.Provider, {
|
|
2134
2288
|
value: { coverageMap, hasTracedChildrenMap }
|
|
2135
|
-
}, /* @__PURE__ */
|
|
2289
|
+
}, /* @__PURE__ */ React12.createElement(Tree4, {
|
|
2136
2290
|
data: treeData,
|
|
2137
2291
|
onSelect: handleSelect,
|
|
2138
2292
|
...selectedFile !== undefined && { selection: selectedFile },
|
|
@@ -2161,7 +2315,7 @@ var calculateTelemetryCoverageStats = (coverageData) => {
|
|
|
2161
2315
|
};
|
|
2162
2316
|
// src/components/TelemetryCoverageFileTreeContainer.tsx
|
|
2163
2317
|
import { RefreshCw as RefreshCw2, Eye as Eye2, EyeOff as EyeOff2, AlertCircle as AlertCircle4, Activity as Activity2 } from "lucide-react";
|
|
2164
|
-
import
|
|
2318
|
+
import React13, { useState as useState7, useMemo as useMemo11 } from "react";
|
|
2165
2319
|
var TelemetryCoverageFileTreeContainer = ({
|
|
2166
2320
|
fileTree,
|
|
2167
2321
|
theme,
|
|
@@ -2183,10 +2337,10 @@ var TelemetryCoverageFileTreeContainer = ({
|
|
|
2183
2337
|
}) => {
|
|
2184
2338
|
const [filters, setFilters] = useState7([]);
|
|
2185
2339
|
const [showUncoveredFiles, setShowUncoveredFiles] = useState7(true);
|
|
2186
|
-
const selectedDirectories =
|
|
2340
|
+
const selectedDirectories = useMemo11(() => {
|
|
2187
2341
|
return filters.filter((f) => f.mode === "include").map((f) => f.path);
|
|
2188
2342
|
}, [filters]);
|
|
2189
|
-
const stats =
|
|
2343
|
+
const stats = useMemo11(() => calculateTelemetryCoverageStats(coverageData), [coverageData]);
|
|
2190
2344
|
const handleRefresh = () => {
|
|
2191
2345
|
onRefresh?.();
|
|
2192
2346
|
};
|
|
@@ -2194,34 +2348,34 @@ var TelemetryCoverageFileTreeContainer = ({
|
|
|
2194
2348
|
setShowUncoveredFiles(!showUncoveredFiles);
|
|
2195
2349
|
};
|
|
2196
2350
|
const percentageColor = stats.percentage >= 80 ? "#22c55e" : stats.percentage >= 50 ? "#eab308" : stats.percentage > 0 ? "#f97316" : "#6b7280";
|
|
2197
|
-
return /* @__PURE__ */
|
|
2351
|
+
return /* @__PURE__ */ React13.createElement("div", {
|
|
2198
2352
|
style: { display: "flex", flexDirection: "column", height: "100%" }
|
|
2199
|
-
}, showControls && /* @__PURE__ */
|
|
2353
|
+
}, showControls && /* @__PURE__ */ React13.createElement("div", {
|
|
2200
2354
|
style: {
|
|
2201
2355
|
padding: "12px",
|
|
2202
2356
|
borderBottom: `1px solid ${theme.colors.border || "#e0e0e0"}`,
|
|
2203
2357
|
backgroundColor: theme.colors.backgroundSecondary || theme.colors.background
|
|
2204
2358
|
}
|
|
2205
|
-
}, /* @__PURE__ */
|
|
2359
|
+
}, /* @__PURE__ */ React13.createElement("div", {
|
|
2206
2360
|
style: {
|
|
2207
2361
|
display: "flex",
|
|
2208
2362
|
alignItems: "center",
|
|
2209
2363
|
justifyContent: "space-between",
|
|
2210
2364
|
marginBottom: "8px"
|
|
2211
2365
|
}
|
|
2212
|
-
}, /* @__PURE__ */
|
|
2366
|
+
}, /* @__PURE__ */ React13.createElement("div", {
|
|
2213
2367
|
style: { display: "flex", alignItems: "center", gap: "8px" }
|
|
2214
|
-
}, /* @__PURE__ */
|
|
2368
|
+
}, /* @__PURE__ */ React13.createElement(Activity2, {
|
|
2215
2369
|
size: 16,
|
|
2216
2370
|
color: theme.colors.primary
|
|
2217
|
-
}), /* @__PURE__ */
|
|
2371
|
+
}), /* @__PURE__ */ React13.createElement("h3", {
|
|
2218
2372
|
style: {
|
|
2219
2373
|
margin: 0,
|
|
2220
2374
|
fontSize: "14px",
|
|
2221
2375
|
fontWeight: "bold",
|
|
2222
2376
|
color: theme.colors.text
|
|
2223
2377
|
}
|
|
2224
|
-
}, title), stats.testFiles > 0 && /* @__PURE__ */
|
|
2378
|
+
}, title), stats.testFiles > 0 && /* @__PURE__ */ React13.createElement("span", {
|
|
2225
2379
|
style: {
|
|
2226
2380
|
backgroundColor: percentageColor,
|
|
2227
2381
|
color: "#ffffff",
|
|
@@ -2231,14 +2385,14 @@ var TelemetryCoverageFileTreeContainer = ({
|
|
|
2231
2385
|
fontWeight: "bold",
|
|
2232
2386
|
fontFamily: "monospace"
|
|
2233
2387
|
}
|
|
2234
|
-
}, stats.percentage, "%"), isLoading && /* @__PURE__ */
|
|
2388
|
+
}, stats.percentage, "%"), isLoading && /* @__PURE__ */ React13.createElement(RefreshCw2, {
|
|
2235
2389
|
size: 16,
|
|
2236
2390
|
color: theme.colors.text,
|
|
2237
2391
|
className: "telemetry-coverage-spinner",
|
|
2238
2392
|
style: { animation: "spin 1s linear infinite" }
|
|
2239
|
-
})), /* @__PURE__ */
|
|
2393
|
+
})), /* @__PURE__ */ React13.createElement("div", {
|
|
2240
2394
|
style: { display: "flex", gap: "8px" }
|
|
2241
|
-
}, /* @__PURE__ */
|
|
2395
|
+
}, /* @__PURE__ */ React13.createElement("button", {
|
|
2242
2396
|
onClick: toggleShowUncoveredFiles,
|
|
2243
2397
|
style: {
|
|
2244
2398
|
background: "none",
|
|
@@ -2253,11 +2407,11 @@ var TelemetryCoverageFileTreeContainer = ({
|
|
|
2253
2407
|
color: theme.colors.text
|
|
2254
2408
|
},
|
|
2255
2409
|
title: showUncoveredFiles ? "Show only covered files" : "Show all test files"
|
|
2256
|
-
}, showUncoveredFiles ? /* @__PURE__ */
|
|
2410
|
+
}, showUncoveredFiles ? /* @__PURE__ */ React13.createElement(EyeOff2, {
|
|
2257
2411
|
size: 14
|
|
2258
|
-
}) : /* @__PURE__ */
|
|
2412
|
+
}) : /* @__PURE__ */ React13.createElement(Eye2, {
|
|
2259
2413
|
size: 14
|
|
2260
|
-
}), showUncoveredFiles ? "Hide uncovered" : "Show all"), onRefresh && /* @__PURE__ */
|
|
2414
|
+
}), showUncoveredFiles ? "Hide uncovered" : "Show all"), onRefresh && /* @__PURE__ */ React13.createElement("button", {
|
|
2261
2415
|
onClick: handleRefresh,
|
|
2262
2416
|
disabled: isLoading,
|
|
2263
2417
|
style: {
|
|
@@ -2274,9 +2428,9 @@ var TelemetryCoverageFileTreeContainer = ({
|
|
|
2274
2428
|
opacity: isLoading ? 0.6 : 1
|
|
2275
2429
|
},
|
|
2276
2430
|
title: "Refresh coverage data"
|
|
2277
|
-
}, /* @__PURE__ */
|
|
2431
|
+
}, /* @__PURE__ */ React13.createElement(RefreshCw2, {
|
|
2278
2432
|
size: 14
|
|
2279
|
-
}), "Refresh"))), error && /* @__PURE__ */
|
|
2433
|
+
}), "Refresh"))), error && /* @__PURE__ */ React13.createElement("div", {
|
|
2280
2434
|
style: {
|
|
2281
2435
|
display: "flex",
|
|
2282
2436
|
alignItems: "center",
|
|
@@ -2289,36 +2443,36 @@ var TelemetryCoverageFileTreeContainer = ({
|
|
|
2289
2443
|
color: "#856404",
|
|
2290
2444
|
marginBottom: "8px"
|
|
2291
2445
|
}
|
|
2292
|
-
}, /* @__PURE__ */
|
|
2446
|
+
}, /* @__PURE__ */ React13.createElement(AlertCircle4, {
|
|
2293
2447
|
size: 14
|
|
2294
|
-
}), error), !error && stats.testFiles > 0 && /* @__PURE__ */
|
|
2448
|
+
}), error), !error && stats.testFiles > 0 && /* @__PURE__ */ React13.createElement("div", {
|
|
2295
2449
|
style: {
|
|
2296
2450
|
display: "flex",
|
|
2297
2451
|
gap: "16px",
|
|
2298
2452
|
fontSize: "12px",
|
|
2299
2453
|
color: theme.colors.textSecondary || "#666"
|
|
2300
2454
|
}
|
|
2301
|
-
}, /* @__PURE__ */
|
|
2455
|
+
}, /* @__PURE__ */ React13.createElement("span", null, /* @__PURE__ */ React13.createElement("strong", {
|
|
2302
2456
|
style: { color: "#22c55e" }
|
|
2303
|
-
}, stats.coveredFiles), " covered"), stats.partialFiles > 0 && /* @__PURE__ */
|
|
2457
|
+
}, stats.coveredFiles), " covered"), stats.partialFiles > 0 && /* @__PURE__ */ React13.createElement("span", null, /* @__PURE__ */ React13.createElement("strong", {
|
|
2304
2458
|
style: { color: "#eab308" }
|
|
2305
|
-
}, stats.partialFiles), " partial"), /* @__PURE__ */
|
|
2459
|
+
}, stats.partialFiles), " partial"), /* @__PURE__ */ React13.createElement("span", null, /* @__PURE__ */ React13.createElement("strong", {
|
|
2306
2460
|
style: { color: "#6b7280" }
|
|
2307
|
-
}, stats.uncoveredFiles), " uncovered"), /* @__PURE__ */
|
|
2461
|
+
}, stats.uncoveredFiles), " uncovered"), /* @__PURE__ */ React13.createElement("span", {
|
|
2308
2462
|
style: { marginLeft: "auto" }
|
|
2309
|
-
}, stats.totalTraced, "/", stats.totalTests, " tests traced")), !error && stats.testFiles === 0 && /* @__PURE__ */
|
|
2463
|
+
}, stats.totalTraced, "/", stats.totalTests, " tests traced")), !error && stats.testFiles === 0 && /* @__PURE__ */ React13.createElement("div", {
|
|
2310
2464
|
style: {
|
|
2311
2465
|
fontSize: "12px",
|
|
2312
2466
|
color: theme.colors.textSecondary || "#666"
|
|
2313
2467
|
}
|
|
2314
|
-
}, "No test files with coverage data found")), /* @__PURE__ */
|
|
2468
|
+
}, "No test files with coverage data found")), /* @__PURE__ */ React13.createElement(DirectoryFilterInput, {
|
|
2315
2469
|
fileTree,
|
|
2316
2470
|
theme,
|
|
2317
2471
|
filters,
|
|
2318
2472
|
onFiltersChange: setFilters
|
|
2319
|
-
}), /* @__PURE__ */
|
|
2473
|
+
}), /* @__PURE__ */ React13.createElement("div", {
|
|
2320
2474
|
style: { flex: 1, marginTop: "1rem", overflow: "hidden" }
|
|
2321
|
-
}, /* @__PURE__ */
|
|
2475
|
+
}, /* @__PURE__ */ React13.createElement(TelemetryCoverageFileTree, {
|
|
2322
2476
|
fileTree,
|
|
2323
2477
|
theme,
|
|
2324
2478
|
coverageData,
|
|
@@ -2355,5 +2509,6 @@ export {
|
|
|
2355
2509
|
GitOrderedFileList,
|
|
2356
2510
|
FileTreeContainer,
|
|
2357
2511
|
DynamicFileTree,
|
|
2358
|
-
DirectoryFilterInput
|
|
2512
|
+
DirectoryFilterInput,
|
|
2513
|
+
CanvasNarrativeTreeCore
|
|
2359
2514
|
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
+
import { CanvasNarrativeTreeCore } from './CanvasNarrativeTreeCore';
|
|
3
|
+
declare const meta: Meta<typeof CanvasNarrativeTreeCore>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof CanvasNarrativeTreeCore>;
|
|
6
|
+
export declare const Default: Story;
|
|
7
|
+
export declare const SinglePackage: Story;
|
|
8
|
+
export declare const RootCanvasOnly: Story;
|
|
9
|
+
export declare const NoNarratives: Story;
|
|
10
|
+
export declare const CollapsedByDefault: Story;
|
|
11
|
+
export declare const WithSelection: Story;
|
|
12
|
+
export declare const RegalTheme: Story;
|
|
13
|
+
export declare const TerminalTheme: Story;
|
|
14
|
+
export declare const MatrixTheme: Story;
|
|
15
|
+
export declare const MatrixMinimalTheme: Story;
|
|
16
|
+
export declare const SlateTheme: Story;
|
|
17
|
+
export declare const InteractiveDemo: Story;
|
|
18
|
+
export declare const ThemeComparison: Story;
|
|
19
|
+
export declare const CustomPadding: Story;
|
|
20
|
+
//# sourceMappingURL=CanvasNarrativeTree.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CanvasNarrativeTree.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/CanvasNarrativeTree/CanvasNarrativeTree.stories.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAgMpE,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,uBAAuB,CAO9C,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAEtD,eAAO,MAAM,OAAO,EAAE,KAQrB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAQ3B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAQ5B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAQ1B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAQhC,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAS3B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAQxB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAQ3B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAQzB,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAQhC,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAQxB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KA6D7B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KA2D7B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAW3B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CanvasNarrativeTreeCore.d.ts","sourceRoot":"","sources":["../../../../src/components/CanvasNarrativeTree/CanvasNarrativeTreeCore.tsx"],"names":[],"mappings":"AACA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAOvC,OAAO,KAAK,EAEV,4BAA4B,EAG7B,MAAM,SAAS,CAAC;AA2HjB,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CA+F1E,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { Theme } from '@principal-ade/industry-theme';
|
|
2
|
+
import type { DiscoveredCanvas, NarrativeTemplate } from '@principal-ai/principal-view-core/browser';
|
|
3
|
+
import type { TreeNodeData } from '../TreeNode';
|
|
4
|
+
export interface NarrativeFile {
|
|
5
|
+
id: string;
|
|
6
|
+
name: string;
|
|
7
|
+
path: string;
|
|
8
|
+
packageName?: string;
|
|
9
|
+
canvasPath?: string;
|
|
10
|
+
}
|
|
11
|
+
export type { DiscoveredCanvas, NarrativeTemplate };
|
|
12
|
+
export type CanvasNarrativeNodeType = 'package' | 'canvas' | 'narrative';
|
|
13
|
+
export interface CanvasNarrativeNodeData extends TreeNodeData {
|
|
14
|
+
type: CanvasNarrativeNodeType;
|
|
15
|
+
children?: CanvasNarrativeNodeData[];
|
|
16
|
+
canvas?: DiscoveredCanvas;
|
|
17
|
+
narrative?: NarrativeFile;
|
|
18
|
+
narrativeTemplate?: NarrativeTemplate;
|
|
19
|
+
packageName?: string;
|
|
20
|
+
scope?: 'package' | 'root';
|
|
21
|
+
}
|
|
22
|
+
export interface CanvasNarrativeTreeCoreProps {
|
|
23
|
+
canvases: DiscoveredCanvas[];
|
|
24
|
+
narratives: Array<{
|
|
25
|
+
file: NarrativeFile;
|
|
26
|
+
template: NarrativeTemplate;
|
|
27
|
+
}>;
|
|
28
|
+
theme: Theme;
|
|
29
|
+
onClick: (node: CanvasNarrativeNodeData) => void;
|
|
30
|
+
selectedNodeId?: string;
|
|
31
|
+
defaultOpen?: boolean;
|
|
32
|
+
initialOpenState?: Record<string, boolean>;
|
|
33
|
+
horizontalNodePadding?: string;
|
|
34
|
+
verticalNodePadding?: string;
|
|
35
|
+
verticalPadding?: string;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/CanvasNarrativeTree/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AACrG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAGD,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,CAAC;AAEpD,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEzE,MAAM,WAAW,uBAAwB,SAAQ,YAAY;IAC3D,IAAI,EAAE,uBAAuB,CAAC;IAC9B,QAAQ,CAAC,EAAE,uBAAuB,EAAE,CAAC;IAGrC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,UAAU,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,aAAa,CAAC;QAAC,QAAQ,EAAE,iBAAiB,CAAA;KAAE,CAAC,CAAC;IACxE,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,CAAC,IAAI,EAAE,uBAAuB,KAAK,IAAI,CAAC;IACjD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B"}
|
|
@@ -20,4 +20,5 @@ export declare const MatrixTheme: Story;
|
|
|
20
20
|
export declare const MatrixMinimalTheme: Story;
|
|
21
21
|
export declare const SlateTheme: Story;
|
|
22
22
|
export declare const RapidStatusChanges: Story;
|
|
23
|
+
export declare const MultipleInstances: Story;
|
|
23
24
|
//# sourceMappingURL=GitStatusFileTree.stories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GitStatusFileTree.stories.d.ts","sourceRoot":"","sources":["../../../src/components/GitStatusFileTree.stories.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,iBAAiB,EAA4B,MAAM,qBAAqB,CAAC;AA8OlF,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,iBAAiB,CASxC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEhD,eAAO,MAAM,OAAO,EAAE,KAOrB,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAO9B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAOvB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KA2BzB,CAAC;AAoDF,eAAO,MAAM,cAAc,EAAE,KAe5B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAe7B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAe5B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAe7B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAe1B,CAAC;AAKF,eAAO,MAAM,eAAe,EAAE,KAyB7B,CAAC;AAIF,eAAO,MAAM,eAAe,EAAE,KAwD7B,CAAC;AAIF,eAAO,MAAM,UAAU,EAAE,KAexB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAe3B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAezB,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAehC,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAexB,CAAC;AAqGF,eAAO,MAAM,kBAAkB,EAAE,KAuBhC,CAAC"}
|
|
1
|
+
{"version":3,"file":"GitStatusFileTree.stories.d.ts","sourceRoot":"","sources":["../../../src/components/GitStatusFileTree.stories.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,iBAAiB,EAA4B,MAAM,qBAAqB,CAAC;AA8OlF,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,iBAAiB,CASxC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEhD,eAAO,MAAM,OAAO,EAAE,KAOrB,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAO9B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAOvB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KA2BzB,CAAC;AAoDF,eAAO,MAAM,cAAc,EAAE,KAe5B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAe7B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAe5B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAe7B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAe1B,CAAC;AAKF,eAAO,MAAM,eAAe,EAAE,KAyB7B,CAAC;AAIF,eAAO,MAAM,eAAe,EAAE,KAwD7B,CAAC;AAIF,eAAO,MAAM,UAAU,EAAE,KAexB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAe3B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAezB,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAehC,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAexB,CAAC;AAqGF,eAAO,MAAM,kBAAkB,EAAE,KAuBhC,CAAC;AAwHF,eAAO,MAAM,iBAAiB,EAAE,KAoC/B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@principal-ade/dynamic-file-tree",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.38",
|
|
4
4
|
"description": "React component for selective directory filtering and file tree visualization",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.mjs",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
},
|
|
18
18
|
"scripts": {
|
|
19
19
|
"build": "bun run clean && bun run build:esm && bun run build:types",
|
|
20
|
-
"build:esm": "bun build ./index.ts --outfile ./dist/index.mjs --format esm --target browser --external react --external react-dom --external lucide-react --external react-arborist --external @principal-ade/industry-theme --external @principal-ai/repository-abstraction",
|
|
20
|
+
"build:esm": "bun build ./index.ts --outfile ./dist/index.mjs --format esm --target browser --external react --external react-dom --external lucide-react --external react-arborist --external @principal-ade/industry-theme --external @principal-ai/repository-abstraction --external @principal-ai/principal-view-core",
|
|
21
21
|
"build:types": "tsc --emitDeclarationOnly --declaration --declarationMap",
|
|
22
22
|
"dev": "bun run build --watch",
|
|
23
23
|
"test": "bun test",
|
|
@@ -48,6 +48,7 @@
|
|
|
48
48
|
},
|
|
49
49
|
"peerDependencies": {
|
|
50
50
|
"@principal-ade/industry-theme": ">=0.1.0",
|
|
51
|
+
"@principal-ai/principal-view-core": "^0.11.7",
|
|
51
52
|
"@principal-ai/repository-abstraction": "^0.2.3",
|
|
52
53
|
"lucide-react": ">=0.263.0",
|
|
53
54
|
"react": ">=19.0.0",
|