lucid-ui
Version:
A UI component library from AppNexus.
129 lines (128 loc) • 4 kB
TypeScript
import React from 'react';
import { StandardProps } from '../../util/component-types';
import * as reducers from './Sidebar.reducers';
interface ISidebarPrimaryProps extends StandardProps {
}
interface ISidebarTitleProps extends StandardProps {
}
interface ISidebarBarProps extends StandardProps {
Title?: ISidebarTitleProps | string;
title?: ISidebarTitleProps | string;
hasGutters?: boolean;
}
export interface ISidebarState {
isExpanded: boolean;
width: number;
}
export interface ISidebarProps extends StandardProps {
/** Sets the starting width of the Bar. */
width?: number;
/** Force the Sidebar to be expanded or collapsed. */
isExpanded?: boolean;
/** Allows animated expand and collapse behavior. */
isAnimated?: boolean;
/** Render the Sidebar to the left or right of primary content. */
position?: 'left' | 'right';
/** Disable user resizing of the Sidebar. */
isResizeDisabled?: boolean;
/** Set the title of the Sidebar. (alias for \`Title\` and \`Sidebar.Title\`) */
title?: React.ReactNode;
/** Set the title of the Sidebar. (alias for \`title\` and \`Sidebar.Title\`) */
Title?: React.ReactNode;
/** Called when the user is currently resizing the Sidebar. */
onResizing?: (width: number, { event, props }: {
event: MouseEvent | TouchEvent;
props: ISidebarProps;
}) => void;
/** Called when the user resizes the Sidebar. */
onResize?: (width: number, { event, props }: {
event: MouseEvent | TouchEvent;
props: ISidebarProps;
}) => void;
/** Called when the user expands or collapses the Sidebar. */
onToggle?: ({ event, props, }: {
event: React.MouseEvent<HTMLButtonElement>;
props: ISidebarProps;
}) => void;
}
declare class Sidebar extends React.Component<ISidebarProps, ISidebarState> {
static displayName: string;
static Bar: {
(_props: ISidebarBarProps): null;
peek: {
description: string;
};
displayName: string;
propName: string;
propTypes: {
Title: any;
title: any;
hasGutters: any;
};
defaultProps: {
hasGutters: boolean;
};
};
static Primary: {
(_props: ISidebarPrimaryProps): null;
peek: {
description: string;
};
displayName: string;
propName: string;
};
static Title: {
(_props: ISidebarTitleProps): null;
peek: {
description: string;
};
propTypes: {
children: any;
};
displayName: string;
propName: string[];
};
static peek: {
description: string;
categories: string[];
};
static reducers: typeof reducers;
static propTypes: {
style: any;
className: any;
children: any;
width: any;
isExpanded: any;
isAnimated: any;
position: any;
isResizeDisabled: any;
title: any;
Title: any;
Bar: any;
Primary: any;
onResizing: any;
onResize: any;
onToggle: any;
};
static defaultProps: {
isExpanded: boolean;
isAnimated: boolean;
width: number;
position: "left";
isResizeDisabled: boolean;
onResizing: (...args: any[]) => void;
onResize: (...args: any[]) => void;
onToggle: (...args: any[]) => void;
};
handleExpanderClick: (event: React.MouseEvent<HTMLButtonElement>) => void;
handleResizing: (width: number, { event }: {
event: MouseEvent | TouchEvent;
}) => void;
handleResize: (width: number, { event }: {
event: MouseEvent | TouchEvent;
}) => void;
render(): JSX.Element;
}
declare const _default: typeof Sidebar & import("../../util/state-management").IHybridComponent<ISidebarProps, ISidebarState>;
export default _default;
export { Sidebar as SidebarDumb };