@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
@@ -2,14 +2,13 @@
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import {
4
4
  createContext,
5
- forwardRef,
5
+ use,
6
6
  useCallback,
7
- useContext,
8
- useEffect,
9
7
  useMemo,
10
8
  useState
11
9
  } from "react";
12
10
  import { Bot, MessageSquarePlus, X } from "lucide-react";
11
+ import { useEscapeKey } from "../../lib/use-escape-key";
13
12
  import { cn } from "../../lib/utils";
14
13
  import { Button } from "../button/button";
15
14
  const DEFAULT_WIDTH = 400;
@@ -35,7 +34,7 @@ const DEFAULT_CONTEXT = {
35
34
  };
36
35
  const AISidebarContext = createContext(DEFAULT_CONTEXT);
37
36
  function useAISidebar() {
38
- return useContext(AISidebarContext);
37
+ return use(AISidebarContext);
39
38
  }
40
39
  function clampWidth(value) {
41
40
  return Math.min(Math.max(value, MIN_WIDTH), MAX_WIDTH);
@@ -96,47 +95,44 @@ function AISidebarProvider({
96
95
  );
97
96
  return /* @__PURE__ */ jsx(AISidebarContext.Provider, { value, children });
98
97
  }
99
- function useEscapeToClose(enabled, isOpen, onClose) {
100
- useEffect(() => {
101
- if (!enabled || !isOpen) return;
102
- const handler = (event) => {
103
- if (event.key === "Escape") onClose();
104
- };
105
- document.addEventListener("keydown", handler);
106
- return () => {
107
- document.removeEventListener("keydown", handler);
108
- };
109
- }, [enabled, isOpen, onClose]);
110
- }
111
- const AISidebar = forwardRef(
112
- (props, ref) => {
113
- const { children, className, closeOnEscape = true, ...rest } = props;
114
- const { close, labels, openState, position, width } = useAISidebar();
115
- useEscapeToClose(closeOnEscape, openState, close);
116
- return /* @__PURE__ */ jsx(
117
- "aside",
118
- {
119
- "aria-hidden": !openState,
120
- "aria-label": labels.defaultTitle,
121
- className: cn(
122
- "fixed top-0 z-40 flex h-full flex-col border-border bg-background shadow-lg transition-transform duration-200 ease-out",
123
- position === "right" ? "right-0 border-l" : "left-0 border-r",
124
- openState ? "translate-x-0" : position === "right" ? "translate-x-full" : "-translate-x-full",
125
- "max-w-full",
126
- className
127
- ),
128
- "data-state": openState ? "open" : "closed",
129
- inert: !openState,
130
- ref,
131
- style: { width: `${width.toString()}px` },
132
- ...rest,
133
- children
134
- }
135
- );
136
- }
137
- );
98
+ const AISidebar = ({
99
+ ref,
100
+ ...props
101
+ }) => {
102
+ const { children, className, closeOnEscape = true, ...rest } = props;
103
+ const { close, labels, openState, position, width } = useAISidebar();
104
+ useEscapeKey(close, {
105
+ enabled: closeOnEscape && openState,
106
+ target: "document"
107
+ });
108
+ return /* @__PURE__ */ jsx(
109
+ "aside",
110
+ {
111
+ "aria-hidden": !openState,
112
+ "aria-label": labels.defaultTitle,
113
+ className: cn(
114
+ "fixed top-0 z-40 flex h-full flex-col border-border bg-background shadow-lg transition-transform duration-200 ease-out",
115
+ position === "right" ? "right-0 border-l" : "left-0 border-r",
116
+ openState ? "translate-x-0" : position === "right" ? "translate-x-full" : "-translate-x-full",
117
+ "max-w-full",
118
+ className
119
+ ),
120
+ "data-state": openState ? "open" : "closed",
121
+ inert: !openState,
122
+ ref,
123
+ style: { width: `${width.toString()}px` },
124
+ ...rest,
125
+ children
126
+ }
127
+ );
128
+ };
138
129
  AISidebar.displayName = "AISidebar";
139
- const AISidebarHeader = forwardRef(({ children, className, ...rest }, ref) => /* @__PURE__ */ jsx(
130
+ const AISidebarHeader = ({
131
+ children,
132
+ className,
133
+ ref,
134
+ ...rest
135
+ }) => /* @__PURE__ */ jsx(
140
136
  "header",
141
137
  {
142
138
  className: cn(
@@ -147,9 +143,14 @@ const AISidebarHeader = forwardRef(({ children, className, ...rest }, ref) => /*
147
143
  ...rest,
148
144
  children
149
145
  }
150
- ));
146
+ );
151
147
  AISidebarHeader.displayName = "AISidebarHeader";
152
- const AISidebarTitle = forwardRef(({ children, className, ...rest }, ref) => {
148
+ const AISidebarTitle = ({
149
+ children,
150
+ className,
151
+ ref,
152
+ ...rest
153
+ }) => {
153
154
  const { labels } = useAISidebar();
154
155
  return /* @__PURE__ */ jsxs(
155
156
  "h2",
@@ -166,9 +167,14 @@ const AISidebarTitle = forwardRef(({ children, className, ...rest }, ref) => {
166
167
  ]
167
168
  }
168
169
  );
169
- });
170
+ };
170
171
  AISidebarTitle.displayName = "AISidebarTitle";
171
- const AISidebarClose = forwardRef(({ className, onClick, ...rest }, ref) => {
172
+ const AISidebarClose = ({
173
+ className,
174
+ onClick,
175
+ ref,
176
+ ...rest
177
+ }) => {
172
178
  const { close, labels } = useAISidebar();
173
179
  const handleCloseSidebar = useCallback(
174
180
  (event) => {
@@ -192,9 +198,14 @@ const AISidebarClose = forwardRef(({ className, onClick, ...rest }, ref) => {
192
198
  children: /* @__PURE__ */ jsx(X, { "aria-hidden": "true", className: "size-4" })
193
199
  }
194
200
  );
195
- });
201
+ };
196
202
  AISidebarClose.displayName = "AISidebarClose";
197
- const AISidebarContent = forwardRef(({ children, className, ...rest }, ref) => /* @__PURE__ */ jsx(
203
+ const AISidebarContent = ({
204
+ children,
205
+ className,
206
+ ref,
207
+ ...rest
208
+ }) => /* @__PURE__ */ jsx(
198
209
  "div",
199
210
  {
200
211
  className: cn("flex flex-1 flex-col gap-2 overflow-y-auto p-4", className),
@@ -202,9 +213,14 @@ const AISidebarContent = forwardRef(({ children, className, ...rest }, ref) => /
202
213
  ...rest,
203
214
  children
204
215
  }
205
- ));
216
+ );
206
217
  AISidebarContent.displayName = "AISidebarContent";
207
- const AISidebarFooter = forwardRef(({ children, className, ...rest }, ref) => /* @__PURE__ */ jsx(
218
+ const AISidebarFooter = ({
219
+ children,
220
+ className,
221
+ ref,
222
+ ...rest
223
+ }) => /* @__PURE__ */ jsx(
208
224
  "footer",
209
225
  {
210
226
  className: cn("border-t border-border bg-background px-4 py-3", className),
@@ -212,9 +228,15 @@ const AISidebarFooter = forwardRef(({ children, className, ...rest }, ref) => /*
212
228
  ...rest,
213
229
  children
214
230
  }
215
- ));
231
+ );
216
232
  AISidebarFooter.displayName = "AISidebarFooter";
217
- const AISidebarTrigger = forwardRef(({ children, className, onClick, ...rest }, ref) => {
233
+ const AISidebarTrigger = ({
234
+ children,
235
+ className,
236
+ onClick,
237
+ ref,
238
+ ...rest
239
+ }) => {
218
240
  const { labels, openState, toggle } = useAISidebar();
219
241
  const handleToggleSidebar = useCallback(
220
242
  (event) => {
@@ -240,7 +262,7 @@ const AISidebarTrigger = forwardRef(({ children, className, onClick, ...rest },
240
262
  children: children ?? /* @__PURE__ */ jsx(MessageSquarePlus, { "aria-hidden": "true", className: "size-4" })
241
263
  }
242
264
  );
243
- });
265
+ };
244
266
  AISidebarTrigger.displayName = "AISidebarTrigger";
245
267
  export {
246
268
  AISidebar,
@@ -1,38 +1,44 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
- import { forwardRef } from "react";
3
2
  import { ExternalLink, Quote } from "lucide-react";
4
3
  import { cn } from "../../lib/utils";
5
- const AISourceCitation = forwardRef(
6
- ({ className, href, snippet, source, target = "_blank", title, ...props }, ref) => {
7
- return /* @__PURE__ */ jsxs(
8
- "a",
9
- {
10
- className: cn(
11
- "group inline-flex max-w-full flex-col gap-2 rounded-xl border border-border/70 bg-background px-3 py-2 text-left shadow-sm transition-colors hover:bg-muted/40 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
12
- className
13
- ),
14
- href,
15
- ref,
16
- rel: target === "_blank" ? "noreferrer" : void 0,
17
- target,
18
- ...props,
19
- children: [
20
- /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2", children: [
21
- /* @__PURE__ */ jsx(Quote, { className: "mt-0.5 size-4 shrink-0 text-muted-foreground" }),
22
- /* @__PURE__ */ jsx("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between gap-3", children: [
23
- /* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
24
- /* @__PURE__ */ jsx("p", { className: "truncate text-sm font-medium text-foreground", children: title }),
25
- /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: source })
26
- ] }),
27
- /* @__PURE__ */ jsx(ExternalLink, { className: "size-4 shrink-0 text-muted-foreground transition-transform group-hover:-translate-y-0.5 group-hover:translate-x-0.5" })
28
- ] }) })
29
- ] }),
30
- snippet ? /* @__PURE__ */ jsx("p", { className: "line-clamp-3 text-sm leading-6 text-muted-foreground", children: snippet }) : null
31
- ]
32
- }
33
- );
34
- }
35
- );
4
+ const AISourceCitation = ({
5
+ className,
6
+ href,
7
+ ref,
8
+ snippet,
9
+ source,
10
+ target = "_blank",
11
+ title,
12
+ ...props
13
+ }) => {
14
+ return /* @__PURE__ */ jsxs(
15
+ "a",
16
+ {
17
+ className: cn(
18
+ "group inline-flex max-w-full flex-col gap-2 rounded-xl border border-border/70 bg-background px-3 py-2 text-left shadow-sm transition-colors hover:bg-muted/40 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
19
+ className
20
+ ),
21
+ href,
22
+ ref,
23
+ rel: target === "_blank" ? "noreferrer" : void 0,
24
+ target,
25
+ ...props,
26
+ children: [
27
+ /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2", children: [
28
+ /* @__PURE__ */ jsx(Quote, { className: "mt-0.5 size-4 shrink-0 text-muted-foreground" }),
29
+ /* @__PURE__ */ jsx("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between gap-3", children: [
30
+ /* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
31
+ /* @__PURE__ */ jsx("p", { className: "truncate text-sm font-medium text-foreground", children: title }),
32
+ /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: source })
33
+ ] }),
34
+ /* @__PURE__ */ jsx(ExternalLink, { className: "size-4 shrink-0 text-muted-foreground transition-transform group-hover:-translate-y-0.5 group-hover:translate-x-0.5" })
35
+ ] }) })
36
+ ] }),
37
+ snippet ? /* @__PURE__ */ jsx("p", { className: "line-clamp-3 text-sm leading-6 text-muted-foreground", children: snippet }) : null
38
+ ]
39
+ }
40
+ );
41
+ };
36
42
  AISourceCitation.displayName = "AISourceCitation";
37
43
  export {
38
44
  AISourceCitation
@@ -1,40 +1,38 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
- import { forwardRef } from "react";
3
2
  import { cn } from "../../lib/utils";
4
- const AIStreamingText = forwardRef(
5
- ({
6
- className,
7
- cursor = "\u258D",
8
- isStreaming = false,
9
- showCursor = true,
10
- text,
11
- ...props
12
- }, ref) => {
13
- return /* @__PURE__ */ jsxs(
14
- "div",
15
- {
16
- "aria-live": isStreaming ? "polite" : void 0,
17
- className: cn(
18
- "text-sm leading-6 text-foreground whitespace-pre-wrap",
19
- className
20
- ),
21
- ref,
22
- ...props,
23
- children: [
24
- text,
25
- isStreaming && showCursor ? /* @__PURE__ */ jsx(
26
- "span",
27
- {
28
- "aria-hidden": "true",
29
- className: "ml-0.5 inline-block animate-pulse text-muted-foreground",
30
- children: cursor
31
- }
32
- ) : null
33
- ]
34
- }
35
- );
36
- }
37
- );
3
+ const AIStreamingText = ({
4
+ className,
5
+ cursor = "\u258D",
6
+ isStreaming = false,
7
+ ref,
8
+ showCursor = true,
9
+ text,
10
+ ...props
11
+ }) => {
12
+ return /* @__PURE__ */ jsxs(
13
+ "div",
14
+ {
15
+ "aria-live": isStreaming ? "polite" : void 0,
16
+ className: cn(
17
+ "text-sm leading-6 text-foreground whitespace-pre-wrap",
18
+ className
19
+ ),
20
+ ref,
21
+ ...props,
22
+ children: [
23
+ text,
24
+ isStreaming && showCursor ? /* @__PURE__ */ jsx(
25
+ "span",
26
+ {
27
+ "aria-hidden": "true",
28
+ className: "ml-0.5 inline-block animate-pulse text-muted-foreground",
29
+ children: cursor
30
+ }
31
+ ) : null
32
+ ]
33
+ }
34
+ );
35
+ };
38
36
  AIStreamingText.displayName = "AIStreamingText";
39
37
  export {
40
38
  AIStreamingText
@@ -1,5 +1,4 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
- import { forwardRef } from "react";
3
2
  import { cva } from "class-variance-authority";
4
3
  import { AlertCircle, CheckCircle2, Clock3, Wrench } from "lucide-react";
5
4
  import { cn } from "../../lib/utils";
@@ -26,67 +25,66 @@ const statusIconMap = {
26
25
  queued: /* @__PURE__ */ jsx(Clock3, { className: "size-4" }),
27
26
  running: /* @__PURE__ */ jsx(Wrench, { className: "size-4 animate-pulse" })
28
27
  };
29
- const AIToolCallDisplay = forwardRef(
30
- ({
31
- className,
32
- description,
33
- duration,
34
- input,
35
- output,
36
- status = "queued",
37
- toolName,
38
- ...props
39
- }, ref) => {
40
- return /* @__PURE__ */ jsxs(
41
- "div",
42
- {
43
- className: cn(
44
- "rounded-2xl border border-border/70 bg-card p-4 shadow-sm",
45
- className
46
- ),
47
- ref,
48
- ...props,
49
- children: [
50
- /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-start justify-between gap-3", children: [
51
- /* @__PURE__ */ jsxs("div", { className: "min-w-0 space-y-1", children: [
52
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-sm font-medium text-foreground", children: [
53
- statusIconMap[status],
54
- /* @__PURE__ */ jsx("span", { children: toolName })
55
- ] }),
56
- description ? /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: description }) : null
28
+ const AIToolCallDisplay = ({
29
+ className,
30
+ description,
31
+ duration,
32
+ input,
33
+ output,
34
+ ref,
35
+ status = "queued",
36
+ toolName,
37
+ ...props
38
+ }) => {
39
+ return /* @__PURE__ */ jsxs(
40
+ "div",
41
+ {
42
+ className: cn(
43
+ "rounded-2xl border border-border/70 bg-card p-4 shadow-sm",
44
+ className
45
+ ),
46
+ ref,
47
+ ...props,
48
+ children: [
49
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-start justify-between gap-3", children: [
50
+ /* @__PURE__ */ jsxs("div", { className: "min-w-0 space-y-1", children: [
51
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-sm font-medium text-foreground", children: [
52
+ statusIconMap[status],
53
+ /* @__PURE__ */ jsx("span", { children: toolName })
57
54
  ] }),
58
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
59
- duration ? /* @__PURE__ */ jsx("span", { className: "text-xs text-muted-foreground", children: duration }) : null,
60
- /* @__PURE__ */ jsx(Badge, { className: statusVariants({ status }), variant: "secondary", children: status })
61
- ] })
55
+ description ? /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: description }) : null
62
56
  ] }),
63
- input ? /* @__PURE__ */ jsxs(
64
- "details",
65
- {
66
- className: "mt-4 rounded-xl border border-border/60 bg-muted/20 p-3",
67
- open: status !== "complete",
68
- children: [
69
- /* @__PURE__ */ jsx("summary", { className: "cursor-pointer text-xs font-medium uppercase tracking-wide text-muted-foreground", children: "Tool input" }),
70
- /* @__PURE__ */ jsx("pre", { className: "mt-3 overflow-x-auto whitespace-pre-wrap text-xs leading-5 text-foreground", children: input })
71
- ]
72
- }
73
- ) : null,
74
- output ? /* @__PURE__ */ jsxs(
75
- "details",
76
- {
77
- className: "mt-3 rounded-xl border border-border/60 bg-muted/20 p-3",
78
- open: status !== "complete",
79
- children: [
80
- /* @__PURE__ */ jsx("summary", { className: "cursor-pointer text-xs font-medium uppercase tracking-wide text-muted-foreground", children: "Tool output" }),
81
- /* @__PURE__ */ jsx("pre", { className: "mt-3 overflow-x-auto whitespace-pre-wrap text-xs leading-5 text-foreground", children: output })
82
- ]
83
- }
84
- ) : null
85
- ]
86
- }
87
- );
88
- }
89
- );
57
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
58
+ duration ? /* @__PURE__ */ jsx("span", { className: "text-xs text-muted-foreground", children: duration }) : null,
59
+ /* @__PURE__ */ jsx(Badge, { className: statusVariants({ status }), variant: "secondary", children: status })
60
+ ] })
61
+ ] }),
62
+ input ? /* @__PURE__ */ jsxs(
63
+ "details",
64
+ {
65
+ className: "mt-4 rounded-xl border border-border/60 bg-muted/20 p-3",
66
+ open: status !== "complete",
67
+ children: [
68
+ /* @__PURE__ */ jsx("summary", { className: "cursor-pointer text-xs font-medium uppercase tracking-wide text-muted-foreground", children: "Tool input" }),
69
+ /* @__PURE__ */ jsx("pre", { className: "mt-3 overflow-x-auto whitespace-pre-wrap text-xs leading-5 text-foreground", children: input })
70
+ ]
71
+ }
72
+ ) : null,
73
+ output ? /* @__PURE__ */ jsxs(
74
+ "details",
75
+ {
76
+ className: "mt-3 rounded-xl border border-border/60 bg-muted/20 p-3",
77
+ open: status !== "complete",
78
+ children: [
79
+ /* @__PURE__ */ jsx("summary", { className: "cursor-pointer text-xs font-medium uppercase tracking-wide text-muted-foreground", children: "Tool output" }),
80
+ /* @__PURE__ */ jsx("pre", { className: "mt-3 overflow-x-auto whitespace-pre-wrap text-xs leading-5 text-foreground", children: output })
81
+ ]
82
+ }
83
+ ) : null
84
+ ]
85
+ }
86
+ );
87
+ };
90
88
  AIToolCallDisplay.displayName = "AIToolCallDisplay";
91
89
  export {
92
90
  AIToolCallDisplay
@@ -1,5 +1,4 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
- import { forwardRef } from "react";
3
2
  import { cva } from "class-variance-authority";
4
3
  import { cn } from "../../lib/utils";
5
4
  const alertVariants = cva(
@@ -16,7 +15,12 @@ const alertVariants = cva(
16
15
  }
17
16
  }
18
17
  );
19
- const Alert = forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx(
18
+ const Alert = ({
19
+ className,
20
+ ref,
21
+ variant,
22
+ ...props
23
+ }) => /* @__PURE__ */ jsx(
20
24
  "div",
21
25
  {
22
26
  className: cn(alertVariants({ variant }), className),
@@ -24,9 +28,14 @@ const Alert = forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__
24
28
  role: "alert",
25
29
  ...props
26
30
  }
27
- ));
31
+ );
28
32
  Alert.displayName = "Alert";
29
- const AlertTitle = forwardRef(({ children, className, ...props }, ref) => /* @__PURE__ */ jsx(
33
+ const AlertTitle = ({
34
+ children,
35
+ className,
36
+ ref,
37
+ ...props
38
+ }) => /* @__PURE__ */ jsx(
30
39
  "h5",
31
40
  {
32
41
  className: cn("mb-1 font-medium leading-none tracking-tight", className),
@@ -34,16 +43,20 @@ const AlertTitle = forwardRef(({ children, className, ...props }, ref) => /* @__
34
43
  ...props,
35
44
  children
36
45
  }
37
- ));
46
+ );
38
47
  AlertTitle.displayName = "AlertTitle";
39
- const AlertDescription = forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
48
+ const AlertDescription = ({
49
+ className,
50
+ ref,
51
+ ...props
52
+ }) => /* @__PURE__ */ jsx(
40
53
  "div",
41
54
  {
42
55
  className: cn("text-sm [&_p]:leading-relaxed", className),
43
56
  ref,
44
57
  ...props
45
58
  }
46
- ));
59
+ );
47
60
  AlertDescription.displayName = "AlertDescription";
48
61
  export {
49
62
  Alert,
@@ -1,13 +1,16 @@
1
1
  "use client";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
- import { forwardRef } from "react";
4
3
  import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
5
4
  import { cn } from "../../lib/utils";
6
5
  import { buttonVariants } from "../button/button";
7
6
  const AlertDialog = AlertDialogPrimitive.Root;
8
7
  const AlertDialogTrigger = AlertDialogPrimitive.Trigger;
9
8
  const AlertDialogPortal = AlertDialogPrimitive.Portal;
10
- const AlertDialogOverlay = forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
9
+ const AlertDialogOverlay = ({
10
+ className,
11
+ ref,
12
+ ...props
13
+ }) => /* @__PURE__ */ jsx(
11
14
  AlertDialogPrimitive.Overlay,
12
15
  {
13
16
  className: cn(
@@ -17,9 +20,13 @@ const AlertDialogOverlay = forwardRef(({ className, ...props }, ref) => /* @__PU
17
20
  ...props,
18
21
  ref
19
22
  }
20
- ));
23
+ );
21
24
  AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
22
- const AlertDialogContent = forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs(AlertDialogPortal, { children: [
25
+ const AlertDialogContent = ({
26
+ className,
27
+ ref,
28
+ ...props
29
+ }) => /* @__PURE__ */ jsxs(AlertDialogPortal, { children: [
23
30
  /* @__PURE__ */ jsx(AlertDialogOverlay, {}),
24
31
  /* @__PURE__ */ jsx(
25
32
  AlertDialogPrimitive.Content,
@@ -32,7 +39,7 @@ const AlertDialogContent = forwardRef(({ className, ...props }, ref) => /* @__PU
32
39
  ...props
33
40
  }
34
41
  )
35
- ] }));
42
+ ] });
36
43
  AlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;
37
44
  const AlertDialogHeader = ({
38
45
  className,
@@ -62,34 +69,50 @@ const AlertDialogFooter = ({
62
69
  }
63
70
  );
64
71
  AlertDialogFooter.displayName = "AlertDialogFooter";
65
- const AlertDialogTitle = forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
72
+ const AlertDialogTitle = ({
73
+ className,
74
+ ref,
75
+ ...props
76
+ }) => /* @__PURE__ */ jsx(
66
77
  AlertDialogPrimitive.Title,
67
78
  {
68
79
  className: cn("text-lg font-semibold", className),
69
80
  ref,
70
81
  ...props
71
82
  }
72
- ));
83
+ );
73
84
  AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
74
- const AlertDialogDescription = forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
85
+ const AlertDialogDescription = ({
86
+ className,
87
+ ref,
88
+ ...props
89
+ }) => /* @__PURE__ */ jsx(
75
90
  AlertDialogPrimitive.Description,
76
91
  {
77
92
  className: cn("text-sm text-muted-foreground", className),
78
93
  ref,
79
94
  ...props
80
95
  }
81
- ));
96
+ );
82
97
  AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;
83
- const AlertDialogAction = forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
98
+ const AlertDialogAction = ({
99
+ className,
100
+ ref,
101
+ ...props
102
+ }) => /* @__PURE__ */ jsx(
84
103
  AlertDialogPrimitive.Action,
85
104
  {
86
105
  className: cn(buttonVariants(), className),
87
106
  ref,
88
107
  ...props
89
108
  }
90
- ));
109
+ );
91
110
  AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
92
- const AlertDialogCancel = forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
111
+ const AlertDialogCancel = ({
112
+ className,
113
+ ref,
114
+ ...props
115
+ }) => /* @__PURE__ */ jsx(
93
116
  AlertDialogPrimitive.Cancel,
94
117
  {
95
118
  className: cn(
@@ -100,7 +123,7 @@ const AlertDialogCancel = forwardRef(({ className, ...props }, ref) => /* @__PUR
100
123
  ref,
101
124
  ...props
102
125
  }
103
- ));
126
+ );
104
127
  AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;
105
128
  export {
106
129
  AlertDialog,