downshift 9.3.2 → 9.4.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/dist/downshift.cjs.cjs +617 -698
  2. package/dist/downshift.d.ts +49 -55
  3. package/dist/downshift.esm.mjs +618 -699
  4. package/dist/downshift.native.cjs.cjs +575 -653
  5. package/dist/downshift.nativeweb.cjs.cjs +615 -693
  6. package/dist/downshift.types.d.ts +205 -0
  7. package/dist/downshift.umd.js +621 -702
  8. package/dist/downshift.umd.js.map +1 -1
  9. package/dist/downshift.umd.min.js +1 -1
  10. package/dist/downshift.umd.min.js.map +1 -1
  11. package/dist/hooks/testUtils/MemoizedItem.d.ts +10 -0
  12. package/dist/hooks/testUtils/fixtures.d.ts +16 -0
  13. package/dist/hooks/testUtils/index.d.ts +4 -0
  14. package/dist/hooks/testUtils/interactions.d.ts +16 -0
  15. package/dist/hooks/testUtils/testCases.d.ts +2 -0
  16. package/dist/hooks/useCombobox/__tests__/utils/index.d.ts +5 -0
  17. package/dist/hooks/useCombobox/__tests__/utils/interactions.d.ts +6 -0
  18. package/dist/hooks/useCombobox/__tests__/utils/renderCombobox.d.ts +72 -0
  19. package/dist/hooks/useCombobox/__tests__/utils/renderUseCombobox.d.ts +2 -0
  20. package/dist/hooks/useCombobox/index.d.ts +4 -94
  21. package/dist/hooks/useCombobox/index.types.d.ts +302 -0
  22. package/dist/hooks/useCombobox/reducer.d.ts +4 -1
  23. package/dist/hooks/useCombobox/stateChangeTypes.d.ts +24 -23
  24. package/dist/hooks/useCombobox/utils/getInitialState.d.ts +10 -0
  25. package/dist/hooks/useCombobox/utils/index.d.ts +3 -0
  26. package/dist/hooks/useCombobox/{utils.d.ts → utils/propTypes.d.ts} +2 -30
  27. package/dist/hooks/useCombobox/utils/useControlledReducer.d.ts +16 -0
  28. package/dist/hooks/useMultipleSelection/index.d.ts +25 -13
  29. package/dist/hooks/useMultipleSelection/index.types.d.ts +117 -0
  30. package/dist/hooks/useMultipleSelection/reducer.d.ts +1 -1
  31. package/dist/hooks/useMultipleSelection/utils.d.ts +14 -15
  32. package/dist/hooks/useSelect/__tests__/utils/getItemIndexByCharacter.d.ts +7 -0
  33. package/dist/hooks/useSelect/__tests__/utils/index.d.ts +6 -0
  34. package/dist/hooks/useSelect/__tests__/utils/renderSelect.d.ts +71 -0
  35. package/dist/hooks/useSelect/__tests__/utils/renderUseSelect.d.ts +2 -0
  36. package/dist/hooks/useSelect/__tests__/utils/stateChangeTestCases.d.ts +182 -0
  37. package/dist/hooks/useSelect/index.d.ts +4 -71
  38. package/dist/hooks/useSelect/index.types.d.ts +266 -0
  39. package/dist/hooks/useSelect/reducer.d.ts +4 -1
  40. package/dist/hooks/useSelect/stateChangeTypes.d.ts +23 -22
  41. package/dist/hooks/useSelect/utils/index.d.ts +0 -1
  42. package/dist/hooks/useTagGroup/__tests__/utils/renderTagGroup.d.ts +1 -1
  43. package/dist/hooks/useTagGroup/index.types.d.ts +10 -13
  44. package/dist/hooks/useTagGroup/reducer.d.ts +4 -2
  45. package/dist/hooks/useTagGroup/utils/index.d.ts +3 -1
  46. package/dist/hooks/utils/__tests__/dropdownDefaultProps.test.d.ts +1 -0
  47. package/dist/hooks/utils/__tests__/getChangesOnSelection.test.d.ts +1 -0
  48. package/dist/hooks/utils/__tests__/getDefaultHighlightedIndex.test.d.ts +1 -0
  49. package/dist/hooks/utils/__tests__/getDefaultValue.test.d.ts +1 -0
  50. package/dist/hooks/utils/__tests__/getHighlightedIndexOnOpen.test.d.ts +1 -0
  51. package/dist/hooks/utils/__tests__/getInitialValue.test.d.ts +1 -0
  52. package/dist/hooks/utils/__tests__/getItemAndIndex.test.d.ts +1 -0
  53. package/dist/hooks/utils/__tests__/isDropdownStateEqual.test.d.ts +1 -0
  54. package/dist/hooks/utils/__tests__/useA11yMessageStatus.test.d.ts +1 -0
  55. package/dist/hooks/utils/__tests__/useControlPropsValidator.test.d.ts +1 -0
  56. package/dist/hooks/utils/__tests__/useControlledReducer.test.d.ts +1 -0
  57. package/dist/hooks/utils/__tests__/useElementIds.legacy.test.d.ts +1 -0
  58. package/dist/hooks/utils/__tests__/useElementIds.r18.test.d.ts +1 -0
  59. package/dist/hooks/utils/__tests__/useEnhancedReducer.test.d.ts +1 -0
  60. package/dist/hooks/utils/__tests__/useGetterPropsCalledChecker.test.d.ts +1 -0
  61. package/dist/hooks/utils/__tests__/useIsInitialMount.test.d.ts +1 -0
  62. package/dist/hooks/utils/__tests__/useMouseAndTouchTracker.test.d.ts +1 -0
  63. package/dist/hooks/utils/__tests__/useScrollIntoView.test.d.ts +1 -0
  64. package/dist/hooks/utils/callOnChangeProps.d.ts +4 -0
  65. package/dist/hooks/utils/dropdownDefaultProps.d.ts +13 -0
  66. package/dist/hooks/{utils.dropdown/defaultStateValues.d.ts → utils/dropdownDefaultStateValues.d.ts} +2 -2
  67. package/dist/hooks/{utils.dropdown/propTypes.d.ts → utils/dropdownPropTypes.d.ts} +1 -1
  68. package/dist/hooks/utils/getChangesOnSelection.d.ts +17 -0
  69. package/dist/hooks/utils/getDefaultHighlightedIndex.d.ts +7 -0
  70. package/dist/hooks/utils/getDefaultValue.d.ts +8 -0
  71. package/dist/hooks/utils/getHighlightedIndexOnOpen.d.ts +16 -0
  72. package/dist/hooks/utils/getInitialState.d.ts +23 -0
  73. package/dist/hooks/utils/getInitialValue.d.ts +14 -0
  74. package/dist/hooks/utils/index.d.ts +24 -0
  75. package/dist/hooks/utils/index.types.d.ts +26 -0
  76. package/dist/hooks/utils/isDropdownStateEqual.d.ts +16 -0
  77. package/dist/hooks/utils/reducer.d.ts +27 -0
  78. package/dist/hooks/utils/useControlPropsValidator.d.ts +6 -0
  79. package/dist/hooks/utils/useControlledReducer.d.ts +13 -0
  80. package/dist/hooks/utils/useEnhancedReducer.d.ts +15 -0
  81. package/dist/hooks/utils/useGetterPropsCalledChecker.d.ts +2 -0
  82. package/dist/hooks/utils/useMouseAndTouchTracker.d.ts +15 -0
  83. package/dist/hooks/utils/useScrollIntoView.d.ts +11 -0
  84. package/dist/index.d.ts +1 -1
  85. package/dist/utils/__tests__/callAllEventHandlers.test.d.ts +1 -0
  86. package/dist/utils/__tests__/debounce.test.d.ts +1 -0
  87. package/dist/utils/__tests__/generateId.r18.test.d.ts +1 -0
  88. package/dist/utils/__tests__/generateId.test.d.ts +1 -0
  89. package/dist/utils/__tests__/getHighlightedIndex.test.d.ts +1 -0
  90. package/dist/utils/__tests__/getNonDisabledIndex.test.d.ts +1 -0
  91. package/dist/utils/__tests__/getState.test.d.ts +1 -0
  92. package/dist/utils/__tests__/handleRefs.test.d.ts +1 -0
  93. package/dist/utils/__tests__/normalizeArrowKey.test.d.ts +1 -0
  94. package/dist/utils/__tests__/scrollIntoView.test.d.ts +1 -0
  95. package/dist/utils/__tests__/setA11yStatus.test.d.ts +1 -0
  96. package/dist/utils/__tests__/targetWithinDownshift.test.d.ts +1 -0
  97. package/dist/utils/__tests__/useLatestRef.test.d.ts +1 -0
  98. package/dist/utils/__tests__/validateControlledUnchanged.test.d.ts +1 -0
  99. package/dist/utils/__tests__/validatePropTypes.test.d.ts +1 -0
  100. package/dist/utils/getHighlightedIndex.d.ts +11 -0
  101. package/dist/utils/getNonDisabledIndex.d.ts +11 -0
  102. package/dist/utils/getState.d.ts +12 -0
  103. package/dist/utils/handleRefs.d.ts +2 -0
  104. package/dist/{utils-ts → utils}/index.d.ts +5 -1
  105. package/dist/utils/normalizeArrowKey.d.ts +6 -0
  106. package/dist/utils/targetWithinDownshift.d.ts +12 -0
  107. package/dist/utils/validateControlledUnchanged.d.ts +1 -0
  108. package/dist/utils/validatePropTypes.d.ts +2 -0
  109. package/dist/utils.legacy.d.ts +54 -0
  110. package/flow-typed/npm/downshift_v2.x.x.js.flow +87 -62
  111. package/package.json +2 -4
  112. package/preact/dist/downshift.cjs.cjs +617 -698
  113. package/preact/dist/downshift.cjs.js +4265 -0
  114. package/preact/dist/downshift.esm.js +4238 -0
  115. package/preact/dist/downshift.esm.mjs +618 -699
  116. package/preact/dist/downshift.umd.js +617 -698
  117. package/preact/dist/downshift.umd.js.map +1 -1
  118. package/preact/dist/downshift.umd.min.js +1 -1
  119. package/preact/dist/downshift.umd.min.js.map +1 -1
  120. package/typings/index.d.ts +13 -21
  121. package/dist/hooks/reducer.d.ts +0 -1
  122. package/dist/hooks/useSelect/utils/defaultProps.d.ts +0 -8
  123. package/dist/hooks/utils-ts/callOnChangeProps.d.ts +0 -2
  124. package/dist/hooks/utils-ts/getDefaultValue.d.ts +0 -2
  125. package/dist/hooks/utils-ts/getInitialValue.d.ts +0 -2
  126. package/dist/hooks/utils-ts/index.d.ts +0 -11
  127. package/dist/hooks/utils-ts/stateReducer.d.ts +0 -6
  128. package/dist/hooks/utils-ts/useControlledReducer.d.ts +0 -12
  129. package/dist/hooks/utils-ts/useEnhancedReducer.d.ts +0 -13
  130. package/dist/hooks/utils.d.ts +0 -58
  131. package/dist/hooks/utils.dropdown/defaultProps.d.ts +0 -9
  132. package/dist/hooks/utils.dropdown/index.d.ts +0 -3
  133. package/dist/utils-ts/getState.d.ts +0 -22
  134. package/dist/utils-ts/handleRefs.d.ts +0 -2
  135. package/dist/utils-ts/validatePropTypes.d.ts +0 -2
  136. package/dist/utils.d.ts +0 -123
  137. package/typings/index.legacy.d.ts +0 -888
  138. /package/dist/hooks/{utils-ts/__tests__/getItemAndIndex.test.d.ts → useCombobox/utils/__tests__/getInitialState.test.d.ts} +0 -0
  139. /package/dist/hooks/{utils.dropdown/__tests__/useElementIds.legacy.test.d.ts → useCombobox/utils/__tests__/useControlledReducer.test.d.ts} +0 -0
  140. /package/dist/hooks/{utils.dropdown/__tests__/useElementIds.r18.test.d.ts → useSelect/utils/__tests__/getItemIndexByCharacterKey.test.d.ts} +0 -0
  141. /package/dist/{utils-ts/__tests__/getState.test.d.ts → hooks/utils/__tests__/callOnChangeProps.test.d.ts} +0 -0
  142. /package/dist/{utils-ts/__tests__/handleRefs.test.d.ts → hooks/utils/__tests__/capitalizeString.test.d.ts} +0 -0
  143. /package/dist/hooks/{utils-ts → utils}/capitalizeString.d.ts +0 -0
  144. /package/dist/hooks/{utils-ts → utils}/getItemAndIndex.d.ts +0 -0
  145. /package/dist/hooks/{utils-ts → utils}/propTypes.d.ts +0 -0
  146. /package/dist/hooks/{utils-ts → utils}/useA11yMessageStatus.d.ts +0 -0
  147. /package/dist/hooks/{utils.dropdown → utils}/useElementIds.d.ts +0 -0
  148. /package/dist/hooks/{utils-ts → utils}/useIsInitialMount.d.ts +0 -0
  149. /package/dist/{utils-ts → utils}/callAllEventHandlers.d.ts +0 -0
  150. /package/dist/{utils-ts → utils}/debounce.d.ts +0 -0
  151. /package/dist/{utils-ts → utils}/generateId.d.ts +0 -0
  152. /package/dist/{utils-ts → utils}/noop.d.ts +0 -0
  153. /package/dist/{utils-ts → utils}/scrollIntoView.d.ts +0 -0
  154. /package/dist/{utils-ts → utils}/setA11yStatus.d.ts +0 -0
  155. /package/dist/{utils-ts → utils}/useLatestRef.d.ts +0 -0
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ type MemoizedItemProps = {
3
+ index: number;
4
+ item: string;
5
+ getItemProps: (options: Record<string, unknown>) => React.HTMLAttributes<HTMLLIElement>;
6
+ stringItem: string;
7
+ [key: string]: unknown;
8
+ };
9
+ export declare const MemoizedItem: React.NamedExoticComponent<MemoizedItemProps>;
10
+ export {};
@@ -0,0 +1,16 @@
1
+ export declare const items: string[];
2
+ export declare const dataTestIds: {
3
+ toggleButton: string;
4
+ menu: string;
5
+ item: (index: number) => string;
6
+ input: string;
7
+ selectedItemPrefix: string;
8
+ selectedItem: (index: number) => string;
9
+ };
10
+ export declare const defaultIds: {
11
+ labelId: string;
12
+ menuId: string;
13
+ getItemId: (index: number) => string;
14
+ toggleButtonId: string;
15
+ inputId: string;
16
+ };
@@ -0,0 +1,4 @@
1
+ export { items, dataTestIds, defaultIds } from './fixtures';
2
+ export { MemoizedItem } from './MemoizedItem';
3
+ export { waitForDebouncedA11yStatusUpdate, getLabel, getMenu, getToggleButton, getItemAtIndex, getItems, clickOnItemAtIndex, clickOnToggleButton, mouseMoveItemAtIndex, mouseLeaveItemAtIndex, keyDownOnToggleButton, getA11yStatusContainer, tab, } from './interactions';
4
+ export { initialFocusAndOpenTestCases, initialNoFocusOrOpenTestCases, } from './testCases';
@@ -0,0 +1,16 @@
1
+ import type userEvent from '@testing-library/user-event';
2
+ export declare const waitForDebouncedA11yStatusUpdate: (shouldBeCleared?: boolean) => void;
3
+ type UserEvent = ReturnType<typeof userEvent.setup>;
4
+ export declare function getLabel(): HTMLElement;
5
+ export declare function getMenu(): HTMLElement;
6
+ export declare function getToggleButton(): HTMLElement;
7
+ export declare function getItemAtIndex(index: number): HTMLElement | undefined;
8
+ export declare function getItems(): HTMLElement[];
9
+ export declare function clickOnItemAtIndex(user: UserEvent, index: number): Promise<void>;
10
+ export declare function clickOnToggleButton(user: UserEvent): Promise<void>;
11
+ export declare function mouseMoveItemAtIndex(user: UserEvent, index: number): Promise<void>;
12
+ export declare function mouseLeaveItemAtIndex(user: UserEvent, index: number): Promise<void>;
13
+ export declare function keyDownOnToggleButton(user: UserEvent, keys: string): Promise<void>;
14
+ export declare function getA11yStatusContainer(): HTMLElement | null;
15
+ export declare function tab(user: UserEvent, shiftKey?: boolean): Promise<void>;
16
+ export {};
@@ -0,0 +1,2 @@
1
+ export declare const initialFocusAndOpenTestCases: (boolean | undefined)[][];
2
+ export declare const initialNoFocusOrOpenTestCases: (boolean | undefined)[][];
@@ -0,0 +1,5 @@
1
+ export * from '@testing-library/react';
2
+ export { items, dataTestIds, defaultIds, waitForDebouncedA11yStatusUpdate, MemoizedItem, getLabel, getMenu, getToggleButton, getItemAtIndex, getItems, clickOnItemAtIndex, clickOnToggleButton, mouseMoveItemAtIndex, mouseLeaveItemAtIndex, keyDownOnToggleButton, getA11yStatusContainer, tab, initialFocusAndOpenTestCases, initialNoFocusOrOpenTestCases, } from '../../../testUtils';
3
+ export { renderUseCombobox } from './renderUseCombobox';
4
+ export { renderCombobox, getInput } from './renderCombobox';
5
+ export { keyDownOnInput, changeInputValue, clickOnInput } from './interactions';
@@ -0,0 +1,6 @@
1
+ import type userEvent from '@testing-library/user-event';
2
+ type UserEvent = ReturnType<typeof userEvent.setup>;
3
+ export declare function keyDownOnInput(user: UserEvent, keys: string): Promise<void>;
4
+ export declare function changeInputValue(user: UserEvent, inputValue: string): Promise<void>;
5
+ export declare function clickOnInput(user: UserEvent): Promise<void>;
6
+ export {};
@@ -0,0 +1,72 @@
1
+ import * as React from 'react';
2
+ import { UseComboboxProps } from '../../index.types';
3
+ import useCombobox from '../..';
4
+ type DropdownComboboxProps = Partial<UseComboboxProps<string>> & {
5
+ renderSpy: jest.Mock;
6
+ renderItem?: (props: {
7
+ index: number;
8
+ item: string;
9
+ getItemProps: ReturnType<typeof useCombobox>['getItemProps'];
10
+ stringItem: string;
11
+ }) => React.ReactNode;
12
+ };
13
+ export declare function renderCombobox(props?: Omit<DropdownComboboxProps, 'renderSpy'>, uiCallback?: (ui: React.ReactElement) => React.ReactElement): {
14
+ renderSpy: jest.Mock<any, any, any>;
15
+ rerender: (p: Omit<DropdownComboboxProps, "renderSpy">) => void;
16
+ user: import("@testing-library/user-event").UserEvent;
17
+ container: HTMLElement;
18
+ baseElement: HTMLElement;
19
+ debug: (baseElement?: ReactDOMClient.Container | any | Array<ReactDOMClient.Container | any> | undefined, maxLength?: number | undefined, options?: import("node_modules/pretty-format/build").OptionsReceived | undefined) => void;
20
+ unmount: () => void;
21
+ asFragment: () => DocumentFragment;
22
+ getByLabelText: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").SelectorMatcherOptions | undefined) => HTMLElement;
23
+ getAllByLabelText: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").SelectorMatcherOptions | undefined) => HTMLElement[];
24
+ queryByLabelText: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").SelectorMatcherOptions | undefined) => HTMLElement | null;
25
+ queryAllByLabelText: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").SelectorMatcherOptions | undefined) => HTMLElement[];
26
+ findByLabelText: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").SelectorMatcherOptions | undefined, waitForElementOptions?: import("@testing-library/react").waitForOptions | undefined) => Promise<HTMLElement>;
27
+ findAllByLabelText: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").SelectorMatcherOptions | undefined, waitForElementOptions?: import("@testing-library/react").waitForOptions | undefined) => Promise<HTMLElement[]>;
28
+ getByPlaceholderText: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").MatcherOptions | undefined) => HTMLElement;
29
+ getAllByPlaceholderText: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").MatcherOptions | undefined) => HTMLElement[];
30
+ queryByPlaceholderText: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").MatcherOptions | undefined) => HTMLElement | null;
31
+ queryAllByPlaceholderText: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").MatcherOptions | undefined) => HTMLElement[];
32
+ findByPlaceholderText: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").MatcherOptions | undefined, waitForElementOptions?: import("@testing-library/react").waitForOptions | undefined) => Promise<HTMLElement>;
33
+ findAllByPlaceholderText: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").MatcherOptions | undefined, waitForElementOptions?: import("@testing-library/react").waitForOptions | undefined) => Promise<HTMLElement[]>;
34
+ getByText: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").SelectorMatcherOptions | undefined) => HTMLElement;
35
+ getAllByText: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").SelectorMatcherOptions | undefined) => HTMLElement[];
36
+ queryByText: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").SelectorMatcherOptions | undefined) => HTMLElement | null;
37
+ queryAllByText: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").SelectorMatcherOptions | undefined) => HTMLElement[];
38
+ findByText: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").SelectorMatcherOptions | undefined, waitForElementOptions?: import("@testing-library/react").waitForOptions | undefined) => Promise<HTMLElement>;
39
+ findAllByText: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").SelectorMatcherOptions | undefined, waitForElementOptions?: import("@testing-library/react").waitForOptions | undefined) => Promise<HTMLElement[]>;
40
+ getByAltText: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").MatcherOptions | undefined) => HTMLElement;
41
+ getAllByAltText: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").MatcherOptions | undefined) => HTMLElement[];
42
+ queryByAltText: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").MatcherOptions | undefined) => HTMLElement | null;
43
+ queryAllByAltText: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").MatcherOptions | undefined) => HTMLElement[];
44
+ findByAltText: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").MatcherOptions | undefined, waitForElementOptions?: import("@testing-library/react").waitForOptions | undefined) => Promise<HTMLElement>;
45
+ findAllByAltText: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").MatcherOptions | undefined, waitForElementOptions?: import("@testing-library/react").waitForOptions | undefined) => Promise<HTMLElement[]>;
46
+ getByTitle: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").MatcherOptions | undefined) => HTMLElement;
47
+ getAllByTitle: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").MatcherOptions | undefined) => HTMLElement[];
48
+ queryByTitle: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").MatcherOptions | undefined) => HTMLElement | null;
49
+ queryAllByTitle: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").MatcherOptions | undefined) => HTMLElement[];
50
+ findByTitle: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").MatcherOptions | undefined, waitForElementOptions?: import("@testing-library/react").waitForOptions | undefined) => Promise<HTMLElement>;
51
+ findAllByTitle: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").MatcherOptions | undefined, waitForElementOptions?: import("@testing-library/react").waitForOptions | undefined) => Promise<HTMLElement[]>;
52
+ getByDisplayValue: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").MatcherOptions | undefined) => HTMLElement;
53
+ getAllByDisplayValue: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").MatcherOptions | undefined) => HTMLElement[];
54
+ queryByDisplayValue: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").MatcherOptions | undefined) => HTMLElement | null;
55
+ queryAllByDisplayValue: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").MatcherOptions | undefined) => HTMLElement[];
56
+ findByDisplayValue: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").MatcherOptions | undefined, waitForElementOptions?: import("@testing-library/react").waitForOptions | undefined) => Promise<HTMLElement>;
57
+ findAllByDisplayValue: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").MatcherOptions | undefined, waitForElementOptions?: import("@testing-library/react").waitForOptions | undefined) => Promise<HTMLElement[]>;
58
+ getByRole: (role: import("@testing-library/react").ByRoleMatcher, options?: import("@testing-library/react").ByRoleOptions | undefined) => HTMLElement;
59
+ getAllByRole: (role: import("@testing-library/react").ByRoleMatcher, options?: import("@testing-library/react").ByRoleOptions | undefined) => HTMLElement[];
60
+ queryByRole: (role: import("@testing-library/react").ByRoleMatcher, options?: import("@testing-library/react").ByRoleOptions | undefined) => HTMLElement | null;
61
+ queryAllByRole: (role: import("@testing-library/react").ByRoleMatcher, options?: import("@testing-library/react").ByRoleOptions | undefined) => HTMLElement[];
62
+ findByRole: (role: import("@testing-library/react").ByRoleMatcher, options?: import("@testing-library/react").ByRoleOptions | undefined, waitForElementOptions?: import("@testing-library/react").waitForOptions | undefined) => Promise<HTMLElement>;
63
+ findAllByRole: (role: import("@testing-library/react").ByRoleMatcher, options?: import("@testing-library/react").ByRoleOptions | undefined, waitForElementOptions?: import("@testing-library/react").waitForOptions | undefined) => Promise<HTMLElement[]>;
64
+ getByTestId: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").MatcherOptions | undefined) => HTMLElement;
65
+ getAllByTestId: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").MatcherOptions | undefined) => HTMLElement[];
66
+ queryByTestId: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").MatcherOptions | undefined) => HTMLElement | null;
67
+ queryAllByTestId: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").MatcherOptions | undefined) => HTMLElement[];
68
+ findByTestId: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").MatcherOptions | undefined, waitForElementOptions?: import("@testing-library/react").waitForOptions | undefined) => Promise<HTMLElement>;
69
+ findAllByTestId: (id: import("@testing-library/react").Matcher, options?: import("@testing-library/react").MatcherOptions | undefined, waitForElementOptions?: import("@testing-library/react").waitForOptions | undefined) => Promise<HTMLElement[]>;
70
+ };
71
+ export declare function getInput(): HTMLElement;
72
+ export {};
@@ -0,0 +1,2 @@
1
+ import { UseComboboxProps } from '../../index.types';
2
+ export declare function renderUseCombobox(props?: Partial<UseComboboxProps<string>>): import("@testing-library/react").RenderHookResult<import("../../index.types").UseComboboxReturnValue<string>, unknown>;
@@ -1,96 +1,6 @@
1
- export default useCombobox;
2
- declare function useCombobox(userProps?: {}): {
3
- getItemProps: ({ item: itemProp, index: indexProp, refKey, ref, onMouseMove, onMouseDown, onClick, onPress, disabled: disabledProp, ...rest }?: {
4
- item: any;
5
- index: any;
6
- refKey?: string | undefined;
7
- ref: any;
8
- onMouseMove: any;
9
- onMouseDown: any;
10
- onClick: any;
11
- onPress: any;
12
- disabled: any;
13
- }) => {
14
- onMouseMove: Function;
15
- onMouseDown: Function;
16
- 'aria-disabled': boolean;
17
- 'aria-selected': boolean;
18
- id: string;
19
- role: string;
20
- };
21
- getLabelProps: (labelProps: any) => any;
22
- getMenuProps: ({ onMouseLeave, refKey, ref, ...rest }?: {
23
- onMouseLeave: any;
24
- refKey?: string | undefined;
25
- ref: any;
26
- }, { suppressRefError }?: {
27
- suppressRefError?: boolean | undefined;
28
- }) => {
29
- id: string;
30
- role: string;
31
- 'aria-labelledby': string | undefined;
32
- onMouseLeave: Function;
33
- };
34
- getInputProps: ({ onKeyDown, onChange, onInput, onBlur, onChangeText, onClick, refKey, ref, ...rest }?: {
35
- onKeyDown: any;
36
- onChange: any;
37
- onInput: any;
38
- onBlur: any;
39
- onChangeText: any;
40
- onClick: any;
41
- refKey?: string | undefined;
42
- ref: any;
43
- }, { suppressRefError }?: {
44
- suppressRefError?: boolean | undefined;
45
- }) => {
46
- onChange: Function;
47
- onChangeText: Function;
48
- 'aria-activedescendant': string;
49
- 'aria-autocomplete': string;
50
- 'aria-controls': string;
51
- 'aria-expanded': any;
52
- 'aria-labelledby': string | undefined;
53
- autoComplete: string;
54
- id: string;
55
- role: string;
56
- value: any;
57
- };
58
- getToggleButtonProps: ({ onClick, onPress, refKey, ref, ...rest }?: {
59
- onClick: any;
60
- onPress: any;
61
- refKey?: string | undefined;
62
- ref: any;
63
- }) => {
64
- 'aria-controls': string;
65
- 'aria-expanded': any;
66
- id: string;
67
- tabIndex: number;
68
- } | {
69
- onPress: Function;
70
- 'aria-controls': string;
71
- 'aria-expanded': any;
72
- id: string;
73
- tabIndex: number;
74
- } | {
75
- onClick: Function;
76
- 'aria-controls': string;
77
- 'aria-expanded': any;
78
- id: string;
79
- tabIndex: number;
80
- };
81
- toggleMenu: () => void;
82
- openMenu: () => void;
83
- closeMenu: () => void;
84
- setHighlightedIndex: (newHighlightedIndex: any) => void;
85
- setInputValue: (newInputValue: any) => void;
86
- selectItem: (newSelectedItem: any) => void;
87
- reset: () => void;
88
- highlightedIndex: any;
89
- isOpen: any;
90
- selectedItem: any;
91
- inputValue: any;
92
- };
1
+ import { UseComboboxProps, UseComboboxReturnValue } from './index.types';
2
+ declare function useCombobox<Item>(userProps?: UseComboboxProps<Item>): UseComboboxReturnValue<Item>;
93
3
  declare namespace useCombobox {
94
- export { stateChangeTypes };
4
+ var stateChangeTypes: typeof import("./stateChangeTypes");
95
5
  }
96
- import * as stateChangeTypes from "./stateChangeTypes";
6
+ export default useCombobox;
@@ -0,0 +1,302 @@
1
+ import { Environment, GetPropsCommonOptions, Overwrite } from '../../downshift.types';
2
+ export interface UseComboboxState<Item> {
3
+ highlightedIndex: number;
4
+ selectedItem: Item | null;
5
+ isOpen: boolean;
6
+ inputValue: string;
7
+ }
8
+ export declare enum UseComboboxStateChangeTypes {
9
+ InputKeyDownArrowDown = "__input_keydown_arrow_down__",
10
+ InputKeyDownArrowUp = "__input_keydown_arrow_up__",
11
+ InputKeyDownEscape = "__input_keydown_escape__",
12
+ InputKeyDownHome = "__input_keydown_home__",
13
+ InputKeyDownEnd = "__input_keydown_end__",
14
+ InputKeyDownPageUp = "__input_keydown_page_up__",
15
+ InputKeyDownPageDown = "__input_keydown_page_down__",
16
+ InputKeyDownEnter = "__input_keydown_enter__",
17
+ InputChange = "__input_change__",
18
+ InputBlur = "__input_blur__",
19
+ InputClick = "__input_click__",
20
+ MenuMouseLeave = "__menu_mouse_leave__",
21
+ ItemMouseMove = "__item_mouse_move__",
22
+ ItemClick = "__item_click__",
23
+ ToggleButtonClick = "__togglebutton_click__",
24
+ FunctionToggleMenu = "__function_toggle_menu__",
25
+ FunctionOpenMenu = "__function_open_menu__",
26
+ FunctionCloseMenu = "__function_close_menu__",
27
+ FunctionSetHighlightedIndex = "__function_set_highlighted_index__",
28
+ FunctionSelectItem = "__function_select_item__",
29
+ FunctionSetInputValue = "__function_set_input_value__",
30
+ FunctionReset = "__function_reset__",
31
+ ControlledPropUpdatedSelectedItem = "__controlled_prop_updated_selected_item__"
32
+ }
33
+ export type UseComboboxInputKeyDownArrowDownAction = {
34
+ type: UseComboboxStateChangeTypes.InputKeyDownArrowDown;
35
+ altKey: boolean;
36
+ };
37
+ export type UseComboboxInputKeyDownArrowUpAction = {
38
+ type: UseComboboxStateChangeTypes.InputKeyDownArrowUp;
39
+ altKey: boolean;
40
+ };
41
+ export type UseComboboxInputKeyDownHomeAction = {
42
+ type: UseComboboxStateChangeTypes.InputKeyDownHome;
43
+ };
44
+ export type UseComboboxInputKeyDownEndAction = {
45
+ type: UseComboboxStateChangeTypes.InputKeyDownEnd;
46
+ };
47
+ export type UseComboboxInputKeyDownEscapeAction = {
48
+ type: UseComboboxStateChangeTypes.InputKeyDownEscape;
49
+ };
50
+ export type UseComboboxInputKeyDownEnterAction = {
51
+ type: UseComboboxStateChangeTypes.InputKeyDownEnter;
52
+ };
53
+ export type UseComboboxInputKeyDownPageUpAction = {
54
+ type: UseComboboxStateChangeTypes.InputKeyDownPageUp;
55
+ };
56
+ export type UseComboboxInputKeyDownPageDownAction = {
57
+ type: UseComboboxStateChangeTypes.InputKeyDownPageDown;
58
+ };
59
+ export type UseComboboxInputChangeAction = {
60
+ type: UseComboboxStateChangeTypes.InputChange;
61
+ inputValue: string;
62
+ };
63
+ export type UseComboboxInputBlurAction = {
64
+ type: UseComboboxStateChangeTypes.InputBlur;
65
+ selectItem?: boolean;
66
+ };
67
+ export type UseComboboxInputClickAction = {
68
+ type: UseComboboxStateChangeTypes.InputClick;
69
+ };
70
+ export type UseComboboxMenuMouseLeaveAction = {
71
+ type: UseComboboxStateChangeTypes.MenuMouseLeave;
72
+ };
73
+ export type UseComboboxItemMouseMoveAction = {
74
+ type: UseComboboxStateChangeTypes.ItemMouseMove;
75
+ index: number;
76
+ disabled: boolean;
77
+ };
78
+ export type UseComboboxItemClickAction = {
79
+ type: UseComboboxStateChangeTypes.ItemClick;
80
+ index: number;
81
+ };
82
+ export type UseComboboxToggleButtonClickAction = {
83
+ type: UseComboboxStateChangeTypes.ToggleButtonClick;
84
+ };
85
+ export type UseComboboxFunctionToggleMenuAction = {
86
+ type: UseComboboxStateChangeTypes.FunctionToggleMenu;
87
+ };
88
+ export type UseComboboxFunctionOpenMenuAction = {
89
+ type: UseComboboxStateChangeTypes.FunctionOpenMenu;
90
+ };
91
+ export type UseComboboxFunctionCloseMenuAction = {
92
+ type: UseComboboxStateChangeTypes.FunctionCloseMenu;
93
+ };
94
+ export type UseComboboxFunctionSetHighlightedIndexAction = {
95
+ type: UseComboboxStateChangeTypes.FunctionSetHighlightedIndex;
96
+ highlightedIndex: number;
97
+ };
98
+ export type UseComboboxFunctionSelectItemAction<Item> = {
99
+ type: UseComboboxStateChangeTypes.FunctionSelectItem;
100
+ selectedItem: Item | null;
101
+ };
102
+ export type UseComboboxFunctionSetInputValueAction = {
103
+ type: UseComboboxStateChangeTypes.FunctionSetInputValue;
104
+ inputValue: string;
105
+ };
106
+ export type UseComboboxFunctionResetAction = {
107
+ type: UseComboboxStateChangeTypes.FunctionReset;
108
+ };
109
+ export type UseComboboxControlledPropUpdatedSelectedItemAction = {
110
+ type: UseComboboxStateChangeTypes.ControlledPropUpdatedSelectedItem;
111
+ inputValue: string;
112
+ };
113
+ export type UseComboboxReducerAction<Item> = UseComboboxInputKeyDownArrowDownAction | UseComboboxInputKeyDownArrowUpAction | UseComboboxInputKeyDownHomeAction | UseComboboxInputKeyDownEndAction | UseComboboxInputKeyDownEscapeAction | UseComboboxInputKeyDownEnterAction | UseComboboxInputKeyDownPageUpAction | UseComboboxInputKeyDownPageDownAction | UseComboboxInputChangeAction | UseComboboxInputBlurAction | UseComboboxInputClickAction | UseComboboxMenuMouseLeaveAction | UseComboboxItemMouseMoveAction | UseComboboxItemClickAction | UseComboboxToggleButtonClickAction | UseComboboxFunctionToggleMenuAction | UseComboboxFunctionOpenMenuAction | UseComboboxFunctionCloseMenuAction | UseComboboxFunctionSetHighlightedIndexAction | UseComboboxFunctionSelectItemAction<Item> | UseComboboxFunctionSetInputValueAction | UseComboboxFunctionResetAction | UseComboboxControlledPropUpdatedSelectedItemAction;
114
+ export interface UseComboboxProps<Item> {
115
+ items: Item[];
116
+ isItemDisabled?(item: Item, index: number): boolean;
117
+ itemToString?: (item: Item | null) => string;
118
+ itemToKey?: (item: Item | null) => any;
119
+ getA11yStatusMessage?: (options: UseComboboxState<Item>) => string;
120
+ highlightedIndex?: number;
121
+ initialHighlightedIndex?: number;
122
+ defaultHighlightedIndex?: number;
123
+ isOpen?: boolean;
124
+ initialIsOpen?: boolean;
125
+ defaultIsOpen?: boolean;
126
+ selectedItem?: Item | null;
127
+ initialSelectedItem?: Item | null;
128
+ defaultSelectedItem?: Item | null;
129
+ inputValue?: string;
130
+ initialInputValue?: string;
131
+ defaultInputValue?: string;
132
+ id?: string;
133
+ labelId?: string;
134
+ menuId?: string;
135
+ toggleButtonId?: string;
136
+ inputId?: string;
137
+ getItemId?: (index: number) => string;
138
+ scrollIntoView?: (node: HTMLElement, menuNode: HTMLElement) => void;
139
+ stateReducer?: (state: UseComboboxState<Item>, actionAndChanges: UseComboboxStateChangeOptions<Item>) => Partial<UseComboboxState<Item>>;
140
+ onSelectedItemChange?: (changes: UseComboboxSelectedItemChange<Item>) => void;
141
+ onIsOpenChange?: (changes: UseComboboxIsOpenChange<Item>) => void;
142
+ onHighlightedIndexChange?: (changes: UseComboboxHighlightedIndexChange<Item>) => void;
143
+ onStateChange?: (changes: UseComboboxStateChange<Item>) => void;
144
+ onInputValueChange?: (changes: UseComboboxInputValueChange<Item>) => void;
145
+ environment?: Environment;
146
+ }
147
+ export type UseComboboxMergedProps<Item> = Omit<UseComboboxProps<Item>, 'itemToString' | 'itemToKey' | 'stateReducer' | 'scrollIntoView' | 'isItemDisabled'> & Required<Pick<UseComboboxProps<Item>, 'itemToString' | 'itemToKey' | 'stateReducer' | 'scrollIntoView' | 'isItemDisabled'>>;
148
+ export interface UseComboboxStateChangeOptions<Item> extends UseComboboxDispatchAction<Item> {
149
+ changes: Partial<UseComboboxState<Item>>;
150
+ props: UseComboboxMergedProps<Item>;
151
+ }
152
+ export interface UseComboboxDispatchAction<Item> {
153
+ type: UseComboboxStateChangeTypes;
154
+ altKey?: boolean;
155
+ inputValue?: string;
156
+ index?: number;
157
+ highlightedIndex?: number;
158
+ selectedItem?: Item | null;
159
+ selectItem?: boolean;
160
+ }
161
+ export interface UseComboboxStateChange<Item> extends Partial<UseComboboxState<Item>> {
162
+ type: UseComboboxStateChangeTypes;
163
+ }
164
+ export interface UseComboboxSelectedItemChange<Item> extends UseComboboxStateChange<Item> {
165
+ selectedItem: Item | null;
166
+ }
167
+ export interface UseComboboxHighlightedIndexChange<Item> extends UseComboboxStateChange<Item> {
168
+ highlightedIndex: number;
169
+ }
170
+ export interface UseComboboxIsOpenChange<Item> extends UseComboboxStateChange<Item> {
171
+ isOpen: boolean;
172
+ }
173
+ export interface UseComboboxInputValueChange<Item> extends UseComboboxStateChange<Item> {
174
+ inputValue: string;
175
+ }
176
+ export interface UseComboboxGetMenuPropsOptions extends React.HTMLProps<HTMLElement> {
177
+ refKey?: string;
178
+ ref?: React.Ref<any>;
179
+ }
180
+ export interface UseComboboxGetMenuPropsReturnValue {
181
+ 'aria-label': string | undefined;
182
+ 'aria-labelledby': string | undefined;
183
+ ref?: React.Ref<any>;
184
+ role: 'listbox';
185
+ id: string;
186
+ onMouseLeave: React.MouseEventHandler;
187
+ }
188
+ export type UseComboboxGetMenuProps = <Options>(options?: UseComboboxGetMenuPropsOptions & Options, otherOptions?: GetPropsCommonOptions) => Overwrite<UseComboboxGetMenuPropsReturnValue, Options>;
189
+ export interface UseComboboxGetToggleButtonPropsOptions extends React.HTMLProps<HTMLElement> {
190
+ disabled?: boolean;
191
+ refKey?: string;
192
+ ref?: React.Ref<any>;
193
+ onPress?: (event: React.BaseSyntheticEvent) => void;
194
+ }
195
+ export interface UseComboboxGetToggleButtonPropsReturnValue {
196
+ 'aria-controls': string;
197
+ 'aria-expanded': boolean;
198
+ id: string;
199
+ onPress?: (event: React.BaseSyntheticEvent) => void;
200
+ onClick?: React.MouseEventHandler;
201
+ ref?: React.Ref<any>;
202
+ tabIndex: -1;
203
+ }
204
+ export type UseComboboxGetToggleButtonProps = <Options>(options?: UseComboboxGetToggleButtonPropsOptions & Options) => Overwrite<UseComboboxGetToggleButtonPropsReturnValue, Options>;
205
+ export interface UseComboboxGetLabelPropsOptions extends React.HTMLProps<HTMLElement> {
206
+ }
207
+ export interface UseComboboxGetLabelPropsReturnValue {
208
+ htmlFor: string;
209
+ id: string;
210
+ }
211
+ export type UseComboboxGetLabelProps = <Options>(options?: UseComboboxGetLabelPropsOptions & Options) => Overwrite<UseComboboxGetLabelPropsReturnValue, Options>;
212
+ export interface UseComboboxGetItemPropsOptions<Item> extends React.HTMLProps<HTMLElement> {
213
+ index?: number;
214
+ item?: Item;
215
+ refKey?: string;
216
+ ref?: React.Ref<any>;
217
+ onPress?: (event: React.BaseSyntheticEvent) => void;
218
+ }
219
+ export interface UseComboboxGetItemPropsReturnValue {
220
+ 'aria-selected': boolean;
221
+ 'aria-disabled': boolean;
222
+ id: string;
223
+ onClick?: React.MouseEventHandler;
224
+ onMouseDown?: React.MouseEventHandler;
225
+ onMouseMove?: React.MouseEventHandler;
226
+ onPress?: React.MouseEventHandler;
227
+ ref?: React.Ref<any>;
228
+ role: 'option';
229
+ }
230
+ export type UseComboboxGetItemProps<Item> = <Options>(options?: UseComboboxGetItemPropsOptions<Item> & Options) => Omit<Overwrite<UseComboboxGetItemPropsReturnValue, Options>, 'index' | 'item'>;
231
+ export interface UseComboboxGetInputPropsOptions extends React.HTMLProps<HTMLInputElement> {
232
+ refKey?: string;
233
+ ref?: React.Ref<HTMLInputElement>;
234
+ onChangeText?: (event: React.BaseSyntheticEvent) => void;
235
+ }
236
+ export interface UseComboboxGetInputPropsReturnValue {
237
+ ref?: React.Ref<any>;
238
+ 'aria-activedescendant': string;
239
+ 'aria-autocomplete': 'list';
240
+ 'aria-controls': string;
241
+ 'aria-expanded': boolean;
242
+ 'aria-labelledby': string | undefined;
243
+ 'aria-label': string | undefined;
244
+ autoComplete: 'off';
245
+ disabled: boolean | undefined;
246
+ id: string;
247
+ role: 'combobox';
248
+ value: string;
249
+ onBlur?: React.FocusEventHandler;
250
+ onChange?: React.ChangeEventHandler;
251
+ onChangeText?: React.ChangeEventHandler;
252
+ onClick?: React.MouseEventHandler;
253
+ onInput?: React.FormEventHandler;
254
+ onKeyDown?: React.KeyboardEventHandler;
255
+ }
256
+ export type UseComboboxGetInputProps = <Options>(options?: UseComboboxGetInputPropsOptions & Options, otherOptions?: GetPropsCommonOptions) => Overwrite<UseComboboxGetInputPropsReturnValue, Options>;
257
+ export interface UseComboboxPropGetters<Item> {
258
+ getToggleButtonProps: UseComboboxGetToggleButtonProps;
259
+ getLabelProps: UseComboboxGetLabelProps;
260
+ getMenuProps: UseComboboxGetMenuProps;
261
+ getItemProps: UseComboboxGetItemProps<Item>;
262
+ getInputProps: UseComboboxGetInputProps;
263
+ }
264
+ export interface UseComboboxActions<Item> {
265
+ reset: () => void;
266
+ openMenu: () => void;
267
+ closeMenu: () => void;
268
+ toggleMenu: () => void;
269
+ selectItem: (item: Item | null) => void;
270
+ setHighlightedIndex: (index: number) => void;
271
+ setInputValue: (inputValue: string) => void;
272
+ }
273
+ export type UseComboboxReturnValue<Item> = UseComboboxState<Item> & UseComboboxPropGetters<Item> & UseComboboxActions<Item>;
274
+ export interface UseComboboxInterface {
275
+ <Item>(props: UseComboboxProps<Item>): UseComboboxReturnValue<Item>;
276
+ stateChangeTypes: {
277
+ InputKeyDownArrowDown: UseComboboxStateChangeTypes.InputKeyDownArrowDown;
278
+ InputKeyDownArrowUp: UseComboboxStateChangeTypes.InputKeyDownArrowUp;
279
+ InputKeyDownEscape: UseComboboxStateChangeTypes.InputKeyDownEscape;
280
+ InputKeyDownHome: UseComboboxStateChangeTypes.InputKeyDownHome;
281
+ InputKeyDownEnd: UseComboboxStateChangeTypes.InputKeyDownEnd;
282
+ InputKeyDownPageDown: UseComboboxStateChangeTypes.InputKeyDownPageDown;
283
+ InputKeyDownPageUp: UseComboboxStateChangeTypes.InputKeyDownPageUp;
284
+ InputKeyDownEnter: UseComboboxStateChangeTypes.InputKeyDownEnter;
285
+ InputChange: UseComboboxStateChangeTypes.InputChange;
286
+ InputBlur: UseComboboxStateChangeTypes.InputBlur;
287
+ InputClick: UseComboboxStateChangeTypes.InputClick;
288
+ MenuMouseLeave: UseComboboxStateChangeTypes.MenuMouseLeave;
289
+ ItemMouseMove: UseComboboxStateChangeTypes.ItemMouseMove;
290
+ ItemClick: UseComboboxStateChangeTypes.ItemClick;
291
+ ToggleButtonClick: UseComboboxStateChangeTypes.ToggleButtonClick;
292
+ FunctionToggleMenu: UseComboboxStateChangeTypes.FunctionToggleMenu;
293
+ FunctionOpenMenu: UseComboboxStateChangeTypes.FunctionOpenMenu;
294
+ FunctionCloseMenu: UseComboboxStateChangeTypes.FunctionCloseMenu;
295
+ FunctionSetHighlightedIndex: UseComboboxStateChangeTypes.FunctionSetHighlightedIndex;
296
+ FunctionSelectItem: UseComboboxStateChangeTypes.FunctionSelectItem;
297
+ FunctionSetInputValue: UseComboboxStateChangeTypes.FunctionSetInputValue;
298
+ FunctionReset: UseComboboxStateChangeTypes.FunctionReset;
299
+ ControlledPropUpdatedSelectedItem: UseComboboxStateChangeTypes.ControlledPropUpdatedSelectedItem;
300
+ };
301
+ }
302
+ export declare const useCombobox: UseComboboxInterface;
@@ -1 +1,4 @@
1
- export default function downshiftUseComboboxReducer(state: any, props: any, action: any): any;
1
+ import { UseComboboxMergedProps, UseComboboxReducerAction, UseComboboxState } from './index.types';
2
+ export default function downshiftUseComboboxReducer<Item>(state: UseComboboxState<Item>, action: UseComboboxReducerAction<Item> & {
3
+ props: UseComboboxMergedProps<Item>;
4
+ }): UseComboboxState<Item>;
@@ -1,23 +1,24 @@
1
- export const InputKeyDownArrowDown: "__input_keydown_arrow_down__";
2
- export const InputKeyDownArrowUp: "__input_keydown_arrow_up__";
3
- export const InputKeyDownEscape: "__input_keydown_escape__";
4
- export const InputKeyDownHome: "__input_keydown_home__";
5
- export const InputKeyDownEnd: "__input_keydown_end__";
6
- export const InputKeyDownPageUp: "__input_keydown_page_up__";
7
- export const InputKeyDownPageDown: "__input_keydown_page_down__";
8
- export const InputKeyDownEnter: "__input_keydown_enter__";
9
- export const InputChange: "__input_change__";
10
- export const InputBlur: "__input_blur__";
11
- export const InputClick: "__input_click__";
12
- export const MenuMouseLeave: "__menu_mouse_leave__";
13
- export const ItemMouseMove: "__item_mouse_move__";
14
- export const ItemClick: "__item_click__";
15
- export const ToggleButtonClick: "__togglebutton_click__";
16
- export const FunctionToggleMenu: "__function_toggle_menu__";
17
- export const FunctionOpenMenu: "__function_open_menu__";
18
- export const FunctionCloseMenu: "__function_close_menu__";
19
- export const FunctionSetHighlightedIndex: "__function_set_highlighted_index__";
20
- export const FunctionSelectItem: "__function_select_item__";
21
- export const FunctionSetInputValue: "__function_set_input_value__";
22
- export const FunctionReset: "__function_reset__";
23
- export const ControlledPropUpdatedSelectedItem: "__controlled_prop_updated_selected_item__";
1
+ import { UseComboboxStateChangeTypes } from './index.types';
2
+ export declare const InputKeyDownArrowDown: UseComboboxStateChangeTypes.InputKeyDownArrowDown;
3
+ export declare const InputKeyDownArrowUp: UseComboboxStateChangeTypes.InputKeyDownArrowUp;
4
+ export declare const InputKeyDownEscape: UseComboboxStateChangeTypes.InputKeyDownEscape;
5
+ export declare const InputKeyDownHome: UseComboboxStateChangeTypes.InputKeyDownHome;
6
+ export declare const InputKeyDownEnd: UseComboboxStateChangeTypes.InputKeyDownEnd;
7
+ export declare const InputKeyDownPageUp: UseComboboxStateChangeTypes.InputKeyDownPageUp;
8
+ export declare const InputKeyDownPageDown: UseComboboxStateChangeTypes.InputKeyDownPageDown;
9
+ export declare const InputKeyDownEnter: UseComboboxStateChangeTypes.InputKeyDownEnter;
10
+ export declare const InputChange: UseComboboxStateChangeTypes.InputChange;
11
+ export declare const InputBlur: UseComboboxStateChangeTypes.InputBlur;
12
+ export declare const InputClick: UseComboboxStateChangeTypes.InputClick;
13
+ export declare const MenuMouseLeave: UseComboboxStateChangeTypes.MenuMouseLeave;
14
+ export declare const ItemMouseMove: UseComboboxStateChangeTypes.ItemMouseMove;
15
+ export declare const ItemClick: UseComboboxStateChangeTypes.ItemClick;
16
+ export declare const ToggleButtonClick: UseComboboxStateChangeTypes.ToggleButtonClick;
17
+ export declare const FunctionToggleMenu: UseComboboxStateChangeTypes.FunctionToggleMenu;
18
+ export declare const FunctionOpenMenu: UseComboboxStateChangeTypes.FunctionOpenMenu;
19
+ export declare const FunctionCloseMenu: UseComboboxStateChangeTypes.FunctionCloseMenu;
20
+ export declare const FunctionSetHighlightedIndex: UseComboboxStateChangeTypes.FunctionSetHighlightedIndex;
21
+ export declare const FunctionSelectItem: UseComboboxStateChangeTypes.FunctionSelectItem;
22
+ export declare const FunctionSetInputValue: UseComboboxStateChangeTypes.FunctionSetInputValue;
23
+ export declare const FunctionReset: UseComboboxStateChangeTypes.FunctionReset;
24
+ export declare const ControlledPropUpdatedSelectedItem: UseComboboxStateChangeTypes.ControlledPropUpdatedSelectedItem;
@@ -0,0 +1,10 @@
1
+ import { GetInitialStateProps as GetInitialStatePropsCommon } from '../../utils';
2
+ export type GetInitialStateProps<T> = GetInitialStatePropsCommon<T> & {
3
+ itemToString: (item: T) => string;
4
+ };
5
+ export declare function getInitialState<T>(props: GetInitialStateProps<T>): {
6
+ inputValue: string;
7
+ highlightedIndex: number;
8
+ isOpen: boolean;
9
+ selectedItem: T | null;
10
+ };
@@ -0,0 +1,3 @@
1
+ export { getInitialState } from './getInitialState';
2
+ export { useControlledReducer } from './useControlledReducer';
3
+ export { propTypes } from './propTypes';