@workday/canvas-kit-react 7.0.7 → 7.1.0-next.1

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 (51) hide show
  1. package/collection/lib/useOverflowListModel.tsx +11 -2
  2. package/common/lib/utils/index.ts +1 -0
  3. package/common/lib/utils/useModalityType.ts +65 -0
  4. package/dist/commonjs/action-bar/lib/ActionBar.d.ts +1 -0
  5. package/dist/commonjs/action-bar/lib/ActionBar.d.ts.map +1 -1
  6. package/dist/commonjs/action-bar/lib/useActionBarModel.d.ts +2 -0
  7. package/dist/commonjs/action-bar/lib/useActionBarModel.d.ts.map +1 -1
  8. package/dist/commonjs/collection/lib/useOverflowListModel.d.ts +10 -0
  9. package/dist/commonjs/collection/lib/useOverflowListModel.d.ts.map +1 -1
  10. package/dist/commonjs/collection/lib/useOverflowListModel.js +10 -4
  11. package/dist/commonjs/common/lib/utils/index.d.ts +1 -0
  12. package/dist/commonjs/common/lib/utils/index.d.ts.map +1 -1
  13. package/dist/commonjs/common/lib/utils/index.js +1 -0
  14. package/dist/commonjs/common/lib/utils/useModalityType.d.ts +17 -0
  15. package/dist/commonjs/common/lib/utils/useModalityType.d.ts.map +1 -0
  16. package/dist/commonjs/common/lib/utils/useModalityType.js +63 -0
  17. package/dist/commonjs/tabs/lib/Tabs.d.ts +1 -0
  18. package/dist/commonjs/tabs/lib/Tabs.d.ts.map +1 -1
  19. package/dist/commonjs/tabs/lib/TabsItem.d.ts.map +1 -1
  20. package/dist/commonjs/tabs/lib/TabsItem.js +4 -3
  21. package/dist/commonjs/tabs/lib/TabsList.d.ts.map +1 -1
  22. package/dist/commonjs/tabs/lib/TabsList.js +17 -2
  23. package/dist/commonjs/tabs/lib/useTabsModel.d.ts +55 -159
  24. package/dist/commonjs/tabs/lib/useTabsModel.d.ts.map +1 -1
  25. package/dist/commonjs/tabs/lib/useTabsModel.js +2 -0
  26. package/dist/es6/action-bar/lib/ActionBar.d.ts +1 -0
  27. package/dist/es6/action-bar/lib/ActionBar.d.ts.map +1 -1
  28. package/dist/es6/action-bar/lib/useActionBarModel.d.ts +2 -0
  29. package/dist/es6/action-bar/lib/useActionBarModel.d.ts.map +1 -1
  30. package/dist/es6/collection/lib/useOverflowListModel.d.ts +10 -0
  31. package/dist/es6/collection/lib/useOverflowListModel.d.ts.map +1 -1
  32. package/dist/es6/collection/lib/useOverflowListModel.js +10 -4
  33. package/dist/es6/common/lib/utils/index.d.ts +1 -0
  34. package/dist/es6/common/lib/utils/index.d.ts.map +1 -1
  35. package/dist/es6/common/lib/utils/index.js +1 -0
  36. package/dist/es6/common/lib/utils/useModalityType.d.ts +17 -0
  37. package/dist/es6/common/lib/utils/useModalityType.d.ts.map +1 -0
  38. package/dist/es6/common/lib/utils/useModalityType.js +56 -0
  39. package/dist/es6/tabs/lib/Tabs.d.ts +1 -0
  40. package/dist/es6/tabs/lib/Tabs.d.ts.map +1 -1
  41. package/dist/es6/tabs/lib/TabsItem.d.ts.map +1 -1
  42. package/dist/es6/tabs/lib/TabsItem.js +5 -4
  43. package/dist/es6/tabs/lib/TabsList.d.ts.map +1 -1
  44. package/dist/es6/tabs/lib/TabsList.js +18 -3
  45. package/dist/es6/tabs/lib/useTabsModel.d.ts +55 -159
  46. package/dist/es6/tabs/lib/useTabsModel.d.ts.map +1 -1
  47. package/dist/es6/tabs/lib/useTabsModel.js +3 -1
  48. package/package.json +5 -5
  49. package/tabs/lib/TabsItem.tsx +4 -3
  50. package/tabs/lib/TabsList.tsx +23 -4
  51. package/tabs/lib/useTabsModel.tsx +3 -1
@@ -12,6 +12,7 @@ import {
12
12
  ellipsisStyles,
13
13
  EllipsisText,
14
14
  createSubcomponent,
15
+ useModalityType,
15
16
  } from '@workday/canvas-kit-react/common';
16
17
  import {Box, StackProps} from '@workday/canvas-kit-react/layout';
17
18
  import {OverflowTooltip} from '@workday/canvas-kit-react/tooltip';
@@ -91,7 +92,6 @@ export const StyledTabItem = styled(Box.as('button'))<StyledType & Pick<TabsItem
91
92
  backgroundColor: 'transparent',
92
93
  flex: '0 0 auto',
93
94
  alignItems: 'center',
94
- maxWidth: '280px',
95
95
  padding: `${space.xs} ${space.s}`,
96
96
  height: 52,
97
97
  boxSizing: 'border-box',
@@ -201,10 +201,11 @@ export const TabsItem = createSubcomponent('button')({
201
201
  Icon: SystemIcon,
202
202
  Text: EllipsisText,
203
203
  },
204
- })<TabsItemProps>(({children, ...elemProps}, Element, model) => {
204
+ })<TabsItemProps>(({children, ...elemProps}, Element) => {
205
+ const modality = useModalityType();
205
206
  return (
206
207
  <OverflowTooltip>
207
- <StyledTabItem as={Element} {...elemProps}>
208
+ <StyledTabItem as={Element} maxWidth={modality === 'touch' ? undefined : 280} {...elemProps}>
208
209
  {children}
209
210
  </StyledTabItem>
210
211
  </OverflowTooltip>
@@ -6,6 +6,9 @@ import {
6
6
  createSubcomponent,
7
7
  createElemPropsHook,
8
8
  ExtractProps,
9
+ useModalityType,
10
+ styled,
11
+ StyledType,
9
12
  } from '@workday/canvas-kit-react/common';
10
13
  import {Stack} from '@workday/canvas-kit-react/layout';
11
14
  import {
@@ -33,28 +36,44 @@ export interface TabListProps<T = unknown> extends Partial<ExtractProps<typeof S
33
36
 
34
37
  export const useTabsList = composeHooks(
35
38
  createElemPropsHook(useTabsModel)(() => {
36
- return {role: 'tablist'};
39
+ const modality = useModalityType();
40
+ return {role: 'tablist', overflowX: modality === 'touch' ? 'auto' : undefined};
37
41
  }),
38
42
  useOverflowListMeasure,
39
43
  useListResetCursorOnBlur
40
44
  );
41
45
 
46
+ const StyledStack = styled(Stack)<StyledType>({
47
+ '::after': {
48
+ content: '""',
49
+ position: 'sticky',
50
+ height: 52,
51
+ minWidth: 30,
52
+ background: `linear-gradient(to right,rgba(255,255,255,0),white);`,
53
+ zIndex: 1,
54
+ right: 0,
55
+ top: 0,
56
+ pointerEvents: 'none',
57
+ },
58
+ });
59
+
42
60
  export const TabsList = createSubcomponent('div')({
43
61
  displayName: 'Tabs.List',
44
62
  modelHook: useTabsModel,
45
63
  elemPropsHook: useTabsList,
46
64
  })<TabListProps>(({children, overflowButton, ...elemProps}, Element, model) => {
65
+ const modality = useModalityType();
47
66
  return (
48
- <Stack
67
+ <StyledStack
49
68
  as={Element}
50
69
  position="relative"
51
70
  borderBottom={`1px solid ${commonColors.divider}`}
52
- paddingX="m"
71
+ paddingX={modality === 'touch' ? 'zero' : 'm'}
53
72
  spacing="xxxs"
54
73
  {...elemProps}
55
74
  >
56
75
  {useListRenderItems(model, children)}
57
76
  {overflowButton}
58
- </Stack>
77
+ </StyledStack>
59
78
  );
60
79
  });
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import {createModelHook} from '@workday/canvas-kit-react/common';
2
+ import {createModelHook, useModalityType} from '@workday/canvas-kit-react/common';
3
3
  import {
4
4
  defaultGetId,
5
5
  useListModel,
@@ -35,11 +35,13 @@ export const useTabsModel = createModelHook({
35
35
  })(config => {
36
36
  const initialSelectedRef = React.useRef(config.initialTab);
37
37
  const getId = config.getId || defaultGetId;
38
+ const modality = useModalityType();
38
39
 
39
40
  const items = config.items;
40
41
 
41
42
  const model = useOverflowListModel(
42
43
  useOverflowListModel.mergeConfig(config, {
44
+ shouldCalculateOverflow: modality !== 'touch',
43
45
  orientation: config.orientation || 'horizontal',
44
46
  items,
45
47
  onRegisterItem(data) {