@principal-ade/dynamic-file-tree 0.1.47 → 0.1.48
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 +208 -49
- package/dist/src/components/CanvasNarrativeTree/types.d.ts +4 -4
- package/dist/src/components/CanvasNarrativeTree/types.d.ts.map +1 -1
- package/dist/src/components/StoryboardWorkflowsTree/StoryboardWorkflowsTree.stories.d.ts +20 -0
- package/dist/src/components/StoryboardWorkflowsTree/StoryboardWorkflowsTree.stories.d.ts.map +1 -0
- package/dist/src/components/StoryboardWorkflowsTree/StoryboardWorkflowsTreeCore.d.ts +4 -0
- package/dist/src/components/StoryboardWorkflowsTree/StoryboardWorkflowsTreeCore.d.ts.map +1 -0
- package/dist/src/components/StoryboardWorkflowsTree/types.d.ts +28 -0
- package/dist/src/components/StoryboardWorkflowsTree/types.d.ts.map +1 -0
- package/package.json +5 -2
package/dist/index.d.ts
CHANGED
|
@@ -20,6 +20,8 @@ export { MultiFileTree, MultiFileTreeCore } from './src/components/MultiFileTree
|
|
|
20
20
|
export type { MultiFileTreeProps, MultiFileTreeCoreProps } from './src/components/MultiFileTree';
|
|
21
21
|
export { CanvasNarrativeTreeCore } from './src/components/CanvasNarrativeTree/CanvasNarrativeTreeCore';
|
|
22
22
|
export type { CanvasNarrativeTreeCoreProps, CanvasNarrativeNodeData, CanvasNarrativeNodeType, DiscoveredCanvas, NarrativeFile, } from './src/components/CanvasNarrativeTree/types';
|
|
23
|
+
export { StoryboardWorkflowsTreeCore } from './src/components/StoryboardWorkflowsTree/StoryboardWorkflowsTreeCore';
|
|
24
|
+
export type { StoryboardWorkflowsTreeProps, StoryboardWorkflowNodeData, StoryboardWorkflowNodeType, DiscoveredStoryboard, DiscoveredWorkflow, } from './src/components/StoryboardWorkflowsTree/types';
|
|
23
25
|
export { TelemetryCoverageFileTree, calculateTelemetryCoverageStats, } from './src/components/TelemetryCoverageFileTree';
|
|
24
26
|
export type { TelemetryCoverageFileTreeProps, FileTelemetryCoverage, TelemetryCoverageStatus, } from './src/components/TelemetryCoverageFileTree';
|
|
25
27
|
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,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"}
|
|
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,EAAE,2BAA2B,EAAE,MAAM,sEAAsE,CAAC;AACnH,YAAY,EACV,4BAA4B,EAC5B,0BAA0B,EAC1B,0BAA0B,EAC1B,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,gDAAgD,CAAC;AAGxD,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
|
@@ -2044,6 +2044,164 @@ var CanvasNarrativeTreeCore = ({
|
|
|
2044
2044
|
...dndProps
|
|
2045
2045
|
}, NodeRenderer));
|
|
2046
2046
|
};
|
|
2047
|
+
// src/components/StoryboardWorkflowsTree/StoryboardWorkflowsTreeCore.tsx
|
|
2048
|
+
import { Package as Package2, FolderKanban, FileText as FileText2, Workflow as Workflow2 } from "lucide-react";
|
|
2049
|
+
import React12, { useMemo as useMemo10 } from "react";
|
|
2050
|
+
import { Tree as Tree4 } from "react-arborist";
|
|
2051
|
+
var buildTreeData2 = (storyboards) => {
|
|
2052
|
+
const packagesMap = new Map;
|
|
2053
|
+
const rootStoryboards = [];
|
|
2054
|
+
for (const storyboard of storyboards) {
|
|
2055
|
+
if (storyboard.scope === "package" && storyboard.packageName) {
|
|
2056
|
+
const existing = packagesMap.get(storyboard.packageName) || [];
|
|
2057
|
+
existing.push(storyboard);
|
|
2058
|
+
packagesMap.set(storyboard.packageName, existing);
|
|
2059
|
+
} else {
|
|
2060
|
+
rootStoryboards.push(storyboard);
|
|
2061
|
+
}
|
|
2062
|
+
}
|
|
2063
|
+
const buildStoryboardNode = (storyboard) => {
|
|
2064
|
+
const children = [];
|
|
2065
|
+
children.push({
|
|
2066
|
+
id: `canvas:${storyboard.id}`,
|
|
2067
|
+
name: "Canvas",
|
|
2068
|
+
type: "canvas",
|
|
2069
|
+
canvas: storyboard.canvas,
|
|
2070
|
+
storyboard
|
|
2071
|
+
});
|
|
2072
|
+
const workflowNodes = storyboard.workflows.map((workflow) => ({
|
|
2073
|
+
id: `workflow:${workflow.id}`,
|
|
2074
|
+
name: workflow.name,
|
|
2075
|
+
type: "workflow",
|
|
2076
|
+
workflow,
|
|
2077
|
+
storyboard
|
|
2078
|
+
})).sort((a, b) => a.name.localeCompare(b.name));
|
|
2079
|
+
children.push(...workflowNodes);
|
|
2080
|
+
return {
|
|
2081
|
+
id: `storyboard:${storyboard.id}`,
|
|
2082
|
+
name: storyboard.name,
|
|
2083
|
+
type: "storyboard",
|
|
2084
|
+
storyboard,
|
|
2085
|
+
children
|
|
2086
|
+
};
|
|
2087
|
+
};
|
|
2088
|
+
const hasMultiplePackages = packagesMap.size > 1;
|
|
2089
|
+
const hasRootAndPackages = packagesMap.size > 0 && rootStoryboards.length > 0;
|
|
2090
|
+
const shouldShowPackageLevel = hasMultiplePackages || hasRootAndPackages;
|
|
2091
|
+
if (shouldShowPackageLevel) {
|
|
2092
|
+
const result = [];
|
|
2093
|
+
for (const [packageName, packageStoryboards] of packagesMap) {
|
|
2094
|
+
const storyboardNodes = packageStoryboards.map(buildStoryboardNode).sort((a, b) => a.name.localeCompare(b.name));
|
|
2095
|
+
result.push({
|
|
2096
|
+
id: `package:${packageName}`,
|
|
2097
|
+
name: packageName,
|
|
2098
|
+
type: "package",
|
|
2099
|
+
packageName,
|
|
2100
|
+
scope: "package",
|
|
2101
|
+
children: storyboardNodes
|
|
2102
|
+
});
|
|
2103
|
+
}
|
|
2104
|
+
if (rootStoryboards.length > 0) {
|
|
2105
|
+
const rootStoryboardNodes = rootStoryboards.map(buildStoryboardNode).sort((a, b) => a.name.localeCompare(b.name));
|
|
2106
|
+
result.push({
|
|
2107
|
+
id: "package:root",
|
|
2108
|
+
name: "Root",
|
|
2109
|
+
type: "package",
|
|
2110
|
+
packageName: "root",
|
|
2111
|
+
scope: "root",
|
|
2112
|
+
children: rootStoryboardNodes
|
|
2113
|
+
});
|
|
2114
|
+
}
|
|
2115
|
+
return result.sort((a, b) => {
|
|
2116
|
+
if (a.packageName === "root")
|
|
2117
|
+
return 1;
|
|
2118
|
+
if (b.packageName === "root")
|
|
2119
|
+
return -1;
|
|
2120
|
+
return a.name.localeCompare(b.name);
|
|
2121
|
+
});
|
|
2122
|
+
} else {
|
|
2123
|
+
const allStoryboards = [...rootStoryboards];
|
|
2124
|
+
for (const packageStoryboards of packagesMap.values()) {
|
|
2125
|
+
allStoryboards.push(...packageStoryboards);
|
|
2126
|
+
}
|
|
2127
|
+
return allStoryboards.map(buildStoryboardNode).sort((a, b) => a.name.localeCompare(b.name));
|
|
2128
|
+
}
|
|
2129
|
+
};
|
|
2130
|
+
var StoryboardWorkflowsTreeCore = ({
|
|
2131
|
+
storyboards,
|
|
2132
|
+
theme,
|
|
2133
|
+
onClick,
|
|
2134
|
+
selectedNodeId,
|
|
2135
|
+
defaultOpen = false,
|
|
2136
|
+
initialOpenState,
|
|
2137
|
+
horizontalNodePadding = "16px",
|
|
2138
|
+
verticalNodePadding = "6px",
|
|
2139
|
+
verticalPadding = "20px",
|
|
2140
|
+
enableDragAndDrop = false
|
|
2141
|
+
}) => {
|
|
2142
|
+
const dndProps = getDndProps(enableDragAndDrop);
|
|
2143
|
+
const rowHeight = useMemo10(() => {
|
|
2144
|
+
const paddingValue = parseFloat(verticalNodePadding);
|
|
2145
|
+
const contentLineHeight = 20;
|
|
2146
|
+
const borderHeight = 2;
|
|
2147
|
+
return contentLineHeight + paddingValue * 2 + borderHeight;
|
|
2148
|
+
}, [verticalNodePadding]);
|
|
2149
|
+
const treeData = useMemo10(() => buildTreeData2(storyboards), [storyboards]);
|
|
2150
|
+
const NodeRenderer = (props) => {
|
|
2151
|
+
const { node } = props;
|
|
2152
|
+
const data = node.data;
|
|
2153
|
+
const icon = data.type === "package" ? /* @__PURE__ */ React12.createElement(Package2, {
|
|
2154
|
+
size: 16
|
|
2155
|
+
}) : data.type === "storyboard" ? /* @__PURE__ */ React12.createElement(FolderKanban, {
|
|
2156
|
+
size: 16
|
|
2157
|
+
}) : data.type === "canvas" ? /* @__PURE__ */ React12.createElement(FileText2, {
|
|
2158
|
+
size: 16
|
|
2159
|
+
}) : /* @__PURE__ */ React12.createElement(Workflow2, {
|
|
2160
|
+
size: 16
|
|
2161
|
+
});
|
|
2162
|
+
const nameColor = data.type === "package" ? theme.colors.primary : data.type === "storyboard" ? theme.colors.success : data.type === "canvas" ? theme.colors.warning || "#f59e0b" : theme.colors.textSecondary;
|
|
2163
|
+
const nodeHorizontalPadding = data.type === "canvas" || data.type === "workflow" ? `calc(${horizontalNodePadding} + 12px)` : horizontalNodePadding;
|
|
2164
|
+
return /* @__PURE__ */ React12.createElement(TreeNode, {
|
|
2165
|
+
...props,
|
|
2166
|
+
theme,
|
|
2167
|
+
nameColor,
|
|
2168
|
+
leftIcon: icon,
|
|
2169
|
+
horizontalNodePadding: nodeHorizontalPadding,
|
|
2170
|
+
verticalNodePadding
|
|
2171
|
+
});
|
|
2172
|
+
};
|
|
2173
|
+
const handleSelect = (selectedNodes) => {
|
|
2174
|
+
if (selectedNodes.length === 0)
|
|
2175
|
+
return;
|
|
2176
|
+
const node = selectedNodes[0];
|
|
2177
|
+
const nodeData = node.data;
|
|
2178
|
+
if (nodeData.type === "canvas" || nodeData.type === "workflow") {
|
|
2179
|
+
onClick(nodeData);
|
|
2180
|
+
}
|
|
2181
|
+
};
|
|
2182
|
+
const initialHeight = 600;
|
|
2183
|
+
const [containerRef, containerHeight] = useContainerHeight(initialHeight);
|
|
2184
|
+
return /* @__PURE__ */ React12.createElement("div", {
|
|
2185
|
+
ref: containerRef,
|
|
2186
|
+
style: {
|
|
2187
|
+
backgroundColor: theme.colors.background,
|
|
2188
|
+
color: theme.colors.text,
|
|
2189
|
+
fontFamily: theme.fonts.body,
|
|
2190
|
+
height: "100%",
|
|
2191
|
+
...verticalPadding ? { paddingTop: verticalPadding, paddingBottom: verticalPadding } : {}
|
|
2192
|
+
}
|
|
2193
|
+
}, /* @__PURE__ */ React12.createElement(Tree4, {
|
|
2194
|
+
initialData: treeData,
|
|
2195
|
+
onSelect: handleSelect,
|
|
2196
|
+
openByDefault: defaultOpen,
|
|
2197
|
+
...initialOpenState !== undefined && { initialOpenState },
|
|
2198
|
+
...selectedNodeId !== undefined && { selection: selectedNodeId },
|
|
2199
|
+
width: "100%",
|
|
2200
|
+
height: containerHeight,
|
|
2201
|
+
rowHeight,
|
|
2202
|
+
...dndProps
|
|
2203
|
+
}, NodeRenderer));
|
|
2204
|
+
};
|
|
2047
2205
|
// src/components/TelemetryCoverageFileTree.tsx
|
|
2048
2206
|
import {
|
|
2049
2207
|
Activity,
|
|
@@ -2051,9 +2209,9 @@ import {
|
|
|
2051
2209
|
Circle,
|
|
2052
2210
|
TestTube
|
|
2053
2211
|
} from "lucide-react";
|
|
2054
|
-
import
|
|
2055
|
-
import { Tree as
|
|
2056
|
-
var TelemetryCoverageContext =
|
|
2212
|
+
import React13, { useMemo as useMemo11 } from "react";
|
|
2213
|
+
import { Tree as Tree5 } from "react-arborist";
|
|
2214
|
+
var TelemetryCoverageContext = React13.createContext(null);
|
|
2057
2215
|
var DEFAULT_TEST_PATTERNS = [
|
|
2058
2216
|
/\.test\.[jt]sx?$/,
|
|
2059
2217
|
/\.spec\.[jt]sx?$/,
|
|
@@ -2070,7 +2228,7 @@ var getCoverageStatusDisplay = (coverage, _theme) => {
|
|
|
2070
2228
|
switch (status) {
|
|
2071
2229
|
case "covered":
|
|
2072
2230
|
return {
|
|
2073
|
-
icon: /* @__PURE__ */
|
|
2231
|
+
icon: /* @__PURE__ */ React13.createElement(Activity, {
|
|
2074
2232
|
size: 14
|
|
2075
2233
|
}),
|
|
2076
2234
|
color: "#22c55e",
|
|
@@ -2079,7 +2237,7 @@ var getCoverageStatusDisplay = (coverage, _theme) => {
|
|
|
2079
2237
|
};
|
|
2080
2238
|
case "partial":
|
|
2081
2239
|
return {
|
|
2082
|
-
icon: /* @__PURE__ */
|
|
2240
|
+
icon: /* @__PURE__ */ React13.createElement(CircleDot, {
|
|
2083
2241
|
size: 14
|
|
2084
2242
|
}),
|
|
2085
2243
|
color: "#eab308",
|
|
@@ -2088,7 +2246,7 @@ var getCoverageStatusDisplay = (coverage, _theme) => {
|
|
|
2088
2246
|
};
|
|
2089
2247
|
case "none":
|
|
2090
2248
|
return {
|
|
2091
|
-
icon: /* @__PURE__ */
|
|
2249
|
+
icon: /* @__PURE__ */ React13.createElement(Circle, {
|
|
2092
2250
|
size: 14
|
|
2093
2251
|
}),
|
|
2094
2252
|
color: "#6b7280",
|
|
@@ -2190,7 +2348,7 @@ var TelemetryCoverageFileTree = ({
|
|
|
2190
2348
|
enableDragAndDrop = false
|
|
2191
2349
|
}) => {
|
|
2192
2350
|
const dndProps = getDndProps(enableDragAndDrop);
|
|
2193
|
-
const coverageMap =
|
|
2351
|
+
const coverageMap = useMemo11(() => {
|
|
2194
2352
|
const map = new Map;
|
|
2195
2353
|
coverageData.forEach((item) => {
|
|
2196
2354
|
map.set(item.filePath, item);
|
|
@@ -2199,7 +2357,7 @@ var TelemetryCoverageFileTree = ({
|
|
|
2199
2357
|
}, [coverageData]);
|
|
2200
2358
|
const NodeRenderer = (props) => {
|
|
2201
2359
|
const { node } = props;
|
|
2202
|
-
const ctx =
|
|
2360
|
+
const ctx = React13.useContext(TelemetryCoverageContext);
|
|
2203
2361
|
const coverage = ctx?.coverageMap.get(node.data.id);
|
|
2204
2362
|
const hasTracedChildren = ctx?.hasTracedChildrenMap.get(node.data.id);
|
|
2205
2363
|
const coverageDisplay = coverage ? getCoverageStatusDisplay(coverage, theme) : null;
|
|
@@ -2211,11 +2369,11 @@ var TelemetryCoverageFileTree = ({
|
|
|
2211
2369
|
} else if (node.data.isTestFile) {
|
|
2212
2370
|
nameColor = "#6b728080";
|
|
2213
2371
|
}
|
|
2214
|
-
const leftIcon = node.data.isTestFile && !coverage ? /* @__PURE__ */
|
|
2372
|
+
const leftIcon = node.data.isTestFile && !coverage ? /* @__PURE__ */ React13.createElement(TestTube, {
|
|
2215
2373
|
size: 14,
|
|
2216
2374
|
style: { marginRight: 4, color: "#6b7280" }
|
|
2217
2375
|
}) : null;
|
|
2218
|
-
const rightContent = coverageDisplay ? /* @__PURE__ */
|
|
2376
|
+
const rightContent = coverageDisplay ? /* @__PURE__ */ React13.createElement("div", {
|
|
2219
2377
|
style: {
|
|
2220
2378
|
display: "flex",
|
|
2221
2379
|
alignItems: "center",
|
|
@@ -2223,14 +2381,14 @@ var TelemetryCoverageFileTree = ({
|
|
|
2223
2381
|
marginRight: "8px"
|
|
2224
2382
|
},
|
|
2225
2383
|
title: coverageDisplay.label
|
|
2226
|
-
}, coverageDisplay.icon, /* @__PURE__ */
|
|
2384
|
+
}, coverageDisplay.icon, /* @__PURE__ */ React13.createElement("span", {
|
|
2227
2385
|
style: {
|
|
2228
2386
|
marginLeft: "4px",
|
|
2229
2387
|
fontSize: theme.fontSizes[0],
|
|
2230
2388
|
fontWeight: "bold",
|
|
2231
2389
|
fontFamily: "monospace"
|
|
2232
2390
|
}
|
|
2233
|
-
}, coverageDisplay.badge)) : node.data.isTestFile ? /* @__PURE__ */
|
|
2391
|
+
}, coverageDisplay.badge)) : node.data.isTestFile ? /* @__PURE__ */ React13.createElement("div", {
|
|
2234
2392
|
style: {
|
|
2235
2393
|
display: "flex",
|
|
2236
2394
|
alignItems: "center",
|
|
@@ -2239,10 +2397,10 @@ var TelemetryCoverageFileTree = ({
|
|
|
2239
2397
|
opacity: 0.5
|
|
2240
2398
|
},
|
|
2241
2399
|
title: "No telemetry instrumentation"
|
|
2242
|
-
}, /* @__PURE__ */
|
|
2400
|
+
}, /* @__PURE__ */ React13.createElement(Circle, {
|
|
2243
2401
|
size: 14
|
|
2244
2402
|
})) : null;
|
|
2245
|
-
return /* @__PURE__ */
|
|
2403
|
+
return /* @__PURE__ */ React13.createElement(TreeNode, {
|
|
2246
2404
|
...props,
|
|
2247
2405
|
theme,
|
|
2248
2406
|
rightContent,
|
|
@@ -2257,16 +2415,16 @@ var TelemetryCoverageFileTree = ({
|
|
|
2257
2415
|
}
|
|
2258
2416
|
});
|
|
2259
2417
|
};
|
|
2260
|
-
const treeStructure =
|
|
2418
|
+
const treeStructure = useMemo11(() => {
|
|
2261
2419
|
return transformTreeStructure2(fileTree, showOnlyTestFiles, testFilePatterns);
|
|
2262
2420
|
}, [fileTree, showOnlyTestFiles, testFilePatterns]);
|
|
2263
|
-
const treeData =
|
|
2421
|
+
const treeData = useMemo11(() => {
|
|
2264
2422
|
if (showUncoveredFiles) {
|
|
2265
2423
|
return treeStructure;
|
|
2266
2424
|
}
|
|
2267
2425
|
return filterCoveredNodes(treeStructure, coverageMap);
|
|
2268
2426
|
}, [treeStructure, showUncoveredFiles, coverageMap]);
|
|
2269
|
-
const hasTracedChildrenMap =
|
|
2427
|
+
const hasTracedChildrenMap = useMemo11(() => {
|
|
2270
2428
|
const map = new Map;
|
|
2271
2429
|
const markTracedParents = (nodes) => {
|
|
2272
2430
|
let hasTraced = false;
|
|
@@ -2298,7 +2456,7 @@ var TelemetryCoverageFileTree = ({
|
|
|
2298
2456
|
onDirectorySelect(selectedDirs);
|
|
2299
2457
|
}
|
|
2300
2458
|
};
|
|
2301
|
-
const calculatedHeight =
|
|
2459
|
+
const calculatedHeight = useMemo11(() => {
|
|
2302
2460
|
if (autoHeight) {
|
|
2303
2461
|
const visibleNodeCount = countVisibleNodes3(treeData, openByDefault);
|
|
2304
2462
|
return visibleNodeCount * 28;
|
|
@@ -2306,7 +2464,7 @@ var TelemetryCoverageFileTree = ({
|
|
|
2306
2464
|
return initialHeight;
|
|
2307
2465
|
}, [autoHeight, treeData, openByDefault, initialHeight]);
|
|
2308
2466
|
const [containerRef, containerHeight] = useContainerHeight(calculatedHeight);
|
|
2309
|
-
return /* @__PURE__ */
|
|
2467
|
+
return /* @__PURE__ */ React13.createElement("div", {
|
|
2310
2468
|
ref: containerRef,
|
|
2311
2469
|
style: {
|
|
2312
2470
|
backgroundColor: transparentBackground ? "transparent" : theme.colors.background,
|
|
@@ -2315,9 +2473,9 @@ var TelemetryCoverageFileTree = ({
|
|
|
2315
2473
|
...autoHeight ? {} : { height: "100%" },
|
|
2316
2474
|
...verticalPadding ? { paddingTop: verticalPadding, paddingBottom: verticalPadding } : {}
|
|
2317
2475
|
}
|
|
2318
|
-
}, /* @__PURE__ */
|
|
2476
|
+
}, /* @__PURE__ */ React13.createElement(TelemetryCoverageContext.Provider, {
|
|
2319
2477
|
value: { coverageMap, hasTracedChildrenMap }
|
|
2320
|
-
}, /* @__PURE__ */
|
|
2478
|
+
}, /* @__PURE__ */ React13.createElement(Tree5, {
|
|
2321
2479
|
data: treeData,
|
|
2322
2480
|
onSelect: handleSelect,
|
|
2323
2481
|
...selectedFile !== undefined && { selection: selectedFile },
|
|
@@ -2346,7 +2504,7 @@ var calculateTelemetryCoverageStats = (coverageData) => {
|
|
|
2346
2504
|
};
|
|
2347
2505
|
// src/components/TelemetryCoverageFileTreeContainer.tsx
|
|
2348
2506
|
import { RefreshCw as RefreshCw2, Eye as Eye2, EyeOff as EyeOff2, AlertCircle as AlertCircle4, Activity as Activity2 } from "lucide-react";
|
|
2349
|
-
import
|
|
2507
|
+
import React14, { useState as useState7, useMemo as useMemo12 } from "react";
|
|
2350
2508
|
var TelemetryCoverageFileTreeContainer = ({
|
|
2351
2509
|
fileTree,
|
|
2352
2510
|
theme,
|
|
@@ -2368,10 +2526,10 @@ var TelemetryCoverageFileTreeContainer = ({
|
|
|
2368
2526
|
}) => {
|
|
2369
2527
|
const [filters, setFilters] = useState7([]);
|
|
2370
2528
|
const [showUncoveredFiles, setShowUncoveredFiles] = useState7(true);
|
|
2371
|
-
const selectedDirectories =
|
|
2529
|
+
const selectedDirectories = useMemo12(() => {
|
|
2372
2530
|
return filters.filter((f) => f.mode === "include").map((f) => f.path);
|
|
2373
2531
|
}, [filters]);
|
|
2374
|
-
const stats =
|
|
2532
|
+
const stats = useMemo12(() => calculateTelemetryCoverageStats(coverageData), [coverageData]);
|
|
2375
2533
|
const handleRefresh = () => {
|
|
2376
2534
|
onRefresh?.();
|
|
2377
2535
|
};
|
|
@@ -2379,34 +2537,34 @@ var TelemetryCoverageFileTreeContainer = ({
|
|
|
2379
2537
|
setShowUncoveredFiles(!showUncoveredFiles);
|
|
2380
2538
|
};
|
|
2381
2539
|
const percentageColor = stats.percentage >= 80 ? "#22c55e" : stats.percentage >= 50 ? "#eab308" : stats.percentage > 0 ? "#f97316" : "#6b7280";
|
|
2382
|
-
return /* @__PURE__ */
|
|
2540
|
+
return /* @__PURE__ */ React14.createElement("div", {
|
|
2383
2541
|
style: { display: "flex", flexDirection: "column", height: "100%" }
|
|
2384
|
-
}, showControls && /* @__PURE__ */
|
|
2542
|
+
}, showControls && /* @__PURE__ */ React14.createElement("div", {
|
|
2385
2543
|
style: {
|
|
2386
2544
|
padding: "12px",
|
|
2387
2545
|
borderBottom: `1px solid ${theme.colors.border || "#e0e0e0"}`,
|
|
2388
2546
|
backgroundColor: theme.colors.backgroundSecondary || theme.colors.background
|
|
2389
2547
|
}
|
|
2390
|
-
}, /* @__PURE__ */
|
|
2548
|
+
}, /* @__PURE__ */ React14.createElement("div", {
|
|
2391
2549
|
style: {
|
|
2392
2550
|
display: "flex",
|
|
2393
2551
|
alignItems: "center",
|
|
2394
2552
|
justifyContent: "space-between",
|
|
2395
2553
|
marginBottom: "8px"
|
|
2396
2554
|
}
|
|
2397
|
-
}, /* @__PURE__ */
|
|
2555
|
+
}, /* @__PURE__ */ React14.createElement("div", {
|
|
2398
2556
|
style: { display: "flex", alignItems: "center", gap: "8px" }
|
|
2399
|
-
}, /* @__PURE__ */
|
|
2557
|
+
}, /* @__PURE__ */ React14.createElement(Activity2, {
|
|
2400
2558
|
size: 16,
|
|
2401
2559
|
color: theme.colors.primary
|
|
2402
|
-
}), /* @__PURE__ */
|
|
2560
|
+
}), /* @__PURE__ */ React14.createElement("h3", {
|
|
2403
2561
|
style: {
|
|
2404
2562
|
margin: 0,
|
|
2405
2563
|
fontSize: theme.fontSizes[1],
|
|
2406
2564
|
fontWeight: "bold",
|
|
2407
2565
|
color: theme.colors.text
|
|
2408
2566
|
}
|
|
2409
|
-
}, title), stats.testFiles > 0 && /* @__PURE__ */
|
|
2567
|
+
}, title), stats.testFiles > 0 && /* @__PURE__ */ React14.createElement("span", {
|
|
2410
2568
|
style: {
|
|
2411
2569
|
backgroundColor: percentageColor,
|
|
2412
2570
|
color: "#ffffff",
|
|
@@ -2416,14 +2574,14 @@ var TelemetryCoverageFileTreeContainer = ({
|
|
|
2416
2574
|
fontWeight: "bold",
|
|
2417
2575
|
fontFamily: "monospace"
|
|
2418
2576
|
}
|
|
2419
|
-
}, stats.percentage, "%"), isLoading && /* @__PURE__ */
|
|
2577
|
+
}, stats.percentage, "%"), isLoading && /* @__PURE__ */ React14.createElement(RefreshCw2, {
|
|
2420
2578
|
size: 16,
|
|
2421
2579
|
color: theme.colors.text,
|
|
2422
2580
|
className: "telemetry-coverage-spinner",
|
|
2423
2581
|
style: { animation: "spin 1s linear infinite" }
|
|
2424
|
-
})), /* @__PURE__ */
|
|
2582
|
+
})), /* @__PURE__ */ React14.createElement("div", {
|
|
2425
2583
|
style: { display: "flex", gap: "8px" }
|
|
2426
|
-
}, /* @__PURE__ */
|
|
2584
|
+
}, /* @__PURE__ */ React14.createElement("button", {
|
|
2427
2585
|
onClick: toggleShowUncoveredFiles,
|
|
2428
2586
|
style: {
|
|
2429
2587
|
background: "none",
|
|
@@ -2438,11 +2596,11 @@ var TelemetryCoverageFileTreeContainer = ({
|
|
|
2438
2596
|
color: theme.colors.text
|
|
2439
2597
|
},
|
|
2440
2598
|
title: showUncoveredFiles ? "Show only covered files" : "Show all test files"
|
|
2441
|
-
}, showUncoveredFiles ? /* @__PURE__ */
|
|
2599
|
+
}, showUncoveredFiles ? /* @__PURE__ */ React14.createElement(EyeOff2, {
|
|
2442
2600
|
size: 14
|
|
2443
|
-
}) : /* @__PURE__ */
|
|
2601
|
+
}) : /* @__PURE__ */ React14.createElement(Eye2, {
|
|
2444
2602
|
size: 14
|
|
2445
|
-
}), showUncoveredFiles ? "Hide uncovered" : "Show all"), onRefresh && /* @__PURE__ */
|
|
2603
|
+
}), showUncoveredFiles ? "Hide uncovered" : "Show all"), onRefresh && /* @__PURE__ */ React14.createElement("button", {
|
|
2446
2604
|
onClick: handleRefresh,
|
|
2447
2605
|
disabled: isLoading,
|
|
2448
2606
|
style: {
|
|
@@ -2459,9 +2617,9 @@ var TelemetryCoverageFileTreeContainer = ({
|
|
|
2459
2617
|
opacity: isLoading ? 0.6 : 1
|
|
2460
2618
|
},
|
|
2461
2619
|
title: "Refresh coverage data"
|
|
2462
|
-
}, /* @__PURE__ */
|
|
2620
|
+
}, /* @__PURE__ */ React14.createElement(RefreshCw2, {
|
|
2463
2621
|
size: 14
|
|
2464
|
-
}), "Refresh"))), error && /* @__PURE__ */
|
|
2622
|
+
}), "Refresh"))), error && /* @__PURE__ */ React14.createElement("div", {
|
|
2465
2623
|
style: {
|
|
2466
2624
|
display: "flex",
|
|
2467
2625
|
alignItems: "center",
|
|
@@ -2474,36 +2632,36 @@ var TelemetryCoverageFileTreeContainer = ({
|
|
|
2474
2632
|
color: "#856404",
|
|
2475
2633
|
marginBottom: "8px"
|
|
2476
2634
|
}
|
|
2477
|
-
}, /* @__PURE__ */
|
|
2635
|
+
}, /* @__PURE__ */ React14.createElement(AlertCircle4, {
|
|
2478
2636
|
size: 14
|
|
2479
|
-
}), error), !error && stats.testFiles > 0 && /* @__PURE__ */
|
|
2637
|
+
}), error), !error && stats.testFiles > 0 && /* @__PURE__ */ React14.createElement("div", {
|
|
2480
2638
|
style: {
|
|
2481
2639
|
display: "flex",
|
|
2482
2640
|
gap: "16px",
|
|
2483
2641
|
fontSize: theme.fontSizes[0],
|
|
2484
2642
|
color: theme.colors.textSecondary || "#666"
|
|
2485
2643
|
}
|
|
2486
|
-
}, /* @__PURE__ */
|
|
2644
|
+
}, /* @__PURE__ */ React14.createElement("span", null, /* @__PURE__ */ React14.createElement("strong", {
|
|
2487
2645
|
style: { color: "#22c55e" }
|
|
2488
|
-
}, stats.coveredFiles), " covered"), stats.partialFiles > 0 && /* @__PURE__ */
|
|
2646
|
+
}, stats.coveredFiles), " covered"), stats.partialFiles > 0 && /* @__PURE__ */ React14.createElement("span", null, /* @__PURE__ */ React14.createElement("strong", {
|
|
2489
2647
|
style: { color: "#eab308" }
|
|
2490
|
-
}, stats.partialFiles), " partial"), /* @__PURE__ */
|
|
2648
|
+
}, stats.partialFiles), " partial"), /* @__PURE__ */ React14.createElement("span", null, /* @__PURE__ */ React14.createElement("strong", {
|
|
2491
2649
|
style: { color: "#6b7280" }
|
|
2492
|
-
}, stats.uncoveredFiles), " uncovered"), /* @__PURE__ */
|
|
2650
|
+
}, stats.uncoveredFiles), " uncovered"), /* @__PURE__ */ React14.createElement("span", {
|
|
2493
2651
|
style: { marginLeft: "auto" }
|
|
2494
|
-
}, stats.totalTraced, "/", stats.totalTests, " tests traced")), !error && stats.testFiles === 0 && /* @__PURE__ */
|
|
2652
|
+
}, stats.totalTraced, "/", stats.totalTests, " tests traced")), !error && stats.testFiles === 0 && /* @__PURE__ */ React14.createElement("div", {
|
|
2495
2653
|
style: {
|
|
2496
2654
|
fontSize: theme.fontSizes[0],
|
|
2497
2655
|
color: theme.colors.textSecondary || "#666"
|
|
2498
2656
|
}
|
|
2499
|
-
}, "No test files with coverage data found")), /* @__PURE__ */
|
|
2657
|
+
}, "No test files with coverage data found")), /* @__PURE__ */ React14.createElement(DirectoryFilterInput, {
|
|
2500
2658
|
fileTree,
|
|
2501
2659
|
theme,
|
|
2502
2660
|
filters,
|
|
2503
2661
|
onFiltersChange: setFilters
|
|
2504
|
-
}), /* @__PURE__ */
|
|
2662
|
+
}), /* @__PURE__ */ React14.createElement("div", {
|
|
2505
2663
|
style: { flex: 1, marginTop: "1rem", overflow: "hidden" }
|
|
2506
|
-
}, /* @__PURE__ */
|
|
2664
|
+
}, /* @__PURE__ */ React14.createElement(TelemetryCoverageFileTree, {
|
|
2507
2665
|
fileTree,
|
|
2508
2666
|
theme,
|
|
2509
2667
|
coverageData,
|
|
@@ -2532,6 +2690,7 @@ export {
|
|
|
2532
2690
|
TreeNode,
|
|
2533
2691
|
TelemetryCoverageFileTreeContainer,
|
|
2534
2692
|
TelemetryCoverageFileTree,
|
|
2693
|
+
StoryboardWorkflowsTreeCore,
|
|
2535
2694
|
OrderedFileList,
|
|
2536
2695
|
MultiFileTreeCore,
|
|
2537
2696
|
MultiFileTree,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Theme } from '@principal-ade/industry-theme';
|
|
2
|
-
import type { DiscoveredCanvas,
|
|
2
|
+
import type { DiscoveredCanvas, WorkflowTemplate } from '@principal-ai/principal-view-core';
|
|
3
3
|
import type { TreeNodeData } from '../TreeNode';
|
|
4
4
|
export interface NarrativeFile {
|
|
5
5
|
id: string;
|
|
@@ -8,14 +8,14 @@ export interface NarrativeFile {
|
|
|
8
8
|
packageName?: string;
|
|
9
9
|
canvasPath?: string;
|
|
10
10
|
}
|
|
11
|
-
export type { DiscoveredCanvas,
|
|
11
|
+
export type { DiscoveredCanvas, WorkflowTemplate };
|
|
12
12
|
export type CanvasNarrativeNodeType = 'package' | 'canvas' | 'storyboard' | 'narrative';
|
|
13
13
|
export interface CanvasNarrativeNodeData extends TreeNodeData {
|
|
14
14
|
type: CanvasNarrativeNodeType;
|
|
15
15
|
children?: CanvasNarrativeNodeData[];
|
|
16
16
|
canvas?: DiscoveredCanvas;
|
|
17
17
|
narrative?: NarrativeFile;
|
|
18
|
-
narrativeTemplate?:
|
|
18
|
+
narrativeTemplate?: WorkflowTemplate;
|
|
19
19
|
packageName?: string;
|
|
20
20
|
scope?: 'package' | 'root';
|
|
21
21
|
}
|
|
@@ -23,7 +23,7 @@ export interface CanvasNarrativeTreeCoreProps {
|
|
|
23
23
|
canvases: DiscoveredCanvas[];
|
|
24
24
|
narratives: Array<{
|
|
25
25
|
file: NarrativeFile;
|
|
26
|
-
template:
|
|
26
|
+
template: WorkflowTemplate;
|
|
27
27
|
}>;
|
|
28
28
|
theme: Theme;
|
|
29
29
|
onClick: (node: CanvasNarrativeNodeData) => void;
|
|
@@ -1 +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,
|
|
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,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAE5F,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,gBAAgB,EAAE,CAAC;AAEnD,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,QAAQ,GAAG,YAAY,GAAG,WAAW,CAAC;AAExF,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,gBAAgB,CAAC;IACrC,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,gBAAgB,CAAA;KAAE,CAAC,CAAC;IACvE,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;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
+
import { StoryboardWorkflowsTreeCore } from './StoryboardWorkflowsTreeCore';
|
|
3
|
+
declare const meta: Meta<typeof StoryboardWorkflowsTreeCore>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof StoryboardWorkflowsTreeCore>;
|
|
6
|
+
export declare const Default: Story;
|
|
7
|
+
export declare const SinglePackage: Story;
|
|
8
|
+
export declare const RootStoryboardOnly: Story;
|
|
9
|
+
export declare const NoWorkflows: 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=StoryboardWorkflowsTree.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StoryboardWorkflowsTree.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/StoryboardWorkflowsTree/StoryboardWorkflowsTree.stories.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAsP5E,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,KAqE7B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAgE7B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAU3B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StoryboardWorkflowsTreeCore.d.ts","sourceRoot":"","sources":["../../../../src/components/StoryboardWorkflowsTree/StoryboardWorkflowsTreeCore.tsx"],"names":[],"mappings":"AACA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAOvC,OAAO,KAAK,EAEV,4BAA4B,EAG7B,MAAM,SAAS,CAAC;AAoHjB,eAAO,MAAM,2BAA2B,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAuH9E,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { Theme } from '@principal-ade/industry-theme';
|
|
2
|
+
import type { DiscoveredStoryboard, DiscoveredCanvas, DiscoveredWorkflow, WorkflowTemplate } from '@principal-ai/principal-view-core';
|
|
3
|
+
import type { TreeNodeData } from '../TreeNode';
|
|
4
|
+
export type { DiscoveredStoryboard, DiscoveredCanvas, DiscoveredWorkflow, WorkflowTemplate };
|
|
5
|
+
export type StoryboardWorkflowNodeType = 'package' | 'storyboard' | 'canvas' | 'workflow';
|
|
6
|
+
export interface StoryboardWorkflowNodeData extends TreeNodeData {
|
|
7
|
+
type: StoryboardWorkflowNodeType;
|
|
8
|
+
children?: StoryboardWorkflowNodeData[];
|
|
9
|
+
storyboard?: DiscoveredStoryboard;
|
|
10
|
+
canvas?: DiscoveredCanvas;
|
|
11
|
+
workflow?: DiscoveredWorkflow;
|
|
12
|
+
workflowTemplate?: WorkflowTemplate;
|
|
13
|
+
packageName?: string;
|
|
14
|
+
scope?: 'package' | 'root';
|
|
15
|
+
}
|
|
16
|
+
export interface StoryboardWorkflowsTreeProps {
|
|
17
|
+
storyboards: DiscoveredStoryboard[];
|
|
18
|
+
theme: Theme;
|
|
19
|
+
onClick: (node: StoryboardWorkflowNodeData) => void;
|
|
20
|
+
selectedNodeId?: string;
|
|
21
|
+
defaultOpen?: boolean;
|
|
22
|
+
initialOpenState?: Record<string, boolean>;
|
|
23
|
+
horizontalNodePadding?: string;
|
|
24
|
+
verticalNodePadding?: string;
|
|
25
|
+
verticalPadding?: string;
|
|
26
|
+
enableDragAndDrop?: boolean;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/StoryboardWorkflowsTree/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAEtI,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,YAAY,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,CAAC;AAE7F,MAAM,MAAM,0BAA0B,GAAG,SAAS,GAAG,YAAY,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE1F,MAAM,WAAW,0BAA2B,SAAQ,YAAY;IAC9D,IAAI,EAAE,0BAA0B,CAAC;IACjC,QAAQ,CAAC,EAAE,0BAA0B,EAAE,CAAC;IAGxC,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,4BAA4B;IAC3C,WAAW,EAAE,oBAAoB,EAAE,CAAC;IACpC,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,CAAC,IAAI,EAAE,0BAA0B,KAAK,IAAI,CAAC;IACpD,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;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B"}
|
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.48",
|
|
4
4
|
"description": "React component for selective directory filtering and file tree visualization",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.mjs",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
},
|
|
49
49
|
"peerDependencies": {
|
|
50
50
|
"@principal-ade/industry-theme": ">=0.1.0",
|
|
51
|
-
"@principal-ai/principal-view-core": "^0.
|
|
51
|
+
"@principal-ai/principal-view-core": "^0.15.0",
|
|
52
52
|
"@principal-ai/repository-abstraction": "^0.2.3",
|
|
53
53
|
"lucide-react": ">=0.263.0",
|
|
54
54
|
"react": ">=19.0.0",
|
|
@@ -69,6 +69,9 @@
|
|
|
69
69
|
}
|
|
70
70
|
},
|
|
71
71
|
"devDependencies": {
|
|
72
|
+
"@principal-ade/industry-theme": "^0.1.0",
|
|
73
|
+
"@principal-ai/principal-view-core": "0.15.1",
|
|
74
|
+
"@principal-ai/repository-abstraction": "^0.2.3",
|
|
72
75
|
"@eslint/js": "^9.32.0",
|
|
73
76
|
"@storybook/addon-docs": "^9.1.3",
|
|
74
77
|
"@storybook/addon-onboarding": "^9.1.3",
|