import * as class_variance_authority_types from 'class-variance-authority/types'; import * as react_jsx_runtime from 'react/jsx-runtime'; import * as React from 'react'; import { VariantProps } from 'class-variance-authority'; import { Button } from './button.js'; import { Input } from './input.js'; import { Separator } from './separator.js'; import { TooltipContent } from './tooltip.js'; import 'radix-ui'; /** * Options for {@link SidebarContextProps.setOpen}. * * `persist: false` updates the visual sidebar state **without** writing the * `sidebar_state` cookie. Pass it from incidental layout effects — e.g. a * secondary panel taking the rail space, a route-level auto-collapse — so * the user's explicit preference (their ⌘B toggle / sidebar button) is the * only thing that ever rewrites the cookie. Defaults to `true` for * backward compatibility with the toggle button and existing callsites. */ type SetOpenOptions = { persist?: boolean; }; /** Return `true` when the handler consumed ⌘B / sidebar trigger (skip primary toggle). */ type NavFlyoutToggleHandler = () => boolean; type SidebarContextProps = { state: "expanded" | "collapsed"; open: boolean; setOpen: (open: boolean | ((value: boolean) => boolean), opts?: SetOpenOptions) => void; openMobile: boolean; setOpenMobile: (open: boolean) => void; isMobile: boolean; /** Mobile or browser zoom ≥ ~200% — sidebar renders as a dismissible flyout. */ isNavFlyout: boolean; toggleSidebar: () => void; /** * Register a flyout toggle override (secondary panel, drill-in, …). * Handlers run in registration order; first `true` wins. */ registerNavFlyoutToggle: (handler: NavFlyoutToggleHandler) => () => void; /** Close the flyout after the user picks a nav destination (mobile / high zoom). */ dismissNavFlyout: () => void; /** * Snap the rail back to the user's saved preference — the value persisted in * `sidebar_state_v2`, or `defaultOpen` if no cookie was ever written. Use * this from incidental-collapse cleanups (secondary panel closing, route * leaves) so the rail doesn't stay stuck in its incidental state once the * thing that caused the collapse is gone. Always uses `persist: false`. */ restoreSavedOpen: () => void; }; declare function useSidebar(): SidebarContextProps; declare function SidebarProvider({ defaultOpen, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }: React.ComponentProps<"div"> & { defaultOpen?: boolean; open?: boolean; onOpenChange?: (open: boolean) => void; }): react_jsx_runtime.JSX.Element; declare function Sidebar({ side, variant, collapsible, className, children, dir: _dir, ...props }: React.ComponentProps<"div"> & { side?: "left" | "right"; variant?: "sidebar" | "floating" | "inset"; collapsible?: "offcanvas" | "icon" | "none"; }): react_jsx_runtime.JSX.Element; declare function SidebarTrigger({ className, onClick, ...props }: React.ComponentProps): react_jsx_runtime.JSX.Element; declare function SidebarRail({ className, ...props }: React.ComponentProps<"button">): react_jsx_runtime.JSX.Element; declare function SidebarInset({ className, ...props }: React.ComponentProps<"main">): react_jsx_runtime.JSX.Element; declare function SidebarInput({ className, ...props }: React.ComponentProps): react_jsx_runtime.JSX.Element; declare function SidebarHeader({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element; declare function SidebarFooter({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element; declare function SidebarSeparator({ className, ...props }: React.ComponentProps): react_jsx_runtime.JSX.Element; declare function SidebarContent({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element; declare function SidebarGroup({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element; declare function SidebarGroupLabel({ className, asChild, ...props }: React.ComponentProps<"p"> & { asChild?: boolean; }): react_jsx_runtime.JSX.Element; declare function SidebarGroupAction({ className, asChild, ...props }: React.ComponentProps<"button"> & { asChild?: boolean; }): react_jsx_runtime.JSX.Element; declare function SidebarGroupContent({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element; declare function SidebarMenu({ className, ...props }: React.ComponentProps<"ul">): react_jsx_runtime.JSX.Element; declare function SidebarMenuItem({ className, ...props }: React.ComponentProps<"li">): react_jsx_runtime.JSX.Element; /** Visible label for primary / secondary sidebar rows — MUST NOT truncate. */ declare function SidebarNavLabel({ className, ...props }: React.ComponentProps<"span">): react_jsx_runtime.JSX.Element; declare const SidebarMenuButton: React.ForwardRefExoticComponent, HTMLButtonElement>, "ref"> & { asChild?: boolean; isActive?: boolean; tooltip?: string | React.ComponentProps; } & VariantProps<(props?: ({ variant?: "default" | "outline" | null | undefined; size?: "default" | "sm" | "lg" | null | undefined; } & class_variance_authority_types.ClassProp) | undefined) => string> & React.RefAttributes>; declare function SidebarMenuAction({ className, asChild, showOnHover, ...props }: React.ComponentProps<"button"> & { asChild?: boolean; showOnHover?: boolean; }): react_jsx_runtime.JSX.Element; declare function SidebarMenuBadge({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element; declare function SidebarMenuSkeleton({ className, showIcon, ...props }: React.ComponentProps<"div"> & { showIcon?: boolean; }): react_jsx_runtime.JSX.Element; declare function SidebarMenuSub({ className, ...props }: React.ComponentProps<"ul">): react_jsx_runtime.JSX.Element; declare function SidebarMenuSubItem({ className, ...props }: React.ComponentProps<"li">): react_jsx_runtime.JSX.Element; declare function SidebarMenuSubButton({ asChild, size, isActive, className, ...props }: React.ComponentProps<"a"> & { asChild?: boolean; size?: "sm" | "md"; isActive?: boolean; }): react_jsx_runtime.JSX.Element; /** Register a mobile / high-zoom flyout toggle override while mounted. */ declare function useRegisterNavFlyoutToggle(handler: NavFlyoutToggleHandler | null): void; export { type NavFlyoutToggleHandler, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarNavLabel, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, useRegisterNavFlyoutToggle, useSidebar };