@vuer-ai/vuer-uikit 0.0.98 → 0.0.100

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 (78) hide show
  1. package/dist/SyncScroll/SyncScroll.cjs +9 -9
  2. package/dist/SyncScroll/SyncScroll.mjs +2 -2
  3. package/dist/SyncScroll/index.cjs +9 -9
  4. package/dist/SyncScroll/index.mjs +2 -2
  5. package/dist/chunk-AIYM5PFP.cjs +66 -0
  6. package/dist/chunk-OWEYAVGT.mjs +62 -0
  7. package/dist/{chunk-7GWDO25E.cjs → chunk-XBTBTLID.cjs} +2 -2
  8. package/dist/{chunk-TTYSYGVE.mjs → chunk-XGXWOY3U.mjs} +2 -2
  9. package/dist/dial/DialPanel.cjs +23 -22
  10. package/dist/dial/DialPanel.mjs +22 -21
  11. package/dist/dial/index.cjs +39 -38
  12. package/dist/dial/index.mjs +22 -21
  13. package/dist/dial/wrapped-inputs/ControlledInputs.cjs +26 -25
  14. package/dist/dial/wrapped-inputs/ControlledInputs.mjs +22 -21
  15. package/dist/dial/wrapped-inputs/DialInputs.cjs +33 -32
  16. package/dist/dial/wrapped-inputs/DialInputs.mjs +22 -21
  17. package/dist/dial/wrapped-inputs/DialVectorInput.cjs +23 -22
  18. package/dist/dial/wrapped-inputs/DialVectorInput.mjs +22 -21
  19. package/dist/dial/wrapped-inputs/index.cjs +38 -37
  20. package/dist/dial/wrapped-inputs/index.mjs +22 -21
  21. package/dist/highlight-cursor/cursor-provider.cjs +3 -3
  22. package/dist/highlight-cursor/cursor-provider.mjs +2 -2
  23. package/dist/highlight-cursor/enhanced-components.cjs +1 -1
  24. package/dist/highlight-cursor/enhanced-components.mjs +1 -1
  25. package/dist/highlight-cursor/index.cjs +3 -3
  26. package/dist/highlight-cursor/index.mjs +2 -2
  27. package/dist/index.cjs +151 -138
  28. package/dist/index.css +7 -1
  29. package/dist/index.d.cts +1 -0
  30. package/dist/index.d.ts +1 -0
  31. package/dist/index.mjs +22 -21
  32. package/dist/ui/DialBadge.cjs +28 -0
  33. package/dist/ui/DialBadge.d.cts +33 -0
  34. package/dist/ui/DialBadge.d.ts +33 -0
  35. package/dist/ui/DialBadge.mjs +11 -0
  36. package/dist/ui/UIKitBadge.cjs +5 -5
  37. package/dist/ui/UIKitBadge.mjs +1 -1
  38. package/dist/ui/badge.d.cts +1 -1
  39. package/dist/ui/badge.d.ts +1 -1
  40. package/dist/ui/index.cjs +77 -64
  41. package/dist/ui/index.d.cts +1 -0
  42. package/dist/ui/index.d.ts +1 -0
  43. package/dist/ui/index.mjs +18 -17
  44. package/dist/ui/inputs/index.cjs +15 -15
  45. package/dist/ui/inputs/index.mjs +3 -3
  46. package/dist/ui/inputs/input.d.cts +1 -1
  47. package/dist/ui/inputs/input.d.ts +1 -1
  48. package/dist/ui/inputs/number-inputs/index.cjs +10 -10
  49. package/dist/ui/inputs/number-inputs/index.mjs +2 -2
  50. package/dist/ui/select.d.cts +1 -1
  51. package/dist/ui/select.d.ts +1 -1
  52. package/dist/ui/textarea.d.cts +1 -1
  53. package/dist/ui/textarea.d.ts +1 -1
  54. package/dist/ui/tree-view-legacy.cjs +8 -8
  55. package/dist/ui/tree-view-legacy.mjs +4 -4
  56. package/dist/ui/waterfall/index.cjs +6 -6
  57. package/dist/ui/waterfall/index.mjs +5 -5
  58. package/package.json +2 -7
  59. package/src/ui/DialBadge.tsx +97 -0
  60. package/src/ui/index.ts +1 -0
  61. package/cli/dial-cli.js +0 -833
  62. package/dist/chunk-4KWGGESI.cjs +0 -494
  63. package/dist/chunk-A5LCX2UQ.cjs +0 -208
  64. package/dist/chunk-BEJIZ56L.mjs +0 -300
  65. package/dist/chunk-C7VGRU3O.mjs +0 -283
  66. package/dist/chunk-O66RESRR.cjs +0 -285
  67. package/dist/chunk-VA3PEYFM.mjs +0 -489
  68. package/dist/chunk-VBBJSIY7.cjs +0 -308
  69. package/dist/chunk-WWGF6TBZ.mjs +0 -206
  70. package/dist/chunk-ZGN4UEJR.cjs +0 -679
  71. package/dist/chunk-ZQLRMOUW.mjs +0 -661
  72. package/src/cli/dial-cli.ts +0 -1133
  73. package/dist/{chunk-XMUP5MIM.mjs → chunk-G3EIVAVR.mjs} +0 -0
  74. package/dist/{chunk-7IS37C3P.cjs → chunk-K4I4YU6N.cjs} +1 -1
  75. package/dist/{chunk-OX2U5RAG.cjs → chunk-KFPS5CCR.cjs} +0 -0
  76. package/dist/{chunk-2OZK5DY5.mjs → chunk-KXKEZ3MH.mjs} +1 -1
  77. package/dist/{chunk-LJMNHTTG.cjs → chunk-OEI7NCF6.cjs} +4 -4
  78. package/dist/{chunk-W4JCKCW7.mjs → chunk-QHPFLC2O.mjs} +4 -4
@@ -1,300 +0,0 @@
1
- import { useSyncScroll, useScrollSlave, useSyncDrag } from './chunk-SAGQV2YZ.mjs';
2
- import { cn } from './chunk-HMN4IKTG.mjs';
3
- import { Slot } from '@radix-ui/react-slot';
4
- import { useState, useRef, useEffect } from 'react';
5
- import { jsx } from 'react/jsx-runtime';
6
-
7
- var SyncScroll = ({ children, className, asChild = false, ...props }) => {
8
- const Comp = asChild ? Slot : "div";
9
- return /* @__PURE__ */ jsx(Comp, { ref: useSyncScroll(), className: cn("overflow-y-auto", className), ...props, children });
10
- };
11
- var SyncScrollSlave = ({
12
- children,
13
- className,
14
- asChild = false,
15
- ...props
16
- }) => {
17
- const Comp = asChild ? Slot : "div";
18
- return /* @__PURE__ */ jsx(Comp, { ref: useScrollSlave(), className: cn("overflow-y-auto", className), ...props, children });
19
- };
20
- var SyncDrag = ({
21
- ref: extRef,
22
- children,
23
- className,
24
- asChild = false,
25
- ...props
26
- }) => {
27
- const ref = useSyncDrag({ ref: extRef, axis: "both" });
28
- const [isDragging, setIsDragging] = useState(false);
29
- const dragStartX = useRef(0);
30
- const dragStartY = useRef(0);
31
- const scrollStartLeft = useRef(0);
32
- const scrollStartTop = useRef(0);
33
- useEffect(() => {
34
- const element = ref.current;
35
- if (!element) return;
36
- const handleMouseDown = (e) => {
37
- setIsDragging(true);
38
- dragStartX.current = e.clientX;
39
- dragStartY.current = e.clientY;
40
- scrollStartLeft.current = element.scrollLeft;
41
- scrollStartTop.current = element.scrollTop;
42
- e.preventDefault();
43
- };
44
- const handleMouseMove = (e) => {
45
- if (!isDragging || !element) return;
46
- const deltaX = e.clientX - dragStartX.current;
47
- const deltaY = e.clientY - dragStartY.current;
48
- element.scrollLeft = scrollStartLeft.current - deltaX * 2;
49
- element.scrollTop = scrollStartTop.current - deltaY * 2;
50
- };
51
- const handleMouseUp = () => {
52
- setIsDragging(false);
53
- };
54
- element.addEventListener("mousedown", handleMouseDown);
55
- if (isDragging) {
56
- document.addEventListener("mousemove", handleMouseMove);
57
- document.addEventListener("mouseup", handleMouseUp);
58
- document.addEventListener("mouseleave", handleMouseUp);
59
- }
60
- return () => {
61
- element.removeEventListener("mousedown", handleMouseDown);
62
- document.removeEventListener("mousemove", handleMouseMove);
63
- document.removeEventListener("mouseup", handleMouseUp);
64
- document.removeEventListener("mouseleave", handleMouseUp);
65
- };
66
- }, [isDragging, ref]);
67
- const Comp = asChild ? Slot : "div";
68
- return /* @__PURE__ */ jsx(
69
- Comp,
70
- {
71
- ref,
72
- className: cn("cursor-grab overflow-auto", isDragging && "cursor-grabbing", className),
73
- style: { userSelect: isDragging ? "none" : "auto", ...props.style },
74
- ...props,
75
- children
76
- }
77
- );
78
- };
79
- var SyncDragX = ({ children, className, asChild = false, ...props }) => {
80
- const ref = useSyncDrag({ axis: "horizontal" });
81
- const [isDragging, setIsDragging] = useState(false);
82
- const dragStartX = useRef(0);
83
- const scrollStartLeft = useRef(0);
84
- useEffect(() => {
85
- const element = ref.current;
86
- if (!element) return;
87
- const handleMouseDown = (e) => {
88
- setIsDragging(true);
89
- dragStartX.current = e.clientX;
90
- scrollStartLeft.current = element.scrollLeft;
91
- e.preventDefault();
92
- };
93
- const handleMouseMove = (e) => {
94
- if (!isDragging || !element) return;
95
- const deltaX = e.clientX - dragStartX.current;
96
- element.scrollLeft = scrollStartLeft.current - deltaX * 2;
97
- };
98
- const handleMouseUp = () => {
99
- setIsDragging(false);
100
- };
101
- element.addEventListener("mousedown", handleMouseDown);
102
- if (isDragging) {
103
- document.addEventListener("mousemove", handleMouseMove);
104
- document.addEventListener("mouseup", handleMouseUp);
105
- document.addEventListener("mouseleave", handleMouseUp);
106
- }
107
- return () => {
108
- element.removeEventListener("mousedown", handleMouseDown);
109
- document.removeEventListener("mousemove", handleMouseMove);
110
- document.removeEventListener("mouseup", handleMouseUp);
111
- document.removeEventListener("mouseleave", handleMouseUp);
112
- };
113
- }, [isDragging, ref]);
114
- const Comp = asChild ? Slot : "div";
115
- return /* @__PURE__ */ jsx(
116
- Comp,
117
- {
118
- ref,
119
- className: cn("cursor-grab overflow-x-auto", isDragging ? "cursor-grabbing" : "", className),
120
- style: { userSelect: isDragging ? "none" : "auto", ...props.style },
121
- ...props,
122
- children
123
- }
124
- );
125
- };
126
- var SyncDragSlave = ({
127
- ref: extRef,
128
- children,
129
- className,
130
- asChild = false,
131
- ...props
132
- }) => {
133
- const ref = useScrollSlave({ ref: extRef, axis: "both" });
134
- const [isDragging, setIsDragging] = useState(false);
135
- const dragStartX = useRef(0);
136
- const dragStartY = useRef(0);
137
- const scrollStartLeft = useRef(0);
138
- const scrollStartTop = useRef(0);
139
- useEffect(() => {
140
- const element = ref.current;
141
- if (!element) return;
142
- const handleMouseDown = (e) => {
143
- setIsDragging(true);
144
- dragStartX.current = e.clientX;
145
- dragStartY.current = e.clientY;
146
- scrollStartLeft.current = element.scrollLeft;
147
- scrollStartTop.current = element.scrollTop;
148
- e.preventDefault();
149
- };
150
- const handleMouseMove = (e) => {
151
- if (!isDragging || !element) return;
152
- const deltaX = e.clientX - dragStartX.current;
153
- const deltaY = e.clientY - dragStartY.current;
154
- element.scrollLeft = scrollStartLeft.current - deltaX * 2;
155
- element.scrollTop = scrollStartTop.current - deltaY * 2;
156
- };
157
- const handleMouseUp = () => {
158
- setIsDragging(false);
159
- };
160
- element.addEventListener("mousedown", handleMouseDown);
161
- if (isDragging) {
162
- document.addEventListener("mousemove", handleMouseMove);
163
- document.addEventListener("mouseup", handleMouseUp);
164
- document.addEventListener("mouseleave", handleMouseUp);
165
- }
166
- return () => {
167
- element.removeEventListener("mousedown", handleMouseDown);
168
- document.removeEventListener("mousemove", handleMouseMove);
169
- document.removeEventListener("mouseup", handleMouseUp);
170
- document.removeEventListener("mouseleave", handleMouseUp);
171
- };
172
- }, [isDragging, ref]);
173
- const Comp = asChild ? Slot : "div";
174
- return /* @__PURE__ */ jsx(
175
- Comp,
176
- {
177
- ref,
178
- className: cn("cursor-grab overflow-auto", isDragging && "cursor-grabbing", className),
179
- style: { userSelect: isDragging ? "none" : "auto", ...props.style },
180
- ...props,
181
- children
182
- }
183
- );
184
- };
185
- var SyncDragSlaveX = ({
186
- ref: extRef,
187
- children,
188
- className,
189
- asChild = false,
190
- ...props
191
- }) => {
192
- const ref = useScrollSlave({ ref: extRef, axis: "horizontal" });
193
- const [isDragging, setIsDragging] = useState(false);
194
- const dragStartX = useRef(0);
195
- const scrollStartLeft = useRef(0);
196
- useEffect(() => {
197
- const element = ref.current;
198
- if (!element) return;
199
- const handleMouseDown = (e) => {
200
- setIsDragging(true);
201
- dragStartX.current = e.clientX;
202
- scrollStartLeft.current = element.scrollLeft;
203
- e.preventDefault();
204
- };
205
- const handleMouseMove = (e) => {
206
- if (!isDragging || !element) return;
207
- const deltaX = e.clientX - dragStartX.current;
208
- element.scrollLeft = scrollStartLeft.current - deltaX * 2;
209
- };
210
- const handleMouseUp = () => {
211
- setIsDragging(false);
212
- };
213
- element.addEventListener("mousedown", handleMouseDown);
214
- if (isDragging) {
215
- document.addEventListener("mousemove", handleMouseMove);
216
- document.addEventListener("mouseup", handleMouseUp);
217
- document.addEventListener("mouseleave", handleMouseUp);
218
- }
219
- return () => {
220
- element.removeEventListener("mousedown", handleMouseDown);
221
- document.removeEventListener("mousemove", handleMouseMove);
222
- document.removeEventListener("mouseup", handleMouseUp);
223
- document.removeEventListener("mouseleave", handleMouseUp);
224
- };
225
- }, [isDragging, ref]);
226
- const Comp = asChild ? Slot : "div";
227
- return /* @__PURE__ */ jsx(
228
- Comp,
229
- {
230
- ref,
231
- className: cn(
232
- "cursor-grab overflow-x-auto overflow-y-hidden",
233
- isDragging && "cursor-grabbing",
234
- className
235
- ),
236
- style: { userSelect: isDragging ? "none" : "auto", ...props.style },
237
- ...props,
238
- children
239
- }
240
- );
241
- };
242
- var SyncDragY = ({
243
- ref: extRef,
244
- children,
245
- className,
246
- asChild = false,
247
- ...props
248
- }) => {
249
- const ref = useSyncDrag({ ref: extRef, axis: "vertical" });
250
- const [isDragging, setIsDragging] = useState(false);
251
- const dragStartY = useRef(0);
252
- const scrollStartTop = useRef(0);
253
- useEffect(() => {
254
- const element = ref.current;
255
- if (!element) return;
256
- const handleMouseDown = (e) => {
257
- setIsDragging(true);
258
- dragStartY.current = e.clientY;
259
- scrollStartTop.current = element.scrollTop;
260
- e.preventDefault();
261
- };
262
- const handleMouseMove = (e) => {
263
- if (!isDragging || !element) return;
264
- const deltaY = e.clientY - dragStartY.current;
265
- element.scrollTop = scrollStartTop.current - deltaY * 2;
266
- };
267
- const handleMouseUp = () => {
268
- setIsDragging(false);
269
- };
270
- element.addEventListener("mousedown", handleMouseDown);
271
- if (isDragging) {
272
- document.addEventListener("mousemove", handleMouseMove);
273
- document.addEventListener("mouseup", handleMouseUp);
274
- document.addEventListener("mouseleave", handleMouseUp);
275
- }
276
- return () => {
277
- element.removeEventListener("mousedown", handleMouseDown);
278
- document.removeEventListener("mousemove", handleMouseMove);
279
- document.removeEventListener("mouseup", handleMouseUp);
280
- document.removeEventListener("mouseleave", handleMouseUp);
281
- };
282
- }, [isDragging, ref]);
283
- const Comp = asChild ? Slot : "div";
284
- return /* @__PURE__ */ jsx(
285
- Comp,
286
- {
287
- ref,
288
- className: cn(
289
- "cursor-grab overflow-x-hidden overflow-y-auto",
290
- isDragging && "cursor-grabbing",
291
- className
292
- ),
293
- style: { userSelect: isDragging ? "none" : "auto", ...props.style },
294
- ...props,
295
- children
296
- }
297
- );
298
- };
299
-
300
- export { SyncDrag, SyncDragSlave, SyncDragSlaveX, SyncDragX, SyncDragY, SyncScroll, SyncScrollSlave };
@@ -1,283 +0,0 @@
1
- import { useTimelineState } from './chunk-JWKOW2OV.mjs';
2
- import { useViewport } from './chunk-VPQ5SSY3.mjs';
3
- import { TimeRuleEventDot } from './chunk-OC4HRPZU.mjs';
4
- import { TimelineEvent } from './chunk-N6DSPSMM.mjs';
5
- import { TimelineProcessBar } from './chunk-CO6EASQO.mjs';
6
- import { LeftWedge, RightWedge } from './chunk-IR334P7F.mjs';
7
- import { WheelZoomContext } from './chunk-CIPI2V54.mjs';
8
- import { TreeSearchBar } from './chunk-73VF2W3D.mjs';
9
- import { TreeView } from './chunk-VQPJ7TLB.mjs';
10
- import { useTreeState, useTreeSearch } from './chunk-PC5DHSC4.mjs';
11
- import { CursorOverlay } from './chunk-SA5WKLYB.mjs';
12
- import { NavigationControls } from './chunk-5EXV5EWF.mjs';
13
- import { rightWedgeClasses, leftWedgeClasses, TOTAL_DURATION } from './chunk-4U232QAX.mjs';
14
- import { Tick } from './chunk-K22BEXUA.mjs';
15
- import { TooltipProvider } from './chunk-ZNPI2TYG.mjs';
16
- import { SyncScroll, SyncDragY, SyncScrollSlave } from './chunk-BEJIZ56L.mjs';
17
- import { SyncScrollProvider } from './chunk-SAGQV2YZ.mjs';
18
- import { cn } from './chunk-HMN4IKTG.mjs';
19
- import { useState, useEffect } from 'react';
20
- import { jsx, jsxs } from 'react/jsx-runtime';
21
-
22
- function Waterfall({
23
- logData,
24
- temporalCursor,
25
- onTemporalCursorChange,
26
- getIcon,
27
- panelWidth = 300,
28
- className,
29
- hoveredId: externalHoveredId,
30
- onItemHover: externalOnItemHover,
31
- minWindow = 0.01,
32
- maxWindow,
33
- zoomFactor = 1.1,
34
- enabled = true,
35
- children
36
- }) {
37
- const [visibleLogData, setVisibleLogData] = useState([]);
38
- const [temporalMarkers, setTemporalMarkers] = useState([]);
39
- const [searchQuery, setSearchQuery] = useState("");
40
- const [isCaseSensitive, setIsCaseSensitive] = useState(false);
41
- const [isRegex, setIsRegex] = useState(false);
42
- const internalTimelineState = useTimelineState(logData);
43
- const hoveredId = externalHoveredId ?? internalTimelineState.hoveredId;
44
- const setHoveredId = externalOnItemHover ?? internalTimelineState.setHoveredId;
45
- const { visibleData, expandedItems, toggleItem, hasDescendants, dataWithMeta } = useTreeState({
46
- data: logData,
47
- defaultExpanded: true
48
- });
49
- const { filteredData, searchResultsCount, isRegexValid, renderLabel, hasActiveSearch } = useTreeSearch({
50
- data: logData,
51
- searchQuery,
52
- isCaseSensitive,
53
- isRegex
54
- });
55
- useEffect(() => {
56
- const dataToUse = hasActiveSearch ? dataWithMeta.filter((item) => filteredData.some((f) => f.id === item.id)) : visibleData;
57
- setVisibleLogData(dataToUse);
58
- }, [filteredData, visibleData, dataWithMeta, hasActiveSearch]);
59
- const {
60
- viewStart,
61
- viewDuration,
62
- timelineContainerRef,
63
- timeToPercent,
64
- ticks,
65
- eventDots,
66
- handlePan,
67
- handleZoomDragStart,
68
- setViewStart,
69
- setViewDuration,
70
- cursorVisible,
71
- cursorPosition,
72
- cursorLabel,
73
- showMagnet
74
- } = useViewport({
75
- visibleLogData,
76
- onTemporalCursorChange,
77
- temporalCursor
78
- });
79
- return /* @__PURE__ */ jsx(TooltipProvider, { children: /* @__PURE__ */ jsx(SyncScrollProvider, { children: /* @__PURE__ */ jsx(
80
- "div",
81
- {
82
- className: cn(
83
- "bg-bg-primary text-text-primary rounded-uk-md border-line-primary/50",
84
- "mx-auto flex w-full flex-col overflow-hidden border font-sans",
85
- "shadow-[0_4px_16px_0_var(--color-shadow-secondary)]",
86
- className
87
- ),
88
- children: /* @__PURE__ */ jsxs("div", { className: "relative flex h-full flex-row items-stretch", children: [
89
- /* @__PURE__ */ jsxs(
90
- "div",
91
- {
92
- className: "border-line-primary/50 relative flex h-full flex-none flex-col border-r",
93
- style: { width: panelWidth },
94
- children: [
95
- /* @__PURE__ */ jsx(
96
- TreeSearchBar,
97
- {
98
- className: "p-1",
99
- searchQuery,
100
- setSearchQuery,
101
- isCaseSensitive,
102
- setIsCaseSensitive,
103
- isRegex,
104
- setIsRegex,
105
- isRegexValid,
106
- searchResultsCount
107
- }
108
- ),
109
- /* @__PURE__ */ jsx(SyncScroll, { className: "flex-1 overflow-y-auto", children: /* @__PURE__ */ jsx(
110
- TreeView,
111
- {
112
- data: hasActiveSearch ? dataWithMeta.filter((item) => filteredData.some((f) => f.id === item.id)) : visibleData,
113
- getIcon,
114
- expandedItems,
115
- onToggleItem: toggleItem,
116
- onItemHover: setHoveredId,
117
- hoveredId,
118
- hasDescendants,
119
- renderLabel
120
- }
121
- ) })
122
- ]
123
- }
124
- ),
125
- /* @__PURE__ */ jsxs(
126
- "div",
127
- {
128
- ref: timelineContainerRef,
129
- className: "overflow-y-none scrollbar-hide relative flex h-full w-full flex-auto cursor-crosshair flex-col overflow-x-hidden pl-px active:cursor-grabbing",
130
- children: [
131
- /* @__PURE__ */ jsx("div", { className: "bg-bg-primary sticky top-0", children: /* @__PURE__ */ jsxs("div", { className: "border-line-primary/50 relative h-8 border-b", children: [
132
- ticks.map((marker, ind) => /* @__PURE__ */ jsx(
133
- Tick,
134
- {
135
- time: marker.time,
136
- label: marker.label,
137
- timeToPercent,
138
- zIndex: ind < ticks.length - 1 ? 10 : 0
139
- },
140
- marker.time
141
- )),
142
- eventDots.map(({ time }, tickIndex) => /* @__PURE__ */ jsx(
143
- TimeRuleEventDot,
144
- {
145
- percent: timeToPercent(time)
146
- },
147
- `snap-${time}-${tickIndex}`
148
- ))
149
- ] }) }),
150
- /* @__PURE__ */ jsxs(
151
- WheelZoomContext,
152
- {
153
- className: "scrollbar-hide relative h-full max-h-full overflow-auto",
154
- viewStart,
155
- viewDuration,
156
- onViewStartChange: setViewStart,
157
- onWindowChange: setViewDuration,
158
- minWindow,
159
- maxWindow: maxWindow ?? TOTAL_DURATION * 10,
160
- zoomFactor,
161
- enabled,
162
- children: [
163
- /* @__PURE__ */ jsx(SyncDragY, { className: "scrollbar-hide hide-scrollbar relative h-full w-full", children: visibleLogData.map(
164
- (item, index) => item.time === void 0 ? (
165
- // Render TimelineProcessBar for duration events
166
- /* @__PURE__ */ jsx(
167
- TimelineProcessBar,
168
- {
169
- index,
170
- item,
171
- isHovered: hoveredId === item.id,
172
- onMouseEnter: () => setHoveredId(item.id),
173
- onMouseLeave: () => setHoveredId(null),
174
- onClick: (time) => {
175
- setTemporalMarkers((prev) => [...prev, time]);
176
- },
177
- viewStart,
178
- viewWindow: viewDuration,
179
- timeToPercent
180
- },
181
- item.id
182
- )
183
- ) : (
184
- // Render TimelineEvent for instant events (with time property)
185
- /* @__PURE__ */ jsx(
186
- TimelineEvent,
187
- {
188
- item,
189
- isHovered: hoveredId === item.id,
190
- onMouseEnter: () => setHoveredId(item.id),
191
- onMouseLeave: () => setHoveredId(null),
192
- onClick: (time) => {
193
- setTemporalMarkers((prev) => [...prev, time]);
194
- },
195
- timeToPercent,
196
- index
197
- },
198
- item.id
199
- )
200
- )
201
- ) }),
202
- /* @__PURE__ */ jsx(SyncScrollSlave, { className: "scrollbar-hide pointer-events-none absolute top-0 left-0 z-10 h-full w-2", children: visibleLogData.map((item, index) => /* @__PURE__ */ jsx(
203
- LeftWedge,
204
- {
205
- item,
206
- classes: rightWedgeClasses,
207
- viewStart,
208
- index
209
- },
210
- `left-wedge-${item.id}`
211
- )) }),
212
- /* @__PURE__ */ jsx(SyncScrollSlave, { className: "scrollbar-hide pointer-events-none absolute top-0 right-0 z-10 h-full w-2", children: visibleLogData.map((item, index) => /* @__PURE__ */ jsx(
213
- RightWedge,
214
- {
215
- item,
216
- classes: leftWedgeClasses,
217
- viewEnd: viewStart + viewDuration,
218
- index
219
- },
220
- `right-wedge-${item.id}`
221
- )) }),
222
- children,
223
- /* @__PURE__ */ jsx("div", { className: "absolute bottom-1 left-1/2 -translate-x-1/2 justify-center pb-4", children: /* @__PURE__ */ jsx(
224
- NavigationControls,
225
- {
226
- viewDuration,
227
- handlePan,
228
- handleZoomDragStart
229
- }
230
- ) })
231
- ]
232
- }
233
- ),
234
- temporalMarkers.map((time, index) => /* @__PURE__ */ jsxs(
235
- "div",
236
- {
237
- className: "pointer-events-none absolute top-0 h-8 w-20 cursor-pointer",
238
- style: {
239
- zIndex: 110,
240
- left: `calc(${timeToPercent(time)}% - 2.5rem)`
241
- },
242
- onClick: () => {
243
- setTemporalMarkers((prev) => prev.filter((_, i) => i !== index));
244
- },
245
- title: "Click to remove marker",
246
- children: [
247
- /* @__PURE__ */ jsx("div", { className: "pointer-events-auto relative h-full w-full" }),
248
- /* @__PURE__ */ jsx(
249
- CursorOverlay,
250
- {
251
- left: 50,
252
- label: `T${index + 1}`,
253
- color: "#3b82f6",
254
- showReadout: true,
255
- variant: "static",
256
- zIndex: 110
257
- }
258
- )
259
- ]
260
- },
261
- `marker-${time}-${index}`
262
- )),
263
- cursorVisible && /* @__PURE__ */ jsx(
264
- CursorOverlay,
265
- {
266
- left: cursorPosition,
267
- label: cursorLabel,
268
- color: "#ef4444",
269
- showReadout: true,
270
- showMagnet,
271
- className: "transition-opacity duration-150",
272
- zIndex: 100
273
- }
274
- )
275
- ]
276
- }
277
- )
278
- ] })
279
- }
280
- ) }) });
281
- }
282
-
283
- export { Waterfall };