@agentiffai/design 1.3.26 → 1.3.28

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.
@@ -2214,9 +2214,10 @@ var ICONS = {
2214
2214
  };
2215
2215
  function ItemWithLogs({
2216
2216
  run,
2217
- onRunSelect
2217
+ onRunSelect,
2218
+ isExpanded,
2219
+ onToggleExpand
2218
2220
  }) {
2219
- const [isExpanded, setIsExpanded] = react.useState(false);
2220
2221
  const logSections = run.logs ? [
2221
2222
  {
2222
2223
  title: "Action History",
@@ -2230,12 +2231,19 @@ function ItemWithLogs({
2230
2231
  }
2231
2232
  ] : [];
2232
2233
  const handleClick = () => {
2233
- setIsExpanded(!isExpanded);
2234
+ onToggleExpand(run.id);
2234
2235
  onRunSelect?.(run.id);
2235
2236
  };
2236
2237
  return /* @__PURE__ */ jsxRuntime.jsxs(ItemDisclosure, { id: run.id, "data-testid": `run-item-${run.id}`, children: [
2237
2238
  /* @__PURE__ */ jsxRuntime.jsx(ItemHeader, { slot: "trigger", onClick: handleClick, $isExpanded: isExpanded, children: /* @__PURE__ */ jsxRuntime.jsxs(ItemContainer, { as: "div", children: [
2238
- /* @__PURE__ */ jsxRuntime.jsx(ItemIcon, { src: ICONS[run.icon || "loader"], alt: "", "data-testid": `run-icon-${run.status}` }),
2239
+ /* @__PURE__ */ jsxRuntime.jsx(
2240
+ ItemIcon,
2241
+ {
2242
+ src: ICONS[run.icon || "loader"],
2243
+ alt: "",
2244
+ "data-testid": `run-icon-${run.status}`
2245
+ }
2246
+ ),
2239
2247
  /* @__PURE__ */ jsxRuntime.jsx(ItemName, { "data-testid": "run-name", children: run.name }),
2240
2248
  /* @__PURE__ */ jsxRuntime.jsxs(RunStatus, { $status: run.status, "data-testid": `run-status-${run.status}`, children: [
2241
2249
  run.status === "completed" && /* @__PURE__ */ jsxRuntime.jsx("img", { src: ICONS.checkFill, alt: "", style: { width: "16px", height: "16px" } }),
@@ -2292,7 +2300,9 @@ function groupRunsByWorkflow(runs) {
2292
2300
  function WorkflowGroupItem({
2293
2301
  group,
2294
2302
  onRunSelect,
2295
- expandedKeys
2303
+ expandedKeys,
2304
+ expandedRunIds,
2305
+ onToggleRunExpand
2296
2306
  }) {
2297
2307
  const groupId = `workflow-${group.workflowId}`;
2298
2308
  const isExpanded = expandedKeys.has(groupId);
@@ -2300,15 +2310,34 @@ function WorkflowGroupItem({
2300
2310
  /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Heading, { level: 4, children: /* @__PURE__ */ jsxRuntime.jsxs(CategoryHeader, { slot: "trigger", style: { paddingLeft: "8px" }, children: [
2301
2311
  /* @__PURE__ */ jsxRuntime.jsxs(CategoryTitle, { children: [
2302
2312
  /* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontSize: tokens.typography.fontSize.sm, fontWeight: 400 }, children: group.workflowName }),
2303
- /* @__PURE__ */ jsxRuntime.jsxs("span", { style: { fontSize: tokens.typography.fontSize.xs, color: tokens.colors.text.tertiary, marginLeft: "8px" }, children: [
2304
- "(",
2305
- group.runs.length,
2306
- ")"
2307
- ] })
2313
+ /* @__PURE__ */ jsxRuntime.jsxs(
2314
+ "span",
2315
+ {
2316
+ style: {
2317
+ fontSize: tokens.typography.fontSize.xs,
2318
+ color: tokens.colors.text.tertiary,
2319
+ marginLeft: "8px"
2320
+ },
2321
+ children: [
2322
+ "(",
2323
+ group.runs.length,
2324
+ ")"
2325
+ ]
2326
+ }
2327
+ )
2308
2328
  ] }),
2309
2329
  /* @__PURE__ */ jsxRuntime.jsx(ChevronIcon, { $isExpanded: isExpanded, children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: ICONS.chevronDown, alt: "" }) })
2310
2330
  ] }) }),
2311
- /* @__PURE__ */ jsxRuntime.jsx(CategoryDisclosurePanel, { children: group.runs.map((run) => /* @__PURE__ */ jsxRuntime.jsx(ItemWithLogs, { run, onRunSelect }, run.id)) })
2331
+ /* @__PURE__ */ jsxRuntime.jsx(CategoryDisclosurePanel, { children: group.runs.map((run) => /* @__PURE__ */ jsxRuntime.jsx(
2332
+ ItemWithLogs,
2333
+ {
2334
+ run,
2335
+ onRunSelect,
2336
+ isExpanded: expandedRunIds.has(run.id),
2337
+ onToggleExpand: onToggleRunExpand
2338
+ },
2339
+ run.id
2340
+ )) })
2312
2341
  ] });
2313
2342
  }
2314
2343
  function GroupedRunsRenderer({
@@ -2316,15 +2345,26 @@ function GroupedRunsRenderer({
2316
2345
  onRunSelect,
2317
2346
  expandedKeys,
2318
2347
  setExpandedKeys,
2348
+ expandedRunIds,
2349
+ onToggleRunExpand,
2319
2350
  ariaLabel,
2320
2351
  emptyMessage
2321
2352
  }) {
2322
2353
  if (groups.length === 0) {
2323
- return /* @__PURE__ */ jsxRuntime.jsx(ItemContainer, { children: /* @__PURE__ */ jsxRuntime.jsx(ItemName, { $dimmed: true, children: emptyMessage }) });
2354
+ return /* @__PURE__ */ jsxRuntime.jsx(ItemContainer, { "data-testid": "empty-state", children: /* @__PURE__ */ jsxRuntime.jsx(ItemName, { $dimmed: true, children: emptyMessage }) });
2324
2355
  }
2325
2356
  const firstGroup = groups[0];
2326
2357
  if (groups.length === 1 && firstGroup && firstGroup.runs.length === 1) {
2327
- return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: firstGroup.runs.map((run) => /* @__PURE__ */ jsxRuntime.jsx(ItemWithLogs, { run, onRunSelect }, run.id)) });
2358
+ return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: firstGroup.runs.map((run) => /* @__PURE__ */ jsxRuntime.jsx(
2359
+ ItemWithLogs,
2360
+ {
2361
+ run,
2362
+ onRunSelect,
2363
+ isExpanded: expandedRunIds.has(run.id),
2364
+ onToggleExpand: onToggleRunExpand
2365
+ },
2366
+ run.id
2367
+ )) });
2328
2368
  }
2329
2369
  return /* @__PURE__ */ jsxRuntime.jsx(
2330
2370
  StyledDisclosureGroup,
@@ -2338,7 +2378,9 @@ function GroupedRunsRenderer({
2338
2378
  {
2339
2379
  group,
2340
2380
  onRunSelect,
2341
- expandedKeys
2381
+ expandedKeys,
2382
+ expandedRunIds,
2383
+ onToggleRunExpand
2342
2384
  },
2343
2385
  group.workflowId
2344
2386
  ))
@@ -2353,6 +2395,18 @@ function RunsTabContent({
2353
2395
  /* @__PURE__ */ new Set(["executing", "completed", "failed"])
2354
2396
  // All status sections open by default
2355
2397
  );
2398
+ const [expandedRunIds, setExpandedRunIds] = react.useState(/* @__PURE__ */ new Set());
2399
+ const handleToggleRunExpand = react.useCallback((runId) => {
2400
+ setExpandedRunIds((prev) => {
2401
+ const next = new Set(prev);
2402
+ if (next.has(runId)) {
2403
+ next.delete(runId);
2404
+ } else {
2405
+ next.add(runId);
2406
+ }
2407
+ return next;
2408
+ });
2409
+ }, []);
2356
2410
  const executingRuns = runs.filter((r) => normalizeCategory(r.category) === "executing");
2357
2411
  const completedRuns = runs.filter((r) => normalizeCategory(r.category) === "completed");
2358
2412
  const failedRuns = runs.filter((r) => normalizeCategory(r.category) === "failed");
@@ -2382,6 +2436,8 @@ function RunsTabContent({
2382
2436
  onRunSelect,
2383
2437
  expandedKeys,
2384
2438
  setExpandedKeys,
2439
+ expandedRunIds,
2440
+ onToggleRunExpand: handleToggleRunExpand,
2385
2441
  ariaLabel: "Executing workflows",
2386
2442
  emptyMessage: "No executing items"
2387
2443
  }
@@ -2402,6 +2458,8 @@ function RunsTabContent({
2402
2458
  onRunSelect,
2403
2459
  expandedKeys,
2404
2460
  setExpandedKeys,
2461
+ expandedRunIds,
2462
+ onToggleRunExpand: handleToggleRunExpand,
2405
2463
  ariaLabel: "Completed workflows",
2406
2464
  emptyMessage: "No completed items"
2407
2465
  }
@@ -2422,6 +2480,8 @@ function RunsTabContent({
2422
2480
  onRunSelect,
2423
2481
  expandedKeys,
2424
2482
  setExpandedKeys,
2483
+ expandedRunIds,
2484
+ onToggleRunExpand: handleToggleRunExpand,
2425
2485
  ariaLabel: "Failed workflows",
2426
2486
  emptyMessage: "No failed items"
2427
2487
  }