@dxc-technology/halstack-react 0.0.0-4b95ba0 → 0.0.0-4c3af14

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 (171) hide show
  1. package/HalstackContext.d.ts +12 -0
  2. package/HalstackContext.js +295 -0
  3. package/accordion/Accordion.d.ts +1 -1
  4. package/accordion/Accordion.js +7 -28
  5. package/accordion/Accordion.stories.tsx +11 -11
  6. package/accordion/Accordion.test.js +72 -0
  7. package/accordion/types.d.ts +4 -0
  8. package/accordion-group/AccordionGroup.d.ts +1 -1
  9. package/accordion-group/AccordionGroup.js +13 -15
  10. package/accordion-group/AccordionGroup.stories.tsx +1 -1
  11. package/accordion-group/AccordionGroup.test.js +151 -0
  12. package/accordion-group/types.d.ts +4 -0
  13. package/alert/Alert.js +4 -1
  14. package/alert/Alert.test.js +92 -0
  15. package/badge/Badge.d.ts +1 -1
  16. package/badge/Badge.js +5 -3
  17. package/badge/types.d.ts +1 -0
  18. package/bleed/Bleed.js +1 -34
  19. package/bleed/Bleed.stories.tsx +31 -32
  20. package/bleed/types.d.ts +25 -1
  21. package/box/Box.js +22 -32
  22. package/box/Box.test.js +18 -0
  23. package/button/Button.js +14 -11
  24. package/button/Button.test.js +35 -0
  25. package/card/Card.js +24 -27
  26. package/card/Card.test.js +50 -0
  27. package/checkbox/Checkbox.d.ts +1 -1
  28. package/checkbox/Checkbox.js +43 -39
  29. package/checkbox/Checkbox.stories.tsx +124 -128
  30. package/checkbox/Checkbox.test.js +78 -0
  31. package/checkbox/types.d.ts +7 -3
  32. package/chip/Chip.test.js +56 -0
  33. package/common/variables.js +181 -89
  34. package/date-input/DateInput.js +53 -39
  35. package/date-input/DateInput.stories.tsx +7 -7
  36. package/date-input/DateInput.test.js +479 -0
  37. package/date-input/types.d.ts +16 -9
  38. package/dialog/Dialog.js +4 -32
  39. package/dialog/Dialog.test.js +40 -0
  40. package/dropdown/Dropdown.js +13 -17
  41. package/dropdown/Dropdown.test.js +189 -0
  42. package/file-input/FileInput.js +9 -6
  43. package/file-input/FileInput.test.js +457 -0
  44. package/file-input/FileItem.js +7 -5
  45. package/footer/Footer.js +15 -88
  46. package/footer/Footer.test.js +109 -0
  47. package/header/Header.js +27 -48
  48. package/header/Header.stories.tsx +46 -36
  49. package/header/Header.test.js +79 -0
  50. package/heading/Heading.test.js +186 -0
  51. package/inline/Inline.d.ts +4 -0
  52. package/inline/Inline.js +54 -0
  53. package/inline/Inline.stories.tsx +220 -0
  54. package/inline/types.d.ts +32 -0
  55. package/{radio → inline}/types.js +0 -0
  56. package/inset/Inset.js +1 -34
  57. package/inset/Inset.stories.tsx +32 -32
  58. package/inset/types.d.ts +25 -1
  59. package/layout/ApplicationLayout.d.ts +4 -3
  60. package/layout/ApplicationLayout.js +82 -114
  61. package/layout/ApplicationLayout.stories.tsx +14 -59
  62. package/layout/Icons.d.ts +5 -0
  63. package/layout/Icons.js +13 -2
  64. package/layout/SidenavContext.d.ts +5 -0
  65. package/layout/SidenavContext.js +19 -0
  66. package/layout/types.d.ts +5 -10
  67. package/link/Link.d.ts +3 -2
  68. package/link/Link.js +57 -74
  69. package/link/Link.stories.tsx +87 -52
  70. package/link/Link.test.js +83 -0
  71. package/link/types.d.ts +7 -23
  72. package/main.d.ts +5 -3
  73. package/main.js +31 -9
  74. package/number-input/NumberInput.js +11 -18
  75. package/number-input/NumberInput.stories.tsx +5 -5
  76. package/number-input/NumberInput.test.js +506 -0
  77. package/number-input/types.d.ts +17 -10
  78. package/package.json +6 -5
  79. package/paginator/Paginator.js +17 -38
  80. package/paginator/Paginator.test.js +266 -0
  81. package/password-input/PasswordInput.js +7 -4
  82. package/password-input/PasswordInput.test.js +180 -0
  83. package/password-input/types.d.ts +14 -11
  84. package/progress-bar/ProgressBar.js +1 -1
  85. package/progress-bar/ProgressBar.stories.jsx +11 -11
  86. package/progress-bar/ProgressBar.test.js +65 -0
  87. package/quick-nav/QuickNav.d.ts +4 -0
  88. package/quick-nav/QuickNav.js +112 -0
  89. package/quick-nav/QuickNav.stories.tsx +237 -0
  90. package/quick-nav/types.d.ts +21 -0
  91. package/quick-nav/types.js +5 -0
  92. package/radio-group/Radio.d.ts +1 -1
  93. package/radio-group/Radio.js +25 -24
  94. package/radio-group/RadioGroup.js +46 -37
  95. package/radio-group/RadioGroup.stories.tsx +60 -39
  96. package/radio-group/RadioGroup.test.js +530 -83
  97. package/radio-group/types.d.ts +80 -2
  98. package/resultsetTable/ResultsetTable.test.js +306 -0
  99. package/row/types.d.ts +18 -0
  100. package/select/Icons.d.ts +10 -0
  101. package/select/Icons.js +93 -0
  102. package/select/Listbox.d.ts +4 -0
  103. package/select/Listbox.js +152 -0
  104. package/select/Option.d.ts +4 -0
  105. package/select/Option.js +110 -0
  106. package/select/Select.js +103 -327
  107. package/select/Select.stories.tsx +103 -81
  108. package/select/Select.test.js +2120 -0
  109. package/select/types.d.ts +54 -11
  110. package/sidenav/Sidenav.d.ts +1 -1
  111. package/sidenav/Sidenav.js +20 -9
  112. package/sidenav/Sidenav.test.js +56 -0
  113. package/slider/Slider.d.ts +1 -1
  114. package/slider/Slider.js +2 -1
  115. package/slider/Slider.stories.tsx +8 -8
  116. package/slider/Slider.test.js +150 -0
  117. package/slider/types.d.ts +4 -0
  118. package/spinner/Spinner.js +1 -1
  119. package/spinner/Spinner.test.js +64 -0
  120. package/stack/types.d.ts +15 -0
  121. package/switch/Switch.d.ts +1 -1
  122. package/switch/Switch.js +35 -19
  123. package/switch/Switch.stories.tsx +14 -14
  124. package/switch/Switch.test.js +98 -0
  125. package/switch/types.d.ts +6 -2
  126. package/table/Table.test.js +26 -0
  127. package/tabs/Tabs.d.ts +1 -1
  128. package/tabs/Tabs.js +9 -11
  129. package/tabs/Tabs.stories.tsx +0 -8
  130. package/tabs/Tabs.test.js +140 -0
  131. package/tabs/types.d.ts +4 -0
  132. package/tabs-nav/NavTabs.d.ts +8 -0
  133. package/tabs-nav/NavTabs.js +125 -0
  134. package/tabs-nav/NavTabs.stories.tsx +170 -0
  135. package/tabs-nav/NavTabs.test.js +82 -0
  136. package/tabs-nav/Tab.d.ts +4 -0
  137. package/tabs-nav/Tab.js +132 -0
  138. package/tabs-nav/types.d.ts +53 -0
  139. package/tabs-nav/types.js +5 -0
  140. package/tag/Tag.js +14 -19
  141. package/tag/Tag.stories.tsx +12 -8
  142. package/tag/Tag.test.js +60 -0
  143. package/text-input/Suggestion.d.ts +4 -0
  144. package/text-input/Suggestion.js +55 -0
  145. package/text-input/TextInput.js +51 -77
  146. package/text-input/TextInput.stories.tsx +30 -12
  147. package/text-input/TextInput.test.js +1712 -0
  148. package/text-input/types.d.ts +31 -12
  149. package/textarea/Textarea.js +15 -24
  150. package/textarea/Textarea.stories.jsx +33 -12
  151. package/textarea/Textarea.test.js +437 -0
  152. package/textarea/types.d.ts +18 -11
  153. package/toggle-group/ToggleGroup.d.ts +1 -1
  154. package/toggle-group/ToggleGroup.js +5 -4
  155. package/toggle-group/ToggleGroup.stories.tsx +4 -4
  156. package/toggle-group/ToggleGroup.test.js +156 -0
  157. package/toggle-group/types.d.ts +8 -0
  158. package/useTheme.js +2 -2
  159. package/useTranslatedLabels.d.ts +2 -0
  160. package/useTranslatedLabels.js +20 -0
  161. package/wizard/Wizard.d.ts +1 -1
  162. package/wizard/Wizard.js +55 -44
  163. package/wizard/Wizard.stories.tsx +13 -23
  164. package/wizard/Wizard.test.js +141 -0
  165. package/wizard/types.d.ts +6 -2
  166. package/ThemeContext.d.ts +0 -15
  167. package/ThemeContext.js +0 -235
  168. package/radio/Radio.d.ts +0 -4
  169. package/radio/Radio.js +0 -174
  170. package/radio/Radio.stories.tsx +0 -192
  171. package/radio/types.d.ts +0 -54
@@ -6,6 +6,10 @@ declare type Margin = {
6
6
  right?: Space;
7
7
  };
8
8
  declare type Props = {
9
+ /**
10
+ * Initial state of the checkbox, only when it is uncontrolled.
11
+ */
12
+ defaultChecked?: boolean;
9
13
  /**
10
14
  * If true, the component is checked. If undefined the component will be
11
15
  * uncontrolled and the value will be managed internally by the component.
@@ -33,14 +37,14 @@ declare type Props = {
33
37
  */
34
38
  disabled?: boolean;
35
39
  /**
36
- * If true, the checkbox will change its appearence, showing that the value is required.
40
+ * If true, the component will display '(Optional)' next to the label.
37
41
  */
38
- required?: boolean;
42
+ optional?: boolean;
39
43
  /**
40
44
  * This function will be called when the user clicks the checkbox.
41
45
  * The new value will be passed as a parameter.
42
46
  */
43
- onChange?: (val: boolean) => void;
47
+ onChange?: (value: boolean) => void;
44
48
  /**
45
49
  * Size of the margin to be applied to the component
46
50
  * ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _react = _interopRequireDefault(require("react"));
6
+
7
+ var _react2 = require("@testing-library/react");
8
+
9
+ var _Chip = _interopRequireDefault(require("./Chip"));
10
+
11
+ var _invision = _interopRequireDefault(require("../../app/src/images/invision.svg"));
12
+
13
+ describe("Chip component tests", function () {
14
+ test("Chip renders with correct text", function () {
15
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Chip["default"], {
16
+ label: "Chip"
17
+ })),
18
+ getByText = _render.getByText;
19
+
20
+ expect(getByText("Chip")).toBeTruthy();
21
+ });
22
+ test("Calls correct function when clicking on prefix icon", function () {
23
+ var onClick = jest.fn();
24
+
25
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Chip["default"], {
26
+ label: "Chip",
27
+ prefixIcon: _invision["default"],
28
+ onClickPrefix: onClick
29
+ })),
30
+ getByText = _render2.getByText,
31
+ getByRole = _render2.getByRole;
32
+
33
+ expect(getByText("Chip")).toBeTruthy();
34
+
35
+ _react2.fireEvent.click(getByRole("img"));
36
+
37
+ expect(onClick).toHaveBeenCalled();
38
+ });
39
+ test("Calls correct function when clicking on suffix icon", function () {
40
+ var onClick = jest.fn();
41
+
42
+ var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Chip["default"], {
43
+ label: "Chip",
44
+ suffixIcon: _invision["default"],
45
+ onClickSuffix: onClick
46
+ })),
47
+ getByText = _render3.getByText,
48
+ getByRole = _render3.getByRole;
49
+
50
+ expect(getByText("Chip")).toBeTruthy();
51
+
52
+ _react2.fireEvent.click(getByRole("img"));
53
+
54
+ expect(onClick).toHaveBeenCalled();
55
+ });
56
+ });
@@ -3,14 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.typeface = exports.spaces = exports.responsiveSizes = exports.globalTokens = exports.componentTokens = void 0;
7
-
8
- var _Icons = require("../header/Icons");
9
-
10
- var _Icons2 = require("../footer/Icons");
11
-
6
+ exports.typeface = exports.spaces = exports.responsiveSizes = exports.globalTokens = exports.defaultTranslatedComponentLabels = exports.componentTokens = void 0;
12
7
  var globalTokens = {
13
- // Color
8
+ // Color
14
9
  inherit: "inherit",
15
10
  transparent: "transparent",
16
11
  hal_white: "#ffffff",
@@ -24,12 +19,15 @@ var globalTokens = {
24
19
  color_grey_800: "#4d4d4d",
25
20
  color_grey_600: "#808080",
26
21
  color_grey_50: "#fafafa",
22
+ color_grey_a_100: "#0000000d",
23
+ color_grey_a_300: "#00000033",
27
24
  hal_purple_l_95: "#f2eafa",
28
25
  hal_purple_l_90: "#e5d5f6",
29
26
  hal_purple_l_65: "#a46ede",
30
27
  hal_purple_s_38: "#5f249f",
31
28
  hal_purple_d_30: "#4b1c7d",
32
29
  hal_purple_d_20: "#321353",
30
+ hal_purple_d_70: "#9A6BB2",
33
31
  color_purple_600: "#7D2FD0",
34
32
  color_purple_300: "#cbacec",
35
33
  hal_blue_l_95: "#e6f4ff",
@@ -112,7 +110,7 @@ var globalTokens = {
112
110
  type_normal: "normal",
113
111
  type_spacing_tight_02: "-0.05em",
114
112
  type_spacing_tight_01: "-0.025em",
115
- type_spacing_normal: "0",
113
+ type_spacing_normal: "0em",
116
114
  type_spacing_wide_01: "0.025em",
117
115
  type_spacing_wide_02: "0.05em",
118
116
  type_spacing_wide_03: "0.1em",
@@ -241,7 +239,7 @@ var componentTokens = {
241
239
  successBackgroundColor: globalTokens.hal_green_l_95,
242
240
  warningBackgroundColor: globalTokens.hal_yellow_l_95,
243
241
  errorBackgroundColor: globalTokens.hal_red_l_95,
244
- hoverActionBackgroundColor: "#0000000D",
242
+ hoverActionBackgroundColor: globalTokens.color_grey_a_100,
245
243
  activeActionBackgroundColor: "#0000001A",
246
244
  focusActionBorderColor: globalTokens.hal_blue_l_50,
247
245
  overlayColor: "#000000B3"
@@ -262,12 +260,12 @@ var componentTokens = {
262
260
  oneShadowDepthShadowOffsetY: "3px",
263
261
  oneShadowDepthShadowBlur: "6px",
264
262
  oneShadowDepthShadowSpread: "0px",
265
- oneShadowDepthShadowColor: "#00000033",
263
+ oneShadowDepthShadowColor: globalTokens.color_grey_a_300,
266
264
  twoShadowDepthShadowOffsetX: "0px",
267
265
  twoShadowDepthShadowOffsetY: "3px",
268
266
  twoShadowDepthShadowBlur: "10px",
269
267
  twoShadowDepthShadowSpread: "0px",
270
- twoShadowDepthShadowColor: "#00000033"
268
+ twoShadowDepthShadowColor: globalTokens.color_grey_a_300
271
269
  },
272
270
  button: {
273
271
  labelFontLineHeight: globalTokens.type_leading_normal,
@@ -488,14 +486,13 @@ var componentTokens = {
488
486
  focusDropBorderColor: globalTokens.hal_blue_l_50,
489
487
  disabledDropBorderColor: globalTokens.hal_grey_l_60,
490
488
  dragoverDropBackgroundColor: globalTokens.color_blue_50,
491
- hoverFileItemIconBackgroundColor: globalTokens.hal_grey_l_95,
492
489
  activeFileItemIconBackgrounColor: globalTokens.hal_grey_l_80,
493
490
  errorFileItemBorderColor: globalTokens.hal_red_s_41,
494
491
  errorFileItemBackgroundColor: globalTokens.color_red_50,
495
- errorFileItemIconBackgroundColor: globalTokens.color_red_700,
492
+ errorFilePreviewBackgroundColor: globalTokens.color_red_700,
496
493
  errorFileItemIconColor: globalTokens.hal_red_s_41,
497
494
  fileItemIconBackgroundColor: globalTokens.hal_grey_l_95,
498
- fileItemIconColor: globalTokens.color_grey_600,
495
+ deleteFileItemColor: globalTokens.hal_black,
499
496
  errorMessageFontColor: globalTokens.hal_red_s_41,
500
497
  labelFontFamily: globalTokens.type_sans,
501
498
  labelFontSize: globalTokens.type_scale_02,
@@ -522,9 +519,12 @@ var componentTokens = {
522
519
  fileItemBorderThickness: globalTokens.border_width_1,
523
520
  fileItemBorderStyle: globalTokens.border_solid,
524
521
  fileItemBorderRadius: globalTokens.border_radius_medium,
525
- hoverDeleteFileItemBackgroundColor: "#0000000d",
526
- activeDeleteFileItemBackgroundColor: "#00000033",
527
- focusActionBorderColor: globalTokens.hal_blue_l_50
522
+ hoverDeleteFileItemBackgroundColor: globalTokens.color_grey_a_100,
523
+ activeDeleteFileItemBackgroundColor: globalTokens.color_grey_a_300,
524
+ focusDeleteFileItemBorderColor: globalTokens.hal_blue_l_50,
525
+ filePreviewBackgroundColor: globalTokens.hal_grey_l_95,
526
+ filePreviewIconColor: globalTokens.color_grey_600,
527
+ errorFilePreviewIconColor: globalTokens.hal_red_s_41
528
528
  },
529
529
  footer: {
530
530
  height: "124px",
@@ -717,7 +717,7 @@ var componentTokens = {
717
717
  link: {
718
718
  fontColor: globalTokens.hal_blue_s_35,
719
719
  fontFamily: globalTokens.inherit,
720
- fontSize: globalTokens.type_scale_root,
720
+ fontSize: globalTokens.inherit,
721
721
  fontStyle: globalTokens.type_normal,
722
722
  fontWeight: globalTokens.type_regular,
723
723
  iconSize: "16px",
@@ -742,15 +742,15 @@ var componentTokens = {
742
742
  fontStyle: globalTokens.type_normal,
743
743
  fontWeight: globalTokens.type_regular,
744
744
  fontTextTransform: "none",
745
- height: "64px",
746
- width: "100%",
747
- marginRight: "40px",
748
- marginLeft: "20px",
745
+ verticalPadding: "0.75rem",
746
+ horizontalPadding: "2rem",
747
+ marginRight: "2rem",
748
+ marginLeft: "2rem",
749
749
  itemsPerPageSelectorMarginLeft: "0px",
750
- itemsPerPageSelectorMarginRight: "30px",
750
+ itemsPerPageSelectorMarginRight: "1rem",
751
751
  pageSelectorMarginRight: "30px",
752
752
  pageSelectorMarginLeft: "0px",
753
- totalItemsContainerMarginRight: "30px",
753
+ totalItemsContainerMarginRight: "3rem",
754
754
  totalItemsContainerMarginLeft: "0px"
755
755
  },
756
756
  progressBar: {
@@ -782,21 +782,21 @@ var componentTokens = {
782
782
  overlayColor: globalTokens.black,
783
783
  overlayOpacity: "0.8"
784
784
  },
785
- radio: {
786
- circleLabelSpacing: "10px",
787
- circleSize: "24px",
788
- color: globalTokens.black,
789
- colorOnDark: globalTokens.white,
790
- disabledColor: globalTokens.lighterBlack,
791
- disabledColorOnDark: "#575757",
792
- disabledFontColor: globalTokens.lighterBlack,
793
- disabledFontColorOnDark: "#575757",
794
- focusColor: globalTokens.hal_blue_l_50,
795
- focusColorOnDark: "#1682FF",
796
- fontColor: globalTokens.inherit,
797
- fontColorOnDark: globalTokens.white,
785
+ quickNav: {
786
+ fontColor: globalTokens.hal_grey_s_40,
787
+ hoverFontColor: globalTokens.hal_purple_d_70,
788
+ selectedFontColor: globalTokens.hal_purple_s_38,
789
+ dividerBorderColor: globalTokens.hal_grey_l_75,
790
+ focusBorderColor: globalTokens.hal_blue_l_50,
791
+ focusBorderStyle: globalTokens.border_solid,
792
+ focusBorderThickness: globalTokens.border_width_2,
793
+ focusBorderRadius: globalTokens.border_width_2,
794
+ paddingTop: globalTokens.spacing_03,
795
+ paddingBottom: globalTokens.spacing_03,
796
+ paddingLeft: globalTokens.spacing_05,
797
+ paddingRight: globalTokens.spacing_05,
798
798
  fontFamily: globalTokens.type_sans,
799
- fontSize: globalTokens.type_scale_root,
799
+ fontSize: globalTokens.type_scale_02,
800
800
  fontStyle: globalTokens.type_normal,
801
801
  fontWeight: globalTokens.type_regular
802
802
  },
@@ -1015,7 +1015,7 @@ var componentTokens = {
1015
1015
  },
1016
1016
  spinner: {
1017
1017
  trackCircleColor: "#5f249f",
1018
- trackCircleColorOnDark: "#a46ede",
1018
+ trackCircleColorOverlay: "#a46ede",
1019
1019
  totalCircleColor: globalTokens.white,
1020
1020
  labelFontFamily: globalTokens.type_sans,
1021
1021
  labelFontSize: globalTokens.type_scale_02,
@@ -1150,6 +1150,7 @@ var componentTokens = {
1150
1150
  disabledFontColor: "#999999",
1151
1151
  disabledIconColor: "#999999",
1152
1152
  disabledFontStyle: globalTokens.type_normal,
1153
+ disabledBadgeBackgroundColor: "#0000004D",
1153
1154
  hoverBackgroundColor: "#f2eafa",
1154
1155
  pressedBackgroundColor: "#e5d5f6",
1155
1156
  pressedFontWeight: globalTokens.type_semibold,
@@ -1269,57 +1270,64 @@ var componentTokens = {
1269
1270
  optionFocusBorderThickness: globalTokens.border_width_2
1270
1271
  },
1271
1272
  wizard: {
1272
- disabledBackgroundColor: globalTokens.lightGrey,
1273
- disabledFontColor: globalTokens.darkGrey,
1274
- stepContainerFontSize: globalTokens.type_scale_03,
1275
- stepContainerFontFamily: globalTokens.type_sans,
1276
- stepContainerFontStyle: globalTokens.type_normal,
1277
- stepContainerFontWeight: globalTokens.type_regular,
1278
- stepContainerLetterSpacing: globalTokens.type_spacing_wide_02,
1279
- stepContainerFontColor: globalTokens.black,
1280
- stepContainerSelectedFontColor: globalTokens.white,
1281
- stepContainerSelectedBackgroundColor: globalTokens.hal_purple_s_38,
1282
- stepContainerBackgroundColor: globalTokens.white,
1283
- stepContainerIconSize: "19px",
1273
+ visitedStepFontColor: globalTokens.hal_black,
1274
+ visitedStepBackgroundColor: globalTokens.hal_white,
1275
+ visitedStepBorderColor: globalTokens.hal_black,
1276
+ unvisitedStepFontColor: globalTokens.hal_grey_s_40,
1277
+ unvisitedLabelFontColor: globalTokens.hal_grey_s_40,
1278
+ unvisitedHelperTextFontColor: globalTokens.hal_grey_s_40,
1279
+ unvisitedStepBackgroundColor: globalTokens.transparent,
1280
+ unvisitedStepBorderColor: globalTokens.hal_grey_s_40,
1281
+ selectedStepFontColor: globalTokens.white,
1282
+ selectedStepBackgroundColor: globalTokens.hal_purple_s_38,
1283
+ selectedStepBorderColor: globalTokens.hal_purple_s_38,
1284
+ selectedLabelFontColor: globalTokens.hal_black,
1285
+ selectedHelperTextFontColor: globalTokens.hal_black,
1286
+ selectedStepWidth: "32px",
1287
+ selectedStepHeight: "32px",
1288
+ selectedStepBorderThickness: "2px",
1289
+ selectedStepBorderStyle: "solid",
1290
+ selectedStepBorderRadius: "45px",
1291
+ stepFontSize: globalTokens.type_scale_03,
1292
+ stepFontFamily: globalTokens.type_sans,
1293
+ stepFontStyle: globalTokens.type_normal,
1294
+ stepFontWeight: globalTokens.type_regular,
1295
+ stepFontTracking: globalTokens.type_spacing_wide_02,
1296
+ stepIconSize: "20px",
1297
+ stepWidth: "32px",
1298
+ stepHeight: "32px",
1299
+ stepBorderThickness: "2px",
1300
+ stepBorderStyle: "solid",
1301
+ stepBorderRadius: "45px",
1302
+ visitedLabelFontColor: globalTokens.hal_black,
1284
1303
  labelFontSize: globalTokens.type_scale_03,
1285
1304
  labelFontFamily: globalTokens.type_sans,
1286
1305
  labelFontStyle: globalTokens.type_normal,
1287
1306
  labelFontWeight: globalTokens.type_regular,
1288
- labelLetterSpacing: globalTokens.type_spacing_normal,
1307
+ labelFontTracking: globalTokens.type_spacing_normal,
1289
1308
  labelFontTextTransform: "none",
1290
1309
  labelTextAlign: "left",
1291
- labelFontColor: globalTokens.darkGrey,
1292
- visitedLabelFontColor: globalTokens.black,
1293
- visitedDescriptionFontColor: globalTokens.black,
1294
- descriptionFontSize: globalTokens.type_scale_01,
1295
- descriptionFontFamily: globalTokens.type_sans,
1296
- descriptionFontStyle: globalTokens.type_normal,
1297
- descriptionFontWeight: globalTokens.type_regular,
1298
- descriptionLetterSpacing: globalTokens.type_spacing_wide_01,
1299
- descriptionFontTextTransform: "none",
1300
- descriptionFontColor: globalTokens.darkGrey,
1301
- descriptionTextAlign: "left",
1302
- circleWidth: "32px",
1303
- circleHeight: "32px",
1304
- circleBorderThickness: "2px",
1305
- circleBorderStyle: "solid",
1306
- circleBorderRadius: "45px",
1307
- circleBorderColor: globalTokens.black,
1308
- selectedCircleWidth: "32px",
1309
- selectedCircleHeight: "32px",
1310
- selectedCircleBorderThickness: "2px",
1311
- selectedCircleBorderStyle: "solid",
1312
- selectedCircleBorderRadius: "45px",
1313
- selectedCircleBorderColor: globalTokens.purple,
1314
- disabledCircleWidth: "32px",
1315
- disabledCircleHeight: "32px",
1316
- disabledCircleBorderThickness: "2px",
1317
- disabledCircleBorderStyle: "solid",
1318
- disabledCircleBorderRadius: "45px",
1319
- disabledCircleBorderColor: globalTokens.lightGrey,
1310
+ helperTextFontSize: globalTokens.type_scale_02,
1311
+ helperTextFontFamily: globalTokens.type_sans,
1312
+ helperTextFontStyle: globalTokens.type_normal,
1313
+ helperTextFontWeight: globalTokens.type_regular,
1314
+ helperTextFontTracking: globalTokens.type_spacing_normal,
1315
+ helperTextFontTextTransform: "none",
1316
+ visitedHelperTextFontColor: globalTokens.hal_black,
1317
+ helperTextTextAlign: "left",
1318
+ disabledStepBackgroundColor: globalTokens.hal_grey_l_95,
1319
+ disabledStepFontColor: globalTokens.hal_grey_l_60,
1320
+ disabledLabelFontColor: globalTokens.hal_grey_l_60,
1321
+ disabledHelperTextFontColor: globalTokens.hal_grey_l_60,
1322
+ disabledStepBorderColor: globalTokens.hal_grey_l_95,
1323
+ disabledStepWidth: "32px",
1324
+ disabledStepHeight: "32px",
1325
+ disabledStepBorderThickness: "2px",
1326
+ disabledStepBorderStyle: "solid",
1327
+ disabledStepBorderRadius: "45px",
1320
1328
  separatorBorderThickness: "1px",
1321
1329
  separatorBorderStyle: "solid",
1322
- separatorColor: globalTokens.lightGrey,
1330
+ separatorColor: globalTokens.hal_grey_s_40,
1323
1331
  focusColor: globalTokens.hal_blue_l_50
1324
1332
  }
1325
1333
  };
@@ -1335,12 +1343,11 @@ var spaces = {
1335
1343
  };
1336
1344
  exports.spaces = spaces;
1337
1345
  var responsiveSizes = {
1338
- mobileSmall: "320",
1339
- mobileMedium: "375",
1340
- mobileLarge: "425",
1341
- tablet: "768",
1342
- laptop: "1024",
1343
- desktop: "1440"
1346
+ xsmall: "20",
1347
+ small: "30",
1348
+ medium: "45",
1349
+ large: "66",
1350
+ xlarge: "90"
1344
1351
  };
1345
1352
  exports.responsiveSizes = responsiveSizes;
1346
1353
  var typeface = {
@@ -1375,4 +1382,89 @@ var typeface = {
1375
1382
  textTransform: "uppercase"
1376
1383
  }
1377
1384
  };
1378
- exports.typeface = typeface;
1385
+ exports.typeface = typeface;
1386
+ var defaultTranslatedComponentLabels = {
1387
+ formFields: {
1388
+ optionalLabel: "(Optional)",
1389
+ requiredSelectionErrorMessage: "This field is required. Please, choose an option.",
1390
+ requiredValueErrorMessage: "This field is required. Please, enter a value.",
1391
+ formatRequestedErrorMessage: "Please match the format requested.",
1392
+ lengthErrorMessage: function lengthErrorMessage(minLength, maxLength) {
1393
+ return "Min length ".concat(minLength, ", max length ").concat(maxLength, ".");
1394
+ },
1395
+ logoAlternativeText: "Logo"
1396
+ },
1397
+ alert: {
1398
+ infoTitleText: "information",
1399
+ successTitleText: "success",
1400
+ warningTitleText: "warning",
1401
+ errorTitleText: "error"
1402
+ },
1403
+ dateInput: {
1404
+ invalidDateErrorMessage: "Invalid date."
1405
+ },
1406
+ fileInput: {
1407
+ fileSizeGreaterThanErrorMessage: "File size must be greater than min size.",
1408
+ fileSizeLessThanErrorMessage: "File size must be less than max size.",
1409
+ multipleButtonLabelDefault: "Select files",
1410
+ singleButtonLabelDefault: "Select file",
1411
+ dropAreaButtonLabelDefault: "Select",
1412
+ multipleDropAreaLabelDefault: "or drop files",
1413
+ singleDropAreaLabelDefault: "or drop a file"
1414
+ },
1415
+ footer: {
1416
+ copyrightText: function copyrightText(year) {
1417
+ return "\xA9 DXC Technology ".concat(year, ". All rights reserved.");
1418
+ }
1419
+ },
1420
+ numberInput: {
1421
+ valueGreaterThanOrEqualToErrorMessage: function valueGreaterThanOrEqualToErrorMessage(value) {
1422
+ return "Value must be greater than or equal to ".concat(value, ".");
1423
+ },
1424
+ valueLessThanOrEqualToErrorMessage: function valueLessThanOrEqualToErrorMessage(value) {
1425
+ return "Value must be less than or equal to ".concat(value, ".");
1426
+ },
1427
+ decrementValueTitle: "Decrement value",
1428
+ incrementValueTitle: "Increment value"
1429
+ },
1430
+ paginator: {
1431
+ itemsPerPageText: "Items per page ",
1432
+ minToMaxOfText: function minToMaxOfText(minNumberOfItems, maxNumberOfItems, totalItems) {
1433
+ return "".concat(minNumberOfItems, " to ").concat(maxNumberOfItems, " of ").concat(totalItems);
1434
+ },
1435
+ goToPageText: "Go to page:",
1436
+ pageOfText: function pageOfText(pageNumber, totalPagesNumber) {
1437
+ return "Page: ".concat(pageNumber, " of ").concat(totalPagesNumber);
1438
+ }
1439
+ },
1440
+ passwordInput: {
1441
+ inputShowPasswordTitle: "Show password",
1442
+ inputHidePasswordTitle: "Hide password"
1443
+ },
1444
+ quickNav: {
1445
+ contentTitle: "Contents"
1446
+ },
1447
+ radioGroup: {
1448
+ optionalItemLabelDefault: "N/A"
1449
+ },
1450
+ select: {
1451
+ noMatchesErrorMessage: "No matches found",
1452
+ actionClearSelectionTitle: "Clear selection",
1453
+ actionClearSearchTitle: "Clear search"
1454
+ },
1455
+ textInput: {
1456
+ clearFieldActionTitle: "Clear field",
1457
+ searchingMessage: "Searching...",
1458
+ fetchingDataErrorMessage: "Error fetching data"
1459
+ },
1460
+ calendar: {
1461
+ days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
1462
+ daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
1463
+ months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
1464
+ monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
1465
+ },
1466
+ applicationLayout: {
1467
+ visibilityToggleTitle: "Toggle visibility sidenav"
1468
+ }
1469
+ };
1470
+ exports.defaultTranslatedComponentLabels = defaultTranslatedComponentLabels;
@@ -11,6 +11,8 @@ exports["default"] = void 0;
11
11
 
12
12
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
13
 
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
14
16
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
17
 
16
18
  var _react = _interopRequireWildcard(require("react"));
@@ -23,14 +25,16 @@ var _ClickAwayListener = _interopRequireDefault(require("@material-ui/core/Click
23
25
 
24
26
  var _Popover = _interopRequireDefault(require("@material-ui/core/Popover"));
25
27
 
26
- var _moment = _interopRequireDefault(require("moment"));
28
+ var _dayjs = _interopRequireDefault(require("dayjs"));
27
29
 
28
- var _dateFns = _interopRequireDefault(require("@date-io/date-fns"));
30
+ var _dayjs2 = _interopRequireDefault(require("@date-io/dayjs"));
29
31
 
30
32
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
31
33
 
32
34
  var _useTheme = _interopRequireDefault(require("../useTheme"));
33
35
 
36
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
37
+
34
38
  var _TextInput = _interopRequireDefault(require("../text-input/TextInput"));
35
39
 
36
40
  var _templateObject;
@@ -39,34 +43,37 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
39
43
 
40
44
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
41
45
 
46
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
47
+
48
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
49
+
50
+ var getValueForPicker = function getValueForPicker(value, format) {
51
+ return (0, _dayjs["default"])(value, format.toUpperCase(), true).format();
52
+ };
53
+
42
54
  var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
43
55
  var label = _ref.label,
44
- _ref$name = _ref.name,
45
- name = _ref$name === void 0 ? "" : _ref$name,
56
+ name = _ref.name,
57
+ _ref$defaultValue = _ref.defaultValue,
58
+ defaultValue = _ref$defaultValue === void 0 ? "" : _ref$defaultValue,
46
59
  value = _ref.value,
47
60
  _ref$format = _ref.format,
48
61
  format = _ref$format === void 0 ? "dd-MM-yyyy" : _ref$format,
49
62
  helperText = _ref.helperText,
50
63
  _ref$placeholder = _ref.placeholder,
51
64
  placeholder = _ref$placeholder === void 0 ? false : _ref$placeholder,
52
- _ref$clearable = _ref.clearable,
53
- clearable = _ref$clearable === void 0 ? false : _ref$clearable,
54
- _ref$disabled = _ref.disabled,
55
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
56
- _ref$optional = _ref.optional,
57
- optional = _ref$optional === void 0 ? false : _ref$optional,
65
+ clearable = _ref.clearable,
66
+ disabled = _ref.disabled,
67
+ optional = _ref.optional,
58
68
  onChange = _ref.onChange,
59
69
  onBlur = _ref.onBlur,
60
70
  error = _ref.error,
61
- _ref$autocomplete = _ref.autocomplete,
62
- autocomplete = _ref$autocomplete === void 0 ? "off" : _ref$autocomplete,
71
+ autocomplete = _ref.autocomplete,
63
72
  margin = _ref.margin,
64
- _ref$size = _ref.size,
65
- size = _ref$size === void 0 ? "medium" : _ref$size,
66
- _ref$tabIndex = _ref.tabIndex,
67
- tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
73
+ size = _ref.size,
74
+ tabIndex = _ref.tabIndex;
68
75
 
69
- var _useState = (0, _react.useState)(""),
76
+ var _useState = (0, _react.useState)(defaultValue),
70
77
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
71
78
  innerValue = _useState2[0],
72
79
  setInnerValue = _useState2[1];
@@ -82,6 +89,7 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
82
89
  setAnchorEl = _useState6[1];
83
90
 
84
91
  var colorsTheme = (0, _useTheme["default"])();
92
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
85
93
  var refDate = ref || (0, _react.useRef)(null);
86
94
 
87
95
  var handleCalendarOnKeyDown = function handleCalendarOnKeyDown(event) {
@@ -95,12 +103,13 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
95
103
  };
96
104
 
97
105
  var handleCalendarOnClick = function handleCalendarOnClick(newDate) {
98
- var newValue = (0, _moment["default"])(newDate).format(format.toUpperCase());
106
+ var newValue = (0, _dayjs["default"])(newDate).format(format.toUpperCase());
99
107
  value !== null && value !== void 0 ? value : setInnerValue(newValue);
100
- onChange === null || onChange === void 0 ? void 0 : onChange({
108
+ newDate !== null && newDate !== void 0 && newDate.toJSON() ? onChange === null || onChange === void 0 ? void 0 : onChange({
101
109
  value: newValue,
102
- error: null,
103
- date: newDate !== null && newDate !== void 0 && newDate.toJSON() ? newDate : null
110
+ date: newDate
111
+ }) : onChange === null || onChange === void 0 ? void 0 : onChange({
112
+ value: newValue
104
113
  });
105
114
  };
106
115
 
@@ -108,29 +117,33 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
108
117
  var newValue = _ref2.value,
109
118
  inputError = _ref2.error;
110
119
  value !== null && value !== void 0 ? value : setInnerValue(newValue);
111
- var momentDate = (0, _moment["default"])(newValue, format.toUpperCase(), true);
112
- var invalidDateMessage = newValue !== "" && !momentDate.isValid() ? "Invalid date." : null;
113
- onChange === null || onChange === void 0 ? void 0 : onChange({
120
+ var dayjsDate = (0, _dayjs["default"])(newValue, format.toUpperCase(), true);
121
+ var invalidDateMessage = newValue !== "" && !dayjsDate.isValid() && translatedLabels.dateInput.invalidDateErrorMessage;
122
+ var callbackParams = inputError || invalidDateMessage ? {
114
123
  value: newValue,
115
- error: inputError || invalidDateMessage,
116
- date: momentDate.isValid() ? momentDate.toDate() : null
117
- });
124
+ error: inputError || invalidDateMessage
125
+ } : {
126
+ value: newValue
127
+ };
128
+ dayjsDate.isValid() ? onChange === null || onChange === void 0 ? void 0 : onChange(_objectSpread(_objectSpread({}, callbackParams), {}, {
129
+ date: dayjsDate.toDate()
130
+ })) : onChange === null || onChange === void 0 ? void 0 : onChange(callbackParams);
118
131
  };
119
132
 
120
133
  var handleIOnBlur = function handleIOnBlur(_ref3) {
121
134
  var value = _ref3.value,
122
135
  inputError = _ref3.error;
123
- var momentDate = (0, _moment["default"])(value, format.toUpperCase(), true);
124
- var invalidDateMessage = value !== "" && !momentDate.isValid() ? "Invalid date." : null;
125
- onBlur === null || onBlur === void 0 ? void 0 : onBlur({
136
+ var dayjsDate = (0, _dayjs["default"])(value, format.toUpperCase(), true);
137
+ var invalidDateMessage = value !== "" && !dayjsDate.isValid() && translatedLabels.dateInput.invalidDateErrorMessage;
138
+ var callbackParams = inputError || invalidDateMessage ? {
126
139
  value: value,
127
- error: inputError || invalidDateMessage,
128
- date: momentDate.isValid() ? momentDate.toDate() : null
129
- });
130
- };
131
-
132
- var getValueForPicker = function getValueForPicker() {
133
- return (0, _moment["default"])(value !== null && value !== void 0 ? value : innerValue, format.toUpperCase(), true).format();
140
+ error: inputError || invalidDateMessage
141
+ } : {
142
+ value: value
143
+ };
144
+ dayjsDate.isValid() ? onBlur === null || onBlur === void 0 ? void 0 : onBlur(_objectSpread(_objectSpread({}, callbackParams), {}, {
145
+ date: dayjsDate.toDate()
146
+ })) : onBlur === null || onBlur === void 0 ? void 0 : onBlur(callbackParams);
134
147
  };
135
148
 
136
149
  var openCalendar = function openCalendar() {
@@ -300,10 +313,11 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
300
313
  }, /*#__PURE__*/_react["default"].createElement(_core.MuiThemeProvider, {
301
314
  theme: dateTheme
302
315
  }, /*#__PURE__*/_react["default"].createElement(_pickers.MuiPickersUtilsProvider, {
303
- utils: _dateFns["default"]
316
+ utils: _dayjs2["default"]
304
317
  }, /*#__PURE__*/_react["default"].createElement(StyledDPicker, null, /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
305
318
  label: label,
306
319
  name: name,
320
+ defaultValue: defaultValue,
307
321
  value: value !== null && value !== void 0 ? value : innerValue,
308
322
  helperText: helperText,
309
323
  placeholder: placeholder ? format.toUpperCase() : null,
@@ -343,7 +357,7 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
343
357
  "aria-modal": "true"
344
358
  }, /*#__PURE__*/_react["default"].createElement(_pickers.DatePicker, {
345
359
  variant: "static",
346
- value: getValueForPicker(),
360
+ value: getValueForPicker(value !== null && value !== void 0 ? value : innerValue, format),
347
361
  onChange: function onChange(date) {
348
362
  return handleCalendarOnClick(date);
349
363
  },