import * as React from "react"; import { mergeProps } from "@base-ui/react/merge-props"; import { useRender } from "@base-ui/react/use-render"; import { Input } from "../primitives"; import { Separator } from "../primitives"; import { cn } from "../../lib/utils"; function SidebarInset({ className, ...props }: React.ComponentProps<"main">) { return (
); } function SidebarInput({ className, ...props }: React.ComponentProps) { return ( ); } function SidebarHeader({ className, ...props }: React.ComponentProps<"div">) { return (
); } function SidebarFooter({ className, ...props }: React.ComponentProps<"div">) { return (
); } function SidebarSeparator({ className, ...props }: React.ComponentProps) { return ( ); } function SidebarContent({ className, ...props }: React.ComponentProps<"div">) { return (
); } function SidebarGroup({ className, ...props }: React.ComponentProps<"div">) { return (
); } function SidebarGroupLabel({ className, render, ...props }: useRender.ComponentProps<"div"> & React.ComponentProps<"div">) { return useRender({ defaultTagName: "div", props: mergeProps<"div">( { className: cn( "flex h-8 shrink-0 items-center rounded-md px-2 text-xs text-[color:color-mix(in_oklab,var(--sidebar-foreground)_70%,transparent)] ring-[color:var(--sidebar-ring)] outline-hidden transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0", className, ), }, props, ), render, state: { slot: "sidebar-group-label", sidebar: "group-label", }, }); } function SidebarGroupAction({ className, render, ...props }: useRender.ComponentProps<"button"> & React.ComponentProps<"button">) { return useRender({ defaultTagName: "button", props: mergeProps<"button">( { className: cn( "absolute top-3.5 right-3 flex aspect-square w-5 cursor-pointer items-center justify-center rounded-md p-0 text-[color:var(--sidebar-foreground)] ring-[color:var(--sidebar-ring)] outline-hidden transition-transform group-data-[collapsible=icon]:hidden after:absolute after:-inset-2 hover:bg-[color:var(--sidebar-accent)] hover:text-[color:var(--sidebar-accent-foreground)] focus-visible:ring-2 md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0", className, ), }, props, ), render, state: { slot: "sidebar-group-action", sidebar: "group-action", }, }); } function SidebarGroupContent({ className, ...props }: React.ComponentProps<"div">) { return (
); } function SidebarMenu({ className, ...props }: React.ComponentProps<"ul">) { return (
    ); } function SidebarMenuItem({ className, ...props }: React.ComponentProps<"li">) { return (
  • ); } function SidebarMenuBadge({ className, ...props }: React.ComponentProps<"div">) { return (
    ); } function SidebarMenuPlaceholder({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element { return (
    ); } function SidebarMenuSkeleton({ className, showIcon = false, ...props }: React.ComponentProps<"div"> & { showIcon?: boolean; }) { const [width] = React.useState(() => { return `${Math.floor(Math.random() * 40) + 50}%`; }); return (
    {showIcon ? ( ) : null}
    ); } function SidebarMenuSub({ className, ...props }: React.ComponentProps<"ul">) { return (
      ); } function SidebarMenuSubItem({ className, ...props }: React.ComponentProps<"li">) { return (
    • ); } function SidebarMenuSubButton({ render, size = "md", isActive = false, className, ...props }: useRender.ComponentProps<"a"> & React.ComponentProps<"a"> & { size?: "sm" | "md"; isActive?: boolean; }) { return useRender({ defaultTagName: "a", props: mergeProps<"a">( { className: cn( "flex h-7 min-w-0 -translate-x-px cursor-pointer items-center gap-2 overflow-hidden rounded-md px-2 text-[color:var(--sidebar-foreground)] ring-[color:var(--sidebar-ring)] outline-hidden group-data-[collapsible=icon]:hidden hover:bg-[color:var(--sidebar-accent)] hover:text-[color:var(--sidebar-accent-foreground)] focus-visible:ring-2 active:bg-[color:var(--sidebar-accent)] active:text-[color:var(--sidebar-accent-foreground)] disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[size=md]:text-xs data-[size=sm]:text-xs data-active:bg-[color:var(--sidebar-accent)] data-active:text-[color:var(--sidebar-accent-foreground)] [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-[color:var(--sidebar-accent-foreground)]", className, ), }, props, ), render, state: { slot: "sidebar-menu-sub-button", sidebar: "menu-sub-button", size, active: isActive, }, }); } export { SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuBadge, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarSeparator, };