@turingfocus/chat-ui-antd 0.1.0 → 0.3.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 (42) hide show
  1. package/dist/chat-composer.d.ts +7 -1
  2. package/dist/chat-composer.d.ts.map +1 -1
  3. package/dist/chat-composer.js +38 -3
  4. package/dist/chat-composer.js.map +1 -1
  5. package/dist/chat-conversation-view.d.ts +19 -2
  6. package/dist/chat-conversation-view.d.ts.map +1 -1
  7. package/dist/chat-conversation-view.js +172 -5
  8. package/dist/chat-conversation-view.js.map +1 -1
  9. package/dist/chat-event-detail.d.ts +23 -0
  10. package/dist/chat-event-detail.d.ts.map +1 -0
  11. package/dist/chat-event-detail.js +15 -0
  12. package/dist/chat-event-detail.js.map +1 -0
  13. package/dist/chat-run-status.d.ts +2 -1
  14. package/dist/chat-run-status.d.ts.map +1 -1
  15. package/dist/chat-run-status.js +2 -2
  16. package/dist/chat-run-status.js.map +1 -1
  17. package/dist/chat-timeline.d.ts +4 -1
  18. package/dist/chat-timeline.d.ts.map +1 -1
  19. package/dist/chat-timeline.js +103 -3
  20. package/dist/chat-timeline.js.map +1 -1
  21. package/dist/event-detail-split-layout.d.ts +20 -0
  22. package/dist/event-detail-split-layout.d.ts.map +1 -0
  23. package/dist/event-detail-split-layout.js +185 -0
  24. package/dist/event-detail-split-layout.js.map +1 -0
  25. package/dist/event-renderers.d.ts +7 -0
  26. package/dist/event-renderers.d.ts.map +1 -0
  27. package/dist/event-renderers.js +138 -0
  28. package/dist/event-renderers.js.map +1 -0
  29. package/dist/index.d.ts +3 -2
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +2 -1
  32. package/dist/index.js.map +1 -1
  33. package/dist/labels.d.ts.map +1 -1
  34. package/dist/labels.js +9 -0
  35. package/dist/labels.js.map +1 -1
  36. package/dist/renderer-registry.d.ts +6 -1
  37. package/dist/renderer-registry.d.ts.map +1 -1
  38. package/dist/renderer-registry.js +11 -95
  39. package/dist/renderer-registry.js.map +1 -1
  40. package/dist/types.d.ts +10 -0
  41. package/dist/types.d.ts.map +1 -1
  42. package/package.json +3 -3
@@ -3,12 +3,48 @@ import { Button, Empty, Typography, theme } from "antd";
3
3
  import { memo, useCallback, useEffect, useMemo, useRef, useState, } from "react";
4
4
  import { Virtuoso } from "react-virtuoso";
5
5
  import { getTimelineItemKey, } from "@turingfocus/chat-protocol";
6
+ import { isChatEventItem } from "./chat-event-detail.js";
6
7
  import { resolveChatUiLabels } from "./labels.js";
7
8
  import { ChatTimelineItem, createChatRendererRegistry, formatChatTimestampUtc, } from "./renderer-registry.js";
8
9
  import { advanceTimelineTailState, createTimelineTailState, } from "./timeline-tail-tracker.js";
9
10
  const MemoizedTimelineItem = memo(ChatTimelineItem);
10
11
  const followNewOutput = (atBottom) => atBottom ? "auto" : false;
11
- export const ChatTimeline = ({ "aria-label": ariaLabel, className, conversationId, formatTimestamp = formatChatTimestampUtc, items, labels: labelOverrides, onRendererError, renderers, style, }) => {
12
+ const INTERACTIVE_EVENT_TARGET_SELECTOR = [
13
+ "a[href]",
14
+ "button",
15
+ "input",
16
+ "label",
17
+ "select",
18
+ "summary",
19
+ "textarea",
20
+ '[contenteditable]:not([contenteditable="false"])',
21
+ "[data-chat-event-interactive]",
22
+ '[role="button"]',
23
+ '[role="checkbox"]',
24
+ '[role="combobox"]',
25
+ '[role="gridcell"]',
26
+ '[role="link"]',
27
+ '[role="listbox"]',
28
+ '[role="menuitem"]',
29
+ '[role="menuitemcheckbox"]',
30
+ '[role="menuitemradio"]',
31
+ '[role="option"]',
32
+ '[role="radio"]',
33
+ '[role="searchbox"]',
34
+ '[role="slider"]',
35
+ '[role="spinbutton"]',
36
+ '[role="switch"]',
37
+ '[role="tab"]',
38
+ '[role="textbox"]',
39
+ '[role="treeitem"]',
40
+ ].join(", ");
41
+ const isInteractiveEventTarget = (target, row) => {
42
+ if (!(target instanceof Element) || target === row)
43
+ return false;
44
+ const interactiveTarget = target.closest(INTERACTIVE_EVENT_TARGET_SELECTOR);
45
+ return interactiveTarget !== null && row.contains(interactiveTarget);
46
+ };
47
+ export const ChatTimeline = ({ "aria-label": ariaLabel, className, conversationId, formatTimestamp = formatChatTimestampUtc, items, labels: labelOverrides, onEventSelect, onRendererError, renderers, selectedEventId, style, }) => {
12
48
  const { token } = theme.useToken();
13
49
  const labels = resolveChatUiLabels(labelOverrides);
14
50
  const registry = useMemo(() => createChatRendererRegistry(renderers), [renderers]);
@@ -44,10 +80,72 @@ export const ChatTimeline = ({ "aria-label": ariaLabel, className, conversationI
44
80
  });
45
81
  setNewItemCount(0);
46
82
  }, [items.length]);
47
- const renderItem = useCallback((_index, item) => (_jsx("div", { role: "article", style: { padding: `${token.paddingXXS}px ${token.paddingSM}px` }, children: _jsx(MemoizedTimelineItem, { formatTimestamp: formatTimestamp, item: item, onRendererError: onRendererError, registry: registry }) })), [
83
+ const renderItem = useCallback((_index, item) => {
84
+ if (item === undefined)
85
+ return _jsx("div", { "aria-hidden": "true" });
86
+ const selectable = isChatEventItem(item) && onEventSelect !== undefined;
87
+ const selected = isChatEventItem(item) && item.id === selectedEventId;
88
+ const select = (trigger) => {
89
+ if (!isChatEventItem(item))
90
+ return;
91
+ onEventSelect?.(item, trigger);
92
+ };
93
+ const handleClick = (event) => {
94
+ if (isInteractiveEventTarget(event.target, event.currentTarget))
95
+ return;
96
+ const trigger = event.currentTarget.querySelector("[data-chat-event-trigger]");
97
+ if (trigger !== null)
98
+ select(trigger);
99
+ };
100
+ const handleKeyDown = (event) => {
101
+ if (event.key !== "Enter" && event.key !== " ")
102
+ return;
103
+ event.preventDefault();
104
+ select(event.currentTarget);
105
+ };
106
+ const selectionLabel = isChatEventItem(item)
107
+ ? `${labels.openEventDetail}: ${item.kind === "unknown-event" ? item.originalType : item.eventType}`
108
+ : labels.openEventDetail;
109
+ return (_jsxs("div", { ...(selectable
110
+ ? {
111
+ "aria-label": selectionLabel,
112
+ onClick: handleClick,
113
+ role: "group",
114
+ }
115
+ : { role: "article" }), style: {
116
+ alignItems: "stretch",
117
+ cursor: selectable ? "pointer" : undefined,
118
+ display: "flex",
119
+ gap: selectable ? token.marginXXS : undefined,
120
+ outlineOffset: 2,
121
+ padding: `${token.paddingXXS}px ${token.paddingSM}px`,
122
+ }, children: [selectable ? (_jsx("button", { "aria-label": selectionLabel, "aria-pressed": selected, "data-chat-event-trigger": item.id, onClick: (event) => {
123
+ event.stopPropagation();
124
+ select(event.currentTarget);
125
+ }, onKeyDown: handleKeyDown, style: {
126
+ background: selected
127
+ ? token.colorPrimaryBg
128
+ : token.colorBgContainer,
129
+ border: `1px solid ${selected ? token.colorPrimary : token.colorBorderSecondary}`,
130
+ borderRadius: token.borderRadius,
131
+ color: token.colorPrimary,
132
+ cursor: "pointer",
133
+ minWidth: 28,
134
+ padding: 0,
135
+ }, title: selectionLabel, type: "button", children: _jsx("span", { "aria-hidden": "true", children: "\u203A" }) })) : null, _jsx("div", { style: { flex: 1, minWidth: 0 }, children: _jsx(MemoizedTimelineItem, { displayMode: "timeline", formatTimestamp: formatTimestamp, item: item, onRendererError: onRendererError, registry: registry, selected: selected }) })] }));
136
+ }, [
48
137
  formatTimestamp,
138
+ labels.openEventDetail,
139
+ onEventSelect,
49
140
  onRendererError,
50
141
  registry,
142
+ selectedEventId,
143
+ token.borderRadius,
144
+ token.colorBgContainer,
145
+ token.colorBorderSecondary,
146
+ token.colorPrimary,
147
+ token.colorPrimaryBg,
148
+ token.marginXXS,
51
149
  token.paddingSM,
52
150
  token.paddingXXS,
53
151
  ]);
@@ -67,7 +165,9 @@ export const ChatTimeline = ({ "aria-label": ariaLabel, className, conversationI
67
165
  overflow: "hidden",
68
166
  position: "relative",
69
167
  ...style,
70
- }, children: [_jsx(Virtuoso, { ref: virtuosoRef, "aria-label": ariaLabel ?? labels.timelineLabel, atBottomStateChange: handleAtBottomChange, atBottomThreshold: 150, computeItemKey: (_index, item) => getTimelineItemKey(item), data: items, followOutput: followNewOutput, increaseViewportBy: { bottom: 400, top: 200 }, initialItemCount: Math.min(items.length, 20), initialTopMostItemIndex: Math.max(0, items.length - Math.min(items.length, 20)), itemContent: renderItem, overscan: { main: 300, reverse: 200 }, role: "log", style: { height: "100%" } }, conversationId), newItemCount === 0 ? null : (_jsx(Button, { onClick: jumpToLatest, size: "small", style: {
168
+ }, children: [_jsx(Virtuoso, { ref: virtuosoRef, "aria-label": ariaLabel ?? labels.timelineLabel, atBottomStateChange: handleAtBottomChange, atBottomThreshold: 150, computeItemKey: (index, item) => item === undefined
169
+ ? `timeline:${conversationId}:pending:${index}`
170
+ : getTimelineItemKey(item), data: items, followOutput: followNewOutput, increaseViewportBy: { bottom: 400, top: 200 }, initialItemCount: Math.min(items.length, 20), initialTopMostItemIndex: Math.max(0, items.length - Math.min(items.length, 20)), itemContent: renderItem, overscan: { main: 300, reverse: 200 }, role: "log", style: { height: "100%" } }, conversationId), newItemCount === 0 ? null : (_jsx(Button, { onClick: jumpToLatest, size: "small", style: {
71
171
  bottom: token.marginSM,
72
172
  boxShadow: token.boxShadowSecondary,
73
173
  left: "50%",
@@ -1 +1 @@
1
- {"version":3,"file":"chat-timeline.js","sourceRoot":"","sources":["../src/chat-timeline.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-timeline.js","sourceRoot":"","sources":["../src/chat-timeline.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { type ReactNode } from "react";
2
+ export declare const DEFAULT_EVENT_DETAIL_SPLIT_RATIO = 0.56;
3
+ export declare const MIN_EVENT_DETAIL_SPLIT_RATIO = 0.2;
4
+ export declare const MAX_EVENT_DETAIL_SPLIT_RATIO = 0.8;
5
+ export declare const normalizeEventDetailSplitRatio: (value: number | undefined, fallback?: number) => number;
6
+ export interface EventDetailSplitLayoutProps {
7
+ readonly ariaLabel: string;
8
+ readonly detail: ReactNode;
9
+ readonly onRatioChange?: ((ratio: number) => void) | undefined;
10
+ readonly ratio: number;
11
+ readonly resizable?: boolean | undefined;
12
+ readonly split: boolean;
13
+ readonly timeline: ReactNode;
14
+ }
15
+ /**
16
+ * Internal split layout. Pointer movement remains local so resizing does not
17
+ * force the conversation view or its virtualized timeline to rerender.
18
+ */
19
+ export declare const EventDetailSplitLayout: ({ ariaLabel, detail, onRatioChange, ratio, resizable, split, timeline, }: EventDetailSplitLayoutProps) => import("react").JSX.Element;
20
+ //# sourceMappingURL=event-detail-split-layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-detail-split-layout.d.ts","sourceRoot":"","sources":["../src/event-detail-split-layout.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,eAAO,MAAM,gCAAgC,OAAO,CAAC;AACrD,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAChD,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAKhD,eAAO,MAAM,8BAA8B,GACzC,OAAO,MAAM,GAAG,SAAS,EACzB,iBAA2C,KAC1C,MAgBF,CAAC;AAQF,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC/D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;CAC9B;AAaD;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GAAI,0EAQpC,2BAA2B,gCA6O7B,CAAC"}
@@ -0,0 +1,185 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useCallback, useEffect, useRef, useState, } from "react";
3
+ import { theme } from "antd";
4
+ export const DEFAULT_EVENT_DETAIL_SPLIT_RATIO = 0.56;
5
+ export const MIN_EVENT_DETAIL_SPLIT_RATIO = 0.2;
6
+ export const MAX_EVENT_DETAIL_SPLIT_RATIO = 0.8;
7
+ const EVENT_DETAIL_SPLIT_KEYBOARD_STEP = 0.02;
8
+ const EVENT_DETAIL_SPLIT_RATIO_PRECISION = 10_000;
9
+ export const normalizeEventDetailSplitRatio = (value, fallback = DEFAULT_EVENT_DETAIL_SPLIT_RATIO) => {
10
+ const finiteFallback = Number.isFinite(fallback)
11
+ ? fallback
12
+ : DEFAULT_EVENT_DETAIL_SPLIT_RATIO;
13
+ const candidate = typeof value === "number" && Number.isFinite(value)
14
+ ? value
15
+ : finiteFallback;
16
+ return (Math.round(Math.min(MAX_EVENT_DETAIL_SPLIT_RATIO, Math.max(MIN_EVENT_DETAIL_SPLIT_RATIO, candidate)) * EVENT_DETAIL_SPLIT_RATIO_PRECISION) / EVENT_DETAIL_SPLIT_RATIO_PRECISION);
17
+ };
18
+ const ratioFromClientX = (clientX, resize) => {
19
+ const offset = resize.direction === "rtl"
20
+ ? resize.rect.right - clientX
21
+ : clientX - resize.rect.left;
22
+ return normalizeEventDetailSplitRatio(offset / resize.rect.width);
23
+ };
24
+ /**
25
+ * Internal split layout. Pointer movement remains local so resizing does not
26
+ * force the conversation view or its virtualized timeline to rerender.
27
+ */
28
+ export const EventDetailSplitLayout = ({ ariaLabel, detail, onRatioChange, ratio, resizable = true, split, timeline, }) => {
29
+ const { token } = theme.useToken();
30
+ const layoutRef = useRef(null);
31
+ const activePointerRef = useRef(null);
32
+ const [dragRatio, setDragRatio] = useState(null);
33
+ const [focused, setFocused] = useState(false);
34
+ const [dragging, setDragging] = useState(false);
35
+ const committedRatio = normalizeEventDetailSplitRatio(ratio);
36
+ const renderedRatio = dragRatio ?? committedRatio;
37
+ const commitRatio = useCallback((nextValue) => {
38
+ const nextRatio = normalizeEventDetailSplitRatio(nextValue);
39
+ if (nextRatio !== committedRatio)
40
+ onRatioChange?.(nextRatio);
41
+ setDragRatio(null);
42
+ }, [committedRatio, onRatioChange]);
43
+ const clearPointerResize = useCallback(() => {
44
+ activePointerRef.current = null;
45
+ setDragging(false);
46
+ }, []);
47
+ useEffect(() => {
48
+ if (split)
49
+ return;
50
+ clearPointerResize();
51
+ setDragRatio(null);
52
+ }, [clearPointerResize, split]);
53
+ const handlePointerDown = useCallback((event) => {
54
+ const layout = layoutRef.current;
55
+ if (!resizable || event.button !== 0 || layout === null)
56
+ return;
57
+ const rect = layout.getBoundingClientRect();
58
+ if (!Number.isFinite(rect.width) || rect.width <= 0)
59
+ return;
60
+ event.preventDefault();
61
+ activePointerRef.current = {
62
+ direction: globalThis.getComputedStyle(layout).direction === "rtl"
63
+ ? "rtl"
64
+ : "ltr",
65
+ pointerId: event.pointerId,
66
+ rect,
67
+ };
68
+ setDragRatio(committedRatio);
69
+ setDragging(true);
70
+ event.currentTarget.setPointerCapture?.(event.pointerId);
71
+ }, [committedRatio, resizable]);
72
+ const handlePointerMove = useCallback((event) => {
73
+ const resize = activePointerRef.current;
74
+ if (resize === null || resize.pointerId !== event.pointerId)
75
+ return;
76
+ event.preventDefault();
77
+ setDragRatio(ratioFromClientX(event.clientX, resize));
78
+ }, []);
79
+ const handlePointerUp = useCallback((event) => {
80
+ const resize = activePointerRef.current;
81
+ if (resize === null || resize.pointerId !== event.pointerId)
82
+ return;
83
+ event.preventDefault();
84
+ const nextRatio = ratioFromClientX(event.clientX, resize);
85
+ clearPointerResize();
86
+ event.currentTarget.releasePointerCapture?.(event.pointerId);
87
+ commitRatio(nextRatio);
88
+ }, [clearPointerResize, commitRatio]);
89
+ const cancelPointerResize = useCallback((event) => {
90
+ const resize = activePointerRef.current;
91
+ if (resize === null ||
92
+ (event !== undefined && resize.pointerId !== event.pointerId)) {
93
+ return;
94
+ }
95
+ clearPointerResize();
96
+ if (event !== undefined) {
97
+ event.currentTarget.releasePointerCapture?.(event.pointerId);
98
+ }
99
+ setDragRatio(null);
100
+ }, [clearPointerResize]);
101
+ const handleKeyDown = useCallback((event) => {
102
+ if (!resizable)
103
+ return;
104
+ const direction = layoutRef.current !== null &&
105
+ globalThis.getComputedStyle(layoutRef.current).direction === "rtl"
106
+ ? "rtl"
107
+ : "ltr";
108
+ let nextRatio;
109
+ switch (event.key) {
110
+ case "ArrowLeft":
111
+ nextRatio =
112
+ committedRatio +
113
+ (direction === "rtl"
114
+ ? EVENT_DETAIL_SPLIT_KEYBOARD_STEP
115
+ : -EVENT_DETAIL_SPLIT_KEYBOARD_STEP);
116
+ break;
117
+ case "ArrowRight":
118
+ nextRatio =
119
+ committedRatio +
120
+ (direction === "rtl"
121
+ ? -EVENT_DETAIL_SPLIT_KEYBOARD_STEP
122
+ : EVENT_DETAIL_SPLIT_KEYBOARD_STEP);
123
+ break;
124
+ case "Home":
125
+ nextRatio = MIN_EVENT_DETAIL_SPLIT_RATIO;
126
+ break;
127
+ case "End":
128
+ nextRatio = MAX_EVENT_DETAIL_SPLIT_RATIO;
129
+ break;
130
+ default:
131
+ return;
132
+ }
133
+ event.preventDefault();
134
+ commitRatio(nextRatio);
135
+ }, [commitRatio, committedRatio, resizable]);
136
+ const active = dragging || focused;
137
+ const ratioPercent = Math.round(renderedRatio * 100);
138
+ return (_jsxs("div", { "data-chat-event-split-ratio": renderedRatio, ref: layoutRef, style: {
139
+ display: "flex",
140
+ height: "100%",
141
+ minHeight: 0,
142
+ minWidth: 0,
143
+ position: "relative",
144
+ width: "100%",
145
+ }, children: [_jsx("div", { style: {
146
+ boxSizing: "border-box",
147
+ flex: `0 0 ${split ? renderedRatio * 100 : 100}%`,
148
+ minHeight: 0,
149
+ minWidth: 0,
150
+ }, children: timeline }), split ? (_jsxs(_Fragment, { children: [_jsx("div", { "aria-disabled": !resizable || undefined, "aria-label": ariaLabel, "aria-orientation": "vertical", "aria-valuemax": MAX_EVENT_DETAIL_SPLIT_RATIO * 100, "aria-valuemin": MIN_EVENT_DETAIL_SPLIT_RATIO * 100, "aria-valuenow": ratioPercent, "aria-valuetext": `${ratioPercent}%`, "data-chat-event-split-handle": "", onBlur: () => setFocused(false), onFocus: () => setFocused(true), onKeyDown: handleKeyDown, onLostPointerCapture: () => cancelPointerResize(), onPointerCancel: cancelPointerResize, onPointerDown: handlePointerDown, onPointerMove: handlePointerMove, onPointerUp: handlePointerUp, role: "separator", style: {
151
+ alignSelf: "stretch",
152
+ background: active
153
+ ? token.colorPrimary
154
+ : token.colorBorderSecondary,
155
+ boxShadow: focused
156
+ ? `0 0 0 ${token.lineWidthFocus}px ${token.colorPrimaryBorder}`
157
+ : undefined,
158
+ cursor: resizable ? "col-resize" : "default",
159
+ flex: "0 0 1px",
160
+ marginInline: -0.5,
161
+ outline: "none",
162
+ position: "relative",
163
+ touchAction: "none",
164
+ userSelect: "none",
165
+ zIndex: 2,
166
+ }, tabIndex: resizable ? 0 : -1, children: _jsx("span", { "aria-hidden": "true", style: {
167
+ cursor: resizable ? "col-resize" : "default",
168
+ insetBlock: 0,
169
+ insetInlineStart: "50%",
170
+ position: "absolute",
171
+ transform: "translateX(-50%)",
172
+ width: 12,
173
+ } }) }), _jsx("div", { style: {
174
+ flex: "1 1 0",
175
+ minHeight: 0,
176
+ minWidth: 0,
177
+ overflow: "auto",
178
+ }, children: detail })] })) : null, dragging && split ? (_jsx("div", { "aria-hidden": "true", style: {
179
+ cursor: "col-resize",
180
+ inset: 0,
181
+ position: "fixed",
182
+ zIndex: token.zIndexPopupBase,
183
+ } })) : null] }));
184
+ };
185
+ //# sourceMappingURL=event-detail-split-layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-detail-split-layout.js","sourceRoot":"","sources":["../src/event-detail-split-layout.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { TimelineItem } from "@turingfocus/chat-protocol";
2
+ import type { ChatRendererProps } from "./renderer-registry.js";
3
+ export declare const getEventSummary: (item: TimelineItem) => string;
4
+ export declare const AgentEventRenderer: ({ displayMode, formatTimestamp, item, selected, }: ChatRendererProps) => import("react").JSX.Element | null;
5
+ export declare const ToolEventRenderer: ({ displayMode, formatTimestamp, item, selected, }: ChatRendererProps) => import("react").JSX.Element | null;
6
+ export declare const UnknownEventRenderer: ({ displayMode, formatTimestamp, item, selected, }: ChatRendererProps) => import("react").JSX.Element | null;
7
+ //# sourceMappingURL=event-renderers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-renderers.d.ts","sourceRoot":"","sources":["../src/event-renderers.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAIV,YAAY,EAIb,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAqBhE,eAAO,MAAM,eAAe,GAAI,MAAM,YAAY,KAAG,MAYpD,CAAC;AAqSF,eAAO,MAAM,kBAAkB,GAAI,mDAKhC,iBAAiB,uCAYnB,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,mDAK/B,iBAAiB,uCA8BnB,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,mDAKlC,iBAAiB,uCA+BnB,CAAC"}
@@ -0,0 +1,138 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { Alert, Card, Space, Tabs, Tag, Typography, theme } from "antd";
3
+ import { AskUserInteractionResultView } from "./ask-user-interaction.js";
4
+ const TOOL_RESULT_CHARACTER_LIMIT = 4_000;
5
+ const statusColor = (status) => status === "success"
6
+ ? "success"
7
+ : status === "failed" || status === "timeout"
8
+ ? "error"
9
+ : status === "running"
10
+ ? "processing"
11
+ : "default";
12
+ const isFailedStatus = (status) => status === "failed" || status === "timeout";
13
+ const getEventTitle = (item) => item.kind === "unknown-event" ? item.originalType : item.eventType;
14
+ export const getEventSummary = (item) => {
15
+ if (item.kind === "message") {
16
+ return item.content.kind === "text"
17
+ ? item.content.text
18
+ : item.content.summary;
19
+ }
20
+ if (item.kind === "unknown-event")
21
+ return item.summary;
22
+ return (item.summary ??
23
+ item.transitions.at(-1)?.summary ??
24
+ `${item.eventType} (${item.status})`);
25
+ };
26
+ const formatBoundedValue = (value) => {
27
+ let serialized;
28
+ try {
29
+ serialized =
30
+ typeof value === "string" ? value : JSON.stringify(value, null, 2);
31
+ }
32
+ catch {
33
+ serialized = "[Value could not be serialized]";
34
+ }
35
+ if (serialized.length <= TOOL_RESULT_CHARACTER_LIMIT)
36
+ return serialized;
37
+ return `${serialized.slice(0, TOOL_RESULT_CHARACTER_LIMIT)}\n[Result truncated]`;
38
+ };
39
+ const EventCompactRow = ({ failed: failedOverride, formatTimestamp, item, selected = false, status: statusOverride, }) => {
40
+ const { token } = theme.useToken();
41
+ const status = statusOverride ?? (item.kind === "unknown-event" ? "unknown" : item.status);
42
+ const failed = failedOverride ??
43
+ (item.kind === "unknown-event" ? false : isFailedStatus(item.status));
44
+ return (_jsxs("div", { "data-chat-event-row": "", "data-selected": selected ? "true" : "false", style: {
45
+ alignItems: "center",
46
+ background: selected ? token.colorPrimaryBg : token.colorFillQuaternary,
47
+ border: `1px solid ${failed
48
+ ? token.colorError
49
+ : selected
50
+ ? token.colorPrimary
51
+ : token.colorBorderSecondary}`,
52
+ borderRadius: token.borderRadiusLG,
53
+ display: "flex",
54
+ gap: token.marginXS,
55
+ minHeight: 42,
56
+ padding: `${token.paddingXXS}px ${token.paddingSM}px`,
57
+ }, children: [_jsx(Typography.Text, { "aria-hidden": "true", style: { color: failed ? token.colorError : token.colorPrimary }, children: "\u25CF" }), _jsx(Typography.Text, { ellipsis: { tooltip: getEventSummary(item) }, style: { flex: 1, minWidth: 0 }, children: getEventSummary(item) }), _jsx(Tag, { bordered: false, color: statusColor(status), children: status }), _jsx(Typography.Text, { style: { flexShrink: 0, fontSize: token.fontSizeSM }, type: "secondary", children: formatTimestamp(item.createdAt) })] }));
58
+ };
59
+ const TransitionContent = ({ transition, }) => (_jsxs(Space, { direction: "vertical", size: "small", style: { width: "100%" }, children: [transition.error === undefined ? null : (_jsx(Alert, { message: transition.error.message, showIcon: true, type: "error" })), _jsx(Typography.Paragraph, { style: { margin: 0, whiteSpace: "pre-wrap" }, children: transition.summary ?? `Transition ${transition.status}` })] }));
60
+ const transitionTabs = (transitions, formatTimestamp, renderTransition) => (_jsx(Tabs, { defaultActiveKey: transitions[transitions.length - 1].id, items: transitions.map((transition) => ({
61
+ children: renderTransition(transition),
62
+ key: transition.id,
63
+ label: `${transition.status} · ${formatTimestamp(transition.occurredAt)}`,
64
+ })), size: "small", type: "card" }));
65
+ const AgentEventDetail = ({ formatTimestamp, item, }) => {
66
+ const failed = isFailedStatus(item.status);
67
+ return (_jsx(Card, { "data-chat-event-detail": "", extra: _jsx(Tag, { color: statusColor(item.status), children: item.status }), size: "small", title: item.eventType, children: _jsxs(Space, { direction: "vertical", size: "small", style: { width: "100%" }, children: [failed ? (_jsx(Alert, { message: item.transitions.at(-1)?.error?.message ??
68
+ item.summary ??
69
+ "Event failed", showIcon: true, type: "error" })) : null, item.summary === undefined ? null : (_jsx(Typography.Paragraph, { style: { margin: 0, whiteSpace: "pre-wrap" }, children: item.summary })), item.transitions.length > 1 ? (transitionTabs(item.transitions, formatTimestamp, (transition) => (_jsx(TransitionContent, { transition: transition })))) : (_jsx(TransitionContent, { transition: item.transitions[0] })), _jsx(Typography.Text, { type: "secondary", children: formatTimestamp(item.createdAt) })] }) }));
70
+ };
71
+ const latestToolField = (item, select) => {
72
+ for (let index = item.transitions.length - 1; index >= 0; index -= 1) {
73
+ const value = select(item.transitions[index]);
74
+ if (value !== undefined)
75
+ return value;
76
+ }
77
+ return undefined;
78
+ };
79
+ const ToolTransitionContent = ({ transition, }) => (_jsxs(Space, { direction: "vertical", size: "small", style: { width: "100%" }, children: [transition.error === undefined ? null : (_jsx(Alert, { message: transition.error.message, showIcon: true, type: "error" })), transition.summary === undefined ? null : (_jsx(Typography.Paragraph, { style: { margin: 0, whiteSpace: "pre-wrap" }, children: transition.summary })), transition.toolCall === undefined ? null : (_jsxs(_Fragment, { children: [_jsx(Typography.Text, { strong: true, children: transition.toolCall.name }), transition.toolCall.arguments === undefined ? null : (_jsx(Typography.Paragraph, { code: true, style: { margin: 0, whiteSpace: "pre-wrap" }, children: formatBoundedValue(transition.toolCall.arguments) }))] })), transition.toolReturn?.result === undefined ? null : (_jsx(Typography.Paragraph, { code: true, style: { margin: 0, overflowWrap: "anywhere", whiteSpace: "pre-wrap" }, children: formatBoundedValue(transition.toolReturn.result) })), transition.toolReturn === undefined ||
80
+ (transition.toolReturn.success === undefined &&
81
+ transition.toolReturn.done === undefined) ? null : (_jsx(Typography.Text, { type: "secondary", children: [
82
+ transition.toolReturn.success === undefined
83
+ ? undefined
84
+ : `success: ${String(transition.toolReturn.success)}`,
85
+ transition.toolReturn.done === undefined
86
+ ? undefined
87
+ : `done: ${String(transition.toolReturn.done)}`,
88
+ ]
89
+ .filter((value) => value !== undefined)
90
+ .join(" · ") })), transition.interaction === undefined ? null : (_jsx(AskUserInteractionResultView, { result: transition.interaction }))] }));
91
+ const ToolEventDetail = ({ formatTimestamp, item, }) => {
92
+ const latestCall = latestToolField(item, (transition) => transition.toolCall);
93
+ const latestReturn = latestToolField(item, (transition) => transition.toolReturn);
94
+ const latestInteraction = latestToolField(item, (transition) => transition.interaction);
95
+ const failed = isFailedStatus(item.status) ||
96
+ latestReturn?.success === false ||
97
+ latestInteraction?.status === "failed" ||
98
+ latestInteraction?.status === "timeout";
99
+ const displayStatus = latestInteraction?.status ??
100
+ (latestReturn?.success === false ? "failed" : item.status);
101
+ return (_jsx(Card, { "data-chat-event-detail": "", extra: _jsx(Tag, { color: failed ? "error" : statusColor(displayStatus), children: displayStatus }), size: "small", title: latestCall?.name ?? item.eventType, children: _jsxs(Space, { direction: "vertical", size: "small", style: { width: "100%" }, children: [failed ? (_jsx(Alert, { message: latestInteraction?.error ??
102
+ item.transitions.at(-1)?.error?.message ??
103
+ item.summary ??
104
+ "Tool failed", showIcon: true, type: "error" })) : null, item.transitions.length > 1 ? (transitionTabs(item.transitions, formatTimestamp, (transition) => (_jsx(ToolTransitionContent, { transition: transition })))) : (_jsx(ToolTransitionContent, { transition: item.transitions[0] })), _jsx(Typography.Text, { type: "secondary", children: formatTimestamp(item.createdAt) })] }) }));
105
+ };
106
+ export const AgentEventRenderer = ({ displayMode = "detail", formatTimestamp, item, selected, }) => {
107
+ if (item.kind !== "agent-event")
108
+ return null;
109
+ if (displayMode === "timeline") {
110
+ return (_jsx(EventCompactRow, { formatTimestamp: formatTimestamp, item: item, selected: selected }));
111
+ }
112
+ return _jsx(AgentEventDetail, { formatTimestamp: formatTimestamp, item: item });
113
+ };
114
+ export const ToolEventRenderer = ({ displayMode = "detail", formatTimestamp, item, selected, }) => {
115
+ if (item.kind !== "agent-event" || item.eventCategory !== "tool")
116
+ return null;
117
+ if (displayMode === "timeline") {
118
+ const toolReturn = latestToolField(item, (transition) => transition.toolReturn);
119
+ const interaction = latestToolField(item, (transition) => transition.interaction);
120
+ const failed = isFailedStatus(item.status) ||
121
+ toolReturn?.success === false ||
122
+ interaction?.status === "failed" ||
123
+ interaction?.status === "timeout";
124
+ const displayStatus = interaction?.status ??
125
+ (toolReturn?.success === false ? "failed" : item.status);
126
+ return (_jsx(EventCompactRow, { failed: failed, formatTimestamp: formatTimestamp, item: item, selected: selected, status: displayStatus }));
127
+ }
128
+ return _jsx(ToolEventDetail, { formatTimestamp: formatTimestamp, item: item });
129
+ };
130
+ export const UnknownEventRenderer = ({ displayMode = "detail", formatTimestamp, item, selected, }) => {
131
+ if (item.kind !== "unknown-event")
132
+ return null;
133
+ if (displayMode === "timeline") {
134
+ return (_jsx(EventCompactRow, { formatTimestamp: formatTimestamp, item: item, selected: selected }));
135
+ }
136
+ return (_jsx(Alert, { "data-chat-event-detail": "", description: _jsxs(_Fragment, { children: [_jsx(Typography.Paragraph, { style: { marginBottom: 4, whiteSpace: "pre-wrap" }, children: item.summary }), _jsx(Typography.Text, { type: "secondary", children: formatTimestamp(item.createdAt) })] }), message: `Unknown event: ${getEventTitle(item)}`, showIcon: true, type: "warning" }));
137
+ };
138
+ //# sourceMappingURL=event-renderers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-renderers.js","sourceRoot":"","sources":["../src/event-renderers.tsx"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- export { ChatComposer, type ChatComposerProps } from "./chat-composer.js";
1
+ export { ChatComposer, type ChatComposerInterruptAction, type ChatComposerProps, } from "./chat-composer.js";
2
+ export { ChatEventDetail, ChatEventDetailEmpty, isChatEventItem, type ChatEventDetailMode, type ChatEventDetailProps, type ChatEventItem, type ResolvedChatEventDetailMode, } from "./chat-event-detail.js";
2
3
  export { AskUserInteractionCard, AskUserInteractionResultView, type AskUserChatAboutThisRequest, type AskUserInteractionCardProps, type AskUserInteractionResultViewProps, } from "./ask-user-interaction.js";
3
4
  export { ChatConversationView, type ChatConversationViewProps, type ChatUiCommand, type ChatUiCommandFailure, } from "./chat-conversation-view.js";
4
5
  export { ChatConversationList, type ChatConversationListProps, type ConversationListError, } from "./conversation-list.js";
@@ -7,7 +8,7 @@ export { ChatStateView, type ChatStateViewProps } from "./chat-state-view.js";
7
8
  export { ChatTimeline, type ChatTimelineProps } from "./chat-timeline.js";
8
9
  export { ChatUiShell, type ChatUiShellProps } from "./chat-ui-shell.js";
9
10
  export { defaultChatUiLabels, resolveChatUiLabels } from "./labels.js";
10
- export { ChatMessageContent, ChatTimelineItem, createChatRendererRegistry, defaultChatRendererRegistry, formatChatTimestampUtc, resolveChatRenderer, type ChatRenderer, type ChatRendererFailure, type ChatRendererKey, type ChatRendererProps, type ChatRendererRegistry, type ChatMessageContentProps, type ChatTimelineItemProps, } from "./renderer-registry.js";
11
+ export { ChatMessageContent, ChatTimelineItem, createChatRendererRegistry, defaultChatRendererRegistry, formatChatTimestampUtc, resolveChatRenderer, type ChatRenderer, type ChatRendererDisplayMode, type ChatRendererFailure, type ChatRendererKey, type ChatRendererProps, type ChatRendererRegistry, type ChatMessageContentProps, type ChatTimelineItemProps, } from "./renderer-registry.js";
11
12
  export { ChatMarkdownContent, type ChatMarkdownContentProps, } from "./markdown-content.js";
12
13
  export type { ChatContentState, ChatConversationListItem, ChatUiLabelOverrides, ChatUiLabels, ChatUiSlotStyles, } from "./types.js";
13
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EACL,sBAAsB,EACtB,4BAA4B,EAC5B,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,KAAK,iCAAiC,GACvC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,oBAAoB,EACpB,KAAK,yBAAyB,EAC9B,KAAK,aAAa,EAClB,KAAK,oBAAoB,GAC1B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,oBAAoB,EACpB,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,GAC3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,0BAA0B,EAC1B,2BAA2B,EAC3B,sBAAsB,EACtB,mBAAmB,EACnB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,GAC3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,mBAAmB,EACnB,KAAK,wBAAwB,GAC9B,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,YAAY,EACZ,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,KAAK,2BAA2B,EAChC,KAAK,iBAAiB,GACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,2BAA2B,GACjC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,sBAAsB,EACtB,4BAA4B,EAC5B,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,KAAK,iCAAiC,GACvC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,oBAAoB,EACpB,KAAK,yBAAyB,EAC9B,KAAK,aAAa,EAClB,KAAK,oBAAoB,GAC1B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,oBAAoB,EACpB,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,GAC3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,0BAA0B,EAC1B,2BAA2B,EAC3B,sBAAsB,EACtB,mBAAmB,EACnB,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,GAC3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,mBAAmB,EACnB,KAAK,wBAAwB,GAC9B,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,YAAY,EACZ,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
- export { ChatComposer } from "./chat-composer.js";
1
+ export { ChatComposer, } from "./chat-composer.js";
2
+ export { ChatEventDetail, ChatEventDetailEmpty, isChatEventItem, } from "./chat-event-detail.js";
2
3
  export { AskUserInteractionCard, AskUserInteractionResultView, } from "./ask-user-interaction.js";
3
4
  export { ChatConversationView, } from "./chat-conversation-view.js";
4
5
  export { ChatConversationList, } from "./conversation-list.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA0B,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EACL,sBAAsB,EACtB,4BAA4B,GAI7B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,oBAAoB,GAIrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,oBAAoB,GAGrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,aAAa,EAA2B,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAA2B,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAA0B,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAyB,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,0BAA0B,EAC1B,2BAA2B,EAC3B,sBAAsB,EACtB,mBAAmB,GAQpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,mBAAmB,GAEpB,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,GAGb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,eAAe,GAKhB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,sBAAsB,EACtB,4BAA4B,GAI7B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,oBAAoB,GAIrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,oBAAoB,GAGrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,aAAa,EAA2B,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAA2B,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAA0B,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAyB,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,0BAA0B,EAC1B,2BAA2B,EAC3B,sBAAsB,EACtB,mBAAmB,GASpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,mBAAmB,GAEpB,MAAM,uBAAuB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"labels.d.ts","sourceRoot":"","sources":["../src/labels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAErE,eAAO,MAAM,mBAAmB,EAAE,YAqChC,CAAC;AAEH,eAAO,MAAM,mBAAmB,GAC9B,WAAW,oBAAoB,GAAG,SAAS,KAC1C,YAA0D,CAAC"}
1
+ {"version":3,"file":"labels.d.ts","sourceRoot":"","sources":["../src/labels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAErE,eAAO,MAAM,mBAAmB,EAAE,YA8ChC,CAAC;AAEH,eAAO,MAAM,mBAAmB,GAC9B,WAAW,oBAAoB,GAAG,SAAS,KAC1C,YAA0D,CAAC"}