@vllnt/ui 0.2.1-canary.e1bc2b3 → 0.2.1-canary.ee942df

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 (137) hide show
  1. package/dist/components/agent-activity/agent-activity.js +311 -0
  2. package/dist/components/agent-activity/index.js +18 -0
  3. package/dist/components/ai-artifact/ai-artifact.js +422 -0
  4. package/dist/components/ai-artifact/index.js +24 -0
  5. package/dist/components/ai-sidebar/ai-sidebar.js +254 -0
  6. package/dist/components/ai-sidebar/index.js +22 -0
  7. package/dist/components/alert-pulse/alert-pulse.js +93 -0
  8. package/dist/components/alert-pulse/index.js +6 -0
  9. package/dist/components/auto-reload/auto-reload.js +367 -0
  10. package/dist/components/auto-reload/index.js +6 -0
  11. package/dist/components/banner/banner.js +155 -0
  12. package/dist/components/banner/index.js +10 -0
  13. package/dist/components/bottom-activity-strip/bottom-activity-strip.js +91 -0
  14. package/dist/components/bottom-activity-strip/index.js +6 -0
  15. package/dist/components/choropleth-map/choropleth-map.js +373 -0
  16. package/dist/components/choropleth-map/index.js +10 -0
  17. package/dist/components/chronological-timeline/chronological-timeline.js +337 -0
  18. package/dist/components/chronological-timeline/index.js +8 -0
  19. package/dist/components/civilization-card/civilization-card.js +258 -0
  20. package/dist/components/civilization-card/index.js +8 -0
  21. package/dist/components/comment-pin/comment-pin.js +104 -0
  22. package/dist/components/comment-pin/index.js +6 -0
  23. package/dist/components/context-lens/context-lens.js +98 -0
  24. package/dist/components/context-lens/index.js +6 -0
  25. package/dist/components/copy-button/copy-button.js +189 -0
  26. package/dist/components/copy-button/index.js +8 -0
  27. package/dist/components/document-sibling-nav/document-sibling-nav.js +111 -0
  28. package/dist/components/document-sibling-nav/index.js +8 -0
  29. package/dist/components/empty-state/empty-state.js +93 -0
  30. package/dist/components/empty-state/index.js +8 -0
  31. package/dist/components/era-comparison/era-comparison.js +198 -0
  32. package/dist/components/era-comparison/index.js +16 -0
  33. package/dist/components/floating-toolbar/floating-toolbar.js +66 -0
  34. package/dist/components/floating-toolbar/index.js +6 -0
  35. package/dist/components/follow-mode/follow-mode.js +89 -0
  36. package/dist/components/follow-mode/index.js +6 -0
  37. package/dist/components/gantt-chart/gantt-chart.js +331 -0
  38. package/dist/components/gantt-chart/index.js +6 -0
  39. package/dist/components/geography-quiz-map/geography-quiz-map.js +343 -0
  40. package/dist/components/geography-quiz-map/index.js +12 -0
  41. package/dist/components/globe-3d/globe-3d.js +417 -0
  42. package/dist/components/globe-3d/index.js +10 -0
  43. package/dist/components/handoff-beacon/handoff-beacon.js +78 -0
  44. package/dist/components/handoff-beacon/index.js +6 -0
  45. package/dist/components/heat-map-overlay/heat-map-overlay.js +215 -0
  46. package/dist/components/heat-map-overlay/index.js +6 -0
  47. package/dist/components/heat-overlay/heat-overlay.js +92 -0
  48. package/dist/components/heat-overlay/index.js +6 -0
  49. package/dist/components/historic-timeline/historic-timeline.js +342 -0
  50. package/dist/components/historic-timeline/index.js +6 -0
  51. package/dist/components/historical-figure-card/historical-figure-card.js +273 -0
  52. package/dist/components/historical-figure-card/index.js +6 -0
  53. package/dist/components/index.js +432 -1
  54. package/dist/components/infinite-plane/index.js +6 -0
  55. package/dist/components/infinite-plane/infinite-plane.js +75 -0
  56. package/dist/components/interactive-timeline/index.js +16 -0
  57. package/dist/components/interactive-timeline/interactive-timeline.js +708 -0
  58. package/dist/components/jarvis-dock/index.js +6 -0
  59. package/dist/components/jarvis-dock/jarvis-dock.js +98 -0
  60. package/dist/components/kbd/index.js +5 -0
  61. package/dist/components/kbd/kbd.js +117 -0
  62. package/dist/components/knowledge-check/index.js +6 -0
  63. package/dist/components/knowledge-check/knowledge-check.js +448 -0
  64. package/dist/components/live-cursor/index.js +6 -0
  65. package/dist/components/live-cursor/live-cursor.js +62 -0
  66. package/dist/components/map-2d/index.js +20 -0
  67. package/dist/components/map-2d/map-2d.js +455 -0
  68. package/dist/components/map-timeline/index.js +16 -0
  69. package/dist/components/map-timeline/map-timeline.js +506 -0
  70. package/dist/components/metric-cluster/index.js +6 -0
  71. package/dist/components/metric-cluster/metric-cluster.js +96 -0
  72. package/dist/components/model-comparison/index.js +12 -0
  73. package/dist/components/model-comparison/model-comparison.js +211 -0
  74. package/dist/components/multi-select-lasso/index.js +6 -0
  75. package/dist/components/multi-select-lasso/multi-select-lasso.js +76 -0
  76. package/dist/components/newsletter-signup/index.js +8 -0
  77. package/dist/components/newsletter-signup/newsletter-signup.js +269 -0
  78. package/dist/components/object-inspector/index.js +6 -0
  79. package/dist/components/object-inspector/object-inspector.js +136 -0
  80. package/dist/components/parallel-timeline/index.js +6 -0
  81. package/dist/components/parallel-timeline/parallel-timeline.js +251 -0
  82. package/dist/components/playback-ghost/index.js +6 -0
  83. package/dist/components/playback-ghost/playback-ghost.js +83 -0
  84. package/dist/components/policy-delivery-panel/index.js +6 -0
  85. package/dist/components/policy-delivery-panel/policy-delivery-panel.js +99 -0
  86. package/dist/components/presence-stack/index.js +6 -0
  87. package/dist/components/presence-stack/presence-stack.js +108 -0
  88. package/dist/components/presence-sync-indicator/index.js +6 -0
  89. package/dist/components/presence-sync-indicator/presence-sync-indicator.js +73 -0
  90. package/dist/components/pricing-table/index.js +8 -0
  91. package/dist/components/pricing-table/pricing-table.js +247 -0
  92. package/dist/components/primary-source-viewer/index.js +26 -0
  93. package/dist/components/primary-source-viewer/primary-source-viewer.js +439 -0
  94. package/dist/components/prompt-templates/index.js +6 -0
  95. package/dist/components/prompt-templates/prompt-templates.js +403 -0
  96. package/dist/components/property-section/index.js +6 -0
  97. package/dist/components/property-section/property-section.js +101 -0
  98. package/dist/components/relationship-inspector/index.js +6 -0
  99. package/dist/components/relationship-inspector/relationship-inspector.js +102 -0
  100. package/dist/components/route-map/index.js +6 -0
  101. package/dist/components/route-map/route-map.js +339 -0
  102. package/dist/components/routing-assignment-panel/index.js +6 -0
  103. package/dist/components/routing-assignment-panel/routing-assignment-panel.js +122 -0
  104. package/dist/components/run-timeline/index.js +6 -0
  105. package/dist/components/run-timeline/run-timeline.js +221 -0
  106. package/dist/components/runtime-overview-panel/index.js +6 -0
  107. package/dist/components/runtime-overview-panel/runtime-overview-panel.js +89 -0
  108. package/dist/components/selection-halo/index.js +6 -0
  109. package/dist/components/selection-halo/selection-halo.js +72 -0
  110. package/dist/components/selection-presence/index.js +6 -0
  111. package/dist/components/selection-presence/selection-presence.js +50 -0
  112. package/dist/components/snap-guides/index.js +6 -0
  113. package/dist/components/snap-guides/snap-guides.js +45 -0
  114. package/dist/components/state-badge-overlay/index.js +6 -0
  115. package/dist/components/state-badge-overlay/state-badge-overlay.js +90 -0
  116. package/dist/components/sticky-metric/index.js +6 -0
  117. package/dist/components/sticky-metric/sticky-metric.js +83 -0
  118. package/dist/components/story-map/index.js +8 -0
  119. package/dist/components/story-map/story-map.js +414 -0
  120. package/dist/components/thread-bubble/index.js +6 -0
  121. package/dist/components/thread-bubble/thread-bubble.js +85 -0
  122. package/dist/components/threshold-ring/index.js +6 -0
  123. package/dist/components/threshold-ring/threshold-ring.js +160 -0
  124. package/dist/components/timeline/index.js +12 -0
  125. package/dist/components/timeline/timeline.js +239 -0
  126. package/dist/components/timeline-scrubber/index.js +6 -0
  127. package/dist/components/timeline-scrubber/timeline-scrubber.js +179 -0
  128. package/dist/components/transaction-list/index.js +14 -0
  129. package/dist/components/transaction-list/transaction-list.js +226 -0
  130. package/dist/components/tree-view/index.js +6 -0
  131. package/dist/components/tree-view/tree-view.js +298 -0
  132. package/dist/components/viewport-bookmarks/index.js +6 -0
  133. package/dist/components/viewport-bookmarks/viewport-bookmarks.js +116 -0
  134. package/dist/components/world-breadcrumbs/index.js +6 -0
  135. package/dist/components/world-breadcrumbs/world-breadcrumbs.js +114 -0
  136. package/dist/index.d.ts +7135 -141
  137. package/package.json +1 -1
@@ -0,0 +1,311 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import {
4
+ createContext,
5
+ forwardRef,
6
+ useCallback,
7
+ useContext,
8
+ useId,
9
+ useMemo,
10
+ useState
11
+ } from "react";
12
+ import {
13
+ AlertTriangle,
14
+ CheckCircle2,
15
+ ChevronDown,
16
+ Circle,
17
+ Loader2,
18
+ MinusCircle
19
+ } from "lucide-react";
20
+ import { cn } from "../../lib/utils";
21
+ const STATUS_CLASSES = {
22
+ completed: {
23
+ iconClass: "text-emerald-600 dark:text-emerald-400",
24
+ ringClass: "ring-emerald-500/30",
25
+ rowClass: "border-border bg-background"
26
+ },
27
+ error: {
28
+ iconClass: "text-destructive",
29
+ ringClass: "ring-destructive/40",
30
+ rowClass: "border-destructive/40 bg-destructive/5"
31
+ },
32
+ pending: {
33
+ iconClass: "text-muted-foreground",
34
+ ringClass: "ring-border",
35
+ rowClass: "border-border bg-muted/20 text-muted-foreground"
36
+ },
37
+ running: {
38
+ iconClass: "text-primary",
39
+ ringClass: "ring-primary/30",
40
+ rowClass: "border-primary/30 bg-primary/5"
41
+ },
42
+ skipped: {
43
+ iconClass: "text-muted-foreground/60",
44
+ ringClass: "ring-border",
45
+ rowClass: "border-border bg-background text-muted-foreground/80"
46
+ }
47
+ };
48
+ const DEFAULT_STATUS_ICON = {
49
+ completed: /* @__PURE__ */ jsx(CheckCircle2, { "aria-hidden": "true", className: "h-4 w-4" }),
50
+ error: /* @__PURE__ */ jsx(AlertTriangle, { "aria-hidden": "true", className: "h-4 w-4" }),
51
+ pending: /* @__PURE__ */ jsx(Circle, { "aria-hidden": "true", className: "h-4 w-4" }),
52
+ running: /* @__PURE__ */ jsx(Loader2, { "aria-hidden": "true", className: "h-4 w-4 animate-spin" }),
53
+ skipped: /* @__PURE__ */ jsx(MinusCircle, { "aria-hidden": "true", className: "h-4 w-4" })
54
+ };
55
+ const StepContext = createContext({ status: "pending" });
56
+ const DEFAULT_LABELS = {
57
+ activity: "Activity",
58
+ collapse: "Hide details",
59
+ elapsed: "Elapsed",
60
+ expand: "Show details"
61
+ };
62
+ const ACTIVITY_LIVE_REGION_ROLE = {
63
+ completed: "status",
64
+ error: "status",
65
+ idle: "status",
66
+ running: "log"
67
+ };
68
+ const AgentActivity = forwardRef(
69
+ (props, ref) => {
70
+ const {
71
+ children,
72
+ className,
73
+ elapsed,
74
+ labels,
75
+ status = "idle",
76
+ ...rest
77
+ } = props;
78
+ const resolvedLabels = { ...DEFAULT_LABELS, ...labels };
79
+ return /* @__PURE__ */ jsxs(
80
+ "section",
81
+ {
82
+ "aria-live": status === "running" ? "polite" : "off",
83
+ className: cn(
84
+ "flex flex-col gap-3 rounded-2xl border bg-background p-4",
85
+ className
86
+ ),
87
+ "data-status": status,
88
+ ref,
89
+ role: ACTIVITY_LIVE_REGION_ROLE[status],
90
+ ...rest,
91
+ children: [
92
+ /* @__PURE__ */ jsxs("header", { className: "flex items-center justify-between gap-3", children: [
93
+ /* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold tracking-tight text-foreground", children: resolvedLabels.activity }),
94
+ elapsed ? /* @__PURE__ */ jsx(
95
+ "span",
96
+ {
97
+ "aria-label": resolvedLabels.elapsed,
98
+ className: "text-xs font-mono text-muted-foreground",
99
+ children: elapsed
100
+ }
101
+ ) : null
102
+ ] }),
103
+ /* @__PURE__ */ jsx("ol", { className: "flex flex-col gap-2", children })
104
+ ]
105
+ }
106
+ );
107
+ }
108
+ );
109
+ AgentActivity.displayName = "AgentActivity";
110
+ function getDisplayName(value) {
111
+ if (value !== null && (typeof value === "object" || typeof value === "function") && "displayName" in value && typeof value.displayName === "string") {
112
+ return value.displayName;
113
+ }
114
+ return void 0;
115
+ }
116
+ function isAgentStepDetailElement(child) {
117
+ if (child === null || typeof child !== "object") return false;
118
+ if (!("type" in child)) return false;
119
+ return getDisplayName(child.type) === "AgentStepDetail";
120
+ }
121
+ function splitChildren(children) {
122
+ const items = Array.isArray(children) ? children : [children];
123
+ return items.reduce(
124
+ (split, child) => {
125
+ if (isAgentStepDetailElement(child)) {
126
+ split.body.push(child);
127
+ } else {
128
+ split.header.push(child);
129
+ }
130
+ return split;
131
+ },
132
+ { body: [], header: [] }
133
+ );
134
+ }
135
+ function StepRow({
136
+ detailsId,
137
+ hasDetails,
138
+ header,
139
+ icon,
140
+ iconClass,
141
+ labels,
142
+ onToggle,
143
+ open
144
+ }) {
145
+ return /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3 px-3 py-2", children: [
146
+ /* @__PURE__ */ jsx(
147
+ "span",
148
+ {
149
+ "aria-hidden": "true",
150
+ className: cn(
151
+ "mt-0.5 inline-flex h-5 w-5 shrink-0 items-center justify-center",
152
+ iconClass
153
+ ),
154
+ children: icon
155
+ }
156
+ ),
157
+ /* @__PURE__ */ jsx("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: header }),
158
+ hasDetails ? /* @__PURE__ */ jsx(
159
+ "button",
160
+ {
161
+ "aria-controls": detailsId,
162
+ "aria-expanded": open,
163
+ "aria-label": open ? labels.collapse : labels.expand,
164
+ className: "ml-auto inline-flex h-6 w-6 shrink-0 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-foreground/10 hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
165
+ onClick: onToggle,
166
+ type: "button",
167
+ children: /* @__PURE__ */ jsx(
168
+ ChevronDown,
169
+ {
170
+ "aria-hidden": "true",
171
+ className: cn(
172
+ "h-4 w-4 transition-transform",
173
+ open ? "rotate-180" : "rotate-0"
174
+ )
175
+ }
176
+ )
177
+ }
178
+ ) : null
179
+ ] });
180
+ }
181
+ const AgentStep = forwardRef(
182
+ (props, ref) => {
183
+ const {
184
+ children,
185
+ className,
186
+ defaultOpen = true,
187
+ icon,
188
+ status,
189
+ ...rest
190
+ } = props;
191
+ const split = useMemo(() => splitChildren(children), [children]);
192
+ const palette = STATUS_CLASSES[status];
193
+ const hasDetails = split.body.length > 0;
194
+ const [open, setOpen] = useState(defaultOpen);
195
+ const detailsId = useId();
196
+ const handleToggle = useCallback(() => {
197
+ setOpen((value) => !value);
198
+ }, []);
199
+ const contextValue = useMemo(
200
+ () => ({ status }),
201
+ [status]
202
+ );
203
+ const resolvedIcon = icon ?? DEFAULT_STATUS_ICON[status];
204
+ return /* @__PURE__ */ jsx(
205
+ "li",
206
+ {
207
+ className: cn(
208
+ "rounded-xl border ring-1",
209
+ palette.rowClass,
210
+ palette.ringClass,
211
+ className
212
+ ),
213
+ "data-status": status,
214
+ ref,
215
+ ...rest,
216
+ children: /* @__PURE__ */ jsxs(StepContext.Provider, { value: contextValue, children: [
217
+ /* @__PURE__ */ jsx(
218
+ StepRow,
219
+ {
220
+ detailsId,
221
+ hasDetails,
222
+ header: split.header,
223
+ icon: resolvedIcon,
224
+ iconClass: palette.iconClass,
225
+ labels: DEFAULT_LABELS,
226
+ onToggle: handleToggle,
227
+ open
228
+ }
229
+ ),
230
+ hasDetails && open ? /* @__PURE__ */ jsx(
231
+ "div",
232
+ {
233
+ className: "border-t border-border/60 px-3 py-2 text-xs",
234
+ id: detailsId,
235
+ children: /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-2 pl-8", children: split.body })
236
+ }
237
+ ) : null
238
+ ] })
239
+ }
240
+ );
241
+ }
242
+ );
243
+ AgentStep.displayName = "AgentStep";
244
+ const AgentStepTitle = forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx(
245
+ "p",
246
+ {
247
+ className: cn(
248
+ "text-sm font-medium leading-tight text-foreground",
249
+ className
250
+ ),
251
+ ref,
252
+ ...rest
253
+ }
254
+ ));
255
+ AgentStepTitle.displayName = "AgentStepTitle";
256
+ const AgentStepDuration = forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx(
257
+ "span",
258
+ {
259
+ className: cn("font-mono text-xs text-muted-foreground", className),
260
+ ref,
261
+ ...rest
262
+ }
263
+ ));
264
+ AgentStepDuration.displayName = "AgentStepDuration";
265
+ const AgentStepProgress = forwardRef(({ className, label = "Step progress", value, ...rest }, ref) => {
266
+ const clamped = Math.max(0, Math.min(100, value));
267
+ return /* @__PURE__ */ jsx(
268
+ "div",
269
+ {
270
+ "aria-label": label,
271
+ "aria-valuemax": 100,
272
+ "aria-valuemin": 0,
273
+ "aria-valuenow": clamped,
274
+ className: cn("h-1.5 w-full rounded-full bg-muted", className),
275
+ ref,
276
+ role: "progressbar",
277
+ ...rest,
278
+ children: /* @__PURE__ */ jsx(
279
+ "span",
280
+ {
281
+ className: "block h-full rounded-full bg-primary transition-[width]",
282
+ style: { width: `${clamped.toString()}%` }
283
+ }
284
+ )
285
+ }
286
+ );
287
+ });
288
+ AgentStepProgress.displayName = "AgentStepProgress";
289
+ const AgentStepDetail = forwardRef(
290
+ ({ className, ...rest }, ref) => /* @__PURE__ */ jsx(
291
+ "div",
292
+ {
293
+ className: cn("text-xs text-muted-foreground", className),
294
+ ref,
295
+ ...rest
296
+ }
297
+ )
298
+ );
299
+ AgentStepDetail.displayName = "AgentStepDetail";
300
+ function useAgentStepStatus() {
301
+ return useContext(StepContext).status;
302
+ }
303
+ export {
304
+ AgentActivity,
305
+ AgentStep,
306
+ AgentStepDetail,
307
+ AgentStepDuration,
308
+ AgentStepProgress,
309
+ AgentStepTitle,
310
+ useAgentStepStatus
311
+ };
@@ -0,0 +1,18 @@
1
+ import {
2
+ AgentActivity,
3
+ AgentStep,
4
+ AgentStepDetail,
5
+ AgentStepDuration,
6
+ AgentStepProgress,
7
+ AgentStepTitle,
8
+ useAgentStepStatus
9
+ } from "./agent-activity";
10
+ export {
11
+ AgentActivity,
12
+ AgentStep,
13
+ AgentStepDetail,
14
+ AgentStepDuration,
15
+ AgentStepProgress,
16
+ AgentStepTitle,
17
+ useAgentStepStatus
18
+ };