@workday/canvas-kit-react 8.0.0-alpha.194-next.2 → 8.0.0-alpha.199-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 (127) hide show
  1. package/breadcrumbs/LICENSE +52 -0
  2. package/breadcrumbs/README.md +9 -0
  3. package/breadcrumbs/index.ts +2 -0
  4. package/breadcrumbs/lib/Breadcrumbs.tsx +152 -0
  5. package/breadcrumbs/lib/BreadcrumbsCurrentItem.tsx +76 -0
  6. package/breadcrumbs/lib/BreadcrumbsItem.tsx +82 -0
  7. package/breadcrumbs/lib/BreadcrumbsLink.tsx +52 -0
  8. package/breadcrumbs/lib/BreadcrumbsList.tsx +56 -0
  9. package/breadcrumbs/lib/BreadcrumbsMenu.tsx +28 -0
  10. package/breadcrumbs/lib/BreadcrumbsOverflowButton.tsx +62 -0
  11. package/breadcrumbs/lib/hooks/useBreadcrumbsModel.tsx +76 -0
  12. package/breadcrumbs/lib/hooks/utils/index.ts +22 -0
  13. package/breadcrumbs/package.json +6 -0
  14. package/button/index.ts +7 -1
  15. package/button/lib/BaseButton.tsx +7 -4
  16. package/button/lib/DeleteButton.tsx +2 -2
  17. package/button/lib/PrimaryButton.tsx +2 -2
  18. package/button/lib/SecondaryButton.tsx +2 -2
  19. package/button/lib/TertiaryButton.tsx +3 -3
  20. package/common/lib/utils/components.ts +5 -0
  21. package/dist/commonjs/breadcrumbs/index.d.ts +3 -0
  22. package/dist/commonjs/breadcrumbs/index.d.ts.map +1 -0
  23. package/dist/commonjs/breadcrumbs/index.js +14 -0
  24. package/dist/commonjs/breadcrumbs/lib/Breadcrumbs.d.ts +4413 -0
  25. package/dist/commonjs/breadcrumbs/lib/Breadcrumbs.d.ts.map +1 -0
  26. package/dist/commonjs/breadcrumbs/lib/Breadcrumbs.js +176 -0
  27. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsCurrentItem.d.ts +212 -0
  28. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsCurrentItem.d.ts.map +1 -0
  29. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsCurrentItem.js +63 -0
  30. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsItem.d.ts +226 -0
  31. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsItem.d.ts.map +1 -0
  32. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsItem.js +76 -0
  33. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsLink.d.ts +17 -0
  34. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsLink.d.ts.map +1 -0
  35. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsLink.js +46 -0
  36. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsList.d.ts +168 -0
  37. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsList.d.ts.map +1 -0
  38. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsList.js +64 -0
  39. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsMenu.d.ts +1717 -0
  40. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsMenu.d.ts.map +1 -0
  41. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsMenu.js +58 -0
  42. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsOverflowButton.d.ts +240 -0
  43. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsOverflowButton.d.ts.map +1 -0
  44. package/dist/commonjs/breadcrumbs/lib/BreadcrumbsOverflowButton.js +68 -0
  45. package/dist/commonjs/breadcrumbs/lib/hooks/useBreadcrumbsModel.d.ts +1661 -0
  46. package/dist/commonjs/breadcrumbs/lib/hooks/useBreadcrumbsModel.d.ts.map +1 -0
  47. package/dist/commonjs/breadcrumbs/lib/hooks/useBreadcrumbsModel.js +67 -0
  48. package/dist/commonjs/breadcrumbs/lib/hooks/utils/index.d.ts +6 -0
  49. package/dist/commonjs/breadcrumbs/lib/hooks/utils/index.d.ts.map +1 -0
  50. package/dist/commonjs/breadcrumbs/lib/hooks/utils/index.js +22 -0
  51. package/dist/commonjs/button/index.d.ts +1 -1
  52. package/dist/commonjs/button/index.d.ts.map +1 -1
  53. package/dist/commonjs/button/index.js +3 -1
  54. package/dist/commonjs/button/lib/BaseButton.d.ts +7 -4
  55. package/dist/commonjs/button/lib/BaseButton.d.ts.map +1 -1
  56. package/dist/commonjs/button/lib/DeleteButton.d.ts +2 -1
  57. package/dist/commonjs/button/lib/DeleteButton.d.ts.map +1 -1
  58. package/dist/commonjs/button/lib/PrimaryButton.d.ts +2 -1
  59. package/dist/commonjs/button/lib/PrimaryButton.d.ts.map +1 -1
  60. package/dist/commonjs/button/lib/SecondaryButton.d.ts +2 -1
  61. package/dist/commonjs/button/lib/SecondaryButton.d.ts.map +1 -1
  62. package/dist/commonjs/button/lib/TertiaryButton.d.ts +2 -1
  63. package/dist/commonjs/button/lib/TertiaryButton.d.ts.map +1 -1
  64. package/dist/commonjs/button/lib/TertiaryButton.js +1 -1
  65. package/dist/commonjs/common/lib/utils/components.d.ts +2 -1
  66. package/dist/commonjs/common/lib/utils/components.d.ts.map +1 -1
  67. package/dist/commonjs/index.d.ts +1 -0
  68. package/dist/commonjs/index.d.ts.map +1 -1
  69. package/dist/commonjs/index.js +1 -0
  70. package/dist/commonjs/segmented-control/lib/SegmentedControlButton.d.ts +3 -1
  71. package/dist/commonjs/segmented-control/lib/SegmentedControlButton.d.ts.map +1 -1
  72. package/dist/commonjs/segmented-control/lib/SegmentedControlButton.js +11 -2
  73. package/dist/es6/breadcrumbs/index.d.ts +3 -0
  74. package/dist/es6/breadcrumbs/index.d.ts.map +1 -0
  75. package/dist/es6/breadcrumbs/index.js +2 -0
  76. package/dist/es6/breadcrumbs/lib/Breadcrumbs.d.ts +4413 -0
  77. package/dist/es6/breadcrumbs/lib/Breadcrumbs.d.ts.map +1 -0
  78. package/dist/es6/breadcrumbs/lib/Breadcrumbs.js +154 -0
  79. package/dist/es6/breadcrumbs/lib/BreadcrumbsCurrentItem.d.ts +212 -0
  80. package/dist/es6/breadcrumbs/lib/BreadcrumbsCurrentItem.d.ts.map +1 -0
  81. package/dist/es6/breadcrumbs/lib/BreadcrumbsCurrentItem.js +57 -0
  82. package/dist/es6/breadcrumbs/lib/BreadcrumbsItem.d.ts +226 -0
  83. package/dist/es6/breadcrumbs/lib/BreadcrumbsItem.d.ts.map +1 -0
  84. package/dist/es6/breadcrumbs/lib/BreadcrumbsItem.js +54 -0
  85. package/dist/es6/breadcrumbs/lib/BreadcrumbsLink.d.ts +17 -0
  86. package/dist/es6/breadcrumbs/lib/BreadcrumbsLink.d.ts.map +1 -0
  87. package/dist/es6/breadcrumbs/lib/BreadcrumbsLink.js +40 -0
  88. package/dist/es6/breadcrumbs/lib/BreadcrumbsList.d.ts +168 -0
  89. package/dist/es6/breadcrumbs/lib/BreadcrumbsList.d.ts.map +1 -0
  90. package/dist/es6/breadcrumbs/lib/BreadcrumbsList.js +42 -0
  91. package/dist/es6/breadcrumbs/lib/BreadcrumbsMenu.d.ts +1717 -0
  92. package/dist/es6/breadcrumbs/lib/BreadcrumbsMenu.d.ts.map +1 -0
  93. package/dist/es6/breadcrumbs/lib/BreadcrumbsMenu.js +36 -0
  94. package/dist/es6/breadcrumbs/lib/BreadcrumbsOverflowButton.d.ts +240 -0
  95. package/dist/es6/breadcrumbs/lib/BreadcrumbsOverflowButton.d.ts.map +1 -0
  96. package/dist/es6/breadcrumbs/lib/BreadcrumbsOverflowButton.js +46 -0
  97. package/dist/es6/breadcrumbs/lib/hooks/useBreadcrumbsModel.d.ts +1661 -0
  98. package/dist/es6/breadcrumbs/lib/hooks/useBreadcrumbsModel.d.ts.map +1 -0
  99. package/dist/es6/breadcrumbs/lib/hooks/useBreadcrumbsModel.js +61 -0
  100. package/dist/es6/breadcrumbs/lib/hooks/utils/index.d.ts +6 -0
  101. package/dist/es6/breadcrumbs/lib/hooks/utils/index.d.ts.map +1 -0
  102. package/dist/es6/breadcrumbs/lib/hooks/utils/index.js +18 -0
  103. package/dist/es6/button/index.d.ts +1 -1
  104. package/dist/es6/button/index.d.ts.map +1 -1
  105. package/dist/es6/button/index.js +1 -1
  106. package/dist/es6/button/lib/BaseButton.d.ts +7 -4
  107. package/dist/es6/button/lib/BaseButton.d.ts.map +1 -1
  108. package/dist/es6/button/lib/DeleteButton.d.ts +2 -1
  109. package/dist/es6/button/lib/DeleteButton.d.ts.map +1 -1
  110. package/dist/es6/button/lib/PrimaryButton.d.ts +2 -1
  111. package/dist/es6/button/lib/PrimaryButton.d.ts.map +1 -1
  112. package/dist/es6/button/lib/SecondaryButton.d.ts +2 -1
  113. package/dist/es6/button/lib/SecondaryButton.d.ts.map +1 -1
  114. package/dist/es6/button/lib/TertiaryButton.d.ts +2 -1
  115. package/dist/es6/button/lib/TertiaryButton.d.ts.map +1 -1
  116. package/dist/es6/button/lib/TertiaryButton.js +1 -1
  117. package/dist/es6/common/lib/utils/components.d.ts +2 -1
  118. package/dist/es6/common/lib/utils/components.d.ts.map +1 -1
  119. package/dist/es6/index.d.ts +1 -0
  120. package/dist/es6/index.d.ts.map +1 -1
  121. package/dist/es6/index.js +1 -0
  122. package/dist/es6/segmented-control/lib/SegmentedControlButton.d.ts +3 -1
  123. package/dist/es6/segmented-control/lib/SegmentedControlButton.d.ts.map +1 -1
  124. package/dist/es6/segmented-control/lib/SegmentedControlButton.js +12 -3
  125. package/index.ts +1 -0
  126. package/package.json +3 -3
  127. package/segmented-control/lib/SegmentedControlButton.tsx +24 -5
@@ -0,0 +1,22 @@
1
+ export const reorganizeHiddenItems = (
2
+ items: {id: string}[],
3
+ hiddenIds: string[],
4
+ getId: (item: {id: string}) => string
5
+ ): string[] => {
6
+ let updatedHiddenIds = hiddenIds;
7
+ const totalSize = items.length;
8
+ const itemSpace = totalSize - hiddenIds.length;
9
+
10
+ if (itemSpace <= 2) {
11
+ // Keep only last items if there is place for two or less items
12
+ updatedHiddenIds = items.slice(0, totalSize - 1).map(getId);
13
+ } else if (itemSpace === 3) {
14
+ // Always keep first and last item if there is place for 3 items
15
+ updatedHiddenIds = items.slice(1, totalSize - 1).map(getId);
16
+ } else if (itemSpace > 3 && itemSpace < totalSize) {
17
+ // Always keep first and 2 last items if there is place for 4 items
18
+ updatedHiddenIds = items.slice(1, totalSize - 2).map(getId);
19
+ }
20
+
21
+ return updatedHiddenIds;
22
+ };
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../dist/commonjs/breadcrumbs",
3
+ "module": "../dist/es6/breadcrumbs",
4
+ "sideEffects": false,
5
+ "types": "../dist/es6/breadcrumbs"
6
+ }
package/button/index.ts CHANGED
@@ -9,6 +9,12 @@ export {
9
9
  export {ToolbarIconButton, ToolbarIconButtonProps} from './lib/ToolbarIconButton';
10
10
  export {ToolbarDropdownButton, ToolbarDropdownButtonProps} from './lib/ToolbarDropdownButton';
11
11
  export {Hyperlink, HyperlinkProps} from './lib/Hyperlink';
12
- export {BaseButton, ButtonContainerProps} from './lib/BaseButton';
12
+ export {
13
+ BaseButton,
14
+ ButtonContainerProps,
15
+ BaseButtonProps,
16
+ getMinWidthStyles,
17
+ getPaddingStyles,
18
+ } from './lib/BaseButton';
13
19
  export {ExternalHyperlink, ExternalHyperlinkProps} from './lib/ExternalHyperlink';
14
20
  export * from './lib/types';
@@ -29,10 +29,6 @@ export interface ButtonContainerProps extends BoxProps, GrowthBehavior {
29
29
  * @default 'medium'
30
30
  */
31
31
  size?: ButtonSizes;
32
- /**
33
- * The ref to the button that the styled component renders.
34
- */
35
- ref?: React.Ref<HTMLButtonElement>;
36
32
  /**
37
33
  * Whether the icon should received filled (colored background layer) or regular styles.
38
34
  * Corresponds to `toggled` in ToolbarIconButton
@@ -40,6 +36,13 @@ export interface ButtonContainerProps extends BoxProps, GrowthBehavior {
40
36
  fillIcon?: boolean;
41
37
  }
42
38
 
39
+ /**
40
+ * Extends all the style properties from Box to our buttons as well as props from ButtonContainerProps.
41
+ * We omit `ref` since all of our buttons use `createComponent` and already give access to `ref`.
42
+ * Use this type to extend and customize any one off buttons that you want full control over styling.
43
+ */
44
+ export interface BaseButtonProps extends Omit<ButtonContainerProps, 'ref'> {}
45
+
43
46
  function getIconColorSelectors(
44
47
  {
45
48
  canvas: {
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import {ButtonColors} from './types';
3
- import {BaseButton, getMinWidthStyles, getPaddingStyles} from './BaseButton';
3
+ import {BaseButton, BaseButtonProps, getMinWidthStyles, getPaddingStyles} from './BaseButton';
4
4
  import {
5
5
  GrowthBehavior,
6
6
  useTheme,
@@ -9,7 +9,7 @@ import {
9
9
  createComponent,
10
10
  } from '@workday/canvas-kit-react/common';
11
11
 
12
- export interface DeleteButtonProps extends Themeable, GrowthBehavior {
12
+ export interface DeleteButtonProps extends Themeable, GrowthBehavior, BaseButtonProps {
13
13
  /**
14
14
  * The size of the Button.
15
15
  * @default 'medium'
@@ -11,7 +11,7 @@ import {
11
11
  import {colors} from '@workday/canvas-kit-react/tokens';
12
12
  import {CanvasSystemIcon} from '@workday/design-assets-types';
13
13
  import {ButtonSizes, IconPositions} from './types';
14
- import {BaseButton, getMinWidthStyles, getPaddingStyles} from './BaseButton';
14
+ import {BaseButton, BaseButtonProps, getMinWidthStyles, getPaddingStyles} from './BaseButton';
15
15
 
16
16
  const getPrimaryButtonColors = (variant: 'inverse' | undefined, theme: EmotionCanvasTheme) => {
17
17
  const {
@@ -85,7 +85,7 @@ const getPrimaryButtonColors = (variant: 'inverse' | undefined, theme: EmotionCa
85
85
  }
86
86
  };
87
87
 
88
- export interface PrimaryButtonProps extends Themeable, GrowthBehavior {
88
+ export interface PrimaryButtonProps extends Themeable, GrowthBehavior, BaseButtonProps {
89
89
  /**
90
90
  * The variant of the PrimaryButton.
91
91
  * @default undefined
@@ -11,9 +11,9 @@ import {
11
11
  } from '@workday/canvas-kit-react/common';
12
12
  import {CanvasSystemIcon} from '@workday/design-assets-types';
13
13
  import {ButtonColors, ButtonSizes, IconPositions} from './types';
14
- import {BaseButton, getMinWidthStyles, getPaddingStyles} from './BaseButton';
14
+ import {BaseButton, BaseButtonProps, getMinWidthStyles, getPaddingStyles} from './BaseButton';
15
15
 
16
- export interface SecondaryButtonProps extends Themeable, GrowthBehavior {
16
+ export interface SecondaryButtonProps extends Themeable, GrowthBehavior, BaseButtonProps {
17
17
  /**
18
18
  * The variant of the SecondaryButton.
19
19
  * @default undefined
@@ -11,9 +11,9 @@ import {
11
11
  import {borderRadius, colors, space} from '@workday/canvas-kit-react/tokens';
12
12
  import {CanvasSystemIcon} from '@workday/design-assets-types';
13
13
  import {ButtonColors, IconPositions, ButtonSizes} from './types';
14
- import {BaseButton} from './BaseButton';
14
+ import {BaseButton, BaseButtonProps} from './BaseButton';
15
15
 
16
- export interface TertiaryButtonProps extends Themeable {
16
+ export interface TertiaryButtonProps extends Themeable, BaseButtonProps {
17
17
  /**
18
18
  * The variant of the TertiaryButton.
19
19
  * @default undefined
@@ -229,7 +229,7 @@ export const TertiaryButton = createComponent('button')({
229
229
  size={size}
230
230
  padding={getPaddingStyles(icon, iconPosition, children, size)}
231
231
  minWidth={getMinWidthStyles(children, size)}
232
- style={{borderRadius: children ? borderRadius.m : borderRadius.circle}}
232
+ borderRadius={children ? borderRadius.m : borderRadius.circle}
233
233
  {...elemProps}
234
234
  >
235
235
  {icon && iconPosition === 'start' && (
@@ -10,6 +10,9 @@ export type StyledType = {
10
10
  as?: React.ElementType;
11
11
  };
12
12
 
13
+ // For React class components
14
+ type Constructor<T> = new (...args: any[]) => T;
15
+
13
16
  /**
14
17
  * Extract a Ref from T if it exists
15
18
  * This will return the following:
@@ -20,6 +23,8 @@ export type StyledType = {
20
23
  */
21
24
  type ExtractRef<T> = T extends undefined // test if T was even passed in
22
25
  ? never // T not passed in, we'll set the ref to `never`
26
+ : T extends Constructor<infer C>
27
+ ? React.LegacyRef<C>
23
28
  : React.Ref<
24
29
  T extends keyof ElementTagNameMap // test if T is an element string like 'button' or 'div'
25
30
  ? ElementTagNameMap[T] // if yes, the ref should be the element interface. `'button' => HTMLButtonElement`
@@ -0,0 +1,3 @@
1
+ export * from './lib/Breadcrumbs';
2
+ export * from './lib/hooks/useBreadcrumbsModel';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../breadcrumbs/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iCAAiC,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./lib/Breadcrumbs"), exports);
14
+ __exportStar(require("./lib/hooks/useBreadcrumbsModel"), exports);