reakit

  • Version 1.3.11
  • Published
  • 2.54 MB
  • 5 dependencies
  • MIT license

Install

npm i reakit
yarn add reakit
pnpm add reakit

Overview

Toolkit for building accessible rich web apps with React

Index

Variables

Functions

Type Aliases

Variables

variable Box

const Box: any;

    variable Button

    const Button: any;

      variable Checkbox

      const Checkbox: any;

        variable Clickable

        const Clickable: any;

          variable Composite

          const Composite: any;

            variable CompositeGroup

            const CompositeGroup: any;

              variable CompositeItem

              const CompositeItem: any;

                variable DialogDisclosure

                const DialogDisclosure: any;

                  variable Disclosure

                  const Disclosure: any;

                    variable DisclosureContent

                    const DisclosureContent: any;

                      variable Group

                      const Group: any;

                        variable Input

                        const Input: any;
                          const MenuArrow: any;
                            const MenuButton: any;
                              const MenuDisclosure: any;
                                const MenuGroup: any;
                                  const MenuItemCheckbox: any;
                                    const MenuItemRadio: any;
                                      const MenuSeparator: any;

                                        variable Popover

                                        const Popover: any;

                                          variable PopoverBackdrop

                                          const PopoverBackdrop: any;

                                            variable PopoverDisclosure

                                            const PopoverDisclosure: any;

                                              variable Radio

                                              const Radio: any;

                                                variable Role

                                                const Role: any;

                                                  variable Rover

                                                  const Rover: any;

                                                    variable Separator

                                                    const Separator: any;

                                                      variable Tab

                                                      const Tab: any;

                                                        variable Tabbable

                                                        const Tabbable: any;

                                                          variable TabPanel

                                                          const TabPanel: any;

                                                            variable ToolbarItem

                                                            const ToolbarItem: any;

                                                              variable ToolbarSeparator

                                                              const ToolbarSeparator: any;

                                                                variable TooltipArrow

                                                                const TooltipArrow: any;

                                                                  variable TooltipReference

                                                                  const TooltipReference: any;

                                                                    variable unstable_Combobox

                                                                    const unstable_Combobox: any;

                                                                      variable unstable_ComboboxGridCell

                                                                      const unstable_ComboboxGridCell: any;

                                                                        variable unstable_ComboboxGridRow

                                                                        const unstable_ComboboxGridRow: any;

                                                                          variable unstable_ComboboxItem

                                                                          const unstable_ComboboxItem: any;

                                                                            variable unstable_ComboboxList

                                                                            const unstable_ComboboxList: any;

                                                                              variable unstable_ComboboxOption

                                                                              const unstable_ComboboxOption: any;

                                                                                variable unstable_ComboboxPopover

                                                                                const unstable_ComboboxPopover: any;

                                                                                  variable unstable_Composite

                                                                                  const unstable_Composite: any;

                                                                                    variable unstable_CompositeGroup

                                                                                    const unstable_CompositeGroup: any;

                                                                                      variable unstable_CompositeItem

                                                                                      const unstable_CompositeItem: any;

                                                                                        variable unstable_CompositeItemWidget

                                                                                        const unstable_CompositeItemWidget: any;

                                                                                          variable unstable_Form

                                                                                          const unstable_Form: any;

                                                                                            variable unstable_FormCheckbox

                                                                                            const unstable_FormCheckbox: <V, P extends DeepPath<V, P>, T extends As = 'input'>(
                                                                                            props: PropsWithAs<unstable_FormCheckboxOptions<V, P>, T>
                                                                                            ) => JSX.Element;

                                                                                              variable unstable_FormGroup

                                                                                              const unstable_FormGroup: <V, P extends DeepPath<V, P>, T extends As = 'fieldset'>(
                                                                                              props: PropsWithAs<unstable_FormGroupOptions<V, P>, T>
                                                                                              ) => JSX.Element;

                                                                                                variable unstable_FormInput

                                                                                                const unstable_FormInput: <V, P extends DeepPath<V, P>, T extends As = 'input'>(
                                                                                                props: PropsWithAs<unstable_FormInputOptions<V, P>, T>
                                                                                                ) => JSX.Element;

                                                                                                  variable unstable_FormLabel

                                                                                                  const unstable_FormLabel: <V, P extends DeepPath<V, P>, T extends As = 'label'>(
                                                                                                  props: PropsWithAs<unstable_FormLabelOptions<V, P>, T>
                                                                                                  ) => JSX.Element;

                                                                                                    variable unstable_FormMessage

                                                                                                    const unstable_FormMessage: <V, P extends DeepPath<V, P>, T extends As = 'div'>(
                                                                                                    props: PropsWithAs<unstable_FormMessageOptions<V, P>, T>
                                                                                                    ) => JSX.Element;

                                                                                                      variable unstable_FormPushButton

                                                                                                      const unstable_FormPushButton: <
                                                                                                      V,
                                                                                                      P extends DeepPath<V, P>,
                                                                                                      T extends As = 'button'
                                                                                                      >(
                                                                                                      props: PropsWithAs<unstable_FormPushButtonOptions<V, P>, T>
                                                                                                      ) => JSX.Element;

                                                                                                        variable unstable_FormRadio

                                                                                                        const unstable_FormRadio: <V, P extends DeepPath<V, P>, T extends As = 'input'>(
                                                                                                        props: PropsWithAs<unstable_FormRadioOptions<V, P>, T>
                                                                                                        ) => JSX.Element;

                                                                                                          variable unstable_FormRemoveButton

                                                                                                          const unstable_FormRemoveButton: <
                                                                                                          V,
                                                                                                          P extends DeepPath<V, P>,
                                                                                                          T extends As = 'button'
                                                                                                          >(
                                                                                                          props: PropsWithAs<unstable_FormRemoveButtonOptions<V, P>, T>
                                                                                                          ) => JSX.Element;

                                                                                                            variable unstable_FormSubmitButton

                                                                                                            const unstable_FormSubmitButton: any;

                                                                                                              variable unstable_GridCell

                                                                                                              const unstable_GridCell: any;

                                                                                                                variable unstable_GridRow

                                                                                                                const unstable_GridRow: any;

                                                                                                                  variable unstable_useCombobox

                                                                                                                  const unstable_useCombobox: any;

                                                                                                                    variable unstable_useComboboxGridCell

                                                                                                                    const unstable_useComboboxGridCell: any;

                                                                                                                      variable unstable_useComboboxGridRow

                                                                                                                      const unstable_useComboboxGridRow: any;

                                                                                                                        variable unstable_useComboboxItem

                                                                                                                        const unstable_useComboboxItem: any;

                                                                                                                          variable unstable_useComboboxList

                                                                                                                          const unstable_useComboboxList: any;

                                                                                                                            variable unstable_useComboboxOption

                                                                                                                            const unstable_useComboboxOption: any;

                                                                                                                              variable unstable_useComboboxPopover

                                                                                                                              const unstable_useComboboxPopover: any;

                                                                                                                                variable unstable_useCompositeItemWidget

                                                                                                                                const unstable_useCompositeItemWidget: any;

                                                                                                                                  variable unstable_useForm

                                                                                                                                  const unstable_useForm: any;

                                                                                                                                    variable unstable_useFormCheckbox

                                                                                                                                    const unstable_useFormCheckbox: <V, P extends DeepPath<V, P>>(
                                                                                                                                    options: unstable_FormCheckboxOptions<V, P>,
                                                                                                                                    htmlProps?: unstable_FormCheckboxHTMLProps
                                                                                                                                    ) => unstable_FormCheckboxHTMLProps;

                                                                                                                                      variable unstable_useFormGroup

                                                                                                                                      const unstable_useFormGroup: <V, P extends DeepPath<V, P>>(
                                                                                                                                      options: unstable_FormGroupOptions<V, P>,
                                                                                                                                      htmlProps?: unstable_FormGroupHTMLProps
                                                                                                                                      ) => unstable_FormGroupHTMLProps;

                                                                                                                                        variable unstable_useFormInput

                                                                                                                                        const unstable_useFormInput: <V, P extends DeepPath<V, P>>(
                                                                                                                                        options: unstable_FormInputOptions<V, P>,
                                                                                                                                        htmlProps?: unstable_FormInputHTMLProps
                                                                                                                                        ) => unstable_FormInputHTMLProps;

                                                                                                                                          variable unstable_useFormLabel

                                                                                                                                          const unstable_useFormLabel: <V, P extends DeepPath<V, P>>(
                                                                                                                                          options: unstable_FormLabelOptions<V, P>,
                                                                                                                                          htmlProps?: unstable_FormLabelHTMLProps
                                                                                                                                          ) => unstable_FormLabelHTMLProps;

                                                                                                                                            variable unstable_useFormMessage

                                                                                                                                            const unstable_useFormMessage: <V, P extends DeepPath<V, P>>(
                                                                                                                                            options: unstable_FormMessageOptions<V, P>,
                                                                                                                                            htmlProps?: unstable_FormMessageHTMLProps
                                                                                                                                            ) => unstable_FormMessageHTMLProps;

                                                                                                                                              variable unstable_useFormPushButton

                                                                                                                                              const unstable_useFormPushButton: <V, P extends DeepPath<V, P>>(
                                                                                                                                              options: unstable_FormPushButtonOptions<V, P>,
                                                                                                                                              htmlProps?: unstable_FormPushButtonHTMLProps
                                                                                                                                              ) => unstable_FormPushButtonHTMLProps;

                                                                                                                                                variable unstable_useFormRadio

                                                                                                                                                const unstable_useFormRadio: <V, P extends DeepPath<V, P>>(
                                                                                                                                                options: unstable_FormRadioOptions<V, P>,
                                                                                                                                                htmlProps?: unstable_FormRadioHTMLProps
                                                                                                                                                ) => unstable_FormRadioHTMLProps;

                                                                                                                                                  variable unstable_useFormRemoveButton

                                                                                                                                                  const unstable_useFormRemoveButton: <V, P extends DeepPath<V, P>>(
                                                                                                                                                  options: unstable_FormRemoveButtonOptions<V, P>,
                                                                                                                                                  htmlProps?: unstable_FormRemoveButtonHTMLProps
                                                                                                                                                  ) => unstable_FormRemoveButtonHTMLProps;

                                                                                                                                                    variable unstable_useFormSubmitButton

                                                                                                                                                    const unstable_useFormSubmitButton: any;

                                                                                                                                                      variable unstable_useGridCell

                                                                                                                                                      const unstable_useGridCell: any;

                                                                                                                                                        variable unstable_useGridRow

                                                                                                                                                        const unstable_useGridRow: any;

                                                                                                                                                          variable useBox

                                                                                                                                                          const useBox: any;

                                                                                                                                                            variable useButton

                                                                                                                                                            const useButton: any;

                                                                                                                                                              variable useCheckbox

                                                                                                                                                              const useCheckbox: any;

                                                                                                                                                                variable useClickable

                                                                                                                                                                const useClickable: any;

                                                                                                                                                                  variable useComposite

                                                                                                                                                                  const useComposite: any;

                                                                                                                                                                    variable useCompositeGroup

                                                                                                                                                                    const useCompositeGroup: any;

                                                                                                                                                                      variable useCompositeItem

                                                                                                                                                                      const useCompositeItem: any;

                                                                                                                                                                        variable useDialogDisclosure

                                                                                                                                                                        const useDialogDisclosure: any;

                                                                                                                                                                          variable useDisclosure

                                                                                                                                                                          const useDisclosure: any;

                                                                                                                                                                            variable useDisclosureContent

                                                                                                                                                                            const useDisclosureContent: any;

                                                                                                                                                                              variable useGroup

                                                                                                                                                                              const useGroup: any;

                                                                                                                                                                                variable useInput

                                                                                                                                                                                const useInput: any;

                                                                                                                                                                                  variable useMenuArrow

                                                                                                                                                                                  const useMenuArrow: any;

                                                                                                                                                                                    variable useMenuButton

                                                                                                                                                                                    const useMenuButton: any;

                                                                                                                                                                                      variable useMenuDisclosure

                                                                                                                                                                                      const useMenuDisclosure: any;

                                                                                                                                                                                        variable useMenuGroup

                                                                                                                                                                                        const useMenuGroup: any;

                                                                                                                                                                                          variable useMenuItemCheckbox

                                                                                                                                                                                          const useMenuItemCheckbox: any;

                                                                                                                                                                                            variable useMenuItemRadio

                                                                                                                                                                                            const useMenuItemRadio: any;

                                                                                                                                                                                              variable useMenuSeparator

                                                                                                                                                                                              const useMenuSeparator: any;

                                                                                                                                                                                                variable usePopover

                                                                                                                                                                                                const usePopover: any;

                                                                                                                                                                                                  variable usePopoverBackdrop

                                                                                                                                                                                                  const usePopoverBackdrop: any;

                                                                                                                                                                                                    variable usePopoverDisclosure

                                                                                                                                                                                                    const usePopoverDisclosure: any;

                                                                                                                                                                                                      variable useRadio

                                                                                                                                                                                                      const useRadio: any;

                                                                                                                                                                                                        variable useRole

                                                                                                                                                                                                        const useRole: any;

                                                                                                                                                                                                          variable useRover

                                                                                                                                                                                                          const useRover: any;

                                                                                                                                                                                                            variable useSeparator

                                                                                                                                                                                                            const useSeparator: any;

                                                                                                                                                                                                              variable useTab

                                                                                                                                                                                                              const useTab: any;

                                                                                                                                                                                                                variable useTabbable

                                                                                                                                                                                                                const useTabbable: any;

                                                                                                                                                                                                                  variable useTabPanel

                                                                                                                                                                                                                  const useTabPanel: any;

                                                                                                                                                                                                                    variable useToolbarItem

                                                                                                                                                                                                                    const useToolbarItem: any;

                                                                                                                                                                                                                      variable useToolbarSeparator

                                                                                                                                                                                                                      const useToolbarSeparator: any;

                                                                                                                                                                                                                        variable useTooltipArrow

                                                                                                                                                                                                                        const useTooltipArrow: any;

                                                                                                                                                                                                                          variable useTooltipReference

                                                                                                                                                                                                                          const useTooltipReference: any;

                                                                                                                                                                                                                            variable useVisuallyHidden

                                                                                                                                                                                                                            const useVisuallyHidden: any;

                                                                                                                                                                                                                              variable VisuallyHidden

                                                                                                                                                                                                                              const VisuallyHidden: any;

                                                                                                                                                                                                                                Functions

                                                                                                                                                                                                                                function unstable_useComboboxGridState

                                                                                                                                                                                                                                unstable_useComboboxGridState: (
                                                                                                                                                                                                                                initialState?: SealedInitialState<unstable_ComboboxGridInitialState>
                                                                                                                                                                                                                                ) => unstable_ComboboxGridStateReturn;

                                                                                                                                                                                                                                  function unstable_useComboboxListGridState

                                                                                                                                                                                                                                  unstable_useComboboxListGridState: (
                                                                                                                                                                                                                                  initialState?: SealedInitialState<unstable_ComboboxListGridInitialState>
                                                                                                                                                                                                                                  ) => unstable_ComboboxListGridStateReturn;

                                                                                                                                                                                                                                    function unstable_useComboboxListState

                                                                                                                                                                                                                                    unstable_useComboboxListState: (
                                                                                                                                                                                                                                    initialState?: SealedInitialState<unstable_ComboboxListInitialState>
                                                                                                                                                                                                                                    ) => unstable_ComboboxListStateReturn;

                                                                                                                                                                                                                                      function unstable_useComboboxState

                                                                                                                                                                                                                                      unstable_useComboboxState: (
                                                                                                                                                                                                                                      initialState?: SealedInitialState<unstable_ComboboxInitialState>
                                                                                                                                                                                                                                      ) => unstable_ComboboxStateReturn;

                                                                                                                                                                                                                                        function unstable_useCompositeState

                                                                                                                                                                                                                                        unstable_useCompositeState: (
                                                                                                                                                                                                                                        initialState?: SealedInitialState<CompositeInitialState>
                                                                                                                                                                                                                                        ) => CompositeStateReturn;

                                                                                                                                                                                                                                          function unstable_useFormState

                                                                                                                                                                                                                                          unstable_useFormState: <V = Record<any, any>>(
                                                                                                                                                                                                                                          initialState?: SealedInitialState<unstable_FormInitialState<V>>
                                                                                                                                                                                                                                          ) => unstable_FormStateReturn<V>;

                                                                                                                                                                                                                                            function unstable_useGridState

                                                                                                                                                                                                                                            unstable_useGridState: (
                                                                                                                                                                                                                                            initialState?: SealedInitialState<CompositeInitialState>
                                                                                                                                                                                                                                            ) => unstable_GridStateReturn;

                                                                                                                                                                                                                                              function unstable_useIdState

                                                                                                                                                                                                                                              unstable_useIdState: (
                                                                                                                                                                                                                                              initialState?: SealedInitialState<Partial<Pick<unstable_IdState, 'baseId'>>>
                                                                                                                                                                                                                                              ) => unstable_IdStateReturn;

                                                                                                                                                                                                                                                function useCheckboxState

                                                                                                                                                                                                                                                useCheckboxState: (
                                                                                                                                                                                                                                                initialState?: SealedInitialState<Partial<Pick<CheckboxState, 'state'>>>
                                                                                                                                                                                                                                                ) => CheckboxStateReturn;
                                                                                                                                                                                                                                                • As simple as React.useState(false)

                                                                                                                                                                                                                                                function useCompositeState

                                                                                                                                                                                                                                                useCompositeState: (
                                                                                                                                                                                                                                                initialState?: SealedInitialState<CompositeInitialState>
                                                                                                                                                                                                                                                ) => CompositeStateReturn;

                                                                                                                                                                                                                                                  function useDialogState

                                                                                                                                                                                                                                                  useDialogState: (
                                                                                                                                                                                                                                                  initialState?: SealedInitialState<DialogInitialState>
                                                                                                                                                                                                                                                  ) => DialogStateReturn;

                                                                                                                                                                                                                                                    function useDisclosureState

                                                                                                                                                                                                                                                    useDisclosureState: (
                                                                                                                                                                                                                                                    initialState?: SealedInitialState<DisclosureInitialState>
                                                                                                                                                                                                                                                    ) => DisclosureStateReturn;

                                                                                                                                                                                                                                                      function useMenuBarState

                                                                                                                                                                                                                                                      useMenuBarState: (
                                                                                                                                                                                                                                                      initialState?: SealedInitialState<MenuBarInitialState>
                                                                                                                                                                                                                                                      ) => MenuBarStateReturn;

                                                                                                                                                                                                                                                        function useMenuState

                                                                                                                                                                                                                                                        useMenuState: (
                                                                                                                                                                                                                                                        initialState?: SealedInitialState<MenuInitialState>
                                                                                                                                                                                                                                                        ) => MenuStateReturn;

                                                                                                                                                                                                                                                          function usePopoverState

                                                                                                                                                                                                                                                          usePopoverState: (
                                                                                                                                                                                                                                                          initialState?: SealedInitialState<PopoverInitialState>
                                                                                                                                                                                                                                                          ) => PopoverStateReturn;

                                                                                                                                                                                                                                                            function useRadioState

                                                                                                                                                                                                                                                            useRadioState: (
                                                                                                                                                                                                                                                            initialState?: SealedInitialState<RadioInitialState>
                                                                                                                                                                                                                                                            ) => RadioStateReturn;

                                                                                                                                                                                                                                                              function useRoverState

                                                                                                                                                                                                                                                              useRoverState: (
                                                                                                                                                                                                                                                              initialState?: SealedInitialState<RoverInitialState>
                                                                                                                                                                                                                                                              ) => RoverStateReturn;

                                                                                                                                                                                                                                                                function useTabState

                                                                                                                                                                                                                                                                useTabState: (
                                                                                                                                                                                                                                                                initialState?: SealedInitialState<TabInitialState>
                                                                                                                                                                                                                                                                ) => TabStateReturn;

                                                                                                                                                                                                                                                                  function useToolbarState

                                                                                                                                                                                                                                                                  useToolbarState: (
                                                                                                                                                                                                                                                                  initialState?: SealedInitialState<CompositeInitialState>
                                                                                                                                                                                                                                                                  ) => ToolbarStateReturn;

                                                                                                                                                                                                                                                                    function useTooltipState

                                                                                                                                                                                                                                                                    useTooltipState: (
                                                                                                                                                                                                                                                                    initialState?: SealedInitialState<TooltipInitialState>
                                                                                                                                                                                                                                                                    ) => TooltipStateReturn;

                                                                                                                                                                                                                                                                      Type Aliases

                                                                                                                                                                                                                                                                      type BoxHTMLProps

                                                                                                                                                                                                                                                                      type BoxHTMLProps = React.HTMLAttributes<any> &
                                                                                                                                                                                                                                                                      React.RefAttributes<any> & {
                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                      * Function returned by the hook to wrap the element to which html props
                                                                                                                                                                                                                                                                      * will be passed.
                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                      wrapElement?: (element: React.ReactNode) => React.ReactNode;
                                                                                                                                                                                                                                                                      };

                                                                                                                                                                                                                                                                        type BoxOptions

                                                                                                                                                                                                                                                                        type BoxOptions = {
                                                                                                                                                                                                                                                                        /**
                                                                                                                                                                                                                                                                        * Options passed to `reakit-system-*`
                                                                                                                                                                                                                                                                        * @private
                                                                                                                                                                                                                                                                        */
                                                                                                                                                                                                                                                                        unstable_system?: any;
                                                                                                                                                                                                                                                                        };

                                                                                                                                                                                                                                                                          type BoxProps

                                                                                                                                                                                                                                                                          type BoxProps = BoxOptions & BoxHTMLProps;

                                                                                                                                                                                                                                                                            type ButtonHTMLProps

                                                                                                                                                                                                                                                                            type ButtonHTMLProps = ClickableHTMLProps & React.ButtonHTMLAttributes<any>;

                                                                                                                                                                                                                                                                              type ButtonOptions

                                                                                                                                                                                                                                                                              type ButtonOptions = ClickableOptions;

                                                                                                                                                                                                                                                                                type ButtonProps

                                                                                                                                                                                                                                                                                type ButtonProps = ButtonOptions & ButtonHTMLProps;

                                                                                                                                                                                                                                                                                  type CheckboxActions

                                                                                                                                                                                                                                                                                  type CheckboxActions = {
                                                                                                                                                                                                                                                                                  /**
                                                                                                                                                                                                                                                                                  * Sets `state`.
                                                                                                                                                                                                                                                                                  */
                                                                                                                                                                                                                                                                                  setState: React.Dispatch<React.SetStateAction<CheckboxState['state']>>;
                                                                                                                                                                                                                                                                                  };

                                                                                                                                                                                                                                                                                    type CheckboxHTMLProps

                                                                                                                                                                                                                                                                                    type CheckboxHTMLProps = ClickableHTMLProps &
                                                                                                                                                                                                                                                                                    React.InputHTMLAttributes<any> & {
                                                                                                                                                                                                                                                                                    value?: string | number;
                                                                                                                                                                                                                                                                                    };

                                                                                                                                                                                                                                                                                      type CheckboxInitialState

                                                                                                                                                                                                                                                                                      type CheckboxInitialState = Partial<Pick<CheckboxState, 'state'>>;

                                                                                                                                                                                                                                                                                        type CheckboxOptions

                                                                                                                                                                                                                                                                                        type CheckboxOptions = ClickableOptions &
                                                                                                                                                                                                                                                                                        Pick<Partial<CheckboxStateReturn>, 'state' | 'setState'> & {
                                                                                                                                                                                                                                                                                        /**
                                                                                                                                                                                                                                                                                        * Checkbox's value is going to be used when multiple checkboxes share the
                                                                                                                                                                                                                                                                                        * same state. Checking a checkbox with value will add it to the state
                                                                                                                                                                                                                                                                                        * array.
                                                                                                                                                                                                                                                                                        */
                                                                                                                                                                                                                                                                                        value?: string | number;
                                                                                                                                                                                                                                                                                        /**
                                                                                                                                                                                                                                                                                        * Checkbox's checked state. If present, it's used instead of `state`.
                                                                                                                                                                                                                                                                                        */
                                                                                                                                                                                                                                                                                        checked?: boolean;
                                                                                                                                                                                                                                                                                        };

                                                                                                                                                                                                                                                                                          type CheckboxProps

                                                                                                                                                                                                                                                                                          type CheckboxProps = CheckboxOptions & CheckboxHTMLProps;

                                                                                                                                                                                                                                                                                            type CheckboxState

                                                                                                                                                                                                                                                                                            type CheckboxState = {
                                                                                                                                                                                                                                                                                            /**
                                                                                                                                                                                                                                                                                            * Stores the state of the checkbox.
                                                                                                                                                                                                                                                                                            * If checkboxes that share this state have defined a `value` prop, it's
                                                                                                                                                                                                                                                                                            * going to be an array.
                                                                                                                                                                                                                                                                                            */
                                                                                                                                                                                                                                                                                            state: boolean | 'indeterminate' | Array<number | string>;
                                                                                                                                                                                                                                                                                            };

                                                                                                                                                                                                                                                                                              type CheckboxStateReturn

                                                                                                                                                                                                                                                                                              type CheckboxStateReturn = CheckboxState & CheckboxActions;

                                                                                                                                                                                                                                                                                                type ClickableHTMLProps

                                                                                                                                                                                                                                                                                                type ClickableHTMLProps = TabbableHTMLProps;

                                                                                                                                                                                                                                                                                                  type ClickableOptions

                                                                                                                                                                                                                                                                                                  type ClickableOptions = TabbableOptions & {
                                                                                                                                                                                                                                                                                                  /**
                                                                                                                                                                                                                                                                                                  * Whether or not trigger click on pressing <kbd>Enter</kbd>.
                                                                                                                                                                                                                                                                                                  * @private
                                                                                                                                                                                                                                                                                                  */
                                                                                                                                                                                                                                                                                                  unstable_clickOnEnter?: boolean;
                                                                                                                                                                                                                                                                                                  /**
                                                                                                                                                                                                                                                                                                  * Whether or not trigger click on pressing <kbd>Space</kbd>.
                                                                                                                                                                                                                                                                                                  * @private
                                                                                                                                                                                                                                                                                                  */
                                                                                                                                                                                                                                                                                                  unstable_clickOnSpace?: boolean;
                                                                                                                                                                                                                                                                                                  };

                                                                                                                                                                                                                                                                                                    type ClickableProps

                                                                                                                                                                                                                                                                                                    type ClickableProps = ClickableOptions & ClickableHTMLProps;

                                                                                                                                                                                                                                                                                                      type CompositeActions

                                                                                                                                                                                                                                                                                                      type CompositeActions = unstable_IdActions & {
                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                      * Registers a composite item.
                                                                                                                                                                                                                                                                                                      * @example
                                                                                                                                                                                                                                                                                                      * const ref = React.useRef();
                                                                                                                                                                                                                                                                                                      * const composite = useCompositeState();
                                                                                                                                                                                                                                                                                                      * React.useEffect(() => {
                                                                                                                                                                                                                                                                                                      * composite.registerItem({ ref, id: "id" });
                                                                                                                                                                                                                                                                                                      * return () => composite.unregisterItem("id");
                                                                                                                                                                                                                                                                                                      * }, []);
                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                      registerItem: (item: Item) => void;
                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                      * Unregisters a composite item.
                                                                                                                                                                                                                                                                                                      * @example
                                                                                                                                                                                                                                                                                                      * const ref = React.useRef();
                                                                                                                                                                                                                                                                                                      * const composite = useCompositeState();
                                                                                                                                                                                                                                                                                                      * React.useEffect(() => {
                                                                                                                                                                                                                                                                                                      * composite.registerItem({ ref, id: "id" });
                                                                                                                                                                                                                                                                                                      * return () => composite.unregisterItem("id");
                                                                                                                                                                                                                                                                                                      * }, []);
                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                      unregisterItem: (id: string) => void;
                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                      * Registers a composite group.
                                                                                                                                                                                                                                                                                                      * @example
                                                                                                                                                                                                                                                                                                      * const ref = React.useRef();
                                                                                                                                                                                                                                                                                                      * const composite = useCompositeState();
                                                                                                                                                                                                                                                                                                      * React.useEffect(() => {
                                                                                                                                                                                                                                                                                                      * composite.registerGroup({ ref, id: "id" });
                                                                                                                                                                                                                                                                                                      * return () => composite.unregisterGroup("id");
                                                                                                                                                                                                                                                                                                      * }, []);
                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                      registerGroup: (group: Group) => void;
                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                      * Unregisters a composite group.
                                                                                                                                                                                                                                                                                                      * @example
                                                                                                                                                                                                                                                                                                      * const ref = React.useRef();
                                                                                                                                                                                                                                                                                                      * const composite = useCompositeState();
                                                                                                                                                                                                                                                                                                      * React.useEffect(() => {
                                                                                                                                                                                                                                                                                                      * composite.registerGroup({ ref, id: "id" });
                                                                                                                                                                                                                                                                                                      * return () => composite.unregisterGroup("id");
                                                                                                                                                                                                                                                                                                      * }, []);
                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                      unregisterGroup: (id: string) => void;
                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                      * Moves focus to a given item ID.
                                                                                                                                                                                                                                                                                                      * @example
                                                                                                                                                                                                                                                                                                      * const composite = useCompositeState();
                                                                                                                                                                                                                                                                                                      * composite.move("item-2"); // focus item 2
                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                      move: (id: string | null) => void;
                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                      * Moves focus to the next item.
                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                      next: (unstable_allTheWay?: boolean) => void;
                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                      * Moves focus to the previous item.
                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                      previous: (unstable_allTheWay?: boolean) => void;
                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                      * Moves focus to the item above.
                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                      up: (unstable_allTheWay?: boolean) => void;
                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                      * Moves focus to the item below.
                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                      down: (unstable_allTheWay?: boolean) => void;
                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                      * Moves focus to the first item.
                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                      first: () => void;
                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                      * Moves focus to the last item.
                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                      last: () => void;
                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                      * Sorts the `composite.items` based on the items position in the DOM. This
                                                                                                                                                                                                                                                                                                      * is especially useful after modifying the composite items order in the DOM.
                                                                                                                                                                                                                                                                                                      * Most of the time, though, you don't need to manually call this function as
                                                                                                                                                                                                                                                                                                      * the re-ordering happens automatically.
                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                      sort: () => void;
                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                      * Sets `virtual`.
                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                      unstable_setVirtual: React.Dispatch<
                                                                                                                                                                                                                                                                                                      React.SetStateAction<CompositeState['unstable_virtual']>
                                                                                                                                                                                                                                                                                                      >;
                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                      * Sets `rtl`.
                                                                                                                                                                                                                                                                                                      * @example
                                                                                                                                                                                                                                                                                                      * const composite = useCompositeState({ rtl: true });
                                                                                                                                                                                                                                                                                                      * composite.setRTL(false);
                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                      setRTL: React.Dispatch<React.SetStateAction<CompositeState['rtl']>>;
                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                      * Sets `orientation`.
                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                      setOrientation: React.Dispatch<
                                                                                                                                                                                                                                                                                                      React.SetStateAction<CompositeState['orientation']>
                                                                                                                                                                                                                                                                                                      >;
                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                      * Sets `currentId`. This is different from `composite.move` as this only
                                                                                                                                                                                                                                                                                                      * updates the `currentId` state without moving focus. When the composite
                                                                                                                                                                                                                                                                                                      * widget gets focused by the user, the item referred by the `currentId`
                                                                                                                                                                                                                                                                                                      * state will get focus.
                                                                                                                                                                                                                                                                                                      * @example
                                                                                                                                                                                                                                                                                                      * const composite = useCompositeState({ currentId: "item-1" });
                                                                                                                                                                                                                                                                                                      * // Updates `composite.currentId` to `item-2`
                                                                                                                                                                                                                                                                                                      * composite.setCurrentId("item-2");
                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                      setCurrentId: React.Dispatch<React.SetStateAction<CompositeState['currentId']>>;
                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                      * Sets `loop`.
                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                      setLoop: React.Dispatch<React.SetStateAction<CompositeState['loop']>>;
                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                      * Sets `wrap`.
                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                      setWrap: React.Dispatch<React.SetStateAction<CompositeState['wrap']>>;
                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                      * Sets `shift`.
                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                      setShift: React.Dispatch<React.SetStateAction<CompositeState['shift']>>;
                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                      * Resets to initial state.
                                                                                                                                                                                                                                                                                                      * @example
                                                                                                                                                                                                                                                                                                      * // On initial render, currentId will be item-1 and loop will be true
                                                                                                                                                                                                                                                                                                      * const composite = useCompositeState({
                                                                                                                                                                                                                                                                                                      * currentId: "item-1",
                                                                                                                                                                                                                                                                                                      * loop: true,
                                                                                                                                                                                                                                                                                                      * });
                                                                                                                                                                                                                                                                                                      * // On next render, currentId will be item-2 and loop will be false
                                                                                                                                                                                                                                                                                                      * composite.setCurrentId("item-2");
                                                                                                                                                                                                                                                                                                      * composite.setLoop(false);
                                                                                                                                                                                                                                                                                                      * // On next render, currentId will be item-1 and loop will be true
                                                                                                                                                                                                                                                                                                      * composite.reset();
                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                      reset: () => void;
                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                      * Sets `includesBaseElement`.
                                                                                                                                                                                                                                                                                                      * @private
                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                      unstable_setIncludesBaseElement: React.Dispatch<
                                                                                                                                                                                                                                                                                                      React.SetStateAction<CompositeState['unstable_includesBaseElement']>
                                                                                                                                                                                                                                                                                                      >;
                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                      * Sets `hasActiveWidget`.
                                                                                                                                                                                                                                                                                                      * @private
                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                      unstable_setHasActiveWidget: React.Dispatch<
                                                                                                                                                                                                                                                                                                      React.SetStateAction<CompositeState['unstable_hasActiveWidget']>
                                                                                                                                                                                                                                                                                                      >;
                                                                                                                                                                                                                                                                                                      };

                                                                                                                                                                                                                                                                                                        type CompositeGroupHTMLProps

                                                                                                                                                                                                                                                                                                        type CompositeGroupHTMLProps = GroupHTMLProps & unstable_IdHTMLProps;

                                                                                                                                                                                                                                                                                                          type CompositeGroupOptions

                                                                                                                                                                                                                                                                                                          type CompositeGroupOptions = GroupOptions &
                                                                                                                                                                                                                                                                                                          unstable_IdOptions &
                                                                                                                                                                                                                                                                                                          Pick<CompositeStateReturn, 'registerGroup' | 'unregisterGroup'> &
                                                                                                                                                                                                                                                                                                          Pick<Partial<CompositeStateReturn>, 'currentId' | 'unstable_moves' | 'items'>;

                                                                                                                                                                                                                                                                                                            type CompositeGroupProps

                                                                                                                                                                                                                                                                                                            type CompositeGroupProps = CompositeGroupOptions & CompositeGroupHTMLProps;

                                                                                                                                                                                                                                                                                                              type CompositeHTMLProps

                                                                                                                                                                                                                                                                                                              type CompositeHTMLProps = TabbableHTMLProps;

                                                                                                                                                                                                                                                                                                                type CompositeInitialState

                                                                                                                                                                                                                                                                                                                type CompositeInitialState = unstable_IdInitialState &
                                                                                                                                                                                                                                                                                                                Partial<
                                                                                                                                                                                                                                                                                                                Pick<
                                                                                                                                                                                                                                                                                                                CompositeState,
                                                                                                                                                                                                                                                                                                                | 'unstable_virtual'
                                                                                                                                                                                                                                                                                                                | 'rtl'
                                                                                                                                                                                                                                                                                                                | 'orientation'
                                                                                                                                                                                                                                                                                                                | 'currentId'
                                                                                                                                                                                                                                                                                                                | 'loop'
                                                                                                                                                                                                                                                                                                                | 'wrap'
                                                                                                                                                                                                                                                                                                                | 'shift'
                                                                                                                                                                                                                                                                                                                | 'unstable_includesBaseElement'
                                                                                                                                                                                                                                                                                                                >
                                                                                                                                                                                                                                                                                                                >;

                                                                                                                                                                                                                                                                                                                  type CompositeItemHTMLProps

                                                                                                                                                                                                                                                                                                                  type CompositeItemHTMLProps = ClickableHTMLProps & unstable_IdHTMLProps;

                                                                                                                                                                                                                                                                                                                    type CompositeItemOptions

                                                                                                                                                                                                                                                                                                                    type CompositeItemOptions = ClickableOptions &
                                                                                                                                                                                                                                                                                                                    unstable_IdOptions &
                                                                                                                                                                                                                                                                                                                    Pick<
                                                                                                                                                                                                                                                                                                                    Partial<CompositeStateReturn>,
                                                                                                                                                                                                                                                                                                                    | 'unstable_virtual'
                                                                                                                                                                                                                                                                                                                    | 'baseId'
                                                                                                                                                                                                                                                                                                                    | 'orientation'
                                                                                                                                                                                                                                                                                                                    | 'unstable_moves'
                                                                                                                                                                                                                                                                                                                    | 'unstable_hasActiveWidget'
                                                                                                                                                                                                                                                                                                                    > &
                                                                                                                                                                                                                                                                                                                    Pick<
                                                                                                                                                                                                                                                                                                                    CompositeStateReturn,
                                                                                                                                                                                                                                                                                                                    | 'items'
                                                                                                                                                                                                                                                                                                                    | 'currentId'
                                                                                                                                                                                                                                                                                                                    | 'registerItem'
                                                                                                                                                                                                                                                                                                                    | 'unregisterItem'
                                                                                                                                                                                                                                                                                                                    | 'setCurrentId'
                                                                                                                                                                                                                                                                                                                    | 'next'
                                                                                                                                                                                                                                                                                                                    | 'previous'
                                                                                                                                                                                                                                                                                                                    | 'up'
                                                                                                                                                                                                                                                                                                                    | 'down'
                                                                                                                                                                                                                                                                                                                    | 'first'
                                                                                                                                                                                                                                                                                                                    | 'last'
                                                                                                                                                                                                                                                                                                                    >;

                                                                                                                                                                                                                                                                                                                      type CompositeItemProps

                                                                                                                                                                                                                                                                                                                      type CompositeItemProps = CompositeItemOptions & CompositeItemHTMLProps;

                                                                                                                                                                                                                                                                                                                        type CompositeOptions

                                                                                                                                                                                                                                                                                                                        type CompositeOptions = TabbableOptions &
                                                                                                                                                                                                                                                                                                                        Pick<
                                                                                                                                                                                                                                                                                                                        Partial<CompositeStateReturn>,
                                                                                                                                                                                                                                                                                                                        | 'baseId'
                                                                                                                                                                                                                                                                                                                        | 'unstable_virtual'
                                                                                                                                                                                                                                                                                                                        | 'currentId'
                                                                                                                                                                                                                                                                                                                        | 'orientation'
                                                                                                                                                                                                                                                                                                                        | 'unstable_moves'
                                                                                                                                                                                                                                                                                                                        | 'wrap'
                                                                                                                                                                                                                                                                                                                        | 'groups'
                                                                                                                                                                                                                                                                                                                        > &
                                                                                                                                                                                                                                                                                                                        Pick<CompositeStateReturn, 'items' | 'setCurrentId' | 'first' | 'last' | 'move'>;

                                                                                                                                                                                                                                                                                                                          type CompositeProps

                                                                                                                                                                                                                                                                                                                          type CompositeProps = CompositeOptions & CompositeHTMLProps;

                                                                                                                                                                                                                                                                                                                            type CompositeState

                                                                                                                                                                                                                                                                                                                            type CompositeState = unstable_IdState & {
                                                                                                                                                                                                                                                                                                                            /**
                                                                                                                                                                                                                                                                                                                            * If enabled, the composite element will act as an
                                                                                                                                                                                                                                                                                                                            * [aria-activedescendant](https://www.w3.org/TR/wai-aria-practices-1.1/#kbd_focus_activedescendant)
                                                                                                                                                                                                                                                                                                                            * container instead of
                                                                                                                                                                                                                                                                                                                            * [roving tabindex](https://www.w3.org/TR/wai-aria-practices/#kbd_roving_tabindex).
                                                                                                                                                                                                                                                                                                                            * DOM focus will remain on the composite while its items receive virtual focus.
                                                                                                                                                                                                                                                                                                                            * @default false
                                                                                                                                                                                                                                                                                                                            */
                                                                                                                                                                                                                                                                                                                            unstable_virtual: boolean;
                                                                                                                                                                                                                                                                                                                            /**
                                                                                                                                                                                                                                                                                                                            * Determines how `next` and `previous` functions will behave. If `rtl` is
                                                                                                                                                                                                                                                                                                                            * set to `true`, they will be inverted. This only affects the composite
                                                                                                                                                                                                                                                                                                                            * widget behavior. You still need to set `dir="rtl"` on HTML/CSS.
                                                                                                                                                                                                                                                                                                                            * @default false
                                                                                                                                                                                                                                                                                                                            */
                                                                                                                                                                                                                                                                                                                            rtl: boolean;
                                                                                                                                                                                                                                                                                                                            /**
                                                                                                                                                                                                                                                                                                                            * Defines the orientation of the composite widget. If the composite has a
                                                                                                                                                                                                                                                                                                                            * single row or column (one-dimensional), the `orientation` value determines
                                                                                                                                                                                                                                                                                                                            * which arrow keys can be used to move focus:
                                                                                                                                                                                                                                                                                                                            * - `undefined`: all arrow keys work.
                                                                                                                                                                                                                                                                                                                            * - `horizontal`: only left and right arrow keys work.
                                                                                                                                                                                                                                                                                                                            * - `vertical`: only up and down arrow keys work.
                                                                                                                                                                                                                                                                                                                            *
                                                                                                                                                                                                                                                                                                                            * It doesn't have any effect on two-dimensional composites.
                                                                                                                                                                                                                                                                                                                            * @default undefined
                                                                                                                                                                                                                                                                                                                            */
                                                                                                                                                                                                                                                                                                                            orientation?: Orientation;
                                                                                                                                                                                                                                                                                                                            /**
                                                                                                                                                                                                                                                                                                                            * Lists all the composite items with their `id`, DOM `ref`, `disabled` state
                                                                                                                                                                                                                                                                                                                            * and `groupId` if any. This state is automatically updated when
                                                                                                                                                                                                                                                                                                                            * `registerItem` and `unregisterItem` are called.
                                                                                                                                                                                                                                                                                                                            * @example
                                                                                                                                                                                                                                                                                                                            * const composite = useCompositeState();
                                                                                                                                                                                                                                                                                                                            * composite.items.forEach((item) => {
                                                                                                                                                                                                                                                                                                                            * const { id, ref, disabled, groupId } = item;
                                                                                                                                                                                                                                                                                                                            * ...
                                                                                                                                                                                                                                                                                                                            * });
                                                                                                                                                                                                                                                                                                                            */
                                                                                                                                                                                                                                                                                                                            items: Item[];
                                                                                                                                                                                                                                                                                                                            /**
                                                                                                                                                                                                                                                                                                                            * Lists all the composite groups with their `id` and DOM `ref`. This state
                                                                                                                                                                                                                                                                                                                            * is automatically updated when `registerGroup` and `unregisterGroup` are
                                                                                                                                                                                                                                                                                                                            * called.
                                                                                                                                                                                                                                                                                                                            * @example
                                                                                                                                                                                                                                                                                                                            * const composite = useCompositeState();
                                                                                                                                                                                                                                                                                                                            * composite.groups.forEach((group) => {
                                                                                                                                                                                                                                                                                                                            * const { id, ref } = group;
                                                                                                                                                                                                                                                                                                                            * ...
                                                                                                                                                                                                                                                                                                                            * });
                                                                                                                                                                                                                                                                                                                            */
                                                                                                                                                                                                                                                                                                                            groups: Group[];
                                                                                                                                                                                                                                                                                                                            /**
                                                                                                                                                                                                                                                                                                                            * The current focused item `id`.
                                                                                                                                                                                                                                                                                                                            * - `undefined` will automatically focus the first enabled composite item.
                                                                                                                                                                                                                                                                                                                            * - `null` will focus the base composite element and users will be able to
                                                                                                                                                                                                                                                                                                                            * navigate out of it using arrow keys.
                                                                                                                                                                                                                                                                                                                            * - If `currentId` is initially set to `null`, the base composite element
                                                                                                                                                                                                                                                                                                                            * itself will have focus and users will be able to navigate to it using
                                                                                                                                                                                                                                                                                                                            * arrow keys.
                                                                                                                                                                                                                                                                                                                            * @default undefined
                                                                                                                                                                                                                                                                                                                            * @example
                                                                                                                                                                                                                                                                                                                            * // First enabled item has initial focus
                                                                                                                                                                                                                                                                                                                            * useCompositeState();
                                                                                                                                                                                                                                                                                                                            * // Base composite element has initial focus
                                                                                                                                                                                                                                                                                                                            * useCompositeState({ currentId: null });
                                                                                                                                                                                                                                                                                                                            * // Specific composite item element has initial focus
                                                                                                                                                                                                                                                                                                                            * useCompositeState({ currentId: "item-id" });
                                                                                                                                                                                                                                                                                                                            */
                                                                                                                                                                                                                                                                                                                            currentId?: string | null;
                                                                                                                                                                                                                                                                                                                            /**
                                                                                                                                                                                                                                                                                                                            * On one-dimensional composites:
                                                                                                                                                                                                                                                                                                                            * - `true` loops from the last item to the first item and vice-versa.
                                                                                                                                                                                                                                                                                                                            * - `horizontal` loops only if `orientation` is `horizontal` or not set.
                                                                                                                                                                                                                                                                                                                            * - `vertical` loops only if `orientation` is `vertical` or not set.
                                                                                                                                                                                                                                                                                                                            * - If `currentId` is initially set to `null`, the composite element will
                                                                                                                                                                                                                                                                                                                            * be focused in between the last and first items.
                                                                                                                                                                                                                                                                                                                            *
                                                                                                                                                                                                                                                                                                                            * On two-dimensional composites:
                                                                                                                                                                                                                                                                                                                            * - `true` loops from the last row/column item to the first item in the
                                                                                                                                                                                                                                                                                                                            * same row/column and vice-versa. If it's the last item in the last row, it
                                                                                                                                                                                                                                                                                                                            * moves to the first item in the first row and vice-versa.
                                                                                                                                                                                                                                                                                                                            * - `horizontal` loops only from the last row item to the first item in
                                                                                                                                                                                                                                                                                                                            * the same row.
                                                                                                                                                                                                                                                                                                                            * - `vertical` loops only from the last column item to the first item in
                                                                                                                                                                                                                                                                                                                            * the column row.
                                                                                                                                                                                                                                                                                                                            * - If `currentId` is initially set to `null`, vertical loop will have no
                                                                                                                                                                                                                                                                                                                            * effect as moving down from the last row or up from the first row will
                                                                                                                                                                                                                                                                                                                            * focus the composite element.
                                                                                                                                                                                                                                                                                                                            * - If `wrap` matches the value of `loop`, it'll wrap between the last
                                                                                                                                                                                                                                                                                                                            * item in the last row or column and the first item in the first row or
                                                                                                                                                                                                                                                                                                                            * column and vice-versa.
                                                                                                                                                                                                                                                                                                                            * @default false
                                                                                                                                                                                                                                                                                                                            */
                                                                                                                                                                                                                                                                                                                            loop: boolean | Orientation;
                                                                                                                                                                                                                                                                                                                            /**
                                                                                                                                                                                                                                                                                                                            * **Has effect only on two-dimensional composites**. If enabled, moving to
                                                                                                                                                                                                                                                                                                                            * the next item from the last one in a row or column will focus the first
                                                                                                                                                                                                                                                                                                                            * item in the next row or column and vice-versa.
                                                                                                                                                                                                                                                                                                                            * - `true` wraps between rows and columns.
                                                                                                                                                                                                                                                                                                                            * - `horizontal` wraps only between rows.
                                                                                                                                                                                                                                                                                                                            * - `vertical` wraps only between columns.
                                                                                                                                                                                                                                                                                                                            * - If `loop` matches the value of `wrap`, it'll wrap between the last
                                                                                                                                                                                                                                                                                                                            * item in the last row or column and the first item in the first row or
                                                                                                                                                                                                                                                                                                                            * column and vice-versa.
                                                                                                                                                                                                                                                                                                                            * @default false
                                                                                                                                                                                                                                                                                                                            */
                                                                                                                                                                                                                                                                                                                            wrap: boolean | Orientation;
                                                                                                                                                                                                                                                                                                                            /**
                                                                                                                                                                                                                                                                                                                            * **Has effect only on two-dimensional composites**. If enabled, moving up
                                                                                                                                                                                                                                                                                                                            * or down when there's no next item or the next item is disabled will shift
                                                                                                                                                                                                                                                                                                                            * to the item right before it.
                                                                                                                                                                                                                                                                                                                            * @default false
                                                                                                                                                                                                                                                                                                                            */
                                                                                                                                                                                                                                                                                                                            shift: boolean;
                                                                                                                                                                                                                                                                                                                            /**
                                                                                                                                                                                                                                                                                                                            * Stores the number of moves that have been performed by calling `move`,
                                                                                                                                                                                                                                                                                                                            * `next`, `previous`, `up`, `down`, `first` or `last`.
                                                                                                                                                                                                                                                                                                                            * @default 0
                                                                                                                                                                                                                                                                                                                            */
                                                                                                                                                                                                                                                                                                                            unstable_moves: number;
                                                                                                                                                                                                                                                                                                                            /**
                                                                                                                                                                                                                                                                                                                            * @default false
                                                                                                                                                                                                                                                                                                                            * @private
                                                                                                                                                                                                                                                                                                                            */
                                                                                                                                                                                                                                                                                                                            unstable_hasActiveWidget: boolean;
                                                                                                                                                                                                                                                                                                                            /**
                                                                                                                                                                                                                                                                                                                            * @default false
                                                                                                                                                                                                                                                                                                                            * @private
                                                                                                                                                                                                                                                                                                                            */
                                                                                                                                                                                                                                                                                                                            unstable_includesBaseElement: boolean;
                                                                                                                                                                                                                                                                                                                            };

                                                                                                                                                                                                                                                                                                                              type CompositeStateReturn

                                                                                                                                                                                                                                                                                                                              type CompositeStateReturn = unstable_IdStateReturn &
                                                                                                                                                                                                                                                                                                                              CompositeState &
                                                                                                                                                                                                                                                                                                                              CompositeActions;

                                                                                                                                                                                                                                                                                                                                type DialogActions

                                                                                                                                                                                                                                                                                                                                type DialogActions = DisclosureActions & {
                                                                                                                                                                                                                                                                                                                                /**
                                                                                                                                                                                                                                                                                                                                * Sets `modal`.
                                                                                                                                                                                                                                                                                                                                */
                                                                                                                                                                                                                                                                                                                                setModal: React.Dispatch<React.SetStateAction<DialogState['modal']>>;
                                                                                                                                                                                                                                                                                                                                };

                                                                                                                                                                                                                                                                                                                                  type DialogDisclosureHTMLProps

                                                                                                                                                                                                                                                                                                                                  type DialogDisclosureHTMLProps = DisclosureHTMLProps;

                                                                                                                                                                                                                                                                                                                                    type DialogDisclosureOptions

                                                                                                                                                                                                                                                                                                                                    type DialogDisclosureOptions = DisclosureOptions &
                                                                                                                                                                                                                                                                                                                                    Pick<Partial<DialogStateReturn>, 'unstable_disclosureRef'> &
                                                                                                                                                                                                                                                                                                                                    Pick<DialogStateReturn, 'toggle'>;

                                                                                                                                                                                                                                                                                                                                      type DialogDisclosureProps

                                                                                                                                                                                                                                                                                                                                      type DialogDisclosureProps = DialogDisclosureOptions & DialogDisclosureHTMLProps;

                                                                                                                                                                                                                                                                                                                                        type DialogInitialState

                                                                                                                                                                                                                                                                                                                                        type DialogInitialState = DisclosureInitialState &
                                                                                                                                                                                                                                                                                                                                        Partial<Pick<DialogState, 'modal'>>;

                                                                                                                                                                                                                                                                                                                                          type DialogState

                                                                                                                                                                                                                                                                                                                                          type DialogState = DisclosureState & {
                                                                                                                                                                                                                                                                                                                                          /**
                                                                                                                                                                                                                                                                                                                                          * Toggles Dialog's `modal` state.
                                                                                                                                                                                                                                                                                                                                          * - Non-modal: `preventBodyScroll` doesn't work and focus is free.
                                                                                                                                                                                                                                                                                                                                          * - Modal: `preventBodyScroll` is automatically enabled, focus is
                                                                                                                                                                                                                                                                                                                                          * trapped within the dialog and the dialog is rendered within a `Portal`
                                                                                                                                                                                                                                                                                                                                          * by default.
                                                                                                                                                                                                                                                                                                                                          */
                                                                                                                                                                                                                                                                                                                                          modal: boolean;
                                                                                                                                                                                                                                                                                                                                          /**
                                                                                                                                                                                                                                                                                                                                          * @private
                                                                                                                                                                                                                                                                                                                                          */
                                                                                                                                                                                                                                                                                                                                          unstable_disclosureRef: React.MutableRefObject<HTMLElement | null>;
                                                                                                                                                                                                                                                                                                                                          };

                                                                                                                                                                                                                                                                                                                                            type DialogStateReturn

                                                                                                                                                                                                                                                                                                                                            type DialogStateReturn = DisclosureStateReturn & DialogState & DialogActions;

                                                                                                                                                                                                                                                                                                                                              type DisclosureActions

                                                                                                                                                                                                                                                                                                                                              type DisclosureActions = unstable_IdActions & {
                                                                                                                                                                                                                                                                                                                                              /**
                                                                                                                                                                                                                                                                                                                                              * Changes the `visible` state to `true`
                                                                                                                                                                                                                                                                                                                                              */
                                                                                                                                                                                                                                                                                                                                              show: () => void;
                                                                                                                                                                                                                                                                                                                                              /**
                                                                                                                                                                                                                                                                                                                                              * Changes the `visible` state to `false`
                                                                                                                                                                                                                                                                                                                                              */
                                                                                                                                                                                                                                                                                                                                              hide: () => void;
                                                                                                                                                                                                                                                                                                                                              /**
                                                                                                                                                                                                                                                                                                                                              * Toggles the `visible` state
                                                                                                                                                                                                                                                                                                                                              */
                                                                                                                                                                                                                                                                                                                                              toggle: () => void;
                                                                                                                                                                                                                                                                                                                                              /**
                                                                                                                                                                                                                                                                                                                                              * Sets `visible`.
                                                                                                                                                                                                                                                                                                                                              */
                                                                                                                                                                                                                                                                                                                                              setVisible: React.Dispatch<React.SetStateAction<DisclosureState['visible']>>;
                                                                                                                                                                                                                                                                                                                                              /**
                                                                                                                                                                                                                                                                                                                                              * Sets `animated`.
                                                                                                                                                                                                                                                                                                                                              */
                                                                                                                                                                                                                                                                                                                                              setAnimated: React.Dispatch<React.SetStateAction<DisclosureState['animated']>>;
                                                                                                                                                                                                                                                                                                                                              /**
                                                                                                                                                                                                                                                                                                                                              * Stops animation. It's called automatically if there's a CSS transition.
                                                                                                                                                                                                                                                                                                                                              */
                                                                                                                                                                                                                                                                                                                                              stopAnimation: () => void;
                                                                                                                                                                                                                                                                                                                                              };

                                                                                                                                                                                                                                                                                                                                                type DisclosureContentHTMLProps

                                                                                                                                                                                                                                                                                                                                                type DisclosureContentHTMLProps = RoleHTMLProps;

                                                                                                                                                                                                                                                                                                                                                  type DisclosureContentOptions

                                                                                                                                                                                                                                                                                                                                                  type DisclosureContentOptions = RoleOptions &
                                                                                                                                                                                                                                                                                                                                                  Pick<
                                                                                                                                                                                                                                                                                                                                                  Partial<DisclosureStateReturn>,
                                                                                                                                                                                                                                                                                                                                                  'baseId' | 'visible' | 'animating' | 'animated' | 'stopAnimation'
                                                                                                                                                                                                                                                                                                                                                  >;

                                                                                                                                                                                                                                                                                                                                                    type DisclosureContentProps

                                                                                                                                                                                                                                                                                                                                                    type DisclosureContentProps = DisclosureContentOptions & DisclosureContentHTMLProps;

                                                                                                                                                                                                                                                                                                                                                      type DisclosureHTMLProps

                                                                                                                                                                                                                                                                                                                                                      type DisclosureHTMLProps = ButtonHTMLProps;

                                                                                                                                                                                                                                                                                                                                                        type DisclosureInitialState

                                                                                                                                                                                                                                                                                                                                                        type DisclosureInitialState = unstable_IdInitialState &
                                                                                                                                                                                                                                                                                                                                                        Partial<Pick<DisclosureState, 'visible' | 'animated'>>;

                                                                                                                                                                                                                                                                                                                                                          type DisclosureOptions

                                                                                                                                                                                                                                                                                                                                                          type DisclosureOptions = ButtonOptions &
                                                                                                                                                                                                                                                                                                                                                          Pick<Partial<DisclosureStateReturn>, 'visible'> &
                                                                                                                                                                                                                                                                                                                                                          Pick<DisclosureStateReturn, 'toggle' | 'baseId'>;

                                                                                                                                                                                                                                                                                                                                                            type DisclosureProps

                                                                                                                                                                                                                                                                                                                                                            type DisclosureProps = DisclosureOptions & DisclosureHTMLProps;

                                                                                                                                                                                                                                                                                                                                                              type DisclosureState

                                                                                                                                                                                                                                                                                                                                                              type DisclosureState = unstable_IdState & {
                                                                                                                                                                                                                                                                                                                                                              /**
                                                                                                                                                                                                                                                                                                                                                              * Whether it's visible or not.
                                                                                                                                                                                                                                                                                                                                                              */
                                                                                                                                                                                                                                                                                                                                                              visible: boolean;
                                                                                                                                                                                                                                                                                                                                                              /**
                                                                                                                                                                                                                                                                                                                                                              * If `true`, `animating` will be set to `true` when `visible` is updated.
                                                                                                                                                                                                                                                                                                                                                              * It'll wait for `stopAnimation` to be called or a CSS transition ends.
                                                                                                                                                                                                                                                                                                                                                              * If `animated` is set to a `number`, `stopAnimation` will be called only
                                                                                                                                                                                                                                                                                                                                                              * after the same number of milliseconds have passed.
                                                                                                                                                                                                                                                                                                                                                              */
                                                                                                                                                                                                                                                                                                                                                              animated: boolean | number;
                                                                                                                                                                                                                                                                                                                                                              /**
                                                                                                                                                                                                                                                                                                                                                              * Whether it's animating or not.
                                                                                                                                                                                                                                                                                                                                                              */
                                                                                                                                                                                                                                                                                                                                                              animating: boolean;
                                                                                                                                                                                                                                                                                                                                                              };

                                                                                                                                                                                                                                                                                                                                                                type DisclosureStateReturn

                                                                                                                                                                                                                                                                                                                                                                type DisclosureStateReturn = DisclosureState & DisclosureActions;

                                                                                                                                                                                                                                                                                                                                                                  type GroupHTMLProps

                                                                                                                                                                                                                                                                                                                                                                  type GroupHTMLProps = RoleHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                    type GroupOptions

                                                                                                                                                                                                                                                                                                                                                                    type GroupOptions = RoleOptions;

                                                                                                                                                                                                                                                                                                                                                                      type GroupProps

                                                                                                                                                                                                                                                                                                                                                                      type GroupProps = GroupOptions & GroupHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                        type InputHTMLProps

                                                                                                                                                                                                                                                                                                                                                                        type InputHTMLProps = TabbableHTMLProps & React.InputHTMLAttributes<any>;

                                                                                                                                                                                                                                                                                                                                                                          type InputOptions

                                                                                                                                                                                                                                                                                                                                                                          type InputOptions = TabbableOptions;

                                                                                                                                                                                                                                                                                                                                                                            type InputProps

                                                                                                                                                                                                                                                                                                                                                                            type InputProps = InputOptions & InputHTMLProps;
                                                                                                                                                                                                                                                                                                                                                                              type MenuActions = MenuBarActions & PopoverActions;
                                                                                                                                                                                                                                                                                                                                                                                type MenuArrowHTMLProps = PopoverArrowHTMLProps;
                                                                                                                                                                                                                                                                                                                                                                                  type MenuArrowOptions = PopoverArrowOptions;
                                                                                                                                                                                                                                                                                                                                                                                    type MenuArrowProps = MenuArrowOptions & MenuArrowHTMLProps;
                                                                                                                                                                                                                                                                                                                                                                                      type MenuBarActions = CompositeActions & {
                                                                                                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                                                                                                      * Updates checkboxes and radios values within the menu.
                                                                                                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                                                                                                      unstable_setValue: (name: string, value?: any) => void;
                                                                                                                                                                                                                                                                                                                                                                                      };
                                                                                                                                                                                                                                                                                                                                                                                        type MenuBarInitialState = CompositeInitialState &
                                                                                                                                                                                                                                                                                                                                                                                        Partial<Pick<MenuBarState, 'unstable_values'>>;
                                                                                                                                                                                                                                                                                                                                                                                          type MenuBarState = CompositeState & {
                                                                                                                                                                                                                                                                                                                                                                                          /**
                                                                                                                                                                                                                                                                                                                                                                                          * Stores the values of radios and checkboxes within the menu.
                                                                                                                                                                                                                                                                                                                                                                                          */
                                                                                                                                                                                                                                                                                                                                                                                          unstable_values: Record<string, any>;
                                                                                                                                                                                                                                                                                                                                                                                          };
                                                                                                                                                                                                                                                                                                                                                                                            type MenuBarStateReturn = MenuBarState & MenuBarActions;
                                                                                                                                                                                                                                                                                                                                                                                              type MenuButtonHTMLProps = PopoverDisclosureHTMLProps;
                                                                                                                                                                                                                                                                                                                                                                                                type MenuButtonOptions = PopoverDisclosureOptions &
                                                                                                                                                                                                                                                                                                                                                                                                Pick<
                                                                                                                                                                                                                                                                                                                                                                                                Partial<MenuStateReturn>,
                                                                                                                                                                                                                                                                                                                                                                                                | 'hide'
                                                                                                                                                                                                                                                                                                                                                                                                | 'unstable_popoverStyles'
                                                                                                                                                                                                                                                                                                                                                                                                | 'unstable_arrowStyles'
                                                                                                                                                                                                                                                                                                                                                                                                | 'currentId'
                                                                                                                                                                                                                                                                                                                                                                                                | 'unstable_moves'
                                                                                                                                                                                                                                                                                                                                                                                                | 'move'
                                                                                                                                                                                                                                                                                                                                                                                                > &
                                                                                                                                                                                                                                                                                                                                                                                                Pick<MenuStateReturn, 'show' | 'placement' | 'first' | 'last'>;
                                                                                                                                                                                                                                                                                                                                                                                                  type MenuButtonProps = MenuButtonOptions & MenuButtonHTMLProps;
                                                                                                                                                                                                                                                                                                                                                                                                    type MenuDisclosureHTMLProps = MenuButtonHTMLProps;
                                                                                                                                                                                                                                                                                                                                                                                                      type MenuDisclosureOptions = MenuButtonOptions;
                                                                                                                                                                                                                                                                                                                                                                                                        type MenuDisclosureProps = MenuDisclosureOptions & MenuDisclosureHTMLProps;
                                                                                                                                                                                                                                                                                                                                                                                                          type MenuGroupHTMLProps = RoleHTMLProps;
                                                                                                                                                                                                                                                                                                                                                                                                            type MenuGroupOptions = RoleOptions;
                                                                                                                                                                                                                                                                                                                                                                                                              type MenuGroupProps = MenuGroupOptions & MenuGroupHTMLProps;
                                                                                                                                                                                                                                                                                                                                                                                                                type MenuInitialState = MenuBarInitialState & PopoverInitialState;
                                                                                                                                                                                                                                                                                                                                                                                                                  type MenuItemCheckboxHTMLProps = CheckboxHTMLProps & MenuItemHTMLProps;
                                                                                                                                                                                                                                                                                                                                                                                                                    type MenuItemCheckboxOptions = CheckboxOptions &
                                                                                                                                                                                                                                                                                                                                                                                                                    MenuItemOptions &
                                                                                                                                                                                                                                                                                                                                                                                                                    Pick<MenuStateReturn, 'unstable_values' | 'unstable_setValue'> & {
                                                                                                                                                                                                                                                                                                                                                                                                                    /**
                                                                                                                                                                                                                                                                                                                                                                                                                    * MenuItemCheckbox's name as in `menu.values`.
                                                                                                                                                                                                                                                                                                                                                                                                                    */
                                                                                                                                                                                                                                                                                                                                                                                                                    name: string;
                                                                                                                                                                                                                                                                                                                                                                                                                    };
                                                                                                                                                                                                                                                                                                                                                                                                                      type MenuItemCheckboxProps = MenuItemCheckboxOptions & MenuItemCheckboxHTMLProps;
                                                                                                                                                                                                                                                                                                                                                                                                                        type MenuItemRadioHTMLProps = RadioHTMLProps & MenuItemHTMLProps;
                                                                                                                                                                                                                                                                                                                                                                                                                          type MenuItemRadioOptions = RadioOptions &
                                                                                                                                                                                                                                                                                                                                                                                                                          MenuItemOptions &
                                                                                                                                                                                                                                                                                                                                                                                                                          Pick<MenuStateReturn, 'unstable_values' | 'unstable_setValue'> & {
                                                                                                                                                                                                                                                                                                                                                                                                                          /**
                                                                                                                                                                                                                                                                                                                                                                                                                          * MenuItemRadio's name as in `menu.values`.
                                                                                                                                                                                                                                                                                                                                                                                                                          */
                                                                                                                                                                                                                                                                                                                                                                                                                          name: string;
                                                                                                                                                                                                                                                                                                                                                                                                                          };
                                                                                                                                                                                                                                                                                                                                                                                                                            type MenuItemRadioProps = MenuItemRadioOptions & MenuItemRadioHTMLProps;
                                                                                                                                                                                                                                                                                                                                                                                                                              type MenuSeparatorHTMLProps = SeparatorHTMLProps;
                                                                                                                                                                                                                                                                                                                                                                                                                                type MenuSeparatorOptions = SeparatorOptions;
                                                                                                                                                                                                                                                                                                                                                                                                                                  type MenuSeparatorProps = MenuSeparatorOptions & MenuSeparatorHTMLProps;
                                                                                                                                                                                                                                                                                                                                                                                                                                    type MenuState = MenuBarState & PopoverState;
                                                                                                                                                                                                                                                                                                                                                                                                                                      type MenuStateReturn = MenuBarStateReturn &
                                                                                                                                                                                                                                                                                                                                                                                                                                      PopoverStateReturn &
                                                                                                                                                                                                                                                                                                                                                                                                                                      MenuState &
                                                                                                                                                                                                                                                                                                                                                                                                                                      MenuActions;

                                                                                                                                                                                                                                                                                                                                                                                                                                        type PopoverActions

                                                                                                                                                                                                                                                                                                                                                                                                                                        type PopoverActions = DialogActions & {
                                                                                                                                                                                                                                                                                                                                                                                                                                        /**
                                                                                                                                                                                                                                                                                                                                                                                                                                        * Change the `placement` state.
                                                                                                                                                                                                                                                                                                                                                                                                                                        */
                                                                                                                                                                                                                                                                                                                                                                                                                                        place: React.Dispatch<React.SetStateAction<Placement>>;
                                                                                                                                                                                                                                                                                                                                                                                                                                        };

                                                                                                                                                                                                                                                                                                                                                                                                                                          type PopoverBackdropHTMLProps

                                                                                                                                                                                                                                                                                                                                                                                                                                          type PopoverBackdropHTMLProps = DialogBackdropHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                            type PopoverBackdropOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                            type PopoverBackdropOptions = DialogBackdropOptions;

                                                                                                                                                                                                                                                                                                                                                                                                                                              type PopoverBackdropProps

                                                                                                                                                                                                                                                                                                                                                                                                                                              type PopoverBackdropProps = PopoverBackdropOptions & PopoverBackdropHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                type PopoverDisclosureHTMLProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                type PopoverDisclosureHTMLProps = DialogDisclosureHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                  type PopoverDisclosureOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                  type PopoverDisclosureOptions = DialogDisclosureOptions &
                                                                                                                                                                                                                                                                                                                                                                                                                                                  Pick<Partial<PopoverStateReturn>, 'unstable_referenceRef'>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                    type PopoverDisclosureProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                    type PopoverDisclosureProps = PopoverDisclosureOptions & PopoverDisclosureHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                      type PopoverHTMLProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                      type PopoverHTMLProps = DialogHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                        type PopoverInitialState

                                                                                                                                                                                                                                                                                                                                                                                                                                                        type PopoverInitialState = DialogInitialState &
                                                                                                                                                                                                                                                                                                                                                                                                                                                        Partial<Pick<PopoverState, 'placement'>> & {
                                                                                                                                                                                                                                                                                                                                                                                                                                                        /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                        * Whether or not the popover should have `position` set to `fixed`.
                                                                                                                                                                                                                                                                                                                                                                                                                                                        */
                                                                                                                                                                                                                                                                                                                                                                                                                                                        unstable_fixed?: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                                                        /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                        * Flip the popover's placement when it starts to overlap its reference
                                                                                                                                                                                                                                                                                                                                                                                                                                                        * element.
                                                                                                                                                                                                                                                                                                                                                                                                                                                        */
                                                                                                                                                                                                                                                                                                                                                                                                                                                        unstable_flip?: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                                                        /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                        * Offset between the reference and the popover: [main axis, alt axis]. Should not be combined with `gutter`.
                                                                                                                                                                                                                                                                                                                                                                                                                                                        */
                                                                                                                                                                                                                                                                                                                                                                                                                                                        unstable_offset?: [number | string, number | string];
                                                                                                                                                                                                                                                                                                                                                                                                                                                        /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                        * Offset between the reference and the popover on the main axis. Should not be combined with `unstable_offset`.
                                                                                                                                                                                                                                                                                                                                                                                                                                                        */
                                                                                                                                                                                                                                                                                                                                                                                                                                                        gutter?: number;
                                                                                                                                                                                                                                                                                                                                                                                                                                                        /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                        * Prevents popover from being positioned outside the boundary.
                                                                                                                                                                                                                                                                                                                                                                                                                                                        */
                                                                                                                                                                                                                                                                                                                                                                                                                                                        unstable_preventOverflow?: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                                                        };

                                                                                                                                                                                                                                                                                                                                                                                                                                                          type PopoverOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                          type PopoverOptions = DialogOptions &
                                                                                                                                                                                                                                                                                                                                                                                                                                                          Pick<
                                                                                                                                                                                                                                                                                                                                                                                                                                                          Partial<PopoverStateReturn>,
                                                                                                                                                                                                                                                                                                                                                                                                                                                          'unstable_popoverRef' | 'unstable_popoverStyles'
                                                                                                                                                                                                                                                                                                                                                                                                                                                          >;

                                                                                                                                                                                                                                                                                                                                                                                                                                                            type PopoverProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                            type PopoverProps = PopoverOptions & PopoverHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                              type PopoverState

                                                                                                                                                                                                                                                                                                                                                                                                                                                              type PopoverState = DialogState & {
                                                                                                                                                                                                                                                                                                                                                                                                                                                              /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                              * The reference element.
                                                                                                                                                                                                                                                                                                                                                                                                                                                              */
                                                                                                                                                                                                                                                                                                                                                                                                                                                              unstable_referenceRef: React.RefObject<HTMLElement | null>;
                                                                                                                                                                                                                                                                                                                                                                                                                                                              /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                              * The popover element.
                                                                                                                                                                                                                                                                                                                                                                                                                                                              * @private
                                                                                                                                                                                                                                                                                                                                                                                                                                                              */
                                                                                                                                                                                                                                                                                                                                                                                                                                                              unstable_popoverRef: React.RefObject<HTMLElement | null>;
                                                                                                                                                                                                                                                                                                                                                                                                                                                              /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                              * The arrow element.
                                                                                                                                                                                                                                                                                                                                                                                                                                                              * @private
                                                                                                                                                                                                                                                                                                                                                                                                                                                              */
                                                                                                                                                                                                                                                                                                                                                                                                                                                              unstable_arrowRef: React.RefObject<HTMLElement | null>;
                                                                                                                                                                                                                                                                                                                                                                                                                                                              /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                              * Popover styles.
                                                                                                                                                                                                                                                                                                                                                                                                                                                              * @private
                                                                                                                                                                                                                                                                                                                                                                                                                                                              */
                                                                                                                                                                                                                                                                                                                                                                                                                                                              unstable_popoverStyles: React.CSSProperties;
                                                                                                                                                                                                                                                                                                                                                                                                                                                              /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                              * Arrow styles.
                                                                                                                                                                                                                                                                                                                                                                                                                                                              * @private
                                                                                                                                                                                                                                                                                                                                                                                                                                                              */
                                                                                                                                                                                                                                                                                                                                                                                                                                                              unstable_arrowStyles: React.CSSProperties;
                                                                                                                                                                                                                                                                                                                                                                                                                                                              /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                              * `placement` passed to the hook.
                                                                                                                                                                                                                                                                                                                                                                                                                                                              * @private
                                                                                                                                                                                                                                                                                                                                                                                                                                                              */
                                                                                                                                                                                                                                                                                                                                                                                                                                                              unstable_originalPlacement: Placement;
                                                                                                                                                                                                                                                                                                                                                                                                                                                              /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                              * @private
                                                                                                                                                                                                                                                                                                                                                                                                                                                              */
                                                                                                                                                                                                                                                                                                                                                                                                                                                              unstable_update: () => boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                                                              /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                              * Actual `placement`.
                                                                                                                                                                                                                                                                                                                                                                                                                                                              */
                                                                                                                                                                                                                                                                                                                                                                                                                                                              placement: Placement;
                                                                                                                                                                                                                                                                                                                                                                                                                                                              };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                type PopoverStateReturn

                                                                                                                                                                                                                                                                                                                                                                                                                                                                type PopoverStateReturn = DialogStateReturn & PopoverState & PopoverActions;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type RadioActions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type RadioActions = CompositeActions & {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  * Sets `state`.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  setState: React.Dispatch<React.SetStateAction<string | number | undefined>>;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type RadioHTMLProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type RadioHTMLProps = CompositeItemHTMLProps & React.InputHTMLAttributes<any>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type RadioInitialState

                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type RadioInitialState = CompositeInitialState & Partial<Pick<RadioState, 'state'>>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type RadioOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type RadioOptions = CompositeItemOptions &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Pick<Partial<RadioStateReturn>, 'state' | 'setState'> & {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        * Same as the `value` attribute.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        value: string | number;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        * Same as the `checked` attribute.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        checked?: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        * @private
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        unstable_checkOnFocus?: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type RadioProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type RadioProps = RadioOptions & RadioHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type RadioState

                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type RadioState = CompositeState & {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            * The `value` attribute of the current checked radio.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            state: string | number | undefined;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type RadioStateReturn

                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type RadioStateReturn = RadioState & RadioActions;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type RoleHTMLProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type RoleHTMLProps = React.HTMLAttributes<any> &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                React.RefAttributes<any> & {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * Function returned by the hook to wrap the element to which html props
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * will be passed.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                wrapElement?: (element: React.ReactNode) => React.ReactNode;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type RoleOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type RoleOptions = {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  * Options passed to `reakit-system-*`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  * @private
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  unstable_system?: any;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type RoleProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type RoleProps = RoleOptions & RoleHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type RoverActions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type RoverActions = unstable_IdActions & {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * Registers the element ID and ref in the roving tab index list.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      register: (id: Stop['id'], ref: Stop['ref']) => void;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * Unregisters the roving item.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      unregister: (id: Stop['id']) => void;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * Moves focus to a given element ID.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      move: (id: Stop['id'] | null, unstable_silent?: boolean) => void;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * Moves focus to the next element.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      next: () => void;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * Moves focus to the previous element.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      previous: () => void;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * Moves focus to the first element.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      first: () => void;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * Moves focus to the last element.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      last: () => void;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * Resets `currentId` and `pastId` states.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * @private
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      unstable_reset: () => void;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * Changes the `orientation` state of the roving tab index list.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * @private
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      unstable_orientate: (orientation: RoverState['orientation']) => void;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type RoverHTMLProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type RoverHTMLProps = ClickableHTMLProps & unstable_IdHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type RoverInitialState

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type RoverInitialState = unstable_IdInitialState &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Partial<Pick<RoverState, 'orientation' | 'currentId' | 'loop'>>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type RoverOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type RoverOptions = ClickableOptions &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            unstable_IdOptions &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Pick<Partial<RoverStateReturn>, 'orientation' | 'unstable_moves'> &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Pick<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            RoverStateReturn,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | 'stops'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | 'currentId'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | 'register'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | 'unregister'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | 'move'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | 'next'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | 'previous'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | 'first'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | 'last'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            > & {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            * Element ID.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            stopId?: string;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type RoverProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type RoverProps = RoverOptions & RoverHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type RoverState

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type RoverState = unstable_IdState & {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * Defines the orientation of the rover list.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                orientation?: 'horizontal' | 'vertical';
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * A list of element refs and IDs of the roving items.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                stops: Stop[];
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * The current focused element ID.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                currentId: Stop['id'] | null;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * The last focused element ID.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * @private
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                unstable_pastId: Stop['id'] | null;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * Stores the number of moves that have been made by calling `move`, `next`,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * `previous`, `first` or `last`.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                unstable_moves: number;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * If enabled:
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * - Jumps to the first item when moving next from the last item.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * - Jumps to the last item when moving previous from the first item.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                loop: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type RoverStateReturn

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type RoverStateReturn = RoverState & RoverActions;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type SeparatorHTMLProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type SeparatorHTMLProps = RoleHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type SeparatorOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type SeparatorOptions = RoleOptions & {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * Separator's orientation.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      orientation?: 'horizontal' | 'vertical';
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type SeparatorProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type SeparatorProps = SeparatorOptions & SeparatorHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type TabActions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type TabActions = CompositeActions & {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          * Moves into and selects a tab by its `id`.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          select: TabActions['move'];
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          * Sets `selectedId`.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          setSelectedId: TabActions['setCurrentId'];
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          * Registers a tab panel.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          registerPanel: TabActions['registerItem'];
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          * Unregisters a tab panel.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          unregisterPanel: TabActions['unregisterItem'];
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type TabbableHTMLProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type TabbableHTMLProps = RoleHTMLProps & {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            disabled?: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type TabbableOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type TabbableOptions = RoleOptions & {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              * Same as the HTML attribute.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              disabled?: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              * When an element is `disabled`, it may still be `focusable`. It works
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              * similarly to `readOnly` on form elements. In this case, only
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              * `aria-disabled` will be set.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              focusable?: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type TabbableProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type TabbableProps = TabbableOptions & TabbableHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type TabHTMLProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type TabHTMLProps = CompositeItemHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type TabInitialState

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type TabInitialState = CompositeInitialState &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Partial<Pick<TabState, 'selectedId' | 'manual'>>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type TabOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type TabOptions = CompositeItemOptions &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Pick<Partial<TabStateReturn>, 'manual'> &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Pick<TabStateReturn, 'panels' | 'selectedId' | 'select'>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type TabPanelHTMLProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type TabPanelHTMLProps = DisclosureContentHTMLProps & unstable_IdHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type TabPanelOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type TabPanelOptions = DisclosureContentOptions &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          unstable_IdOptions &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Pick<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          TabStateReturn,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          'selectedId' | 'registerPanel' | 'unregisterPanel' | 'panels' | 'items'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          > & {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          * Tab's id
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          tabId?: string;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type TabPanelProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type TabPanelProps = TabPanelOptions & TabPanelHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type TabProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type TabProps = TabOptions & TabHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type TabState

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type TabState = CompositeState & {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * The current selected tab's `id`.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                selectedId?: TabState['currentId'];
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * Lists all the panels.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                panels: TabState['items'];
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * Whether the tab selection should be manual.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                manual: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type TabStateReturn

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type TabStateReturn = TabState & TabActions;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type ToolbarActions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type ToolbarActions = CompositeActions;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type ToolbarInitialState

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type ToolbarInitialState = CompositeInitialState;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type ToolbarItemHTMLProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type ToolbarItemHTMLProps = CompositeItemHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type ToolbarItemOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type ToolbarItemOptions = CompositeItemOptions;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type ToolbarItemProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type ToolbarItemProps = ToolbarItemOptions & ToolbarItemHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type ToolbarSeparatorHTMLProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type ToolbarSeparatorHTMLProps = SeparatorHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type ToolbarSeparatorOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type ToolbarSeparatorOptions = SeparatorOptions;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type ToolbarSeparatorProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type ToolbarSeparatorProps = ToolbarSeparatorOptions & ToolbarSeparatorHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type ToolbarState

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type ToolbarState = CompositeState;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type ToolbarStateReturn

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type ToolbarStateReturn = ToolbarState & ToolbarActions;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type TooltipActions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type TooltipActions = Omit<PopoverActions, 'setModal'> & {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        * @private
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        unstable_setTimeout: React.Dispatch<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        React.SetStateAction<TooltipState['unstable_timeout']>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        >;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type TooltipArrowHTMLProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type TooltipArrowHTMLProps = PopoverArrowHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type TooltipArrowOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type TooltipArrowOptions = PopoverArrowOptions;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type TooltipArrowProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type TooltipArrowProps = TooltipArrowOptions & TooltipArrowHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type TooltipInitialState

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type TooltipInitialState = Omit<PopoverInitialState, 'modal'> &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Pick<Partial<TooltipState>, 'unstable_timeout'>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type TooltipReferenceHTMLProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type TooltipReferenceHTMLProps = RoleHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type TooltipReferenceOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type TooltipReferenceOptions = RoleOptions &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Pick<Partial<TooltipStateReturn>, 'unstable_referenceRef' | 'baseId'> &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Pick<TooltipStateReturn, 'show' | 'hide'>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type TooltipReferenceProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type TooltipReferenceProps = TooltipReferenceOptions & TooltipReferenceHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type TooltipState

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type TooltipState = Omit<PopoverState, 'modal'> & {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        * @private
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        unstable_timeout: number;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type TooltipStateReturn

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type TooltipStateReturn = Omit<PopoverStateReturn, 'modal' | 'setModal'> &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          TooltipState &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          TooltipActions;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type unstable_ComboboxActions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type unstable_ComboboxActions = ComboboxPopoverActions & ComboboxListActions;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type unstable_ComboboxGridActions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type unstable_ComboboxGridActions = ComboboxPopoverActions & ComboboxListGridActions;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type unstable_ComboboxGridCellHTMLProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type unstable_ComboboxGridCellHTMLProps = GridCellHTMLProps & ComboboxItemHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type unstable_ComboboxGridCellOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type unstable_ComboboxGridCellOptions = GridCellOptions & ComboboxItemOptions;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type unstable_ComboboxGridCellProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type unstable_ComboboxGridCellProps = unstable_ComboboxGridCellOptions &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    unstable_ComboboxGridCellHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type unstable_ComboboxGridInitialState

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type unstable_ComboboxGridInitialState = ComboboxPopoverInitialState &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ComboboxListGridInitialState;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type unstable_ComboboxGridRowHTMLProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type unstable_ComboboxGridRowHTMLProps = GridRowHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type unstable_ComboboxGridRowOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type unstable_ComboboxGridRowOptions = GridRowOptions;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type unstable_ComboboxGridRowProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type unstable_ComboboxGridRowProps = unstable_ComboboxGridRowOptions &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            unstable_ComboboxGridRowHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type unstable_ComboboxGridState

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type unstable_ComboboxGridState = ComboboxPopoverState & ComboboxListGridState;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type unstable_ComboboxGridStateReturn

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type unstable_ComboboxGridStateReturn = unstable_ComboboxGridState &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                unstable_ComboboxGridActions;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type unstable_ComboboxHTMLProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type unstable_ComboboxHTMLProps = CompositeHTMLProps &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  React.InputHTMLAttributes<any>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type unstable_ComboboxInitialState

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type unstable_ComboboxInitialState = ComboboxPopoverInitialState &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ComboboxListInitialState;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type unstable_ComboboxItemHTMLProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type unstable_ComboboxItemHTMLProps = BoxHTMLProps & CompositeItemHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type unstable_ComboboxItemOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type unstable_ComboboxItemOptions = BoxOptions &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        CompositeItemOptions &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Pick<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Partial<unstable_ComboboxStateReturn>,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        'currentValue' | 'inputValue' | 'hide' | 'visible'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        > &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Pick<unstable_ComboboxStateReturn, 'setInputValue' | 'registerItem'> & {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        * Item's value that will be used to fill input value and filter `matches`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        * based on the input value. You can omit this for items that perform
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        * actions other than filling a form. For example, items may open a dialog.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        value?: string;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type unstable_ComboboxItemProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type unstable_ComboboxItemProps = unstable_ComboboxItemOptions &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          unstable_ComboboxItemHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type unstable_ComboboxListActions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type unstable_ComboboxListActions = ComboboxBaseActions<CompositeActions>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type unstable_ComboboxListGridActions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type unstable_ComboboxListGridActions = ComboboxBaseActions<GridActions> & {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              * Sets `columns`.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              setColumns: SetState<unstable_ComboboxListGridState['columns']>;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type unstable_ComboboxListGridInitialState

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type unstable_ComboboxListGridInitialState = Omit<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                GridInitialState,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                'unstable_virtual' | 'unstable_includesBaseElement'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                > &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ComboboxBaseInitialState &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Pick<Partial<unstable_ComboboxListGridState>, 'columns'>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type unstable_ComboboxListGridState

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type unstable_ComboboxListGridState = Omit<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ComboboxBaseState<GridState>,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  'matches'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  > & {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  * Number of columns by which `values` will be splitted to generate the
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  * `matches` 2D array.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  columns: number;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  * Result of filtering `values` based on `inputValue`.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  * @default []
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  * @example
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  * const combobox = useComboboxState({
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  * values: ["Red", "Green", "Blue"],
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  * columns: 2,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  * });
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  * combobox.matches; // [["Red", "Green"], ["Blue"]]
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  * combobox.setInputValue("g");
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  * // On next render
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  * combobox.matches; // [["Green"]]
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  matches: string[][];
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type unstable_ComboboxListGridStateReturn

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type unstable_ComboboxListGridStateReturn = unstable_ComboboxListGridState &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    unstable_ComboboxListGridActions;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type unstable_ComboboxListHTMLProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type unstable_ComboboxListHTMLProps = BoxHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type unstable_ComboboxListInitialState

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type unstable_ComboboxListInitialState = Omit<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        CompositeInitialState,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        'unstable_virtual' | 'unstable_includesBaseElement'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        > &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ComboboxBaseInitialState;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type unstable_ComboboxListOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type unstable_ComboboxListOptions = BoxOptions &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Pick<Partial<unstable_ComboboxStateReturn>, 'menuRole'> &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Pick<unstable_ComboboxStateReturn, 'baseId'>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type unstable_ComboboxListProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type unstable_ComboboxListProps = unstable_ComboboxListOptions &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            unstable_ComboboxListHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type unstable_ComboboxListState

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type unstable_ComboboxListState = ComboboxBaseState<CompositeState>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type unstable_ComboboxListStateReturn

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type unstable_ComboboxListStateReturn = unstable_ComboboxListState &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                unstable_ComboboxListActions;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type unstable_ComboboxOptionHTMLProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type unstable_ComboboxOptionHTMLProps = CompositeItemHTMLProps &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ComboboxItemHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type unstable_ComboboxOptionOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type unstable_ComboboxOptionOptions = CompositeItemOptions & ComboboxItemOptions;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type unstable_ComboboxOptionProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type unstable_ComboboxOptionProps = unstable_ComboboxOptionOptions &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      unstable_ComboboxOptionHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type unstable_ComboboxOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type unstable_ComboboxOptions = CompositeOptions &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Pick<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Partial<unstable_ComboboxStateReturn>,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | 'currentValue'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | 'menuRole'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | 'list'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | 'inline'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | 'autoSelect'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | 'visible'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | 'show'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | 'hide'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | 'unstable_referenceRef'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | 'minValueLength'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        > &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Pick<unstable_ComboboxStateReturn, 'baseId' | 'inputValue' | 'setInputValue'> & {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        * When enabled, user can hide the combobox popover by pressing
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        * <kbd>Esc</kbd> while focusing on the combobox input.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        * @default true
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        hideOnEsc?: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type unstable_ComboboxPopoverHTMLProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type unstable_ComboboxPopoverHTMLProps = PopoverHTMLProps & ComboboxListHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type unstable_ComboboxPopoverOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type unstable_ComboboxPopoverOptions = ComboboxListOptions &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Omit<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            PopoverOptions,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | 'unstable_disclosureRef'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | 'unstable_autoFocusOnHide'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | 'unstable_autoFocusOnShow'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            > &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Pick<Partial<ComboboxPopoverStateReturn>, 'unstable_referenceRef'>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type unstable_ComboboxPopoverProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type unstable_ComboboxPopoverProps = unstable_ComboboxPopoverOptions &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              unstable_ComboboxPopoverHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type unstable_ComboboxProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type unstable_ComboboxProps = unstable_ComboboxOptions & unstable_ComboboxHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type unstable_ComboboxState

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type unstable_ComboboxState = ComboboxPopoverState & ComboboxListState;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type unstable_ComboboxStateReturn

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type unstable_ComboboxStateReturn = unstable_ComboboxState &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    unstable_ComboboxActions;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type unstable_CompositeItemWidgetHTMLProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type unstable_CompositeItemWidgetHTMLProps = RoleHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type unstable_CompositeItemWidgetOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type unstable_CompositeItemWidgetOptions = RoleOptions &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Pick<Partial<CompositeStateReturn>, 'wrap'> &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Pick<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        CompositeStateReturn,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        'unstable_hasActiveWidget' | 'unstable_setHasActiveWidget' | 'currentId'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        >;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type unstable_CompositeItemWidgetProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type unstable_CompositeItemWidgetProps = unstable_CompositeItemWidgetOptions &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          unstable_CompositeItemWidgetHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type unstable_FormActions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type unstable_FormActions<V> = unstable_IdActions & {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            * Resets the form state.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            reset: () => void;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            * Triggers form validation (calling `onValidate` underneath).
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            * Optionally, new `values` can be passed in.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            validate: (values?: V) => ValidateReturn<V>;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            * Triggers form submission (calling `onValidate` and `onSubmit` underneath).
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            submit: () => void;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            * Updates a form value.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            update: Update<V>;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            * Sets field's touched state to `true`.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            blur: <P extends DeepPath<V, P>>(name: P) => void;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            * Pushes a new item into `form.values[name]`, which should be an array.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            push: <P extends DeepPath<V, P>>(
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            name: P,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            value?: ArrayValue<DeepPathValue<V, P>>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ) => void;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            * Removes `form.values[name][index]`.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            remove: <P extends DeepPath<V, P>>(name: P, index: number) => void;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type unstable_FormCheckboxHTMLProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type unstable_FormCheckboxHTMLProps = CheckboxHTMLProps &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              React.InputHTMLAttributes<any>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type unstable_FormCheckboxOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type unstable_FormCheckboxOptions<V, P extends DeepPath<V, P>> = Omit<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                CheckboxOptions,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                'value' | 'state' | 'setState'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                > &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Pick<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                unstable_FormStateReturn<V>,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                'baseId' | 'values' | 'update' | 'blur' | 'touched' | 'errors'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                > & {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * Checkbox's name as in form values.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                name: P;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * Checkbox's value is going to be used when multiple checkboxes share the
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * same state. Checking a checkbox with value will add it to the state
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * array.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                value?: ArrayValue<DeepPathValue<V, P>>;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type unstable_FormCheckboxProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type unstable_FormCheckboxProps<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  V,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  P extends DeepPath<V, P>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  > = unstable_FormCheckboxOptions<V, P> & unstable_FormCheckboxHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type unstable_FormGroupHTMLProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type unstable_FormGroupHTMLProps = GroupHTMLProps &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    React.FieldsetHTMLAttributes<any>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type unstable_FormGroupOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type unstable_FormGroupOptions<V, P extends DeepPath<V, P>> = GroupOptions &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Pick<unstable_FormStateReturn<V>, 'baseId' | 'touched' | 'errors'> & {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * FormGroup's name as in form values.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      name: P;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type unstable_FormGroupProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type unstable_FormGroupProps<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        V,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        P extends DeepPath<V, P>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        > = unstable_FormGroupOptions<V, P> & unstable_FormGroupHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type unstable_FormHTMLProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type unstable_FormHTMLProps = RoleHTMLProps & React.FormHTMLAttributes<any>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type unstable_FormInitialState

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type unstable_FormInitialState<V> = unstable_IdInitialState &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Partial<Pick<unstable_FormState<V>, 'values'>> & {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            * Whether the form should trigger `onValidate` on blur.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            validateOnBlur?: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            * Whether the form should trigger `onValidate` on change.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            validateOnChange?: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            * Whether the form should reset when it has been successfully submitted.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            resetOnSubmitSucceed?: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            * Whether the form should reset when the component (which called
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            * `useFormState`) has been unmounted.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            resetOnUnmount?: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            * A function that receives `form.values` and return or throw messages.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            * If it returns, messages will be interpreted as successful messages.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            * If it throws, they will be interpreted as errors.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            * It can also return a promise for asynchronous validation.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            onValidate?: (values: V) => ValidateReturn<V>;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            * A function that receives `form.values` and performs form submission.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            * If it's triggered by `form.submit()`, `onValidate` will be called before.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            * If `onValidate` throws, `onSubmit` will not be called.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            * `onSubmit` can also return promises, messages and throw error messages
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            * just like `onValidate`. The only difference is that this validation will
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            * only occur on submit.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            onSubmit?: (values: V) => ValidateReturn<V>;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type unstable_FormInputHTMLProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type unstable_FormInputHTMLProps = InputHTMLProps & React.InputHTMLAttributes<any>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type unstable_FormInputOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type unstable_FormInputOptions<V, P extends DeepPath<V, P>> = InputOptions &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Pick<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                unstable_FormStateReturn<V>,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                'baseId' | 'values' | 'touched' | 'errors' | 'update' | 'blur'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                > & {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * FormInput's name as in form values.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                name: P;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type unstable_FormInputProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type unstable_FormInputProps<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  V,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  P extends DeepPath<V, P>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  > = unstable_FormInputOptions<V, P> & unstable_FormInputHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type unstable_FormLabelHTMLProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type unstable_FormLabelHTMLProps = RoleHTMLProps & React.LabelHTMLAttributes<any>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type unstable_FormLabelOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type unstable_FormLabelOptions<V, P extends DeepPath<V, P>> = RoleOptions &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Pick<unstable_FormStateReturn<V>, 'baseId' | 'values'> & {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * FormInput's name as in form values.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      name: P;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * Label can be passed as the `label` prop or `children`.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      label?: any;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type unstable_FormLabelProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type unstable_FormLabelProps<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        V,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        P extends DeepPath<V, P>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        > = unstable_FormLabelOptions<V, P> & unstable_FormLabelHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type unstable_FormMessageHTMLProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type unstable_FormMessageHTMLProps = RoleHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type unstable_FormMessageOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type unstable_FormMessageOptions<V, P extends DeepPath<V, P>> = RoleOptions &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Pick<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            unstable_FormStateReturn<V>,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            'baseId' | 'touched' | 'errors' | 'messages'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            > & {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            * FormInput's name as in form values.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            name: P;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type unstable_FormMessageProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type unstable_FormMessageProps<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              V,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              P extends DeepPath<V, P>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              > = unstable_FormMessageOptions<V, P> & unstable_FormMessageHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type unstable_FormOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type unstable_FormOptions = RoleOptions &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Pick<unstable_FormStateReturn<any>, 'submit'>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type unstable_FormProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type unstable_FormProps = unstable_FormOptions & unstable_FormHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type unstable_FormPushButtonHTMLProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type unstable_FormPushButtonHTMLProps = ButtonHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type unstable_FormPushButtonOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type unstable_FormPushButtonOptions<V, P extends DeepPath<V, P>> = ButtonOptions &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Pick<unstable_FormStateReturn<V>, 'baseId' | 'values' | 'push'> & {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * FormInput's name as in form values. This should point to array value.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      name: P;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * The value that is going to be pushed to `form.values[name]`.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      value: ArrayValue<DeepPathValue<V, P>>;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type unstable_FormPushButtonProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type unstable_FormPushButtonProps<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        V,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        P extends DeepPath<V, P>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        > = unstable_FormPushButtonOptions<V, P> & unstable_FormPushButtonHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type unstable_FormRadioHTMLProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type unstable_FormRadioHTMLProps = RadioHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type unstable_FormRadioOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type unstable_FormRadioOptions<V, P extends DeepPath<V, P>> = RoleOptions &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Pick<unstable_FormStateReturn<V>, 'values' | 'update' | 'blur'> & {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            * FormRadio's name as in form values.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            name: P;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            * FormRadio's value.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            value: DeepPathValue<V, P>;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type unstable_FormRadioProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type unstable_FormRadioProps<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              V,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              P extends DeepPath<V, P>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              > = unstable_FormRadioOptions<V, P> & unstable_FormRadioHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type unstable_FormRemoveButtonHTMLProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type unstable_FormRemoveButtonHTMLProps = ButtonHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type unstable_FormRemoveButtonOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type unstable_FormRemoveButtonOptions<V, P extends DeepPath<V, P>> = ButtonOptions &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Pick<unstable_FormStateReturn<V>, 'baseId' | 'values' | 'remove'> & {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  * FormInput's name as in form values. This should point to array value.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  name: P;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  * The index in `form.values[name]` that will be removed.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  index: number;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type unstable_FormRemoveButtonProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type unstable_FormRemoveButtonProps<
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    V,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    P extends DeepPath<V, P>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    > = unstable_FormRemoveButtonOptions<V, P> & unstable_FormRemoveButtonHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type unstable_FormState

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type unstable_FormState<V> = unstable_IdState & {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * Form values.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      values: V;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * An object with the same shape as `form.values` with `boolean` values.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * This keeps the touched state of each field. That is, whether a field has
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * been blurred.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      touched: DeepPartial<DeepMap<V, boolean>>;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * An object with the same shape as `form.values` with string messages.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * This stores the messages returned by `onValidate` and `onSubmit`.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      messages: Messages<V>;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * An object with the same shape as `form.values` with string error messages.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * This stores the error messages throwed by `onValidate` and `onSubmit`.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      errors: Messages<V>;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * Whether form is validating or not.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      validating: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * Whether `form.errors` is empty or not.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      valid: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * Whether form is submitting or not.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      submitting: boolean;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * Stores the number of times that the form has been successfully submitted.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      submitSucceed: number;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * Stores the number of times that the form submission has failed.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      submitFailed: number;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type unstable_FormStateReturn

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type unstable_FormStateReturn<V> = unstable_FormState<V> & unstable_FormActions<V>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type unstable_FormSubmitButtonHTMLProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type unstable_FormSubmitButtonHTMLProps = ButtonHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type unstable_FormSubmitButtonOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type unstable_FormSubmitButtonOptions = ButtonOptions &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Pick<Partial<unstable_FormStateReturn<any>>, 'submitting'> &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Pick<unstable_FormStateReturn<any>, 'baseId' | 'submit'>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type unstable_FormSubmitButtonProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type unstable_FormSubmitButtonProps = unstable_FormSubmitButtonOptions &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              unstable_FormSubmitButtonHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type unstable_GridActions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type unstable_GridActions = CompositeActions;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type unstable_GridCellHTMLProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type unstable_GridCellHTMLProps = CompositeItemHTMLProps &
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  React.TdHTMLAttributes<any>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type unstable_GridCellOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type unstable_GridCellOptions = CompositeItemOptions;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type unstable_GridCellProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type unstable_GridCellProps = unstable_GridCellOptions & unstable_GridCellHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type unstable_GridInitialState

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type unstable_GridInitialState = CompositeInitialState;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type unstable_GridRowHTMLProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type unstable_GridRowHTMLProps = CompositeGroupHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type unstable_GridRowOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type unstable_GridRowOptions = CompositeGroupOptions;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type unstable_GridRowProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type unstable_GridRowProps = unstable_GridRowOptions & unstable_GridRowHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type unstable_GridState

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type unstable_GridState = CompositeState;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type unstable_GridStateReturn

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type unstable_GridStateReturn = unstable_GridState & unstable_GridActions;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type unstable_IdActions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type unstable_IdActions = {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    * Sets `baseId`.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    setBaseId: React.Dispatch<React.SetStateAction<string>>;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type unstable_IdInitialState

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type unstable_IdInitialState = Partial<Pick<unstable_IdState, 'baseId'>>;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type unstable_IdState

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type unstable_IdState = {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        * ID that will serve as a base for all the items IDs.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        baseId: string;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        /**
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        * @private
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        unstable_idCountRef: React.MutableRefObject<number>;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        };

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type unstable_IdStateReturn

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type unstable_IdStateReturn = unstable_IdState & unstable_IdActions;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type VisuallyHiddenHTMLProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type VisuallyHiddenHTMLProps = RoleHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type VisuallyHiddenOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type VisuallyHiddenOptions = RoleOptions;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type VisuallyHiddenProps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type VisuallyHiddenProps = VisuallyHiddenOptions & VisuallyHiddenHTMLProps;

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Package Files (74)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Dependencies (5)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Dev Dependencies (1)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Peer Dependencies (2)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Badge

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  To add a badge like this onejsDocs.io badgeto your package's README, use the codes available below.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  You may also use Shields.io to create a custom badge linking to https://www.jsdocs.io/package/reakit.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • Markdown
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [![jsDocs.io](https://img.shields.io/badge/jsDocs.io-reference-blue)](https://www.jsdocs.io/package/reakit)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • HTML
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <a href="https://www.jsdocs.io/package/reakit"><img src="https://img.shields.io/badge/jsDocs.io-reference-blue" alt="jsDocs.io"></a>