@parallelworks/ui 0.20.0 → 0.21.0

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.
Files changed (154) hide show
  1. package/dist/ai/adapter/openai/createOpenAIStream.js +3 -2
  2. package/dist/ai/agent/diff.d.ts +0 -1
  3. package/dist/ai/agent/diff.js +3 -2
  4. package/dist/ai/agent/toolfmt.js +2 -3
  5. package/dist/ai/ai.css +5 -0
  6. package/dist/ai/components/AllocationSelector.js +3 -2
  7. package/dist/ai/components/AttachmentManager.js +1 -1
  8. package/dist/ai/components/BranchNavigator.js +4 -2
  9. package/dist/ai/components/ChatInput.d.ts +2 -5
  10. package/dist/ai/components/ChatInput.js +10 -7
  11. package/dist/ai/components/ChatMessage.js +7 -7
  12. package/dist/ai/components/ChatSidebar.d.ts +0 -1
  13. package/dist/ai/components/ChatSidebar.js +4 -6
  14. package/dist/ai/components/ChatThread.js +5 -8
  15. package/dist/ai/components/ModelSelector.js +3 -2
  16. package/dist/ai/components/ShareDialog.js +6 -3
  17. package/dist/ai/components/SlashMenu.d.ts +0 -1
  18. package/dist/ai/components/agent/ActivityLine.d.ts +0 -1
  19. package/dist/ai/components/agent/ActivityLine.js +2 -2
  20. package/dist/ai/components/agent/AgentMessageParts.d.ts +1 -26
  21. package/dist/ai/components/agent/AgentMessageParts.js +4 -5
  22. package/dist/ai/core/ChatProvider.d.ts +2 -6
  23. package/dist/ai/core/ChatProvider.js +42 -67
  24. package/dist/ai/core/KeyboardShortcutsProvider.js +1 -1
  25. package/dist/ai/core/chatReducer.d.ts +0 -6
  26. package/dist/ai/core/chatReducer.js +1 -15
  27. package/dist/ai/core/useKeyboardShortcuts.d.ts +3 -1
  28. package/dist/ai/core/useKeyboardShortcuts.js +9 -11
  29. package/dist/ai/core/useSSEStream.d.ts +0 -1
  30. package/dist/ai/core/useSSEStream.js +5 -17
  31. package/dist/ai/strings.d.ts +0 -1
  32. package/dist/ai/strings.js +0 -1
  33. package/dist/ai/types.d.ts +1 -1
  34. package/dist/ai/ui/Avatar.d.ts +1 -2
  35. package/dist/ai/ui/Avatar.js +7 -18
  36. package/dist/ai/ui/Markdown.d.ts +1 -3
  37. package/dist/ai/ui/Markdown.js +1 -2
  38. package/dist/ai/ui/sidebar.d.ts +0 -1
  39. package/dist/ai/ui/sidebar.js +3 -1
  40. package/dist/ai/utils.js +1 -1
  41. package/dist/components/Avatar.js +4 -2
  42. package/dist/components/BareModal.js +1 -5
  43. package/dist/components/Breadcrumbs.js +21 -14
  44. package/dist/components/CollapsiblePanel.d.ts +1 -3
  45. package/dist/components/CollapsiblePanel.js +5 -5
  46. package/dist/components/Dropdown.d.ts +0 -4
  47. package/dist/components/Dropdown.js +5 -6
  48. package/dist/components/Listbox.js +14 -18
  49. package/dist/components/MultiSelect.js +5 -8
  50. package/dist/components/Pagination.js +1 -1
  51. package/dist/components/Provider.d.ts +0 -8
  52. package/dist/components/SwitchToggle.js +3 -5
  53. package/dist/components/Table.d.ts +1 -3
  54. package/dist/components/dropdownUtils.js +5 -6
  55. package/dist/components/relativeTime.d.ts +0 -7
  56. package/dist/components/relativeTime.js +1 -1
  57. package/dist/duration.js +1 -1
  58. package/dist/editor/Editor.d.ts +1 -1
  59. package/dist/editor/Editor.js +1 -1
  60. package/dist/editor/EditorField.d.ts +0 -1
  61. package/dist/editor/EditorField.js +8 -8
  62. package/dist/editor/FormCodePanel.js +14 -20
  63. package/dist/editor/yamlLanguage.js +2 -2
  64. package/dist/file-explorer/FileExplorer.js +56 -59
  65. package/dist/file-explorer/FileExplorerContext.d.ts +1 -2
  66. package/dist/file-explorer/FileExplorerContext.js +92 -125
  67. package/dist/file-explorer/FilePreview/Inline.d.ts +1 -2
  68. package/dist/file-explorer/FilePreview/Inline.js +2 -2
  69. package/dist/file-explorer/FilePreview/Viewer.js +0 -4
  70. package/dist/file-explorer/FilePreview/index.d.ts +1 -2
  71. package/dist/file-explorer/FilePreview/index.js +3 -3
  72. package/dist/file-explorer/FilePreview/parse.d.ts +2 -1
  73. package/dist/file-explorer/FilePreview/useObjectBlobUrl.d.ts +5 -4
  74. package/dist/file-explorer/FilePreview/useObjectBlobUrl.js +23 -36
  75. package/dist/file-explorer/FilePreview/useObjectText.d.ts +1 -2
  76. package/dist/file-explorer/FilePreview/useObjectText.js +5 -7
  77. package/dist/file-explorer/FileRow.js +1 -1
  78. package/dist/file-explorer/FileRowsWindow.d.ts +5 -12
  79. package/dist/file-explorer/FileTable.d.ts +2 -6
  80. package/dist/file-explorer/LoadMoreRow.d.ts +8 -0
  81. package/dist/file-explorer/TreeView.d.ts +0 -1
  82. package/dist/file-explorer/TreeView.js +6 -6
  83. package/dist/file-explorer/helpers.js +2 -4
  84. package/dist/file-explorer/lib/fileExplorer.d.ts +0 -2
  85. package/dist/file-explorer/lib/types.d.ts +0 -1
  86. package/dist/file-explorer/lib/utils.js +15 -20
  87. package/dist/file-explorer/toasts.js +36 -34
  88. package/dist/form/Fields/BooleanField.js +5 -4
  89. package/dist/form/Fields/CheckboxGroupField.js +5 -4
  90. package/dist/form/Fields/ColorField.js +5 -4
  91. package/dist/form/Fields/DropdownField.d.ts +0 -1
  92. package/dist/form/Fields/DropdownField.js +10 -13
  93. package/dist/form/Fields/DurationField.js +2 -2
  94. package/dist/form/Fields/LabelField.js +5 -5
  95. package/dist/form/Fields/MultiDropdownField.d.ts +1 -1
  96. package/dist/form/Fields/MultiDropdownField.js +8 -11
  97. package/dist/form/Fields/NumberField.js +6 -5
  98. package/dist/form/Fields/ObjectField.d.ts +1 -2
  99. package/dist/form/Fields/ObjectField.js +22 -21
  100. package/dist/form/Fields/RadioField.js +4 -3
  101. package/dist/form/Fields/RangeField.js +7 -6
  102. package/dist/form/Fields/StringField.js +2 -1
  103. package/dist/form/Fields/TextAreaField.js +2 -1
  104. package/dist/form/Form.d.ts +7 -8
  105. package/dist/form/Form.js +52 -78
  106. package/dist/form/SpecialTypes/DropdownWrapper.d.ts +0 -2
  107. package/dist/form/SpecialTypes/DropdownWrapper.js +1 -3
  108. package/dist/form/SpecialTypes/FormikCustomDropdown.d.ts +1 -3
  109. package/dist/form/SpecialTypes/FormikCustomDropdown.js +4 -7
  110. package/dist/form/SpecialTypes/FormikCustomInput.js +13 -11
  111. package/dist/form/Wizard/WizardContainer.js +8 -25
  112. package/dist/form/Wizard/WizardNavigation.d.ts +1 -1
  113. package/dist/form/Wizard/WizardNavigation.js +5 -6
  114. package/dist/form/Wizard/WizardStepContent.d.ts +1 -1
  115. package/dist/form/Wizard/WizardStepContent.js +2 -2
  116. package/dist/form/Wizard/WizardStepIndicator.js +7 -17
  117. package/dist/form/Wizard/types.d.ts +4 -46
  118. package/dist/form/Wizard/useWizardState.d.ts +2 -10
  119. package/dist/form/Wizard/useWizardState.js +42 -92
  120. package/dist/form/Wizard/utils.js +6 -11
  121. package/dist/form/lib.js +28 -54
  122. package/dist/form/types/fieldTypes.d.ts +4 -5
  123. package/dist/form/utils/dependentOptions.d.ts +6 -0
  124. package/dist/form/utils/dependentOptions.js +21 -0
  125. package/dist/form/utils/getParentValue.d.ts +2 -1
  126. package/dist/form/utils/getParentValue.js +10 -15
  127. package/dist/form/utils/getValueUsingPath.js +1 -1
  128. package/dist/graph/AnnotationBanner.d.ts +1 -1
  129. package/dist/graph/AnnotationBanner.js +1 -1
  130. package/dist/graph/Collapse.d.ts +3 -3
  131. package/dist/graph/Collapse.js +3 -8
  132. package/dist/graph/DependencyGraph.d.ts +5 -4
  133. package/dist/graph/DependencyGraph.js +172 -222
  134. package/dist/graph/JobSummary.d.ts +10 -8
  135. package/dist/graph/JobSummary.js +13 -13
  136. package/dist/graph/MatrixGroup.d.ts +5 -17
  137. package/dist/graph/MatrixGroup.js +11 -22
  138. package/dist/graph/TreeView.d.ts +1 -3
  139. package/dist/graph/TreeView.js +104 -491
  140. package/dist/graph/types.d.ts +3 -2
  141. package/dist/graph/util.d.ts +5 -0
  142. package/dist/graph/util.js +18 -0
  143. package/dist/icons.d.ts +2 -2
  144. package/dist/icons.js +2 -2
  145. package/dist/index.d.ts +1 -1
  146. package/dist/list/ListViewControls.js +17 -35
  147. package/dist/list/RowContextMenu.js +7 -7
  148. package/dist/logviewer/LogViewer.js +7 -9
  149. package/dist/logviewer/segments.js +2 -2
  150. package/dist/styles/theme.css +1 -0
  151. package/dist/styles.css +1 -1
  152. package/dist/theme/index.js +5 -5
  153. package/package.json +28 -30
  154. package/dist/ai/ui/buttons.d.ts +0 -1
@@ -1,15 +1,17 @@
1
1
  import type { ReactNode } from 'react';
2
2
  import type { WorkflowJob } from './types.js';
3
- export declare function Joblist(inputs: {
3
+ /** What a job list does when its jobs and steps are clicked, at one graph level. */
4
+ export interface JobHandlers {
5
+ isStepsOpen: (jobName: string) => boolean;
6
+ onJobClick: (jobName: string) => void;
7
+ onStepClick: (jobName: string, stepIndex: number) => void;
8
+ onStepLogClick: (jobName: string, stepIndex: number) => void;
9
+ onSubworkflowIcon: (jobName: string, stepIndex: number) => void;
10
+ renderSubworkflow: (jobName: string, stepIndex: number) => ReactNode;
11
+ }
12
+ export declare function Joblist(inputs: JobHandlers & {
4
13
  jobs: Record<string, WorkflowJob>;
5
14
  jobNames: string[];
6
- onJobClick: (jobName: string) => void;
7
- onStepClick: (jobName: string, stepName: string | number) => void;
8
- onStepLogClick?: (jobName: string, stepIndex: number) => void;
9
- onSubworkflowIcon?: (jobName: string, stepIndex: number) => void;
10
- isSubworkflowExpanded?: (jobName: string, stepIndex: number) => boolean;
11
- renderSubworkflow?: (jobName: string, stepIndex: number) => ReactNode;
12
- isStepsOpen: (jobName: string) => boolean;
13
15
  growWidth?: boolean;
14
16
  preview?: boolean;
15
17
  }): (import("react").JSX.Element | null)[];
@@ -3,6 +3,7 @@ import { DocumentIcon, OpenInNewGraphIcon } from "../icons.js";
3
3
  import { TOOLTIP_ID } from "../components/Tooltip.js";
4
4
  import { Indicator } from "../components/Indicator.js";
5
5
  import { Reveal } from "./Reveal.js";
6
+ import { jobLabel } from "./util.js";
6
7
  import cx from "classnames";
7
8
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
8
9
  //#region src/graph/JobSummary.tsx
@@ -31,9 +32,8 @@ function Joblist(inputs) {
31
32
  const engine = useWorkflowEngine();
32
33
  return inputs.jobNames.map((jobName) => {
33
34
  if (inputs.jobs[jobName]?._matrixGroup) return null;
34
- const jobStatus = inputs.jobs[jobName]?.status;
35
- const matrixMeta = inputs.jobs[jobName]?._matrix;
36
- const jobLabel = matrixMeta?.originaljob ? `${matrixMeta.originaljob[0].toUpperCase() + matrixMeta.originaljob.slice(1)} (${(matrixMeta.index ?? 0) + 1}/${matrixMeta.totalingroup ?? "?"})` : (jobName[0].toUpperCase() + jobName.slice(1)).replace(/_/g, " ");
35
+ const job = inputs.jobs[jobName];
36
+ const jobStatus = job?.status;
37
37
  return /* @__PURE__ */ jsxs("div", {
38
38
  className: "py-1 select-none",
39
39
  children: [/* @__PURE__ */ jsxs("button", {
@@ -41,20 +41,20 @@ function Joblist(inputs) {
41
41
  "aria-expanded": inputs.isStepsOpen(jobName),
42
42
  onClick: () => inputs.onJobClick(jobName),
43
43
  className: cx("flex items-center gap-x-1.5 w-full text-left", jobStatus === "skipped" || jobStatus === "skipped-failed" ? "cursor-default" : "cursor-pointer"),
44
- children: [!inputs.preview && /* @__PURE__ */ jsx(Indicator, { status: inputs.jobs[jobName]?.status }), /* @__PURE__ */ jsx("div", {
44
+ children: [!inputs.preview && /* @__PURE__ */ jsx(Indicator, { status: jobStatus }), /* @__PURE__ */ jsx("div", {
45
45
  className: "font-medium",
46
- children: jobLabel
46
+ children: jobLabel(jobName, job)
47
47
  })]
48
48
  }), /* @__PURE__ */ jsx(Reveal, {
49
49
  open: inputs.isStepsOpen(jobName),
50
50
  growWidth: inputs.growWidth ?? false,
51
51
  children: /* @__PURE__ */ jsx("div", {
52
52
  className: "flex flex-col gap-y-0.5 mt-0.5",
53
- children: (inputs.jobs[jobName]?.steps || []).map((step, i) => {
53
+ children: (job?.steps || []).map((step, i) => {
54
54
  const stepLabel = engine.stepLabel(step, i);
55
55
  const stepKey = `${jobName}:${i}`;
56
56
  const subJobs = step.subworkflow?.jobs;
57
- const canExpand = !!inputs.renderSubworkflow && !!subJobs && Object.keys(subJobs).length > 0;
57
+ const canExpand = !!subJobs && Object.keys(subJobs).length > 0;
58
58
  return /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsxs("div", {
59
59
  className: cx("flex items-center", step.status === "skipped" || step.status === "skipped-failed" ? "cursor-default" : "cursor-pointer"),
60
60
  children: [/* @__PURE__ */ jsxs("button", {
@@ -64,14 +64,14 @@ function Joblist(inputs) {
64
64
  "data-testid": stepLabel,
65
65
  children: [inputs.preview ? "↳" : /* @__PURE__ */ jsx(Indicator, { status: step.status }), /* @__PURE__ */ jsx("div", { children: stepLabel })]
66
66
  }), step.subworkflow && /* @__PURE__ */ jsxs(Fragment, { children: [
67
- inputs.onStepLogClick && /* @__PURE__ */ jsx("button", {
67
+ /* @__PURE__ */ jsx("button", {
68
68
  type: "button",
69
69
  "aria-label": jobActions.openSubworkflowLogs,
70
70
  "data-tooltip-id": "global-tooltip",
71
71
  "data-tooltip-content": jobActions.openSubworkflowLogs,
72
72
  onClick: (e) => {
73
73
  e.stopPropagation();
74
- inputs.onStepLogClick?.(jobName, i);
74
+ inputs.onStepLogClick(jobName, i);
75
75
  },
76
76
  className: "link ml-1",
77
77
  children: /* @__PURE__ */ jsx(DocumentIcon, { className: "w-[1.2em] h-[1.2em]" })
@@ -80,24 +80,24 @@ function Joblist(inputs) {
80
80
  uses: step.uses,
81
81
  subworkflow: step.subworkflow
82
82
  }),
83
- inputs.onSubworkflowIcon && /* @__PURE__ */ jsx("button", {
83
+ /* @__PURE__ */ jsx("button", {
84
84
  type: "button",
85
85
  "aria-label": jobActions.openInNewGraph,
86
86
  "data-tooltip-id": "global-tooltip",
87
87
  "data-tooltip-content": jobActions.openInNewGraph,
88
88
  onClick: (e) => {
89
89
  e.stopPropagation();
90
- inputs.onSubworkflowIcon?.(jobName, i);
90
+ inputs.onSubworkflowIcon(jobName, i);
91
91
  },
92
92
  className: "link ml-1",
93
93
  children: /* @__PURE__ */ jsx(OpenInNewGraphIcon, { className: "w-[1.2em] h-[1.2em]" })
94
94
  })
95
95
  ] })]
96
- }), canExpand && inputs.renderSubworkflow?.(jobName, i)] }, stepKey);
96
+ }), canExpand && inputs.renderSubworkflow(jobName, i)] }, stepKey);
97
97
  })
98
98
  })
99
99
  })]
100
- }, "job-" + jobName);
100
+ }, `job-${jobName}`);
101
101
  });
102
102
  }
103
103
  //#endregion
@@ -1,24 +1,18 @@
1
- import type { ReactNode } from 'react';
2
1
  import type { MatrixGroup, RunStatus } from '../engine.js';
2
+ import { type JobHandlers } from './JobSummary.js';
3
3
  import type { WorkflowJob } from './types.js';
4
4
  /** Matrix group item in the summary sidebar. */
5
- export declare function MatrixGroupSummaryItem({ matrixGroup, status, isExpanded, onToggle, jobs, isStepsOpen, onJobClick, onStepClick, onStepLogClick, onSubworkflowIcon, isSubworkflowExpanded, renderSubworkflow, preview, }: {
5
+ export declare function MatrixGroupSummaryItem({ matrixGroup, status, isExpanded, onToggle, jobs, handlers, preview, }: {
6
6
  matrixGroup: MatrixGroup;
7
7
  status: RunStatus;
8
8
  isExpanded: boolean;
9
9
  onToggle: () => void;
10
10
  jobs: Record<string, WorkflowJob>;
11
- isStepsOpen: (j: string) => boolean;
12
- onJobClick: (j: string) => void;
13
- onStepClick: (j: string, s: string | number) => void;
14
- onStepLogClick: (j: string, s: number) => void;
15
- onSubworkflowIcon: (j: string, s: number) => void;
16
- isSubworkflowExpanded: (j: string, s: number) => boolean;
17
- renderSubworkflow: (j: string, s: number) => ReactNode;
11
+ handlers: JobHandlers;
18
12
  preview: boolean;
19
13
  }): import("react").JSX.Element;
20
14
  /** Matrix group node in the DAG visualization. */
21
- export declare function MatrixGroupNode({ matrixGroup, jobNames, idPrefix, isExpanded, onToggle, jobs, activeDists, onMouseEnter, onMouseLeave, hoveredRelated, animT, zBase, isStepsOpen, onJobClick, onStepClick, onStepLogClick, onSubworkflowIcon, isSubworkflowExpanded, renderSubworkflow, preview, }: {
15
+ export declare function MatrixGroupNode({ matrixGroup, jobNames, idPrefix, isExpanded, onToggle, jobs, activeDists, onMouseEnter, onMouseLeave, hoveredRelated, animT, zBase, handlers, preview, }: {
22
16
  matrixGroup: MatrixGroup;
23
17
  jobNames: string[];
24
18
  idPrefix: string;
@@ -31,12 +25,6 @@ export declare function MatrixGroupNode({ matrixGroup, jobNames, idPrefix, isExp
31
25
  hoveredRelated: Set<string> | null;
32
26
  animT: number;
33
27
  zBase: number;
34
- isStepsOpen: (j: string) => boolean;
35
- onJobClick: (j: string) => void;
36
- onStepClick: (j: string, s: string | number) => void;
37
- onStepLogClick: (j: string, s: number) => void;
38
- onSubworkflowIcon: (j: string, s: number) => void;
39
- isSubworkflowExpanded: (j: string, s: number) => boolean;
40
- renderSubworkflow: (j: string, s: number) => ReactNode;
28
+ handlers: JobHandlers;
41
29
  preview: boolean;
42
30
  }): import("react").JSX.Element;
@@ -5,7 +5,7 @@ import { Joblist } from "./JobSummary.js";
5
5
  import { jsx, jsxs } from "react/jsx-runtime";
6
6
  //#region src/graph/MatrixGroup.tsx
7
7
  /** Matrix group item in the summary sidebar. */
8
- function MatrixGroupSummaryItem({ matrixGroup, status, isExpanded, onToggle, jobs, isStepsOpen, onJobClick, onStepClick, onStepLogClick, onSubworkflowIcon, isSubworkflowExpanded, renderSubworkflow, preview }) {
8
+ function MatrixGroupSummaryItem({ matrixGroup, status, isExpanded, onToggle, jobs, handlers, preview }) {
9
9
  return /* @__PURE__ */ jsxs("div", {
10
10
  className: "py-1.5",
11
11
  children: [/* @__PURE__ */ jsxs("button", {
@@ -35,29 +35,24 @@ function MatrixGroupSummaryItem({ matrixGroup, status, isExpanded, onToggle, job
35
35
  children: /* @__PURE__ */ jsx(Joblist, {
36
36
  jobs,
37
37
  jobNames: matrixGroup.members,
38
- onJobClick,
39
- isStepsOpen,
40
- onStepClick,
41
- onStepLogClick,
42
- onSubworkflowIcon,
43
- isSubworkflowExpanded,
44
- renderSubworkflow,
38
+ ...handlers,
45
39
  preview
46
40
  })
47
41
  })
48
42
  })]
49
- }, "matrix-" + matrixGroup.originaljob);
43
+ });
50
44
  }
51
45
  /** Matrix group node in the DAG visualization. */
52
- function MatrixGroupNode({ matrixGroup, jobNames, idPrefix, isExpanded, onToggle, jobs, activeDists, onMouseEnter, onMouseLeave, hoveredRelated, animT, zBase, isStepsOpen, onJobClick, onStepClick, onStepLogClick, onSubworkflowIcon, isSubworkflowExpanded, renderSubworkflow, preview }) {
46
+ function MatrixGroupNode({ matrixGroup, jobNames, idPrefix, isExpanded, onToggle, jobs, activeDists, onMouseEnter, onMouseLeave, hoveredRelated, animT, zBase, handlers, preview }) {
53
47
  const matrixName = matrixGroup.originaljob;
48
+ const first = jobNames[0] ?? "";
54
49
  const matrixMembers = matrixGroup.members;
55
50
  const { aggStatus, statusLabel } = useWorkflowEngine().matrixStatus(matrixMembers.map((m) => jobs[m]?.status));
56
51
  return /* @__PURE__ */ jsxs("div", {
57
- id: "node_" + idPrefix + jobNames[0],
52
+ id: `node_${idPrefix}${first}`,
58
53
  role: "none",
59
54
  className: "relative m-24",
60
- style: { zIndex: (activeDists?.has(jobNames[0]) ? 25 : 1) + zBase },
55
+ style: { zIndex: (activeDists?.has(first) ? 25 : 1) + zBase },
61
56
  onMouseEnter,
62
57
  onMouseLeave,
63
58
  onFocus: onMouseEnter,
@@ -65,7 +60,7 @@ function MatrixGroupNode({ matrixGroup, jobNames, idPrefix, isExpanded, onToggle
65
60
  children: [/* @__PURE__ */ jsx("div", { className: "absolute inset-0 rounded-2xl bg-(--theme-panel-bg)" }), /* @__PURE__ */ jsxs("div", {
66
61
  className: "relative border-solid shadow py-4 px-8 rounded-xl border-4 whitespace-nowrap bg-(--theme-panel-bg) text-2xl",
67
62
  style: {
68
- opacity: hoveredRelated && !hoveredRelated.has(jobNames[0]) ? .5 : 1,
63
+ opacity: hoveredRelated && !hoveredRelated.has(first) ? .5 : 1,
69
64
  transition: `opacity ${animT}s`
70
65
  },
71
66
  children: [/* @__PURE__ */ jsxs("button", {
@@ -75,7 +70,7 @@ function MatrixGroupNode({ matrixGroup, jobNames, idPrefix, isExpanded, onToggle
75
70
  onClick: onToggle,
76
71
  children: [/* @__PURE__ */ jsxs("div", {
77
72
  className: "font-semibold text-md p-0.5",
78
- children: ["Matrix: ", matrixName.length > 20 ? matrixName.slice(0, 20) + "..." : matrixName]
73
+ children: ["Matrix: ", matrixName.length > 20 ? `${matrixName.slice(0, 20)}...` : matrixName]
79
74
  }), !isExpanded && /* @__PURE__ */ jsxs("div", {
80
75
  className: "mt-1 border-t border-(--theme-border) pt-1 flex items-center gap-x-1",
81
76
  children: [/* @__PURE__ */ jsx(Indicator, { status: aggStatus }), /* @__PURE__ */ jsx("span", { children: statusLabel })]
@@ -88,20 +83,14 @@ function MatrixGroupNode({ matrixGroup, jobNames, idPrefix, isExpanded, onToggle
88
83
  children: /* @__PURE__ */ jsx(Joblist, {
89
84
  jobs,
90
85
  jobNames: matrixMembers,
91
- onJobClick,
92
- isStepsOpen,
93
- onStepClick,
94
- onStepLogClick,
95
- onSubworkflowIcon,
96
- isSubworkflowExpanded,
97
- renderSubworkflow,
86
+ ...handlers,
98
87
  growWidth: true,
99
88
  preview
100
89
  })
101
90
  })
102
91
  })]
103
92
  })]
104
- }, "node_" + jobNames[0]);
93
+ });
105
94
  }
106
95
  //#endregion
107
96
  export { MatrixGroupNode, MatrixGroupSummaryItem };
@@ -1,11 +1,9 @@
1
1
  import type { WorkflowJob as Job } from './types.js';
2
2
  interface TreeViewProps {
3
3
  jobs: Record<string, Job>;
4
- workflowName: string;
5
- runNumber: number;
6
4
  slug: string;
7
5
  expandedJobs: Set<string>;
8
6
  setExpandedJobs: (jobs: Set<string>) => void;
9
7
  }
10
- export default function TreeView({ jobs, workflowName, runNumber, slug, expandedJobs, setExpandedJobs, }: TreeViewProps): import("react").JSX.Element;
8
+ export default function TreeView({ jobs, slug, expandedJobs, setExpandedJobs }: TreeViewProps): import("react").JSX.Element;
11
9
  export {};