Skip to content

feat: Remove radix ui#699

Merged
aXenDeveloper merged 2 commits into
canaryfrom
feat/remove_radix
Jul 3, 2026
Merged

feat: Remove radix ui#699
aXenDeveloper merged 2 commits into
canaryfrom
feat/remove_radix

Conversation

@aXenDeveloper

Copy link
Copy Markdown
Owner

Improving Documentation

Description

What?

Why?

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@vercel

vercel Bot commented Jul 3, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
vitnode-docs Error Error Jul 3, 2026 7:11pm

@gemini-code-assist gemini-code-assist Bot 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.

Code Review

This pull request migrates various UI components from Radix UI to Base UI, updates Tailwind CSS theme configurations, and adjusts global styles. The review feedback highlights several issues with the migration: in input-group.tsx, className must be explicitly destructured to avoid overwriting variant classes; in navigation-menu.tsx, NavigationMenuIndicator was incorrectly migrated to NavigationMenuPrimitive.Icon instead of using NavigationMenu.Arrow; and in tooltip.tsx, data-slot attributes were invalidly added to logical components (Tooltip.Provider and Tooltip.Root) that do not render DOM elements.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment on lines 89 to +95
variant = "ghost",
size = "xs",
...props
}: Omit<React.ComponentProps<typeof Button>, "size"> &
VariantProps<typeof inputGroupButtonVariants>) {
}: Omit<React.ComponentProps<typeof Button>, "size" | "type"> &
VariantProps<typeof inputGroupButtonVariants> & {
type?: "button" | "reset" | "submit";
}) {

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.

high

The className prop is not destructured from the component parameters, which means it remains inside the ...props object. Because {...props} is spread after the custom className on the Button component, any className passed to InputGroupButton will completely overwrite the classes generated by inputGroupButtonVariants({ size }) instead of merging them.

To fix this, destructure className explicitly so it is excluded from props and can be correctly merged using cn.

  className,
  variant = "ghost",
  size = "xs",
  ...props
}: Omit<React.ComponentProps<typeof Button>, "size" | "type"> &
  VariantProps<typeof inputGroupButtonVariants> & {
    type?: "button" | "reset" | "submit";
  }) {

Comment on lines 146 to 162
function NavigationMenuIndicator({
className,
...props
}: React.ComponentProps<typeof NavigationMenuPrimitive.Indicator>) {
}: React.ComponentProps<typeof NavigationMenuPrimitive.Icon>) {
return (
<NavigationMenuPrimitive.Indicator
<NavigationMenuPrimitive.Icon
className={cn(
"data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:animate-in data-[state=visible]:fade-in top-full z-1 flex h-1.5 items-end justify-center overflow-hidden",
"top-full z-1 flex h-1.5 items-end justify-center overflow-hidden",
className,
)}
data-slot="navigation-menu-indicator"
{...props}
>
<div className="bg-border relative top-[60%] h-2 w-2 rotate-45 rounded-ss-sm shadow-md" />
</NavigationMenuPrimitive.Indicator>
</NavigationMenuPrimitive.Icon>
);
}

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.

high

In the migration from Radix UI to Base UI, NavigationMenuIndicator has been updated to render NavigationMenuPrimitive.Icon instead of an indicator primitive.

In Base UI, NavigationMenu.Icon is designed to be placed inside NavigationMenu.Trigger to render visual cues (like carets) and does not possess the layout tracking logic of a floating indicator. If you want to render an arrow pointing to the active trigger, use NavigationMenu.Arrow inside NavigationMenu.Popup instead, or remove NavigationMenuIndicator entirely if it is no longer needed.

Comment on lines +13 to +17
<TooltipPrimitive.Provider
data-slot="tooltip-provider"
delay={delay}
{...props}
/>

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.

medium

In Base UI, Tooltip.Provider is a logical context provider and does not render a DOM element. Passing data-slot="tooltip-provider" is invalid as it cannot accept DOM attributes and will be ignored or cause TypeScript compilation errors.

    <TooltipPrimitive.Provider
      delay={delay}
      {...props}
    />

Comment on lines 21 to 23
function Tooltip({ ...props }: TooltipPrimitive.Root.Props) {
return <TooltipPrimitive.Root {...props} />;
return <TooltipPrimitive.Root data-slot="tooltip" {...props} />;
}

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.

medium

In Base UI, Tooltip.Root is a logical wrapper component that manages state and does not render its own HTML element. Passing data-slot="tooltip" to it is invalid and will be ignored or cause TypeScript compilation errors.

Suggested change
function Tooltip({ ...props }: TooltipPrimitive.Root.Props) {
return <TooltipPrimitive.Root {...props} />;
return <TooltipPrimitive.Root data-slot="tooltip" {...props} />;
}
function Tooltip({ ...props }: TooltipPrimitive.Root.Props) {
return <TooltipPrimitive.Root {...props} />;
}

@aXenDeveloper aXenDeveloper merged commit f3de60a into canary Jul 3, 2026
2 of 4 checks passed
@aXenDeveloper aXenDeveloper deleted the feat/remove_radix branch July 3, 2026 19:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

💡 Feature A new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant