@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
@@ -40,7 +40,7 @@ export interface MenuItemProps {
40
40
  'aria-disabled'?: boolean;
41
41
  }
42
42
 
43
- const StyledItem = styled(Box.as('button'))<StyledType>(
43
+ export const StyledMenuItem = styled(Box.as('button'))<StyledType>(
44
44
  ({theme}) => {
45
45
  return {
46
46
  ...type.levels.subtext.large,
@@ -65,7 +65,7 @@ const StyledItem = styled(Box.as('button'))<StyledType>(
65
65
  fill: iconColors.hover,
66
66
  },
67
67
  },
68
- '&:focus': {
68
+ '&:focus, &.focus': {
69
69
  outline: 'none',
70
70
  backgroundColor: theme.canvas.palette.primary.main,
71
71
  color: typeColors.inverse,
@@ -89,7 +89,7 @@ const StyledItem = styled(Box.as('button'))<StyledType>(
89
89
  fill: iconColors.hover,
90
90
  },
91
91
  },
92
- '&:focus': {
92
+ '&:focus, &.focus': {
93
93
  '.wd-icon-background ~ .wd-icon-accent, .wd-icon-background ~ .wd-icon-accent2': {
94
94
  fill: iconColors.hover,
95
95
  },
@@ -102,7 +102,7 @@ const StyledItem = styled(Box.as('button'))<StyledType>(
102
102
  '.wd-icon-fill, .wd-icon-accent, .wd-icon-accent2': {
103
103
  fill: iconColors.disabled,
104
104
  },
105
- '&:focus': {
105
+ '&:focus, &.focus': {
106
106
  backgroundColor: colors.blueberry200,
107
107
  '.wd-icon-background ~ .wd-icon-accent, .wd-icon-background ~ .wd-icon-accent2': {
108
108
  fill: iconColors.disabled,
@@ -133,7 +133,7 @@ const StyledItem = styled(Box.as('button'))<StyledType>(
133
133
  export const useMenuItem = composeHooks(
134
134
  createElemPropsHook(useMenuModel)(
135
135
  (model, ref, elemProps: {'data-id': string} = {'data-id': ''}) => {
136
- const {localRef, elementRef} = useLocalRef(ref);
136
+ const {localRef, elementRef} = useLocalRef(ref as React.Ref<HTMLElement>);
137
137
  const id = elemProps['data-id'];
138
138
 
139
139
  // focus on the item with the cursor
@@ -142,14 +142,11 @@ export const useMenuItem = composeHooks(
142
142
  if (model.state.cursorId === id) {
143
143
  // delay focus changes to allow PopperJS to position
144
144
  requestAnimationFrame(() => {
145
- localRef.current.focus();
145
+ localRef.current?.focus();
146
146
  });
147
147
  }
148
148
  }
149
- // We only need to run when the ID or cursorId has changed. If the static API is used, the first time
150
- // this is run, the id will be blank
151
- // eslint-disable-next-line react-hooks/exhaustive-deps
152
- }, [id, model.state.cursorId]);
149
+ }, [id, localRef, model.state.cursorId, model.state.mode]);
153
150
 
154
151
  return {
155
152
  ref: elementRef,
@@ -182,9 +179,9 @@ export const MenuItem = createSubcomponent('button')({
182
179
  })<MenuItemProps>(({children, ...elemProps}, Element) => {
183
180
  return (
184
181
  <OverflowTooltip placement="left">
185
- <StyledItem minHeight={space.xl} as={Element} {...elemProps}>
182
+ <StyledMenuItem minHeight={space.xl} as={Element} {...elemProps}>
186
183
  {children}
187
- </StyledItem>
184
+ </StyledMenuItem>
188
185
  </OverflowTooltip>
189
186
  );
190
187
  });
@@ -5,25 +5,31 @@ import {
5
5
  createSubcomponent,
6
6
  createElemPropsHook,
7
7
  ExtractProps,
8
+ composeHooks,
8
9
  } from '@workday/canvas-kit-react/common';
9
- import {ListBox} from '@workday/canvas-kit-react/collection';
10
- import {Flex} from '@workday/canvas-kit-react/layout';
10
+ import {ListBox, ListProps} from '@workday/canvas-kit-react/collection';
11
+ import {useReturnFocus, useFocusRedirect} from '@workday/canvas-kit-react/popup';
11
12
 
12
13
  import {useMenuModel} from './useMenuModel';
13
14
 
14
- export interface MenuListProps<T = any> extends Omit<ExtractProps<typeof Flex, never>, 'children'> {
15
+ export interface MenuListProps<T = any>
16
+ extends Omit<ExtractProps<typeof ListBox, never>, 'children'> {
15
17
  /**
16
18
  * The label text of the MenuList.
17
19
  */
18
- children: React.ReactNode | ((item: T) => React.ReactNode);
20
+ children: ListProps<T>['children'];
19
21
  }
20
22
 
21
- export const useMenuList = createElemPropsHook(useMenuModel)(model => {
22
- return {
23
- role: 'menu',
24
- 'aria-labelledby': model.state.id,
25
- };
26
- });
23
+ export const useMenuList = composeHooks(
24
+ createElemPropsHook(useMenuModel)(model => {
25
+ return {
26
+ role: 'menu',
27
+ 'aria-labelledby': model.state.id,
28
+ };
29
+ }),
30
+ useReturnFocus,
31
+ useFocusRedirect
32
+ );
27
33
 
28
34
  export const MenuList = createSubcomponent('div')({
29
35
  displayName: 'Menu.List',
@@ -2,9 +2,7 @@ import {createModelHook} from '@workday/canvas-kit-react/common';
2
2
  import {
3
3
  useAlwaysCloseOnOutsideClick,
4
4
  useCloseOnEscape,
5
- useFocusRedirect,
6
5
  usePopupModel,
7
- useReturnFocus,
8
6
  } from '@workday/canvas-kit-react/popup';
9
7
  import {
10
8
  multiSelectionManager,
@@ -18,16 +16,17 @@ export const useMenuModel = createModelHook({
18
16
  ...usePopupModel.defaultConfig,
19
17
  /** Determines the default selection manager used as well as if the menu closes when an item is selected */
20
18
  mode: 'single' as 'single' | 'multiple',
19
+ // don't virtualize menus by default to avoid oddities with card width
20
+
21
+ shouldVirtualize: false,
21
22
  },
22
23
  requiredConfig: {
23
24
  ...useListModel.requiredConfig,
24
25
  ...usePopupModel.requiredConfig,
25
26
  },
26
27
  })(config => {
27
- // don't virtualize menus by default to avoid oddities with card width
28
28
  const list = useListModel(
29
29
  useListModel.mergeConfig(config, {
30
- shouldVirtualize: false,
31
30
  selection: config.mode === 'single' ? singleSelectionManager : multiSelectionManager,
32
31
  })
33
32
  );
@@ -43,8 +42,6 @@ export const useMenuModel = createModelHook({
43
42
 
44
43
  useAlwaysCloseOnOutsideClick(popup);
45
44
  useCloseOnEscape(popup);
46
- useReturnFocus(popup);
47
- useFocusRedirect(popup);
48
45
 
49
46
  const state = {mode: config.mode, ...list.state, ...popup.state};
50
47
 
@@ -53,5 +50,5 @@ export const useMenuModel = createModelHook({
53
50
  ...popup.events,
54
51
  };
55
52
 
56
- return {...list, state, events};
53
+ return {...list, ...popup, state, events};
57
54
  });
@@ -10,8 +10,8 @@ import {usePopupHeading, usePopupModel} from '@workday/canvas-kit-react/popup';
10
10
 
11
11
  export const useModalHeading = composeHooks(
12
12
  usePopupHeading,
13
- createElemPropsHook(usePopupModel)((_, ref?: React.Ref<HTMLElement>) => {
14
- const {elementRef, localRef} = useLocalRef(ref);
13
+ createElemPropsHook(usePopupModel)((_, ref) => {
14
+ const {elementRef, localRef} = useLocalRef(ref as React.Ref<HTMLElement>);
15
15
 
16
16
  useMountLayout(() => {
17
17
  if (localRef.current?.parentElement?.querySelector('button')?.textContent) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@workday/canvas-kit-react",
3
- "version": "9.0.0-alpha.419-next.21+2436a0cd",
3
+ "version": "9.0.0",
4
4
  "description": "The parent module that contains all Workday Canvas Kit React components",
5
5
  "author": "Workday, Inc. (https://www.workday.com)",
6
6
  "license": "Apache-2.0",
@@ -49,7 +49,7 @@
49
49
  "@emotion/styled": "^11.6.0",
50
50
  "@popperjs/core": "^2.5.4",
51
51
  "@workday/canvas-colors-web": "^2.0.0",
52
- "@workday/canvas-kit-popup-stack": "^9.0.0-alpha.419-next.21+2436a0cd",
52
+ "@workday/canvas-kit-popup-stack": "^9.0.0",
53
53
  "@workday/canvas-system-icons-web": "^3.0.0",
54
54
  "@workday/design-assets-types": "^0.2.8",
55
55
  "chroma-js": "^2.1.0",
@@ -66,5 +66,5 @@
66
66
  "@workday/canvas-accent-icons-web": "^3.0.0",
67
67
  "@workday/canvas-applet-icons-web": "^2.0.0"
68
68
  },
69
- "gitHead": "2436a0cd3dc23fd2d4f6350af6f76a9591f83e30"
69
+ "gitHead": "4e8110ad9758d19ef214fc6792f4803c2e25bac3"
70
70
  }
@@ -170,21 +170,18 @@ export const StyledTabItem = styled(Box.as('button'))<StyledType & Pick<TabsItem
170
170
  );
171
171
 
172
172
  export const useTabsItem = composeHooks(
173
- createElemPropsHook(useTabsModel)(
174
- ({state}, _?: React.Ref<HTMLButtonElement>, elemProps: {'data-id'?: string} = {}) => {
175
- const name = elemProps['data-id'] || '';
173
+ createElemPropsHook(useTabsModel)(({state}, _, elemProps: {'data-id'?: string} = {}) => {
174
+ const name = elemProps['data-id'] || '';
176
175
 
177
- const selected = !!elemProps['data-id'] && isSelected(name, state);
176
+ const selected = !!elemProps['data-id'] && isSelected(name, state);
178
177
 
179
- return {
180
- type: 'button' as const,
181
- role: 'tab' as const,
182
- id: `${state.id}-${name}`,
183
- 'aria-selected': selected,
184
- 'aria-controls': `tabpanel-${state.id}-${name}`,
185
- };
186
- }
187
- ),
178
+ return {
179
+ type: 'button' as const,
180
+ role: 'tab' as const,
181
+ 'aria-selected': selected,
182
+ 'aria-controls': `tabpanel-${state.id}-${name}`,
183
+ };
184
+ }),
188
185
  useListItemSelect,
189
186
  useOverflowListItemMeasure,
190
187
  useListItemRovingFocus,
@@ -39,11 +39,7 @@ export interface TabPanelProps extends ExtractProps<typeof Box, never> {
39
39
  const StyledTabsPanel = styled(Box)<StyledType>(hideMouseFocus);
40
40
 
41
41
  export const useTabsPanel = createElemPropsHook(useTabsModel)(
42
- (
43
- {state, events},
44
- _?: React.Ref<HTMLElement>,
45
- elemProps: {'data-id'?: string; item?: Item<any>} = {}
46
- ) => {
42
+ ({state, events}, _, elemProps: {'data-id'?: string; item?: Item<any>} = {}) => {
47
43
  const [localId, setLocalId] = React.useState(elemProps['data-id'] || elemProps.item?.id || '');
48
44
 
49
45
  useMountLayout(() => {
@@ -48,6 +48,7 @@ export const useTabsModel = createModelHook({
48
48
  menuConfig: {} as typeof useMenuModel.TConfig,
49
49
  },
50
50
  requiredConfig: useOverflowListModel.requiredConfig,
51
+ contextOverride: useOverflowListModel.Context,
51
52
  })(config => {
52
53
  const initialSelectedRef = React.useRef(config.initialTab);
53
54
  const getId = config.getId || defaultGetId;