ai-design-system 0.1.23 → 0.1.25

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.
@@ -1,6 +1,32 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react'
2
2
  import { SectionLayout } from './SectionLayout'
3
3
 
4
+ function ScrollablePanelContent({
5
+ description,
6
+ items,
7
+ title,
8
+ }: {
9
+ description: string
10
+ items: string[]
11
+ title: string
12
+ }) {
13
+ return (
14
+ <div className="flex min-h-0 flex-col gap-3 rounded-lg border bg-muted p-4">
15
+ <div>
16
+ <h3 className="mb-1 font-medium">{title}</h3>
17
+ <p className="text-sm text-muted-foreground">{description}</p>
18
+ </div>
19
+ <div className="grid gap-2">
20
+ {items.map((item, index) => (
21
+ <div key={`${title}-${index}`} className="rounded-md border bg-background px-3 py-2 text-sm">
22
+ {item}
23
+ </div>
24
+ ))}
25
+ </div>
26
+ </div>
27
+ )
28
+ }
29
+
4
30
  /**
5
31
  * SectionLayout Block Stories
6
32
  *
@@ -274,3 +300,83 @@ export const AccentDragHandles: Story = {
274
300
  )
275
301
  },
276
302
  }
303
+
304
+ /**
305
+ * Independent Panel Scrolling
306
+ *
307
+ * Demonstrates that each panel owns its own vertical scroll region.
308
+ */
309
+ export const IndependentPanelScrolling: Story = {
310
+ render: () => {
311
+ const leftItems = Array.from({ length: 24 }, (_, index) => `Run record ${index + 1}`)
312
+ const centerItems = Array.from({ length: 18 }, (_, index) => `Trace span ${index + 1}`)
313
+ const rightItems = Array.from({ length: 20 }, (_, index) => `Details block ${index + 1}`)
314
+
315
+ const sections = [
316
+ {
317
+ id: 'left-scroll-panel',
318
+ content: (
319
+ <ScrollablePanelContent
320
+ title="Left Panel"
321
+ description="Scroll this panel independently. The center and right panels should keep their own scroll positions."
322
+ items={leftItems}
323
+ />
324
+ ),
325
+ defaultSize: 25,
326
+ minSize: 20,
327
+ header: {
328
+ tabs: [{ value: 'runs', label: 'runs' }],
329
+ defaultTab: 'runs',
330
+ showSidebarToggle: false,
331
+ showTitle: false,
332
+ },
333
+ },
334
+ {
335
+ id: 'center-scroll-panel',
336
+ content: (
337
+ <ScrollablePanelContent
338
+ title="Center Panel"
339
+ description="This panel should keep a separate scrollbar from the left list and the right details column."
340
+ items={centerItems}
341
+ />
342
+ ),
343
+ defaultSize: 50,
344
+ minSize: 35,
345
+ header: {
346
+ tabs: [{ value: 'trace', label: 'trace' }],
347
+ defaultTab: 'trace',
348
+ showSidebarToggle: false,
349
+ showTitle: false,
350
+ },
351
+ },
352
+ {
353
+ id: 'right-scroll-panel',
354
+ content: (
355
+ <ScrollablePanelContent
356
+ title="Right Panel"
357
+ description="Use this to confirm the details panel can overflow and scroll without affecting the other panels."
358
+ items={rightItems}
359
+ />
360
+ ),
361
+ defaultSize: 25,
362
+ minSize: 20,
363
+ header: {
364
+ tabs: [{ value: 'details', label: 'details' }],
365
+ defaultTab: 'details',
366
+ showSidebarToggle: false,
367
+ showTitle: false,
368
+ },
369
+ },
370
+ ]
371
+
372
+ return (
373
+ <div className="h-screen p-4">
374
+ <SectionLayout
375
+ sections={sections}
376
+ storageKey="section-layout-independent-scroll"
377
+ dragHandleColor="primary"
378
+ />
379
+ </div>
380
+ )
381
+ },
382
+ }
@@ -26,11 +26,11 @@ export const SectionLayout = React.memo<SectionLayoutProps>(
26
26
  const transformedSections = sections.map(section => ({
27
27
  ...section,
28
28
  content: (
29
- <div className="h-full min-h-0 flex flex-col">
29
+ <div className="h-full min-h-0 flex flex-col overflow-hidden">
30
30
  {section.header && (
31
31
  <AppHeader {...section.header} />
32
32
  )}
33
- <div className="min-h-0 flex-1">
33
+ <div className="min-h-0 flex-1 overflow-auto [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden">
34
34
  {section.content}
35
35
  </div>
36
36
  </div>
@@ -454,7 +454,7 @@ export function EnhancedDataTable({
454
454
  }, [handlers, table])
455
455
 
456
456
  return (
457
- <div className={`flex w-full flex-col justify-start gap-6 ${className ?? ""}`}>
457
+ <div className={`flex min-h-0 w-full flex-1 flex-col justify-start gap-6 overflow-hidden ${className ?? ""}`}>
458
458
  <div className="flex items-center justify-between gap-2 px-4 lg:px-6">
459
459
  <div className="flex items-center gap-2 [&>button]:h-8">
460
460
  <Input
@@ -503,8 +503,8 @@ export function EnhancedDataTable({
503
503
  </div>
504
504
  </div>
505
505
 
506
- <div className="relative flex flex-col gap-4 overflow-auto px-4 lg:px-6">
507
- <div className="overflow-hidden rounded-lg border">
506
+ <div className="relative flex min-h-0 flex-1 flex-col gap-4 overflow-hidden px-4 lg:px-6">
507
+ <div className="overflow-x-auto overflow-y-hidden rounded-lg border [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden">
508
508
  <DndContext
509
509
  collisionDetection={closestCenter}
510
510
  modifiers={[restrictToVerticalAxis]}
@@ -282,7 +282,7 @@ export const WorkflowRunObservabilityTracePanel = React.memo<WorkflowRunObservab
282
282
  </div>
283
283
  </div>
284
284
 
285
- <div className="min-h-0 flex-1 overflow-auto p-2">
285
+ <div className="min-h-0 flex-1 overflow-auto p-2 [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden">
286
286
  {spans.length === 0 ? (
287
287
  <div className="text-[#8a8c96] text-sm">No spans yet.</div>
288
288
  ) : (
@@ -325,7 +325,7 @@ export const WorkflowRunObservabilityTracePanel = React.memo<WorkflowRunObservab
325
325
  </TabsContent>
326
326
 
327
327
  <TabsContent className="min-h-0 flex-1 overflow-hidden" value="events">
328
- <div className="h-full min-h-0 space-y-2 overflow-auto rounded-lg border border-[#2a2a2f] bg-[#07080b] p-3">
328
+ <div className="h-full min-h-0 space-y-2 overflow-auto rounded-lg border border-[#2a2a2f] bg-[#07080b] p-3 [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden">
329
329
  {events.length === 0 ? (
330
330
  <div className="text-[#8a8c96] text-sm">No events yet.</div>
331
331
  ) : (
@@ -345,7 +345,7 @@ export const WorkflowRunObservabilityTracePanel = React.memo<WorkflowRunObservab
345
345
  </TabsContent>
346
346
 
347
347
  <TabsContent className="min-h-0 flex-1 overflow-hidden" value="streams">
348
- <div className="h-full min-h-0 space-y-2 overflow-auto rounded-lg border border-[#2a2a2f] bg-[#07080b] p-3">
348
+ <div className="h-full min-h-0 space-y-2 overflow-auto rounded-lg border border-[#2a2a2f] bg-[#07080b] p-3 [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden">
349
349
  {streams.length === 0 ? (
350
350
  <div className="text-[#8a8c96] text-sm">No streams yet.</div>
351
351
  ) : (
@@ -355,7 +355,7 @@ export const WorkflowRunObservabilityTracePanel = React.memo<WorkflowRunObservab
355
355
  <div className="font-medium">{stream.channel}</div>
356
356
  <div className="text-[#8a8c96]">{stream.timestamp ?? ""}</div>
357
357
  </div>
358
- <pre className="mt-1 overflow-auto font-mono text-xs text-[#cfd1d9]">{stream.payload}</pre>
358
+ <pre className="mt-1 overflow-auto font-mono text-xs text-[#cfd1d9] [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden">{stream.payload}</pre>
359
359
  </div>
360
360
  ))
361
361
  )}
@@ -413,7 +413,7 @@ export const WorkflowRunObservabilityDetailsPanel = React.memo<WorkflowRunObserv
413
413
  </div>
414
414
  </div>
415
415
 
416
- <div className="mt-3 min-h-0 flex-1 space-y-3 overflow-y-auto pr-1">
416
+ <div className="mt-3 min-h-0 flex-1 space-y-3 overflow-y-auto pr-1 [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden">
417
417
 
418
418
  <div className="space-y-3 text-xs">
419
419
  <div>
@@ -467,23 +467,23 @@ export const WorkflowRunObservabilityDetailsPanel = React.memo<WorkflowRunObserv
467
467
 
468
468
  <div className="space-y-2 pt-2">
469
469
  <div className="text-[#8a8c96] text-xs uppercase tracking-wide">Arguments</div>
470
- <pre className="max-h-24 overflow-auto rounded border border-[#2a2a2f] bg-[#090a0f] p-2 font-mono text-[11px] text-[#cfd1d9]">{formatPayload(selectedSpan.argumentsPayload ?? run.argumentsPayload)}</pre>
470
+ <pre className="max-h-24 overflow-auto rounded border border-[#2a2a2f] bg-[#090a0f] p-2 font-mono text-[11px] text-[#cfd1d9] [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden">{formatPayload(selectedSpan.argumentsPayload ?? run.argumentsPayload)}</pre>
471
471
  </div>
472
472
 
473
473
  <div className="space-y-2">
474
474
  <div className="text-[#8a8c96] text-xs uppercase tracking-wide">Input</div>
475
- <pre className="max-h-24 overflow-auto rounded border border-[#2a2a2f] bg-[#090a0f] p-2 font-mono text-[11px] text-[#cfd1d9]">{formatPayload(selectedSpan.inputPayload ?? run.inputPayload)}</pre>
475
+ <pre className="max-h-24 overflow-auto rounded border border-[#2a2a2f] bg-[#090a0f] p-2 font-mono text-[11px] text-[#cfd1d9] [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden">{formatPayload(selectedSpan.inputPayload ?? run.inputPayload)}</pre>
476
476
  </div>
477
477
 
478
478
  <div className="space-y-2">
479
479
  <div className="text-[#8a8c96] text-xs uppercase tracking-wide">Output</div>
480
- <pre className="max-h-24 overflow-auto rounded border border-[#2a2a2f] bg-[#090a0f] p-2 font-mono text-[11px] text-[#cfd1d9]">{formatPayload(selectedSpan.outputPayload ?? run.outputPayload)}</pre>
480
+ <pre className="max-h-24 overflow-auto rounded border border-[#2a2a2f] bg-[#090a0f] p-2 font-mono text-[11px] text-[#cfd1d9] [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden">{formatPayload(selectedSpan.outputPayload ?? run.outputPayload)}</pre>
481
481
  </div>
482
482
  </div>
483
483
 
484
484
  <div className="space-y-2 border-t border-[#23242a] pt-3">
485
485
  <div className="font-medium text-sm">Events ({events.length})</div>
486
- <div className="max-h-32 divide-y divide-[#23242a] overflow-auto rounded border border-[#2a2a2f] bg-[#090a0f]">
486
+ <div className="max-h-32 divide-y divide-[#23242a] overflow-auto rounded border border-[#2a2a2f] bg-[#090a0f] [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden">
487
487
  {events.slice(0, 3).map((event) => (
488
488
  <div className="px-2 py-1 text-xs" key={event.id}>
489
489
  <div>{event.title}</div>
@@ -102,7 +102,7 @@ export const FormReportsFeature = React.memo<FormReportsFeatureProps>(
102
102
  )
103
103
 
104
104
  return (
105
- <div className={`flex flex-1 flex-col gap-4 py-4 md:gap-6 md:py-6 ${className ?? ""}`}>
105
+ <div className={`flex min-h-0 flex-1 flex-col gap-4 overflow-hidden py-4 md:gap-6 md:py-6 ${className ?? ""}`}>
106
106
  <FormReportsSection
107
107
  onCreateClick={showCreateButton ? () => openDrawer("create") : undefined}
108
108
  createButtonLabel={createButtonLabel}
@@ -136,7 +136,7 @@ export const PageLayout = React.memo<PageLayoutProps>(
136
136
  <AppSidebar {...sidebar} />
137
137
  <PageContainer className={`overflow-hidden ${className ?? ""}`}>
138
138
  <AppHeader {...header} />
139
- <div className="min-h-0 flex-1 overflow-y-auto overflow-x-hidden">
139
+ <div className={`min-h-0 flex-1 overflow-x-hidden ${layoutSections ? "overflow-hidden" : "overflow-y-auto"}`}>
140
140
  {contentArea}
141
141
  </div>
142
142
  </PageContainer>
@@ -65,7 +65,7 @@ function buildObservabilitySections({
65
65
  return [
66
66
  {
67
67
  ...traceSection,
68
- defaultSize: 70,
68
+ defaultSize: 66.67,
69
69
  minSize: 55,
70
70
  },
71
71
  {
@@ -80,7 +80,7 @@ function buildObservabilitySections({
80
80
  spans={spans}
81
81
  />
82
82
  ),
83
- defaultSize: 30,
83
+ defaultSize: 33.33,
84
84
  minSize: 25,
85
85
  },
86
86
  ]
package/dist/index.cjs CHANGED
@@ -7415,7 +7415,7 @@ function EnhancedDataTable({
7415
7415
  const visibleColumnIds = table.getAllColumns().filter((column) => typeof column.accessorFn !== "undefined" && column.getCanHide() && column.getIsVisible()).map((column) => column.id);
7416
7416
  (_a2 = handlers == null ? void 0 : handlers.onColumnsChange) == null ? void 0 : _a2.call(handlers, visibleColumnIds);
7417
7417
  }, [handlers, table]);
7418
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `flex w-full flex-col justify-start gap-6 ${className != null ? className : ""}`, children: [
7418
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `flex min-h-0 w-full flex-1 flex-col justify-start gap-6 overflow-hidden ${className != null ? className : ""}`, children: [
7419
7419
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between gap-2 px-4 lg:px-6", children: [
7420
7420
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 [&>button]:h-8", children: [
7421
7421
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -7459,8 +7459,8 @@ function EnhancedDataTable({
7459
7459
  rightActions
7460
7460
  ] })
7461
7461
  ] }),
7462
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex flex-col gap-4 overflow-auto px-4 lg:px-6", children: [
7463
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-hidden rounded-lg border", children: /* @__PURE__ */ jsxRuntime.jsx(
7462
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex min-h-0 flex-1 flex-col gap-4 overflow-hidden px-4 lg:px-6", children: [
7463
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-x-auto overflow-y-hidden rounded-lg border [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
7464
7464
  core$1.DndContext,
7465
7465
  {
7466
7466
  collisionDetection: core$1.closestCenter,
@@ -8497,7 +8497,7 @@ var WorkflowRunObservabilityTracePanel = React33__namespace.memo(
8497
8497
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-right", children: "1m 30s" })
8498
8498
  ] })
8499
8499
  ] }),
8500
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-0 flex-1 overflow-auto p-2", children: spans.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-[#8a8c96] text-sm", children: "No spans yet." }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-2", children: spans.map((span, index) => {
8500
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-0 flex-1 overflow-auto p-2 [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden", children: spans.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-[#8a8c96] text-sm", children: "No spans yet." }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-2", children: spans.map((span, index) => {
8501
8501
  var _a2, _b2, _c2, _d2, _e2;
8502
8502
  const selected = selectedSpanId === span.id;
8503
8503
  const left = (_a2 = span.startPercent) != null ? _a2 : index * 10;
@@ -8535,7 +8535,7 @@ var WorkflowRunObservabilityTracePanel = React33__namespace.memo(
8535
8535
  );
8536
8536
  }) }) })
8537
8537
  ] }) }),
8538
- /* @__PURE__ */ jsxRuntime.jsx(TabsContent, { className: "min-h-0 flex-1 overflow-hidden", value: "events", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-full min-h-0 space-y-2 overflow-auto rounded-lg border border-[#2a2a2f] bg-[#07080b] p-3", children: events.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-[#8a8c96] text-sm", children: "No events yet." }) : events.map((event) => {
8538
+ /* @__PURE__ */ jsxRuntime.jsx(TabsContent, { className: "min-h-0 flex-1 overflow-hidden", value: "events", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-full min-h-0 space-y-2 overflow-auto rounded-lg border border-[#2a2a2f] bg-[#07080b] p-3 [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden", children: events.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-[#8a8c96] text-sm", children: "No events yet." }) : events.map((event) => {
8539
8539
  var _a2;
8540
8540
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-md border border-[#2a2a2f] bg-[#090a0f] p-2", children: [
8541
8541
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between gap-3", children: [
@@ -8545,14 +8545,14 @@ var WorkflowRunObservabilityTracePanel = React33__namespace.memo(
8545
8545
  event.description ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[#8a8c96] text-xs", children: event.description }) : null
8546
8546
  ] }, event.id);
8547
8547
  }) }) }),
8548
- /* @__PURE__ */ jsxRuntime.jsx(TabsContent, { className: "min-h-0 flex-1 overflow-hidden", value: "streams", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-full min-h-0 space-y-2 overflow-auto rounded-lg border border-[#2a2a2f] bg-[#07080b] p-3", children: streams.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-[#8a8c96] text-sm", children: "No streams yet." }) : streams.map((stream) => {
8548
+ /* @__PURE__ */ jsxRuntime.jsx(TabsContent, { className: "min-h-0 flex-1 overflow-hidden", value: "streams", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-full min-h-0 space-y-2 overflow-auto rounded-lg border border-[#2a2a2f] bg-[#07080b] p-3 [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden", children: streams.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-[#8a8c96] text-sm", children: "No streams yet." }) : streams.map((stream) => {
8549
8549
  var _a2;
8550
8550
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-md border border-[#2a2a2f] bg-[#090a0f] p-2", children: [
8551
8551
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between gap-3 text-xs", children: [
8552
8552
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-medium", children: stream.channel }),
8553
8553
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-[#8a8c96]", children: (_a2 = stream.timestamp) != null ? _a2 : "" })
8554
8554
  ] }),
8555
- /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "mt-1 overflow-auto font-mono text-xs text-[#cfd1d9]", children: stream.payload })
8555
+ /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "mt-1 overflow-auto font-mono text-xs text-[#cfd1d9] [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden", children: stream.payload })
8556
8556
  ] }, stream.id);
8557
8557
  }) }) })
8558
8558
  ] })
@@ -8599,7 +8599,7 @@ var WorkflowRunObservabilityDetailsPanel = React33__namespace.memo(
8599
8599
  )
8600
8600
  ] })
8601
8601
  ] }),
8602
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-3 min-h-0 flex-1 space-y-3 overflow-y-auto pr-1", children: [
8602
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-3 min-h-0 flex-1 space-y-3 overflow-y-auto pr-1 [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden", children: [
8603
8603
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3 text-xs", children: [
8604
8604
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
8605
8605
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-[#8a8c96]", children: "Span" }),
@@ -8645,15 +8645,15 @@ var WorkflowRunObservabilityDetailsPanel = React33__namespace.memo(
8645
8645
  ] }),
8646
8646
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2 pt-2", children: [
8647
8647
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-[#8a8c96] text-xs uppercase tracking-wide", children: "Arguments" }),
8648
- /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "max-h-24 overflow-auto rounded border border-[#2a2a2f] bg-[#090a0f] p-2 font-mono text-[11px] text-[#cfd1d9]", children: formatPayload((_j = selectedSpan.argumentsPayload) != null ? _j : run.argumentsPayload) })
8648
+ /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "max-h-24 overflow-auto rounded border border-[#2a2a2f] bg-[#090a0f] p-2 font-mono text-[11px] text-[#cfd1d9] [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden", children: formatPayload((_j = selectedSpan.argumentsPayload) != null ? _j : run.argumentsPayload) })
8649
8649
  ] }),
8650
8650
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
8651
8651
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-[#8a8c96] text-xs uppercase tracking-wide", children: "Input" }),
8652
- /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "max-h-24 overflow-auto rounded border border-[#2a2a2f] bg-[#090a0f] p-2 font-mono text-[11px] text-[#cfd1d9]", children: formatPayload((_k = selectedSpan.inputPayload) != null ? _k : run.inputPayload) })
8652
+ /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "max-h-24 overflow-auto rounded border border-[#2a2a2f] bg-[#090a0f] p-2 font-mono text-[11px] text-[#cfd1d9] [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden", children: formatPayload((_k = selectedSpan.inputPayload) != null ? _k : run.inputPayload) })
8653
8653
  ] }),
8654
8654
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
8655
8655
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-[#8a8c96] text-xs uppercase tracking-wide", children: "Output" }),
8656
- /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "max-h-24 overflow-auto rounded border border-[#2a2a2f] bg-[#090a0f] p-2 font-mono text-[11px] text-[#cfd1d9]", children: formatPayload((_l = selectedSpan.outputPayload) != null ? _l : run.outputPayload) })
8656
+ /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "max-h-24 overflow-auto rounded border border-[#2a2a2f] bg-[#090a0f] p-2 font-mono text-[11px] text-[#cfd1d9] [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden", children: formatPayload((_l = selectedSpan.outputPayload) != null ? _l : run.outputPayload) })
8657
8657
  ] })
8658
8658
  ] }),
8659
8659
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2 border-t border-[#23242a] pt-3", children: [
@@ -8662,7 +8662,7 @@ var WorkflowRunObservabilityDetailsPanel = React33__namespace.memo(
8662
8662
  events.length,
8663
8663
  ")"
8664
8664
  ] }),
8665
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-h-32 divide-y divide-[#23242a] overflow-auto rounded border border-[#2a2a2f] bg-[#090a0f]", children: events.slice(0, 3).map((event) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-2 py-1 text-xs", children: [
8665
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-h-32 divide-y divide-[#23242a] overflow-auto rounded border border-[#2a2a2f] bg-[#090a0f] [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden", children: events.slice(0, 3).map((event) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-2 py-1 text-xs", children: [
8666
8666
  /* @__PURE__ */ jsxRuntime.jsx("div", { children: event.title }),
8667
8667
  event.timestamp ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-[#8a8c96]", children: event.timestamp }) : null
8668
8668
  ] }, event.id)) })
@@ -9134,9 +9134,9 @@ var SectionLayout = React33__namespace.memo(
9134
9134
  "className"
9135
9135
  ]);
9136
9136
  const transformedSections = sections.map((section) => __spreadProps(__spreadValues({}, section), {
9137
- content: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "h-full min-h-0 flex flex-col", children: [
9137
+ content: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "h-full min-h-0 flex flex-col overflow-hidden", children: [
9138
9138
  section.header && /* @__PURE__ */ jsxRuntime.jsx(AppHeader, __spreadValues({}, section.header)),
9139
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-0 flex-1", children: section.content })
9139
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-0 flex-1 overflow-auto [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden", children: section.content })
9140
9140
  ] })
9141
9141
  }));
9142
9142
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -9703,7 +9703,7 @@ var PageLayout = React33__namespace.memo(
9703
9703
  /* @__PURE__ */ jsxRuntime.jsx(AppSidebar, __spreadValues({}, sidebar)),
9704
9704
  /* @__PURE__ */ jsxRuntime.jsxs(PageContainer, { className: `overflow-hidden ${className != null ? className : ""}`, children: [
9705
9705
  /* @__PURE__ */ jsxRuntime.jsx(AppHeader, __spreadValues({}, header)),
9706
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-0 flex-1 overflow-y-auto overflow-x-hidden", children: contentArea })
9706
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: `min-h-0 flex-1 overflow-x-hidden ${layoutSections ? "overflow-hidden" : "overflow-y-auto"}`, children: contentArea })
9707
9707
  ] })
9708
9708
  ]
9709
9709
  }
@@ -10294,7 +10294,7 @@ var FormReportsFeature = React33__namespace.memo(
10294
10294
  },
10295
10295
  [actionHandlers, fields]
10296
10296
  );
10297
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `flex flex-1 flex-col gap-4 py-4 md:gap-6 md:py-6 ${className != null ? className : ""}`, children: [
10297
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `flex min-h-0 flex-1 flex-col gap-4 overflow-hidden py-4 md:gap-6 md:py-6 ${className != null ? className : ""}`, children: [
10298
10298
  /* @__PURE__ */ jsxRuntime.jsx(
10299
10299
  FormReportsSection,
10300
10300
  {
@@ -10508,7 +10508,7 @@ function buildObservabilitySections({
10508
10508
  }
10509
10509
  return [
10510
10510
  __spreadProps(__spreadValues({}, traceSection), {
10511
- defaultSize: 70,
10511
+ defaultSize: 66.67,
10512
10512
  minSize: 55
10513
10513
  }),
10514
10514
  {
@@ -10524,7 +10524,7 @@ function buildObservabilitySections({
10524
10524
  spans
10525
10525
  }
10526
10526
  ),
10527
- defaultSize: 30,
10527
+ defaultSize: 33.33,
10528
10528
  minSize: 25
10529
10529
  }
10530
10530
  ];