@workday/canvas-kit-react 10.0.0-alpha.540-next.0 → 10.0.0-alpha.546-next.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.
- package/collection/index.ts +1 -0
- package/collection/lib/useBaseListModel.tsx +3 -3
- package/collection/lib/useListItemRegister.tsx +1 -1
- package/collection/lib/useListRenderItem.tsx +2 -2
- package/combobox/index.ts +11 -4
- package/combobox/lib/Combobox.tsx +1 -1
- package/combobox/lib/ComboboxCard.tsx +1 -1
- package/combobox/lib/ComboboxInput.tsx +2 -90
- package/combobox/lib/ComboboxMenu.tsx +4 -3
- package/combobox/lib/ComboboxMenuItem.tsx +9 -8
- package/combobox/lib/ComboboxMenuList.tsx +1 -1
- package/combobox/lib/ComboboxPopper.tsx +20 -0
- package/combobox/lib/hooks/index.ts +9 -0
- package/combobox/lib/hooks/useComboboxInput.ts +88 -0
- package/combobox/lib/hooks/useComboboxKeyboardTypeAhead.ts +127 -0
- package/combobox/lib/hooks/useComboboxListKeyboardHandler.ts +23 -0
- package/combobox/lib/{useComboboxModel.tsx → hooks/useComboboxModel.tsx} +6 -2
- package/combobox/lib/hooks/useComboboxMoveCursorToSelected.tsx +27 -0
- package/combobox/lib/hooks/useComboboxResetCursorToSelected.tsx +18 -0
- package/combobox/lib/hooks/useSetPopupWidth.ts +16 -0
- package/common/lib/utils/components.ts +284 -274
- package/common/lib/utils/models.ts +67 -84
- package/dist/commonjs/collection/index.d.ts +1 -0
- package/dist/commonjs/collection/index.d.ts.map +1 -1
- package/dist/commonjs/collection/index.js +3 -1
- package/dist/commonjs/collection/lib/useBaseListModel.d.ts +1 -1
- package/dist/commonjs/collection/lib/useBaseListModel.d.ts.map +1 -1
- package/dist/commonjs/collection/lib/useBaseListModel.js +2 -2
- package/dist/commonjs/collection/lib/useListItemRegister.js +2 -2
- package/dist/commonjs/collection/lib/useListRenderItem.js +2 -2
- package/dist/commonjs/combobox/index.d.ts +1 -4
- package/dist/commonjs/combobox/index.d.ts.map +1 -1
- package/dist/commonjs/combobox/index.js +11 -9
- package/dist/commonjs/combobox/lib/Combobox.d.ts +9 -3
- package/dist/commonjs/combobox/lib/Combobox.d.ts.map +1 -1
- package/dist/commonjs/combobox/lib/Combobox.js +2 -2
- package/dist/commonjs/combobox/lib/ComboboxCard.js +3 -3
- package/dist/commonjs/combobox/lib/ComboboxInput.d.ts +1 -106
- package/dist/commonjs/combobox/lib/ComboboxInput.d.ts.map +1 -1
- package/dist/commonjs/combobox/lib/ComboboxInput.js +4 -71
- package/dist/commonjs/combobox/lib/ComboboxMenu.d.ts +9 -3
- package/dist/commonjs/combobox/lib/ComboboxMenu.d.ts.map +1 -1
- package/dist/commonjs/combobox/lib/ComboboxMenu.js +5 -4
- package/dist/commonjs/combobox/lib/ComboboxMenuItem.d.ts +7 -1
- package/dist/commonjs/combobox/lib/ComboboxMenuItem.d.ts.map +1 -1
- package/dist/commonjs/combobox/lib/ComboboxMenuItem.js +7 -7
- package/dist/commonjs/combobox/lib/ComboboxMenuList.js +2 -2
- package/dist/commonjs/combobox/lib/ComboboxPopper.d.ts +97 -0
- package/dist/commonjs/combobox/lib/ComboboxPopper.d.ts.map +1 -0
- package/dist/commonjs/{select/lib/SelectOption.js → combobox/lib/ComboboxPopper.js} +12 -8
- package/dist/commonjs/combobox/lib/hooks/index.d.ts +10 -0
- package/dist/commonjs/combobox/lib/hooks/index.d.ts.map +1 -0
- package/dist/commonjs/combobox/lib/hooks/index.js +21 -0
- package/dist/commonjs/combobox/lib/hooks/useComboboxInput.d.ts +107 -0
- package/dist/commonjs/combobox/lib/hooks/useComboboxInput.d.ts.map +1 -0
- package/dist/commonjs/combobox/lib/hooks/useComboboxInput.js +74 -0
- package/dist/{es6/combobox/lib → commonjs/combobox/lib/hooks}/useComboboxInputOpenWithArrowKeys.d.ts +6 -6
- package/dist/commonjs/combobox/lib/hooks/useComboboxInputOpenWithArrowKeys.d.ts.map +1 -0
- package/dist/commonjs/combobox/lib/hooks/useComboboxKeyboardTypeAhead.d.ts +101 -0
- package/dist/commonjs/combobox/lib/hooks/useComboboxKeyboardTypeAhead.d.ts.map +1 -0
- package/dist/commonjs/combobox/lib/hooks/useComboboxKeyboardTypeAhead.js +109 -0
- package/dist/commonjs/combobox/lib/hooks/useComboboxListKeyboardHandler.d.ts +84 -0
- package/dist/commonjs/combobox/lib/hooks/useComboboxListKeyboardHandler.d.ts.map +1 -0
- package/dist/commonjs/combobox/lib/hooks/useComboboxListKeyboardHandler.js +22 -0
- package/dist/commonjs/combobox/lib/hooks/useComboboxLoader.d.ts.map +1 -0
- package/dist/commonjs/combobox/lib/{useComboboxModel.d.ts → hooks/useComboboxModel.d.ts} +196 -196
- package/dist/commonjs/combobox/lib/hooks/useComboboxModel.d.ts.map +1 -0
- package/dist/commonjs/combobox/lib/{useComboboxModel.js → hooks/useComboboxModel.js} +3 -2
- package/dist/commonjs/combobox/lib/hooks/useComboboxMoveCursorToSelected.d.ts +82 -0
- package/dist/commonjs/combobox/lib/hooks/useComboboxMoveCursorToSelected.d.ts.map +1 -0
- package/dist/commonjs/combobox/lib/hooks/useComboboxMoveCursorToSelected.js +33 -0
- package/dist/commonjs/combobox/lib/hooks/useComboboxResetCursorToSelected.d.ts +82 -0
- package/dist/commonjs/combobox/lib/hooks/useComboboxResetCursorToSelected.d.ts.map +1 -0
- package/dist/commonjs/combobox/lib/hooks/useComboboxResetCursorToSelected.js +23 -0
- package/dist/commonjs/combobox/lib/hooks/useSetPopupWidth.d.ts +82 -0
- package/dist/commonjs/combobox/lib/hooks/useSetPopupWidth.d.ts.map +1 -0
- package/dist/commonjs/combobox/lib/hooks/useSetPopupWidth.js +22 -0
- package/dist/commonjs/common/lib/utils/components.d.ts.map +1 -1
- package/dist/commonjs/common/lib/utils/models.d.ts +4 -4
- package/dist/commonjs/common/lib/utils/models.d.ts.map +1 -1
- package/dist/commonjs/common/lib/utils/models.js +7 -8
- package/dist/commonjs/form-field/lib/FormField.d.ts.map +1 -1
- package/dist/commonjs/form-field/lib/FormField.js +3 -2
- package/dist/commonjs/menu/lib/MenuPopper.d.ts.map +1 -1
- package/dist/commonjs/menu/lib/MenuPopper.js +10 -1
- package/dist/commonjs/popup/lib/PopupPopper.d.ts.map +1 -1
- package/dist/commonjs/popup/lib/PopupPopper.js +10 -1
- package/dist/commonjs/select/index.d.ts +1 -1
- package/dist/commonjs/select/index.d.ts.map +1 -1
- package/dist/commonjs/select/index.js +1 -1
- package/dist/commonjs/select/lib/Select.d.ts +2634 -18
- package/dist/commonjs/select/lib/Select.d.ts.map +1 -1
- package/dist/commonjs/select/lib/Select.js +141 -84
- package/dist/commonjs/select/lib/hooks/index.d.ts +4 -0
- package/dist/commonjs/select/lib/hooks/index.d.ts.map +1 -0
- package/dist/commonjs/select/lib/hooks/index.js +15 -0
- package/dist/commonjs/select/lib/hooks/useSelectCard.d.ts +83 -0
- package/dist/commonjs/select/lib/hooks/useSelectCard.d.ts.map +1 -0
- package/dist/commonjs/select/lib/hooks/useSelectCard.js +13 -0
- package/dist/commonjs/select/lib/hooks/useSelectInput.d.ts +112 -0
- package/dist/commonjs/select/lib/hooks/useSelectInput.d.ts.map +1 -0
- package/dist/commonjs/select/lib/hooks/useSelectInput.js +49 -0
- package/dist/commonjs/select/lib/hooks/useSelectModel.d.ts +1779 -0
- package/dist/commonjs/select/lib/hooks/useSelectModel.d.ts.map +1 -0
- package/dist/commonjs/select/lib/hooks/useSelectModel.js +32 -0
- package/dist/es6/collection/index.d.ts +1 -0
- package/dist/es6/collection/index.d.ts.map +1 -1
- package/dist/es6/collection/index.js +1 -0
- package/dist/es6/collection/lib/useBaseListModel.d.ts +1 -1
- package/dist/es6/collection/lib/useBaseListModel.d.ts.map +1 -1
- package/dist/es6/collection/lib/useBaseListModel.js +2 -2
- package/dist/es6/collection/lib/useListItemRegister.js +2 -2
- package/dist/es6/collection/lib/useListRenderItem.js +2 -2
- package/dist/es6/combobox/index.d.ts +1 -4
- package/dist/es6/combobox/index.d.ts.map +1 -1
- package/dist/es6/combobox/index.js +1 -4
- package/dist/es6/combobox/lib/Combobox.d.ts +9 -3
- package/dist/es6/combobox/lib/Combobox.d.ts.map +1 -1
- package/dist/es6/combobox/lib/Combobox.js +1 -1
- package/dist/es6/combobox/lib/ComboboxCard.js +1 -1
- package/dist/es6/combobox/lib/ComboboxInput.d.ts +1 -106
- package/dist/es6/combobox/lib/ComboboxInput.d.ts.map +1 -1
- package/dist/es6/combobox/lib/ComboboxInput.js +2 -69
- package/dist/es6/combobox/lib/ComboboxMenu.d.ts +9 -3
- package/dist/es6/combobox/lib/ComboboxMenu.d.ts.map +1 -1
- package/dist/es6/combobox/lib/ComboboxMenu.js +4 -3
- package/dist/es6/combobox/lib/ComboboxMenuItem.d.ts +7 -1
- package/dist/es6/combobox/lib/ComboboxMenuItem.d.ts.map +1 -1
- package/dist/es6/combobox/lib/ComboboxMenuItem.js +7 -7
- package/dist/es6/combobox/lib/ComboboxMenuList.js +1 -1
- package/dist/es6/combobox/lib/ComboboxPopper.d.ts +97 -0
- package/dist/es6/combobox/lib/ComboboxPopper.d.ts.map +1 -0
- package/dist/es6/combobox/lib/ComboboxPopper.js +12 -0
- package/dist/es6/combobox/lib/hooks/index.d.ts +10 -0
- package/dist/es6/combobox/lib/hooks/index.d.ts.map +1 -0
- package/dist/es6/combobox/lib/hooks/index.js +9 -0
- package/dist/es6/combobox/lib/hooks/useComboboxInput.d.ts +107 -0
- package/dist/es6/combobox/lib/hooks/useComboboxInput.d.ts.map +1 -0
- package/dist/es6/combobox/lib/hooks/useComboboxInput.js +68 -0
- package/dist/{commonjs/combobox/lib → es6/combobox/lib/hooks}/useComboboxInputOpenWithArrowKeys.d.ts +6 -6
- package/dist/es6/combobox/lib/hooks/useComboboxInputOpenWithArrowKeys.d.ts.map +1 -0
- package/dist/es6/combobox/lib/hooks/useComboboxKeyboardTypeAhead.d.ts +101 -0
- package/dist/es6/combobox/lib/hooks/useComboboxKeyboardTypeAhead.d.ts.map +1 -0
- package/dist/es6/combobox/lib/hooks/useComboboxKeyboardTypeAhead.js +103 -0
- package/dist/es6/combobox/lib/hooks/useComboboxListKeyboardHandler.d.ts +84 -0
- package/dist/es6/combobox/lib/hooks/useComboboxListKeyboardHandler.d.ts.map +1 -0
- package/dist/es6/combobox/lib/hooks/useComboboxListKeyboardHandler.js +19 -0
- package/dist/es6/combobox/lib/hooks/useComboboxLoader.d.ts.map +1 -0
- package/dist/es6/combobox/lib/{useComboboxModel.d.ts → hooks/useComboboxModel.d.ts} +196 -196
- package/dist/es6/combobox/lib/hooks/useComboboxModel.d.ts.map +1 -0
- package/dist/es6/combobox/lib/{useComboboxModel.js → hooks/useComboboxModel.js} +3 -2
- package/dist/es6/combobox/lib/hooks/useComboboxMoveCursorToSelected.d.ts +82 -0
- package/dist/es6/combobox/lib/hooks/useComboboxMoveCursorToSelected.d.ts.map +1 -0
- package/dist/es6/combobox/lib/hooks/useComboboxMoveCursorToSelected.js +27 -0
- package/dist/es6/combobox/lib/hooks/useComboboxResetCursorToSelected.d.ts +82 -0
- package/dist/es6/combobox/lib/hooks/useComboboxResetCursorToSelected.d.ts.map +1 -0
- package/dist/es6/combobox/lib/hooks/useComboboxResetCursorToSelected.js +17 -0
- package/dist/es6/combobox/lib/hooks/useSetPopupWidth.d.ts +82 -0
- package/dist/es6/combobox/lib/hooks/useSetPopupWidth.d.ts.map +1 -0
- package/dist/es6/combobox/lib/hooks/useSetPopupWidth.js +16 -0
- package/dist/es6/common/lib/utils/components.d.ts.map +1 -1
- package/dist/es6/common/lib/utils/models.d.ts +4 -4
- package/dist/es6/common/lib/utils/models.d.ts.map +1 -1
- package/dist/es6/common/lib/utils/models.js +7 -8
- package/dist/es6/form-field/lib/FormField.d.ts.map +1 -1
- package/dist/es6/form-field/lib/FormField.js +3 -2
- package/dist/es6/menu/lib/MenuPopper.d.ts.map +1 -1
- package/dist/es6/menu/lib/MenuPopper.js +10 -1
- package/dist/es6/popup/lib/PopupPopper.d.ts.map +1 -1
- package/dist/es6/popup/lib/PopupPopper.js +10 -1
- package/dist/es6/select/index.d.ts +1 -1
- package/dist/es6/select/index.d.ts.map +1 -1
- package/dist/es6/select/index.js +1 -1
- package/dist/es6/select/lib/Select.d.ts +2634 -18
- package/dist/es6/select/lib/Select.d.ts.map +1 -1
- package/dist/es6/select/lib/Select.js +139 -66
- package/dist/es6/select/lib/hooks/index.d.ts +4 -0
- package/dist/es6/select/lib/hooks/index.d.ts.map +1 -0
- package/dist/es6/select/lib/hooks/index.js +3 -0
- package/dist/es6/select/lib/hooks/useSelectCard.d.ts +83 -0
- package/dist/es6/select/lib/hooks/useSelectCard.d.ts.map +1 -0
- package/dist/es6/select/lib/hooks/useSelectCard.js +10 -0
- package/dist/es6/select/lib/hooks/useSelectInput.d.ts +112 -0
- package/dist/es6/select/lib/hooks/useSelectInput.d.ts.map +1 -0
- package/dist/es6/select/lib/hooks/useSelectInput.js +46 -0
- package/dist/es6/select/lib/hooks/useSelectModel.d.ts +1779 -0
- package/dist/es6/select/lib/hooks/useSelectModel.d.ts.map +1 -0
- package/dist/es6/select/lib/hooks/useSelectModel.js +29 -0
- package/form-field/lib/FormField.tsx +8 -2
- package/menu/lib/MenuPopper.tsx +14 -1
- package/package.json +4 -4
- package/popup/lib/Popper.tsx +1 -1
- package/popup/lib/PopupPopper.tsx +17 -1
- package/select/index.ts +1 -1
- package/select/lib/Select.tsx +175 -111
- package/select/lib/hooks/index.ts +3 -0
- package/select/lib/hooks/useSelectCard.ts +11 -0
- package/select/lib/hooks/useSelectInput.ts +74 -0
- package/select/lib/hooks/useSelectModel.tsx +30 -0
- package/dist/commonjs/combobox/lib/useComboboxInputOpenWithArrowKeys.d.ts.map +0 -1
- package/dist/commonjs/combobox/lib/useComboboxLoader.d.ts.map +0 -1
- package/dist/commonjs/combobox/lib/useComboboxModel.d.ts.map +0 -1
- package/dist/commonjs/select/lib/SelectOption.d.ts +0 -20
- package/dist/commonjs/select/lib/SelectOption.d.ts.map +0 -1
- package/dist/es6/combobox/lib/useComboboxInputOpenWithArrowKeys.d.ts.map +0 -1
- package/dist/es6/combobox/lib/useComboboxLoader.d.ts.map +0 -1
- package/dist/es6/combobox/lib/useComboboxModel.d.ts.map +0 -1
- package/dist/es6/select/lib/SelectOption.d.ts +0 -20
- package/dist/es6/select/lib/SelectOption.d.ts.map +0 -1
- package/dist/es6/select/lib/SelectOption.js +0 -7
- package/select/lib/SelectOption.tsx +0 -33
- /package/combobox/lib/{useComboboxInputOpenWithArrowKeys.ts → hooks/useComboboxInputOpenWithArrowKeys.ts} +0 -0
- /package/combobox/lib/{useComboboxLoader.ts → hooks/useComboboxLoader.ts} +0 -0
- /package/dist/commonjs/combobox/lib/{useComboboxInputOpenWithArrowKeys.js → hooks/useComboboxInputOpenWithArrowKeys.js} +0 -0
- /package/dist/commonjs/combobox/lib/{useComboboxLoader.d.ts → hooks/useComboboxLoader.d.ts} +0 -0
- /package/dist/commonjs/combobox/lib/{useComboboxLoader.js → hooks/useComboboxLoader.js} +0 -0
- /package/dist/es6/combobox/lib/{useComboboxInputOpenWithArrowKeys.js → hooks/useComboboxInputOpenWithArrowKeys.js} +0 -0
- /package/dist/es6/combobox/lib/{useComboboxLoader.d.ts → hooks/useComboboxLoader.d.ts} +0 -0
- /package/dist/es6/combobox/lib/{useComboboxLoader.js → hooks/useComboboxLoader.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../select/lib/Select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../select/lib/Select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAEL,YAAY,EAEZ,SAAS,EACV,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAC,QAAQ,EAAC,MAAM,oCAAoC,CAAC;AAE5D,OAAO,EAAa,SAAS,EAAC,MAAM,sCAAsC,CAAC;AAK3E,OAAO,EAAC,gBAAgB,EAAC,MAAM,8BAA8B,CAAC;AAE9D,MAAM,WAAW,gBAAiB,SAAQ,YAAY,CAAC,OAAO,SAAS,CAAC;IACtE;;;;OAIG;IACH,cAAc,CAAC,EAAE,gBAAgB,CAAC;CACnC;AACD,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwBvB,CAAC;AAEF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAWrB,CAAC;AAEH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASrB,CAAC;AAEH,MAAM,WAAW,WAAY,SAAQ,SAAS,EAAE,YAAY,CAAC,OAAO,QAAQ,CAAC;CAAG;AAChF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIf;;;;;;;;;;;;OAYG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;;;;;;;;;;;;OAaG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;;;;;;;;;;;;;;;;OAiBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;;;;;;;;;;;;;;;;OAiBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;;;;;;;;;;;;;;;;OAiBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CASL,CAAC"}
|
|
@@ -1,74 +1,147 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { createSubcomponent, createContainer, } from '@workday/canvas-kit-react/common';
|
|
3
|
+
import { Combobox } from '@workday/canvas-kit-react/combobox';
|
|
4
|
+
import { InputGroup, TextInput } from '@workday/canvas-kit-react/text-input';
|
|
5
5
|
import { SystemIcon } from '@workday/canvas-kit-react/icon';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
WebkitAppearance: 'none',
|
|
20
|
-
'&::placeholder': {
|
|
21
|
-
color: inputColors.placeholder,
|
|
22
|
-
},
|
|
23
|
-
'&:hover': {
|
|
24
|
-
borderColor: inputColors.hoverBorder,
|
|
25
|
-
},
|
|
26
|
-
'&:focus:not([disabled])': {
|
|
27
|
-
borderColor: inputColors.focusBorder,
|
|
28
|
-
boxShadow: `inset 0 0 0 1px ${inputColors.focusBorder}`,
|
|
29
|
-
outline: 'none',
|
|
30
|
-
},
|
|
31
|
-
'&:disabled': {
|
|
32
|
-
backgroundColor: inputColors.disabled.background,
|
|
33
|
-
borderColor: inputColors.disabled.border,
|
|
34
|
-
color: inputColors.disabled.text,
|
|
35
|
-
'&::placeholder': {
|
|
36
|
-
color: inputColors.disabled.text,
|
|
37
|
-
},
|
|
38
|
-
},
|
|
39
|
-
}, ({ error }) => ({
|
|
40
|
-
...errorRing(error),
|
|
41
|
-
}), ({ grow }) => grow && {
|
|
42
|
-
width: '100%',
|
|
6
|
+
import { caretDownSmallIcon } from '@workday/canvas-system-icons-web';
|
|
7
|
+
import { useSelectModel, useSelectCard } from './hooks';
|
|
8
|
+
import { useSelectInput } from './hooks/useSelectInput';
|
|
9
|
+
export const SelectInput = createSubcomponent(TextInput)({
|
|
10
|
+
modelHook: useSelectModel,
|
|
11
|
+
elemPropsHook: useSelectInput,
|
|
12
|
+
})(({ placeholder = 'Choose an option', inputStartIcon, ...elemProps }, Element, model) => {
|
|
13
|
+
return (React.createElement(InputGroup, null,
|
|
14
|
+
inputStartIcon && model.state.selectedIds.length > 0 && (React.createElement(InputGroup.InnerStart, { pointerEvents: "none" },
|
|
15
|
+
React.createElement(SystemIcon, { icon: inputStartIcon }))),
|
|
16
|
+
React.createElement(InputGroup.Input, Object.assign({ as: Element, placeholder: placeholder, style: { caretColor: 'transparent', cursor: 'default' } }, elemProps)),
|
|
17
|
+
React.createElement(InputGroup.InnerEnd, { position: "absolute", pointerEvents: "none" },
|
|
18
|
+
React.createElement(SystemIcon, { icon: caretDownSmallIcon }))));
|
|
43
19
|
});
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
padding: space.xxxs,
|
|
49
|
-
pointerEvents: 'none',
|
|
50
|
-
'& path': {
|
|
51
|
-
transition: '100ms fill',
|
|
20
|
+
export const SelectItem = createSubcomponent('li')({
|
|
21
|
+
modelHook: useSelectModel,
|
|
22
|
+
subComponents: {
|
|
23
|
+
Icon: Combobox.Menu.Item.Icon,
|
|
52
24
|
},
|
|
25
|
+
})(({ children, ...elemProps }, Element, _model) => {
|
|
26
|
+
return (React.createElement(Combobox.Menu.Item, Object.assign({ role: "option", as: Element }, elemProps), children));
|
|
53
27
|
});
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
28
|
+
export const SelectCard = createSubcomponent('div')({
|
|
29
|
+
modelHook: useSelectModel,
|
|
30
|
+
elemPropsHook: useSelectCard,
|
|
31
|
+
})(({ children, ...elemProps }, Element) => {
|
|
32
|
+
return (React.createElement(Combobox.Menu.Card, Object.assign({ maxHeight: 300, as: Element }, elemProps), children));
|
|
33
|
+
});
|
|
34
|
+
/**
|
|
35
|
+
* Use `Select` to allow users to choose an option from a list or type characters to select a matching option.
|
|
36
|
+
*
|
|
37
|
+
* **Note: `Select` must wrap `FormField` and `FormField` must wrap all `Select` children to ensure proper accessibility. **
|
|
38
|
+
*
|
|
39
|
+
* ```tsx
|
|
40
|
+
* <Select items={options}>
|
|
41
|
+
* <FormField label="Your Label">
|
|
42
|
+
* <Select.Input onChange={e => handleChange(e)} id="contact-select" />
|
|
43
|
+
* <Select.Popper>
|
|
44
|
+
* <Select.Card>
|
|
45
|
+
* <Select.List>
|
|
46
|
+
* {item => <Select.Item>{item.id}</Select.Item>}
|
|
47
|
+
* </Select.List>
|
|
48
|
+
* </Select.Card>
|
|
49
|
+
* </Select.Popper>
|
|
50
|
+
* </FormField>
|
|
51
|
+
* </Select>
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
export const Select = createContainer()({
|
|
67
55
|
displayName: 'Select',
|
|
68
|
-
|
|
69
|
-
React.createElement(StyledSelect, Object.assign({ as: Element, disabled: disabled, grow: grow, ref: ref }, elemProps), children),
|
|
70
|
-
React.createElement(SelectDropdownIcon, { icon: caretDownSmallIcon, color: disabled ? colors.licorice100 : colors.licorice200, colorHover: disabled ? colors.licorice100 : colors.licorice500 }))),
|
|
56
|
+
modelHook: useSelectModel,
|
|
71
57
|
subComponents: {
|
|
72
|
-
|
|
58
|
+
/**
|
|
59
|
+
* `Select.Input` renders a {@link ComboboxMenu Combobox.Input} that handles keyboard navigation and interaction defined by [WAI](https://www.w3.org/WAI/ARIA/apg/patterns/combobox/examples/combobox-select-only/).
|
|
60
|
+
* This component can either be [controlled or uncontrolled](https://react.dev/learn/sharing-state-between-components#controlled-and-uncontrolled-components).
|
|
61
|
+
*
|
|
62
|
+
* ```tsx
|
|
63
|
+
* <Select items={options}>
|
|
64
|
+
* <FormField label="Contact">
|
|
65
|
+
* <Select.Input onChange={(event) => handleChange(event)}>
|
|
66
|
+
* ...
|
|
67
|
+
* </FormField>
|
|
68
|
+
* </Select>
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
Input: SelectInput,
|
|
72
|
+
/**
|
|
73
|
+
* `Select.Popper` renders a {@link ComboboxPopper Combobox.Menu.Popper}. You have access to all `Popper` props.
|
|
74
|
+
*
|
|
75
|
+
* ```tsx
|
|
76
|
+
* <Select item={options}>
|
|
77
|
+
* <FormField label="Your Label">
|
|
78
|
+
* <Select.Input onChange={(event) => handleChange(event)}>
|
|
79
|
+
* <Select.Popper>
|
|
80
|
+
* ...
|
|
81
|
+
* </Select.Popper>
|
|
82
|
+
* </FormField>
|
|
83
|
+
* </Select>
|
|
84
|
+
* ```
|
|
85
|
+
*/
|
|
86
|
+
Popper: Combobox.Menu.Popper,
|
|
87
|
+
/**
|
|
88
|
+
* `Select.Card` renders a {@link ComboboxCard Combobox.Card}. You have access to all `Card` props.
|
|
89
|
+
*
|
|
90
|
+
* **Note: The card will be the width of its corresponding `Select.Input`**.
|
|
91
|
+
*
|
|
92
|
+
* ```tsx
|
|
93
|
+
* <Select item={options}>
|
|
94
|
+
* <FormField label="Your Label">
|
|
95
|
+
* <Select.Input onChange={(event) => handleChange(event)}>
|
|
96
|
+
* <Select.Popper>
|
|
97
|
+
* <Select.Card>
|
|
98
|
+
* ...
|
|
99
|
+
* </Select.Card>
|
|
100
|
+
* </Select.Popper>
|
|
101
|
+
* </FormField>
|
|
102
|
+
* </Select>
|
|
103
|
+
* ```
|
|
104
|
+
*/
|
|
105
|
+
Card: SelectCard,
|
|
106
|
+
/**
|
|
107
|
+
* `Select.List` renders a {@link ComboboxMenuList Combobox.Menu.List}. You have access to all `ListBox` props.
|
|
108
|
+
*
|
|
109
|
+
* ```tsx
|
|
110
|
+
* <Select item={options}>
|
|
111
|
+
* <FormField label="Your Label">
|
|
112
|
+
* <Select.Input onChange={(event) => handleChange(event)}>
|
|
113
|
+
* <Select.Popper>
|
|
114
|
+
* <Select.Card>
|
|
115
|
+
* <Select.List>
|
|
116
|
+
* {(item) => <Select.Item>{item}</Select.Item>}
|
|
117
|
+
* </Select.List
|
|
118
|
+
* </Select.Card>
|
|
119
|
+
* </Select.Popper>
|
|
120
|
+
* </FormField>
|
|
121
|
+
* </Select>
|
|
122
|
+
* ```
|
|
123
|
+
*/
|
|
124
|
+
List: Combobox.Menu.List,
|
|
125
|
+
/**
|
|
126
|
+
* `Select.Item` renders a {@link ComboboxMenuItem Combobox.Menu.Item} with aria role of `option`. You can optionally render a `Icon`.
|
|
127
|
+
*
|
|
128
|
+
* ```tsx
|
|
129
|
+
* <Select item={options}>
|
|
130
|
+
* <FormField label="Your Label">
|
|
131
|
+
* <Select.Input onChange={(event) => handleChange(event)}>
|
|
132
|
+
* <Select.Popper>
|
|
133
|
+
* <Select.Card>
|
|
134
|
+
* <Select.List>
|
|
135
|
+
* {(item) => <Select.Item><Select.Item.Icon icon={icon} />{item}</Select.Item>}
|
|
136
|
+
* </Select.List
|
|
137
|
+
* </Select.Card>
|
|
138
|
+
* </Select.Popper>
|
|
139
|
+
* </FormField>
|
|
140
|
+
* </Select>
|
|
141
|
+
* ```
|
|
142
|
+
*/
|
|
143
|
+
Item: SelectItem,
|
|
73
144
|
},
|
|
145
|
+
})(({ children, ...elemProps }, _, model) => {
|
|
146
|
+
return (React.createElement(Combobox, Object.assign({ model: model }, elemProps), children));
|
|
74
147
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../select/lib/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sets the width of the ` SelectCard` to the `Select.Input` width.
|
|
3
|
+
*/
|
|
4
|
+
export declare const useSelectCard: import("@workday/canvas-kit-react/common").BehaviorHook<{
|
|
5
|
+
state: {
|
|
6
|
+
stackRef: import("react").RefObject<HTMLDivElement>;
|
|
7
|
+
targetRef: import("react").RefObject<HTMLButtonElement>;
|
|
8
|
+
initialFocusRef: import("react").RefObject<any> | undefined;
|
|
9
|
+
returnFocusRef: import("react").RefObject<any> | undefined;
|
|
10
|
+
placement: import("@popperjs/core").Placement;
|
|
11
|
+
id: string;
|
|
12
|
+
visibility: "hidden" | "visible";
|
|
13
|
+
selectedIds: string[] | "all";
|
|
14
|
+
unselectedIds: string[];
|
|
15
|
+
cursorId: string;
|
|
16
|
+
columnCount: number;
|
|
17
|
+
pageSizeRef: import("react").MutableRefObject<number>;
|
|
18
|
+
cursorIndexRef: {
|
|
19
|
+
readonly current: number;
|
|
20
|
+
};
|
|
21
|
+
UNSTABLE_virtual: {
|
|
22
|
+
virtualItems: import("../../../collection/lib/react-virtual").VirtualItem[];
|
|
23
|
+
totalSize: number;
|
|
24
|
+
scrollToOffset: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToOffsetOptions | undefined) => void;
|
|
25
|
+
scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
|
|
26
|
+
measure: () => void;
|
|
27
|
+
};
|
|
28
|
+
UNSTABLE_defaultItemHeight: number;
|
|
29
|
+
containerRef: import("react").RefObject<HTMLDivElement>;
|
|
30
|
+
orientation: "horizontal" | "vertical";
|
|
31
|
+
indexRef: import("react").MutableRefObject<number>;
|
|
32
|
+
nonInteractiveIds: string[];
|
|
33
|
+
isVirtualized: boolean;
|
|
34
|
+
items: import("../../..").Item<any>[];
|
|
35
|
+
mode: "multiple" | "single";
|
|
36
|
+
value: string | undefined;
|
|
37
|
+
inputRef: import("react").RefObject<HTMLInputElement>;
|
|
38
|
+
width: number;
|
|
39
|
+
};
|
|
40
|
+
events: {
|
|
41
|
+
setWidth(width: number): void;
|
|
42
|
+
updatePlacement(data: {
|
|
43
|
+
placement: import("@popperjs/core").Placement;
|
|
44
|
+
}): void;
|
|
45
|
+
show(event?: Event | import("react").SyntheticEvent<Element, Event> | undefined): void;
|
|
46
|
+
hide(event?: Event | import("react").SyntheticEvent<Element, Event> | undefined): void;
|
|
47
|
+
select(data: {
|
|
48
|
+
id: string;
|
|
49
|
+
}): void;
|
|
50
|
+
selectAll(): void;
|
|
51
|
+
unselectAll(): void;
|
|
52
|
+
goTo(data: {
|
|
53
|
+
id: string;
|
|
54
|
+
}): void;
|
|
55
|
+
goToNext(): void;
|
|
56
|
+
goToPrevious(): void;
|
|
57
|
+
goToPreviousRow(): void;
|
|
58
|
+
goToNextRow(): void;
|
|
59
|
+
goToFirst(): void;
|
|
60
|
+
goToLast(): void;
|
|
61
|
+
goToFirstOfRow(): void;
|
|
62
|
+
goToLastOfRow(): void;
|
|
63
|
+
goToNextPage(): void;
|
|
64
|
+
goToPreviousPage(): void;
|
|
65
|
+
registerItem(data: {
|
|
66
|
+
item: any;
|
|
67
|
+
textValue: string;
|
|
68
|
+
}): void;
|
|
69
|
+
unregisterItem(data: {
|
|
70
|
+
id: string;
|
|
71
|
+
}): void;
|
|
72
|
+
updateItemHeight(data: {
|
|
73
|
+
value: number;
|
|
74
|
+
}): void;
|
|
75
|
+
};
|
|
76
|
+
onChange: (event: import("react").ChangeEvent<HTMLInputElement>) => void;
|
|
77
|
+
selection: import("../../../collection/lib/useSelectionListModel").SelectionManager;
|
|
78
|
+
navigation: import("../../../collection/lib/useCursorListModel").NavigationManager;
|
|
79
|
+
getId: (item: any) => string;
|
|
80
|
+
}, {
|
|
81
|
+
readonly width: number;
|
|
82
|
+
}>;
|
|
83
|
+
//# sourceMappingURL=useSelectCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSelectCard.d.ts","sourceRoot":"","sources":["../../../../../select/lib/hooks/useSelectCard.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIxB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { createElemPropsHook } from '@workday/canvas-kit-react/common';
|
|
2
|
+
import { useSelectModel } from './useSelectModel';
|
|
3
|
+
/**
|
|
4
|
+
* Sets the width of the ` SelectCard` to the `Select.Input` width.
|
|
5
|
+
*/
|
|
6
|
+
export const useSelectCard = createElemPropsHook(useSelectModel)(model => {
|
|
7
|
+
return {
|
|
8
|
+
width: model.state.width,
|
|
9
|
+
};
|
|
10
|
+
});
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* `useSelectInput` extends {@link useComboboxInput useComboboxInput} and {@link useComboboxKeyboardTypeAhead useComboboxKeyboardTypeAhead} and adds type ahead functionality and Select-specific [keyboard support](https://www.w3.org/WAI/ARIA/apg/patterns/combobox/examples/combobox-select-only/).
|
|
4
|
+
*/
|
|
5
|
+
export declare const useSelectInput: import("@workday/canvas-kit-react/common").BehaviorHook<{
|
|
6
|
+
state: {
|
|
7
|
+
stackRef: React.RefObject<HTMLDivElement>;
|
|
8
|
+
targetRef: React.RefObject<HTMLButtonElement>;
|
|
9
|
+
initialFocusRef: React.RefObject<any> | undefined;
|
|
10
|
+
returnFocusRef: React.RefObject<any> | undefined;
|
|
11
|
+
placement: import("@popperjs/core").Placement;
|
|
12
|
+
id: string;
|
|
13
|
+
visibility: "hidden" | "visible";
|
|
14
|
+
selectedIds: string[] | "all";
|
|
15
|
+
unselectedIds: string[];
|
|
16
|
+
cursorId: string;
|
|
17
|
+
columnCount: number;
|
|
18
|
+
pageSizeRef: React.MutableRefObject<number>;
|
|
19
|
+
cursorIndexRef: {
|
|
20
|
+
readonly current: number;
|
|
21
|
+
};
|
|
22
|
+
UNSTABLE_virtual: {
|
|
23
|
+
virtualItems: import("../../../collection/lib/react-virtual").VirtualItem[];
|
|
24
|
+
totalSize: number;
|
|
25
|
+
scrollToOffset: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToOffsetOptions | undefined) => void;
|
|
26
|
+
scrollToIndex: (index: number, options?: import("../../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
|
|
27
|
+
measure: () => void;
|
|
28
|
+
};
|
|
29
|
+
UNSTABLE_defaultItemHeight: number;
|
|
30
|
+
containerRef: React.RefObject<HTMLDivElement>;
|
|
31
|
+
orientation: "horizontal" | "vertical";
|
|
32
|
+
indexRef: React.MutableRefObject<number>;
|
|
33
|
+
nonInteractiveIds: string[];
|
|
34
|
+
isVirtualized: boolean;
|
|
35
|
+
items: import("../../..").Item<any>[];
|
|
36
|
+
mode: "multiple" | "single";
|
|
37
|
+
value: string | undefined;
|
|
38
|
+
inputRef: React.RefObject<HTMLInputElement>;
|
|
39
|
+
width: number;
|
|
40
|
+
};
|
|
41
|
+
events: {
|
|
42
|
+
setWidth(width: number): void;
|
|
43
|
+
updatePlacement(data: {
|
|
44
|
+
placement: import("@popperjs/core").Placement;
|
|
45
|
+
}): void;
|
|
46
|
+
show(event?: Event | React.SyntheticEvent<Element, Event> | undefined): void;
|
|
47
|
+
hide(event?: Event | React.SyntheticEvent<Element, Event> | undefined): void;
|
|
48
|
+
select(data: {
|
|
49
|
+
id: string;
|
|
50
|
+
}): void;
|
|
51
|
+
selectAll(): void;
|
|
52
|
+
unselectAll(): void;
|
|
53
|
+
goTo(data: {
|
|
54
|
+
id: string;
|
|
55
|
+
}): void;
|
|
56
|
+
goToNext(): void;
|
|
57
|
+
goToPrevious(): void;
|
|
58
|
+
goToPreviousRow(): void;
|
|
59
|
+
goToNextRow(): void;
|
|
60
|
+
goToFirst(): void;
|
|
61
|
+
goToLast(): void;
|
|
62
|
+
goToFirstOfRow(): void;
|
|
63
|
+
goToLastOfRow(): void;
|
|
64
|
+
goToNextPage(): void;
|
|
65
|
+
goToPreviousPage(): void;
|
|
66
|
+
registerItem(data: {
|
|
67
|
+
item: any;
|
|
68
|
+
textValue: string;
|
|
69
|
+
}): void;
|
|
70
|
+
unregisterItem(data: {
|
|
71
|
+
id: string;
|
|
72
|
+
}): void;
|
|
73
|
+
updateItemHeight(data: {
|
|
74
|
+
value: number;
|
|
75
|
+
}): void;
|
|
76
|
+
};
|
|
77
|
+
onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
78
|
+
selection: import("../../../collection/lib/useSelectionListModel").SelectionManager;
|
|
79
|
+
navigation: import("../../../collection/lib/useCursorListModel").NavigationManager;
|
|
80
|
+
getId: (item: any) => string;
|
|
81
|
+
}, {
|
|
82
|
+
readonly onKeyDown: (event: React.KeyboardEvent) => void;
|
|
83
|
+
readonly ref: (instance: HTMLInputElement | null) => void;
|
|
84
|
+
readonly autoComplete: "off";
|
|
85
|
+
readonly defaultValue: string | undefined;
|
|
86
|
+
} & {
|
|
87
|
+
onKeyDown(event: React.KeyboardEvent<Element>): void;
|
|
88
|
+
keySofar: string;
|
|
89
|
+
} & {
|
|
90
|
+
readonly onKeyDown: (event: React.KeyboardEvent<Element>) => void;
|
|
91
|
+
readonly onBlur: (event: React.FocusEvent<Element, Element>) => void;
|
|
92
|
+
readonly onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
93
|
+
readonly onClick: (event: React.MouseEvent<Element, MouseEvent>) => void;
|
|
94
|
+
readonly value: string | undefined;
|
|
95
|
+
readonly role: "combobox";
|
|
96
|
+
readonly 'aria-haspopup': true;
|
|
97
|
+
readonly 'aria-expanded': boolean;
|
|
98
|
+
readonly 'aria-autocomplete': "list";
|
|
99
|
+
readonly 'aria-controls': `${string}-list`;
|
|
100
|
+
readonly id: string;
|
|
101
|
+
readonly ref: (instance: unknown) => void;
|
|
102
|
+
} & {
|
|
103
|
+
onKeyDown(event: React.KeyboardEvent<Element>): void;
|
|
104
|
+
} & {
|
|
105
|
+
'aria-activedescendant': string | undefined;
|
|
106
|
+
} & {
|
|
107
|
+
onKeyDown(event: React.KeyboardEvent<Element>): void;
|
|
108
|
+
} & {
|
|
109
|
+
ref: (instance: unknown) => void;
|
|
110
|
+
onClick: (event: React.MouseEvent<Element, MouseEvent>) => void;
|
|
111
|
+
}>;
|
|
112
|
+
//# sourceMappingURL=useSelectInput.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSelectInput.d.ts","sourceRoot":"","sources":["../../../../../select/lib/hooks/useSelectInput.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAgB1B;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAkBJ,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCzC,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { composeHooks, createElemPropsHook, useForkRef, useLocalRef, useResizeObserver, } from '@workday/canvas-kit-react/common';
|
|
2
|
+
import { useComboboxInput, useComboboxKeyboardTypeAhead, useComboboxMoveCursorToSelected, useComboboxResetCursorToSelected, } from '@workday/canvas-kit-react/combobox';
|
|
3
|
+
import { useSelectModel } from './useSelectModel';
|
|
4
|
+
/**
|
|
5
|
+
* `useSelectInput` extends {@link useComboboxInput useComboboxInput} and {@link useComboboxKeyboardTypeAhead useComboboxKeyboardTypeAhead} and adds type ahead functionality and Select-specific [keyboard support](https://www.w3.org/WAI/ARIA/apg/patterns/combobox/examples/combobox-select-only/).
|
|
6
|
+
*/
|
|
7
|
+
export const useSelectInput = composeHooks(createElemPropsHook(useSelectModel)((model, ref, elemProps = {}) => {
|
|
8
|
+
const { localRef, elementRef } = useLocalRef(useForkRef(ref, ref));
|
|
9
|
+
useResizeObserver({
|
|
10
|
+
ref: localRef,
|
|
11
|
+
onResize: data => {
|
|
12
|
+
if (model.state.visibility === 'visible') {
|
|
13
|
+
// Width of the Input + 2px border + 8px padding
|
|
14
|
+
const calculatedWidth = data.width ? data.width + 42 + 8 : 0;
|
|
15
|
+
model.events.setWidth(calculatedWidth);
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
return {
|
|
20
|
+
onKeyDown(event) {
|
|
21
|
+
// Prevent the keys from being enter in the input
|
|
22
|
+
if (event.key !== 'Tab') {
|
|
23
|
+
event.preventDefault();
|
|
24
|
+
}
|
|
25
|
+
// Select should open if Spacebar is typed and nothing has been typed AND the menu is hidden
|
|
26
|
+
if (event.key === 'Spacebar' ||
|
|
27
|
+
(event.key === ' ' && model.state.visibility === 'hidden' && (elemProps === null || elemProps === void 0 ? void 0 : elemProps.keySofar) === '')) {
|
|
28
|
+
model.events.show();
|
|
29
|
+
}
|
|
30
|
+
// if the menu is visible
|
|
31
|
+
if ((event.key === 'Spacebar' || event.key === ' ') &&
|
|
32
|
+
model.state.visibility === 'visible') {
|
|
33
|
+
// If key so far is empty, they're done typing, select the item where the cursor is located and hide the menu
|
|
34
|
+
if ((elemProps === null || elemProps === void 0 ? void 0 : elemProps.keySofar) === '') {
|
|
35
|
+
model.events.select({
|
|
36
|
+
id: model.state.cursorId,
|
|
37
|
+
});
|
|
38
|
+
model.events.hide();
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
ref: elementRef,
|
|
43
|
+
autoComplete: 'off',
|
|
44
|
+
defaultValue: model.state.selectedIds[0] || model.state.value,
|
|
45
|
+
};
|
|
46
|
+
}), useComboboxKeyboardTypeAhead, useComboboxResetCursorToSelected, useComboboxMoveCursorToSelected, useComboboxInput);
|