@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,198 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import {
4
+ createContext,
5
+ forwardRef,
6
+ useContext,
7
+ useMemo
8
+ } from "react";
9
+ import { cn } from "../../lib/utils";
10
+ const ERA_PALETTE = {
11
+ amber: {
12
+ accent: "bg-amber-500",
13
+ chip: "bg-amber-500/15 text-amber-700 dark:text-amber-300"
14
+ },
15
+ blue: {
16
+ accent: "bg-blue-500",
17
+ chip: "bg-blue-500/15 text-blue-700 dark:text-blue-300"
18
+ },
19
+ emerald: {
20
+ accent: "bg-emerald-500",
21
+ chip: "bg-emerald-500/15 text-emerald-700 dark:text-emerald-300"
22
+ },
23
+ neutral: {
24
+ accent: "bg-muted-foreground/40",
25
+ chip: "bg-muted text-muted-foreground"
26
+ },
27
+ purple: {
28
+ accent: "bg-purple-500",
29
+ chip: "bg-purple-500/15 text-purple-700 dark:text-purple-300"
30
+ },
31
+ red: {
32
+ accent: "bg-red-500",
33
+ chip: "bg-red-500/15 text-red-700 dark:text-red-300"
34
+ },
35
+ rose: {
36
+ accent: "bg-rose-500",
37
+ chip: "bg-rose-500/15 text-rose-700 dark:text-rose-300"
38
+ }
39
+ };
40
+ const EraColumnContext = createContext({
41
+ color: "neutral"
42
+ });
43
+ function useEraColumnColor() {
44
+ return useContext(EraColumnContext).color;
45
+ }
46
+ const EraComparison = forwardRef(
47
+ ({ children, className, ...rest }, ref) => /* @__PURE__ */ jsx(
48
+ "section",
49
+ {
50
+ className: cn(
51
+ "grid grid-cols-1 gap-4 md:grid-cols-2 xl:grid-cols-3",
52
+ className
53
+ ),
54
+ ref,
55
+ ...rest,
56
+ children
57
+ }
58
+ )
59
+ );
60
+ EraComparison.displayName = "EraComparison";
61
+ function ColumnHeader({
62
+ color,
63
+ name,
64
+ period,
65
+ region
66
+ }) {
67
+ const palette = ERA_PALETTE[color];
68
+ return /* @__PURE__ */ jsxs("header", { className: "flex flex-col gap-2", children: [
69
+ /* @__PURE__ */ jsx(
70
+ "span",
71
+ {
72
+ "aria-hidden": "true",
73
+ className: cn("h-1 w-12 rounded-full", palette.accent)
74
+ }
75
+ ),
76
+ /* @__PURE__ */ jsxs("div", { className: "flex items-baseline justify-between gap-2", children: [
77
+ /* @__PURE__ */ jsx("h3", { className: "text-base font-semibold tracking-tight text-foreground", children: name }),
78
+ period ? /* @__PURE__ */ jsx(
79
+ "span",
80
+ {
81
+ className: cn(
82
+ "rounded-full px-2 py-0.5 text-xs font-mono",
83
+ palette.chip
84
+ ),
85
+ children: period
86
+ }
87
+ ) : null
88
+ ] }),
89
+ region ? /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: region }) : null
90
+ ] });
91
+ }
92
+ const EraColumn = forwardRef(
93
+ (props, ref) => {
94
+ const {
95
+ children,
96
+ className,
97
+ color = "neutral",
98
+ name,
99
+ period,
100
+ region,
101
+ ...rest
102
+ } = props;
103
+ const contextValue = useMemo(
104
+ () => ({ color }),
105
+ [color]
106
+ );
107
+ return /* @__PURE__ */ jsx(EraColumnContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxs(
108
+ "article",
109
+ {
110
+ className: cn(
111
+ "flex flex-col gap-3 rounded-2xl border border-border bg-background p-4 shadow-sm",
112
+ className
113
+ ),
114
+ "data-color": color,
115
+ ref,
116
+ ...rest,
117
+ children: [
118
+ /* @__PURE__ */ jsx(
119
+ ColumnHeader,
120
+ {
121
+ color,
122
+ name,
123
+ period,
124
+ region
125
+ }
126
+ ),
127
+ /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-3", children })
128
+ ]
129
+ }
130
+ ) });
131
+ }
132
+ );
133
+ EraColumn.displayName = "EraColumn";
134
+ const EraDomain = forwardRef(
135
+ ({ children, className, name, ...rest }, ref) => /* @__PURE__ */ jsxs(
136
+ "section",
137
+ {
138
+ className: cn("flex flex-col gap-2", className),
139
+ "data-domain": typeof name === "string" ? name : void 0,
140
+ ref,
141
+ ...rest,
142
+ children: [
143
+ /* @__PURE__ */ jsx("h4", { className: "text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: name }),
144
+ children
145
+ ]
146
+ }
147
+ )
148
+ );
149
+ EraDomain.displayName = "EraDomain";
150
+ const EraHighlight = forwardRef(
151
+ ({ children, className, ...rest }, ref) => {
152
+ const color = useEraColumnColor();
153
+ const palette = ERA_PALETTE[color];
154
+ return /* @__PURE__ */ jsx(
155
+ "p",
156
+ {
157
+ className: cn("rounded-md px-2 py-1 text-sm", palette.chip, className),
158
+ ref,
159
+ ...rest,
160
+ children
161
+ }
162
+ );
163
+ }
164
+ );
165
+ EraHighlight.displayName = "EraHighlight";
166
+ const EraFigure = forwardRef(
167
+ (props, ref) => {
168
+ const { anchorProps, className, href, name, ...rest } = props;
169
+ const color = useEraColumnColor();
170
+ const palette = ERA_PALETTE[color];
171
+ const baseClass = cn(
172
+ "inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium",
173
+ palette.chip,
174
+ className
175
+ );
176
+ if (href) {
177
+ return /* @__PURE__ */ jsx(
178
+ "a",
179
+ {
180
+ className: cn(baseClass, "underline-offset-4 hover:underline"),
181
+ href,
182
+ ...anchorProps,
183
+ children: name
184
+ }
185
+ );
186
+ }
187
+ return /* @__PURE__ */ jsx("span", { className: baseClass, ref, ...rest, children: name });
188
+ }
189
+ );
190
+ EraFigure.displayName = "EraFigure";
191
+ export {
192
+ EraColumn,
193
+ EraComparison,
194
+ EraDomain,
195
+ EraFigure,
196
+ EraHighlight,
197
+ useEraColumnColor
198
+ };
@@ -0,0 +1,16 @@
1
+ import {
2
+ EraColumn,
3
+ EraComparison,
4
+ EraDomain,
5
+ EraFigure,
6
+ EraHighlight,
7
+ useEraColumnColor
8
+ } from "./era-comparison";
9
+ export {
10
+ EraColumn,
11
+ EraComparison,
12
+ EraDomain,
13
+ EraFigure,
14
+ EraHighlight,
15
+ useEraColumnColor
16
+ };
@@ -0,0 +1,66 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import {
4
+ forwardRef
5
+ } from "react";
6
+ import { cn } from "../../lib/utils";
7
+ const VARIANT_CLASSES = {
8
+ destructive: "border-red-300 bg-red-500/10 text-red-700 hover:bg-red-500/20 dark:text-red-300",
9
+ ghost: "border-border bg-background text-foreground hover:bg-accent",
10
+ primary: "border-primary bg-primary text-primary-foreground hover:bg-primary/90"
11
+ };
12
+ const DEFAULT_LABELS = {
13
+ region: "Selection actions"
14
+ };
15
+ const FloatingToolbar = forwardRef(
16
+ (props, ref) => {
17
+ const { actions, className, labels, x, y, ...rest } = props;
18
+ const resolvedLabels = { ...DEFAULT_LABELS, ...labels };
19
+ return /* @__PURE__ */ jsx(
20
+ "div",
21
+ {
22
+ "aria-label": resolvedLabels.region,
23
+ className: cn(
24
+ "absolute z-30 flex -translate-y-full items-center gap-1 rounded-md border border-border bg-background/95 p-1 shadow-md backdrop-blur",
25
+ className
26
+ ),
27
+ "data-floating-toolbar": true,
28
+ ref,
29
+ role: "toolbar",
30
+ style: { left: `${x.toString()}px`, top: `${y.toString()}px` },
31
+ ...rest,
32
+ children: actions.map((action) => {
33
+ const variant = action.variant ?? "ghost";
34
+ const handleClick = () => {
35
+ action.onActivate();
36
+ };
37
+ return /* @__PURE__ */ jsxs(
38
+ "button",
39
+ {
40
+ "aria-label": action.ariaLabel ?? void 0,
41
+ className: cn(
42
+ "inline-flex h-7 items-center gap-1 rounded-md border px-2 text-xs font-medium transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",
43
+ VARIANT_CLASSES[variant],
44
+ action.disabled ? "cursor-not-allowed opacity-50" : ""
45
+ ),
46
+ "data-action-id": action.id,
47
+ "data-variant": variant,
48
+ disabled: action.disabled,
49
+ onClick: handleClick,
50
+ type: "button",
51
+ children: [
52
+ action.glyph ? /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: "inline-flex h-3 w-3", children: action.glyph }) : null,
53
+ /* @__PURE__ */ jsx("span", { children: action.label })
54
+ ]
55
+ },
56
+ action.id
57
+ );
58
+ })
59
+ }
60
+ );
61
+ }
62
+ );
63
+ FloatingToolbar.displayName = "FloatingToolbar";
64
+ export {
65
+ FloatingToolbar
66
+ };
@@ -0,0 +1,6 @@
1
+ import {
2
+ FloatingToolbar
3
+ } from "./floating-toolbar";
4
+ export {
5
+ FloatingToolbar
6
+ };
@@ -0,0 +1,89 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import {
4
+ forwardRef
5
+ } from "react";
6
+ import { cn } from "../../lib/utils";
7
+ const PALETTE = {
8
+ amber: { chip: "bg-amber-500 text-white", ring: "ring-amber-500" },
9
+ blue: { chip: "bg-blue-500 text-white", ring: "ring-blue-500" },
10
+ emerald: { chip: "bg-emerald-500 text-white", ring: "ring-emerald-500" },
11
+ purple: { chip: "bg-purple-500 text-white", ring: "ring-purple-500" },
12
+ red: { chip: "bg-red-500 text-white", ring: "ring-red-500" },
13
+ rose: { chip: "bg-rose-500 text-white", ring: "ring-rose-500" }
14
+ };
15
+ const DEFAULT_LABELS = {
16
+ region: "Follow mode",
17
+ stop: "Stop"
18
+ };
19
+ const FollowMode = forwardRef(
20
+ (props, ref) => {
21
+ const {
22
+ children,
23
+ className,
24
+ color = "blue",
25
+ labels,
26
+ name,
27
+ onStop,
28
+ ...rest
29
+ } = props;
30
+ const palette = PALETTE[color];
31
+ const resolvedLabels = { ...DEFAULT_LABELS, ...labels };
32
+ return /* @__PURE__ */ jsxs(
33
+ "div",
34
+ {
35
+ "aria-label": resolvedLabels.region,
36
+ className: cn(
37
+ "relative h-full w-full rounded-2xl ring-2 ring-inset",
38
+ palette.ring,
39
+ className
40
+ ),
41
+ "data-follow-color": color,
42
+ ref,
43
+ ...rest,
44
+ children: [
45
+ /* @__PURE__ */ jsxs(
46
+ "div",
47
+ {
48
+ className: "pointer-events-auto absolute left-1/2 top-2 z-30 flex -translate-x-1/2 items-center gap-1 rounded-full px-2 py-0.5 text-[11px] font-semibold shadow-sm",
49
+ "data-follow-chip": true,
50
+ children: [
51
+ /* @__PURE__ */ jsxs(
52
+ "span",
53
+ {
54
+ className: cn(
55
+ "inline-flex items-center gap-1 rounded-full px-1.5 py-0.5",
56
+ palette.chip
57
+ ),
58
+ children: [
59
+ /* @__PURE__ */ jsx("span", { "aria-hidden": "true", children: "\u25B8" }),
60
+ /* @__PURE__ */ jsxs("span", { children: [
61
+ "Following ",
62
+ name
63
+ ] })
64
+ ]
65
+ }
66
+ ),
67
+ onStop ? /* @__PURE__ */ jsx(
68
+ "button",
69
+ {
70
+ "aria-label": resolvedLabels.stop,
71
+ className: "inline-flex h-5 items-center rounded-full border border-border bg-background px-2 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground hover:bg-accent focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",
72
+ onClick: onStop,
73
+ type: "button",
74
+ children: resolvedLabels.stop
75
+ }
76
+ ) : null
77
+ ]
78
+ }
79
+ ),
80
+ children
81
+ ]
82
+ }
83
+ );
84
+ }
85
+ );
86
+ FollowMode.displayName = "FollowMode";
87
+ export {
88
+ FollowMode
89
+ };
@@ -0,0 +1,6 @@
1
+ import {
2
+ FollowMode
3
+ } from "./follow-mode";
4
+ export {
5
+ FollowMode
6
+ };