1 | import PropTypes from 'prop-types';
|
2 | import React from 'react';
|
3 | import { DropdownContextValue } from './DropdownContext';
|
4 | export interface UseDropdownToggleProps {
|
5 | ref: DropdownContextValue['setToggle'];
|
6 | 'aria-haspopup': boolean;
|
7 | 'aria-expanded': boolean;
|
8 | }
|
9 | export interface UseDropdownToggleHelpers {
|
10 | show: DropdownContextValue['show'];
|
11 | toggle: DropdownContextValue['toggle'];
|
12 | }
|
13 | /**
|
14 | * Wires up Dropdown toggle functionality, returning a set a props to attach
|
15 | * to the element that functions as the dropdown toggle (generally a button).
|
16 | *
|
17 | * @memberOf Dropdown
|
18 | */
|
19 | export declare function useDropdownToggle(): [UseDropdownToggleProps, UseDropdownToggleHelpers];
|
20 | export interface DropdownToggleProps {
|
21 | children: (args: UseDropdownToggleHelpers & {
|
22 | props: UseDropdownToggleProps;
|
23 | }) => React.ReactNode;
|
24 | }
|
25 | /**
|
26 | * Also exported as `<Dropdown.Toggle>` from `Dropdown`.
|
27 | *
|
28 | * @displayName DropdownToggle
|
29 | * @memberOf Dropdown
|
30 | */
|
31 | declare function DropdownToggle({ children }: DropdownToggleProps): JSX.Element;
|
32 | declare namespace DropdownToggle {
|
33 | var displayName: string;
|
34 | var propTypes: {
|
35 | /**
|
36 | * A render prop that returns a Toggle element. The `props`
|
37 | * argument should spread through to **a component that can accept a ref**. Use
|
38 | * the `onToggle` argument to toggle the menu open or closed
|
39 | *
|
40 | * @type {Function ({
|
41 | * show: boolean,
|
42 | * toggle: (show: boolean) => void,
|
43 | * props: {
|
44 | * ref: (?HTMLElement) => void,
|
45 | * aria-haspopup: true
|
46 | * aria-expanded: boolean
|
47 | * },
|
48 | * }) => React.Element}
|
49 | */
|
50 | children: PropTypes.Validator<(...args: any[]) => any>;
|
51 | };
|
52 | }
|
53 | /** @component */
|
54 | export default DropdownToggle;
|