@principal-ade/dynamic-file-tree 0.1.68 → 0.1.70

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
@@ -3,7 +3,7 @@ export { getDndProps } from './src/hooks/useDndManager';
3
3
  export { DirectoryFilterInput } from './src/components/DirectoryFilterInput';
4
4
  export type { DirectoryFilter, DirectoryFilterInputProps } from './src/components/DirectoryFilterInput';
5
5
  export { TreeNode } from './src/components/TreeNode';
6
- export type { TreeNodeProps, TreeNodeData } from './src/components/TreeNode';
6
+ export type { TreeNodeProps, TreeNodeData, DragConfig } from './src/components/TreeNode';
7
7
  export { DynamicFileTree } from './src/components/DynamicFileTree';
8
8
  export type { DynamicFileTreeProps } from './src/components/DynamicFileTree';
9
9
  export { OrderedFileList } from './src/components/OrderedFileList';
@@ -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,EACvB,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,2BAA2B,EAAE,MAAM,sEAAsE,CAAC;AACnH,YAAY,EACV,4BAA4B,EAC5B,0BAA0B,EAC1B,0BAA0B,EAC1B,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,6BAA6B,GAC9B,MAAM,gDAAgD,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AAGpF,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,YAAY,EACV,yBAAyB,EACzB,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,uCAAuC,CAAC;AAG/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oDAAoD,CAAC;AACxF,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,uCAAuC,CAAC;AAG/C,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;AAG7E,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,SAAS,EACT,aAAa,EACb,gBAAgB,GACjB,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,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAGzF,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,EACvB,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,2BAA2B,EAAE,MAAM,sEAAsE,CAAC;AACnH,YAAY,EACV,4BAA4B,EAC5B,0BAA0B,EAC1B,0BAA0B,EAC1B,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,6BAA6B,GAC9B,MAAM,gDAAgD,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AAGpF,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,YAAY,EACV,yBAAyB,EACzB,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,uCAAuC,CAAC;AAG/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oDAAoD,CAAC;AACxF,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,uCAAuC,CAAC;AAG/C,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;AAG7E,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,SAAS,EACT,aAAa,EACb,gBAAgB,GACjB,MAAM,uBAAuB,CAAC"}
package/dist/index.mjs CHANGED
@@ -251,7 +251,8 @@ var DirectoryFilterInput = ({
251
251
  };
252
252
  // src/components/TreeNode.tsx
253
253
  import { ChevronRight, ChevronDown } from "lucide-react";
254
- import React2, { useState as useState3 } from "react";
254
+ import React2, { useState as useState3, useCallback as useCallback2 } from "react";
255
+ var PANEL_DATA_MIME_TYPE = "application/x-panel-data";
255
256
  function TreeNode({
256
257
  node,
257
258
  style,
@@ -265,10 +266,48 @@ function TreeNode({
265
266
  verticalNodePadding = "3px",
266
267
  onContextMenu,
267
268
  onHover,
268
- leftIcon
269
+ leftIcon,
270
+ dragConfig
269
271
  }) {
270
272
  const [isHovered, setIsHovered] = useState3(false);
273
+ const [isDragging, setIsDragging] = useState3(false);
271
274
  const isFolder = node.isInternal;
275
+ const handleDragStart = useCallback2((e) => {
276
+ if (!dragConfig)
277
+ return;
278
+ const panelDragData = {
279
+ dataType: dragConfig.dataType,
280
+ primaryData: dragConfig.primaryData,
281
+ metadata: dragConfig.metadata,
282
+ suggestedActions: dragConfig.suggestedActions,
283
+ sourcePanel: dragConfig.sourcePanel
284
+ };
285
+ e.dataTransfer.setData(PANEL_DATA_MIME_TYPE, JSON.stringify(panelDragData));
286
+ e.dataTransfer.setData("text/plain", dragConfig.primaryData);
287
+ e.dataTransfer.effectAllowed = "copyMove";
288
+ if (dragConfig.dragPreview) {
289
+ const dragPreview = document.createElement("div");
290
+ dragPreview.textContent = dragConfig.dragPreview;
291
+ dragPreview.style.cssText = `
292
+ position: absolute;
293
+ top: -1000px;
294
+ padding: 4px 8px;
295
+ background: ${theme.colors.backgroundSecondary};
296
+ border: 1px solid ${theme.colors.border};
297
+ border-radius: 4px;
298
+ font-size: 12px;
299
+ color: ${theme.colors.text};
300
+ white-space: nowrap;
301
+ `;
302
+ document.body.appendChild(dragPreview);
303
+ e.dataTransfer.setDragImage(dragPreview, 0, 0);
304
+ setTimeout(() => document.body.removeChild(dragPreview), 0);
305
+ }
306
+ setIsDragging(true);
307
+ }, [dragConfig, theme]);
308
+ const handleDragEnd = useCallback2(() => {
309
+ setIsDragging(false);
310
+ }, []);
272
311
  const leftElement = leftIcon ? /* @__PURE__ */ React2.createElement("span", {
273
312
  style: { marginRight: "6px", display: "flex", alignItems: "center" }
274
313
  }, leftIcon) : isFolder ? /* @__PURE__ */ React2.createElement("span", {
@@ -283,13 +322,14 @@ function TreeNode({
283
322
  const backgroundColor = node.isSelected ? `${theme.colors.primary}20` : isSelectedDirectory ? `${theme.colors.primary}15` : isHovered ? `${theme.colors.text}10` : "transparent";
284
323
  const border = node.isSelected ? `1px solid ${theme.colors.primary}` : "1px solid transparent";
285
324
  const color = nameColor ? nameColor : node.isSelected || isSelectedDirectory ? theme.colors.primary : theme.colors.text;
325
+ const isDraggable = !!dragConfig;
286
326
  return /* @__PURE__ */ React2.createElement("div", {
287
327
  style: {
288
328
  ...style,
289
329
  backgroundColor,
290
330
  border,
291
331
  color,
292
- cursor: "pointer",
332
+ cursor: isDraggable ? isDragging ? "grabbing" : "grab" : "pointer",
293
333
  paddingLeft: `calc(${horizontalNodePadding} + ${node.level * 16}px)`,
294
334
  paddingRight: horizontalNodePadding,
295
335
  paddingTop: verticalNodePadding,
@@ -298,9 +338,14 @@ function TreeNode({
298
338
  alignItems: "center",
299
339
  justifyContent: "space-between",
300
340
  boxSizing: "border-box",
301
- lineHeight: "20px"
341
+ lineHeight: "20px",
342
+ opacity: isDragging ? 0.5 : 1,
343
+ transition: "opacity 0.2s ease"
302
344
  },
303
345
  ref: dragHandle,
346
+ draggable: isDraggable,
347
+ onDragStart: isDraggable ? handleDragStart : undefined,
348
+ onDragEnd: isDraggable ? handleDragEnd : undefined,
304
349
  onClick: () => node.isInternal ? node.toggle() : node.select(),
305
350
  onContextMenu: (e) => {
306
351
  if (onContextMenu) {
@@ -1894,7 +1939,6 @@ import React12, { useMemo as useMemo9, useRef as useRef5 } from "react";
1894
1939
  import { Tree as Tree3 } from "react-arborist";
1895
1940
 
1896
1941
  // src/utils/gitStatus.tsx
1897
- import React11 from "react";
1898
1942
  import {
1899
1943
  Plus as Plus3,
1900
1944
  Minus as Minus3,
@@ -1903,6 +1947,7 @@ import {
1903
1947
  GitBranch as GitBranch3,
1904
1948
  FileQuestion as FileQuestion3
1905
1949
  } from "lucide-react";
1950
+ import React11 from "react";
1906
1951
  function getGitStatusDisplay3(status, theme) {
1907
1952
  switch (status) {
1908
1953
  case "M":
@@ -2166,6 +2211,88 @@ var buildTreeDataFromVersions = (versionSnapshots, workflowCoverageMap, filterMo
2166
2211
  }
2167
2212
  return result;
2168
2213
  };
2214
+ var getDefaultDragConfig = (node) => {
2215
+ const DATA_TYPES = {
2216
+ FILE_PATH: "file-path",
2217
+ DIRECTORY_PATH: "directory-path"
2218
+ };
2219
+ const DRAG_ACTIONS = {
2220
+ INSERT_PATH: "insert-path",
2221
+ OPEN: "open"
2222
+ };
2223
+ switch (node.type) {
2224
+ case "canvas":
2225
+ if (node.canvas) {
2226
+ return {
2227
+ dataType: DATA_TYPES.FILE_PATH,
2228
+ primaryData: node.canvas.path,
2229
+ metadata: {
2230
+ name: node.canvas.name,
2231
+ type: "canvas",
2232
+ canvasType: node.canvas.type,
2233
+ storyboardId: node.storyboard?.id
2234
+ },
2235
+ suggestedActions: [DRAG_ACTIONS.INSERT_PATH, DRAG_ACTIONS.OPEN],
2236
+ sourcePanel: "storyboard-list",
2237
+ dragPreview: `Canvas: ${node.canvas.name}`
2238
+ };
2239
+ }
2240
+ break;
2241
+ case "workflow":
2242
+ if (node.workflow) {
2243
+ return {
2244
+ dataType: DATA_TYPES.FILE_PATH,
2245
+ primaryData: node.workflow.path,
2246
+ metadata: {
2247
+ name: node.workflow.name,
2248
+ type: "workflow",
2249
+ storyboardId: node.storyboard?.id,
2250
+ workflowId: node.workflow.id
2251
+ },
2252
+ suggestedActions: [DRAG_ACTIONS.INSERT_PATH, DRAG_ACTIONS.OPEN],
2253
+ sourcePanel: "storyboard-list",
2254
+ dragPreview: `Workflow: ${node.workflow.name}`
2255
+ };
2256
+ }
2257
+ break;
2258
+ case "overview":
2259
+ if (node.markdownPath) {
2260
+ return {
2261
+ dataType: DATA_TYPES.FILE_PATH,
2262
+ primaryData: node.markdownPath,
2263
+ metadata: {
2264
+ name: node.name,
2265
+ type: "overview",
2266
+ storyboardId: node.storyboard?.id
2267
+ },
2268
+ suggestedActions: [DRAG_ACTIONS.INSERT_PATH, DRAG_ACTIONS.OPEN],
2269
+ sourcePanel: "storyboard-list",
2270
+ dragPreview: `Overview: ${node.storyboard?.name || node.name}`
2271
+ };
2272
+ }
2273
+ break;
2274
+ case "storyboard":
2275
+ if (node.storyboard) {
2276
+ return {
2277
+ dataType: DATA_TYPES.DIRECTORY_PATH,
2278
+ primaryData: node.storyboard.path,
2279
+ metadata: {
2280
+ name: node.storyboard.name,
2281
+ type: "storyboard",
2282
+ canvasPath: node.storyboard.canvas.path,
2283
+ workflowCount: node.storyboard.workflows.length
2284
+ },
2285
+ suggestedActions: [DRAG_ACTIONS.INSERT_PATH],
2286
+ sourcePanel: "storyboard-list",
2287
+ dragPreview: `Storyboard: ${node.storyboard.name}`
2288
+ };
2289
+ }
2290
+ break;
2291
+ default:
2292
+ return;
2293
+ }
2294
+ return;
2295
+ };
2169
2296
  var StoryboardWorkflowsTreeCore = ({
2170
2297
  storyboards,
2171
2298
  theme,
@@ -2181,7 +2308,9 @@ var StoryboardWorkflowsTreeCore = ({
2181
2308
  versionSnapshots,
2182
2309
  workflowFilterMode = "all",
2183
2310
  traceWorkflowsSet,
2184
- gitStatusData
2311
+ gitStatusData,
2312
+ enablePanelDrag = false,
2313
+ getDragConfig
2185
2314
  }) => {
2186
2315
  const dndProps = getDndProps(enableDragAndDrop);
2187
2316
  const gitStatusMap = useMemo9(() => {
@@ -2265,6 +2394,7 @@ var StoryboardWorkflowsTreeCore = ({
2265
2394
  style: { display: "flex", alignItems: "center" }
2266
2395
  }, indicators) : undefined;
2267
2396
  })();
2397
+ const dragConfig = enablePanelDrag ? getDragConfig ? getDragConfig(data) : getDefaultDragConfig(data) : undefined;
2268
2398
  return /* @__PURE__ */ React12.createElement(TreeNode, {
2269
2399
  ...props,
2270
2400
  theme,
@@ -2272,7 +2402,8 @@ var StoryboardWorkflowsTreeCore = ({
2272
2402
  leftIcon: icon,
2273
2403
  rightContent,
2274
2404
  horizontalNodePadding: nodeHorizontalPadding,
2275
- verticalNodePadding
2405
+ verticalNodePadding,
2406
+ dragConfig
2276
2407
  });
2277
2408
  };
2278
2409
  const lastSelectionRef = useRef5(null);
@@ -2634,6 +2765,70 @@ var buildTreeData = (canvases, gitStatusMap) => {
2634
2765
  return allCanvases.map(buildCanvasNode).sort((a, b) => a.name.localeCompare(b.name));
2635
2766
  }
2636
2767
  };
2768
+ var getDefaultCanvasDragConfig = (node) => {
2769
+ const DATA_TYPES = {
2770
+ FILE_PATH: "file-path",
2771
+ DIRECTORY_PATH: "directory-path"
2772
+ };
2773
+ const DRAG_ACTIONS = {
2774
+ INSERT_PATH: "insert-path",
2775
+ OPEN: "open"
2776
+ };
2777
+ switch (node.type) {
2778
+ case "canvas":
2779
+ if (node.canvas) {
2780
+ return {
2781
+ dataType: DATA_TYPES.FILE_PATH,
2782
+ primaryData: node.canvas.path,
2783
+ metadata: {
2784
+ name: node.canvas.name,
2785
+ type: "canvas",
2786
+ canvasType: node.canvas.type
2787
+ },
2788
+ suggestedActions: [DRAG_ACTIONS.INSERT_PATH, DRAG_ACTIONS.OPEN],
2789
+ sourcePanel: "canvas-list",
2790
+ dragPreview: `Canvas: ${node.canvas.name}`
2791
+ };
2792
+ }
2793
+ break;
2794
+ case "overview":
2795
+ if (node.markdownPath) {
2796
+ return {
2797
+ dataType: DATA_TYPES.FILE_PATH,
2798
+ primaryData: node.markdownPath,
2799
+ metadata: {
2800
+ name: node.name,
2801
+ type: "overview",
2802
+ canvasId: node.canvas?.id
2803
+ },
2804
+ suggestedActions: [DRAG_ACTIONS.INSERT_PATH, DRAG_ACTIONS.OPEN],
2805
+ sourcePanel: "canvas-list",
2806
+ dragPreview: `Overview: ${node.canvas?.name || node.name}`
2807
+ };
2808
+ }
2809
+ break;
2810
+ case "canvas-folder":
2811
+ if (node.canvas) {
2812
+ const folderPath = node.canvas.path.replace(/\/[^/]+$/, "");
2813
+ return {
2814
+ dataType: DATA_TYPES.DIRECTORY_PATH,
2815
+ primaryData: folderPath,
2816
+ metadata: {
2817
+ name: node.canvas.name,
2818
+ type: "canvas-folder",
2819
+ canvasPath: node.canvas.path
2820
+ },
2821
+ suggestedActions: [DRAG_ACTIONS.INSERT_PATH],
2822
+ sourcePanel: "canvas-list",
2823
+ dragPreview: `Folder: ${node.canvas.name}`
2824
+ };
2825
+ }
2826
+ break;
2827
+ default:
2828
+ return;
2829
+ }
2830
+ return;
2831
+ };
2637
2832
  var CanvasListTreeCore = ({
2638
2833
  canvases,
2639
2834
  theme,
@@ -2645,7 +2840,9 @@ var CanvasListTreeCore = ({
2645
2840
  verticalNodePadding = "6px",
2646
2841
  verticalPadding = "20px",
2647
2842
  enableDragAndDrop = false,
2648
- gitStatusData
2843
+ gitStatusData,
2844
+ enablePanelDrag = false,
2845
+ getDragConfig
2649
2846
  }) => {
2650
2847
  const dndProps = getDndProps(enableDragAndDrop);
2651
2848
  const gitStatusMap = useMemo11(() => {
@@ -2683,6 +2880,7 @@ var CanvasListTreeCore = ({
2683
2880
  }
2684
2881
  return;
2685
2882
  })();
2883
+ const dragConfig = enablePanelDrag ? getDragConfig ? getDragConfig(data) : getDefaultCanvasDragConfig(data) : undefined;
2686
2884
  return /* @__PURE__ */ React14.createElement(TreeNode, {
2687
2885
  ...props,
2688
2886
  theme,
@@ -2690,7 +2888,8 @@ var CanvasListTreeCore = ({
2690
2888
  leftIcon: icon,
2691
2889
  rightContent,
2692
2890
  horizontalNodePadding: nodeHorizontalPadding,
2693
- verticalNodePadding
2891
+ verticalNodePadding,
2892
+ dragConfig
2694
2893
  });
2695
2894
  };
2696
2895
  const lastSelectionRef = useRef6(null);
@@ -1 +1 @@
1
- {"version":3,"file":"CanvasListTree.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/CanvasListTree/CanvasListTree.stories.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AA0G1D,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,kBAAkB,CAmCzC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAyBjD,eAAO,MAAM,YAAY,EAAE,KAU1B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAU3B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAUtB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAUnB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAU3B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAUzB,CAAC"}
1
+ {"version":3,"file":"CanvasListTree.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/CanvasListTree/CanvasListTree.stories.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AA2G1D,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,kBAAkB,CAmCzC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAyBjD,eAAO,MAAM,YAAY,EAAE,KAU1B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAU3B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAUtB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAUnB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAU3B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAUzB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CanvasListTreeCore.d.ts","sourceRoot":"","sources":["../../../../src/components/CanvasListTree/CanvasListTreeCore.tsx"],"names":[],"mappings":"AACA,OAAO,KAA0B,MAAM,OAAO,CAAC;AAQ/C,OAAO,KAAK,EAEV,mBAAmB,EAEpB,MAAM,SAAS,CAAC;AAuHjB,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA6J5D,CAAC"}
1
+ {"version":3,"file":"CanvasListTreeCore.d.ts","sourceRoot":"","sources":["../../../../src/components/CanvasListTree/CanvasListTreeCore.tsx"],"names":[],"mappings":"AACA,OAAO,KAA0B,MAAM,OAAO,CAAC;AAQ/C,OAAO,KAAK,EAEV,mBAAmB,EAEpB,MAAM,SAAS,CAAC;AAgMjB,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAqK5D,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import type { Theme } from '@principal-ade/industry-theme';
2
2
  import type { DiscoveredCanvas } from '@principal-ai/principal-view-core';
3
- import type { TreeNodeData } from '../TreeNode';
4
3
  import type { GitFileStatus, GitStatus } from '../../utils/gitStatus';
4
+ import type { TreeNodeData, DragConfig } from '../TreeNode';
5
5
  export type { DiscoveredCanvas };
6
6
  export type CanvasListNodeType = 'package' | 'canvas-folder' | 'canvas' | 'overview';
7
7
  export interface CanvasListNodeData extends TreeNodeData {
@@ -25,5 +25,16 @@ export interface CanvasListTreeProps {
25
25
  verticalPadding?: string;
26
26
  enableDragAndDrop?: boolean;
27
27
  gitStatusData?: GitFileStatus[];
28
+ /**
29
+ * Enable dragging nodes to other panels (e.g., terminal).
30
+ * When enabled, nodes will transfer their path/data using the panel-framework-core format.
31
+ */
32
+ enablePanelDrag?: boolean;
33
+ /**
34
+ * Optional callback to customize the drag config for each node.
35
+ * If not provided, default configs are generated based on node type.
36
+ * Return undefined to disable dragging for a specific node.
37
+ */
38
+ getDragConfig?: (node: CanvasListNodeData) => DragConfig | undefined;
28
39
  }
29
40
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/CanvasListTree/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGtE,YAAY,EAAE,gBAAgB,EAAE,CAAC;AAEjC,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,eAAe,GAAG,QAAQ,GAAG,UAAU,CAAC;AAErF,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACtD,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAGhC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC5C,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;IAG5B,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;CACjC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/CanvasListTree/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG5D,YAAY,EAAE,gBAAgB,EAAE,CAAC;AAEjC,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,eAAe,GAAG,QAAQ,GAAG,UAAU,CAAC;AAErF,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACtD,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAGhC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC5C,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;IAG5B,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;IAGhC;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,UAAU,GAAG,SAAS,CAAC;CACtE"}
@@ -1 +1 @@
1
- {"version":3,"file":"StoryboardWorkflowsTreeCore.d.ts","sourceRoot":"","sources":["../../../../src/components/StoryboardWorkflowsTree/StoryboardWorkflowsTreeCore.tsx"],"names":[],"mappings":"AACA,OAAO,KAA0B,MAAM,OAAO,CAAC;AAQ/C,OAAO,KAAK,EAEV,4BAA4B,EAK7B,MAAM,SAAS,CAAC;AAkQjB,eAAO,MAAM,2BAA2B,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAiO9E,CAAC"}
1
+ {"version":3,"file":"StoryboardWorkflowsTreeCore.d.ts","sourceRoot":"","sources":["../../../../src/components/StoryboardWorkflowsTree/StoryboardWorkflowsTreeCore.tsx"],"names":[],"mappings":"AACA,OAAO,KAA0B,MAAM,OAAO,CAAC;AAQ/C,OAAO,KAAK,EAEV,4BAA4B,EAK7B,MAAM,SAAS,CAAC;AA6VjB,eAAO,MAAM,2BAA2B,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAyO9E,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import type { Theme } from '@principal-ade/industry-theme';
2
2
  import type { DiscoveredStoryboard, DiscoveredCanvas, DiscoveredWorkflow, DiscoveredWorkflowWithContent, WorkflowTemplate, VersionSnapshot } from '@principal-ai/principal-view-core';
3
- import type { TreeNodeData } from '../TreeNode';
4
3
  import type { GitFileStatus, GitStatus } from '../../utils/gitStatus';
4
+ import type { TreeNodeData, DragConfig } from '../TreeNode';
5
5
  export type { DiscoveredStoryboard, DiscoveredCanvas, DiscoveredWorkflow, DiscoveredWorkflowWithContent, WorkflowTemplate, VersionSnapshot };
6
6
  export type StoryboardWorkflowNodeType = 'version' | 'package' | 'storyboard' | 'overview' | 'canvas' | 'workflows' | 'workflow';
7
7
  /**
@@ -51,5 +51,16 @@ export interface StoryboardWorkflowsTreeProps {
51
51
  workflowFilterMode?: StoryboardFilterMode;
52
52
  traceWorkflowsSet?: Set<string>;
53
53
  gitStatusData?: GitFileStatus[];
54
+ /**
55
+ * Enable dragging nodes to other panels (e.g., terminal).
56
+ * When enabled, nodes will transfer their path/data using the panel-framework-core format.
57
+ */
58
+ enablePanelDrag?: boolean;
59
+ /**
60
+ * Optional callback to customize the drag config for each node.
61
+ * If not provided, default configs are generated based on node type.
62
+ * Return undefined to disable dragging for a specific node.
63
+ */
64
+ getDragConfig?: (node: StoryboardWorkflowNodeData) => DragConfig | undefined;
54
65
  }
55
66
  //# sourceMappingURL=types.d.ts.map
@@ -1 +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,6BAA6B,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAEtL,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGtE,YAAY,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,6BAA6B,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAC;AAE7I,MAAM,MAAM,0BAA0B,GAAG,SAAS,GAAG,SAAS,GAAG,YAAY,GAAG,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,CAAC;AAEjI;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG,KAAK,GAAG,aAAa,GAAG,gBAAgB,CAAC;AAE5E,MAAM,WAAW,0BAA2B,SAAQ,YAAY;IAC9D,IAAI,EAAE,0BAA0B,CAAC;IACjC,QAAQ,CAAC,EAAE,0BAA0B,EAAE,CAAC;IAGxC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAI1B,QAAQ,CAAC,EAAE,kBAAkB,GAAG,6BAA6B,CAAC;IAE9D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,0BAA0B,GAC/B,IAAI,IAAI,0BAA0B,GAAG;IAAE,QAAQ,EAAE,6BAA6B,CAAA;CAAE,CAMlF;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;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAG9C,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC,kBAAkB,CAAC,EAAE,oBAAoB,CAAC;IAC1C,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAGhC,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;CACjC"}
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,6BAA6B,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAEtL,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG5D,YAAY,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,6BAA6B,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAC;AAE7I,MAAM,MAAM,0BAA0B,GAAG,SAAS,GAAG,SAAS,GAAG,YAAY,GAAG,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,CAAC;AAEjI;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG,KAAK,GAAG,aAAa,GAAG,gBAAgB,CAAC;AAE5E,MAAM,WAAW,0BAA2B,SAAQ,YAAY;IAC9D,IAAI,EAAE,0BAA0B,CAAC;IACjC,QAAQ,CAAC,EAAE,0BAA0B,EAAE,CAAC;IAGxC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAI1B,QAAQ,CAAC,EAAE,kBAAkB,GAAG,6BAA6B,CAAC;IAE9D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,0BAA0B,GAC/B,IAAI,IAAI,0BAA0B,GAAG;IAAE,QAAQ,EAAE,6BAA6B,CAAA;CAAE,CAMlF;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;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAG9C,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC,kBAAkB,CAAC,EAAE,oBAAoB,CAAC;IAC1C,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAGhC,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;IAGhC;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,0BAA0B,KAAK,UAAU,GAAG,SAAS,CAAC;CAC9E"}
@@ -7,6 +7,24 @@ export interface TreeNodeData {
7
7
  children?: TreeNodeData[];
8
8
  [key: string]: unknown;
9
9
  }
10
+ /**
11
+ * Configuration for making a tree node draggable to other panels.
12
+ * Uses the panel-framework-core drag data format for cross-panel communication.
13
+ */
14
+ export interface DragConfig {
15
+ /** The type of data being dragged (e.g., 'file-path', 'directory-path', 'text-selection') */
16
+ dataType: string;
17
+ /** The primary data to transfer (e.g., the file path) */
18
+ primaryData: string;
19
+ /** Optional metadata to include with the drag data */
20
+ metadata?: Record<string, unknown>;
21
+ /** Suggested actions for the target (e.g., ['insert-path', 'open']) */
22
+ suggestedActions?: string[];
23
+ /** Source panel identifier */
24
+ sourcePanel?: string;
25
+ /** Text shown during drag preview */
26
+ dragPreview?: string;
27
+ }
10
28
  export interface TreeNodeProps<T extends TreeNodeData> extends NodeRendererProps<T> {
11
29
  theme: Theme;
12
30
  rightContent?: ReactNode;
@@ -18,6 +36,8 @@ export interface TreeNodeProps<T extends TreeNodeData> extends NodeRendererProps
18
36
  onContextMenu?: (event: React.MouseEvent, node: NodeRendererProps<T>['node']) => void;
19
37
  onHover?: (isHovered: boolean, node: NodeRendererProps<T>['node']) => void;
20
38
  leftIcon?: ReactNode;
39
+ /** Configuration for making this node draggable to other panels */
40
+ dragConfig?: DragConfig;
21
41
  }
22
- export declare function TreeNode<T extends TreeNodeData>({ node, style, dragHandle, theme, rightContent, extraContent, isSelectedDirectory, nameColor, horizontalNodePadding, verticalNodePadding, onContextMenu, onHover, leftIcon, }: TreeNodeProps<T>): React.JSX.Element;
42
+ export declare function TreeNode<T extends TreeNodeData>({ node, style, dragHandle, theme, rightContent, extraContent, isSelectedDirectory, nameColor, horizontalNodePadding, verticalNodePadding, onContextMenu, onHover, leftIcon, dragConfig, }: TreeNodeProps<T>): React.JSX.Element;
23
43
  //# sourceMappingURL=TreeNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TreeNode.d.ts","sourceRoot":"","sources":["../../../src/components/TreeNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,KAAK,EAAE,EAAY,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,YAAY,CAAE,SAAQ,iBAAiB,CAAC,CAAC,CAAC;IACjF,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IACtF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAC3E,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,QAAQ,CAAC,CAAC,SAAS,YAAY,EAAE,EAC/C,IAAI,EACJ,KAAK,EACL,UAAU,EACV,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,mBAA2B,EAC3B,SAAS,EACT,qBAA6B,EAC7B,mBAA2B,EAC3B,aAAa,EACb,OAAO,EACP,QAAQ,GACT,EAAE,aAAa,CAAC,CAAC,CAAC,qBAiGlB"}
1
+ {"version":3,"file":"TreeNode.d.ts","sourceRoot":"","sources":["../../../src/components/TreeNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,KAAK,EAAE,EAAY,SAAS,EAAe,MAAM,OAAO,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,6FAA6F;IAC7F,QAAQ,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,WAAW,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,8BAA8B;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,YAAY,CAAE,SAAQ,iBAAiB,CAAC,CAAC,CAAC;IACjF,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IACtF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAC3E,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,mEAAmE;IACnE,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAKD,wBAAgB,QAAQ,CAAC,CAAC,SAAS,YAAY,EAAE,EAC/C,IAAI,EACJ,KAAK,EACL,UAAU,EACV,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,mBAA2B,EAC3B,SAAS,EACT,qBAA6B,EAC7B,mBAA2B,EAC3B,aAAa,EACb,OAAO,EACP,QAAQ,EACR,UAAU,GACX,EAAE,aAAa,CAAC,CAAC,CAAC,qBAwJlB"}
@@ -1 +1 @@
1
- {"version":3,"file":"WorkflowScenarioTree.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/WorkflowScenarioTree/WorkflowScenarioTree.stories.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAsOtE,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,wBAAwB,CAI/C,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAEvD,eAAO,MAAM,OAAO,EAAE,KASrB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAuG5B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAwC1B,CAAC"}
1
+ {"version":3,"file":"WorkflowScenarioTree.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/WorkflowScenarioTree/WorkflowScenarioTree.stories.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAIvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAqOtE,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,wBAAwB,CAI/C,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAEvD,eAAO,MAAM,OAAO,EAAE,KASrB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAuG5B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAwC1B,CAAC"}
@@ -1,5 +1,5 @@
1
- import React from 'react';
2
1
  import type { Theme } from '@principal-ade/industry-theme';
2
+ import React from 'react';
3
3
  export type GitStatus = 'M' | 'A' | 'D' | 'R' | 'C' | 'U' | '??' | '!!' | 'AM' | 'MM' | null;
4
4
  export interface GitFileStatus {
5
5
  filePath: string;
@@ -1 +1 @@
1
- {"version":3,"file":"gitStatus.d.ts","sourceRoot":"","sources":["../../../src/utils/gitStatus.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAW3D,MAAM,MAAM,SAAS,GACjB,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,CAAC;AAGT,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,SAAS,CAAC;CACnB;AAGD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,gBAAgB,GAAG,IAAI,CAsD5F;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAUxF;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GACnC,SAAS,GAAG,IAAI,CAmBlB"}
1
+ {"version":3,"file":"gitStatus.d.ts","sourceRoot":"","sources":["../../../src/utils/gitStatus.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAS3D,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,MAAM,SAAS,GACjB,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,CAAC;AAGT,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,SAAS,CAAC;CACnB;AAGD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,gBAAgB,GAAG,IAAI,CAsD5F;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAUxF;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GACnC,SAAS,GAAG,IAAI,CAmBlB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@principal-ade/dynamic-file-tree",
3
- "version": "0.1.68",
3
+ "version": "0.1.70",
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 --external @principal-ai/principal-view-core",
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-ade/panel-framework-core --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,8 +48,9 @@
48
48
  },
49
49
  "peerDependencies": {
50
50
  "@principal-ade/industry-theme": ">=0.1.0",
51
- "@principal-ai/principal-view-core": "^0.23.0",
52
- "@principal-ai/repository-abstraction": "^0.5.2",
51
+ "@principal-ade/panel-framework-core": ">=0.4.0",
52
+ "@principal-ai/principal-view-core": "^0.24.8",
53
+ "@principal-ai/repository-abstraction": "^0.5.7",
53
54
  "lucide-react": ">=0.263.0",
54
55
  "react": ">=19.0.0",
55
56
  "react-dom": ">=19.0.0"
@@ -58,6 +59,9 @@
58
59
  "@principal-ade/industry-theme": {
59
60
  "optional": false
60
61
  },
62
+ "@principal-ade/panel-framework-core": {
63
+ "optional": true
64
+ },
61
65
  "react": {
62
66
  "optional": true
63
67
  },
@@ -71,8 +75,9 @@
71
75
  "devDependencies": {
72
76
  "@eslint/js": "^9.32.0",
73
77
  "@principal-ade/industry-theme": "^0.1.0",
74
- "@principal-ai/principal-view-core": "^0.23.0",
75
- "@principal-ai/repository-abstraction": "^0.5.2",
78
+ "@principal-ade/panel-framework-core": "^0.4.2",
79
+ "@principal-ai/principal-view-core": "^0.24.8",
80
+ "@principal-ai/repository-abstraction": "^0.5.7",
76
81
  "@storybook/addon-docs": "^10.0.0",
77
82
  "@storybook/addon-onboarding": "^10.0.0",
78
83
  "@storybook/addon-webpack5-compiler-swc": "^3.0.0",