@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
@@ -16,53 +16,61 @@ function NavbarSaas({
16
16
  }) {
17
17
  const pathname = usePathname();
18
18
  const { open, setOpen } = useSidebar();
19
- return /* @__PURE__ */ jsx("header", { className: "sticky top-0 z-50 w-full border-b bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60 shrink-0", children: /* @__PURE__ */ jsx("div", { className: "w-full", children: /* @__PURE__ */ jsxs("div", { className: "mx-auto flex h-16 items-center justify-between px-4", children: [
20
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4", children: [
21
- showMobileMenu ? /* @__PURE__ */ jsx(
22
- Button,
23
- {
24
- "aria-expanded": open,
25
- "aria-label": "Toggle sidebar",
26
- "data-testid": "navbar-saas-mobile-trigger",
27
- onClick: () => {
28
- setOpen(!open);
29
- },
30
- size: "icon",
31
- variant: "ghost",
32
- children: open ? /* @__PURE__ */ jsx(X, { className: "size-4" }) : /* @__PURE__ */ jsx(Menu, { className: "size-4" })
33
- }
34
- ) : null,
35
- brand ? typeof brand === "string" ? /* @__PURE__ */ jsx(Link, { className: "text-xl font-bold truncate", href: "/", children: brand }) : brand : null,
36
- navItems.length > 0 ? /* @__PURE__ */ jsx("nav", { className: "hidden lg:flex gap-6", children: navItems.map((item) => /* @__PURE__ */ jsx(
37
- Link,
38
- {
39
- className: cn(
40
- "text-sm font-medium transition-colors hover:text-foreground/80",
41
- pathname === item.href ? "text-foreground" : "text-foreground/60"
42
- ),
43
- href: item.href,
44
- children: item.title
45
- },
46
- item.href
47
- )) }) : null
48
- ] }),
49
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4", children: [
50
- rightSlot,
51
- /* @__PURE__ */ jsx(
52
- ThemeToggle,
53
- {
54
- dict: {
55
- theme: {
56
- dark: "Dark",
57
- light: "Light",
58
- system: "System",
59
- toggle_theme: "Toggle theme"
19
+ return /* @__PURE__ */ jsx(
20
+ "header",
21
+ {
22
+ className: "sticky top-0 z-50 w-full border-b bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60 shrink-0",
23
+ "data-slot": "navbar-saas",
24
+ style: { WebkitBackdropFilter: "blur(8px)" },
25
+ children: /* @__PURE__ */ jsx("div", { className: "w-full", children: /* @__PURE__ */ jsxs("div", { className: "mx-auto flex h-16 items-center justify-between px-4", children: [
26
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4", children: [
27
+ showMobileMenu ? /* @__PURE__ */ jsx(
28
+ Button,
29
+ {
30
+ "aria-expanded": open,
31
+ "aria-label": "Toggle sidebar",
32
+ "data-testid": "navbar-saas-mobile-trigger",
33
+ onClick: () => {
34
+ setOpen(!open);
35
+ },
36
+ size: "icon",
37
+ variant: "ghost",
38
+ children: open ? /* @__PURE__ */ jsx(X, { className: "size-4" }) : /* @__PURE__ */ jsx(Menu, { className: "size-4" })
60
39
  }
61
- }
62
- }
63
- )
64
- ] })
65
- ] }) }) });
40
+ ) : null,
41
+ brand ? typeof brand === "string" ? /* @__PURE__ */ jsx(Link, { className: "text-xl font-bold truncate", href: "/", children: brand }) : brand : null,
42
+ navItems.length > 0 ? /* @__PURE__ */ jsx("nav", { className: "hidden lg:flex gap-6", children: navItems.map((item) => /* @__PURE__ */ jsx(
43
+ Link,
44
+ {
45
+ className: cn(
46
+ "text-sm font-medium transition-colors hover:text-foreground/80",
47
+ pathname === item.href ? "text-foreground" : "text-foreground/60"
48
+ ),
49
+ href: item.href,
50
+ children: item.title
51
+ },
52
+ item.href
53
+ )) }) : null
54
+ ] }),
55
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4", children: [
56
+ rightSlot,
57
+ /* @__PURE__ */ jsx(
58
+ ThemeToggle,
59
+ {
60
+ dict: {
61
+ theme: {
62
+ dark: "Dark",
63
+ light: "Light",
64
+ system: "System",
65
+ toggle_theme: "Toggle theme"
66
+ }
67
+ }
68
+ }
69
+ )
70
+ ] })
71
+ ] }) })
72
+ }
73
+ );
66
74
  }
67
75
  export {
68
76
  NavbarSaas
@@ -1,11 +1,15 @@
1
1
  "use client";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
- import { forwardRef } from "react";
4
3
  import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
5
4
  import { cva } from "class-variance-authority";
6
5
  import { ChevronDown } from "lucide-react";
7
6
  import { cn } from "../../lib/utils";
8
- const NavigationMenu = forwardRef(({ children, className, ...props }, ref) => /* @__PURE__ */ jsxs(
7
+ const NavigationMenu = ({
8
+ children,
9
+ className,
10
+ ref,
11
+ ...props
12
+ }) => /* @__PURE__ */ jsxs(
9
13
  NavigationMenuPrimitive.Root,
10
14
  {
11
15
  className: cn(
@@ -19,9 +23,13 @@ const NavigationMenu = forwardRef(({ children, className, ...props }, ref) => /*
19
23
  /* @__PURE__ */ jsx(NavigationMenuViewport, {})
20
24
  ]
21
25
  }
22
- ));
26
+ );
23
27
  NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;
24
- const NavigationMenuList = forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
28
+ const NavigationMenuList = ({
29
+ className,
30
+ ref,
31
+ ...props
32
+ }) => /* @__PURE__ */ jsx(
25
33
  NavigationMenuPrimitive.List,
26
34
  {
27
35
  className: cn(
@@ -31,13 +39,18 @@ const NavigationMenuList = forwardRef(({ className, ...props }, ref) => /* @__PU
31
39
  ref,
32
40
  ...props
33
41
  }
34
- ));
42
+ );
35
43
  NavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName;
36
44
  const NavigationMenuItem = NavigationMenuPrimitive.Item;
37
45
  const navigationMenuTriggerStyle = cva(
38
46
  "group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[active]:bg-accent/50 data-[state=open]:bg-accent/50"
39
47
  );
40
- const NavigationMenuTrigger = forwardRef(({ children, className, ...props }, ref) => /* @__PURE__ */ jsxs(
48
+ const NavigationMenuTrigger = ({
49
+ children,
50
+ className,
51
+ ref,
52
+ ...props
53
+ }) => /* @__PURE__ */ jsxs(
41
54
  NavigationMenuPrimitive.Trigger,
42
55
  {
43
56
  className: cn(navigationMenuTriggerStyle(), "group", className),
@@ -55,9 +68,13 @@ const NavigationMenuTrigger = forwardRef(({ children, className, ...props }, ref
55
68
  )
56
69
  ]
57
70
  }
58
- ));
71
+ );
59
72
  NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;
60
- const NavigationMenuContent = forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
73
+ const NavigationMenuContent = ({
74
+ className,
75
+ ref,
76
+ ...props
77
+ }) => /* @__PURE__ */ jsx(
61
78
  NavigationMenuPrimitive.Content,
62
79
  {
63
80
  className: cn(
@@ -67,10 +84,14 @@ const NavigationMenuContent = forwardRef(({ className, ...props }, ref) => /* @_
67
84
  ref,
68
85
  ...props
69
86
  }
70
- ));
87
+ );
71
88
  NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;
72
89
  const NavigationMenuLink = NavigationMenuPrimitive.Link;
73
- const NavigationMenuViewport = forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ jsx(
90
+ const NavigationMenuViewport = ({
91
+ className,
92
+ ref,
93
+ ...props
94
+ }) => /* @__PURE__ */ jsx("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ jsx(
74
95
  NavigationMenuPrimitive.Viewport,
75
96
  {
76
97
  className: cn(
@@ -80,9 +101,13 @@ const NavigationMenuViewport = forwardRef(({ className, ...props }, ref) => /* @
80
101
  ref,
81
102
  ...props
82
103
  }
83
- ) }));
104
+ ) });
84
105
  NavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName;
85
- const NavigationMenuIndicator = forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
106
+ const NavigationMenuIndicator = ({
107
+ className,
108
+ ref,
109
+ ...props
110
+ }) => /* @__PURE__ */ jsx(
86
111
  NavigationMenuPrimitive.Indicator,
87
112
  {
88
113
  className: cn(
@@ -93,7 +118,7 @@ const NavigationMenuIndicator = forwardRef(({ className, ...props }, ref) => /*
93
118
  ...props,
94
119
  children: /* @__PURE__ */ jsx("div", { className: "relative top-[60%] size-2 rotate-45 rounded-tl-sm bg-border shadow-md" })
95
120
  }
96
- ));
121
+ );
97
122
  NavigationMenuIndicator.displayName = NavigationMenuPrimitive.Indicator.displayName;
98
123
  export {
99
124
  NavigationMenu,
@@ -1,7 +1,6 @@
1
1
  "use client";
2
2
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
3
  import {
4
- forwardRef,
5
4
  useCallback,
6
5
  useId,
7
6
  useReducer,
@@ -158,7 +157,10 @@ function useNewsletterSignupController(options) {
158
157
  status
159
158
  };
160
159
  }
161
- const NewsletterSignup = forwardRef((props, ref) => {
160
+ const NewsletterSignup = ({
161
+ ref,
162
+ ...props
163
+ }) => {
162
164
  const {
163
165
  autoComplete = "email",
164
166
  className,
@@ -199,7 +201,7 @@ const NewsletterSignup = forwardRef((props, ref) => {
199
201
  status: controller.status
200
202
  }
201
203
  );
202
- });
204
+ };
203
205
  NewsletterSignup.displayName = "NewsletterSignup";
204
206
  function FormBody({
205
207
  autoComplete,
@@ -95,10 +95,11 @@ function NumberInputComponent({
95
95
  min,
96
96
  onValueChange,
97
97
  placeholder,
98
+ ref: reference,
98
99
  step = 1,
99
100
  value,
100
101
  ...props
101
- }, reference) {
102
+ }) {
102
103
  const { commitValue, resolvedValue } = useNumberInputState(
103
104
  value,
104
105
  defaultValue,
@@ -160,8 +161,8 @@ function NumberInputComponent({
160
161
  }
161
162
  );
162
163
  }
163
- const NumberInput = React.forwardRef(NumberInputComponent);
164
- NumberInput.displayName = "NumberInput";
164
+ NumberInputComponent.displayName = "NumberInput";
165
+ const NumberInput = NumberInputComponent;
165
166
  export {
166
167
  NumberInput
167
168
  };
@@ -12,58 +12,57 @@ function getNumberTickerFormatter(locale, formatOptions) {
12
12
  }
13
13
  return formatter;
14
14
  }
15
- const NumberTicker = React.forwardRef(
16
- ({
17
- className,
18
- delay = 0,
19
- duration = 1.2,
20
- formatOptions,
21
- from = 0,
22
- locale,
23
- value,
24
- ...props
25
- }, ref) => {
26
- const [currentValue, setCurrentValue] = React.useState(from);
27
- React.useEffect(() => {
28
- const reducedMotion = typeof window !== "undefined" && typeof window.matchMedia === "function" && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
29
- if (reducedMotion || duration <= 0) {
30
- setCurrentValue(value);
31
- return;
32
- }
33
- let animationFrame = 0;
34
- let timeoutId = 0;
35
- const startDelay = Math.max(0, delay * 1e3);
36
- const durationMs = duration * 1e3;
37
- timeoutId = window.setTimeout(() => {
38
- const startTime = performance.now();
39
- const tick = (timestamp) => {
40
- const elapsed = timestamp - startTime;
41
- const progress = Math.min(elapsed / durationMs, 1);
42
- const nextValue = from + (value - from) * progress;
43
- setCurrentValue(nextValue);
44
- if (progress < 1) {
45
- animationFrame = window.requestAnimationFrame(tick);
46
- }
47
- };
48
- animationFrame = window.requestAnimationFrame(tick);
49
- }, startDelay);
50
- return () => {
51
- window.clearTimeout(timeoutId);
52
- window.cancelAnimationFrame(animationFrame);
15
+ const NumberTicker = ({
16
+ className,
17
+ delay = 0,
18
+ duration = 1.2,
19
+ formatOptions,
20
+ from = 0,
21
+ locale,
22
+ ref,
23
+ value,
24
+ ...props
25
+ }) => {
26
+ const [currentValue, setCurrentValue] = React.useState(() => from);
27
+ React.useEffect(() => {
28
+ const reducedMotion = typeof window !== "undefined" && typeof window.matchMedia === "function" && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
29
+ if (reducedMotion || duration <= 0) {
30
+ setCurrentValue(value);
31
+ return;
32
+ }
33
+ let animationFrame = 0;
34
+ let timeoutId = 0;
35
+ const startDelay = Math.max(0, delay * 1e3);
36
+ const durationMs = duration * 1e3;
37
+ timeoutId = window.setTimeout(() => {
38
+ const startTime = performance.now();
39
+ const tick = (timestamp) => {
40
+ const elapsed = timestamp - startTime;
41
+ const progress = Math.min(elapsed / durationMs, 1);
42
+ const nextValue = from + (value - from) * progress;
43
+ setCurrentValue(nextValue);
44
+ if (progress < 1) {
45
+ animationFrame = window.requestAnimationFrame(tick);
46
+ }
53
47
  };
54
- }, [delay, duration, from, value]);
55
- const formatter = getNumberTickerFormatter(locale, formatOptions);
56
- return /* @__PURE__ */ jsx(
57
- "span",
58
- {
59
- className: cn("tabular-nums tracking-tight", className),
60
- ref,
61
- ...props,
62
- children: formatter.format(currentValue)
63
- }
64
- );
65
- }
66
- );
48
+ animationFrame = window.requestAnimationFrame(tick);
49
+ }, startDelay);
50
+ return () => {
51
+ window.clearTimeout(timeoutId);
52
+ window.cancelAnimationFrame(animationFrame);
53
+ };
54
+ }, [delay, duration, from, value]);
55
+ const formatter = getNumberTickerFormatter(locale, formatOptions);
56
+ return /* @__PURE__ */ jsx(
57
+ "span",
58
+ {
59
+ className: cn("tabular-nums tracking-tight", className),
60
+ ref,
61
+ ...props,
62
+ children: formatter.format(currentValue)
63
+ }
64
+ );
65
+ };
67
66
  NumberTicker.displayName = "NumberTicker";
68
67
  export {
69
68
  NumberTicker
@@ -1,5 +1,4 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
- import { forwardRef } from "react";
3
2
  import { cn } from "../../lib/utils";
4
3
  import { Badge } from "../badge/badge";
5
4
  import { Button } from "../button/button";
@@ -77,48 +76,47 @@ function ObjectCardActions({ actions }) {
77
76
  );
78
77
  }) });
79
78
  }
80
- const ObjectCard = forwardRef(
81
- ({
82
- actions,
83
- children,
84
- className,
85
- footer,
86
- kind = "Object",
87
- metrics = [],
88
- ports,
89
- state = "idle",
90
- summary,
91
- title,
92
- ...props
93
- }, ref) => /* @__PURE__ */ jsxs(
94
- "article",
95
- {
96
- className: cn(
97
- "group relative flex min-w-[320px] max-w-[420px] flex-col gap-4 rounded-[1.5rem] border border-border/70 bg-[linear-gradient(180deg,oklch(var(--background)),oklch(var(--muted)/0.22))] p-5 shadow-[0_24px_80px_oklch(var(--foreground)/0.08)] transition-transform duration-200 hover:-translate-y-0.5",
98
- className
79
+ const ObjectCard = ({
80
+ actions,
81
+ children,
82
+ className,
83
+ footer,
84
+ kind = "Object",
85
+ metrics = [],
86
+ ports,
87
+ ref,
88
+ state = "idle",
89
+ summary,
90
+ title,
91
+ ...props
92
+ }) => /* @__PURE__ */ jsxs(
93
+ "article",
94
+ {
95
+ className: cn(
96
+ "group relative flex min-w-[320px] max-w-[420px] flex-col gap-4 rounded-[1.5rem] border border-border/70 bg-[linear-gradient(180deg,oklch(var(--background)),oklch(var(--muted)/0.22))] p-5 shadow-[0_24px_80px_oklch(var(--foreground)/0.08)] transition-transform duration-200 hover:-translate-y-0.5",
97
+ className
98
+ ),
99
+ "data-state": state,
100
+ ref,
101
+ ...props,
102
+ children: [
103
+ /* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute inset-x-5 top-0 h-px bg-[linear-gradient(90deg,transparent,oklch(var(--foreground)/0.22),transparent)]" }),
104
+ /* @__PURE__ */ jsx(
105
+ ObjectCardHeader,
106
+ {
107
+ kind,
108
+ ports,
109
+ state,
110
+ summary,
111
+ title
112
+ }
99
113
  ),
100
- "data-state": state,
101
- ref,
102
- ...props,
103
- children: [
104
- /* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute inset-x-5 top-0 h-px bg-[linear-gradient(90deg,transparent,oklch(var(--foreground)/0.22),transparent)]" }),
105
- /* @__PURE__ */ jsx(
106
- ObjectCardHeader,
107
- {
108
- kind,
109
- ports,
110
- state,
111
- summary,
112
- title
113
- }
114
- ),
115
- /* @__PURE__ */ jsx(ObjectCardMetrics, { metrics }),
116
- children ? /* @__PURE__ */ jsx("div", { className: "space-y-3", children }) : null,
117
- /* @__PURE__ */ jsx(ObjectCardActions, { actions }),
118
- footer ? /* @__PURE__ */ jsx("div", { className: "border-t border-border/60 pt-3 text-sm text-muted-foreground", children: footer }) : null
119
- ]
120
- }
121
- )
114
+ /* @__PURE__ */ jsx(ObjectCardMetrics, { metrics }),
115
+ children ? /* @__PURE__ */ jsx("div", { className: "space-y-3", children }) : null,
116
+ /* @__PURE__ */ jsx(ObjectCardActions, { actions }),
117
+ footer ? /* @__PURE__ */ jsx("div", { className: "border-t border-border/60 pt-3 text-sm text-muted-foreground", children: footer }) : null
118
+ ]
119
+ }
122
120
  );
123
121
  ObjectCard.displayName = "ObjectCard";
124
122
  export {
@@ -1,36 +1,39 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
- import { forwardRef } from "react";
3
2
  import { cn } from "../../lib/utils";
4
- const ObjectHandle = forwardRef(
5
- ({ className, hint, label = "Move", ...props }, ref) => /* @__PURE__ */ jsxs(
6
- "button",
7
- {
8
- className: cn(
9
- "inline-flex items-center gap-2 rounded-full border border-border/60 bg-background/85 px-3 py-1.5 text-xs font-medium text-muted-foreground shadow-sm transition-colors hover:border-border hover:text-foreground",
10
- className
3
+ const ObjectHandle = ({
4
+ className,
5
+ hint,
6
+ label = "Move",
7
+ ref,
8
+ ...props
9
+ }) => /* @__PURE__ */ jsxs(
10
+ "button",
11
+ {
12
+ className: cn(
13
+ "inline-flex items-center gap-2 rounded-full border border-border/60 bg-background/85 px-3 py-1.5 text-xs font-medium text-muted-foreground shadow-sm transition-colors hover:border-border hover:text-foreground",
14
+ className
15
+ ),
16
+ ref,
17
+ type: "button",
18
+ ...props,
19
+ children: [
20
+ /* @__PURE__ */ jsxs(
21
+ "span",
22
+ {
23
+ "aria-hidden": "true",
24
+ className: "grid grid-cols-2 gap-0.5 text-[8px] leading-none",
25
+ children: [
26
+ /* @__PURE__ */ jsx("span", { children: "\u2022" }),
27
+ /* @__PURE__ */ jsx("span", { children: "\u2022" }),
28
+ /* @__PURE__ */ jsx("span", { children: "\u2022" }),
29
+ /* @__PURE__ */ jsx("span", { children: "\u2022" })
30
+ ]
31
+ }
11
32
  ),
12
- ref,
13
- type: "button",
14
- ...props,
15
- children: [
16
- /* @__PURE__ */ jsxs(
17
- "span",
18
- {
19
- "aria-hidden": "true",
20
- className: "grid grid-cols-2 gap-0.5 text-[8px] leading-none",
21
- children: [
22
- /* @__PURE__ */ jsx("span", { children: "\u2022" }),
23
- /* @__PURE__ */ jsx("span", { children: "\u2022" }),
24
- /* @__PURE__ */ jsx("span", { children: "\u2022" }),
25
- /* @__PURE__ */ jsx("span", { children: "\u2022" })
26
- ]
27
- }
28
- ),
29
- /* @__PURE__ */ jsx("span", { children: label }),
30
- hint ? /* @__PURE__ */ jsx("span", { className: "text-muted-foreground/80", children: hint }) : null
31
- ]
32
- }
33
- )
33
+ /* @__PURE__ */ jsx("span", { children: label }),
34
+ hint ? /* @__PURE__ */ jsx("span", { className: "text-muted-foreground/80", children: hint }) : null
35
+ ]
36
+ }
34
37
  );
35
38
  ObjectHandle.displayName = "ObjectHandle";
36
39
  export {
@@ -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 KIND_LABEL = {
8
5
  agent: "Agent",
@@ -76,60 +73,61 @@ const Header = (props) => /* @__PURE__ */ jsxs("header", { className: "flex flex
76
73
  props.subtitle ? /* @__PURE__ */ jsx("p", { className: "truncate text-xs text-muted-foreground", children: props.subtitle }) : null
77
74
  ] })
78
75
  ] });
79
- const ObjectInspector = forwardRef(
80
- (props, ref) => {
81
- const {
82
- children,
83
- className,
84
- kind,
85
- labels,
86
- status = "idle",
87
- subtitle,
88
- title,
89
- ...rest
90
- } = props;
91
- const resolvedLabels = { ...DEFAULT_LABELS, ...labels };
92
- if (!kind || !title) {
93
- return /* @__PURE__ */ jsxs(
94
- "section",
95
- {
96
- "aria-label": resolvedLabels.region,
97
- className: cn(
98
- "flex w-full flex-col items-center justify-center gap-1 rounded-2xl border bg-background p-6 text-center text-xs text-muted-foreground",
99
- className
100
- ),
101
- "data-object-inspector": true,
102
- "data-object-state": "empty",
103
- ref,
104
- ...rest,
105
- children: [
106
- /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: "text-lg", children: "\u25C7" }),
107
- /* @__PURE__ */ jsx("span", { children: resolvedLabels.empty })
108
- ]
109
- }
110
- );
111
- }
76
+ const ObjectInspector = ({
77
+ ref,
78
+ ...props
79
+ }) => {
80
+ const {
81
+ children,
82
+ className,
83
+ kind,
84
+ labels,
85
+ status = "idle",
86
+ subtitle,
87
+ title,
88
+ ...rest
89
+ } = props;
90
+ const resolvedLabels = { ...DEFAULT_LABELS, ...labels };
91
+ if (!kind || !title) {
112
92
  return /* @__PURE__ */ jsxs(
113
93
  "section",
114
94
  {
115
95
  "aria-label": resolvedLabels.region,
116
96
  className: cn(
117
- "flex w-full flex-col gap-3 rounded-2xl border bg-background p-3 text-foreground",
97
+ "flex w-full flex-col items-center justify-center gap-1 rounded-2xl border bg-background p-6 text-center text-xs text-muted-foreground",
118
98
  className
119
99
  ),
120
100
  "data-object-inspector": true,
121
- "data-object-kind": kind,
122
- "data-object-status": status,
101
+ "data-object-state": "empty",
123
102
  ref,
124
103
  ...rest,
125
104
  children: [
126
- /* @__PURE__ */ jsx(Header, { kind, status, subtitle, title }),
127
- children ? /* @__PURE__ */ jsx("div", { className: "space-y-2", children }) : null
105
+ /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: "text-lg", children: "\u25C7" }),
106
+ /* @__PURE__ */ jsx("span", { children: resolvedLabels.empty })
128
107
  ]
129
108
  }
130
109
  );
131
110
  }
132
- );
111
+ return /* @__PURE__ */ jsxs(
112
+ "section",
113
+ {
114
+ "aria-label": resolvedLabels.region,
115
+ className: cn(
116
+ "flex w-full flex-col gap-3 rounded-2xl border bg-background p-3 text-foreground",
117
+ className
118
+ ),
119
+ "data-object-inspector": true,
120
+ "data-object-kind": kind,
121
+ "data-object-status": status,
122
+ ref,
123
+ ...rest,
124
+ children: [
125
+ /* @__PURE__ */ jsx(Header, { kind, status, subtitle, title }),
126
+ children ? /* @__PURE__ */ jsx("div", { className: "space-y-2", children }) : null
127
+ ]
128
+ }
129
+ );
130
+ };
133
131
  ObjectInspector.displayName = "ObjectInspector";
134
132
  export {
135
133
  ObjectInspector