Skip to content

feat: add shadcn/ui components — AI chat, layout, form, data display,… - #8

Merged
ladaniprem merged 1 commit into
masterfrom
07-ui-components
Jul 4, 2026
Merged

ladaniprem merged 1 commit into
masterfrom
07-ui-components

Conversation

@ladaniprem

Copy link
Copy Markdown
Owner

… overlays

Copilot AI review requested due to automatic review settings July 4, 2026 12:17
@coderabbitai

coderabbitai Bot commented Jul 4, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@ladaniprem, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 57 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Free

Run ID: a400e37d-5942-4885-8b8f-fa3715b549e7

📥 Commits

Reviewing files that changed from the base of the PR and between 4ece9c2 and d71ee5b.

📒 Files selected for processing (66)
  • packages/ui/package.json
  • packages/ui/src/components/accordion.tsx
  • packages/ui/src/components/ai/branch.tsx
  • packages/ui/src/components/ai/conversation.tsx
  • packages/ui/src/components/ai/input.tsx
  • packages/ui/src/components/ai/message.tsx
  • packages/ui/src/components/ai/reasoning.tsx
  • packages/ui/src/components/ai/response.tsx
  • packages/ui/src/components/ai/source.tsx
  • packages/ui/src/components/ai/suggestion.tsx
  • packages/ui/src/components/ai/tool.tsx
  • packages/ui/src/components/alert-dialog.tsx
  • packages/ui/src/components/alert.tsx
  • packages/ui/src/components/aspect-ratio.tsx
  • packages/ui/src/components/avatar.tsx
  • packages/ui/src/components/badge.tsx
  • packages/ui/src/components/breadcrumb.tsx
  • packages/ui/src/components/button.tsx
  • packages/ui/src/components/calendar.tsx
  • packages/ui/src/components/card.tsx
  • packages/ui/src/components/carousel.tsx
  • packages/ui/src/components/chart.tsx
  • packages/ui/src/components/checkbox.tsx
  • packages/ui/src/components/collapsible.tsx
  • packages/ui/src/components/command.tsx
  • packages/ui/src/components/context-menu.tsx
  • packages/ui/src/components/conversation-status-icon.tsx
  • packages/ui/src/components/dialog.tsx
  • packages/ui/src/components/dicebear-avatar.tsx
  • packages/ui/src/components/drawer.tsx
  • packages/ui/src/components/dropdown-menu.tsx
  • packages/ui/src/components/dropzone.tsx
  • packages/ui/src/components/form.tsx
  • packages/ui/src/components/herowith-logos.tsx
  • packages/ui/src/components/hint.tsx
  • packages/ui/src/components/hover-card.tsx
  • packages/ui/src/components/infinite-scroll-trigger.tsx
  • packages/ui/src/components/input-otp.tsx
  • packages/ui/src/components/input.tsx
  • packages/ui/src/components/label.tsx
  • packages/ui/src/components/menubar.tsx
  • packages/ui/src/components/navigation-menu.tsx
  • packages/ui/src/components/pagination.tsx
  • packages/ui/src/components/popover.tsx
  • packages/ui/src/components/progress.tsx
  • packages/ui/src/components/ratio-group.tsx
  • packages/ui/src/components/resizable.tsx
  • packages/ui/src/components/scroll-area.tsx
  • packages/ui/src/components/select.tsx
  • packages/ui/src/components/separator.tsx
  • packages/ui/src/components/sheet.tsx
  • packages/ui/src/components/sidebar.tsx
  • packages/ui/src/components/skeleton.tsx
  • packages/ui/src/components/slider.tsx
  • packages/ui/src/components/sonner.tsx
  • packages/ui/src/components/switch.tsx
  • packages/ui/src/components/table.tsx
  • packages/ui/src/components/tabs.tsx
  • packages/ui/src/components/textarea.tsx
  • packages/ui/src/components/theme-toggle.tsx
  • packages/ui/src/components/toggle-group.tsx
  • packages/ui/src/components/toggle.tsx
  • packages/ui/src/components/tooltip.tsx
  • packages/ui/src/hooks/use-infinite-scroll.ts
  • packages/ui/src/hooks/use-mobile.ts
  • packages/ui/src/styles/globals.css

Note

🎁 Summarized by CodeRabbit Free

Your organization is on the Free plan. CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please upgrade your subscription to CodeRabbit Pro by visiting https://app.coderabbit.ai/login.

Comment @coderabbitai help to get the list of available commands.

@ladaniprem
ladaniprem merged commit 6c607dd into master Jul 4, 2026
3 checks passed

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR expands the shared @workspace/ui package with a large set of shadcn/ui-style components (largely Radix wrappers), AI chat/conversation UI primitives, and supporting hooks/styles/dependencies to enable richer UI patterns across the workspace.

Changes:

  • Added many new UI components (Radix-based primitives, layout/navigation widgets, AI chat UI building blocks).
  • Introduced new client-side hooks/components for mobile detection and infinite scroll behavior.
  • Updated global styles and packages/ui dependencies to support the added components.

Reviewed changes

Copilot reviewed 66 out of 66 changed files in this pull request and generated 15 comments.

Show a summary per file
File Description
packages/ui/src/styles/globals.css Adds x-slider animation variable + keyframes.
packages/ui/src/hooks/use-mobile.ts Adds useIsMobile breakpoint hook.
packages/ui/src/hooks/use-infinite-scroll.ts Adds useInfiniteScroll IntersectionObserver hook.
packages/ui/src/components/tooltip.tsx Adds Radix tooltip wrapper.
packages/ui/src/components/toggle.tsx Adds Radix toggle wrapper + variants.
packages/ui/src/components/toggle-group.tsx Adds Radix toggle-group wrapper.
packages/ui/src/components/theme-toggle.tsx Adds theme switcher using next-themes.
packages/ui/src/components/textarea.tsx Adds styled textarea primitive.
packages/ui/src/components/tabs.tsx Adds Radix tabs wrapper.
packages/ui/src/components/table.tsx Adds table primitives + container.
packages/ui/src/components/switch.tsx Adds Radix switch wrapper.
packages/ui/src/components/sonner.tsx Adds Sonner toaster wrapper.
packages/ui/src/components/slider.tsx Adds Radix slider wrapper.
packages/ui/src/components/skeleton.tsx Adds skeleton loading primitive.
packages/ui/src/components/sidebar.tsx Adds complex responsive sidebar system.
packages/ui/src/components/sheet.tsx Adds Radix dialog-based sheet wrapper.
packages/ui/src/components/separator.tsx Adds Radix separator wrapper.
packages/ui/src/components/select.tsx Adds Radix select wrapper.
packages/ui/src/components/scroll-area.tsx Adds Radix scroll-area wrapper.
packages/ui/src/components/resizable.tsx Adds resizable panels wrapper.
packages/ui/src/components/ratio-group.tsx Adds Radix radio-group wrapper (file named ratio-group).
packages/ui/src/components/progress.tsx Adds Radix progress wrapper.
packages/ui/src/components/popover.tsx Adds Radix popover wrapper.
packages/ui/src/components/pagination.tsx Adds pagination primitives.
packages/ui/src/components/navigation-menu.tsx Adds Radix navigation-menu wrapper.
packages/ui/src/components/menubar.tsx Adds Radix menubar wrapper.
packages/ui/src/components/label.tsx Adds Radix label wrapper.
packages/ui/src/components/input.tsx Updates input styling/classes.
packages/ui/src/components/input-otp.tsx Adds OTP input wrappers.
packages/ui/src/components/infinite-scroll-trigger.tsx Adds load-more trigger component.
packages/ui/src/components/hover-card.tsx Adds Radix hover-card wrapper.
packages/ui/src/components/hint.tsx Adds tooltip-based hint wrapper.
packages/ui/src/components/herowith-logos.tsx Adds animated hero + scrolling logos component.
packages/ui/src/components/form.tsx Adds react-hook-form shadcn-style wrappers.
packages/ui/src/components/dropzone.tsx Adds react-dropzone wrapper components.
packages/ui/src/components/dropdown-menu.tsx Adds Radix dropdown-menu wrapper.
packages/ui/src/components/drawer.tsx Adds Vaul drawer wrapper.
packages/ui/src/components/dicebear-avatar.tsx Adds DiceBear avatar generator wrapper.
packages/ui/src/components/dialog.tsx Adds Radix dialog wrapper.
packages/ui/src/components/conversation-status-icon.tsx Adds status icon component.
packages/ui/src/components/context-menu.tsx Adds Radix context-menu wrapper.
packages/ui/src/components/command.tsx Adds cmdk-based command palette wrappers.
packages/ui/src/components/collapsible.tsx Adds Radix collapsible wrapper.
packages/ui/src/components/checkbox.tsx Adds Radix checkbox wrapper.
packages/ui/src/components/chart.tsx Adds Recharts wrapper + theming utilities.
packages/ui/src/components/carousel.tsx Adds Embla carousel wrappers.
packages/ui/src/components/card.tsx Adds card layout primitives.
packages/ui/src/components/calendar.tsx Adds react-day-picker calendar wrapper.
packages/ui/src/components/button.tsx Updates button variants and Radix slot usage.
packages/ui/src/components/breadcrumb.tsx Adds breadcrumb primitives.
packages/ui/src/components/badge.tsx Adds badge primitive.
packages/ui/src/components/avatar.tsx Adds Radix avatar wrapper.
packages/ui/src/components/aspect-ratio.tsx Adds Radix aspect-ratio wrapper.
packages/ui/src/components/alert.tsx Adds alert primitive.
packages/ui/src/components/alert-dialog.tsx Adds Radix alert-dialog wrapper.
packages/ui/src/components/ai/tool.tsx Adds AI tool status UI primitives.
packages/ui/src/components/ai/suggestion.tsx Adds AI suggestion chip primitives.
packages/ui/src/components/ai/source.tsx Adds AI “sources” collapsible primitives.
packages/ui/src/components/ai/response.tsx Adds markdown response renderer wrapper.
packages/ui/src/components/ai/reasoning.tsx Adds AI reasoning collapsible component.
packages/ui/src/components/ai/message.tsx Adds AI chat message primitives.
packages/ui/src/components/ai/input.tsx Adds AI input form/toolbar primitives.
packages/ui/src/components/ai/conversation.tsx Adds conversation scroller wrapper.
packages/ui/src/components/ai/branch.tsx Adds branching message selector components.
packages/ui/src/components/accordion.tsx Adds Radix accordion wrapper.
packages/ui/package.json Adds dependencies needed by the new components.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +1 to +12
import { Button } from "@workspace/ui/components/button";
import { cn } from "@workspace/ui/lib/utils";

interface InfiniteScrollTriggerProps {
canLoadMore: boolean;
isLoadingMore: boolean;
onLoadMore: () => void;
loadMoreText?: string;
noMoreText?: string;
className?: string;
ref?: React.Ref<HTMLDivElement>
};
Comment on lines +1 to +3
import { cn } from "@workspace/ui/lib/utils"

function Skeleton({ className, ...props }: React.ComponentProps<"div">) {
Comment on lines +3 to +15
import {
Tooltip,
TooltipContent,
TooltipProvider,
TooltipTrigger,
} from "@workspace/ui/components/tooltip";

interface HintProps {
children: React.ReactNode;
text: string;
side?: "top" | "right" | "bottom" | "left";
align?: "start" | "center" | "end";
};
Comment on lines +17 to +33
export const Hint = ({
children,
text,
side = "top",
align = "center",
}: HintProps) => {
return (
<TooltipProvider>
<Tooltip>
<TooltipTrigger asChild>{children}</TooltipTrigger>
<TooltipContent>
<p>{text}</p>
</TooltipContent>
</Tooltip>
</TooltipProvider>
);
};
Comment on lines +171 to +173
const newSize =
(size ?? Children.count(props.children) > 1) ? "default" : "icon";

@@ -0,0 +1,25 @@
"use client"

import { useTheme } from "next-themes"
@@ -0,0 +1,168 @@
import * as React from "react"
@@ -0,0 +1,19 @@
import * as React from "react"
@@ -0,0 +1,54 @@
import { useCallback, useEffect, useRef } from "react";
Comment on lines +1 to +5
"use client"

import * as React from "react"
import * as RadioGroupPrimitive from "@radix-ui/react-radio-group"
import { CircleIcon } from "lucide-react"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants