@vllnt/ui 0.3.0-canary.f3cafe8 → 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 (336) hide show
  1. package/CHANGELOG.md +16 -5
  2. package/README.md +1 -1
  3. package/dist/components/accordion/accordion.js +2 -8
  4. package/dist/components/activity-heatmap/activity-heatmap.js +22 -29
  5. package/dist/components/activity-log/activity-log.js +52 -53
  6. package/dist/components/agent-activity/agent-activity.js +139 -125
  7. package/dist/components/ai-artifact/ai-artifact.js +115 -76
  8. package/dist/components/ai-chat-input/ai-chat-input.js +59 -61
  9. package/dist/components/ai-message-bubble/ai-message-bubble.js +63 -65
  10. package/dist/components/ai-sidebar/ai-sidebar.js +77 -55
  11. package/dist/components/ai-source-citation/ai-source-citation.js +38 -32
  12. package/dist/components/ai-streaming-text/ai-streaming-text.js +33 -35
  13. package/dist/components/ai-tool-call-display/ai-tool-call-display.js +58 -60
  14. package/dist/components/alert/alert.js +20 -7
  15. package/dist/components/alert-dialog/alert-dialog.js +36 -13
  16. package/dist/components/alert-pulse/alert-pulse.js +69 -69
  17. package/dist/components/anchor-port/anchor-port.js +26 -28
  18. package/dist/components/animated-beam/animated-beam.js +157 -0
  19. package/dist/components/animated-beam/index.js +4 -0
  20. package/dist/components/animated-grid-pattern/animated-grid-pattern.js +81 -0
  21. package/dist/components/animated-grid-pattern/index.js +6 -0
  22. package/dist/components/animated-list/animated-list.js +28 -0
  23. package/dist/components/animated-list/index.js +4 -0
  24. package/dist/components/animated-tabs/animated-tabs.js +98 -0
  25. package/dist/components/animated-tabs/index.js +6 -0
  26. package/dist/components/animated-testimonials/animated-testimonials.js +97 -0
  27. package/dist/components/animated-testimonials/index.js +6 -0
  28. package/dist/components/animated-text/animated-text.js +66 -67
  29. package/dist/components/animated-tooltip/animated-tooltip.js +58 -0
  30. package/dist/components/animated-tooltip/index.js +6 -0
  31. package/dist/components/auto-reload/auto-reload.js +109 -105
  32. package/dist/components/avatar/avatar.js +18 -7
  33. package/dist/components/avatar-group/avatar-group.js +35 -30
  34. package/dist/components/banner/banner.js +80 -77
  35. package/dist/components/bento-grid/bento-grid.js +46 -0
  36. package/dist/components/bento-grid/index.js +8 -0
  37. package/dist/components/blur-reveal/blur-reveal.js +83 -0
  38. package/dist/components/blur-reveal/index.js +4 -0
  39. package/dist/components/border-beam/border-beam.js +43 -45
  40. package/dist/components/bottom-activity-strip/bottom-activity-strip.js +5 -5
  41. package/dist/components/bottom-bar/bottom-bar.js +22 -18
  42. package/dist/components/button/button.js +18 -14
  43. package/dist/components/button-group/button-group.js +37 -0
  44. package/dist/components/button-group/index.js +8 -0
  45. package/dist/components/candlestick-chart/candlestick-chart.js +52 -54
  46. package/dist/components/canvas-shell/canvas-shell.js +11 -6
  47. package/dist/components/canvas-view/canvas-view.js +72 -74
  48. package/dist/components/card/card.js +35 -12
  49. package/dist/components/card-flip/card-flip.js +67 -0
  50. package/dist/components/card-flip/index.js +4 -0
  51. package/dist/components/carousel/carousel.js +78 -60
  52. package/dist/components/chain-of-thought/chain-of-thought.js +78 -0
  53. package/dist/components/chain-of-thought/index.js +6 -0
  54. package/dist/components/chart/area-chart.js +66 -67
  55. package/dist/components/chart/bar-chart.js +68 -70
  56. package/dist/components/chart/line-chart.js +69 -70
  57. package/dist/components/chat-dock-section/chat-dock-section.js +43 -45
  58. package/dist/components/checkbox/checkbox.js +6 -3
  59. package/dist/components/checkbox-group/checkbox-group.js +98 -0
  60. package/dist/components/checkbox-group/index.js +8 -0
  61. package/dist/components/choropleth-map/choropleth-map.js +90 -82
  62. package/dist/components/chronological-timeline/chronological-timeline.js +75 -72
  63. package/dist/components/civilization-card/civilization-card.js +59 -56
  64. package/dist/components/code-block/code-block.js +14 -17
  65. package/dist/components/code-playground/code-playground.js +8 -9
  66. package/dist/components/color-picker/color-picker.js +133 -0
  67. package/dist/components/color-picker/index.js +4 -0
  68. package/dist/components/combobox/combobox.js +57 -58
  69. package/dist/components/command/command.js +42 -15
  70. package/dist/components/comment-pin/comment-pin.js +58 -60
  71. package/dist/components/connector-edge/connector-edge.js +59 -54
  72. package/dist/components/content-intro/content-intro.js +4 -1
  73. package/dist/components/context-lens/context-lens.js +74 -73
  74. package/dist/components/context-menu/context-menu.js +55 -17
  75. package/dist/components/contribution-graph/contribution-graph.js +118 -0
  76. package/dist/components/contribution-graph/index.js +6 -0
  77. package/dist/components/conversation-thread/conversation-thread.js +89 -65
  78. package/dist/components/cookie-consent/cookie-consent.js +114 -115
  79. package/dist/components/copy-button/copy-button.js +100 -103
  80. package/dist/components/countdown-timer/countdown-timer.js +47 -75
  81. package/dist/components/credit-badge/credit-badge.js +26 -22
  82. package/dist/components/curriculum/curriculum.js +2 -2
  83. package/dist/components/cursor/cursor.js +52 -0
  84. package/dist/components/cursor/index.js +4 -0
  85. package/dist/components/data-list/data-list.js +54 -40
  86. package/dist/components/date-field/date-field.js +42 -0
  87. package/dist/components/date-field/index.js +4 -0
  88. package/dist/components/date-picker/date-picker.js +49 -50
  89. package/dist/components/date-range-picker/date-range-picker.js +73 -0
  90. package/dist/components/date-range-picker/index.js +6 -0
  91. package/dist/components/dialog/dialog.js +25 -9
  92. package/dist/components/dock/dock.js +109 -0
  93. package/dist/components/dock/index.js +5 -0
  94. package/dist/components/document-sibling-nav/document-sibling-nav.js +10 -5
  95. package/dist/components/dot-pattern/dot-pattern.js +36 -0
  96. package/dist/components/dot-pattern/index.js +4 -0
  97. package/dist/components/drawer/drawer.js +25 -9
  98. package/dist/components/dropdown-menu/dropdown-menu.js +56 -17
  99. package/dist/components/edge-label/edge-label.js +17 -15
  100. package/dist/components/empty-state/empty-state.js +27 -31
  101. package/dist/components/era-comparison/era-comparison.js +96 -83
  102. package/dist/components/expandable-cards/expandable-cards.js +61 -0
  103. package/dist/components/expandable-cards/index.js +6 -0
  104. package/dist/components/field/field.js +137 -0
  105. package/dist/components/field/index.js +16 -0
  106. package/dist/components/fieldset/fieldset.js +49 -0
  107. package/dist/components/fieldset/index.js +10 -0
  108. package/dist/components/file-upload/file-upload.js +4 -3
  109. package/dist/components/floating-navbar/floating-navbar.js +67 -0
  110. package/dist/components/floating-navbar/index.js +4 -0
  111. package/dist/components/floating-toolbar/floating-toolbar.js +49 -51
  112. package/dist/components/flow-diagram/flow-fullscreen.js +3 -13
  113. package/dist/components/flow-diagram/use-flow-diagram.js +7 -18
  114. package/dist/components/follow-mode/follow-mode.js +67 -69
  115. package/dist/components/form/form.js +131 -112
  116. package/dist/components/gantt-chart/gantt-chart.js +49 -51
  117. package/dist/components/gauge-chart/gauge-chart.js +132 -0
  118. package/dist/components/gauge-chart/index.js +4 -0
  119. package/dist/components/geography-quiz-map/geography-quiz-map.js +88 -78
  120. package/dist/components/glass-card/glass-card.js +25 -0
  121. package/dist/components/glass-card/index.js +4 -0
  122. package/dist/components/glass-panel/glass-panel.js +16 -14
  123. package/dist/components/glass-progress/glass-progress.js +39 -0
  124. package/dist/components/glass-progress/index.js +4 -0
  125. package/dist/components/globe-3d/globe-3d.js +70 -66
  126. package/dist/components/grid/grid.js +100 -0
  127. package/dist/components/grid/index.js +4 -0
  128. package/dist/components/group-hull/group-hull.js +27 -22
  129. package/dist/components/handoff-beacon/handoff-beacon.js +55 -57
  130. package/dist/components/heat-map-overlay/heat-map-overlay.js +55 -55
  131. package/dist/components/heat-overlay/heat-overlay.js +49 -48
  132. package/dist/components/historic-timeline/historic-timeline.js +57 -59
  133. package/dist/components/historical-figure-card/historical-figure-card.js +5 -3
  134. package/dist/components/hover-card/hover-card.js +8 -3
  135. package/dist/components/index.js +271 -0
  136. package/dist/components/infinite-plane/infinite-plane.js +34 -36
  137. package/dist/components/input/input.js +19 -17
  138. package/dist/components/input-group/index.js +14 -0
  139. package/dist/components/input-group/input-group.js +73 -0
  140. package/dist/components/input-otp/input-otp.js +25 -8
  141. package/dist/components/interactive-timeline/interactive-timeline.js +38 -15
  142. package/dist/components/item/index.js +18 -0
  143. package/dist/components/item/item.js +118 -0
  144. package/dist/components/jarvis-dock/jarvis-dock.js +40 -42
  145. package/dist/components/kbd/kbd.js +31 -42
  146. package/dist/components/keyboard-shortcuts-help/keyboard-shortcuts-help.js +7 -18
  147. package/dist/components/knowledge-check/knowledge-check.js +50 -58
  148. package/dist/components/label/label.js +6 -3
  149. package/dist/components/left-rail/left-rail.js +22 -18
  150. package/dist/components/link/index.js +5 -0
  151. package/dist/components/link/link.js +53 -0
  152. package/dist/components/liquid-glass/index.js +4 -0
  153. package/dist/components/liquid-glass/liquid-glass.js +39 -0
  154. package/dist/components/list-box/index.js +8 -0
  155. package/dist/components/list-box/list-box.js +130 -0
  156. package/dist/components/live-cursor/live-cursor.js +49 -51
  157. package/dist/components/live-feed/live-feed.js +51 -76
  158. package/dist/components/magnetic/index.js +4 -0
  159. package/dist/components/magnetic/magnetic.js +63 -0
  160. package/dist/components/magnetic-button/index.js +4 -0
  161. package/dist/components/magnetic-button/magnetic-button.js +64 -0
  162. package/dist/components/map-2d/map-2d.js +120 -101
  163. package/dist/components/map-timeline/map-timeline.js +188 -170
  164. package/dist/components/market-treemap/market-treemap.js +10 -6
  165. package/dist/components/marquee/marquee.js +64 -65
  166. package/dist/components/mdx-content/mdx-content.js +4 -1
  167. package/dist/components/menubar/menubar.js +82 -35
  168. package/dist/components/meteors/index.js +4 -0
  169. package/dist/components/meteors/meteors.js +62 -0
  170. package/dist/components/meter/index.js +5 -0
  171. package/dist/components/meter/meter.js +76 -0
  172. package/dist/components/metric-cluster/metric-cluster.js +47 -49
  173. package/dist/components/metric-gauge/metric-gauge.js +42 -44
  174. package/dist/components/mini-map-panel/mini-map-panel.js +71 -66
  175. package/dist/components/model-comparison/model-comparison.js +76 -67
  176. package/dist/components/multi-select/multi-select.js +100 -102
  177. package/dist/components/multi-select-lasso/multi-select-lasso.js +5 -5
  178. package/dist/components/native-select/index.js +4 -0
  179. package/dist/components/native-select/native-select.js +28 -0
  180. package/dist/components/navbar-saas/navbar-saas.js +54 -46
  181. package/dist/components/navigation-menu/navigation-menu.js +38 -13
  182. package/dist/components/newsletter-signup/newsletter-signup.js +5 -3
  183. package/dist/components/number-input/number-input.js +4 -3
  184. package/dist/components/number-ticker/number-ticker.js +50 -51
  185. package/dist/components/object-card/object-card.js +40 -42
  186. package/dist/components/object-handle/object-handle.js +33 -30
  187. package/dist/components/object-inspector/object-inspector.js +40 -42
  188. package/dist/components/order-book/order-book.js +59 -54
  189. package/dist/components/overview-board/overview-board.js +91 -87
  190. package/dist/components/panel/index.js +16 -0
  191. package/dist/components/panel/panel.js +95 -0
  192. package/dist/components/parallel-timeline/parallel-timeline.js +54 -56
  193. package/dist/components/particles/index.js +4 -0
  194. package/dist/components/particles/particles.js +52 -0
  195. package/dist/components/password-input/password-input.js +35 -36
  196. package/dist/components/phone-input/index.js +6 -0
  197. package/dist/components/phone-input/phone-input.js +63 -0
  198. package/dist/components/pie-chart/index.js +4 -0
  199. package/dist/components/pie-chart/pie-chart.js +130 -0
  200. package/dist/components/plan-badge/plan-badge.js +28 -24
  201. package/dist/components/playback-ghost/playback-ghost.js +46 -48
  202. package/dist/components/policy-delivery-panel/policy-delivery-panel.js +5 -5
  203. package/dist/components/popover/popover.js +8 -3
  204. package/dist/components/presence-stack/presence-stack.js +39 -41
  205. package/dist/components/presence-sync-indicator/presence-sync-indicator.js +5 -5
  206. package/dist/components/pricing-table/pricing-table.js +71 -70
  207. package/dist/components/primary-source-viewer/primary-source-viewer.js +90 -41
  208. package/dist/components/progress-tracker/progress-tracker.js +1 -1
  209. package/dist/components/progressive-blur/index.js +6 -0
  210. package/dist/components/progressive-blur/progressive-blur.js +48 -0
  211. package/dist/components/prompt-input/index.js +4 -0
  212. package/dist/components/prompt-input/prompt-input.js +185 -0
  213. package/dist/components/prompt-templates/prompt-templates.js +36 -36
  214. package/dist/components/property-section/property-section.js +28 -30
  215. package/dist/components/qr-code/index.js +4 -0
  216. package/dist/components/qr-code/qr-code.js +49 -0
  217. package/dist/components/radar-chart/index.js +6 -0
  218. package/dist/components/radar-chart/radar-chart.js +180 -0
  219. package/dist/components/radio-group/radio-group.js +12 -5
  220. package/dist/components/range-calendar/index.js +4 -0
  221. package/dist/components/range-calendar/range-calendar.js +35 -0
  222. package/dist/components/reasoning/index.js +4 -0
  223. package/dist/components/reasoning/reasoning.js +124 -0
  224. package/dist/components/relationship-inspector/relationship-inspector.js +5 -5
  225. package/dist/components/reveal-text/index.js +6 -0
  226. package/dist/components/reveal-text/reveal-text.js +93 -0
  227. package/dist/components/right-dock/right-dock.js +26 -21
  228. package/dist/components/role-badge/role-badge.js +22 -19
  229. package/dist/components/route-map/route-map.js +5 -3
  230. package/dist/components/routing-assignment-panel/routing-assignment-panel.js +5 -5
  231. package/dist/components/run-timeline/run-timeline.js +57 -59
  232. package/dist/components/runtime-overview-panel/runtime-overview-panel.js +5 -5
  233. package/dist/components/sankey-chart/index.js +6 -0
  234. package/dist/components/sankey-chart/sankey-chart.js +255 -0
  235. package/dist/components/scope-selector/scope-selector.js +39 -40
  236. package/dist/components/scramble-text/index.js +4 -0
  237. package/dist/components/scramble-text/scramble-text.js +76 -0
  238. package/dist/components/scroll-area/scroll-area.js +14 -5
  239. package/dist/components/scroll-progress/index.js +4 -0
  240. package/dist/components/scroll-progress/scroll-progress.js +50 -0
  241. package/dist/components/search-bar/search-bar.js +5 -2
  242. package/dist/components/search-field/index.js +4 -0
  243. package/dist/components/search-field/search-field.js +67 -0
  244. package/dist/components/segmented-control/segmented-control.js +14 -5
  245. package/dist/components/select/select.js +46 -15
  246. package/dist/components/selection-halo/selection-halo.js +53 -62
  247. package/dist/components/selection-presence/selection-presence.js +5 -5
  248. package/dist/components/separator/separator.js +19 -16
  249. package/dist/components/share-dialog/share-dialog.js +6 -8
  250. package/dist/components/sheet/sheet.js +26 -9
  251. package/dist/components/shimmer-button/index.js +4 -0
  252. package/dist/components/shimmer-button/shimmer-button.js +41 -0
  253. package/dist/components/shimmer-text/index.js +4 -0
  254. package/dist/components/shimmer-text/shimmer-text.js +40 -0
  255. package/dist/components/shine-border/index.js +4 -0
  256. package/dist/components/shine-border/shine-border.js +38 -0
  257. package/dist/components/shiny-button/index.js +4 -0
  258. package/dist/components/shiny-button/shiny-button.js +39 -0
  259. package/dist/components/sidebar-provider/sidebar-provider.js +2 -7
  260. package/dist/components/slider/slider.js +6 -3
  261. package/dist/components/slideshow/slideshow.js +380 -302
  262. package/dist/components/snap-guides/snap-guides.js +35 -35
  263. package/dist/components/sparkles/index.js +4 -0
  264. package/dist/components/sparkles/sparkles.js +51 -0
  265. package/dist/components/sparkline-grid/sparkline-grid.js +6 -7
  266. package/dist/components/spinner/unicode-spinner.js +57 -56
  267. package/dist/components/spinning-text/index.js +4 -0
  268. package/dist/components/spinning-text/spinning-text.js +58 -0
  269. package/dist/components/spotlight-card/index.js +4 -0
  270. package/dist/components/spotlight-card/spotlight-card.js +53 -0
  271. package/dist/components/stat-card/stat-card.js +37 -39
  272. package/dist/components/state-badge-overlay/state-badge-overlay.js +5 -5
  273. package/dist/components/status-board/status-board.js +20 -22
  274. package/dist/components/status-indicator/status-indicator.js +38 -40
  275. package/dist/components/sticky-metric/sticky-metric.js +58 -60
  276. package/dist/components/story-map/story-map.js +66 -60
  277. package/dist/components/subscription-card/subscription-card.js +68 -70
  278. package/dist/components/switch/switch.js +6 -3
  279. package/dist/components/table/table.js +47 -16
  280. package/dist/components/table-of-contents-panel/table-of-contents-panel.js +7 -18
  281. package/dist/components/tabs/tabs.js +2 -2
  282. package/dist/components/tag-group/index.js +8 -0
  283. package/dist/components/tag-group/tag-group.js +127 -0
  284. package/dist/components/tags-input/tags-input.js +59 -60
  285. package/dist/components/terminal/terminal.js +7 -15
  286. package/dist/components/text-animate/index.js +6 -0
  287. package/dist/components/text-animate/text-animate.js +129 -0
  288. package/dist/components/text-field/index.js +4 -0
  289. package/dist/components/text-field/text-field.js +59 -0
  290. package/dist/components/text-reveal/index.js +4 -0
  291. package/dist/components/text-reveal/text-reveal.js +90 -0
  292. package/dist/components/text-shimmer/index.js +4 -0
  293. package/dist/components/text-shimmer/text-shimmer.js +33 -0
  294. package/dist/components/textarea/textarea.js +17 -16
  295. package/dist/components/thinking-block/thinking-block.js +1 -1
  296. package/dist/components/thread-bubble/thread-bubble.js +51 -53
  297. package/dist/components/threshold-ring/threshold-ring.js +76 -78
  298. package/dist/components/ticker-tape/ticker-tape.js +47 -46
  299. package/dist/components/tilt-card/index.js +4 -0
  300. package/dist/components/tilt-card/tilt-card.js +70 -0
  301. package/dist/components/time-field/index.js +4 -0
  302. package/dist/components/time-field/time-field.js +42 -0
  303. package/dist/components/time-picker/index.js +4 -0
  304. package/dist/components/time-picker/time-picker.js +113 -0
  305. package/dist/components/timeline/timeline.js +70 -66
  306. package/dist/components/timeline-scrubber/timeline-scrubber.js +5 -3
  307. package/dist/components/tldr-section/tldr-section.js +9 -6
  308. package/dist/components/toast/toast.js +32 -11
  309. package/dist/components/toggle/toggle.js +8 -3
  310. package/dist/components/toggle-group/toggle-group.js +20 -6
  311. package/dist/components/toolbar/index.js +8 -0
  312. package/dist/components/toolbar/toolbar.js +87 -0
  313. package/dist/components/tooltip/tooltip.js +7 -3
  314. package/dist/components/top-bar/top-bar.js +30 -24
  315. package/dist/components/transaction-list/transaction-list.js +53 -47
  316. package/dist/components/tree-view/tree-view.js +72 -76
  317. package/dist/components/typewriter/index.js +4 -0
  318. package/dist/components/typewriter/typewriter.js +71 -0
  319. package/dist/components/typography/index.js +26 -0
  320. package/dist/components/typography/typography.js +173 -0
  321. package/dist/components/usage-breakdown/usage-breakdown.js +37 -38
  322. package/dist/components/viewport-bookmarks/viewport-bookmarks.js +5 -5
  323. package/dist/components/wallet-card/wallet-card.js +56 -58
  324. package/dist/components/watchlist/watchlist.js +47 -52
  325. package/dist/components/workspace-switcher/workspace-switcher.js +58 -52
  326. package/dist/components/world-breadcrumbs/world-breadcrumbs.js +43 -45
  327. package/dist/components/world-clock-bar/world-clock-bar.js +34 -61
  328. package/dist/components/zoom-hud/zoom-hud.js +56 -51
  329. package/dist/index.d.ts +6132 -3949
  330. package/dist/index.js +9 -0
  331. package/dist/lib/format.js +14 -0
  332. package/dist/lib/use-body-scroll-lock.js +30 -0
  333. package/dist/lib/use-escape-key.js +24 -0
  334. package/dist/lib/use-live-date.js +26 -0
  335. package/package.json +7 -5
  336. package/styles.css +84 -0
@@ -1,8 +1,5 @@
1
1
  "use client";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
- import {
4
- forwardRef
5
- } from "react";
6
3
  import { cn } from "../../lib/utils";
7
4
  const PALETTE = {
8
5
  amber: { chip: "bg-amber-500 text-white", ring: "ring-amber-500" },
@@ -16,73 +13,74 @@ const DEFAULT_LABELS = {
16
13
  region: "Follow mode",
17
14
  stop: "Stop"
18
15
  };
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
16
+ const FollowMode = ({
17
+ ref,
18
+ ...props
19
+ }) => {
20
+ const {
21
+ children,
22
+ className,
23
+ color = "blue",
24
+ labels,
25
+ name,
26
+ onStop,
27
+ ...rest
28
+ } = props;
29
+ const palette = PALETTE[color];
30
+ const resolvedLabels = { ...DEFAULT_LABELS, ...labels };
31
+ return /* @__PURE__ */ jsxs(
32
+ "div",
33
+ {
34
+ "aria-label": resolvedLabels.region,
35
+ className: cn(
36
+ "relative h-full w-full rounded-2xl ring-2 ring-inset",
37
+ palette.ring,
38
+ className
39
+ ),
40
+ "data-follow-color": color,
41
+ ref,
42
+ ...rest,
43
+ children: [
44
+ /* @__PURE__ */ jsxs(
45
+ "div",
46
+ {
47
+ 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",
48
+ "data-follow-chip": true,
49
+ children: [
50
+ /* @__PURE__ */ jsxs(
51
+ "span",
52
+ {
53
+ className: cn(
54
+ "inline-flex items-center gap-1 rounded-full px-1.5 py-0.5",
55
+ palette.chip
56
+ ),
57
+ children: [
58
+ /* @__PURE__ */ jsx("span", { "aria-hidden": "true", children: "\u25B8" }),
59
+ /* @__PURE__ */ jsxs("span", { children: [
60
+ "Following ",
61
+ name
62
+ ] })
63
+ ]
64
+ }
65
+ ),
66
+ onStop ? /* @__PURE__ */ jsx(
67
+ "button",
68
+ {
69
+ "aria-label": resolvedLabels.stop,
70
+ 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",
71
+ onClick: onStop,
72
+ type: "button",
73
+ children: resolvedLabels.stop
74
+ }
75
+ ) : null
76
+ ]
77
+ }
40
78
  ),
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
- );
79
+ children
80
+ ]
81
+ }
82
+ );
83
+ };
86
84
  FollowMode.displayName = "FollowMode";
87
85
  export {
88
86
  FollowMode
@@ -21,14 +21,14 @@ const FormItemContext = React.createContext(
21
21
  void 0
22
22
  );
23
23
  function useFormRootContext(componentName) {
24
- const context = React.useContext(FormRootContext);
24
+ const context = React.use(FormRootContext);
25
25
  if (context === void 0) {
26
26
  throw new Error(`${componentName} must be used within Form.`);
27
27
  }
28
28
  return context;
29
29
  }
30
30
  function useFormItemContext(componentName) {
31
- const context = React.useContext(FormItemContext);
31
+ const context = React.use(FormItemContext);
32
32
  if (context === void 0) {
33
33
  throw new Error(`${componentName} must be used within FormItem.`);
34
34
  }
@@ -173,12 +173,13 @@ function FormInner({
173
173
  onError,
174
174
  onSubmit,
175
175
  onValidSubmit,
176
+ ref,
176
177
  required = false,
177
178
  resolver,
178
179
  schema,
179
180
  values,
180
181
  ...props
181
- }, ref) {
182
+ }) {
182
183
  const internalForm = useForm({
183
184
  defaultValues,
184
185
  resolver: schema === void 0 ? resolver : zodResolver(schema),
@@ -215,9 +216,8 @@ function FormInner({
215
216
  }
216
217
  );
217
218
  }
218
- const FormBase = React.forwardRef(FormInner);
219
- FormBase.displayName = "Form";
220
- const Form = FormBase;
219
+ FormInner.displayName = "Form";
220
+ const Form = FormInner;
221
221
  function FormField({ ...props }) {
222
222
  const fieldContextValue = React.useMemo(
223
223
  () => ({ name: props.name }),
@@ -226,7 +226,7 @@ function FormField({ ...props }) {
226
226
  return /* @__PURE__ */ jsx(FormFieldContext.Provider, { value: fieldContextValue, children: /* @__PURE__ */ jsx(Controller, { ...props }) });
227
227
  }
228
228
  function useFormField() {
229
- const fieldContext = React.useContext(FormFieldContext);
229
+ const fieldContext = React.use(FormFieldContext);
230
230
  const itemContext = useFormItemContext("useFormField");
231
231
  const { formState, getFieldState } = useFormContext();
232
232
  if (fieldContext === void 0) {
@@ -267,65 +267,69 @@ function useFormField() {
267
267
  required: itemContext.required
268
268
  };
269
269
  }
270
- const FormItem = React.forwardRef(
271
- ({
272
- children,
273
- className,
274
- disabled: itemDisabled,
275
- invalid: itemInvalid,
276
- required: itemRequired,
277
- ...props
278
- }, ref) => {
279
- const {
280
- controlId: controlIdBase,
281
- descriptionId: descriptionIdBase,
282
- disabled,
283
- invalid,
284
- messageId: messageIdBase,
285
- required
286
- } = useFormRootContext("FormItem");
287
- const generatedId = React.useId();
288
- const hasDescription = hasRenderedFormChild(children, "FormDescription");
289
- const hasMessage = hasRenderedFormChild(children, "FormMessage");
290
- const hasMessageSlot = hasFormChild(children, "FormMessage");
291
- const effectiveDisabled = itemDisabled ?? disabled;
292
- const effectiveInvalid = itemInvalid ?? invalid;
293
- const effectiveRequired = itemRequired ?? required;
294
- const value = React.useMemo(
295
- () => ({
296
- controlId: resolveItemId(controlIdBase, generatedId, "control"),
297
- descriptionId: resolveItemId(
298
- descriptionIdBase,
299
- generatedId,
300
- "description"
301
- ),
302
- disabled: effectiveDisabled,
303
- hasDescription,
304
- hasMessage,
305
- hasMessageSlot,
306
- id: generatedId,
307
- invalid: effectiveInvalid,
308
- messageId: resolveItemId(messageIdBase, generatedId, "message"),
309
- required: effectiveRequired
310
- }),
311
- [
312
- controlIdBase,
270
+ const FormItem = ({
271
+ children,
272
+ className,
273
+ disabled: itemDisabled,
274
+ invalid: itemInvalid,
275
+ ref,
276
+ required: itemRequired,
277
+ ...props
278
+ }) => {
279
+ const {
280
+ controlId: controlIdBase,
281
+ descriptionId: descriptionIdBase,
282
+ disabled,
283
+ invalid,
284
+ messageId: messageIdBase,
285
+ required
286
+ } = useFormRootContext("FormItem");
287
+ const generatedId = React.useId();
288
+ const hasDescription = hasRenderedFormChild(children, "FormDescription");
289
+ const hasMessage = hasRenderedFormChild(children, "FormMessage");
290
+ const hasMessageSlot = hasFormChild(children, "FormMessage");
291
+ const effectiveDisabled = itemDisabled ?? disabled;
292
+ const effectiveInvalid = itemInvalid ?? invalid;
293
+ const effectiveRequired = itemRequired ?? required;
294
+ const value = React.useMemo(
295
+ () => ({
296
+ controlId: resolveItemId(controlIdBase, generatedId, "control"),
297
+ descriptionId: resolveItemId(
313
298
  descriptionIdBase,
314
- effectiveDisabled,
315
- effectiveInvalid,
316
- effectiveRequired,
317
299
  generatedId,
318
- hasDescription,
319
- hasMessage,
320
- hasMessageSlot,
321
- messageIdBase
322
- ]
323
- );
324
- return /* @__PURE__ */ jsx(FormItemContext.Provider, { value, children: /* @__PURE__ */ jsx("div", { className: cn("space-y-2", className), ref, ...props, children }) });
325
- }
326
- );
300
+ "description"
301
+ ),
302
+ disabled: effectiveDisabled,
303
+ hasDescription,
304
+ hasMessage,
305
+ hasMessageSlot,
306
+ id: generatedId,
307
+ invalid: effectiveInvalid,
308
+ messageId: resolveItemId(messageIdBase, generatedId, "message"),
309
+ required: effectiveRequired
310
+ }),
311
+ [
312
+ controlIdBase,
313
+ descriptionIdBase,
314
+ effectiveDisabled,
315
+ effectiveInvalid,
316
+ effectiveRequired,
317
+ generatedId,
318
+ hasDescription,
319
+ hasMessage,
320
+ hasMessageSlot,
321
+ messageIdBase
322
+ ]
323
+ );
324
+ return /* @__PURE__ */ jsx(FormItemContext.Provider, { value, children: /* @__PURE__ */ jsx("div", { className: cn("space-y-2", className), ref, ...props, children }) });
325
+ };
327
326
  FormItem.displayName = "FormItem";
328
- const FormLabel = React.forwardRef(({ className, htmlFor, ...props }, ref) => {
327
+ const FormLabel = ({
328
+ className,
329
+ htmlFor,
330
+ ref,
331
+ ...props
332
+ }) => {
329
333
  const { formItemId, invalid } = useFormField();
330
334
  return /* @__PURE__ */ jsx(
331
335
  Label,
@@ -337,54 +341,63 @@ const FormLabel = React.forwardRef(({ className, htmlFor, ...props }, ref) => {
337
341
  ...props
338
342
  }
339
343
  );
340
- });
344
+ };
341
345
  FormLabel.displayName = "FormLabel";
342
- const FormControl = React.forwardRef(
343
- ({ disabled: controlDisabled, id: _id, required: controlRequired, ...props }, ref) => {
344
- const {
345
- disabled,
346
- error,
347
- formDescriptionId,
348
- formItemId,
349
- formMessageId,
350
- hasDescription,
351
- hasMessage,
352
- hasMessageSlot,
353
- invalid,
354
- required
355
- } = useFormField();
356
- const { formState } = useFormContext();
357
- const hasErrorMessage = hasVisibleContent(error?.message);
358
- const describedBy = composeIds(
359
- props["aria-describedby"],
360
- hasDescription ? formDescriptionId : void 0,
361
- error === void 0 ? hasMessage && invalid ? formMessageId : void 0 : hasMessageSlot && hasErrorMessage ? formMessageId : void 0
362
- );
363
- const effectiveDisabled = controlDisabled ?? (disabled || formState.isSubmitting);
364
- const effectiveRequired = controlRequired ?? required;
365
- const nativeConstraintProps = {
366
- disabled: effectiveDisabled || void 0,
367
- required: effectiveRequired || void 0
368
- };
369
- return /* @__PURE__ */ jsx(
370
- Slot,
371
- {
372
- ...props,
373
- ...nativeConstraintProps,
374
- "aria-describedby": describedBy,
375
- "aria-disabled": props["aria-disabled"] ?? (effectiveDisabled || void 0),
376
- "aria-invalid": props["aria-invalid"] ?? (invalid || void 0),
377
- "aria-required": props["aria-required"] ?? (effectiveRequired || void 0),
378
- "data-disabled": effectiveDisabled ? "true" : void 0,
379
- "data-invalid": invalid ? "true" : void 0,
380
- id: formItemId,
381
- ref
382
- }
383
- );
384
- }
385
- );
346
+ const FormControl = ({
347
+ disabled: controlDisabled,
348
+ id: _id,
349
+ ref,
350
+ required: controlRequired,
351
+ ...props
352
+ }) => {
353
+ const {
354
+ disabled,
355
+ error,
356
+ formDescriptionId,
357
+ formItemId,
358
+ formMessageId,
359
+ hasDescription,
360
+ hasMessage,
361
+ hasMessageSlot,
362
+ invalid,
363
+ required
364
+ } = useFormField();
365
+ const { formState } = useFormContext();
366
+ const hasErrorMessage = hasVisibleContent(error?.message);
367
+ const describedBy = composeIds(
368
+ props["aria-describedby"],
369
+ hasDescription ? formDescriptionId : void 0,
370
+ error === void 0 ? hasMessage && invalid ? formMessageId : void 0 : hasMessageSlot && hasErrorMessage ? formMessageId : void 0
371
+ );
372
+ const effectiveDisabled = controlDisabled ?? (disabled || formState.isSubmitting);
373
+ const effectiveRequired = controlRequired ?? required;
374
+ const nativeConstraintProps = {
375
+ disabled: effectiveDisabled || void 0,
376
+ required: effectiveRequired || void 0
377
+ };
378
+ return /* @__PURE__ */ jsx(
379
+ Slot,
380
+ {
381
+ ...props,
382
+ ...nativeConstraintProps,
383
+ "aria-describedby": describedBy,
384
+ "aria-disabled": props["aria-disabled"] ?? (effectiveDisabled || void 0),
385
+ "aria-invalid": props["aria-invalid"] ?? (invalid || void 0),
386
+ "aria-required": props["aria-required"] ?? (effectiveRequired || void 0),
387
+ "data-disabled": effectiveDisabled ? "true" : void 0,
388
+ "data-invalid": invalid ? "true" : void 0,
389
+ id: formItemId,
390
+ ref
391
+ }
392
+ );
393
+ };
386
394
  FormControl.displayName = "FormControl";
387
- const FormDescription = React.forwardRef(({ className, id: _id, ...props }, ref) => {
395
+ const FormDescription = ({
396
+ className,
397
+ id: _id,
398
+ ref,
399
+ ...props
400
+ }) => {
388
401
  const { formDescriptionId } = useFormField();
389
402
  return /* @__PURE__ */ jsx(
390
403
  "p",
@@ -395,9 +408,15 @@ const FormDescription = React.forwardRef(({ className, id: _id, ...props }, ref)
395
408
  ref
396
409
  }
397
410
  );
398
- });
411
+ };
399
412
  FormDescription.displayName = "FormDescription";
400
- const FormMessage = React.forwardRef(({ children, className, id: _id, ...props }, ref) => {
413
+ const FormMessage = ({
414
+ children,
415
+ className,
416
+ id: _id,
417
+ ref,
418
+ ...props
419
+ }) => {
401
420
  const { error, formMessageId, invalid } = useFormField();
402
421
  const body = error?.message ?? children;
403
422
  if (!hasVisibleContent(body)) {
@@ -418,7 +437,7 @@ const FormMessage = React.forwardRef(({ children, className, id: _id, ...props }
418
437
  children: body
419
438
  }
420
439
  );
421
- });
440
+ };
422
441
  FormMessage.displayName = "FormMessage";
423
442
  export {
424
443
  Form,
@@ -1,9 +1,6 @@
1
1
  "use client";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
- import {
4
- forwardRef,
5
- useMemo
6
- } from "react";
3
+ import { useMemo } from "react";
7
4
  import { cn } from "../../lib/utils";
8
5
  const MS_PER_DAY = 24 * 60 * 60 * 1e3;
9
6
  const DEFAULT_LOCALE = "en-US";
@@ -281,53 +278,54 @@ function TimelineColumn({
281
278
  ] })
282
279
  ] });
283
280
  }
284
- const GanttChart = forwardRef(
285
- (props, ref) => {
286
- const {
287
- className,
288
- endDate,
289
- groups,
290
- labels,
291
- locale = DEFAULT_LOCALE,
292
- milestones = [],
293
- now,
294
- scale = "month",
295
- startDate,
296
- taskColumnWidth = 200,
297
- ...rest
298
- } = props;
299
- const resolvedLabels = useMemo(
300
- () => ({ ...DEFAULT_LABELS, ...labels }),
301
- [labels]
302
- );
303
- const geometry = useChartGeometry({ endDate, locale, scale, startDate });
304
- const nowDate = useMemo(() => now ? toDate(now) : /* @__PURE__ */ new Date(), [now]);
305
- return /* @__PURE__ */ jsxs(
306
- "div",
307
- {
308
- className: cn(
309
- "flex w-full overflow-x-auto rounded-2xl border bg-background text-foreground",
310
- className
311
- ),
312
- ref,
313
- ...rest,
314
- children: [
315
- /* @__PURE__ */ jsx(LeftColumn, { groups, taskColumnWidth }),
316
- /* @__PURE__ */ jsx(
317
- TimelineColumn,
318
- {
319
- geometry,
320
- groups,
321
- labels: resolvedLabels,
322
- milestones,
323
- now: nowDate
324
- }
325
- )
326
- ]
327
- }
328
- );
329
- }
330
- );
281
+ const GanttChart = ({
282
+ ref,
283
+ ...props
284
+ }) => {
285
+ const {
286
+ className,
287
+ endDate,
288
+ groups,
289
+ labels,
290
+ locale = DEFAULT_LOCALE,
291
+ milestones = [],
292
+ now,
293
+ scale = "month",
294
+ startDate,
295
+ taskColumnWidth = 200,
296
+ ...rest
297
+ } = props;
298
+ const resolvedLabels = useMemo(
299
+ () => ({ ...DEFAULT_LABELS, ...labels }),
300
+ [labels]
301
+ );
302
+ const geometry = useChartGeometry({ endDate, locale, scale, startDate });
303
+ const nowDate = useMemo(() => now ? toDate(now) : /* @__PURE__ */ new Date(), [now]);
304
+ return /* @__PURE__ */ jsxs(
305
+ "div",
306
+ {
307
+ className: cn(
308
+ "flex w-full overflow-x-auto rounded-2xl border bg-background text-foreground",
309
+ className
310
+ ),
311
+ ref,
312
+ ...rest,
313
+ children: [
314
+ /* @__PURE__ */ jsx(LeftColumn, { groups, taskColumnWidth }),
315
+ /* @__PURE__ */ jsx(
316
+ TimelineColumn,
317
+ {
318
+ geometry,
319
+ groups,
320
+ labels: resolvedLabels,
321
+ milestones,
322
+ now: nowDate
323
+ }
324
+ )
325
+ ]
326
+ }
327
+ );
328
+ };
331
329
  GanttChart.displayName = "GanttChart";
332
330
  export {
333
331
  GanttChart