import { IconButtonProps } from "@components/IconButton/IconButton.interface"; import { ClassName } from "@helpers/types"; import { PropsWithChildren, ReactNode } from "react"; export type ICollapseButton = boolean | ((isCollapsed: boolean, toggle: () => void) => ReactNode); export interface CollapseButtonProps extends ClassName { collapsedAriaLabel?: string; notCollapsedAriaLabel?: string; renderButton?: ICollapseButton; } export interface SidebarBreakpoints { mobile?: string; narrow?: string; wide?: string; } export interface SidebarProps extends ClassName, PropsWithChildren { defaultCollapsed?: boolean; collapsed?: boolean; onCollapse?: (collapsed: boolean) => void; collapseButton?: ICollapseButton; collapseButtonClassName?: string; bottomContent?: ReactNode; topContent?: ReactNode; breakpoints?: Omit; tabIndex?: number; collapsedToggleButtonProps?: Pick; notCollapsedToggleButtonProps?: Pick; id?: string; testId?: string; } export interface ResponsiveSidebarProps extends Omit { isOpen?: boolean; defaultIsOpen?: boolean; close?: () => void; maskClassName?: string; drawerClassName?: string; sidebarClassName?: string; breakpoints?: SidebarBreakpoints; } export interface SidebarMaskProps extends ClassName { close: () => void; }