|
@@ -136,7 +136,7 @@ function SidebarProvider({
|
|
|
} as React.CSSProperties
|
|
} as React.CSSProperties
|
|
|
}
|
|
}
|
|
|
className={cn(
|
|
className={cn(
|
|
|
- 'group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full',
|
|
|
|
|
|
|
+ 'group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar',
|
|
|
className
|
|
className
|
|
|
)}
|
|
)}
|
|
|
{...props}
|
|
{...props}
|
|
@@ -167,7 +167,7 @@ function Sidebar({
|
|
|
<div
|
|
<div
|
|
|
data-slot='sidebar'
|
|
data-slot='sidebar'
|
|
|
className={cn(
|
|
className={cn(
|
|
|
- 'bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col',
|
|
|
|
|
|
|
+ 'flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground',
|
|
|
className
|
|
className
|
|
|
)}
|
|
)}
|
|
|
{...props}
|
|
{...props}
|
|
@@ -184,7 +184,7 @@ function Sidebar({
|
|
|
data-sidebar='sidebar'
|
|
data-sidebar='sidebar'
|
|
|
data-slot='sidebar'
|
|
data-slot='sidebar'
|
|
|
data-mobile='true'
|
|
data-mobile='true'
|
|
|
- className='bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden'
|
|
|
|
|
|
|
+ className='w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden'
|
|
|
style={
|
|
style={
|
|
|
{
|
|
{
|
|
|
'--sidebar-width': SIDEBAR_WIDTH_MOBILE,
|
|
'--sidebar-width': SIDEBAR_WIDTH_MOBILE,
|
|
@@ -204,7 +204,7 @@ function Sidebar({
|
|
|
|
|
|
|
|
return (
|
|
return (
|
|
|
<div
|
|
<div
|
|
|
- className='group peer text-sidebar-foreground hidden md:block'
|
|
|
|
|
|
|
+ className='group peer hidden text-sidebar-foreground md:block'
|
|
|
data-state={state}
|
|
data-state={state}
|
|
|
data-collapsible={state === 'collapsed' ? collapsible : ''}
|
|
data-collapsible={state === 'collapsed' ? collapsible : ''}
|
|
|
data-variant={variant}
|
|
data-variant={variant}
|
|
@@ -241,7 +241,7 @@ function Sidebar({
|
|
|
<div
|
|
<div
|
|
|
data-sidebar='sidebar'
|
|
data-sidebar='sidebar'
|
|
|
data-slot='sidebar-inner'
|
|
data-slot='sidebar-inner'
|
|
|
- className='bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm'
|
|
|
|
|
|
|
+ className='flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow-sm'
|
|
|
>
|
|
>
|
|
|
{children}
|
|
{children}
|
|
|
</div>
|
|
</div>
|
|
@@ -288,10 +288,10 @@ function SidebarRail({ className, ...props }: React.ComponentProps<'button'>) {
|
|
|
onClick={toggleSidebar}
|
|
onClick={toggleSidebar}
|
|
|
title='Toggle Sidebar'
|
|
title='Toggle Sidebar'
|
|
|
className={cn(
|
|
className={cn(
|
|
|
- 'hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-end-4 group-data-[side=right]:start-0 after:absolute after:inset-y-0 after:start-1/2 after:w-[2px] sm:flex',
|
|
|
|
|
|
|
+ 'absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-end-4 group-data-[side=right]:start-0 after:absolute after:inset-y-0 after:start-1/2 after:w-[2px] hover:after:bg-sidebar-border sm:flex',
|
|
|
'in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize',
|
|
'in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize',
|
|
|
'[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize',
|
|
'[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize',
|
|
|
- 'hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:start-full',
|
|
|
|
|
|
|
+ 'group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:start-full hover:group-data-[collapsible=offcanvas]:bg-sidebar',
|
|
|
'[[data-side=left][data-collapsible=offcanvas]_&]:-end-2',
|
|
'[[data-side=left][data-collapsible=offcanvas]_&]:-end-2',
|
|
|
'[[data-side=right][data-collapsible=offcanvas]_&]:-start-2',
|
|
'[[data-side=right][data-collapsible=offcanvas]_&]:-start-2',
|
|
|
|
|
|
|
@@ -311,7 +311,7 @@ function SidebarInset({ className, ...props }: React.ComponentProps<'div'>) {
|
|
|
<div
|
|
<div
|
|
|
data-slot='sidebar-inset'
|
|
data-slot='sidebar-inset'
|
|
|
className={cn(
|
|
className={cn(
|
|
|
- 'bg-background relative flex w-full flex-1 flex-col',
|
|
|
|
|
|
|
+ 'relative flex w-full flex-1 flex-col bg-background',
|
|
|
'md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ms-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ms-2',
|
|
'md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ms-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ms-2',
|
|
|
className
|
|
className
|
|
|
)}
|
|
)}
|
|
@@ -328,7 +328,7 @@ function SidebarInput({
|
|
|
<Input
|
|
<Input
|
|
|
data-slot='sidebar-input'
|
|
data-slot='sidebar-input'
|
|
|
data-sidebar='input'
|
|
data-sidebar='input'
|
|
|
- className={cn('bg-background h-8 w-full shadow-none', className)}
|
|
|
|
|
|
|
+ className={cn('h-8 w-full bg-background shadow-none', className)}
|
|
|
{...props}
|
|
{...props}
|
|
|
/>
|
|
/>
|
|
|
)
|
|
)
|
|
@@ -364,7 +364,7 @@ function SidebarSeparator({
|
|
|
<Separator
|
|
<Separator
|
|
|
data-slot='sidebar-separator'
|
|
data-slot='sidebar-separator'
|
|
|
data-sidebar='separator'
|
|
data-sidebar='separator'
|
|
|
- className={cn('bg-sidebar-border mx-2 w-auto', className)}
|
|
|
|
|
|
|
+ className={cn('mx-2 w-auto bg-sidebar-border', className)}
|
|
|
{...props}
|
|
{...props}
|
|
|
/>
|
|
/>
|
|
|
)
|
|
)
|
|
@@ -407,7 +407,7 @@ function SidebarGroupLabel({
|
|
|
data-slot='sidebar-group-label'
|
|
data-slot='sidebar-group-label'
|
|
|
data-sidebar='group-label'
|
|
data-sidebar='group-label'
|
|
|
className={cn(
|
|
className={cn(
|
|
|
- 'text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',
|
|
|
|
|
|
|
+ 'flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 ring-sidebar-ring outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',
|
|
|
'group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0',
|
|
'group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0',
|
|
|
className
|
|
className
|
|
|
)}
|
|
)}
|
|
@@ -428,7 +428,7 @@ function SidebarGroupAction({
|
|
|
data-slot='sidebar-group-action'
|
|
data-slot='sidebar-group-action'
|
|
|
data-sidebar='group-action'
|
|
data-sidebar='group-action'
|
|
|
className={cn(
|
|
className={cn(
|
|
|
- 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute end-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',
|
|
|
|
|
|
|
+ 'absolute end-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',
|
|
|
// Increases the hit area of the button on mobile.
|
|
// Increases the hit area of the button on mobile.
|
|
|
'after:absolute after:-inset-2 md:after:hidden',
|
|
'after:absolute after:-inset-2 md:after:hidden',
|
|
|
'group-data-[collapsible=icon]:hidden',
|
|
'group-data-[collapsible=icon]:hidden',
|
|
@@ -563,7 +563,7 @@ function SidebarMenuAction({
|
|
|
data-slot='sidebar-menu-action'
|
|
data-slot='sidebar-menu-action'
|
|
|
data-sidebar='menu-action'
|
|
data-sidebar='menu-action'
|
|
|
className={cn(
|
|
className={cn(
|
|
|
- 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute end-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',
|
|
|
|
|
|
|
+ 'absolute end-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform peer-hover/menu-button:text-sidebar-accent-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',
|
|
|
// Increases the hit area of the button on mobile.
|
|
// Increases the hit area of the button on mobile.
|
|
|
'after:absolute after:-inset-2 md:after:hidden',
|
|
'after:absolute after:-inset-2 md:after:hidden',
|
|
|
'peer-data-[size=sm]/menu-button:top-1',
|
|
'peer-data-[size=sm]/menu-button:top-1',
|
|
@@ -571,7 +571,7 @@ function SidebarMenuAction({
|
|
|
'peer-data-[size=lg]/menu-button:top-2.5',
|
|
'peer-data-[size=lg]/menu-button:top-2.5',
|
|
|
'group-data-[collapsible=icon]:hidden',
|
|
'group-data-[collapsible=icon]:hidden',
|
|
|
showOnHover &&
|
|
showOnHover &&
|
|
|
- 'peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0',
|
|
|
|
|
|
|
+ 'group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground data-[state=open]:opacity-100 md:opacity-0',
|
|
|
className
|
|
className
|
|
|
)}
|
|
)}
|
|
|
{...props}
|
|
{...props}
|
|
@@ -588,7 +588,7 @@ function SidebarMenuBadge({
|
|
|
data-slot='sidebar-menu-badge'
|
|
data-slot='sidebar-menu-badge'
|
|
|
data-sidebar='menu-badge'
|
|
data-sidebar='menu-badge'
|
|
|
className={cn(
|
|
className={cn(
|
|
|
- 'text-sidebar-foreground pointer-events-none absolute end-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none',
|
|
|
|
|
|
|
+ 'pointer-events-none absolute end-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium text-sidebar-foreground tabular-nums select-none',
|
|
|
'peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',
|
|
'peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',
|
|
|
'peer-data-[size=sm]/menu-button:top-1',
|
|
'peer-data-[size=sm]/menu-button:top-1',
|
|
|
'peer-data-[size=default]/menu-button:top-1.5',
|
|
'peer-data-[size=default]/menu-button:top-1.5',
|
|
@@ -645,7 +645,7 @@ function SidebarMenuSub({ className, ...props }: React.ComponentProps<'ul'>) {
|
|
|
data-slot='sidebar-menu-sub'
|
|
data-slot='sidebar-menu-sub'
|
|
|
data-sidebar='menu-sub'
|
|
data-sidebar='menu-sub'
|
|
|
className={cn(
|
|
className={cn(
|
|
|
- 'border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-s px-2.5 py-0.5',
|
|
|
|
|
|
|
+ 'mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-s border-sidebar-border px-2.5 py-0.5',
|
|
|
'group-data-[collapsible=icon]:hidden',
|
|
'group-data-[collapsible=icon]:hidden',
|
|
|
className
|
|
className
|
|
|
)}
|
|
)}
|
|
@@ -688,7 +688,7 @@ function SidebarMenuSubButton({
|
|
|
data-size={size}
|
|
data-size={size}
|
|
|
data-active={isActive}
|
|
data-active={isActive}
|
|
|
className={cn(
|
|
className={cn(
|
|
|
- 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-inherit',
|
|
|
|
|
|
|
+ 'flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground ring-sidebar-ring outline-hidden hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-inherit',
|
|
|
'data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground',
|
|
'data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground',
|
|
|
size === 'sm' && 'text-xs',
|
|
size === 'sm' && 'text-xs',
|
|
|
size === 'md' && 'text-sm',
|
|
size === 'md' && 'text-sm',
|