@elliemae/ds-controlled-form 2.4.1-rc.4 → 2.4.1-rc.5

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 (157) hide show
  1. package/cjs/autocomplete/Autocomplete.js +4 -5
  2. package/cjs/autocomplete/AutocompleteCTX.js +3 -14
  3. package/cjs/autocomplete/AutocompleteDataTestids.js +1 -7
  4. package/cjs/autocomplete/config/useAutocomplete.js +23 -10
  5. package/cjs/autocomplete/parts/container/Container.js +36 -20
  6. package/cjs/autocomplete/parts/container/styled.js +1 -5
  7. package/cjs/autocomplete/parts/{controls → container}/useKeyboardNavigation.js +8 -24
  8. package/cjs/autocomplete/parts/menu-list/MenuList.js +17 -50
  9. package/cjs/autocomplete/parts/menu-list/styled.js +9 -10
  10. package/cjs/autocomplete/parts/menu-list/useItemRenderer.js +38 -44
  11. package/cjs/autocomplete/react-desc-prop-types.js +4 -8
  12. package/cjs/autocomplete/utils/listHelper.js +8 -16
  13. package/cjs/checkbox/react-desc-prop-types.js +1 -0
  14. package/cjs/combobox/ComboBox.js +1 -0
  15. package/cjs/combobox/config/useComboBox.js +8 -2
  16. package/cjs/combobox/config/useCorrectOptions.js +14 -42
  17. package/cjs/combobox/index.js +1 -0
  18. package/cjs/combobox/parts/A11yFocusedOption.js +3 -3
  19. package/cjs/combobox/parts/controls/Controls.js +4 -2
  20. package/cjs/combobox/parts/controls-input/ControlsInput.js +2 -0
  21. package/cjs/combobox/parts/controls-input/styled.js +1 -1
  22. package/cjs/combobox/parts/controls-input/useControlsInput.js +6 -6
  23. package/cjs/combobox/parts/controls-input/useKeyboardNavigation.js +30 -26
  24. package/cjs/combobox/parts/controls-input/useMaskedOnChange.js +7 -5
  25. package/cjs/combobox/parts/dropdown-indicator/DropdownIndicator.js +6 -4
  26. package/cjs/combobox/parts/header-list/useHeaderListHandlers.js +4 -4
  27. package/cjs/combobox/parts/menu-list/MenuList.js +13 -7
  28. package/cjs/combobox/parts/menu-list/styled.js +16 -5
  29. package/cjs/combobox/parts/menu-list/useItemRenderer.js +8 -8
  30. package/cjs/combobox/parts/menu-list/useMenuListSetFocusOption.js +6 -6
  31. package/cjs/combobox/react-desc-prop-types.js +2 -1
  32. package/cjs/combobox/utils/listHelper.js +40 -11
  33. package/cjs/index.js +8 -3
  34. package/cjs/mask-hook/hooks/index.js +7 -3
  35. package/cjs/mask-hook/hooks/useNumberMask.js +5 -0
  36. package/cjs/mask-hook/hooks/usePhoneMask.js +5 -0
  37. package/cjs/mask-hook/hooks/useSSNMask.js +5 -0
  38. package/cjs/mask-hook/hooks/{useZipCode.js → useZipCodeMask.js} +10 -5
  39. package/cjs/mask-hook/index.js +7 -3
  40. package/esm/autocomplete/Autocomplete.js +2 -3
  41. package/esm/autocomplete/AutocompleteCTX.js +3 -14
  42. package/esm/autocomplete/AutocompleteDataTestids.js +1 -7
  43. package/esm/autocomplete/config/useAutocomplete.js +27 -14
  44. package/esm/autocomplete/parts/container/Container.js +38 -23
  45. package/esm/autocomplete/parts/container/styled.js +2 -5
  46. package/esm/autocomplete/parts/{controls → container}/useKeyboardNavigation.js +8 -24
  47. package/esm/autocomplete/parts/menu-list/MenuList.js +19 -52
  48. package/esm/autocomplete/parts/menu-list/styled.js +9 -10
  49. package/esm/autocomplete/parts/menu-list/useItemRenderer.js +39 -45
  50. package/esm/autocomplete/react-desc-prop-types.js +5 -8
  51. package/esm/autocomplete/utils/listHelper.js +8 -16
  52. package/esm/checkbox/react-desc-prop-types.js +1 -0
  53. package/esm/combobox/ComboBox.js +1 -1
  54. package/esm/combobox/config/useComboBox.js +8 -2
  55. package/esm/combobox/config/useCorrectOptions.js +15 -43
  56. package/esm/combobox/index.js +1 -1
  57. package/esm/combobox/parts/A11yFocusedOption.js +3 -3
  58. package/esm/combobox/parts/controls/Controls.js +4 -2
  59. package/esm/combobox/parts/controls-input/ControlsInput.js +2 -0
  60. package/esm/combobox/parts/controls-input/styled.js +1 -1
  61. package/esm/combobox/parts/controls-input/useControlsInput.js +6 -6
  62. package/esm/combobox/parts/controls-input/useKeyboardNavigation.js +30 -26
  63. package/esm/combobox/parts/controls-input/useMaskedOnChange.js +7 -5
  64. package/esm/combobox/parts/dropdown-indicator/DropdownIndicator.js +2 -2
  65. package/esm/combobox/parts/header-list/useHeaderListHandlers.js +4 -4
  66. package/esm/combobox/parts/menu-list/MenuList.js +13 -7
  67. package/esm/combobox/parts/menu-list/styled.js +16 -5
  68. package/esm/combobox/parts/menu-list/useItemRenderer.js +8 -8
  69. package/esm/combobox/parts/menu-list/useMenuListSetFocusOption.js +6 -6
  70. package/esm/combobox/react-desc-prop-types.js +2 -1
  71. package/esm/combobox/utils/listHelper.js +38 -12
  72. package/esm/index.js +5 -5
  73. package/esm/mask-hook/hooks/index.js +4 -4
  74. package/esm/mask-hook/hooks/useNumberMask.js +5 -1
  75. package/esm/mask-hook/hooks/usePhoneMask.js +5 -1
  76. package/esm/mask-hook/hooks/useSSNMask.js +5 -1
  77. package/esm/mask-hook/hooks/{useZipCode.js → useZipCodeMask.js} +9 -5
  78. package/esm/mask-hook/index.js +4 -4
  79. package/package.json +24 -80
  80. package/types/autocomplete/Autocomplete.d.ts +4 -61
  81. package/types/autocomplete/AutocompleteCTX.d.ts +4 -3
  82. package/types/autocomplete/AutocompleteDataTestids.d.ts +1 -7
  83. package/types/autocomplete/config/useAutocomplete.d.ts +3 -2
  84. package/types/autocomplete/parts/container/Container.d.ts +1 -2
  85. package/types/autocomplete/parts/container/styled.d.ts +0 -1
  86. package/types/autocomplete/parts/{controls → container}/useKeyboardNavigation.d.ts +0 -0
  87. package/types/autocomplete/parts/menu-list/MenuList.d.ts +1 -2
  88. package/types/autocomplete/parts/menu-list/styled.d.ts +1 -4
  89. package/types/autocomplete/parts/menu-list/useItemRenderer.d.ts +2 -3
  90. package/types/autocomplete/react-desc-prop-types.d.ts +8 -18
  91. package/types/autocomplete/sharedTypes.d.ts +1 -3
  92. package/types/autocomplete/tests/general.test.d.ts +1 -0
  93. package/types/autocomplete/tests/utils.d.ts +5 -0
  94. package/types/autocomplete/utils/listHelper.d.ts +2 -2
  95. package/types/checkbox/ControlledCheckbox.d.ts +1 -1
  96. package/types/checkbox/react-desc-prop-types.d.ts +366 -1
  97. package/types/combobox/ComboBox.d.ts +2 -2
  98. package/types/combobox/parts/dropdown-indicator/DropdownIndicator.d.ts +1 -0
  99. package/types/combobox/react-desc-prop-types.d.ts +381 -3
  100. package/types/combobox/utils/listHelper.d.ts +4 -1
  101. package/types/large-text-input/DSControlledLargeTextInput.d.ts +1 -1
  102. package/types/large-text-input/react-desc-prop-types.d.ts +422 -1
  103. package/types/mask-hook/hooks/index.d.ts +1 -1
  104. package/types/mask-hook/hooks/useNumberMask.d.ts +2 -1
  105. package/types/mask-hook/hooks/usePhoneMask.d.ts +2 -1
  106. package/types/mask-hook/hooks/useSSNMask.d.ts +2 -1
  107. package/types/mask-hook/hooks/useZipCodeMask.d.ts +4 -0
  108. package/types/text-input/DSInputText.d.ts +1 -1
  109. package/types/text-input/config/useInputText.d.ts +110 -110
  110. package/cjs/autocomplete/config/constants.js +0 -14
  111. package/cjs/autocomplete/config/useGetPropsWithDefault.js +0 -11
  112. package/cjs/autocomplete/index.d.js +0 -2
  113. package/cjs/autocomplete/parts/a11y-messages/MultiAllyMessages.js +0 -33
  114. package/cjs/autocomplete/parts/a11y-messages/SingleAllyMessages.js +0 -28
  115. package/cjs/autocomplete/parts/a11y-messages/index.js +0 -11
  116. package/cjs/autocomplete/parts/a11y-messages/styled.js +0 -15
  117. package/cjs/autocomplete/parts/controls/Controls.js +0 -63
  118. package/cjs/autocomplete/parts/controls/index.js +0 -9
  119. package/cjs/autocomplete/parts/controls/styled.js +0 -44
  120. package/cjs/autocomplete/parts/controls/useControlsInput.js +0 -44
  121. package/cjs/autocomplete/parts/controls/useMaskedOnChange.js +0 -28
  122. package/cjs/autocomplete/parts/menu-list/useMenuList.js +0 -69
  123. package/cjs/autocomplete/propTypes.js +0 -25
  124. package/cjs/autocomplete/utils/hooks/useKeyboardNavigation.js +0 -97
  125. package/cjs/autocomplete/utils/hooks/useOnElementResize.js +0 -37
  126. package/esm/autocomplete/config/constants.js +0 -10
  127. package/esm/autocomplete/config/useGetPropsWithDefault.js +0 -7
  128. package/esm/autocomplete/index.d.js +0 -1
  129. package/esm/autocomplete/parts/a11y-messages/MultiAllyMessages.js +0 -25
  130. package/esm/autocomplete/parts/a11y-messages/SingleAllyMessages.js +0 -20
  131. package/esm/autocomplete/parts/a11y-messages/index.js +0 -2
  132. package/esm/autocomplete/parts/a11y-messages/styled.js +0 -7
  133. package/esm/autocomplete/parts/controls/Controls.js +0 -55
  134. package/esm/autocomplete/parts/controls/index.js +0 -1
  135. package/esm/autocomplete/parts/controls/styled.js +0 -32
  136. package/esm/autocomplete/parts/controls/useControlsInput.js +0 -40
  137. package/esm/autocomplete/parts/controls/useMaskedOnChange.js +0 -24
  138. package/esm/autocomplete/parts/menu-list/useMenuList.js +0 -65
  139. package/esm/autocomplete/propTypes.js +0 -21
  140. package/esm/autocomplete/utils/hooks/useKeyboardNavigation.js +0 -93
  141. package/esm/autocomplete/utils/hooks/useOnElementResize.js +0 -33
  142. package/types/autocomplete/config/constants.d.ts +0 -8
  143. package/types/autocomplete/config/useGetPropsWithDefault.d.ts +0 -2
  144. package/types/autocomplete/parts/a11y-messages/MultiAllyMessages.d.ts +0 -3
  145. package/types/autocomplete/parts/a11y-messages/SingleAllyMessages.d.ts +0 -3
  146. package/types/autocomplete/parts/a11y-messages/index.d.ts +0 -2
  147. package/types/autocomplete/parts/a11y-messages/styled.d.ts +0 -1
  148. package/types/autocomplete/parts/controls/Controls.d.ts +0 -3
  149. package/types/autocomplete/parts/controls/index.d.ts +0 -1
  150. package/types/autocomplete/parts/controls/styled.d.ts +0 -8
  151. package/types/autocomplete/parts/controls/useControlsInput.d.ts +0 -9
  152. package/types/autocomplete/parts/controls/useMaskedOnChange.d.ts +0 -2
  153. package/types/autocomplete/parts/menu-list/useMenuList.d.ts +0 -2
  154. package/types/autocomplete/propTypes.d.ts +0 -51
  155. package/types/autocomplete/utils/hooks/useKeyboardNavigation.d.ts +0 -4
  156. package/types/autocomplete/utils/hooks/useOnElementResize.d.ts +0 -3
  157. package/types/mask-hook/hooks/useZipCode.d.ts +0 -3
@@ -1,93 +0,0 @@
1
- import 'core-js/modules/esnext.async-iterator.find.js';
2
- import 'core-js/modules/esnext.iterator.constructor.js';
3
- import 'core-js/modules/esnext.iterator.find.js';
4
- import { useContext, useCallback } from 'react';
5
- import { AutocompleteContext } from '../../AutocompleteCTX.js';
6
- import { findInCircularList } from '../listHelper.js';
7
-
8
- const isOptionFocuseable = opt => !['section', 'separator'].includes(opt.type);
9
-
10
- const useKeyboardNavigation = () => {
11
- const {
12
- props: {
13
- onKeyDown,
14
- onChange,
15
- options,
16
- onFilter
17
- },
18
- setShowPopover,
19
- showPopover,
20
- focusOptionIdx,
21
- inputRef,
22
- setCurrentOption,
23
- scrollOptionIntoView
24
- } = useContext(AutocompleteContext);
25
- const currentItemIndex = options.findIndex(opt => opt.dsId === focusOptionIdx);
26
- const currentItem = options.find(item => item.dsId === focusOptionIdx);
27
- const selectOption = useCallback(() => {
28
- if (inputRef.current) inputRef.current.value = currentItem.label;
29
- if (onFilter) onFilter(currentItem.label);
30
- onChange(currentItem.label);
31
- setShowPopover(false);
32
- }, [currentItem, setShowPopover, onFilter, inputRef, onChange]);
33
- const onInputKeyDown = useCallback(e => {
34
- const targetElement = e.target; // =============================================================================
35
- // CUSTOM KEYS
36
- // =============================================================================
37
-
38
- onKeyDown(e, currentItem); // =============================================================================
39
- // ENTER AND SPACE KEY SELECT OPTIONS AND OPEN CLOSE THE POPOVER
40
- // =============================================================================
41
-
42
- if (e.keyCode === 32 && targetElement.value === '' || e.key === 'Enter') {
43
- if (showPopover) {
44
- e.preventDefault();
45
- selectOption();
46
- }
47
- } // =============================================================================
48
- // ARROWS UP AND DOWN
49
- // =============================================================================
50
-
51
-
52
- if (e.key === 'ArrowDown') {
53
- e.preventDefault();
54
-
55
- if (showPopover) {
56
- const nextItemIndex = findInCircularList(options, currentItemIndex, isOptionFocuseable);
57
- setCurrentOption(options[nextItemIndex].dsId);
58
- scrollOptionIntoView(options[nextItemIndex].dsId);
59
- } else {
60
- setShowPopover(true);
61
- }
62
- }
63
-
64
- if (e.key === 'ArrowUp') {
65
- e.preventDefault();
66
-
67
- if (showPopover) {
68
- const nextItemIndex = findInCircularList(options, currentItemIndex, isOptionFocuseable, -1);
69
- setCurrentOption(options[nextItemIndex].dsId);
70
- scrollOptionIntoView(options[nextItemIndex].dsId);
71
- } else {
72
- setShowPopover(true);
73
- setTimeout(() => {
74
- const nextItemIndex = findInCircularList(options, 0, isOptionFocuseable, -1);
75
- setCurrentOption(options[nextItemIndex].dsId);
76
- scrollOptionIntoView(options[nextItemIndex].dsId);
77
- });
78
- }
79
- } // =============================================================================
80
- // ESCAPE
81
- // =============================================================================
82
-
83
-
84
- if (e.key === 'Escape') {
85
- setShowPopover(false);
86
- }
87
- }, [scrollOptionIntoView, currentItemIndex, options, currentItem, showPopover, onKeyDown, setCurrentOption, setShowPopover, selectOption]);
88
- return {
89
- onInputKeyDown
90
- };
91
- };
92
-
93
- export { useKeyboardNavigation };
@@ -1,33 +0,0 @@
1
- import 'core-js/modules/web.dom-collections.iterator.js';
2
- import { useState, useRef, useEffect, useMemo } from 'react';
3
-
4
- // Taken and modified from https://stackoverflow.com/a/60218754
5
-
6
- const useOnElementResize = targetRef => {
7
- var _targetRef$current, _targetRef$current2;
8
-
9
- const [width, setWidth] = useState(targetRef.current ? (_targetRef$current = targetRef.current) === null || _targetRef$current === void 0 ? void 0 : _targetRef$current.offsetWidth : 0);
10
- const [height, setHeight] = useState(targetRef.current ? (_targetRef$current2 = targetRef.current) === null || _targetRef$current2 === void 0 ? void 0 : _targetRef$current2.offsetWidth : 0);
11
- const observer = useRef(null);
12
- useEffect(() => {
13
- function outputsize() {
14
- if (targetRef.current) {
15
- setWidth(targetRef.current.offsetWidth);
16
- setHeight(targetRef.current.offsetHeight);
17
- }
18
- }
19
-
20
- observer.current = new ResizeObserver(outputsize).observe(targetRef.current);
21
- return () => {
22
- var _observer$current;
23
-
24
- (_observer$current = observer.current) === null || _observer$current === void 0 ? void 0 : _observer$current.disconnect();
25
- };
26
- }, [targetRef]);
27
- return useMemo(() => ({
28
- width,
29
- height
30
- }), [width, height]);
31
- };
32
-
33
- export { useOnElementResize };
@@ -1,8 +0,0 @@
1
- export declare const DATA_TESTID: {
2
- COMBOBOX_MENU_LIST: string;
3
- COMBOBOX_CLEAR_BTN: string;
4
- COMBOBOX_ALL_BTN: string;
5
- COMBOBOX_DROPDOWN_BTN: string;
6
- COMBOBOX_OPTION: string;
7
- COMBOBOX: string;
8
- };
@@ -1,2 +0,0 @@
1
- import { AutocompletePropsT } from '../index.d';
2
- export declare const useGetAutocompleteWithDefaultsProps: (props: Partial<AutocompletePropsT>) => AutocompletePropsT;
@@ -1,3 +0,0 @@
1
- /// <reference types="react" />
2
- declare const MultiAllyMessages: () => JSX.Element;
3
- export { MultiAllyMessages };
@@ -1,3 +0,0 @@
1
- /// <reference types="react" />
2
- declare const SingleAllyMessages: () => JSX.Element;
3
- export { SingleAllyMessages };
@@ -1,2 +0,0 @@
1
- export { MultiAllyMessages } from './MultiAllyMessages';
2
- export { SingleAllyMessages } from './SingleAllyMessages';
@@ -1 +0,0 @@
1
- export declare const StyledA11ySelectedValues: import("styled-components").StyledComponent<"span", import("styled-components").DefaultTheme, {}, never>;
@@ -1,3 +0,0 @@
1
- /// <reference types="react" />
2
- declare const Controls: () => JSX.Element;
3
- export { Controls };
@@ -1 +0,0 @@
1
- export { Controls } from './Controls';
@@ -1,8 +0,0 @@
1
- /// <reference types="react" />
2
- export declare const StyledControlsWrapper: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("@elliemae/ds-grid/types/react-desc-prop-types").DSGridT.Props & import("react").RefAttributes<HTMLDivElement>>, import("styled-components").DefaultTheme, {
3
- minWidth: number;
4
- hasError: boolean;
5
- }, never>;
6
- export declare const StyledInput: import("styled-components").StyledComponent<"input", import("styled-components").DefaultTheme, {}, never>;
7
- export declare const StyledInputPlaceHolder: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
8
- export declare const StyledInputWrapper: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
@@ -1,9 +0,0 @@
1
- import React from 'react';
2
- interface UseControlsInputT {
3
- handleOnBlur: () => void;
4
- handleOnChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
5
- handleOnInputMouseDown: (e: React.MouseEvent) => void;
6
- showPlaceholder: string | null | undefined;
7
- }
8
- declare const useControlsInput: () => UseControlsInputT;
9
- export { useControlsInput };
@@ -1,2 +0,0 @@
1
- declare const useMaskedOnChange: () => any;
2
- export { useMaskedOnChange };
@@ -1,2 +0,0 @@
1
- declare const useMenuList: () => void;
2
- export { useMenuList };
@@ -1,51 +0,0 @@
1
- /// <reference path="../../../../../shared/typings/react-desc.d.ts" />
2
- export declare const propTypes: {
3
- placeholder: {
4
- deprecated: import("react-desc").PropTypesDescValidator;
5
- };
6
- options: {
7
- deprecated: import("react-desc").PropTypesDescValidator;
8
- };
9
- selectedValues: {
10
- defaultValue(arg: import("react-desc").ReactDescPossibleDefaultValues): {
11
- deprecated: import("react-desc").PropTypesDescValidator;
12
- };
13
- isRequired: import("react-desc").PropTypesDescValue;
14
- };
15
- autoFocus: {
16
- deprecated: import("react-desc").PropTypesDescValidator;
17
- };
18
- hasError: {
19
- deprecated: import("react-desc").PropTypesDescValidator;
20
- };
21
- onChange: {
22
- deprecated: import("react-desc").PropTypesDescValidator;
23
- };
24
- onSelectAll: {
25
- deprecated: import("react-desc").PropTypesDescValidator;
26
- };
27
- onFilter: {
28
- deprecated: import("react-desc").PropTypesDescValidator;
29
- };
30
- onCreate: {
31
- deprecated: import("react-desc").PropTypesDescValidator;
32
- };
33
- onClearAll: {
34
- deprecated: import("react-desc").PropTypesDescValidator;
35
- };
36
- onMenuOpen: {
37
- deprecated: import("react-desc").PropTypesDescValidator;
38
- };
39
- inputMinWidth: {
40
- deprecated: import("react-desc").PropTypesDescValidator;
41
- };
42
- menuMinWidth: {
43
- deprecated: import("react-desc").PropTypesDescValidator;
44
- };
45
- menuMaxHeight: {
46
- deprecated: import("react-desc").PropTypesDescValidator;
47
- };
48
- withToggle: {
49
- deprecated: import("react-desc").PropTypesDescValidator;
50
- };
51
- };
@@ -1,4 +0,0 @@
1
- /// <reference types="react" />
2
- export declare const useKeyboardNavigation: () => {
3
- onInputKeyDown: import("react").KeyboardEventHandler<Element>;
4
- };
@@ -1,3 +0,0 @@
1
- import React from 'react';
2
- declare const useOnElementResize: (targetRef: React.RefObject<HTMLDivElement>) => Record<'width' | 'height', number>;
3
- export { useOnElementResize };
@@ -1,3 +0,0 @@
1
- import { DSMaskT } from '../react-desc-prop-types';
2
- export declare const useZipCode: DSMaskT.Hook;
3
- export declare const UseZipCodeMaskWithSchema: any;