<commit_before>// Type definitions for react-bootstrap
// Project: https://github.com/react-bootstrap/react-bootstrap
// Definitions by: <NAME> <https://github.com/walkerburgin>, <NAME> <https://github.com/vsiao>, <NAME> <https://github.com/danilojrr>, <NAME> <https://github.com/Batbold-Gansukh>, <NAME>. <https://github.com/octatone>, <NAME> <https://github.com/chengsieuly>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.1

import * as React from 'react';
export = ReactBootstrap;
export as namespace ReactBootstrap;

declare namespace ReactBootstrap {

    type Sizes = 'xs' | 'xsmall' | 'sm' | 'small' | 'medium' | 'lg' | 'large';


    // Change onSelect signature to be (eventKey: any, event: SyntheticEvent<{}>) => any on all React-Bootstrap components, instead of the old inconsistent mishmash (#1604, #1677, #1756)
    /** ( eventKey:any, e:React.SyntheticEvent<{}> ):void */
    interface SelectCallback extends React.EventHandler<any> {
        (eventKey: any, e: React.SyntheticEvent<{}>): void;
        /**
            @deprecated
            This signature is a hack so can still derive from HTMLProps.
            It does not reflect the underlying event and should not be used.
        */
        (e: React.MouseEvent<{}>): void;
    }


    interface TransitionCallbacks {
        onEnter?: Function;
        onEntered?: Function;
        onEntering?: Function;
        onExit?: Function;
        onExited?: Function;
        onExiting?: Function;
    }


    // <Accordion />
    interface AccordionProps extends React.HTMLProps<Accordion> {
        bsSize?: Sizes;
        bsStyle?: string;
        collapsible?: boolean;
        defaultExpanded?: boolean;
        eventKey?: any;
        expanded?: boolean;
        footer?: any; // TODO: Add more specific type
        header?: any; // TODO: Add more specific type
    }
    type Accordion = React.ClassicComponent<AccordionProps, {}>;
    var Accordion: React.ClassicComponentClass<AccordionProps>;


    // <Breadcrumb />
    interface BreadcrumbProps extends React.Props<Breadcrumb> {
        bsClass?: string;
    }
    interface BreadcrumbClass extends React.ClassicComponentClass<BreadcrumbProps> {
        Item: typeof BreadcrumbItem;
    }
    type Breadcrumb = React.ClassicComponent<BreadcrumbProps, {}>;
    var Breadcrumb: BreadcrumbClass;


    // <BreadcrumbItem />
    interface BreadcrumbItemProps extends React.Props<BreadcrumbItem> {
        active?: boolean;
        id?: string | number;
        href?: string;
        title?: React.ReactNode;
        target?: string;
    }
    type BreadcrumbItem = React.ClassicComponent<BreadcrumbItemProps, {}>;
    var BreadcrumbItem: React.ClassicComponentClass<BreadcrumbItemProps>;


    // <Button />
    interface ButtonProps extends React.HTMLProps<Button> {
        bsClass?: string;
        active?: boolean;
        block?: boolean;
        bsStyle?: string;
        bsSize?: Sizes;
        componentClass?: React.ReactType;
    }
    type Button = React.ClassicComponent<ButtonProps, {}>;
    var Button: React.ClassicComponentClass<ButtonProps>;


    // <ButtonToolbar />
    interface ButtonToolbarProps extends React.HTMLProps<ButtonToolbar> {
        block?: boolean;
        bsSize?: Sizes;
        bsStyle?: string;
        justified?: boolean;
        vertical?: boolean;
    }
    type ButtonToolbar = React.ClassicComponent<ButtonToolbarProps, {}>;
    var ButtonToolbar: React.ClassicComponentClass<ButtonToolbarProps>;


    // <ButtonGroup />
    interface ButtonGroupProps extends React.HTMLProps<ButtonGroup> {
        block?: boolean;
        bsSize?: Sizes;
        bsStyle?: string;
        justified?: boolean;
        vertical?: boolean;
    }
    type ButtonGroup = React.ClassicComponent<ButtonGroupProps, {}>;
    var ButtonGroup: React.ClassicComponentClass<ButtonGroupProps>;


    // <SafeAnchor />
    interface SafeAnchorProps extends React.HTMLProps<SafeAnchor> {
        href?: string;
        onClick?: React.MouseEventHandler<{}>;
        disabled?: boolean;
        role?: string;
        componentClass?: React.ReactType;
    }
    type SafeAnchor = React.ClassicComponent<SafeAnchorProps, {}>;
    const SafeAnchor: React.ClassicComponentClass<SafeAnchorProps>;


    // <Checkbox />
    interface CheckboxProps extends React.HTMLProps<Checkbox> {
        bsClass?: string;
        disabled?: boolean;
        inline?: boolean;
        inputRef?: (instance: HTMLInputElement) => void;
        validationState?: "success" | "warning" | "error";
    }
    class Checkbox extends React.Component<CheckboxProps, {}> { }


    // <Clearfix />
    interface ClearfixProps extends React.HTMLProps<Clearfix> {
        componentClass?: React.ReactType,
        visibleXsBlock?: boolean;
        visibleSmBlock?: boolean;
        visibleMdBlock?: boolean;
        visibleLgBlock?: boolean;
    }
    class Clearfix extends React.Component<ClearfixProps, {}> { }


    // <Collapse />
    interface CollapseProps extends TransitionCallbacks, React.Props<Collapse> {
        dimension?: 'height' | 'width' | { ( ):string };
        getDimensionValue?: ( dimension:number, element:React.ReactElement<any> ) => number;
        in?: boolean;
        timeout?: number;
        transitionAppear?: boolean;
        unmountOnExit?: boolean;
    }
    class Collapse extends React.Component<CollapseProps, {}> { }


    // <Dropdown />
    interface DropdownBaseProps {
        bsClass?: string;
        componentClass?: React.ReactType;
        disabled?: boolean;
        dropup?: boolean;
        id: string;
        onClose?: Function;
        onSelect?: SelectCallback;
        onToggle?: (isOpen: boolean) => void;
        open?: boolean;
        pullRight?: boolean;
        role?: string;
    }
    type DropdownProps = DropdownBaseProps & React.HTMLProps<Dropdown>;
    class Dropdown extends React.Component<DropdownProps, any> {
        public static Menu: typeof DropdownMenu;
        public static Toggle: typeof DropdownToggle;
    }


    // <DropdownButton />
    interface DropdownButtonBaseProps extends DropdownBaseProps {
        bsSize?: Sizes;
        bsStyle?: string;
        navItem?: boolean;
        noCaret?: boolean;
        pullRight?: boolean;
    }
    type DropdownButtonProps = DropdownButtonBaseProps & React.HTMLProps<DropdownButton>;
    class DropdownButton extends React.Component<DropdownButtonProps, {}> { }


    // <Dropdown.Menu />
    interface DropdownMenuProps extends React.HTMLProps<DropdownMenu> {
        labelledBy?: string | number;
        onClose?: Function;
        onSelect?: SelectCallback;<commit_msg>[react-bootstrap] Add block to DropdownButtonBaseProps (#15709)<commit_after>// Type definitions for react-bootstrap
// Project: https://github.com/react-bootstrap/react-bootstrap
// Definitions by: <NAME> <https://github.com/walkerburgin>, <NAME> <https://github.com/vsiao>, <NAME> <https://github.com/danilojrr>, <NAME> <https://github.com/Batbold-Gansukh>, <NAME>. <https://github.com/octatone>, <NAME> <https://github.com/chengsieuly>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.1

import * as React from 'react';
export = ReactBootstrap;
export as namespace ReactBootstrap;

declare namespace ReactBootstrap {

    type Sizes = 'xs' | 'xsmall' | 'sm' | 'small' | 'medium' | 'lg' | 'large';


    // Change onSelect signature to be (eventKey: any, event: SyntheticEvent<{}>) => any on all React-Bootstrap components, instead of the old inconsistent mishmash (#1604, #1677, #1756)
    /** ( eventKey:any, e:React.SyntheticEvent<{}> ):void */
    interface SelectCallback extends React.EventHandler<any> {
        (eventKey: any, e: React.SyntheticEvent<{}>): void;
        /**
            @deprecated
            This signature is a hack so can still derive from HTMLProps.
            It does not reflect the underlying event and should not be used.
        */
        (e: React.MouseEvent<{}>): void;
    }


    interface TransitionCallbacks {
        onEnter?: Function;
        onEntered?: Function;
        onEntering?: Function;
        onExit?: Function;
        onExited?: Function;
        onExiting?: Function;
    }


    // <Accordion />
    interface AccordionProps extends React.HTMLProps<Accordion> {
        bsSize?: Sizes;
        bsStyle?: string;
        collapsible?: boolean;
        defaultExpanded?: boolean;
        eventKey?: any;
        expanded?: boolean;
        footer?: any; // TODO: Add more specific type
        header?: any; // TODO: Add more specific type
    }
    type Accordion = React.ClassicComponent<AccordionProps, {}>;
    var Accordion: React.ClassicComponentClass<AccordionProps>;


    // <Breadcrumb />
    interface BreadcrumbProps extends React.Props<Breadcrumb> {
        bsClass?: string;
    }
    interface BreadcrumbClass extends React.ClassicComponentClass<BreadcrumbProps> {
        Item: typeof BreadcrumbItem;
    }
    type Breadcrumb = React.ClassicComponent<BreadcrumbProps, {}>;
    var Breadcrumb: BreadcrumbClass;


    // <BreadcrumbItem />
    interface BreadcrumbItemProps extends React.Props<BreadcrumbItem> {
        active?: boolean;
        id?: string | number;
        href?: string;
        title?: React.ReactNode;
        target?: string;
    }
    type BreadcrumbItem = React.ClassicComponent<BreadcrumbItemProps, {}>;
    var BreadcrumbItem: React.ClassicComponentClass<BreadcrumbItemProps>;


    // <Button />
    interface ButtonProps extends React.HTMLProps<Button> {
        bsClass?: string;
        active?: boolean;
        block?: boolean;
        bsStyle?: string;
        bsSize?: Sizes;
        componentClass?: React.ReactType;
    }
    type Button = React.ClassicComponent<ButtonProps, {}>;
    var Button: React.ClassicComponentClass<ButtonProps>;


    // <ButtonToolbar />
    interface ButtonToolbarProps extends React.HTMLProps<ButtonToolbar> {
        block?: boolean;
        bsSize?: Sizes;
        bsStyle?: string;
        justified?: boolean;
        vertical?: boolean;
    }
    type ButtonToolbar = React.ClassicComponent<ButtonToolbarProps, {}>;
    var ButtonToolbar: React.ClassicComponentClass<ButtonToolbarProps>;


    // <ButtonGroup />
    interface ButtonGroupProps extends React.HTMLProps<ButtonGroup> {
        block?: boolean;
        bsSize?: Sizes;
        bsStyle?: string;
        justified?: boolean;
        vertical?: boolean;
    }
    type ButtonGroup = React.ClassicComponent<ButtonGroupProps, {}>;
    var ButtonGroup: React.ClassicComponentClass<ButtonGroupProps>;


    // <SafeAnchor />
    interface SafeAnchorProps extends React.HTMLProps<SafeAnchor> {
        href?: string;
        onClick?: React.MouseEventHandler<{}>;
        disabled?: boolean;
        role?: string;
        componentClass?: React.ReactType;
    }
    type SafeAnchor = React.ClassicComponent<SafeAnchorProps, {}>;
    const SafeAnchor: React.ClassicComponentClass<SafeAnchorProps>;


    // <Checkbox />
    interface CheckboxProps extends React.HTMLProps<Checkbox> {
        bsClass?: string;
        disabled?: boolean;
        inline?: boolean;
        inputRef?: (instance: HTMLInputElement) => void;
        validationState?: "success" | "warning" | "error";
    }
    class Checkbox extends React.Component<CheckboxProps, {}> { }


    // <Clearfix />
    interface ClearfixProps extends React.HTMLProps<Clearfix> {
        componentClass?: React.ReactType,
        visibleXsBlock?: boolean;
        visibleSmBlock?: boolean;
        visibleMdBlock?: boolean;
        visibleLgBlock?: boolean;
    }
    class Clearfix extends React.Component<ClearfixProps, {}> { }


    // <Collapse />
    interface CollapseProps extends TransitionCallbacks, React.Props<Collapse> {
        dimension?: 'height' | 'width' | { ( ):string };
        getDimensionValue?: ( dimension:number, element:React.ReactElement<any> ) => number;
        in?: boolean;
        timeout?: number;
        transitionAppear?: boolean;
        unmountOnExit?: boolean;
    }
    class Collapse extends React.Component<CollapseProps, {}> { }


    // <Dropdown />
    interface DropdownBaseProps {
        bsClass?: string;
        componentClass?: React.ReactType;
        disabled?: boolean;
        dropup?: boolean;
        id: string;
        onClose?: Function;
        onSelect?: SelectCallback;
        onToggle?: (isOpen: boolean) => void;
        open?: boolean;
        pullRight?: boolean;
        role?: string;
    }
    type DropdownProps = DropdownBaseProps & React.HTMLProps<Dropdown>;
    class Dropdown extends React.Component<DropdownProps, any> {
        public static Menu: typeof DropdownMenu;
        public static Toggle: typeof DropdownToggle;
    }


    // <DropdownButton />
    interface DropdownButtonBaseProps extends DropdownBaseProps {
        block?: boolean;
        bsSize?: Sizes;
        bsStyle?: string;
        navItem?: boolean;
        noCaret?: boolean;
        pullRight?: boolean;
    }
    type DropdownButtonProps = DropdownButtonBaseProps & React.HTMLProps<DropdownButton>;
    class DropdownButton extends React.Component<DropdownButtonProps, {}> { }


    // <Dropdown.Menu />
    interface DropdownMenuProps extends React.HTMLProps<DropdownMenu> {
        labelledBy?: string | number;
        onClose?: Function;
        onSelect?: SelectCallback;
{'fraction_non_alphanumeric': 0.11368216764947377, 'fraction_numerical': 0.0024632380383667984, 'mean_word_length': 2.8778581765557165, 'pattern_counts': {'":': 0, '<': 131, '<?xml version=': 0, '>': 139, 'https://': 16, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1189590', 'n_tokens_mistral': 3789, 'n_tokens_neox': 3683, 'n_words': 884}