@workday/canvas-kit-react 11.2.0-896-next.0 → 11.2.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 (148) hide show
  1. package/button/lib/DeleteButton.tsx +14 -3
  2. package/button/lib/PrimaryButton.tsx +14 -3
  3. package/button/lib/SecondaryButton.tsx +14 -3
  4. package/button/lib/TertiaryButton.tsx +10 -6
  5. package/button/lib/parts/ButtonLabelIcon.tsx +3 -2
  6. package/collection/lib/useOverflowListMeasure.ts +18 -4
  7. package/collection/lib/useOverflowListModel.tsx +34 -6
  8. package/dist/commonjs/action-bar/lib/ActionBar.d.ts +126 -0
  9. package/dist/commonjs/action-bar/lib/ActionBar.d.ts.map +1 -1
  10. package/dist/commonjs/action-bar/lib/ActionBarItem.d.ts +8 -0
  11. package/dist/commonjs/action-bar/lib/ActionBarItem.d.ts.map +1 -1
  12. package/dist/commonjs/action-bar/lib/ActionBarList.d.ts +9 -1
  13. package/dist/commonjs/action-bar/lib/ActionBarList.d.ts.map +1 -1
  14. package/dist/commonjs/action-bar/lib/ActionBarOverflowButton.d.ts +8 -0
  15. package/dist/commonjs/action-bar/lib/ActionBarOverflowButton.d.ts.map +1 -1
  16. package/dist/commonjs/action-bar/lib/useActionBarModel.d.ts +122 -0
  17. package/dist/commonjs/action-bar/lib/useActionBarModel.d.ts.map +1 -1
  18. package/dist/commonjs/breadcrumbs/lib/Breadcrumbs.d.ts +499 -51
  19. package/dist/commonjs/breadcrumbs/lib/Breadcrumbs.d.ts.map +1 -1
  20. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsCurrentItem.d.ts +8 -0
  21. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsCurrentItem.d.ts.map +1 -1
  22. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsItem.d.ts +8 -0
  23. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsItem.d.ts.map +1 -1
  24. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsList.d.ts +4 -0
  25. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsList.d.ts.map +1 -1
  26. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsOverflowButton.d.ts +8 -0
  27. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsOverflowButton.d.ts.map +1 -1
  28. package/dist/commonjs/breadcrumbs/lib/hooks/useBreadcrumbsModel.d.ts +122 -0
  29. package/dist/commonjs/breadcrumbs/lib/hooks/useBreadcrumbsModel.d.ts.map +1 -1
  30. package/dist/commonjs/button/lib/BaseButton.js +1 -1
  31. package/dist/commonjs/button/lib/DeleteButton.d.ts.map +1 -1
  32. package/dist/commonjs/button/lib/DeleteButton.js +4 -5
  33. package/dist/commonjs/button/lib/PrimaryButton.d.ts.map +1 -1
  34. package/dist/commonjs/button/lib/PrimaryButton.js +5 -6
  35. package/dist/commonjs/button/lib/SecondaryButton.d.ts.map +1 -1
  36. package/dist/commonjs/button/lib/SecondaryButton.js +5 -6
  37. package/dist/commonjs/button/lib/TertiaryButton.d.ts.map +1 -1
  38. package/dist/commonjs/button/lib/TertiaryButton.js +30 -27
  39. package/dist/commonjs/button/lib/parts/ButtonLabelIcon.d.ts.map +1 -1
  40. package/dist/commonjs/button/lib/parts/ButtonLabelIcon.js +2 -1
  41. package/dist/commonjs/checkbox/lib/CheckboxCheck.js +2 -2
  42. package/dist/commonjs/collection/lib/useOverflowListItemMeasure.d.ts +4 -0
  43. package/dist/commonjs/collection/lib/useOverflowListItemMeasure.d.ts.map +1 -1
  44. package/dist/commonjs/collection/lib/useOverflowListMeasure.d.ts +5 -1
  45. package/dist/commonjs/collection/lib/useOverflowListMeasure.d.ts.map +1 -1
  46. package/dist/commonjs/collection/lib/useOverflowListMeasure.js +11 -23
  47. package/dist/commonjs/collection/lib/useOverflowListModel.d.ts +123 -1
  48. package/dist/commonjs/collection/lib/useOverflowListModel.d.ts.map +1 -1
  49. package/dist/commonjs/collection/lib/useOverflowListModel.js +20 -11
  50. package/dist/commonjs/collection/lib/useOverflowListTarget.d.ts +4 -0
  51. package/dist/commonjs/collection/lib/useOverflowListTarget.d.ts.map +1 -1
  52. package/dist/commonjs/icon/lib/SystemIcon.d.ts +3 -1
  53. package/dist/commonjs/icon/lib/SystemIcon.d.ts.map +1 -1
  54. package/dist/commonjs/icon/lib/SystemIcon.js +3 -3
  55. package/dist/commonjs/icon/lib/SystemIconCircle.js +1 -1
  56. package/dist/commonjs/menu/lib/MenuItem.d.ts.map +1 -1
  57. package/dist/commonjs/menu/lib/MenuItem.js +1 -0
  58. package/dist/commonjs/select/lib/hooks/useSelectInput.d.ts +3 -3
  59. package/dist/commonjs/select/lib/hooks/useSelectInput.d.ts.map +1 -1
  60. package/dist/commonjs/select/lib/hooks/useSelectInput.js +2 -2
  61. package/dist/commonjs/side-panel/lib/SidePanel.js +1 -1
  62. package/dist/commonjs/tabs/lib/Tabs.d.ts +144 -0
  63. package/dist/commonjs/tabs/lib/Tabs.d.ts.map +1 -1
  64. package/dist/commonjs/tabs/lib/TabsItem.d.ts +8 -0
  65. package/dist/commonjs/tabs/lib/TabsItem.d.ts.map +1 -1
  66. package/dist/commonjs/tabs/lib/TabsList.d.ts +9 -1
  67. package/dist/commonjs/tabs/lib/TabsList.d.ts.map +1 -1
  68. package/dist/commonjs/tabs/lib/TabsOverflowButton.d.ts +8 -0
  69. package/dist/commonjs/tabs/lib/TabsOverflowButton.d.ts.map +1 -1
  70. package/dist/commonjs/tabs/lib/TabsPanel.d.ts +8 -0
  71. package/dist/commonjs/tabs/lib/TabsPanel.d.ts.map +1 -1
  72. package/dist/commonjs/tabs/lib/TabsPanels.d.ts +4 -0
  73. package/dist/commonjs/tabs/lib/TabsPanels.d.ts.map +1 -1
  74. package/dist/commonjs/tabs/lib/useTabsModel.d.ts +148 -0
  75. package/dist/commonjs/tabs/lib/useTabsModel.d.ts.map +1 -1
  76. package/dist/es6/action-bar/lib/ActionBar.d.ts +126 -0
  77. package/dist/es6/action-bar/lib/ActionBar.d.ts.map +1 -1
  78. package/dist/es6/action-bar/lib/ActionBarItem.d.ts +8 -0
  79. package/dist/es6/action-bar/lib/ActionBarItem.d.ts.map +1 -1
  80. package/dist/es6/action-bar/lib/ActionBarList.d.ts +9 -1
  81. package/dist/es6/action-bar/lib/ActionBarList.d.ts.map +1 -1
  82. package/dist/es6/action-bar/lib/ActionBarOverflowButton.d.ts +8 -0
  83. package/dist/es6/action-bar/lib/ActionBarOverflowButton.d.ts.map +1 -1
  84. package/dist/es6/action-bar/lib/useActionBarModel.d.ts +122 -0
  85. package/dist/es6/action-bar/lib/useActionBarModel.d.ts.map +1 -1
  86. package/dist/es6/breadcrumbs/lib/Breadcrumbs.d.ts +499 -51
  87. package/dist/es6/breadcrumbs/lib/Breadcrumbs.d.ts.map +1 -1
  88. package/dist/es6/breadcrumbs/lib/BreadcrumbsCurrentItem.d.ts +8 -0
  89. package/dist/es6/breadcrumbs/lib/BreadcrumbsCurrentItem.d.ts.map +1 -1
  90. package/dist/es6/breadcrumbs/lib/BreadcrumbsItem.d.ts +8 -0
  91. package/dist/es6/breadcrumbs/lib/BreadcrumbsItem.d.ts.map +1 -1
  92. package/dist/es6/breadcrumbs/lib/BreadcrumbsList.d.ts +4 -0
  93. package/dist/es6/breadcrumbs/lib/BreadcrumbsList.d.ts.map +1 -1
  94. package/dist/es6/breadcrumbs/lib/BreadcrumbsOverflowButton.d.ts +8 -0
  95. package/dist/es6/breadcrumbs/lib/BreadcrumbsOverflowButton.d.ts.map +1 -1
  96. package/dist/es6/breadcrumbs/lib/hooks/useBreadcrumbsModel.d.ts +122 -0
  97. package/dist/es6/breadcrumbs/lib/hooks/useBreadcrumbsModel.d.ts.map +1 -1
  98. package/dist/es6/button/lib/BaseButton.js +1 -1
  99. package/dist/es6/button/lib/DeleteButton.d.ts.map +1 -1
  100. package/dist/es6/button/lib/DeleteButton.js +4 -5
  101. package/dist/es6/button/lib/PrimaryButton.d.ts.map +1 -1
  102. package/dist/es6/button/lib/PrimaryButton.js +5 -6
  103. package/dist/es6/button/lib/SecondaryButton.d.ts.map +1 -1
  104. package/dist/es6/button/lib/SecondaryButton.js +5 -6
  105. package/dist/es6/button/lib/TertiaryButton.d.ts.map +1 -1
  106. package/dist/es6/button/lib/TertiaryButton.js +30 -27
  107. package/dist/es6/button/lib/parts/ButtonLabelIcon.d.ts.map +1 -1
  108. package/dist/es6/button/lib/parts/ButtonLabelIcon.js +2 -1
  109. package/dist/es6/checkbox/lib/CheckboxCheck.js +2 -2
  110. package/dist/es6/collection/lib/useOverflowListItemMeasure.d.ts +4 -0
  111. package/dist/es6/collection/lib/useOverflowListItemMeasure.d.ts.map +1 -1
  112. package/dist/es6/collection/lib/useOverflowListMeasure.d.ts +5 -1
  113. package/dist/es6/collection/lib/useOverflowListMeasure.d.ts.map +1 -1
  114. package/dist/es6/collection/lib/useOverflowListMeasure.js +12 -5
  115. package/dist/es6/collection/lib/useOverflowListModel.d.ts +123 -1
  116. package/dist/es6/collection/lib/useOverflowListModel.d.ts.map +1 -1
  117. package/dist/es6/collection/lib/useOverflowListModel.js +20 -11
  118. package/dist/es6/collection/lib/useOverflowListTarget.d.ts +4 -0
  119. package/dist/es6/collection/lib/useOverflowListTarget.d.ts.map +1 -1
  120. package/dist/es6/icon/lib/SystemIcon.d.ts +3 -1
  121. package/dist/es6/icon/lib/SystemIcon.d.ts.map +1 -1
  122. package/dist/es6/icon/lib/SystemIcon.js +4 -4
  123. package/dist/es6/icon/lib/SystemIconCircle.js +1 -1
  124. package/dist/es6/menu/lib/MenuItem.d.ts.map +1 -1
  125. package/dist/es6/menu/lib/MenuItem.js +1 -0
  126. package/dist/es6/select/lib/hooks/useSelectInput.d.ts +3 -3
  127. package/dist/es6/select/lib/hooks/useSelectInput.d.ts.map +1 -1
  128. package/dist/es6/select/lib/hooks/useSelectInput.js +2 -2
  129. package/dist/es6/side-panel/lib/SidePanel.js +1 -1
  130. package/dist/es6/tabs/lib/Tabs.d.ts +144 -0
  131. package/dist/es6/tabs/lib/Tabs.d.ts.map +1 -1
  132. package/dist/es6/tabs/lib/TabsItem.d.ts +8 -0
  133. package/dist/es6/tabs/lib/TabsItem.d.ts.map +1 -1
  134. package/dist/es6/tabs/lib/TabsList.d.ts +9 -1
  135. package/dist/es6/tabs/lib/TabsList.d.ts.map +1 -1
  136. package/dist/es6/tabs/lib/TabsOverflowButton.d.ts +8 -0
  137. package/dist/es6/tabs/lib/TabsOverflowButton.d.ts.map +1 -1
  138. package/dist/es6/tabs/lib/TabsPanel.d.ts +8 -0
  139. package/dist/es6/tabs/lib/TabsPanel.d.ts.map +1 -1
  140. package/dist/es6/tabs/lib/TabsPanels.d.ts +4 -0
  141. package/dist/es6/tabs/lib/TabsPanels.d.ts.map +1 -1
  142. package/dist/es6/tabs/lib/useTabsModel.d.ts +148 -0
  143. package/dist/es6/tabs/lib/useTabsModel.d.ts.map +1 -1
  144. package/icon/lib/SystemIcon.tsx +6 -2
  145. package/menu/lib/MenuItem.tsx +1 -0
  146. package/package.json +4 -4
  147. package/select/lib/hooks/useSelectInput.ts +2 -2
  148. package/side-panel/lib/SidePanel.tsx +1 -1
@@ -6,7 +6,6 @@ import {createStencil, cssVar} from '@workday/canvas-kit-styling';
6
6
  import {brand, system} from '@workday/canvas-tokens-web';
7
7
  import {Button, ButtonProps} from './Button';
8
8
  import {systemIconStencil} from '@workday/canvas-kit-react/icon';
9
- import {mergeStyles} from '@workday/canvas-kit-react/layout';
10
9
 
11
10
  /**
12
11
  * Extends all the style properties from Box to our buttons as well as props from ButtonProps.
@@ -60,9 +59,21 @@ const deleteButtonStencil = createStencil({
60
59
  */
61
60
  export const DeleteButton = createComponent('button')({
62
61
  displayName: 'DeleteButton',
63
- Component: ({children, ...elemProps}: DeleteButtonProps, ref, Element) => {
62
+ Component: (
63
+ {children, size, iconPosition, grow, cs, ...elemProps}: DeleteButtonProps,
64
+ ref,
65
+ Element
66
+ ) => {
64
67
  return (
65
- <Button as={Element} ref={ref} {...mergeStyles(elemProps, deleteButtonStencil())}>
68
+ <Button
69
+ as={Element}
70
+ ref={ref}
71
+ size={size}
72
+ grow={grow}
73
+ iconPosition={iconPosition}
74
+ cs={[deleteButtonStencil({size, iconPosition}), cs]}
75
+ {...elemProps}
76
+ >
66
77
  {children}
67
78
  </Button>
68
79
  );
@@ -6,7 +6,6 @@ import {createStencil, cssVar} from '@workday/canvas-kit-styling';
6
6
  import {brand, system} from '@workday/canvas-tokens-web';
7
7
  import {buttonColorPropVars, buttonStencil} from './BaseButton';
8
8
  import {Button, ButtonProps} from './Button';
9
- import {mergeStyles} from '@workday/canvas-kit-react/layout';
10
9
 
11
10
  /**
12
11
  * Extends all the style properties from Box to our buttons as well as props from ButtonProps.
@@ -115,9 +114,21 @@ const primaryButtonStencil = createStencil({
115
114
 
116
115
  export const PrimaryButton = createComponent('button')({
117
116
  displayName: 'PrimaryButton',
118
- Component: ({children, variant, ...elemProps}: PrimaryButtonProps, ref, Element) => {
117
+ Component: (
118
+ {children, variant, size, iconPosition, grow, cs, ...elemProps}: PrimaryButtonProps,
119
+ ref,
120
+ Element
121
+ ) => {
119
122
  return (
120
- <Button as={Element} ref={ref} {...mergeStyles(elemProps, primaryButtonStencil({variant}))}>
123
+ <Button
124
+ as={Element}
125
+ ref={ref}
126
+ iconPosition={iconPosition}
127
+ size={size}
128
+ grow={grow}
129
+ cs={[primaryButtonStencil({variant, iconPosition, grow, size}), cs]}
130
+ {...elemProps}
131
+ >
121
132
  {children}
122
133
  </Button>
123
134
  );
@@ -6,7 +6,6 @@ import {createStencil, cssVar} from '@workday/canvas-kit-styling';
6
6
  import {brand, system} from '@workday/canvas-tokens-web';
7
7
  import {Button, ButtonProps} from './Button';
8
8
  import {systemIconStencil} from '@workday/canvas-kit-react/icon';
9
- import {mergeStyles} from '@workday/canvas-kit-react/layout';
10
9
 
11
10
  /**
12
11
  * Extends all the style properties from Box to our buttons as well as props from ButtonProps.
@@ -130,9 +129,21 @@ const secondaryButtonStencil = createStencil({
130
129
 
131
130
  export const SecondaryButton = createComponent('button')({
132
131
  displayName: 'SecondaryButton',
133
- Component: ({children, variant, ...elemProps}: SecondaryButtonProps, ref, Element) => {
132
+ Component: (
133
+ {children, variant, size, iconPosition, grow, cs, ...elemProps}: SecondaryButtonProps,
134
+ ref,
135
+ Element
136
+ ) => {
134
137
  return (
135
- <Button as={Element} ref={ref} {...mergeStyles(elemProps, secondaryButtonStencil({variant}))}>
138
+ <Button
139
+ as={Element}
140
+ ref={ref}
141
+ iconPosition={iconPosition}
142
+ size={size}
143
+ grow={grow}
144
+ cs={[secondaryButtonStencil({variant, iconPosition, grow, size}), cs]}
145
+ {...elemProps}
146
+ >
136
147
  {children}
137
148
  </Button>
138
149
  );
@@ -6,7 +6,6 @@ import {calc, createStencil, cssVar} from '@workday/canvas-kit-styling';
6
6
  import {system, brand} from '@workday/canvas-tokens-web';
7
7
  import {Button, ButtonProps} from './Button';
8
8
  import {systemIconStencil} from '@workday/canvas-kit-react/icon';
9
- import {mergeStyles} from '@workday/canvas-kit-react/layout';
10
9
 
11
10
  /**
12
11
  * Extends all the style properties from Box to our buttons as well as props from ButtonProps.
@@ -291,6 +290,8 @@ export const TertiaryButton = createComponent('button')({
291
290
  size = 'medium',
292
291
  variant,
293
292
  iconPosition,
293
+ grow,
294
+ cs,
294
295
  ...elemProps
295
296
  }: TertiaryButtonProps,
296
297
  ref,
@@ -311,15 +312,18 @@ export const TertiaryButton = createComponent('button')({
311
312
  icon={icon}
312
313
  size={size}
313
314
  iconPosition={iconPosition}
314
- {...mergeStyles(
315
- elemProps,
315
+ grow={grow}
316
+ cs={[
316
317
  tertiaryButtonStencil({
317
- variant,
318
318
  size,
319
+ variant,
320
+ grow,
319
321
  isThemeable: (isThemeable || baseIconPosition !== 'only') as any,
320
322
  iconPosition: baseIconPosition,
321
- })
322
- )}
323
+ }),
324
+ cs,
325
+ ]}
326
+ {...elemProps}
323
327
  >
324
328
  {children}
325
329
  </Button>
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  import {ButtonSizes} from '../types';
3
3
  import {createComponent} from '@workday/canvas-kit-react/common';
4
4
  import {SystemIcon, SystemIconProps} from '@workday/canvas-kit-react/icon';
5
+ import {px2rem} from '@workday/canvas-kit-styling';
5
6
 
6
7
  export interface ButtonLabelIconProps extends Partial<SystemIconProps> {
7
8
  /**
@@ -42,8 +43,8 @@ export const ButtonLabelIcon = createComponent('span')({
42
43
  size={iconSize}
43
44
  icon={icon}
44
45
  shouldMirror={shouldMirrorIcon}
45
- width={size ? iconSizes[size] : iconSizes.large}
46
- height={size ? iconSizes[size] : iconSizes.large}
46
+ width={px2rem(iconSize)}
47
+ height={px2rem(iconSize)}
47
48
  display="inline-block"
48
49
  {...elemProps}
49
50
  />
@@ -1,6 +1,11 @@
1
1
  import * as React from 'react';
2
2
 
3
- import {createElemPropsHook, useForkRef, useResizeObserver} from '@workday/canvas-kit-react/common';
3
+ import {
4
+ createElemPropsHook,
5
+ useMountLayout,
6
+ useResizeObserver,
7
+ useLocalRef,
8
+ } from '@workday/canvas-kit-react/common';
4
9
 
5
10
  import {useOverflowListModel} from './useOverflowListModel';
6
11
 
@@ -9,12 +14,21 @@ import {useOverflowListModel} from './useOverflowListModel';
9
14
  * overflow detection.
10
15
  */
11
16
  export const useOverflowListMeasure = createElemPropsHook(useOverflowListModel)((model, ref) => {
12
- const localRef = React.useRef(null);
13
- const {ref: resizeRef} = useResizeObserver({
17
+ const {elementRef, localRef} = useLocalRef(ref as React.Ref<HTMLElement>);
18
+ const gapProperty = model.state.orientation === 'horizontal' ? 'columnGap' : 'rowGap';
19
+
20
+ useResizeObserver({
14
21
  ref: localRef,
15
22
  onResize: model.events.setContainerWidth,
16
23
  });
17
- const elementRef = useForkRef(ref, resizeRef);
24
+ useMountLayout(() => {
25
+ if (localRef.current) {
26
+ const styles = getComputedStyle(localRef.current);
27
+ model.events.setContainerGap({
28
+ size: styles.gap === 'normal' ? 0 : Number(styles[gapProperty].replace('px', '')),
29
+ });
30
+ }
31
+ });
18
32
 
19
33
  return {
20
34
  ref: elementRef,
@@ -6,10 +6,11 @@ import {Item} from './useBaseListModel';
6
6
 
7
7
  export function getHiddenIds(
8
8
  containerWidth: number,
9
+ containerGap: number,
9
10
  overflowTargetWidth: number,
10
11
  itemWidthCache: Record<string, number>,
11
12
  selectedIds: string[] | 'all',
12
- items?: Item<any>[]
13
+ items: Item<any>[]
13
14
  ): string[] {
14
15
  /** Allows us to prioritize showing the selected item */
15
16
  let selectedKey: undefined | string;
@@ -18,17 +19,22 @@ export function getHiddenIds(
18
19
  /** Tally ids that won't fit inside the container. These will be used by components to hide
19
20
  * elements that won't fit in the container */
20
21
  const hiddenIds: string[] = [];
22
+ /** Track if gap should be calculated since gap doesn't apply to the width of the first item, only
23
+ * consecutive items */
24
+ let shouldAddGap = false;
25
+
21
26
  if (selectedIds !== 'all' && selectedIds.length) {
22
- if (items?.length) {
27
+ if (items.length) {
23
28
  // If selectedIds[0] is not in items, use the first id from items
24
29
  selectedKey = items.find(item => item.id === selectedIds[0]) ? selectedIds[0] : items[0].id;
25
- } else {
26
- selectedKey = selectedIds[0];
27
30
  }
28
31
  }
29
32
 
30
33
  if (
31
- Object.keys(itemWidthCache).reduce((sum, key) => sum + itemWidthCache[key], 0) <= containerWidth
34
+ Object.keys(itemWidthCache).reduce(
35
+ (sum, key, index) => sum + itemWidthCache[key] + (index > 0 ? containerGap : 0),
36
+ 0
37
+ ) <= containerWidth
32
38
  ) {
33
39
  // All items fit, return empty array
34
40
  return [];
@@ -39,6 +45,7 @@ export function getHiddenIds(
39
45
  } else {
40
46
  // at least the selected item and overflow target fit. Update our itemWidth with the sum
41
47
  itemWidth += itemWidthCache[selectedKey] + overflowTargetWidth;
48
+ shouldAddGap = true;
42
49
  }
43
50
  } else {
44
51
  itemWidth += overflowTargetWidth;
@@ -46,7 +53,8 @@ export function getHiddenIds(
46
53
 
47
54
  for (const key in itemWidthCache) {
48
55
  if (key !== selectedKey) {
49
- itemWidth += itemWidthCache[key];
56
+ itemWidth += itemWidthCache[key] + (shouldAddGap ? containerGap : 0);
57
+ shouldAddGap = true;
50
58
  if (itemWidth > containerWidth) {
51
59
  hiddenIds.push(key);
52
60
  }
@@ -75,6 +83,7 @@ export const useOverflowListModel = createModelHook({
75
83
  const [hiddenIds, setHiddenIds] = React.useState(config.initialHiddenIds);
76
84
  const [itemWidthCache, setItemWidthCache] = React.useState<Record<string, number>>({});
77
85
  const [containerWidth, setContainerWidth] = React.useState(0);
86
+ const [containerGap, setContainerGap] = React.useState(0);
78
87
  const containerWidthRef = React.useRef(0);
79
88
  const itemWidthCacheRef = React.useRef(itemWidthCache);
80
89
  const [overflowTargetWidth, setOverflowTargetWidth] = React.useState(0);
@@ -96,6 +105,7 @@ export const useOverflowListModel = createModelHook({
96
105
  hiddenIds: internalHiddenIds,
97
106
  itemWidthCache,
98
107
  containerWidth,
108
+ containerGap,
99
109
  overflowTargetWidth,
100
110
  };
101
111
 
@@ -105,6 +115,7 @@ export const useOverflowListModel = createModelHook({
105
115
  const {selectedIds} = model.selection.select(data.id, state);
106
116
  const ids = getHiddenIds(
107
117
  containerWidthRef.current,
118
+ containerGap,
108
119
  overflowTargetWidthRef.current,
109
120
  itemWidthCacheRef.current,
110
121
  selectedIds,
@@ -120,6 +131,21 @@ export const useOverflowListModel = createModelHook({
120
131
 
121
132
  const ids = getHiddenIds(
122
133
  containerWidthRef.current,
134
+ containerGap,
135
+ overflowTargetWidthRef.current,
136
+ itemWidthCacheRef.current,
137
+ state.selectedIds,
138
+ config.items
139
+ );
140
+
141
+ setHiddenIds(ids);
142
+ },
143
+ setContainerGap(data: {size: number}) {
144
+ setContainerGap(data.size);
145
+
146
+ const ids = getHiddenIds(
147
+ containerWidthRef.current,
148
+ data.size,
123
149
  overflowTargetWidthRef.current,
124
150
  itemWidthCacheRef.current,
125
151
  state.selectedIds,
@@ -142,6 +168,7 @@ export const useOverflowListModel = createModelHook({
142
168
 
143
169
  const ids = getHiddenIds(
144
170
  containerWidthRef.current,
171
+ containerGap,
145
172
  overflowTargetWidthRef.current,
146
173
  itemWidthCacheRef.current,
147
174
  state.selectedIds,
@@ -158,6 +185,7 @@ export const useOverflowListModel = createModelHook({
158
185
 
159
186
  const ids = getHiddenIds(
160
187
  containerWidthRef.current,
188
+ containerGap,
161
189
  overflowTargetWidthRef.current,
162
190
  itemWidthCacheRef.current,
163
191
  state.selectedIds !== 'all'