@onewelcome/react-lib-components 1.2.0 → 1.4.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 (97) hide show
  1. package/dist/Button/IconButton.d.ts +2 -1
  2. package/dist/DataGrid/DataGrid.d.ts +1 -0
  3. package/dist/DataGrid/DataGridActions/DataGridActions.d.ts +2 -1
  4. package/dist/Form/Form.d.ts +3 -3
  5. package/dist/Notifications/SlideInModal/SlideInModal.d.ts +1 -1
  6. package/dist/Tabs/Tab.d.ts +5 -9
  7. package/dist/Tabs/TabButton.d.ts +3 -6
  8. package/dist/Tabs/Tabs.d.ts +1 -2
  9. package/dist/hooks/useDebouncedCallback.d.ts +1 -0
  10. package/dist/index.d.ts +1 -0
  11. package/dist/react-lib-components.cjs.development.js +472 -395
  12. package/dist/react-lib-components.cjs.development.js.map +1 -1
  13. package/dist/react-lib-components.cjs.production.min.js +1 -1
  14. package/dist/react-lib-components.cjs.production.min.js.map +1 -1
  15. package/dist/react-lib-components.esm.js +473 -397
  16. package/dist/react-lib-components.esm.js.map +1 -1
  17. package/package.json +1 -1
  18. package/src/Breadcrumbs/Breadcrumbs.tsx +46 -38
  19. package/src/Button/BaseButton.tsx +23 -20
  20. package/src/Button/Button.module.scss +9 -0
  21. package/src/Button/Button.tsx +40 -40
  22. package/src/Button/IconButton.tsx +28 -28
  23. package/src/ContextMenu/ContextMenu.tsx +161 -160
  24. package/src/ContextMenu/ContextMenuItem.tsx +55 -49
  25. package/src/DataGrid/DataGrid.tsx +1 -0
  26. package/src/DataGrid/DataGridActions/DataGridActions.module.scss +1 -1
  27. package/src/DataGrid/DataGridActions/DataGridActions.test.tsx +4 -2
  28. package/src/DataGrid/DataGridActions/DataGridActions.tsx +95 -87
  29. package/src/DataGrid/DataGridActions/DataGridColumnsToggle.tsx +64 -64
  30. package/src/DataGrid/DataGridBody/DataGridCell.tsx +42 -44
  31. package/src/DataGrid/DataGridBody/DataGridRow.tsx +29 -29
  32. package/src/DataGrid/DataGridHeader/DataGridHeader.tsx +78 -78
  33. package/src/DataGrid/DataGridHeader/DataGridHeaderCell.tsx +48 -48
  34. package/src/Form/Checkbox/Checkbox.tsx +134 -130
  35. package/src/Form/Fieldset/Fieldset.tsx +81 -78
  36. package/src/Form/Form.tsx +9 -4
  37. package/src/Form/FormControl/FormControl.module.scss +1 -20
  38. package/src/Form/FormControl/FormControl.tsx +36 -35
  39. package/src/Form/FormGroup/FormGroup.tsx +62 -62
  40. package/src/Form/FormHelperText/FormHelperText.tsx +19 -18
  41. package/src/Form/FormSelectorWrapper/FormSelectorWrapper.tsx +58 -53
  42. package/src/Form/Input/Input.tsx +90 -87
  43. package/src/Form/Label/Label.tsx +17 -16
  44. package/src/Form/Radio/Radio.tsx +91 -91
  45. package/src/Form/Select/Option.tsx +66 -60
  46. package/src/Form/Select/Select.tsx +207 -209
  47. package/src/Form/Textarea/Textarea.tsx +51 -53
  48. package/src/Form/Toggle/Toggle.tsx +26 -23
  49. package/src/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.tsx +51 -43
  50. package/src/Form/Wrapper/InputWrapper/InputWrapper.tsx +112 -106
  51. package/src/Form/Wrapper/RadioWrapper/RadioWrapper.tsx +67 -62
  52. package/src/Form/Wrapper/SelectWrapper/SelectWrapper.tsx +42 -37
  53. package/src/Form/Wrapper/TextareaWrapper/TextareaWrapper.tsx +94 -94
  54. package/src/Form/Wrapper/Wrapper/Wrapper.tsx +73 -73
  55. package/src/Icon/Icon.module.scss +1 -0
  56. package/src/Icon/Icon.tsx +19 -16
  57. package/src/Link/Link.tsx +68 -63
  58. package/src/Notifications/BaseModal/BaseModal.tsx +68 -68
  59. package/src/Notifications/BaseModal/BaseModalActions/BaseModalActions.tsx +13 -10
  60. package/src/Notifications/BaseModal/BaseModalContent/BaseModalContent.tsx +33 -25
  61. package/src/Notifications/BaseModal/BaseModalHeader/BaseModalHeader.tsx +20 -17
  62. package/src/Notifications/Dialog/Dialog.tsx +83 -83
  63. package/src/Notifications/Dialog/DialogActions/DialogActions.tsx +17 -14
  64. package/src/Notifications/Dialog/DialogTitle/DialogTitle.tsx +15 -12
  65. package/src/Notifications/DiscardChangesModal/DiscardChangesDialog/DiscardChangesDialog.tsx +40 -40
  66. package/src/Notifications/SlideInModal/SlideInModal.module.scss +5 -5
  67. package/src/Notifications/SlideInModal/SlideInModal.test.tsx +7 -2
  68. package/src/Notifications/SlideInModal/SlideInModal.tsx +47 -27
  69. package/src/Pagination/Pagination.tsx +169 -169
  70. package/src/Popover/Popover.module.scss +1 -0
  71. package/src/Popover/Popover.tsx +43 -33
  72. package/src/ProgressBar/ProgressBar.tsx +17 -14
  73. package/src/Skeleton/Skeleton.tsx +23 -20
  74. package/src/StatusIndicator/StatusIndicator.tsx +18 -15
  75. package/src/Tabs/{TabPanel.module.scss → Tab.module.scss} +1 -1
  76. package/src/Tabs/Tab.test.tsx +1 -39
  77. package/src/Tabs/Tab.tsx +16 -10
  78. package/src/Tabs/TabButton.module.scss +0 -4
  79. package/src/Tabs/TabButton.test.tsx +3 -31
  80. package/src/Tabs/TabButton.tsx +35 -49
  81. package/src/Tabs/Tabs.test.tsx +40 -33
  82. package/src/Tabs/Tabs.tsx +107 -101
  83. package/src/TextEllipsis/TextEllipsis.tsx +50 -41
  84. package/src/Tiles/Tile.tsx +58 -56
  85. package/src/Tiles/Tiles.tsx +44 -41
  86. package/src/Tooltip/Tooltip.tsx +101 -100
  87. package/src/Typography/Typography.tsx +47 -44
  88. package/src/Wizard/BaseWizardSteps/BaseWizardSteps.tsx +55 -52
  89. package/src/Wizard/WizardSteps/WizardSteps.tsx +25 -22
  90. package/src/hooks/useDebouncedCallback.test.ts +140 -0
  91. package/src/hooks/useDebouncedCallback.tsx +32 -0
  92. package/src/index.ts +1 -0
  93. package/src/mixins.module.scss +2 -2
  94. package/src/util/helper.test.tsx +0 -28
  95. package/dist/Tabs/TabPanel.d.ts +0 -8
  96. package/src/Tabs/TabPanel.test.tsx +0 -92
  97. package/src/Tabs/TabPanel.tsx +0 -43
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onewelcome/react-lib-components",
3
- "version": "1.2.0",
3
+ "version": "1.4.0",
4
4
  "license": "Apache-2.0",
5
5
  "author": "OneWelcome B.V.",
6
6
  "main": "dist/index.js",
@@ -14,7 +14,12 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- import React, { ComponentPropsWithRef, Fragment, ReactElement } from "react";
17
+ import React, {
18
+ ComponentPropsWithRef,
19
+ ForwardRefRenderFunction,
20
+ Fragment,
21
+ ReactElement
22
+ } from "react";
18
23
  import { Icon, Icons } from "../Icon/Icon";
19
24
  import { Link, Props as LinkProps } from "../Link/Link";
20
25
  import { Typography } from "../Typography/Typography";
@@ -27,40 +32,43 @@ export interface Props extends ComponentPropsWithRef<"div"> {
27
32
  ariaLabel: string;
28
33
  }
29
34
 
30
- export const Breadcrumbs = React.forwardRef<HTMLDivElement, Props>(
31
- ({ children, ariaLabel, className = "", ...rest }: Props, ref) => {
32
- const items = React.Children.map(children, (child, index) => {
33
- const isLastElement = Array.isArray(children) ? index === children.length - 1 : true;
34
- if (isLastElement) {
35
- return (
36
- <Typography
37
- key={child.key}
38
- variant="body"
39
- tag="span"
40
- className={classes["last"]}
41
- aria-current="page"
42
- >
43
- {child.props.children}
44
- </Typography>
45
- );
46
- } else {
47
- return (
48
- <Fragment key={child.key}>
49
- {React.cloneElement(child)}
50
- <Icon icon={Icons.ChevronRight} className={classes["icon"]} />
51
- </Fragment>
52
- );
53
- }
54
- });
55
- return (
56
- <nav
57
- {...rest}
58
- ref={ref}
59
- aria-label={ariaLabel}
60
- className={`${classes["breadcrumbs"]} ${className}`}
61
- >
62
- {items}
63
- </nav>
64
- );
65
- }
66
- );
35
+ const BreadcrumbsComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (
36
+ { children, ariaLabel, className = "", ...rest }: Props,
37
+ ref
38
+ ) => {
39
+ const items = React.Children.map(children, (child, index) => {
40
+ const isLastElement = Array.isArray(children) ? index === children.length - 1 : true;
41
+ if (isLastElement) {
42
+ return (
43
+ <Typography
44
+ key={child.key}
45
+ variant="body"
46
+ tag="span"
47
+ className={classes["last"]}
48
+ aria-current="page"
49
+ >
50
+ {child.props.children}
51
+ </Typography>
52
+ );
53
+ } else {
54
+ return (
55
+ <Fragment key={child.key}>
56
+ {React.cloneElement(child)}
57
+ <Icon icon={Icons.ChevronRight} className={classes["icon"]} />
58
+ </Fragment>
59
+ );
60
+ }
61
+ });
62
+ return (
63
+ <nav
64
+ {...rest}
65
+ ref={ref}
66
+ aria-label={ariaLabel}
67
+ className={`${classes["breadcrumbs"]} ${className}`}
68
+ >
69
+ {items}
70
+ </nav>
71
+ );
72
+ };
73
+
74
+ export const Breadcrumbs = React.forwardRef(BreadcrumbsComponent);
@@ -14,7 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- import React, { ComponentPropsWithRef } from "react";
17
+ import React, { ForwardRefRenderFunction, ComponentPropsWithRef } from "react";
18
18
  import classes from "./BaseButton.module.scss";
19
19
 
20
20
  export interface Props extends ComponentPropsWithRef<"button"> {
@@ -23,24 +23,27 @@ export interface Props extends ComponentPropsWithRef<"button"> {
23
23
  color?: "primary" | "secondary" | "tertiary" | "default";
24
24
  }
25
25
 
26
- export const BaseButton = React.forwardRef<HTMLButtonElement, Props>(
27
- ({ children, type = "button", className, ...rest }, ref) => {
28
- const validTypes = ["submit", "button", "reset"];
26
+ const BaseButtonComponent: ForwardRefRenderFunction<HTMLButtonElement, Props> = (
27
+ { children, type = "button", className, ...rest },
28
+ ref
29
+ ) => {
30
+ const validTypes = ["submit", "button", "reset"];
29
31
 
30
- if (!validTypes.includes(type))
31
- throw new Error(
32
- `You have entered an invalid button type. Expected 'submit', 'button' or 'reset' got ${type}`
33
- );
34
-
35
- return (
36
- <button
37
- {...rest}
38
- ref={ref}
39
- type={type}
40
- className={`${classes.button} ${className ? className : ""}`}
41
- >
42
- {children}
43
- </button>
32
+ if (!validTypes.includes(type))
33
+ throw new Error(
34
+ `You have entered an invalid button type. Expected 'submit', 'button' or 'reset' got ${type}`
44
35
  );
45
- }
46
- );
36
+
37
+ return (
38
+ <button
39
+ {...rest}
40
+ ref={ref}
41
+ type={type}
42
+ className={`${classes.button} ${className ? className : ""}`}
43
+ >
44
+ {children}
45
+ </button>
46
+ );
47
+ };
48
+
49
+ export const BaseButton = React.forwardRef(BaseButtonComponent);
@@ -42,4 +42,13 @@
42
42
  padding-left: 1.25rem;
43
43
  padding-right: 1rem;
44
44
  }
45
+
46
+ i {
47
+ display: flex;
48
+ align-items: center;
49
+ justify-content: center;
50
+
51
+ width: 1.5rem;
52
+ margin-right: 0.25rem;
53
+ }
45
54
  }
@@ -14,7 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- import React from "react";
17
+ import React, { ForwardRefRenderFunction } from "react";
18
18
  import { BaseButton, Props as BaseButtonProps } from "./BaseButton";
19
19
  import classes from "./Button.module.scss";
20
20
 
@@ -25,47 +25,47 @@ export interface Props extends BaseButtonProps {
25
25
  variant?: "text" | "fill" | "outline";
26
26
  }
27
27
 
28
- export const Button = React.forwardRef<HTMLButtonElement, Props>(
29
- (
30
- {
31
- children,
32
- variant = "fill",
33
- color = "primary",
34
- startIcon = false,
35
- endIcon = false,
36
- className,
37
- ...rest
38
- },
39
- ref
40
- ) => {
41
- const additionalClasses = [];
28
+ const ButtonComponent: ForwardRefRenderFunction<HTMLButtonElement, Props> = (
29
+ {
30
+ children,
31
+ variant = "fill",
32
+ color = "primary",
33
+ startIcon = false,
34
+ endIcon = false,
35
+ className,
36
+ ...rest
37
+ },
38
+ ref
39
+ ) => {
40
+ const additionalClasses = [];
42
41
 
43
- if (startIcon || endIcon) {
44
- additionalClasses.push(classes["has-icon"]);
45
- }
46
-
47
- if (startIcon) {
48
- additionalClasses.push(classes["start-icon"]);
49
- }
42
+ if (startIcon || endIcon) {
43
+ additionalClasses.push(classes["has-icon"]);
44
+ }
50
45
 
51
- if (endIcon) {
52
- additionalClasses.push(classes["end-icon"]);
53
- }
46
+ if (startIcon) {
47
+ additionalClasses.push(classes["start-icon"]);
48
+ }
54
49
 
55
- if (className) {
56
- additionalClasses.push(className);
57
- }
50
+ if (endIcon) {
51
+ additionalClasses.push(classes["end-icon"]);
52
+ }
58
53
 
59
- return (
60
- <BaseButton
61
- {...rest}
62
- ref={ref}
63
- className={`${classes[color]} ${classes[variant]} ${additionalClasses.join(" ")}`}
64
- >
65
- {startIcon && <i>{startIcon}&nbsp;</i>}
66
- <span>{children}</span>
67
- {endIcon && <i>&nbsp;{endIcon}</i>}
68
- </BaseButton>
69
- );
54
+ if (className) {
55
+ additionalClasses.push(className);
70
56
  }
71
- );
57
+
58
+ return (
59
+ <BaseButton
60
+ {...rest}
61
+ ref={ref}
62
+ className={`${classes[color]} ${classes[variant]} ${additionalClasses.join(" ")}`}
63
+ >
64
+ {startIcon && <i>{startIcon}</i>}
65
+ <span>{children}</span>
66
+ {endIcon && <i>&nbsp;{endIcon}</i>}
67
+ </BaseButton>
68
+ );
69
+ };
70
+
71
+ export const Button = React.forwardRef(ButtonComponent);
@@ -14,7 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- import React, { Fragment } from "react";
17
+ import React, { ForwardRefRenderFunction, Fragment } from "react";
18
18
  import { BaseButton, Props as BaseButtonProps } from "./BaseButton";
19
19
  import classes from "./IconButton.module.scss";
20
20
  import readyclasses from "../readyclasses.module.scss";
@@ -27,33 +27,33 @@ export interface Props extends BaseButtonProps {
27
27
  title?: string;
28
28
  }
29
29
 
30
- export const IconButton = React.forwardRef<HTMLButtonElement, Props>(
31
- (
32
- { children, color = "primary", variant = "text", iconSize = "m", title, className, ...rest },
33
- ref
34
- ) => {
35
- if (!title) {
36
- console.error("Please make sure to specify a 'title' prop to your IconButton component! ");
37
- }
38
-
39
- const iconButtonClasses = [
40
- classes["icon-button"],
41
- classes[variant],
42
- classes[color],
43
- classes["button-" + iconSize]
44
- ];
30
+ export const IconButtonComponent: ForwardRefRenderFunction<HTMLButtonElement, Props> = (
31
+ { children, color = "primary", variant = "text", iconSize = "m", title, className, ...rest },
32
+ ref
33
+ ) => {
34
+ if (!title) {
35
+ console.error("Please make sure to specify a 'title' prop to your IconButton component! ");
36
+ }
45
37
 
46
- if (className) {
47
- iconButtonClasses.push(className);
48
- }
38
+ const iconButtonClasses = [
39
+ classes["icon-button"],
40
+ classes[variant],
41
+ classes[color],
42
+ classes["button-" + iconSize]
43
+ ];
49
44
 
50
- return (
51
- <BaseButton {...rest} ref={ref} className={iconButtonClasses.join(" ")}>
52
- <Fragment>
53
- {children}
54
- <span className={readyclasses["sr-only"]}>{title}</span>
55
- </Fragment>
56
- </BaseButton>
57
- );
45
+ if (className) {
46
+ iconButtonClasses.push(className);
58
47
  }
59
- );
48
+
49
+ return (
50
+ <BaseButton {...rest} ref={ref} className={iconButtonClasses.join(" ")}>
51
+ <Fragment>
52
+ {children}
53
+ <span className={readyclasses["sr-only"]}>{title}</span>
54
+ </Fragment>
55
+ </BaseButton>
56
+ );
57
+ };
58
+
59
+ export const IconButton = React.forwardRef(IconButtonComponent);