@workday/canvas-kit-react 9.0.0-alpha.419-next.21 → 9.0.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 (255) hide show
  1. package/breadcrumbs/lib/BreadcrumbsItem.tsx +1 -1
  2. package/collection/index.ts +2 -0
  3. package/collection/lib/ListBox.tsx +12 -10
  4. package/collection/lib/useBaseListModel.tsx +6 -4
  5. package/collection/lib/useCursorListModel.tsx +1 -1
  6. package/collection/lib/useListActiveDescendant.ts +24 -0
  7. package/collection/lib/useListItemAllowChildStrings.ts +2 -1
  8. package/collection/lib/useListItemRegister.tsx +10 -3
  9. package/collection/lib/useListItemSelect.tsx +1 -1
  10. package/collection/lib/useListKeyboardHandler.ts +28 -0
  11. package/collection/lib/useListLoader.ts +116 -54
  12. package/collection/lib/useOverflowListItemMeasure.tsx +2 -2
  13. package/collection/lib/useOverflowListMeasure.ts +11 -13
  14. package/collection/lib/useOverflowListTarget.tsx +28 -30
  15. package/collection/lib/useSelectionListModel.tsx +1 -0
  16. package/combobox/LICENSE +52 -0
  17. package/combobox/README.md +7 -0
  18. package/combobox/index.ts +8 -0
  19. package/combobox/lib/Combobox.tsx +32 -0
  20. package/combobox/lib/ComboboxCard.tsx +33 -0
  21. package/combobox/lib/ComboboxInput.tsx +104 -0
  22. package/combobox/lib/ComboboxMenu.tsx +67 -0
  23. package/combobox/lib/ComboboxMenuItem.tsx +74 -0
  24. package/combobox/lib/ComboboxMenuList.tsx +45 -0
  25. package/combobox/lib/useComboboxInputOpenWithArrowKeys.ts +21 -0
  26. package/combobox/lib/useComboboxLoader.ts +72 -0
  27. package/combobox/lib/useComboboxModel.tsx +85 -0
  28. package/combobox/package.json +6 -0
  29. package/common/lib/utils/components.ts +15 -16
  30. package/common/lib/utils/models.ts +2 -2
  31. package/dist/commonjs/action-bar/lib/ActionBar.d.ts +2 -2
  32. package/dist/commonjs/action-bar/lib/ActionBarList.d.ts +1 -1
  33. package/dist/commonjs/action-bar/lib/useActionBarModel.d.ts +2 -2
  34. package/dist/commonjs/breadcrumbs/lib/Breadcrumbs.d.ts +2 -2
  35. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsMenu.d.ts +1 -1
  36. package/dist/commonjs/breadcrumbs/lib/hooks/useBreadcrumbsModel.d.ts +2 -2
  37. package/dist/commonjs/collection/index.d.ts +2 -0
  38. package/dist/commonjs/collection/index.d.ts.map +1 -1
  39. package/dist/commonjs/collection/index.js +2 -0
  40. package/dist/commonjs/collection/lib/ListBox.d.ts +7 -6
  41. package/dist/commonjs/collection/lib/ListBox.d.ts.map +1 -1
  42. package/dist/commonjs/collection/lib/ListBox.js +5 -3
  43. package/dist/commonjs/collection/lib/useBaseListModel.d.ts.map +1 -1
  44. package/dist/commonjs/collection/lib/useBaseListModel.js +4 -4
  45. package/dist/commonjs/collection/lib/useCursorListModel.d.ts +0 -34
  46. package/dist/commonjs/collection/lib/useCursorListModel.d.ts.map +1 -1
  47. package/dist/commonjs/collection/lib/useCursorListModel.js +1 -1
  48. package/dist/commonjs/collection/lib/useListActiveDescendant.d.ts +68 -0
  49. package/dist/commonjs/collection/lib/useListActiveDescendant.d.ts.map +1 -0
  50. package/dist/commonjs/collection/lib/useListActiveDescendant.js +25 -0
  51. package/dist/commonjs/collection/lib/useListItemAllowChildStrings.d.ts +2 -1
  52. package/dist/commonjs/collection/lib/useListItemAllowChildStrings.d.ts.map +1 -1
  53. package/dist/commonjs/collection/lib/useListItemAllowChildStrings.js +2 -1
  54. package/dist/commonjs/collection/lib/useListItemRegister.d.ts.map +1 -1
  55. package/dist/commonjs/collection/lib/useListItemRegister.js +5 -1
  56. package/dist/commonjs/collection/lib/useListKeyboardHandler.d.ts +66 -0
  57. package/dist/commonjs/collection/lib/useListKeyboardHandler.d.ts.map +1 -0
  58. package/dist/commonjs/collection/lib/useListKeyboardHandler.js +27 -0
  59. package/dist/commonjs/collection/lib/useListLoader.d.ts +46 -7
  60. package/dist/commonjs/collection/lib/useListLoader.d.ts.map +1 -1
  61. package/dist/commonjs/collection/lib/useListLoader.js +61 -35
  62. package/dist/commonjs/collection/lib/useOverflowListMeasure.d.ts +1 -1
  63. package/dist/commonjs/collection/lib/useOverflowListMeasure.d.ts.map +1 -1
  64. package/dist/commonjs/collection/lib/useOverflowListTarget.d.ts +5 -2
  65. package/dist/commonjs/collection/lib/useOverflowListTarget.d.ts.map +1 -1
  66. package/dist/commonjs/collection/lib/useOverflowListTarget.js +1 -1
  67. package/dist/commonjs/collection/lib/useSelectionListModel.d.ts.map +1 -1
  68. package/dist/commonjs/collection/lib/useSelectionListModel.js +1 -0
  69. package/dist/commonjs/combobox/index.d.ts +9 -0
  70. package/dist/commonjs/combobox/index.d.ts.map +1 -0
  71. package/dist/commonjs/combobox/index.js +19 -0
  72. package/dist/commonjs/combobox/lib/Combobox.d.ts +2075 -0
  73. package/dist/commonjs/combobox/lib/Combobox.d.ts.map +1 -0
  74. package/dist/commonjs/combobox/lib/Combobox.js +29 -0
  75. package/dist/commonjs/combobox/lib/ComboboxCard.d.ts +166 -0
  76. package/dist/commonjs/combobox/lib/ComboboxCard.d.ts.map +1 -0
  77. package/dist/commonjs/combobox/lib/ComboboxCard.js +25 -0
  78. package/dist/commonjs/combobox/lib/ComboboxInput.d.ts +186 -0
  79. package/dist/commonjs/combobox/lib/ComboboxInput.d.ts.map +1 -0
  80. package/dist/commonjs/combobox/lib/ComboboxInput.js +84 -0
  81. package/dist/commonjs/combobox/lib/ComboboxMenu.d.ts +428 -0
  82. package/dist/commonjs/combobox/lib/ComboboxMenu.d.ts.map +1 -0
  83. package/dist/commonjs/combobox/lib/ComboboxMenu.js +63 -0
  84. package/dist/commonjs/combobox/lib/ComboboxMenuItem.d.ts +178 -0
  85. package/dist/commonjs/combobox/lib/ComboboxMenuItem.d.ts.map +1 -0
  86. package/dist/commonjs/combobox/lib/ComboboxMenuItem.js +50 -0
  87. package/dist/commonjs/combobox/lib/ComboboxMenuList.d.ts +164 -0
  88. package/dist/commonjs/combobox/lib/ComboboxMenuList.d.ts.map +1 -0
  89. package/dist/commonjs/combobox/lib/ComboboxMenuList.js +31 -0
  90. package/dist/commonjs/combobox/lib/useComboboxInputOpenWithArrowKeys.d.ts +84 -0
  91. package/dist/commonjs/combobox/lib/useComboboxInputOpenWithArrowKeys.d.ts.map +1 -0
  92. package/dist/commonjs/combobox/lib/useComboboxInputOpenWithArrowKeys.js +20 -0
  93. package/dist/commonjs/combobox/lib/useComboboxLoader.d.ts +28 -0
  94. package/dist/commonjs/combobox/lib/useComboboxLoader.d.ts.map +1 -0
  95. package/dist/commonjs/combobox/lib/useComboboxLoader.js +65 -0
  96. package/dist/commonjs/combobox/lib/useComboboxModel.d.ts +1998 -0
  97. package/dist/commonjs/combobox/lib/useComboboxModel.d.ts.map +1 -0
  98. package/dist/commonjs/combobox/lib/useComboboxModel.js +82 -0
  99. package/dist/commonjs/common/lib/utils/components.d.ts +9 -23
  100. package/dist/commonjs/common/lib/utils/components.d.ts.map +1 -1
  101. package/dist/commonjs/common/lib/utils/components.js +2 -2
  102. package/dist/commonjs/common/lib/utils/models.js +2 -2
  103. package/dist/commonjs/index.d.ts +1 -0
  104. package/dist/commonjs/index.d.ts.map +1 -1
  105. package/dist/commonjs/index.js +1 -0
  106. package/dist/commonjs/menu/index.d.ts +1 -1
  107. package/dist/commonjs/menu/index.d.ts.map +1 -1
  108. package/dist/commonjs/menu/index.js +2 -1
  109. package/dist/commonjs/menu/lib/Menu.d.ts +7 -5
  110. package/dist/commonjs/menu/lib/Menu.d.ts.map +1 -1
  111. package/dist/commonjs/menu/lib/Menu.js +6 -4
  112. package/dist/commonjs/menu/lib/MenuContextTarget.d.ts +2 -2
  113. package/dist/commonjs/menu/lib/MenuItem.d.ts +7 -1
  114. package/dist/commonjs/menu/lib/MenuItem.d.ts.map +1 -1
  115. package/dist/commonjs/menu/lib/MenuItem.js +9 -11
  116. package/dist/commonjs/menu/lib/MenuList.d.ts +3 -3
  117. package/dist/commonjs/menu/lib/MenuList.d.ts.map +1 -1
  118. package/dist/commonjs/menu/lib/MenuList.js +3 -2
  119. package/dist/commonjs/menu/lib/MenuPopper.d.ts +1 -1
  120. package/dist/commonjs/menu/lib/MenuTarget.d.ts +2 -2
  121. package/dist/commonjs/menu/lib/useMenuModel.d.ts +2 -2
  122. package/dist/commonjs/menu/lib/useMenuModel.d.ts.map +1 -1
  123. package/dist/commonjs/menu/lib/useMenuModel.js +3 -5
  124. package/dist/commonjs/popup/lib/hooks/usePopupPopper.d.ts +1 -1
  125. package/dist/commonjs/popup/lib/hooks/usePopupTarget.d.ts +1 -1
  126. package/dist/commonjs/popup/lib/hooks/usePopupTargetContext.d.ts +1 -1
  127. package/dist/commonjs/tabs/lib/Tabs.d.ts +18 -120
  128. package/dist/commonjs/tabs/lib/Tabs.d.ts.map +1 -1
  129. package/dist/commonjs/tabs/lib/TabsItem.d.ts +0 -1
  130. package/dist/commonjs/tabs/lib/TabsItem.d.ts.map +1 -1
  131. package/dist/commonjs/tabs/lib/TabsItem.js +0 -1
  132. package/dist/commonjs/tabs/lib/TabsList.d.ts +1 -1
  133. package/dist/commonjs/tabs/lib/TabsMenuPopper.d.ts +1 -1
  134. package/dist/commonjs/tabs/lib/TabsPanel.d.ts.map +1 -1
  135. package/dist/commonjs/tabs/lib/useTabsModel.d.ts +8 -20
  136. package/dist/commonjs/tabs/lib/useTabsModel.d.ts.map +1 -1
  137. package/dist/commonjs/tabs/lib/useTabsModel.js +1 -0
  138. package/dist/es6/action-bar/lib/ActionBar.d.ts +2 -2
  139. package/dist/es6/action-bar/lib/ActionBarList.d.ts +1 -1
  140. package/dist/es6/action-bar/lib/useActionBarModel.d.ts +2 -2
  141. package/dist/es6/breadcrumbs/lib/Breadcrumbs.d.ts +2 -2
  142. package/dist/es6/breadcrumbs/lib/BreadcrumbsMenu.d.ts +1 -1
  143. package/dist/es6/breadcrumbs/lib/hooks/useBreadcrumbsModel.d.ts +2 -2
  144. package/dist/es6/collection/index.d.ts +2 -0
  145. package/dist/es6/collection/index.d.ts.map +1 -1
  146. package/dist/es6/collection/index.js +2 -0
  147. package/dist/es6/collection/lib/ListBox.d.ts +7 -6
  148. package/dist/es6/collection/lib/ListBox.d.ts.map +1 -1
  149. package/dist/es6/collection/lib/ListBox.js +6 -4
  150. package/dist/es6/collection/lib/useBaseListModel.d.ts.map +1 -1
  151. package/dist/es6/collection/lib/useBaseListModel.js +4 -4
  152. package/dist/es6/collection/lib/useCursorListModel.d.ts +0 -34
  153. package/dist/es6/collection/lib/useCursorListModel.d.ts.map +1 -1
  154. package/dist/es6/collection/lib/useCursorListModel.js +1 -1
  155. package/dist/es6/collection/lib/useListActiveDescendant.d.ts +68 -0
  156. package/dist/es6/collection/lib/useListActiveDescendant.d.ts.map +1 -0
  157. package/dist/es6/collection/lib/useListActiveDescendant.js +22 -0
  158. package/dist/es6/collection/lib/useListItemAllowChildStrings.d.ts +2 -1
  159. package/dist/es6/collection/lib/useListItemAllowChildStrings.d.ts.map +1 -1
  160. package/dist/es6/collection/lib/useListItemAllowChildStrings.js +2 -1
  161. package/dist/es6/collection/lib/useListItemRegister.d.ts.map +1 -1
  162. package/dist/es6/collection/lib/useListItemRegister.js +5 -1
  163. package/dist/es6/collection/lib/useListKeyboardHandler.d.ts +66 -0
  164. package/dist/es6/collection/lib/useListKeyboardHandler.d.ts.map +1 -0
  165. package/dist/es6/collection/lib/useListKeyboardHandler.js +24 -0
  166. package/dist/es6/collection/lib/useListLoader.d.ts +46 -7
  167. package/dist/es6/collection/lib/useListLoader.d.ts.map +1 -1
  168. package/dist/es6/collection/lib/useListLoader.js +61 -35
  169. package/dist/es6/collection/lib/useOverflowListMeasure.d.ts +1 -1
  170. package/dist/es6/collection/lib/useOverflowListMeasure.d.ts.map +1 -1
  171. package/dist/es6/collection/lib/useOverflowListTarget.d.ts +5 -2
  172. package/dist/es6/collection/lib/useOverflowListTarget.d.ts.map +1 -1
  173. package/dist/es6/collection/lib/useOverflowListTarget.js +1 -1
  174. package/dist/es6/collection/lib/useSelectionListModel.d.ts.map +1 -1
  175. package/dist/es6/collection/lib/useSelectionListModel.js +1 -0
  176. package/dist/es6/combobox/index.d.ts +9 -0
  177. package/dist/es6/combobox/index.d.ts.map +1 -0
  178. package/dist/es6/combobox/index.js +8 -0
  179. package/dist/es6/combobox/lib/Combobox.d.ts +2075 -0
  180. package/dist/es6/combobox/lib/Combobox.d.ts.map +1 -0
  181. package/dist/es6/combobox/lib/Combobox.js +23 -0
  182. package/dist/es6/combobox/lib/ComboboxCard.d.ts +166 -0
  183. package/dist/es6/combobox/lib/ComboboxCard.d.ts.map +1 -0
  184. package/dist/es6/combobox/lib/ComboboxCard.js +19 -0
  185. package/dist/es6/combobox/lib/ComboboxInput.d.ts +186 -0
  186. package/dist/es6/combobox/lib/ComboboxInput.d.ts.map +1 -0
  187. package/dist/es6/combobox/lib/ComboboxInput.js +78 -0
  188. package/dist/es6/combobox/lib/ComboboxMenu.d.ts +428 -0
  189. package/dist/es6/combobox/lib/ComboboxMenu.d.ts.map +1 -0
  190. package/dist/es6/combobox/lib/ComboboxMenu.js +57 -0
  191. package/dist/es6/combobox/lib/ComboboxMenuItem.d.ts +178 -0
  192. package/dist/es6/combobox/lib/ComboboxMenuItem.d.ts.map +1 -0
  193. package/dist/es6/combobox/lib/ComboboxMenuItem.js +44 -0
  194. package/dist/es6/combobox/lib/ComboboxMenuList.d.ts +164 -0
  195. package/dist/es6/combobox/lib/ComboboxMenuList.d.ts.map +1 -0
  196. package/dist/es6/combobox/lib/ComboboxMenuList.js +25 -0
  197. package/dist/es6/combobox/lib/useComboboxInputOpenWithArrowKeys.d.ts +84 -0
  198. package/dist/es6/combobox/lib/useComboboxInputOpenWithArrowKeys.d.ts.map +1 -0
  199. package/dist/es6/combobox/lib/useComboboxInputOpenWithArrowKeys.js +17 -0
  200. package/dist/es6/combobox/lib/useComboboxLoader.d.ts +28 -0
  201. package/dist/es6/combobox/lib/useComboboxLoader.d.ts.map +1 -0
  202. package/dist/es6/combobox/lib/useComboboxLoader.js +58 -0
  203. package/dist/es6/combobox/lib/useComboboxModel.d.ts +1998 -0
  204. package/dist/es6/combobox/lib/useComboboxModel.d.ts.map +1 -0
  205. package/dist/es6/combobox/lib/useComboboxModel.js +76 -0
  206. package/dist/es6/common/lib/utils/components.d.ts +9 -23
  207. package/dist/es6/common/lib/utils/components.d.ts.map +1 -1
  208. package/dist/es6/common/lib/utils/components.js +2 -2
  209. package/dist/es6/common/lib/utils/models.js +2 -2
  210. package/dist/es6/index.d.ts +1 -0
  211. package/dist/es6/index.d.ts.map +1 -1
  212. package/dist/es6/index.js +1 -0
  213. package/dist/es6/menu/index.d.ts +1 -1
  214. package/dist/es6/menu/index.d.ts.map +1 -1
  215. package/dist/es6/menu/index.js +1 -1
  216. package/dist/es6/menu/lib/Menu.d.ts +7 -5
  217. package/dist/es6/menu/lib/Menu.d.ts.map +1 -1
  218. package/dist/es6/menu/lib/Menu.js +6 -4
  219. package/dist/es6/menu/lib/MenuContextTarget.d.ts +2 -2
  220. package/dist/es6/menu/lib/MenuItem.d.ts +7 -1
  221. package/dist/es6/menu/lib/MenuItem.d.ts.map +1 -1
  222. package/dist/es6/menu/lib/MenuItem.js +8 -10
  223. package/dist/es6/menu/lib/MenuList.d.ts +3 -3
  224. package/dist/es6/menu/lib/MenuList.d.ts.map +1 -1
  225. package/dist/es6/menu/lib/MenuList.js +4 -3
  226. package/dist/es6/menu/lib/MenuPopper.d.ts +1 -1
  227. package/dist/es6/menu/lib/MenuTarget.d.ts +2 -2
  228. package/dist/es6/menu/lib/useMenuModel.d.ts +2 -2
  229. package/dist/es6/menu/lib/useMenuModel.d.ts.map +1 -1
  230. package/dist/es6/menu/lib/useMenuModel.js +4 -6
  231. package/dist/es6/popup/lib/hooks/usePopupPopper.d.ts +1 -1
  232. package/dist/es6/popup/lib/hooks/usePopupTarget.d.ts +1 -1
  233. package/dist/es6/popup/lib/hooks/usePopupTargetContext.d.ts +1 -1
  234. package/dist/es6/tabs/lib/Tabs.d.ts +18 -120
  235. package/dist/es6/tabs/lib/Tabs.d.ts.map +1 -1
  236. package/dist/es6/tabs/lib/TabsItem.d.ts +0 -1
  237. package/dist/es6/tabs/lib/TabsItem.d.ts.map +1 -1
  238. package/dist/es6/tabs/lib/TabsItem.js +0 -1
  239. package/dist/es6/tabs/lib/TabsList.d.ts +1 -1
  240. package/dist/es6/tabs/lib/TabsMenuPopper.d.ts +1 -1
  241. package/dist/es6/tabs/lib/TabsPanel.d.ts.map +1 -1
  242. package/dist/es6/tabs/lib/useTabsModel.d.ts +8 -20
  243. package/dist/es6/tabs/lib/useTabsModel.d.ts.map +1 -1
  244. package/dist/es6/tabs/lib/useTabsModel.js +1 -0
  245. package/index.ts +1 -0
  246. package/menu/index.ts +1 -1
  247. package/menu/lib/Menu.tsx +6 -4
  248. package/menu/lib/MenuItem.tsx +9 -12
  249. package/menu/lib/MenuList.tsx +16 -10
  250. package/menu/lib/useMenuModel.tsx +4 -7
  251. package/modal/lib/hooks/useModalHeading.ts +2 -2
  252. package/package.json +3 -3
  253. package/tabs/lib/TabsItem.tsx +10 -13
  254. package/tabs/lib/TabsPanel.tsx +1 -5
  255. package/tabs/lib/useTabsModel.tsx +1 -0
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ComboboxMenuItem = exports.useComboboxMenuItem = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const common_1 = require("@workday/canvas-kit-react/common");
9
+ const menu_1 = require("@workday/canvas-kit-react/menu");
10
+ const collection_1 = require("@workday/canvas-kit-react/collection");
11
+ const tooltip_1 = require("@workday/canvas-kit-react/tooltip");
12
+ const useComboboxModel_1 = require("./useComboboxModel");
13
+ /**
14
+ * This hook sets up accessibility and behavior of a {@link ComboboxMenuItem Combobox.Menu.Item}
15
+ * component. It prevents focus when clicking so the focus stays on the
16
+ * {@link ComboboxInput Combobox.Input} component and selects an item when the user clicks on it. It
17
+ * also prevents items with an `aria-disabled` attribute from being selected. A `focus` CSS class is
18
+ * added when the item has "focus" (when the cursor is on the item).
19
+ */
20
+ exports.useComboboxMenuItem = common_1.composeHooks(common_1.createElemPropsHook(menu_1.useMenuModel)((model, _, elemProps = {}) => {
21
+ const id = elemProps['data-id'] || '';
22
+ const onMouseDown = (event) => {
23
+ if (model.state.nonInteractiveIds.includes(id) ||
24
+ event.currentTarget.hasAttribute('aria-disabled')) {
25
+ return;
26
+ }
27
+ if (event.currentTarget.getAttribute('aria-disabled') !== 'true') {
28
+ model.events.select({ id });
29
+ if (model.state.mode === 'single') {
30
+ model.events.hide(event);
31
+ }
32
+ }
33
+ // prevent focus changes
34
+ event.preventDefault();
35
+ };
36
+ const selected = model.state.cursorId === id;
37
+ return {
38
+ role: 'option',
39
+ 'aria-selected': selected || undefined,
40
+ onMouseDown,
41
+ className: model.state.cursorId && model.state.cursorId === elemProps['data-id'] ? 'focus' : '',
42
+ };
43
+ }), collection_1.useListItemRegister, collection_1.useListItemAllowChildStrings);
44
+ exports.ComboboxMenuItem = common_1.createSubcomponent('li')({
45
+ modelHook: useComboboxModel_1.useComboboxModel,
46
+ elemPropsHook: exports.useComboboxMenuItem,
47
+ })(({ children, ...elemProps }, Element) => {
48
+ return (react_1.default.createElement(tooltip_1.OverflowTooltip, { placement: "left" },
49
+ react_1.default.createElement(menu_1.StyledMenuItem, Object.assign({ minHeight: "xl", as: Element }, elemProps), children)));
50
+ });
@@ -0,0 +1,164 @@
1
+ import React from 'react';
2
+ import { ListBoxProps } from '@workday/canvas-kit-react/collection';
3
+ export interface ComboboxMenuListProps<T = any> extends ListBoxProps<T> {
4
+ }
5
+ /**
6
+ * The `listbox` uses `aria-labelledby` pointing to the {@link ComboboxInput Combobox.Input}. This
7
+ * input should be labelled by a form field label for proper accessibility. Use {@link FormField} to
8
+ * ensure proper accessibility.
9
+ */
10
+ export declare const useComboboxMenuList: import("@workday/canvas-kit-react/common").BehaviorHook<{
11
+ state: {
12
+ stackRef: React.RefObject<HTMLDivElement>;
13
+ targetRef: React.RefObject<HTMLButtonElement>;
14
+ initialFocusRef: React.RefObject<any> | undefined;
15
+ returnFocusRef: React.RefObject<any> | undefined;
16
+ placement: import("@popperjs/core").Placement;
17
+ id: string;
18
+ visibility: "hidden" | "visible";
19
+ selectedIds: string[] | "all";
20
+ unselectedIds: string[];
21
+ cursorId: string;
22
+ columnCount: number;
23
+ pageSizeRef: React.MutableRefObject<number>;
24
+ cursorIndexRef: {
25
+ readonly current: number;
26
+ };
27
+ UNSTABLE_virtual: {
28
+ virtualItems: import("../../collection/lib/react-virtual").VirtualItem[];
29
+ totalSize: number;
30
+ scrollToOffset: (index: number, options?: import("../../collection/lib/react-virtual").ScrollToOffsetOptions | undefined) => void;
31
+ scrollToIndex: (index: number, options?: import("../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
32
+ measure: () => void;
33
+ };
34
+ UNSTABLE_defaultItemHeight: number;
35
+ containerRef: React.RefObject<HTMLDivElement>;
36
+ orientation: "horizontal" | "vertical";
37
+ indexRef: React.MutableRefObject<number>;
38
+ nonInteractiveIds: string[];
39
+ isVirtualized: boolean;
40
+ items: import("@workday/canvas-kit-react/collection").Item<any>[];
41
+ mode: "multiple" | "single";
42
+ };
43
+ events: {
44
+ updatePlacement(data: {
45
+ placement: import("@popperjs/core").Placement;
46
+ }): void;
47
+ show(event?: Event | React.SyntheticEvent<Element, Event> | undefined): void;
48
+ hide(event?: Event | React.SyntheticEvent<Element, Event> | undefined): void;
49
+ select(data: {
50
+ id: string;
51
+ }): void;
52
+ selectAll(): void;
53
+ unselectAll(): void;
54
+ goTo(data: {
55
+ id: string;
56
+ }): void;
57
+ goToNext(): void;
58
+ goToPrevious(): void;
59
+ goToPreviousRow(): void;
60
+ goToNextRow(): void;
61
+ goToFirst(): void;
62
+ goToLast(): void;
63
+ goToFirstOfRow(): void;
64
+ goToLastOfRow(): void;
65
+ goToNextPage(): void;
66
+ goToPreviousPage(): void;
67
+ registerItem(data: {
68
+ item: any;
69
+ textValue: string;
70
+ }): void;
71
+ unregisterItem(data: {
72
+ id: string;
73
+ }): void;
74
+ updateItemHeight(data: {
75
+ value: number;
76
+ }): void;
77
+ };
78
+ selection: import("../../collection/lib/useSelectionListModel").SelectionManager;
79
+ navigation: import("../../collection/lib/useCursorListModel").NavigationManager;
80
+ getId: (item: any) => string;
81
+ }, {
82
+ readonly role: "listbox";
83
+ readonly 'aria-labelledby': string;
84
+ readonly id: `${string}-list`;
85
+ readonly flexDirection: "row" | "column";
86
+ }>;
87
+ export declare const ComboboxMenuList: import("@workday/canvas-kit-react/common").ElementComponentM<"ul", ComboboxMenuListProps<any>, {
88
+ state: {
89
+ stackRef: React.RefObject<HTMLDivElement>;
90
+ targetRef: React.RefObject<HTMLButtonElement>;
91
+ initialFocusRef: React.RefObject<any> | undefined;
92
+ returnFocusRef: React.RefObject<any> | undefined;
93
+ placement: import("@popperjs/core").Placement;
94
+ id: string;
95
+ visibility: "hidden" | "visible";
96
+ selectedIds: string[] | "all";
97
+ unselectedIds: string[];
98
+ cursorId: string;
99
+ columnCount: number;
100
+ pageSizeRef: React.MutableRefObject<number>;
101
+ cursorIndexRef: {
102
+ readonly current: number;
103
+ };
104
+ UNSTABLE_virtual: {
105
+ virtualItems: import("../../collection/lib/react-virtual").VirtualItem[];
106
+ totalSize: number;
107
+ scrollToOffset: (index: number, options?: import("../../collection/lib/react-virtual").ScrollToOffsetOptions | undefined) => void;
108
+ scrollToIndex: (index: number, options?: import("../../collection/lib/react-virtual").ScrollToIndexOptions | undefined) => void;
109
+ measure: () => void;
110
+ };
111
+ UNSTABLE_defaultItemHeight: number;
112
+ containerRef: React.RefObject<HTMLDivElement>;
113
+ orientation: "horizontal" | "vertical";
114
+ indexRef: React.MutableRefObject<number>;
115
+ nonInteractiveIds: string[];
116
+ isVirtualized: boolean;
117
+ items: import("@workday/canvas-kit-react/collection").Item<any>[];
118
+ mode: "multiple" | "single";
119
+ value: string | undefined;
120
+ inputRef: React.RefObject<HTMLInputElement>;
121
+ width: number;
122
+ };
123
+ events: {
124
+ setWidth(width: number): void;
125
+ updatePlacement(data: {
126
+ placement: import("@popperjs/core").Placement;
127
+ }): void;
128
+ show(event?: Event | React.SyntheticEvent<Element, Event> | undefined): void;
129
+ hide(event?: Event | React.SyntheticEvent<Element, Event> | undefined): void;
130
+ select(data: {
131
+ id: string;
132
+ }): void;
133
+ selectAll(): void;
134
+ unselectAll(): void;
135
+ goTo(data: {
136
+ id: string;
137
+ }): void;
138
+ goToNext(): void;
139
+ goToPrevious(): void;
140
+ goToPreviousRow(): void;
141
+ goToNextRow(): void;
142
+ goToFirst(): void;
143
+ goToLast(): void;
144
+ goToFirstOfRow(): void;
145
+ goToLastOfRow(): void;
146
+ goToNextPage(): void;
147
+ goToPreviousPage(): void;
148
+ registerItem(data: {
149
+ item: any;
150
+ textValue: string;
151
+ }): void;
152
+ unregisterItem(data: {
153
+ id: string;
154
+ }): void;
155
+ updateItemHeight(data: {
156
+ value: number;
157
+ }): void;
158
+ };
159
+ onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
160
+ selection: import("../../collection/lib/useSelectionListModel").SelectionManager;
161
+ navigation: import("../../collection/lib/useCursorListModel").NavigationManager;
162
+ getId: (item: any) => string;
163
+ }>;
164
+ //# sourceMappingURL=ComboboxMenuList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComboboxMenuList.d.ts","sourceRoot":"","sources":["../../../../combobox/lib/ComboboxMenuList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EAAU,YAAY,EAAC,MAAM,sCAAsC,CAAC;AAI3E,MAAM,WAAW,qBAAqB,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,YAAY,CAAC,CAAC,CAAC;CAAG;AAE1E;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAO9B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmB3B,CAAC"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ComboboxMenuList = exports.useComboboxMenuList = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const tokens_1 = require("@workday/canvas-kit-react/tokens");
9
+ const common_1 = require("@workday/canvas-kit-react/common");
10
+ const menu_1 = require("@workday/canvas-kit-react/menu");
11
+ const collection_1 = require("@workday/canvas-kit-react/collection");
12
+ const useComboboxModel_1 = require("./useComboboxModel");
13
+ /**
14
+ * The `listbox` uses `aria-labelledby` pointing to the {@link ComboboxInput Combobox.Input}. This
15
+ * input should be labelled by a form field label for proper accessibility. Use {@link FormField} to
16
+ * ensure proper accessibility.
17
+ */
18
+ exports.useComboboxMenuList = common_1.createElemPropsHook(menu_1.useMenuModel)(model => {
19
+ return {
20
+ role: 'listbox',
21
+ 'aria-labelledby': model.state.id,
22
+ id: `${model.state.id}-list`,
23
+ flexDirection: model.state.orientation === 'vertical' ? 'column' : 'row',
24
+ };
25
+ });
26
+ exports.ComboboxMenuList = common_1.createSubcomponent('ul')({
27
+ modelHook: useComboboxModel_1.useComboboxModel,
28
+ elemPropsHook: exports.useComboboxMenuList,
29
+ })(({ children, ...elemProps }, Element, model) => {
30
+ return (react_1.default.createElement(collection_1.ListBox, Object.assign({ as: Element, model: model, background: tokens_1.commonColors.background, borderRadius: "zero", padding: "zero", marginY: "xxs", gap: "zero", overflowY: "auto" }, elemProps), children));
31
+ });
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Opens a `Combobox` with the up/down arrow keys. This should be used only on a
3
+ * {@link ComboboxInput Combobox.Input}. It adds a keydown listener for the up/down arrow keys.
4
+ */
5
+ export declare const useComboboxInputOpenWithArrowKeys: import("@workday/canvas-kit-react/common").BehaviorHook<{
6
+ state: {
7
+ stackRef: import("react").RefObject<HTMLDivElement>;
8
+ targetRef: import("react").RefObject<HTMLButtonElement>;
9
+ initialFocusRef: import("react").RefObject<any> | undefined;
10
+ returnFocusRef: import("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: import("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: import("react").RefObject<HTMLDivElement>;
31
+ orientation: "horizontal" | "vertical";
32
+ indexRef: import("react").MutableRefObject<number>;
33
+ nonInteractiveIds: string[];
34
+ isVirtualized: boolean;
35
+ items: import("../..").Item<any>[];
36
+ mode: "multiple" | "single";
37
+ value: string | undefined;
38
+ inputRef: import("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 | import("react").SyntheticEvent<Element, Event> | undefined): void;
47
+ hide(event?: Event | import("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: import("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
+ onKeyDown(event: React.KeyboardEvent): void;
83
+ }>;
84
+ //# sourceMappingURL=useComboboxInputOpenWithArrowKeys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useComboboxInputOpenWithArrowKeys.d.ts","sourceRoot":"","sources":["../../../../combobox/lib/useComboboxInputOpenWithArrowKeys.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAEzB,mBAAmB;EAUtC,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useComboboxInputOpenWithArrowKeys = void 0;
4
+ const common_1 = require("@workday/canvas-kit-react/common");
5
+ const useComboboxModel_1 = require("./useComboboxModel");
6
+ /**
7
+ * Opens a `Combobox` with the up/down arrow keys. This should be used only on a
8
+ * {@link ComboboxInput Combobox.Input}. It adds a keydown listener for the up/down arrow keys.
9
+ */
10
+ exports.useComboboxInputOpenWithArrowKeys = common_1.createElemPropsHook(useComboboxModel_1.useComboboxModel)(model => {
11
+ return {
12
+ onKeyDown(event) {
13
+ if (event.key === 'ArrowDown' ||
14
+ (event.key === 'ArrowUp' && model.state.visibility !== 'visible')) {
15
+ model.events.show(event);
16
+ model.events.setWidth(event.currentTarget.clientWidth);
17
+ }
18
+ },
19
+ };
20
+ });
@@ -0,0 +1,28 @@
1
+ import { useListLoader } from '@workday/canvas-kit-react/collection';
2
+ /**
3
+ * Creates a `Combobox` data loader and a model. The `Combobox` loader extends the
4
+ * {@link useListLoader} and connects a {@link ComboboxInput Combobox.Input} to the filter of the
5
+ * data loader. A simple loader using
6
+ * [fetch](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) could look like the
7
+ * following:
8
+ *
9
+ * ```ts
10
+ * const {model, loader} = useComboboxLoader(
11
+ * {
12
+ * total: 0,
13
+ * pageSize: 20,
14
+ * async load({pageNumber, pageSize, filter}) {
15
+ * // `filter` will be a `string`
16
+ * return fetch(`/myUrl?filter=${filter}`)
17
+ * .then(response => response.json())
18
+ * .then(response => {
19
+ * return {total: response.total, items: response.items};
20
+ * });
21
+ * },
22
+ * },
23
+ * useComboboxModel
24
+ * );
25
+ * ```
26
+ */
27
+ export declare const useComboboxLoader: typeof useListLoader;
28
+ //# sourceMappingURL=useComboboxLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useComboboxLoader.d.ts","sourceRoot":"","sources":["../../../../combobox/lib/useComboboxLoader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,aAAa,EAAC,MAAM,sCAAsC,CAAC;AAuBnE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,iBAAiB,EAAE,OAAO,aAqBtC,CAAC"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.useComboboxLoader = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const collection_1 = require("@workday/canvas-kit-react/collection");
9
+ const useDebounce = () => {
10
+ const debounceTimer = react_1.default.useRef(-1);
11
+ react_1.default.useEffect(() => {
12
+ return () => {
13
+ // We want to clear any timeout on unload. We disable the ESLint rule because this is actually
14
+ // what we want
15
+ // eslint-disable-next-line react-hooks/exhaustive-deps
16
+ clearTimeout(debounceTimer.current);
17
+ };
18
+ }, []);
19
+ return (fn, wait) => {
20
+ clearTimeout(debounceTimer.current);
21
+ debounceTimer.current = setTimeout(fn, wait); // We don't actually care what the real return type of setTimeout is. It is a number in the browser and something else in Node
22
+ };
23
+ };
24
+ /**
25
+ * Creates a `Combobox` data loader and a model. The `Combobox` loader extends the
26
+ * {@link useListLoader} and connects a {@link ComboboxInput Combobox.Input} to the filter of the
27
+ * data loader. A simple loader using
28
+ * [fetch](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) could look like the
29
+ * following:
30
+ *
31
+ * ```ts
32
+ * const {model, loader} = useComboboxLoader(
33
+ * {
34
+ * total: 0,
35
+ * pageSize: 20,
36
+ * async load({pageNumber, pageSize, filter}) {
37
+ * // `filter` will be a `string`
38
+ * return fetch(`/myUrl?filter=${filter}`)
39
+ * .then(response => response.json())
40
+ * .then(response => {
41
+ * return {total: response.total, items: response.items};
42
+ * });
43
+ * },
44
+ * },
45
+ * useComboboxModel
46
+ * );
47
+ * ```
48
+ */
49
+ const useComboboxLoader = (config, modelHook) => {
50
+ const debounce = useDebounce();
51
+ const list = collection_1.useListLoader({
52
+ shouldLoad(params, state) {
53
+ return ((config.shouldLoad ? config.shouldLoad(params, state) : true) &&
54
+ state.visibility !== 'hidden');
55
+ },
56
+ ...modelHook.mergeConfig(config, {
57
+ onChange(event) {
58
+ const value = event.currentTarget.value;
59
+ debounce(() => list.loader.updateFilter(value), 150);
60
+ },
61
+ }),
62
+ }, modelHook);
63
+ return list;
64
+ };
65
+ exports.useComboboxLoader = useComboboxLoader;