@workflow/web-shared 5.0.0-beta.26 → 5.0.0-beta.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.
- package/dist/components/new-trace-viewer/components/detail-panel-width.d.ts +34 -0
- package/dist/components/new-trace-viewer/components/detail-panel-width.d.ts.map +1 -0
- package/dist/components/new-trace-viewer/components/detail-panel-width.js +67 -0
- package/dist/components/new-trace-viewer/components/detail-panel.d.ts +14 -0
- package/dist/components/new-trace-viewer/components/detail-panel.d.ts.map +1 -0
- package/dist/components/new-trace-viewer/components/detail-panel.js +122 -0
- package/dist/components/new-trace-viewer/components/draggable-border.d.ts +31 -0
- package/dist/components/new-trace-viewer/components/draggable-border.d.ts.map +1 -0
- package/dist/components/new-trace-viewer/components/draggable-border.js +140 -0
- package/dist/components/new-trace-viewer/components/event-list.d.ts +1 -1
- package/dist/components/new-trace-viewer/components/event-list.d.ts.map +1 -1
- package/dist/components/new-trace-viewer/components/event-list.js +3 -5
- package/dist/components/new-trace-viewer/components/middle-truncate/truncate.d.ts +1 -1
- package/dist/components/new-trace-viewer/components/middle-truncate/truncate.d.ts.map +1 -1
- package/dist/components/new-trace-viewer/components/middle-truncate/truncate.js +2 -2
- package/dist/components/new-trace-viewer/components/minimap.d.ts +14 -0
- package/dist/components/new-trace-viewer/components/minimap.d.ts.map +1 -0
- package/dist/components/new-trace-viewer/components/minimap.js +337 -0
- package/dist/components/new-trace-viewer/components/pane-constants.d.ts +14 -0
- package/dist/components/new-trace-viewer/components/pane-constants.d.ts.map +1 -0
- package/dist/components/new-trace-viewer/components/pane-constants.js +16 -0
- package/dist/components/new-trace-viewer/components/split-pane.d.ts +1 -4
- package/dist/components/new-trace-viewer/components/split-pane.d.ts.map +1 -1
- package/dist/components/new-trace-viewer/components/split-pane.js +18 -16
- package/dist/components/new-trace-viewer/components/timeline.d.ts +2 -2
- package/dist/components/new-trace-viewer/components/timeline.d.ts.map +1 -1
- package/dist/components/new-trace-viewer/components/timeline.js +5 -7
- package/dist/components/new-trace-viewer/components/trace-viewer-skeleton.d.ts.map +1 -1
- package/dist/components/new-trace-viewer/components/trace-viewer-skeleton.js +10 -3
- package/dist/components/new-trace-viewer/components/use-element-width.d.ts +8 -0
- package/dist/components/new-trace-viewer/components/use-element-width.d.ts.map +1 -0
- package/dist/components/new-trace-viewer/components/use-element-width.js +25 -0
- package/dist/components/new-trace-viewer/context.d.ts +2 -0
- package/dist/components/new-trace-viewer/context.d.ts.map +1 -1
- package/dist/components/new-trace-viewer/context.js +3 -2
- package/dist/components/new-trace-viewer/trace-viewer.d.ts.map +1 -1
- package/dist/components/new-trace-viewer/trace-viewer.js +53 -181
- package/dist/components/new-trace-viewer/utils.d.ts +21 -0
- package/dist/components/new-trace-viewer/utils.d.ts.map +1 -1
- package/dist/components/new-trace-viewer/utils.js +44 -3
- package/dist/components/sidebar/attribute-panel.d.ts.map +1 -1
- package/dist/components/sidebar/attribute-panel.js +38 -35
- package/dist/components/sidebar/attributes-block.d.ts +18 -7
- package/dist/components/sidebar/attributes-block.d.ts.map +1 -1
- package/dist/components/sidebar/attributes-block.js +76 -18
- package/dist/components/sidebar/events-list.d.ts +1 -1
- package/dist/components/sidebar/events-list.d.ts.map +1 -1
- package/dist/components/sidebar/events-list.js +9 -10
- package/dist/components/trace-viewer/components/map.d.ts +2 -2
- package/dist/components/trace-viewer/components/map.d.ts.map +1 -1
- package/dist/components/trace-viewer/components/node.d.ts +7 -7
- package/dist/components/trace-viewer/components/node.d.ts.map +1 -1
- package/dist/components/ui/collapsible.d.ts +46 -0
- package/dist/components/ui/collapsible.d.ts.map +1 -0
- package/dist/components/ui/collapsible.js +66 -0
- package/dist/components/ui/data-inspector.js +2 -7
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/lib/hydration.d.ts +12 -2
- package/dist/lib/hydration.d.ts.map +1 -1
- package/dist/lib/hydration.js +41 -18
- package/dist/lib/utils.d.ts +8 -5
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +13 -16
- package/package.json +6 -6
- package/src/components/new-trace-viewer/components/detail-panel-width.test.ts +123 -0
- package/src/components/new-trace-viewer/components/detail-panel-width.ts +76 -0
- package/src/components/new-trace-viewer/components/detail-panel.tsx +272 -0
- package/src/components/new-trace-viewer/components/draggable-border.tsx +216 -0
- package/src/components/new-trace-viewer/components/event-list.tsx +3 -5
- package/src/components/new-trace-viewer/components/middle-truncate/truncate.ts +1 -1
- package/src/components/new-trace-viewer/components/minimap.tsx +559 -0
- package/src/components/new-trace-viewer/components/pane-constants.ts +19 -0
- package/src/components/new-trace-viewer/components/split-pane.tsx +44 -55
- package/src/components/new-trace-viewer/components/timeline.tsx +3 -5
- package/src/components/new-trace-viewer/components/trace-viewer-skeleton.tsx +21 -1
- package/src/components/new-trace-viewer/components/use-element-width.ts +29 -0
- package/src/components/new-trace-viewer/context.tsx +4 -1
- package/src/components/new-trace-viewer/trace-viewer.tsx +93 -312
- package/src/components/new-trace-viewer/utils.test.ts +65 -0
- package/src/components/new-trace-viewer/utils.ts +76 -2
- package/src/components/sidebar/attribute-panel.tsx +106 -105
- package/src/components/sidebar/attributes-block.tsx +170 -50
- package/src/components/sidebar/events-list.tsx +107 -92
- package/src/components/ui/collapsible.tsx +219 -0
- package/src/index.ts +8 -7
- package/src/lib/hydration.ts +48 -25
- package/src/lib/utils.test.ts +33 -0
- package/src/lib/utils.ts +12 -16
- package/dist/components/sidebar/detail-card.d.ts +0 -13
- package/dist/components/sidebar/detail-card.d.ts.map +0 -1
- package/dist/components/sidebar/detail-card.js +0 -36
- package/src/components/sidebar/detail-card.tsx +0 -143
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
import { ChevronDown, ChevronRight } from 'lucide-react';
|
|
2
|
-
import { type ReactNode, useState } from 'react';
|
|
3
|
-
import { cn } from '../../lib/cn';
|
|
4
|
-
|
|
5
|
-
export function DetailCard({
|
|
6
|
-
summary,
|
|
7
|
-
children,
|
|
8
|
-
onToggle,
|
|
9
|
-
disabled = false,
|
|
10
|
-
defaultOpen = false,
|
|
11
|
-
variant = 'section',
|
|
12
|
-
trailing,
|
|
13
|
-
summaryClassName,
|
|
14
|
-
contentClassName,
|
|
15
|
-
}: {
|
|
16
|
-
summary: ReactNode;
|
|
17
|
-
children?: ReactNode;
|
|
18
|
-
onToggle?: (open: boolean) => void;
|
|
19
|
-
disabled?: boolean;
|
|
20
|
-
defaultOpen?: boolean;
|
|
21
|
-
variant?: 'section' | 'card';
|
|
22
|
-
trailing?: ReactNode;
|
|
23
|
-
summaryClassName?: string;
|
|
24
|
-
contentClassName?: string;
|
|
25
|
-
}) {
|
|
26
|
-
const [open, setOpen] = useState(defaultOpen);
|
|
27
|
-
|
|
28
|
-
const handleToggle = (e: React.SyntheticEvent<HTMLDetailsElement>) => {
|
|
29
|
-
// React surfaces `toggle` as a bubbling synthetic event even though the
|
|
30
|
-
// native event doesn't bubble. Without this guard, a nested <details>
|
|
31
|
-
// (e.g. an event card inside the Events section) collapsing would flip
|
|
32
|
-
// the outer DetailCard's state. Only react to direct toggles.
|
|
33
|
-
if (e.target !== e.currentTarget) return;
|
|
34
|
-
const next = e.currentTarget.open;
|
|
35
|
-
setOpen(next);
|
|
36
|
-
onToggle?.(next);
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
if (variant === 'card') {
|
|
40
|
-
if (disabled) {
|
|
41
|
-
return (
|
|
42
|
-
<div
|
|
43
|
-
className={cn(
|
|
44
|
-
'list-none px-3 py-4 bg-background-200 [&::-webkit-details-marker]:hidden',
|
|
45
|
-
summaryClassName
|
|
46
|
-
)}
|
|
47
|
-
style={{ cursor: 'not-allowed', opacity: 0.8 }}
|
|
48
|
-
>
|
|
49
|
-
{summary}
|
|
50
|
-
</div>
|
|
51
|
-
);
|
|
52
|
-
}
|
|
53
|
-
return (
|
|
54
|
-
<details
|
|
55
|
-
className="group/card last:border-b border-gray-alpha-400"
|
|
56
|
-
open={open}
|
|
57
|
-
onToggle={handleToggle}
|
|
58
|
-
>
|
|
59
|
-
<summary
|
|
60
|
-
className={cn(
|
|
61
|
-
'list-none cursor-pointer px-3 py-4 border-t border-gray-alpha-400 bg-background-200 hover:bg-gray-100 [&::-webkit-details-marker]:hidden',
|
|
62
|
-
summaryClassName
|
|
63
|
-
)}
|
|
64
|
-
>
|
|
65
|
-
<span className="flex items-center gap-1.5">
|
|
66
|
-
<ChevronRight
|
|
67
|
-
size={14}
|
|
68
|
-
className={cn(
|
|
69
|
-
'shrink-0 text-gray-700 group-hover/card:text-gray-1000',
|
|
70
|
-
open && 'rotate-90'
|
|
71
|
-
)}
|
|
72
|
-
/>
|
|
73
|
-
{summary}
|
|
74
|
-
</span>
|
|
75
|
-
</summary>
|
|
76
|
-
<div className={contentClassName}>{children}</div>
|
|
77
|
-
</details>
|
|
78
|
-
);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
// Shared height with the expandable summary row. Keeps the trailing /
|
|
82
|
-
// disabled / chevron variants visually identical in height regardless of
|
|
83
|
-
// what's in the trailing slot.
|
|
84
|
-
const rowClasses =
|
|
85
|
-
'flex h-9 items-center gap-2 px-2 -mx-2 text-heading-14 font-medium my-2';
|
|
86
|
-
|
|
87
|
-
if (trailing) {
|
|
88
|
-
return (
|
|
89
|
-
<section className="-mx-4 border-t px-4 border-gray-alpha-400">
|
|
90
|
-
<div className={cn(rowClasses, summaryClassName)}>
|
|
91
|
-
<div className="isolate relative shrink-0 w-3.5 h-3.5 text-gray-700">
|
|
92
|
-
<ChevronRight
|
|
93
|
-
size={14}
|
|
94
|
-
className="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2"
|
|
95
|
-
/>
|
|
96
|
-
</div>
|
|
97
|
-
<span className="min-w-0 flex-1">{summary}</span>
|
|
98
|
-
<div className="shrink-0 pr-1">{trailing}</div>
|
|
99
|
-
</div>
|
|
100
|
-
</section>
|
|
101
|
-
);
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
if (disabled) {
|
|
105
|
-
return (
|
|
106
|
-
<section className="-mx-4 border-t px-4 border-gray-alpha-400">
|
|
107
|
-
<div
|
|
108
|
-
className={cn(rowClasses, summaryClassName)}
|
|
109
|
-
style={{ color: 'var(--ds-gray-700)', cursor: 'not-allowed' }}
|
|
110
|
-
>
|
|
111
|
-
<span className="min-w-0 flex-1">{summary}</span>
|
|
112
|
-
</div>
|
|
113
|
-
</section>
|
|
114
|
-
);
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
return (
|
|
118
|
-
<section className="-mx-4 border-t px-4 border-gray-alpha-400">
|
|
119
|
-
<details className="group" open={open} onToggle={handleToggle}>
|
|
120
|
-
<summary
|
|
121
|
-
className={cn(
|
|
122
|
-
'group/trigger list-none cursor-pointer rounded hover:bg-gray-alpha-100 [&::-webkit-details-marker]:hidden',
|
|
123
|
-
rowClasses,
|
|
124
|
-
summaryClassName
|
|
125
|
-
)}
|
|
126
|
-
>
|
|
127
|
-
<div className="isolate relative shrink-0 text-gray-700 group-hover/trigger:text-gray-1000 w-3.5 h-3.5">
|
|
128
|
-
<ChevronRight
|
|
129
|
-
size={14}
|
|
130
|
-
className="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 opacity-100 group-open:opacity-0"
|
|
131
|
-
/>
|
|
132
|
-
<ChevronDown
|
|
133
|
-
size={14}
|
|
134
|
-
className="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 opacity-0 group-open:opacity-100"
|
|
135
|
-
/>
|
|
136
|
-
</div>
|
|
137
|
-
<span className="min-w-0 flex-1">{summary}</span>
|
|
138
|
-
</summary>
|
|
139
|
-
<div className={cn('mb-3', contentClassName)}>{children}</div>
|
|
140
|
-
</details>
|
|
141
|
-
</section>
|
|
142
|
-
);
|
|
143
|
-
}
|