@hazelcast/ui 1.1.1 → 1.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 (178) hide show
  1. package/lib/Alert.d.ts +3 -2
  2. package/lib/Alert.js +23 -22
  3. package/lib/Alert.js.map +1 -1
  4. package/lib/Alert.module.scss +14 -6
  5. package/lib/AutocompleteField.d.ts +2 -1
  6. package/lib/AutocompleteField.js +41 -19
  7. package/lib/AutocompleteField.js.map +1 -1
  8. package/lib/AutocompleteField.module.scss +2 -4
  9. package/lib/AutocompleteFieldFormik.d.ts +2 -1
  10. package/lib/AutocompleteFieldFormik.js +11 -5
  11. package/lib/AutocompleteFieldFormik.js.map +1 -1
  12. package/lib/Button.d.ts +80 -13
  13. package/lib/Button.js +39 -12
  14. package/lib/Button.js.map +1 -1
  15. package/lib/Button.module.scss +119 -87
  16. package/lib/Calendar/Calendar.d.ts +1 -1
  17. package/lib/Calendar/Calendar.js +6 -1
  18. package/lib/Calendar/Calendar.js.map +1 -1
  19. package/lib/Calendar/Calendar.module.scss +132 -124
  20. package/lib/Calendar/components/CalendarTime.js +1 -1
  21. package/lib/Calendar/components/CalendarTime.js.map +1 -1
  22. package/lib/Card.d.ts +1 -0
  23. package/lib/Card.js +4 -3
  24. package/lib/Card.js.map +1 -1
  25. package/lib/Card.module.scss +15 -3
  26. package/lib/Checkbox.js +4 -3
  27. package/lib/Checkbox.js.map +1 -1
  28. package/lib/Checkbox.module.scss +15 -6
  29. package/lib/CheckboxFormik.d.ts +2 -1
  30. package/lib/CheckboxFormik.js +9 -4
  31. package/lib/CheckboxFormik.js.map +1 -1
  32. package/lib/CodeEditor.d.ts +3 -2
  33. package/lib/CodeEditor.js +3 -2
  34. package/lib/CodeEditor.js.map +1 -1
  35. package/lib/EmptyState.d.ts +6 -4
  36. package/lib/EmptyState.js +4 -6
  37. package/lib/EmptyState.js.map +1 -1
  38. package/lib/EmptyState.module.scss +0 -1
  39. package/lib/Error.d.ts +1 -0
  40. package/lib/Error.js +2 -1
  41. package/lib/Error.js.map +1 -1
  42. package/lib/FieldHeader.d.ts +20 -0
  43. package/lib/FieldHeader.js +15 -0
  44. package/lib/FieldHeader.js.map +1 -0
  45. package/lib/FieldHeader.module.scss +20 -0
  46. package/lib/Icon.d.ts +2 -2
  47. package/lib/IconButton.d.ts +13 -3
  48. package/lib/IconButton.js +2 -2
  49. package/lib/IconButton.js.map +1 -1
  50. package/lib/InteractiveList.d.ts +2 -1
  51. package/lib/InteractiveList.js.map +1 -1
  52. package/lib/Link.js +2 -3
  53. package/lib/Link.js.map +1 -1
  54. package/lib/Link.module.scss +6 -0
  55. package/lib/Loader.module.scss +3 -1
  56. package/lib/Modal.d.ts +2 -0
  57. package/lib/Modal.js +2 -2
  58. package/lib/Modal.js.map +1 -1
  59. package/lib/NumberField.js +11 -5
  60. package/lib/NumberField.js.map +1 -1
  61. package/lib/NumberFieldFormik.d.ts +2 -1
  62. package/lib/NumberFieldFormik.js +7 -4
  63. package/lib/NumberFieldFormik.js.map +1 -1
  64. package/lib/Overlay.d.ts +2 -1
  65. package/lib/Overlay.js +7 -5
  66. package/lib/Overlay.js.map +1 -1
  67. package/lib/Overlay.module.scss +16 -3
  68. package/lib/Pagination.d.ts +0 -3
  69. package/lib/Pagination.js +10 -13
  70. package/lib/Pagination.js.map +1 -1
  71. package/lib/Pagination.module.scss +2 -1
  72. package/lib/PasswordFieldFormik.d.ts +2 -1
  73. package/lib/PasswordFieldFormik.js +9 -4
  74. package/lib/PasswordFieldFormik.js.map +1 -1
  75. package/lib/Popover.d.ts +1 -0
  76. package/lib/Popover.js +2 -0
  77. package/lib/Popover.js.map +1 -0
  78. package/lib/RadioGroup.js +4 -3
  79. package/lib/RadioGroup.js.map +1 -1
  80. package/lib/RadioGroup.module.scss +2 -4
  81. package/lib/RadioGroupFormik.d.ts +2 -1
  82. package/lib/RadioGroupFormik.js +9 -4
  83. package/lib/RadioGroupFormik.js.map +1 -1
  84. package/lib/SegmentedControl.d.ts +8 -8
  85. package/lib/SegmentedControl.js.map +1 -1
  86. package/lib/SegmentedControl.module.scss +4 -2
  87. package/lib/SegmentedControlFormik.d.ts +4 -4
  88. package/lib/SegmentedControlFormik.js.map +1 -1
  89. package/lib/Select/CheckableSelectField.d.ts +31 -0
  90. package/lib/Select/CheckableSelectField.js +89 -0
  91. package/lib/Select/CheckableSelectField.js.map +1 -0
  92. package/lib/Select/CheckableSelectField.module.scss +79 -0
  93. package/lib/Select/CheckableSelectFieldFormik.d.ts +10 -0
  94. package/lib/Select/CheckableSelectFieldFormik.js +19 -0
  95. package/lib/Select/CheckableSelectFieldFormik.js.map +1 -0
  96. package/lib/Select/MultiSelectField.d.ts +5 -8
  97. package/lib/Select/MultiSelectField.js +11 -9
  98. package/lib/Select/MultiSelectField.js.map +1 -1
  99. package/lib/Select/MultiSelectField.module.scss +8 -0
  100. package/lib/Select/MultiSelectFieldFormik.d.ts +2 -1
  101. package/lib/Select/MultiSelectFieldFormik.js +11 -5
  102. package/lib/Select/MultiSelectFieldFormik.js.map +1 -1
  103. package/lib/Select/SelectField.d.ts +3 -7
  104. package/lib/Select/SelectField.js +8 -8
  105. package/lib/Select/SelectField.js.map +1 -1
  106. package/lib/Select/SelectField.module.scss +4 -4
  107. package/lib/Select/SelectFieldFormik.d.ts +2 -1
  108. package/lib/Select/SelectFieldFormik.js +10 -4
  109. package/lib/Select/SelectFieldFormik.js.map +1 -1
  110. package/lib/Select/index.d.ts +2 -0
  111. package/lib/Select/index.js +2 -0
  112. package/lib/Select/index.js.map +1 -1
  113. package/lib/Slider.d.ts +6 -5
  114. package/lib/Slider.js +35 -17
  115. package/lib/Slider.js.map +1 -1
  116. package/lib/Slider.module.scss +8 -8
  117. package/lib/Table/Cell.module.scss +11 -4
  118. package/lib/Table/EnhancedRenderers.d.ts +0 -7
  119. package/lib/Table/EnhancedRenderers.js +3 -14
  120. package/lib/Table/EnhancedRenderers.js.map +1 -1
  121. package/lib/Table/Header.js +9 -3
  122. package/lib/Table/Header.js.map +1 -1
  123. package/lib/Table/Header.module.scss +26 -35
  124. package/lib/Table/Row.js +2 -3
  125. package/lib/Table/Row.js.map +1 -1
  126. package/lib/Table/Row.module.scss +4 -10
  127. package/lib/Table/Table.d.ts +10 -4
  128. package/lib/Table/Table.js +66 -26
  129. package/lib/Table/Table.js.map +1 -1
  130. package/lib/Table/Table.module.scss +5 -5
  131. package/lib/Tabs/Tab.d.ts +9 -1
  132. package/lib/Tabs/Tab.js +5 -2
  133. package/lib/Tabs/Tab.js.map +1 -1
  134. package/lib/Tabs/Tab.module.scss +4 -0
  135. package/lib/TextArea.d.ts +2 -5
  136. package/lib/TextArea.js +7 -7
  137. package/lib/TextArea.js.map +1 -1
  138. package/lib/TextArea.module.scss +2 -4
  139. package/lib/TextField.d.ts +4 -7
  140. package/lib/TextField.js +9 -8
  141. package/lib/TextField.js.map +1 -1
  142. package/lib/TextField.module.scss +4 -22
  143. package/lib/TextFieldFormik.d.ts +4 -2
  144. package/lib/TextFieldFormik.js +15 -4
  145. package/lib/TextFieldFormik.js.map +1 -1
  146. package/lib/TimeField.d.ts +2 -11
  147. package/lib/TimeField.js +7 -6
  148. package/lib/TimeField.js.map +1 -1
  149. package/lib/TimeField.module.scss +6 -6
  150. package/lib/Toggle.js +4 -3
  151. package/lib/Toggle.js.map +1 -1
  152. package/lib/Toggle.module.scss +15 -14
  153. package/lib/Tooltip.d.ts +7 -1
  154. package/lib/Tooltip.js +38 -23
  155. package/lib/Tooltip.js.map +1 -1
  156. package/lib/Tooltip.module.scss +10 -5
  157. package/lib/TruncatedText.d.ts +1 -1
  158. package/lib/TruncatedText.js +1 -1
  159. package/lib/TruncatedText.js.map +1 -1
  160. package/lib/hooks/index.d.ts +1 -0
  161. package/lib/hooks/index.js +3 -0
  162. package/lib/hooks/index.js.map +1 -0
  163. package/lib/hooks/usePrevious.d.ts +1 -0
  164. package/lib/hooks/usePrevious.js +9 -0
  165. package/lib/hooks/usePrevious.js.map +1 -0
  166. package/lib/hooks/useTableCustomizableColumns.d.ts +9 -0
  167. package/lib/hooks/useTableCustomizableColumns.js +23 -0
  168. package/lib/hooks/useTableCustomizableColumns.js.map +1 -0
  169. package/lib/index.d.ts +2 -0
  170. package/lib/index.js +2 -0
  171. package/lib/index.js.map +1 -1
  172. package/package.json +13 -13
  173. package/styles/constants/_sizes.scss +5 -4
  174. package/styles/constants/_typography.scss +3 -3
  175. package/styles/fonts.css +29 -65
  176. package/styles/helpers/_a11y.scss +4 -0
  177. package/styles/helpers/_error.scss +17 -0
  178. package/styles/helpers/_index.scss +1 -0
package/lib/Button.js CHANGED
@@ -7,6 +7,32 @@ import { TruncatedText } from './TruncatedText';
7
7
  import { Tooltip } from './Tooltip';
8
8
  import { Loader } from './Loader';
9
9
  import styles from './Button.module.scss';
10
+ const capitalizeFirstCharacter = (str) => `${str[0].toUpperCase()}${str.slice(1)}`;
11
+ const resolveButtonKindStyles = (kind) => {
12
+ switch (kind) {
13
+ case 'secondary':
14
+ return {
15
+ [styles.colorPrimary]: true,
16
+ [styles.variantOutlined]: true,
17
+ };
18
+ case 'transparent':
19
+ return {
20
+ [styles.colorPrimary]: true,
21
+ [styles.variantText]: true,
22
+ };
23
+ case 'danger': {
24
+ return {
25
+ [styles.colorSecondary]: true,
26
+ [styles.variantContained]: true,
27
+ };
28
+ }
29
+ default:
30
+ return {
31
+ [styles.colorPrimary]: true,
32
+ [styles.variantContained]: true,
33
+ };
34
+ }
35
+ };
10
36
  /**
11
37
  * ### Purpose
12
38
  * Make it clear what users should do to continue with their main flow by using buttons to highlight the main actions they can take.
@@ -27,27 +53,28 @@ import styles from './Button.module.scss';
27
53
  * - **Danger**: Use danger button for potentially destructive actions.
28
54
  * - **Transparent**: Use for IconButton and similar use-cases.
29
55
  */
30
- export const Button = forwardRef(({ kind = 'primary', size = 'medium', component: Component = 'button', className, bodyClassName, outlineClassName, outline = 'outline', children, capitalize = true,
56
+ export const Button = forwardRef(({ kind, component: Component = 'button', className, bodyClassName, outlineClassName, outline = 'outline', children, capitalize = true,
31
57
  // Disabled tooltip
32
58
  disabled, disabledTooltip, disabledTooltipVisible, disabledTooltipPlacement,
33
59
  // Left icon
34
60
  iconLeft, iconLeftAriaLabel, iconLeftColor, iconLeftClassName,
35
61
  // Right icon
36
- iconRight, iconRightAriaLabel, iconRightColor, iconRightClassName, rel = 'noopener', target, type = 'button', loading, ...rest }, ref) => {
62
+ iconRight, iconRightAriaLabel, iconRightColor, iconRightClassName, rel = 'noopener', target, type = 'button', loading, variant = 'contained', color = 'primary', tooltip, ...rest }, ref) => {
37
63
  const tooltipId = useUID();
38
64
  const relFinal = Array.isArray(rel) ? rel.join(' ') : rel;
39
65
  const loadingAnimationOnRight = loading && iconRight && iconRightAriaLabel && !(iconLeft && iconLeftAriaLabel);
40
- return (React.createElement(Tooltip, { id: tooltipId, content: disabled ? disabledTooltip : undefined, visible: disabledTooltipVisible, placement: disabledTooltipPlacement }, (tooltipRef) => (React.createElement(Component, Object.assign({ "data-test": "button", className: cn(styles.button, {
41
- [styles.small]: size === 'small',
42
- [styles.primary]: kind === 'primary',
43
- [styles.secondary]: kind === 'secondary',
44
- [styles.danger]: kind === 'danger',
45
- [styles.transparent]: kind === 'transparent',
66
+ return (React.createElement(Tooltip, { id: tooltipId, content: disabled ? disabledTooltip : tooltip, visible: disabled && disabledTooltipVisible, placement: disabledTooltipPlacement }, (tooltipRef) => (React.createElement(Component, Object.assign({ "data-test": "button", className: cn(styles.button, {
67
+ ...(kind !== undefined
68
+ ? resolveButtonKindStyles(kind)
69
+ : {
70
+ [styles[`color${capitalizeFirstCharacter(color)}`]]: true,
71
+ [styles[`variant${capitalizeFirstCharacter(variant)}`]]: true,
72
+ }),
46
73
  }, className), "aria-describedby": disabled ? tooltipId : undefined, disabled: disabled !== null && disabled !== void 0 ? disabled : loading, rel: Component === 'a' ? relFinal : undefined, target: Component === 'a' ? target : undefined, type: Component === 'button' ? type : undefined }, rest),
47
74
  React.createElement("span", { "data-test": "button-outline", className: cn(styles.outline, { [styles.inset]: outline === 'inset' }, outlineClassName) }),
48
75
  React.createElement("span", { className: cn(styles.body, bodyClassName), ref: mergeRefs([ref, tooltipRef]) },
49
- loading && !loadingAnimationOnRight && React.createElement(Loader, { className: styles.iconLeft, size: size }),
50
- iconLeft && iconLeftAriaLabel && !loading && (React.createElement(Icon, { icon: iconLeft, ariaLabel: iconLeftAriaLabel, "data-test": "button-icon-left", className: cn(styles.iconLeft, iconLeftClassName), size: size, color: iconLeftColor })),
76
+ loading && !loadingAnimationOnRight && React.createElement(Loader, { className: styles.iconLeft, size: 'small' }),
77
+ iconLeft && iconLeftAriaLabel && !loading && (React.createElement(Icon, { icon: iconLeft, ariaLabel: iconLeftAriaLabel, "data-test": "button-icon-left", className: cn(styles.iconLeft, iconLeftClassName), size: "small", color: iconLeftColor })),
51
78
  React.createElement(TruncatedText, { text: capitalize ? children.toUpperCase() : children,
52
79
  /*
53
80
  If a button is disabled and text is long we don't want to show 2 popups.
@@ -56,8 +83,8 @@ iconRight, iconRightAriaLabel, iconRightColor, iconRightClassName, rel = 'noopen
56
83
  the truncated popup -> setting it to undefined will leave the default behaviour.
57
84
  */
58
85
  tooltipVisible: disabled && disabledTooltipVisible !== false ? false : undefined }),
59
- loadingAnimationOnRight && React.createElement(Loader, { className: styles.iconRight, size: size }),
60
- !loadingAnimationOnRight && iconRight && iconRightAriaLabel && (React.createElement(Icon, { icon: iconRight, ariaLabel: iconRightAriaLabel, "data-test": "button-icon-right", className: cn(styles.iconRight, iconRightClassName), size: size, color: iconRightColor })))))));
86
+ loadingAnimationOnRight && React.createElement(Loader, { className: styles.iconRight, size: "small" }),
87
+ !loadingAnimationOnRight && iconRight && iconRightAriaLabel && (React.createElement(Icon, { icon: iconRight, ariaLabel: iconRightAriaLabel, "data-test": "button-icon-right", className: cn(styles.iconRight, iconRightClassName), size: "small", color: iconRightColor })))))));
61
88
  });
62
89
  Button.displayName = 'Button';
63
90
  //# sourceMappingURL=Button.js.map
package/lib/Button.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sourceRoot":"","sources":["../src/Button.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Button.js","sourceRoot":"","sources":["../src/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAwB,UAAU,EAAkB,MAAM,OAAO,CAAA;AAC/E,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,SAAS,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAElC,OAAO,EAAE,IAAI,EAAa,MAAM,QAAQ,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAgB,MAAM,WAAW,CAAA;AAEjD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC,OAAO,MAAM,MAAM,sBAAsB,CAAA;AA6FzC,MAAM,wBAAwB,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;AAE1F,MAAM,uBAAuB,GAAG,CAAC,IAAgB,EAAwB,EAAE;IACzE,QAAQ,IAAI,EAAE;QACZ,KAAK,WAAW;YACd,OAAO;gBACL,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,IAAI;gBAC3B,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,IAAI;aAC/B,CAAA;QACH,KAAK,aAAa;YAChB,OAAO;gBACL,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,IAAI;gBAC3B,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI;aAC3B,CAAA;QACH,KAAK,QAAQ,CAAC,CAAC;YACb,OAAO;gBACL,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,IAAI;gBAC7B,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,IAAI;aAChC,CAAA;SACF;QACD;YACE,OAAO;gBACL,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,IAAI;gBAC3B,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,IAAI;aAChC,CAAA;KACJ;AACH,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAC9B,CACE,EACE,IAAI,EACJ,SAAS,EAAE,SAAS,GAAG,QAAQ,EAC/B,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,OAAO,GAAG,SAAS,EACnB,QAAQ,EACR,UAAU,GAAG,IAAI;AACjB,mBAAmB;AACnB,QAAQ,EACR,eAAe,EACf,sBAAsB,EACtB,wBAAwB;AACxB,YAAY;AACZ,QAAQ,EACR,iBAAiB,EACjB,aAAa,EACb,iBAAiB;AACjB,aAAa;AACb,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,GAAG,GAAG,UAAU,EAChB,MAAM,EACN,IAAI,GAAG,QAAQ,EACf,OAAO,EACP,OAAO,GAAG,WAAW,EACrB,KAAK,GAAG,SAAS,EACjB,OAAO,EACP,GAAG,IAAI,EACR,EACD,GAAG,EACH,EAAE;IACF,MAAM,SAAS,GAAG,MAAM,EAAE,CAAA;IAC1B,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;IACzD,MAAM,uBAAuB,GAAG,OAAO,IAAI,SAAS,IAAI,kBAAkB,IAAI,CAAC,CAAC,QAAQ,IAAI,iBAAiB,CAAC,CAAA;IAE9G,OAAO,CACL,oBAAC,OAAO,IACN,EAAE,EAAE,SAAS,EACb,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,EAC7C,OAAO,EAAE,QAAQ,IAAI,sBAAsB,EAC3C,SAAS,EAAE,wBAAwB,IAElC,CAAC,UAAU,EAAE,EAAE,CAAC,CACf,oBAAC,SAAS,+BACE,QAAQ,EAClB,SAAS,EAAE,EAAE,CACX,MAAM,CAAC,MAAM,EACb;YACE,GAAG,CAAC,IAAI,KAAK,SAAS;gBACpB,CAAC,CAAC,uBAAuB,CAAC,IAAI,CAAC;gBAC/B,CAAC,CAAC;oBACE,CAAC,MAAM,CAAC,QAAQ,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI;oBACzD,CAAC,MAAM,CAAC,UAAU,wBAAwB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI;iBAC9D,CAAC;SACP,EACD,SAAS,CACV,sBACiB,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAClD,QAAQ,EAAE,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,OAAO,EAC7B,GAAG,EAAE,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAC7C,MAAM,EAAE,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAC9C,IAAI,EAAE,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,IAC3C,IAAI;QAER,2CAAgB,gBAAgB,EAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,EAAE,EAAE,gBAAgB,CAAC,GAAI;QAC7H,8BAAM,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YAC/E,OAAO,IAAI,CAAC,uBAAuB,IAAI,oBAAC,MAAM,IAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAC,OAAO,GAAG;YAC1F,QAAQ,IAAI,iBAAiB,IAAI,CAAC,OAAO,IAAI,CAC5C,oBAAC,IAAI,IACH,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE,iBAAiB,eAClB,kBAAkB,EAC5B,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC,EACjD,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,aAAa,GACpB,CACH;YACD,oBAAC,aAAa,IACZ,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,QAAQ;gBACpD;;;;;kBAKE;gBACF,cAAc,EAAE,QAAQ,IAAI,sBAAsB,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,GAChF;YACD,uBAAuB,IAAI,oBAAC,MAAM,IAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,EAAC,OAAO,GAAG;YAC/E,CAAC,uBAAuB,IAAI,SAAS,IAAI,kBAAkB,IAAI,CAC9D,oBAAC,IAAI,IACH,IAAI,EAAE,SAAS,EACf,SAAS,EAAE,kBAAkB,eACnB,mBAAmB,EAC7B,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,kBAAkB,CAAC,EACnD,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,cAAc,GACrB,CACH,CACI,CACG,CACb,CACO,CACX,CAAA;AACH,CAAC,CACF,CAAA;AAED,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAA"}
@@ -1,6 +1,18 @@
1
1
  @use '../styles/constants' as c;
2
2
  @use '../styles/helpers' as h;
3
3
 
4
+ @mixin buttonColor($color: c.$colorPrimary) {
5
+ color: $color;
6
+ background-color: $color;
7
+ border-color: $color;
8
+ }
9
+
10
+ @mixin disabledButtonColor {
11
+ color: c.$colorTextSecondary;
12
+ background-color: c.$colorNeutral;
13
+ border-color: c.$colorNeutral;
14
+ }
15
+
4
16
  .button {
5
17
  display: inline-block;
6
18
  position: relative;
@@ -8,17 +20,17 @@
8
20
  cursor: pointer;
9
21
  border: none;
10
22
  padding: 0;
11
- border-radius: c.$borderRadius;
12
- height: c.$inputHeight;
23
+ border-radius: c.$borderRadiusButtonSmall;
24
+ height: c.$inputHeightSmall;
13
25
  max-width: c.$buttonMaxWidth;
14
26
  // for <a> element
15
27
  text-decoration: none;
16
28
 
17
- @include c.typographyButton;
29
+ @include c.typographyButton('small');
18
30
 
19
31
  .outline {
20
32
  position: absolute;
21
- border-radius: c.$borderRadius;
33
+ border-radius: c.$borderRadiusButtonSmall;
22
34
  pointer-events: none;
23
35
  top: 50%;
24
36
  left: 50%;
@@ -38,17 +50,6 @@
38
50
  }
39
51
  }
40
52
 
41
- &.small {
42
- height: c.$inputHeightSmall;
43
- border-radius: c.$borderRadiusButtonSmall;
44
-
45
- @include c.typographyButton('small');
46
-
47
- .outline {
48
- border-radius: c.$borderRadiusButtonSmall;
49
- }
50
- }
51
-
52
53
  &:focus,
53
54
  &.focus {
54
55
  // Do not remove outline for high-contrast modes
@@ -86,97 +87,128 @@
86
87
  box-sizing: border-box;
87
88
  }
88
89
 
89
- // Kind === primary
90
- &.primary {
91
- color: c.$colorNeutralWhite;
92
- background-color: c.$colorPrimary;
90
+ &.color {
91
+ &Primary {
92
+ @include buttonColor(c.$colorPrimary);
93
93
 
94
- &:hover,
95
- &.hover,
96
- &:focus,
97
- &.focus {
98
- background-color: c.$colorPrimaryLight;
99
- }
94
+ &:hover,
95
+ &.hover,
96
+ &:focus,
97
+ &.focus {
98
+ @include buttonColor(c.$colorPrimaryLight);
99
+ }
100
100
 
101
- &:active,
102
- &.active {
103
- background-color: c.$colorPrimaryDark;
104
- }
101
+ &:active,
102
+ &.active {
103
+ @include buttonColor(c.$colorPrimaryDark);
104
+ }
105
+
106
+ &.variantContained {
107
+ color: c.$colorNeutralWhite;
108
+ }
105
109
 
106
- &:disabled {
107
- color: c.$colorTextSecondary;
108
- background-color: c.$colorNeutral;
110
+ &:disabled {
111
+ @include disabledButtonColor;
112
+ }
109
113
  }
110
- }
111
114
 
112
- // Kind === secondary
113
- &.secondary {
114
- color: c.$colorPrimary;
115
- background-color: transparent;
116
- border: c.$borderWidthButton solid;
117
- border-color: c.$colorPrimary;
115
+ &Secondary {
116
+ @include buttonColor(c.$colorError);
118
117
 
119
- .outline {
120
- /* Note: We need to take border of 1px into account */
121
- /* doiuse-disable calc */
122
- width: calc(100% + #{c.$grid} * 2.5);
123
- height: calc(100% + #{c.$grid} * 2.5);
124
- /* doiuse-enable calc */
118
+ &:hover,
119
+ &.hover,
120
+ &:focus,
121
+ &.focus {
122
+ @include buttonColor(c.$colorErrorLight);
123
+ }
125
124
 
126
- &.inset {
127
- /* doiuse-disable calc */
128
- width: calc(100% + #{c.$grid});
129
- height: calc(100% + #{c.$grid});
130
- /* doiuse-enable calc */
125
+ &:active,
126
+ &.active {
127
+ @include buttonColor(c.$colorErrorDark);
131
128
  }
132
- }
133
129
 
134
- &:hover,
135
- &.hover,
136
- &:focus,
137
- &.focus {
138
- color: c.$colorPrimaryLight;
139
- border-color: c.$colorPrimaryLight;
140
- }
130
+ &.variantContained {
131
+ color: c.$colorNeutralWhite;
132
+ }
141
133
 
142
- &:active,
143
- &.active {
144
- color: c.$colorPrimaryDark;
145
- border-color: c.$colorPrimaryDark;
134
+ &:disabled {
135
+ @include disabledButtonColor;
136
+ }
146
137
  }
147
138
 
148
- &:disabled {
149
- color: c.$colorTextSecondary;
150
- border-color: c.$colorNeutral;
139
+ &Warning {
140
+ @include buttonColor(c.$colorWarning);
141
+
142
+ &:hover,
143
+ &.hover,
144
+ &:focus,
145
+ &.focus {
146
+ @include buttonColor(c.$colorWarningLight);
147
+ }
148
+
149
+ &:active,
150
+ &.active {
151
+ @include buttonColor(c.$colorWarningDark);
152
+ }
153
+
154
+ &.variantContained {
155
+ color: c.$colorText;
156
+ }
157
+
158
+ &:disabled {
159
+ @include disabledButtonColor;
160
+ }
151
161
  }
152
162
  }
153
163
 
154
- // Kind === danger
155
- &.danger {
156
- color: c.$colorNeutralWhite;
157
- background-color: c.$colorError;
164
+ &.variant {
165
+ &Outlined {
166
+ background: none;
167
+ border-style: solid;
168
+ border-width: c.$borderWidth;
158
169
 
159
- &:hover,
160
- &.hover,
161
- &:focus,
162
- &.focus {
163
- background-color: c.$colorErrorLight;
164
- }
170
+ .outline {
171
+ /* Note: We need to take border of 1px into account */
172
+ /* doiuse-disable calc */
173
+ width: calc(100% + #{c.$grid} * 2.5);
174
+ height: calc(100% + #{c.$grid} * 2.5);
175
+ /* doiuse-enable calc */
165
176
 
166
- &:active,
167
- &.active {
168
- background-color: c.$colorErrorDark;
169
- }
177
+ &.inset {
178
+ /* doiuse-disable calc */
179
+ width: calc(100% + #{c.$grid});
180
+ height: calc(100% + #{c.$grid});
181
+ /* doiuse-enable calc */
182
+ }
183
+ }
170
184
 
171
- &:disabled {
172
- color: c.$colorTextSecondary;
173
- background-color: c.$colorNeutral;
185
+ &:hover,
186
+ &.hover,
187
+ &:active,
188
+ &.active,
189
+ &:focus,
190
+ &.focus,
191
+ &:disabled,
192
+ &.disabled {
193
+ background: none;
194
+ }
174
195
  }
175
- }
176
196
 
177
- // Kind === transparent
178
- &.transparent {
179
- color: inherit;
180
- background-color: transparent;
197
+ &Text {
198
+ color: inherit;
199
+ background: none;
200
+
201
+ &:hover,
202
+ &.hover,
203
+ &:active,
204
+ &.active,
205
+ &:focus,
206
+ &.focus,
207
+ &:disabled,
208
+ &.disabled {
209
+ color: inherit;
210
+ background: none;
211
+ }
212
+ }
181
213
  }
182
214
  }
@@ -3,7 +3,7 @@ import { ReactDatePickerProps } from 'react-datepicker';
3
3
  export declare type CalendarSize = 'medium' | 'small';
4
4
  export declare type CalendarProps = {
5
5
  containerClassName?: string;
6
- date: ReactDatePickerProps['selected'];
6
+ date: Date | null;
7
7
  inputLabel: string;
8
8
  inputClassName?: string;
9
9
  onDateChange: ReactDatePickerProps['onChange'];
@@ -1,13 +1,18 @@
1
1
  import React from 'react';
2
2
  import cn from 'classnames';
3
+ import { createPortal } from 'react-dom';
3
4
  import DatePicker from 'react-datepicker';
4
5
  import { CalendarInput } from './components/CalendarInput';
5
6
  import { CalendarHeader } from './components/CalendarHeader';
6
7
  import { CalendarTime } from './components/CalendarTime';
8
+ import { canUseDOM } from '../utils/ssr';
7
9
  import styles from './Calendar.module.scss';
8
10
  const DATE_FORMAT = 'yyyy-MM-dd';
9
11
  const DATE_FORMAT_WITH_TIME = 'yyyy-MM-dd hh:mm a';
10
- const CalendarPopperContainer = ({ children }) => React.createElement("div", { "data-test": "date-picker-popper-container" }, children);
12
+ const CalendarPopperContainer = ({ children }) => canUseDOM && children
13
+ ? createPortal(React.createElement("div", { className: styles.popper },
14
+ React.createElement("div", { "data-test": "date-picker-popper-container", className: "hz-date-picker-popper-container" }, children)), document.body)
15
+ : null;
11
16
  export const Calendar = ({ calendarClassName, className, containerClassName, date, inputLabel, inputClassName, onDateChange, showTimeInput, size = 'medium', ...props }) => (React.createElement("div", { className: cn(styles.container, {
12
17
  [styles.time]: showTimeInput,
13
18
  }, containerClassName) },
@@ -1 +1 @@
1
- {"version":3,"file":"Calendar.js","sourceRoot":"","sources":["../../src/Calendar/Calendar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAa,MAAM,OAAO,CAAA;AACjC,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,UAAoC,MAAM,kBAAkB,CAAA;AAEnE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAExD,OAAO,MAAM,MAAM,wBAAwB,CAAA;AAE3C,MAAM,WAAW,GAAG,YAAY,CAAA;AAChC,MAAM,qBAAqB,GAAG,oBAAoB,CAAA;AAElD,MAAM,uBAAuB,GAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,0CAAe,8BAA8B,IAAE,QAAQ,CAAO,CAAA;AAapH,MAAM,CAAC,MAAM,QAAQ,GAAsB,CAAC,EAC1C,iBAAiB,EACjB,SAAS,EACT,kBAAkB,EAClB,IAAI,EACJ,UAAU,EACV,cAAc,EACd,YAAY,EACZ,aAAa,EACb,IAAI,GAAG,QAAQ,EACf,GAAG,KAAK,EACT,EAAE,EAAE,CAAC,CACJ,6BACE,SAAS,EAAE,EAAE,CACX,MAAM,CAAC,SAAS,EAChB;QACE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,aAAa;KAC7B,EACD,kBAAkB,CACnB;IAED,oBAAC,UAAU,oBACL,KAAK,IACT,iBAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC,EACzD,SAAS,EAAE,SAAS;QACpB;;;WAGG;QACH,WAAW,EAAE,oBAAC,aAAa,IAAC,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,GAAI,EACjG,eAAe,EAAE,oBAAC,YAAY,OAAG,EACjC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,WAAW,EAC/D,QAAQ,EAAE,YAAY,EACtB,eAAe,EAAE,uBAAuB;QACxC;;;;WAIG;QACH,kBAAkB,EAAE,cAAc,EAClC,QAAQ,EAAE,IAAI,EACd,eAAe,EAAE,KAAK,EACtB,aAAa,EAAE,aAAa,IAC5B,CACE,CACP,CAAA"}
1
+ {"version":3,"file":"Calendar.js","sourceRoot":"","sources":["../../src/Calendar/Calendar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAa,MAAM,OAAO,CAAA;AACjC,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,UAAoC,MAAM,kBAAkB,CAAA;AAEnE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC,OAAO,MAAM,MAAM,wBAAwB,CAAA;AAE3C,MAAM,WAAW,GAAG,YAAY,CAAA;AAChC,MAAM,qBAAqB,GAAG,oBAAoB,CAAA;AAElD,MAAM,uBAAuB,GAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CACnD,SAAS,IAAI,QAAQ;IACnB,CAAC,CAAC,YAAY,CACZ,6BAAK,SAAS,EAAE,MAAM,CAAC,MAAM;QAC3B,0CAAe,8BAA8B,EAAC,SAAS,EAAC,iCAAiC,IACtF,QAAQ,CACL,CACF,EACJ,QAAQ,CAAC,IAAI,CACd;IACH,CAAC,CAAC,IAAI,CAAA;AAaV,MAAM,CAAC,MAAM,QAAQ,GAAsB,CAAC,EAC1C,iBAAiB,EACjB,SAAS,EACT,kBAAkB,EAClB,IAAI,EACJ,UAAU,EACV,cAAc,EACd,YAAY,EACZ,aAAa,EACb,IAAI,GAAG,QAAQ,EACf,GAAG,KAAK,EACT,EAAE,EAAE,CAAC,CACJ,6BACE,SAAS,EAAE,EAAE,CACX,MAAM,CAAC,SAAS,EAChB;QACE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,aAAa;KAC7B,EACD,kBAAkB,CACnB;IAED,oBAAC,UAAU,oBACL,KAAK,IACT,iBAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC,EACzD,SAAS,EAAE,SAAS;QACpB;;;WAGG;QACH,WAAW,EAAE,oBAAC,aAAa,IAAC,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,GAAI,EACjG,eAAe,EAAE,oBAAC,YAAY,OAAG,EACjC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,WAAW,EAC/D,QAAQ,EAAE,YAAY,EACtB,eAAe,EAAE,uBAAuB;QACxC;;;;WAIG;QACH,kBAAkB,EAAE,cAAc,EAClC,QAAQ,EAAE,IAAI,EACd,eAAe,EAAE,KAAK,EACtB,aAAa,EAAE,aAAa,IAC5B,CACE,CACP,CAAA"}