@workday/canvas-kit-react 12.1.0-943-next.0 → 12.1.0-945-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.
Files changed (237) hide show
  1. package/collection/lib/useOverflowListItemMeasure.tsx +6 -2
  2. package/collection/lib/useOverflowListMeasure.ts +1 -1
  3. package/collection/lib/useOverflowListModel.tsx +90 -51
  4. package/collection/lib/useOverflowListTarget.tsx +5 -1
  5. package/dist/commonjs/action-bar/lib/ActionBar.d.ts +452 -0
  6. package/dist/commonjs/action-bar/lib/ActionBar.d.ts.map +1 -1
  7. package/dist/commonjs/action-bar/lib/ActionBarItem.d.ts +36 -0
  8. package/dist/commonjs/action-bar/lib/ActionBarItem.d.ts.map +1 -1
  9. package/dist/commonjs/action-bar/lib/ActionBarList.d.ts +36 -0
  10. package/dist/commonjs/action-bar/lib/ActionBarList.d.ts.map +1 -1
  11. package/dist/commonjs/action-bar/lib/ActionBarOverflowButton.d.ts +36 -0
  12. package/dist/commonjs/action-bar/lib/ActionBarOverflowButton.d.ts.map +1 -1
  13. package/dist/commonjs/action-bar/lib/useActionBarModel.d.ts +434 -0
  14. package/dist/commonjs/action-bar/lib/useActionBarModel.d.ts.map +1 -1
  15. package/dist/commonjs/avatar/lib/Avatar.js +21 -21
  16. package/dist/commonjs/badge/lib/CountBadge.js +3 -3
  17. package/dist/commonjs/breadcrumbs/lib/Breadcrumbs.d.ts +525 -385
  18. package/dist/commonjs/breadcrumbs/lib/Breadcrumbs.d.ts.map +1 -1
  19. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsCurrentItem.d.ts +36 -0
  20. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsCurrentItem.d.ts.map +1 -1
  21. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsItem.d.ts +36 -0
  22. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsItem.d.ts.map +1 -1
  23. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsList.d.ts +18 -0
  24. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsList.d.ts.map +1 -1
  25. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsOverflowButton.d.ts +36 -0
  26. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsOverflowButton.d.ts.map +1 -1
  27. package/dist/commonjs/breadcrumbs/lib/hooks/useBreadcrumbsModel.d.ts +434 -0
  28. package/dist/commonjs/breadcrumbs/lib/hooks/useBreadcrumbsModel.d.ts.map +1 -1
  29. package/dist/commonjs/button/lib/BaseButton.js +21 -21
  30. package/dist/commonjs/button/lib/DeleteButton.js +1 -1
  31. package/dist/commonjs/button/lib/PrimaryButton.js +2 -2
  32. package/dist/commonjs/button/lib/SecondaryButton.js +2 -2
  33. package/dist/commonjs/button/lib/TertiaryButton.js +18 -18
  34. package/dist/commonjs/card/lib/Card.js +1 -1
  35. package/dist/commonjs/card/lib/CardBody.js +1 -1
  36. package/dist/commonjs/card/lib/CardHeading.js +1 -1
  37. package/dist/commonjs/checkbox/lib/CheckBackground.js +3 -3
  38. package/dist/commonjs/checkbox/lib/CheckboxCheck.js +5 -5
  39. package/dist/commonjs/checkbox/lib/CheckboxContainer.js +1 -1
  40. package/dist/commonjs/checkbox/lib/CheckboxInput.js +5 -5
  41. package/dist/commonjs/checkbox/lib/CheckboxRipple.js +1 -1
  42. package/dist/commonjs/collection/lib/ListBox.js +3 -3
  43. package/dist/commonjs/collection/lib/useOverflowListItemMeasure.d.ts +18 -0
  44. package/dist/commonjs/collection/lib/useOverflowListItemMeasure.d.ts.map +1 -1
  45. package/dist/commonjs/collection/lib/useOverflowListItemMeasure.js +5 -2
  46. package/dist/commonjs/collection/lib/useOverflowListMeasure.d.ts +18 -0
  47. package/dist/commonjs/collection/lib/useOverflowListMeasure.d.ts.map +1 -1
  48. package/dist/commonjs/collection/lib/useOverflowListMeasure.js +1 -1
  49. package/dist/commonjs/collection/lib/useOverflowListModel.d.ts +846 -1
  50. package/dist/commonjs/collection/lib/useOverflowListModel.d.ts.map +1 -1
  51. package/dist/commonjs/collection/lib/useOverflowListModel.js +73 -35
  52. package/dist/commonjs/collection/lib/useOverflowListTarget.d.ts +18 -0
  53. package/dist/commonjs/collection/lib/useOverflowListTarget.d.ts.map +1 -1
  54. package/dist/commonjs/collection/lib/useOverflowListTarget.js +4 -1
  55. package/dist/commonjs/combobox/lib/ComboboxMenuList.js +1 -1
  56. package/dist/commonjs/common/lib/AccessibleHide.js +1 -1
  57. package/dist/commonjs/common/lib/CanvasProvider.js +1 -1
  58. package/dist/commonjs/form-field/lib/FormFieldContainer.js +1 -1
  59. package/dist/commonjs/form-field/lib/FormFieldField.js +1 -1
  60. package/dist/commonjs/form-field/lib/FormFieldGroupLabel.js +5 -5
  61. package/dist/commonjs/form-field/lib/FormFieldGroupList.js +3 -3
  62. package/dist/commonjs/form-field/lib/FormFieldHint.js +3 -3
  63. package/dist/commonjs/form-field/lib/FormFieldLabel.js +6 -6
  64. package/dist/commonjs/form-field/lib/formFieldStencil.js +8 -8
  65. package/dist/commonjs/icon/lib/AccentIcon.js +2 -2
  66. package/dist/commonjs/icon/lib/AppletIcon.js +1 -1
  67. package/dist/commonjs/icon/lib/Graphic.js +2 -2
  68. package/dist/commonjs/icon/lib/Svg.js +2 -2
  69. package/dist/commonjs/icon/lib/SystemIcon.js +1 -1
  70. package/dist/commonjs/icon/lib/SystemIconCircle.js +1 -1
  71. package/dist/commonjs/loading-dots/lib/LoadingDots.js +2 -2
  72. package/dist/commonjs/menu/lib/MenuCard.js +1 -1
  73. package/dist/commonjs/menu/lib/MenuItem.js +1 -1
  74. package/dist/commonjs/menu/lib/MenuList.js +3 -3
  75. package/dist/commonjs/menu/lib/MenuOption.js +1 -1
  76. package/dist/commonjs/modal/lib/ModalBody.js +1 -1
  77. package/dist/commonjs/modal/lib/ModalCard.js +1 -1
  78. package/dist/commonjs/modal/lib/ModalHeading.js +1 -1
  79. package/dist/commonjs/modal/lib/ModalOverflowOverlay.js +1 -1
  80. package/dist/commonjs/modal/lib/ModalOverlay.js +2 -2
  81. package/dist/commonjs/popup/lib/PopupBody.js +1 -1
  82. package/dist/commonjs/popup/lib/PopupCard.js +2 -2
  83. package/dist/commonjs/popup/lib/PopupCloseIcon.js +1 -1
  84. package/dist/commonjs/popup/lib/PopupHeading.js +1 -1
  85. package/dist/commonjs/select/lib/SelectCard.js +1 -1
  86. package/dist/commonjs/select/lib/SelectInput.js +3 -3
  87. package/dist/commonjs/switch/lib/Switch.js +7 -7
  88. package/dist/commonjs/table/lib/Table.js +1 -1
  89. package/dist/commonjs/table/lib/TableBody.js +1 -1
  90. package/dist/commonjs/table/lib/TableCaption.js +1 -1
  91. package/dist/commonjs/table/lib/TableCell.js +1 -1
  92. package/dist/commonjs/table/lib/TableFooter.js +1 -1
  93. package/dist/commonjs/table/lib/TableHead.js +1 -1
  94. package/dist/commonjs/table/lib/TableHeader.js +1 -1
  95. package/dist/commonjs/table/lib/TableRow.js +1 -1
  96. package/dist/commonjs/tabs/lib/Tabs.d.ts +520 -0
  97. package/dist/commonjs/tabs/lib/Tabs.d.ts.map +1 -1
  98. package/dist/commonjs/tabs/lib/TabsItem.d.ts +36 -0
  99. package/dist/commonjs/tabs/lib/TabsItem.d.ts.map +1 -1
  100. package/dist/commonjs/tabs/lib/TabsList.d.ts +36 -0
  101. package/dist/commonjs/tabs/lib/TabsList.d.ts.map +1 -1
  102. package/dist/commonjs/tabs/lib/TabsOverflowButton.d.ts +36 -0
  103. package/dist/commonjs/tabs/lib/TabsOverflowButton.d.ts.map +1 -1
  104. package/dist/commonjs/tabs/lib/TabsPanel.d.ts +36 -0
  105. package/dist/commonjs/tabs/lib/TabsPanel.d.ts.map +1 -1
  106. package/dist/commonjs/tabs/lib/TabsPanels.d.ts +18 -0
  107. package/dist/commonjs/tabs/lib/TabsPanels.d.ts.map +1 -1
  108. package/dist/commonjs/tabs/lib/useTabsModel.d.ts +530 -0
  109. package/dist/commonjs/tabs/lib/useTabsModel.d.ts.map +1 -1
  110. package/dist/commonjs/text/lib/LabelText.js +6 -6
  111. package/dist/commonjs/text/lib/Text.js +16 -16
  112. package/dist/commonjs/text/lib/TypeLevelComponents.js +4 -4
  113. package/dist/commonjs/text-area/lib/TextArea.js +5 -5
  114. package/dist/commonjs/text-input/lib/InputGroup.js +6 -6
  115. package/dist/commonjs/text-input/lib/TextInput.js +5 -5
  116. package/dist/commonjs/toast/lib/Toast.js +1 -1
  117. package/dist/commonjs/toast/lib/ToastBody.js +1 -1
  118. package/dist/commonjs/toast/lib/ToastCloseIcon.js +1 -1
  119. package/dist/commonjs/toast/lib/ToastIcon.js +1 -1
  120. package/dist/commonjs/toast/lib/ToastMessage.js +1 -1
  121. package/dist/es6/action-bar/lib/ActionBar.d.ts +452 -0
  122. package/dist/es6/action-bar/lib/ActionBar.d.ts.map +1 -1
  123. package/dist/es6/action-bar/lib/ActionBarItem.d.ts +36 -0
  124. package/dist/es6/action-bar/lib/ActionBarItem.d.ts.map +1 -1
  125. package/dist/es6/action-bar/lib/ActionBarList.d.ts +36 -0
  126. package/dist/es6/action-bar/lib/ActionBarList.d.ts.map +1 -1
  127. package/dist/es6/action-bar/lib/ActionBarOverflowButton.d.ts +36 -0
  128. package/dist/es6/action-bar/lib/ActionBarOverflowButton.d.ts.map +1 -1
  129. package/dist/es6/action-bar/lib/useActionBarModel.d.ts +434 -0
  130. package/dist/es6/action-bar/lib/useActionBarModel.d.ts.map +1 -1
  131. package/dist/es6/avatar/lib/Avatar.js +21 -21
  132. package/dist/es6/badge/lib/CountBadge.js +3 -3
  133. package/dist/es6/breadcrumbs/lib/Breadcrumbs.d.ts +525 -385
  134. package/dist/es6/breadcrumbs/lib/Breadcrumbs.d.ts.map +1 -1
  135. package/dist/es6/breadcrumbs/lib/BreadcrumbsCurrentItem.d.ts +36 -0
  136. package/dist/es6/breadcrumbs/lib/BreadcrumbsCurrentItem.d.ts.map +1 -1
  137. package/dist/es6/breadcrumbs/lib/BreadcrumbsItem.d.ts +36 -0
  138. package/dist/es6/breadcrumbs/lib/BreadcrumbsItem.d.ts.map +1 -1
  139. package/dist/es6/breadcrumbs/lib/BreadcrumbsList.d.ts +18 -0
  140. package/dist/es6/breadcrumbs/lib/BreadcrumbsList.d.ts.map +1 -1
  141. package/dist/es6/breadcrumbs/lib/BreadcrumbsOverflowButton.d.ts +36 -0
  142. package/dist/es6/breadcrumbs/lib/BreadcrumbsOverflowButton.d.ts.map +1 -1
  143. package/dist/es6/breadcrumbs/lib/hooks/useBreadcrumbsModel.d.ts +434 -0
  144. package/dist/es6/breadcrumbs/lib/hooks/useBreadcrumbsModel.d.ts.map +1 -1
  145. package/dist/es6/button/lib/BaseButton.js +21 -21
  146. package/dist/es6/button/lib/DeleteButton.js +1 -1
  147. package/dist/es6/button/lib/PrimaryButton.js +2 -2
  148. package/dist/es6/button/lib/SecondaryButton.js +2 -2
  149. package/dist/es6/button/lib/TertiaryButton.js +18 -18
  150. package/dist/es6/card/lib/Card.js +1 -1
  151. package/dist/es6/card/lib/CardBody.js +1 -1
  152. package/dist/es6/card/lib/CardHeading.js +1 -1
  153. package/dist/es6/checkbox/lib/CheckBackground.js +3 -3
  154. package/dist/es6/checkbox/lib/CheckboxCheck.js +5 -5
  155. package/dist/es6/checkbox/lib/CheckboxContainer.js +1 -1
  156. package/dist/es6/checkbox/lib/CheckboxInput.js +5 -5
  157. package/dist/es6/checkbox/lib/CheckboxRipple.js +1 -1
  158. package/dist/es6/collection/lib/ListBox.js +3 -3
  159. package/dist/es6/collection/lib/useOverflowListItemMeasure.d.ts +18 -0
  160. package/dist/es6/collection/lib/useOverflowListItemMeasure.d.ts.map +1 -1
  161. package/dist/es6/collection/lib/useOverflowListItemMeasure.js +5 -2
  162. package/dist/es6/collection/lib/useOverflowListMeasure.d.ts +18 -0
  163. package/dist/es6/collection/lib/useOverflowListMeasure.d.ts.map +1 -1
  164. package/dist/es6/collection/lib/useOverflowListMeasure.js +1 -1
  165. package/dist/es6/collection/lib/useOverflowListModel.d.ts +846 -1
  166. package/dist/es6/collection/lib/useOverflowListModel.d.ts.map +1 -1
  167. package/dist/es6/collection/lib/useOverflowListModel.js +73 -35
  168. package/dist/es6/collection/lib/useOverflowListTarget.d.ts +18 -0
  169. package/dist/es6/collection/lib/useOverflowListTarget.d.ts.map +1 -1
  170. package/dist/es6/collection/lib/useOverflowListTarget.js +4 -1
  171. package/dist/es6/combobox/lib/ComboboxMenuList.js +1 -1
  172. package/dist/es6/common/lib/AccessibleHide.js +1 -1
  173. package/dist/es6/common/lib/CanvasProvider.js +1 -1
  174. package/dist/es6/form-field/lib/FormFieldContainer.js +1 -1
  175. package/dist/es6/form-field/lib/FormFieldField.js +1 -1
  176. package/dist/es6/form-field/lib/FormFieldGroupLabel.js +5 -5
  177. package/dist/es6/form-field/lib/FormFieldGroupList.js +3 -3
  178. package/dist/es6/form-field/lib/FormFieldHint.js +3 -3
  179. package/dist/es6/form-field/lib/FormFieldLabel.js +6 -6
  180. package/dist/es6/form-field/lib/formFieldStencil.js +8 -8
  181. package/dist/es6/icon/lib/AccentIcon.js +2 -2
  182. package/dist/es6/icon/lib/AppletIcon.js +1 -1
  183. package/dist/es6/icon/lib/Graphic.js +2 -2
  184. package/dist/es6/icon/lib/Svg.js +2 -2
  185. package/dist/es6/icon/lib/SystemIcon.js +1 -1
  186. package/dist/es6/icon/lib/SystemIconCircle.js +1 -1
  187. package/dist/es6/loading-dots/lib/LoadingDots.js +2 -2
  188. package/dist/es6/menu/lib/MenuCard.js +1 -1
  189. package/dist/es6/menu/lib/MenuItem.js +1 -1
  190. package/dist/es6/menu/lib/MenuList.js +3 -3
  191. package/dist/es6/menu/lib/MenuOption.js +1 -1
  192. package/dist/es6/modal/lib/ModalBody.js +1 -1
  193. package/dist/es6/modal/lib/ModalCard.js +1 -1
  194. package/dist/es6/modal/lib/ModalHeading.js +1 -1
  195. package/dist/es6/modal/lib/ModalOverflowOverlay.js +1 -1
  196. package/dist/es6/modal/lib/ModalOverlay.js +2 -2
  197. package/dist/es6/popup/lib/PopupBody.js +1 -1
  198. package/dist/es6/popup/lib/PopupCard.js +2 -2
  199. package/dist/es6/popup/lib/PopupCloseIcon.js +1 -1
  200. package/dist/es6/popup/lib/PopupHeading.js +1 -1
  201. package/dist/es6/select/lib/SelectCard.js +1 -1
  202. package/dist/es6/select/lib/SelectInput.js +3 -3
  203. package/dist/es6/switch/lib/Switch.js +7 -7
  204. package/dist/es6/table/lib/Table.js +1 -1
  205. package/dist/es6/table/lib/TableBody.js +1 -1
  206. package/dist/es6/table/lib/TableCaption.js +1 -1
  207. package/dist/es6/table/lib/TableCell.js +1 -1
  208. package/dist/es6/table/lib/TableFooter.js +1 -1
  209. package/dist/es6/table/lib/TableHead.js +1 -1
  210. package/dist/es6/table/lib/TableHeader.js +1 -1
  211. package/dist/es6/table/lib/TableRow.js +1 -1
  212. package/dist/es6/tabs/lib/Tabs.d.ts +520 -0
  213. package/dist/es6/tabs/lib/Tabs.d.ts.map +1 -1
  214. package/dist/es6/tabs/lib/TabsItem.d.ts +36 -0
  215. package/dist/es6/tabs/lib/TabsItem.d.ts.map +1 -1
  216. package/dist/es6/tabs/lib/TabsList.d.ts +36 -0
  217. package/dist/es6/tabs/lib/TabsList.d.ts.map +1 -1
  218. package/dist/es6/tabs/lib/TabsOverflowButton.d.ts +36 -0
  219. package/dist/es6/tabs/lib/TabsOverflowButton.d.ts.map +1 -1
  220. package/dist/es6/tabs/lib/TabsPanel.d.ts +36 -0
  221. package/dist/es6/tabs/lib/TabsPanel.d.ts.map +1 -1
  222. package/dist/es6/tabs/lib/TabsPanels.d.ts +18 -0
  223. package/dist/es6/tabs/lib/TabsPanels.d.ts.map +1 -1
  224. package/dist/es6/tabs/lib/useTabsModel.d.ts +530 -0
  225. package/dist/es6/tabs/lib/useTabsModel.d.ts.map +1 -1
  226. package/dist/es6/text/lib/LabelText.js +6 -6
  227. package/dist/es6/text/lib/Text.js +16 -16
  228. package/dist/es6/text/lib/TypeLevelComponents.js +4 -4
  229. package/dist/es6/text-area/lib/TextArea.js +5 -5
  230. package/dist/es6/text-input/lib/InputGroup.js +6 -6
  231. package/dist/es6/text-input/lib/TextInput.js +5 -5
  232. package/dist/es6/toast/lib/Toast.js +1 -1
  233. package/dist/es6/toast/lib/ToastBody.js +1 -1
  234. package/dist/es6/toast/lib/ToastCloseIcon.js +1 -1
  235. package/dist/es6/toast/lib/ToastIcon.js +1 -1
  236. package/dist/es6/toast/lib/ToastMessage.js +1 -1
  237. package/package.json +4 -4
@@ -26,17 +26,21 @@ export const useOverflowListItemMeasure = createElemPropsHook(useOverflowListMod
26
26
  useMountLayout(() => {
27
27
  if (localRef.current) {
28
28
  const styles = getComputedStyle(localRef.current);
29
- model.events.addItemWidth({
29
+ model.events.addItemSize({
30
30
  id: name,
31
31
  width:
32
32
  localRef.current.offsetWidth +
33
33
  parseFloat(styles.marginLeft) +
34
34
  parseFloat(styles.marginRight),
35
+ height:
36
+ localRef.current.offsetHeight +
37
+ parseFloat(styles.marginTop) +
38
+ parseFloat(styles.marginBottom),
35
39
  });
36
40
  }
37
41
 
38
42
  return () => {
39
- model.events.removeItemWidth({id: name});
43
+ model.events.removeItemSize({id: name});
40
44
  };
41
45
  });
42
46
 
@@ -19,7 +19,7 @@ export const useOverflowListMeasure = createElemPropsHook(useOverflowListModel)(
19
19
 
20
20
  useResizeObserver({
21
21
  ref: localRef,
22
- onResize: model.events.setContainerWidth,
22
+ onResize: model.events.setContainerSize,
23
23
  });
24
24
  useMountLayout(() => {
25
25
  if (localRef.current) {
@@ -5,17 +5,17 @@ import {useSelectionListModel} from './useSelectionListModel';
5
5
  import {Item} from './useBaseListModel';
6
6
 
7
7
  export function getHiddenIds(
8
- containerWidth: number,
8
+ containerSize: number,
9
9
  containerGap: number,
10
- overflowTargetWidth: number,
11
- itemWidthCache: Record<string, number>,
10
+ overflowTargetSize: number,
11
+ itemSizeCache: Record<string, number>,
12
12
  selectedIds: string[] | 'all',
13
13
  items: Item<any>[]
14
14
  ): string[] {
15
15
  /** Allows us to prioritize showing the selected item */
16
16
  let selectedKey: undefined | string;
17
17
  /** Tally of combined item widths. We'll add items that fit until the container is full */
18
- let itemWidth = 0;
18
+ let itemSize = 0;
19
19
  /** Tally ids that won't fit inside the container. These will be used by components to hide
20
20
  * elements that won't fit in the container */
21
21
  const hiddenIds: string[] = [];
@@ -31,31 +31,31 @@ export function getHiddenIds(
31
31
  }
32
32
 
33
33
  if (
34
- Object.keys(itemWidthCache).reduce(
35
- (sum, key, index) => sum + itemWidthCache[key] + (index > 0 ? containerGap : 0),
34
+ Object.keys(itemSizeCache).reduce(
35
+ (sum, key, index) => sum + itemSizeCache[key] + (index > 0 ? containerGap : 0),
36
36
  0
37
- ) <= containerWidth
37
+ ) <= containerSize
38
38
  ) {
39
39
  // All items fit, return empty array
40
40
  return [];
41
41
  } else if (selectedKey) {
42
- if (itemWidthCache[selectedKey] + overflowTargetWidth > containerWidth) {
42
+ if (itemSizeCache[selectedKey] + overflowTargetSize > containerSize) {
43
43
  // If the selected item doesn't fit, only show overflow (all items hidden)
44
- return Object.keys(itemWidthCache);
44
+ return Object.keys(itemSizeCache);
45
45
  } else {
46
46
  // at least the selected item and overflow target fit. Update our itemWidth with the sum
47
- itemWidth += itemWidthCache[selectedKey] + overflowTargetWidth;
47
+ itemSize += itemSizeCache[selectedKey] + overflowTargetSize;
48
48
  shouldAddGap = true;
49
49
  }
50
50
  } else {
51
- itemWidth += overflowTargetWidth;
51
+ itemSize += overflowTargetSize;
52
52
  }
53
53
 
54
- for (const key in itemWidthCache) {
54
+ for (const key in itemSizeCache) {
55
55
  if (key !== selectedKey) {
56
- itemWidth += itemWidthCache[key] + (shouldAddGap ? containerGap : 0);
56
+ itemSize += itemSizeCache[key] + (shouldAddGap ? containerGap : 0);
57
57
  shouldAddGap = true;
58
- if (itemWidth > containerWidth) {
58
+ if (itemSize > containerSize) {
59
59
  hiddenIds.push(key);
60
60
  }
61
61
  }
@@ -81,13 +81,13 @@ export const useOverflowListModel = createModelHook({
81
81
  const shouldCalculateOverflow =
82
82
  config.shouldCalculateOverflow === undefined ? true : config.shouldCalculateOverflow;
83
83
  const [hiddenIds, setHiddenIds] = React.useState(config.initialHiddenIds);
84
- const [itemWidthCache, setItemWidthCache] = React.useState<Record<string, number>>({});
85
- const [containerWidth, setContainerWidth] = React.useState(0);
84
+ const [itemSizeCache, setItemSizeCache] = React.useState<Record<string, number>>({});
85
+ const [containerSize, setContainerSize] = React.useState(0);
86
86
  const [containerGap, setContainerGap] = React.useState(0);
87
- const containerWidthRef = React.useRef(0);
88
- const itemWidthCacheRef = React.useRef(itemWidthCache);
87
+ const containerSizeRef = React.useRef(0);
88
+ const itemSizeCacheRef = React.useRef(itemSizeCache);
89
89
  const [overflowTargetWidth, setOverflowTargetWidth] = React.useState(0);
90
- const overflowTargetWidthRef = React.useRef(0);
90
+ const overflowTargetSizeRef = React.useRef(0);
91
91
 
92
92
  const internalHiddenIds = shouldCalculateOverflow ? hiddenIds : [];
93
93
 
@@ -103,8 +103,16 @@ export const useOverflowListModel = createModelHook({
103
103
  const state = {
104
104
  ...model.state,
105
105
  hiddenIds: internalHiddenIds,
106
- itemWidthCache,
107
- containerWidth,
106
+ itemSizeCache,
107
+ /**
108
+ * @deprecated Use `itemSizeCache` instead
109
+ */
110
+ itemWidthCache: itemSizeCache,
111
+ containerSize,
112
+ /**
113
+ * @deprecated Use `containerSize` instead
114
+ */
115
+ containerWidth: containerSize,
108
116
  containerGap,
109
117
  overflowTargetWidth,
110
118
  };
@@ -114,10 +122,10 @@ export const useOverflowListModel = createModelHook({
114
122
  select(data: Parameters<typeof model.events.select>[0]) {
115
123
  const {selectedIds} = model.selection.select(data.id, state);
116
124
  const ids = getHiddenIds(
117
- containerWidthRef.current,
125
+ containerSizeRef.current,
118
126
  containerGap,
119
- overflowTargetWidthRef.current,
120
- itemWidthCacheRef.current,
127
+ overflowTargetSizeRef.current,
128
+ itemSizeCacheRef.current,
121
129
  selectedIds,
122
130
  config.items
123
131
  );
@@ -125,69 +133,93 @@ export const useOverflowListModel = createModelHook({
125
133
 
126
134
  setHiddenIds(ids);
127
135
  },
128
- setContainerWidth(data: {width?: number}) {
129
- containerWidthRef.current = data.width || 0;
130
- setContainerWidth(data.width || 0);
131
-
136
+ setContainerSize(data: {width?: number; height?: number}) {
137
+ containerSizeRef.current =
138
+ model.state.orientation === 'horizontal' ? data.width || 0 : data.height || 0;
139
+ setContainerSize(containerSizeRef.current);
132
140
  const ids = getHiddenIds(
133
- containerWidthRef.current,
141
+ containerSizeRef.current,
134
142
  containerGap,
135
- overflowTargetWidthRef.current,
136
- itemWidthCacheRef.current,
143
+ overflowTargetSizeRef.current,
144
+ itemSizeCacheRef.current,
137
145
  state.selectedIds,
138
146
  config.items
139
147
  );
140
-
141
148
  setHiddenIds(ids);
142
149
  },
150
+ /**
151
+ * @deprecated Use `setContainerSize` instead and pass both `width` and `height`
152
+ */
153
+ setContainerWidth(data: {width?: number}) {
154
+ events.setContainerSize({width: data.width, height: 0});
155
+ },
143
156
  setContainerGap(data: {size: number}) {
144
157
  setContainerGap(data.size);
145
158
 
146
159
  const ids = getHiddenIds(
147
- containerWidthRef.current,
160
+ containerSizeRef.current,
148
161
  data.size,
149
- overflowTargetWidthRef.current,
150
- itemWidthCacheRef.current,
162
+ overflowTargetSizeRef.current,
163
+ itemSizeCacheRef.current,
151
164
  state.selectedIds,
152
165
  config.items
153
166
  );
154
167
 
155
168
  setHiddenIds(ids);
156
169
  },
170
+ setOverflowTargetSize(data: {width: number; height: number}) {
171
+ overflowTargetSizeRef.current =
172
+ model.state.orientation === 'horizontal' ? data.width || 0 : data.height || 0;
173
+ setOverflowTargetWidth(overflowTargetSizeRef.current);
174
+ },
175
+
176
+ /**
177
+ *
178
+ * @deprecated `setOverflowTargetWidth` is deprecated. Please use `setOverflowTargetSize` and pass in the `width` and set `height` to `0`.
179
+ */
157
180
  setOverflowTargetWidth(data: {width: number}) {
158
- overflowTargetWidthRef.current = data.width;
159
- setOverflowTargetWidth(data.width);
181
+ overflowTargetSizeRef.current = data.width;
182
+ events.setOverflowTargetSize({width: overflowTargetSizeRef.current, height: 0});
160
183
  },
184
+
185
+ /**
186
+ *
187
+ * @deprecated `addItemWidth` is deprecated. Please use `addItemSize` and set the `width`
188
+ */
161
189
  addItemWidth(data: {id: string; width: number}) {
162
- itemWidthCacheRef.current = {
163
- ...itemWidthCacheRef.current,
164
- [data.id]: data.width,
190
+ events.addItemSize({id: data.id, width: data.width, height: 0});
191
+ },
192
+ addItemSize(data: {id: string; width: number; height: number}) {
193
+ itemSizeCacheRef.current = {
194
+ ...itemSizeCacheRef.current,
195
+ [data.id]: model.state.orientation === 'horizontal' ? data.width : data.height,
165
196
  };
166
197
 
167
- setItemWidthCache(itemWidthCacheRef.current);
198
+
199
+ setItemSizeCache(itemSizeCacheRef.current);
168
200
 
169
201
  const ids = getHiddenIds(
170
- containerWidthRef.current,
202
+ containerSizeRef.current,
171
203
  containerGap,
172
- overflowTargetWidthRef.current,
173
- itemWidthCacheRef.current,
204
+ overflowTargetSizeRef.current,
205
+ itemSizeCacheRef.current,
174
206
  state.selectedIds,
175
207
  config.items
176
208
  );
177
209
 
178
210
  setHiddenIds(ids);
179
211
  },
180
- removeItemWidth(data: {id: string}) {
181
- const newCache = {...itemWidthCacheRef.current};
212
+ removeItemSize(data: {id: string}) {
213
+ const newCache = {...itemSizeCacheRef.current};
182
214
  delete newCache[data.id];
183
- itemWidthCacheRef.current = newCache;
184
- setItemWidthCache(itemWidthCacheRef.current);
215
+ itemSizeCacheRef.current = newCache;
216
+ setItemSizeCache(itemSizeCacheRef.current);
185
217
 
186
218
  const ids = getHiddenIds(
187
- containerWidthRef.current,
219
+ containerSizeRef.current,
188
220
  containerGap,
189
- overflowTargetWidthRef.current,
190
- itemWidthCacheRef.current,
221
+ overflowTargetSizeRef.current,
222
+ itemSizeCacheRef.current,
191
223
  state.selectedIds !== 'all'
192
224
  ? state.selectedIds.filter(sId => data.id !== sId)
193
225
  : state.selectedIds,
@@ -196,6 +228,13 @@ export const useOverflowListModel = createModelHook({
196
228
 
197
229
  setHiddenIds(ids);
198
230
  },
231
+ /**
232
+ *
233
+ * @deprecated `removeItemWidth` is deprecated. Please use `removeItemSize`.
234
+ */
235
+ removeItemWidth(data: {id: string}) {
236
+ events.removeItemSize({id: data.id});
237
+ },
199
238
  addHiddenKey(data: {id: string}) {
200
239
  setHiddenIds(ids => ids.concat(data.id));
201
240
  },
@@ -24,11 +24,15 @@ export const useOverflowListTarget = createElemPropsHook(useOverflowListModel)((
24
24
  if (localRef.current) {
25
25
  const styles = getComputedStyle(localRef.current);
26
26
 
27
- model.events.setOverflowTargetWidth({
27
+ model.events.setOverflowTargetSize({
28
28
  width:
29
29
  localRef.current.offsetWidth +
30
30
  parseFloat(styles.marginLeft) +
31
31
  parseFloat(styles.marginRight),
32
+ height:
33
+ localRef.current.offsetWidth +
34
+ parseFloat(styles.marginTop) +
35
+ parseFloat(styles.marginBottom),
32
36
  });
33
37
  }
34
38
  });