@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 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';
@@ -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 React12, { useMemo as useMemo10 } from "react";
2055
- import { Tree as Tree4 } from "react-arborist";
2056
- var TelemetryCoverageContext = React12.createContext(null);
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__ */ React12.createElement(Activity, {
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__ */ React12.createElement(CircleDot, {
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__ */ React12.createElement(Circle, {
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 = useMemo10(() => {
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 = React12.useContext(TelemetryCoverageContext);
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__ */ React12.createElement(TestTube, {
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__ */ React12.createElement("div", {
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__ */ React12.createElement("span", {
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__ */ React12.createElement("div", {
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__ */ React12.createElement(Circle, {
2400
+ }, /* @__PURE__ */ React13.createElement(Circle, {
2243
2401
  size: 14
2244
2402
  })) : null;
2245
- return /* @__PURE__ */ React12.createElement(TreeNode, {
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 = useMemo10(() => {
2418
+ const treeStructure = useMemo11(() => {
2261
2419
  return transformTreeStructure2(fileTree, showOnlyTestFiles, testFilePatterns);
2262
2420
  }, [fileTree, showOnlyTestFiles, testFilePatterns]);
2263
- const treeData = useMemo10(() => {
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 = useMemo10(() => {
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 = useMemo10(() => {
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__ */ React12.createElement("div", {
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__ */ React12.createElement(TelemetryCoverageContext.Provider, {
2476
+ }, /* @__PURE__ */ React13.createElement(TelemetryCoverageContext.Provider, {
2319
2477
  value: { coverageMap, hasTracedChildrenMap }
2320
- }, /* @__PURE__ */ React12.createElement(Tree4, {
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 React13, { useState as useState7, useMemo as useMemo11 } from "react";
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 = useMemo11(() => {
2529
+ const selectedDirectories = useMemo12(() => {
2372
2530
  return filters.filter((f) => f.mode === "include").map((f) => f.path);
2373
2531
  }, [filters]);
2374
- const stats = useMemo11(() => calculateTelemetryCoverageStats(coverageData), [coverageData]);
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__ */ React13.createElement("div", {
2540
+ return /* @__PURE__ */ React14.createElement("div", {
2383
2541
  style: { display: "flex", flexDirection: "column", height: "100%" }
2384
- }, showControls && /* @__PURE__ */ React13.createElement("div", {
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__ */ React13.createElement("div", {
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__ */ React13.createElement("div", {
2555
+ }, /* @__PURE__ */ React14.createElement("div", {
2398
2556
  style: { display: "flex", alignItems: "center", gap: "8px" }
2399
- }, /* @__PURE__ */ React13.createElement(Activity2, {
2557
+ }, /* @__PURE__ */ React14.createElement(Activity2, {
2400
2558
  size: 16,
2401
2559
  color: theme.colors.primary
2402
- }), /* @__PURE__ */ React13.createElement("h3", {
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__ */ React13.createElement("span", {
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__ */ React13.createElement(RefreshCw2, {
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__ */ React13.createElement("div", {
2582
+ })), /* @__PURE__ */ React14.createElement("div", {
2425
2583
  style: { display: "flex", gap: "8px" }
2426
- }, /* @__PURE__ */ React13.createElement("button", {
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__ */ React13.createElement(EyeOff2, {
2599
+ }, showUncoveredFiles ? /* @__PURE__ */ React14.createElement(EyeOff2, {
2442
2600
  size: 14
2443
- }) : /* @__PURE__ */ React13.createElement(Eye2, {
2601
+ }) : /* @__PURE__ */ React14.createElement(Eye2, {
2444
2602
  size: 14
2445
- }), showUncoveredFiles ? "Hide uncovered" : "Show all"), onRefresh && /* @__PURE__ */ React13.createElement("button", {
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__ */ React13.createElement(RefreshCw2, {
2620
+ }, /* @__PURE__ */ React14.createElement(RefreshCw2, {
2463
2621
  size: 14
2464
- }), "Refresh"))), error && /* @__PURE__ */ React13.createElement("div", {
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__ */ React13.createElement(AlertCircle4, {
2635
+ }, /* @__PURE__ */ React14.createElement(AlertCircle4, {
2478
2636
  size: 14
2479
- }), error), !error && stats.testFiles > 0 && /* @__PURE__ */ React13.createElement("div", {
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__ */ React13.createElement("span", null, /* @__PURE__ */ React13.createElement("strong", {
2644
+ }, /* @__PURE__ */ React14.createElement("span", null, /* @__PURE__ */ React14.createElement("strong", {
2487
2645
  style: { color: "#22c55e" }
2488
- }, stats.coveredFiles), " covered"), stats.partialFiles > 0 && /* @__PURE__ */ React13.createElement("span", null, /* @__PURE__ */ React13.createElement("strong", {
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__ */ React13.createElement("span", null, /* @__PURE__ */ React13.createElement("strong", {
2648
+ }, stats.partialFiles), " partial"), /* @__PURE__ */ React14.createElement("span", null, /* @__PURE__ */ React14.createElement("strong", {
2491
2649
  style: { color: "#6b7280" }
2492
- }, stats.uncoveredFiles), " uncovered"), /* @__PURE__ */ React13.createElement("span", {
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__ */ React13.createElement("div", {
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__ */ React13.createElement(DirectoryFilterInput, {
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__ */ React13.createElement("div", {
2662
+ }), /* @__PURE__ */ React14.createElement("div", {
2505
2663
  style: { flex: 1, marginTop: "1rem", overflow: "hidden" }
2506
- }, /* @__PURE__ */ React13.createElement(TelemetryCoverageFileTree, {
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, NarrativeTemplate } from '@principal-ai/principal-view-core';
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, NarrativeTemplate };
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?: 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: NarrativeTemplate;
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,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAE7F,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,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,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;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B"}
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,4 @@
1
+ import React from 'react';
2
+ import type { StoryboardWorkflowsTreeProps } from './types';
3
+ export declare const StoryboardWorkflowsTreeCore: React.FC<StoryboardWorkflowsTreeProps>;
4
+ //# sourceMappingURL=StoryboardWorkflowsTreeCore.d.ts.map
@@ -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.47",
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.12.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",