@dxc-technology/halstack-react 0.0.0-b39a2d8 → 0.0.0-b3e1a2f

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 (162) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +1 -4
  3. package/ThemeContext.d.ts +15 -0
  4. package/ThemeContext.js +5 -8
  5. package/V3Select/V3Select.js +2 -2
  6. package/V3Textarea/V3Textarea.js +2 -2
  7. package/accordion/Accordion.js +2 -2
  8. package/accordion/Accordion.stories.tsx +307 -0
  9. package/accordion/types.d.ts +1 -1
  10. package/accordion-group/AccordionGroup.js +2 -2
  11. package/accordion-group/AccordionGroup.stories.tsx +225 -0
  12. package/accordion-group/types.d.ts +1 -1
  13. package/alert/Alert.js +2 -2
  14. package/badge/Badge.js +1 -1
  15. package/bleed/Bleed.d.ts +3 -0
  16. package/bleed/Bleed.js +84 -0
  17. package/bleed/Bleed.stories.tsx +342 -0
  18. package/bleed/types.d.ts +13 -0
  19. package/bleed/types.js +5 -0
  20. package/box/Box.js +2 -2
  21. package/button/Button.d.ts +1 -1
  22. package/button/Button.js +13 -19
  23. package/button/Button.stories.tsx +6 -8
  24. package/button/types.d.ts +5 -9
  25. package/card/Card.js +1 -1
  26. package/card/Card.stories.tsx +1 -1
  27. package/checkbox/Checkbox.js +2 -2
  28. package/checkbox/types.d.ts +1 -1
  29. package/chip/Chip.d.ts +4 -0
  30. package/chip/Chip.js +5 -27
  31. package/chip/types.d.ts +53 -0
  32. package/chip/types.js +5 -0
  33. package/common/variables.js +57 -22
  34. package/date/Date.js +1 -1
  35. package/date-input/DateInput.js +10 -13
  36. package/dialog/Dialog.js +4 -3
  37. package/dropdown/Dropdown.js +1 -1
  38. package/dropdown/Dropdown.stories.tsx +247 -0
  39. package/dropdown/types.d.ts +1 -1
  40. package/file-input/FileInput.d.ts +1 -1
  41. package/file-input/FileInput.js +160 -81
  42. package/file-input/FileInput.stories.tsx +507 -0
  43. package/file-input/FileItem.js +8 -6
  44. package/file-input/types.d.ts +32 -7
  45. package/footer/Footer.d.ts +1 -1
  46. package/footer/Footer.js +12 -18
  47. package/footer/{Footer.stories.jsx → Footer.stories.tsx} +1 -22
  48. package/footer/Icons.d.ts +2 -0
  49. package/footer/Icons.js +3 -3
  50. package/footer/types.d.ts +21 -17
  51. package/header/Header.js +2 -2
  52. package/header/Icons.d.ts +2 -0
  53. package/heading/Heading.js +1 -1
  54. package/heading/Heading.stories.tsx +54 -0
  55. package/input-text/InputText.js +2 -2
  56. package/inset/Inset.d.ts +3 -0
  57. package/inset/Inset.js +84 -0
  58. package/inset/Inset.stories.tsx +229 -0
  59. package/inset/types.d.ts +13 -0
  60. package/inset/types.js +5 -0
  61. package/layout/ApplicationLayout.d.ts +10 -0
  62. package/layout/ApplicationLayout.js +9 -19
  63. package/layout/ApplicationLayout.stories.tsx +171 -0
  64. package/layout/types.d.ts +57 -0
  65. package/layout/types.js +5 -0
  66. package/link/Link.js +1 -1
  67. package/list/List.d.ts +4 -0
  68. package/list/List.js +47 -0
  69. package/list/List.stories.tsx +95 -0
  70. package/list/types.d.ts +7 -0
  71. package/list/types.js +5 -0
  72. package/main.d.ts +7 -3
  73. package/main.js +34 -2
  74. package/number-input/NumberInput.js +3 -6
  75. package/number-input/NumberInputContext.d.ts +4 -0
  76. package/number-input/NumberInputContext.js +5 -2
  77. package/number-input/numberInputContextTypes.d.ts +19 -0
  78. package/number-input/numberInputContextTypes.js +5 -0
  79. package/package.json +4 -2
  80. package/paginator/Paginator.js +2 -8
  81. package/password-input/PasswordInput.js +19 -18
  82. package/password-input/PasswordInput.stories.tsx +3 -3
  83. package/password-input/types.d.ts +17 -10
  84. package/progress-bar/ProgressBar.js +4 -4
  85. package/radio/Radio.js +2 -2
  86. package/radio-group/Radio.d.ts +4 -0
  87. package/radio-group/Radio.js +130 -0
  88. package/radio-group/RadioGroup.d.ts +4 -0
  89. package/radio-group/RadioGroup.js +268 -0
  90. package/radio-group/RadioGroup.stories.tsx +79 -0
  91. package/radio-group/types.d.ts +36 -0
  92. package/radio-group/types.js +5 -0
  93. package/resultsetTable/ResultsetTable.d.ts +4 -0
  94. package/resultsetTable/ResultsetTable.js +5 -28
  95. package/resultsetTable/ResultsetTable.stories.tsx +275 -0
  96. package/resultsetTable/types.d.ts +67 -0
  97. package/resultsetTable/types.js +5 -0
  98. package/row/Row.d.ts +3 -0
  99. package/row/Row.js +127 -0
  100. package/row/Row.stories.tsx +237 -0
  101. package/row/types.d.ts +10 -0
  102. package/row/types.js +5 -0
  103. package/select/Select.d.ts +4 -0
  104. package/select/Select.js +20 -22
  105. package/select/types.d.ts +170 -0
  106. package/select/types.js +5 -0
  107. package/sidenav/Sidenav.js +2 -2
  108. package/sidenav/Sidenav.stories.tsx +182 -0
  109. package/slider/Slider.js +4 -4
  110. package/spinner/Spinner.js +2 -2
  111. package/spinner/Spinner.stories.jsx +1 -0
  112. package/stack/Stack.d.ts +3 -0
  113. package/stack/Stack.js +97 -0
  114. package/stack/Stack.stories.tsx +164 -0
  115. package/stack/types.d.ts +9 -0
  116. package/stack/types.js +5 -0
  117. package/switch/Switch.js +2 -2
  118. package/switch/Switch.stories.tsx +1 -1
  119. package/table/Table.js +3 -3
  120. package/table/Table.stories.jsx +2 -1
  121. package/tabs/Tabs.js +11 -9
  122. package/tabs/Tabs.stories.tsx +120 -0
  123. package/tabs/types.d.ts +23 -15
  124. package/tag/Tag.js +1 -1
  125. package/tag/Tag.stories.tsx +1 -1
  126. package/text/Text.d.ts +7 -0
  127. package/text/Text.js +30 -0
  128. package/text/Text.stories.tsx +19 -0
  129. package/text-input/TextInput.d.ts +4 -0
  130. package/text-input/TextInput.js +54 -85
  131. package/text-input/TextInput.stories.tsx +456 -0
  132. package/text-input/types.d.ts +159 -0
  133. package/text-input/types.js +5 -0
  134. package/textarea/Textarea.d.ts +4 -0
  135. package/textarea/Textarea.js +27 -60
  136. package/textarea/Textarea.stories.jsx +4 -3
  137. package/textarea/types.d.ts +130 -0
  138. package/textarea/types.js +5 -0
  139. package/toggle/Toggle.js +1 -1
  140. package/toggle-group/ToggleGroup.d.ts +4 -0
  141. package/toggle-group/ToggleGroup.js +16 -45
  142. package/toggle-group/ToggleGroup.stories.tsx +23 -28
  143. package/toggle-group/types.d.ts +97 -0
  144. package/toggle-group/types.js +5 -0
  145. package/upload/buttons-upload/ButtonsUpload.js +2 -2
  146. package/upload/dragAndDropArea/DragAndDropArea.js +2 -2
  147. package/upload/file-upload/FileToUpload.js +1 -1
  148. package/upload/files-upload/FilesToUpload.js +1 -1
  149. package/upload/transaction/Transaction.js +2 -2
  150. package/upload/transactions/Transactions.js +1 -1
  151. package/useTheme.d.ts +2 -0
  152. package/useTheme.js +1 -1
  153. package/wizard/Wizard.js +59 -9
  154. package/wizard/{Wizard.stories.jsx → Wizard.stories.tsx} +0 -0
  155. package/wizard/types.d.ts +3 -7
  156. package/chip/index.d.ts +0 -22
  157. package/resultsetTable/index.d.ts +0 -19
  158. package/select/index.d.ts +0 -131
  159. package/text-input/index.d.ts +0 -135
  160. package/textarea/index.d.ts +0 -117
  161. package/toggle-group/index.d.ts +0 -21
  162. package/wizard/Icons.js +0 -65
@@ -0,0 +1,53 @@
1
+ /// <reference types="react" />
2
+ declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
+ declare type Margin = {
4
+ top?: Space;
5
+ bottom?: Space;
6
+ left?: Space;
7
+ right?: Space;
8
+ };
9
+ declare type SVG = React.SVGProps<SVGSVGElement> | React.FunctionComponent<React.SVGProps<SVGSVGElement>>;
10
+ declare type Props = {
11
+ /**
12
+ * Text to be placed on the chip.
13
+ */
14
+ label?: string;
15
+ /**
16
+ * Element used as icon to be placed after the chip label.
17
+ */
18
+ suffixIcon?: SVG;
19
+ /**
20
+ * Element used as icon to be placed before the chip label.
21
+ */
22
+ prefixIcon?: SVG;
23
+ /**
24
+ * @deprecated Path of the icon to be placed after the chip label.
25
+ */
26
+ suffixIconSrc?: string;
27
+ /**
28
+ * This function will be called when the suffix is clicked.
29
+ */
30
+ onClickSuffix?: () => void;
31
+ /**
32
+ * @deprecated Path of the icon to be placed before the chip label.
33
+ */
34
+ prefixIconSrc?: string;
35
+ /**
36
+ * This function will be called when the prefix is clicked.
37
+ */
38
+ onClickPrefix?: () => void;
39
+ /**
40
+ * If true, the component will be disabled.
41
+ */
42
+ disabled?: boolean;
43
+ /**
44
+ * Size of the margin to be applied to the component ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
45
+ * You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different margin sizes.
46
+ */
47
+ margin?: Space | Margin;
48
+ /**
49
+ * Value of the tabindex attribute.
50
+ */
51
+ tabIndex?: number;
52
+ };
53
+ export default Props;
package/chip/types.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -1,7 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
@@ -9,7 +7,7 @@ exports.typeface = exports.spaces = exports.responsiveSizes = exports.globalToke
9
7
 
10
8
  var _Icons = require("../header/Icons");
11
9
 
12
- var _Icons2 = _interopRequireDefault(require("../footer/Icons"));
10
+ var _Icons2 = require("../footer/Icons");
13
11
 
14
12
  var globalTokens = {
15
13
  // Color
@@ -99,7 +97,7 @@ var globalTokens = {
99
97
  type_sans: "Open Sans, sans-serif",
100
98
  type_scale_root: "16px",
101
99
  type_scale_08: "3.75rem",
102
- type_scale_07: "3rem",
100
+ type_scale_07: "2.5rem",
103
101
  type_scale_06: "2rem",
104
102
  type_scale_05: "1.5rem",
105
103
  type_scale_04: "1.25rem",
@@ -535,17 +533,16 @@ var componentTokens = {
535
533
  errorMessageFontFamily: globalTokens.type_sans,
536
534
  errorMessageFontSize: globalTokens.type_scale_01,
537
535
  errorMessageFontWeight: globalTokens.type_regular,
538
- errorMessageLineHeight: globalTokens.type_scale_05,
536
+ errorMessageLineHeight: globalTokens.type_leading_normal,
539
537
  dropBorderThickness: globalTokens.border_width_1,
540
538
  dropBorderStyle: globalTokens.border_dashed,
541
539
  dropBorderRadius: globalTokens.border_radius_large,
542
540
  fileItemBorderThickness: globalTokens.border_width_1,
543
541
  fileItemBorderStyle: globalTokens.border_solid,
544
542
  fileItemBorderRadius: globalTokens.border_radius_medium,
545
- hoverDeleteFileItemBackgroundColor: globalTokens.hal_grey_l_95,
546
- activeDeleteFileItemBackgroundColor: globalTokens.hal_grey_l_80,
547
- errorHoverDeleteFileItemBackgroundColor: globalTokens.hal_red_l_95,
548
- errorActiveDeleteFileItemBackgroundColor: globalTokens.hal_red_s_41
543
+ hoverDeleteFileItemBackgroundColor: "#0000000d",
544
+ activeDeleteFileItemBackgroundColor: "#00000033",
545
+ focusActionBorderColor: globalTokens.hal_blue_l_50
549
546
  },
550
547
  footer: {
551
548
  height: "124px",
@@ -565,7 +562,7 @@ var componentTokens = {
565
562
  copyrightFontStyle: globalTokens.type_normal,
566
563
  copyrightFontWeight: globalTokens.type_regular,
567
564
  copyrightFontColor: globalTokens.hal_white,
568
- logo: _Icons2["default"],
565
+ logo: "",
569
566
  logoHeight: "32px",
570
567
  logoWidth: "auto",
571
568
  socialLinksSize: "24px",
@@ -583,8 +580,8 @@ var componentTokens = {
583
580
  hamburguerTextTransform: globalTokens.type_uppercase,
584
581
  hamburguerIconColor: globalTokens.hal_black,
585
582
  hamburguerHoverColor: globalTokens.mediumGreyBlack,
586
- logo: _Icons.dxcLogo,
587
- logoResponsive: _Icons.dxcLogo,
583
+ logo: "",
584
+ logoResponsive: "",
588
585
  logoHeight: "40px",
589
586
  logoWidth: "auto",
590
587
  menuBackgroundColor: globalTokens.hal_white,
@@ -608,37 +605,37 @@ var componentTokens = {
608
605
  heading: {
609
606
  level1FontColor: globalTokens.inherit,
610
607
  level1FontFamily: globalTokens.type_sans,
611
- level1FontSize: globalTokens.type_scale_08,
608
+ level1FontSize: globalTokens.type_scale_07,
612
609
  level1FontStyle: globalTokens.type_normal,
613
- level1FontWeight: globalTokens.type_regular,
610
+ level1FontWeight: globalTokens.type_semibold,
614
611
  level1LineHeight: globalTokens.type_leading_compact_01,
615
612
  level1LetterSpacing: globalTokens.type_spacing_tight_01,
616
613
  level2FontColor: globalTokens.inherit,
617
614
  level2FontFamily: globalTokens.type_sans,
618
- level2FontSize: globalTokens.type_scale_07,
615
+ level2FontSize: globalTokens.type_scale_05,
619
616
  level2FontStyle: globalTokens.type_normal,
620
- level2FontWeight: globalTokens.type_regular,
617
+ level2FontWeight: globalTokens.type_semibold,
621
618
  level2LineHeight: globalTokens.type_leading_normal,
622
619
  level2LetterSpacing: globalTokens.type_spacing_normal,
623
620
  level3FontColor: globalTokens.inherit,
624
621
  level3FontFamily: globalTokens.type_sans,
625
- level3FontSize: globalTokens.type_scale_06,
622
+ level3FontSize: globalTokens.type_scale_04,
626
623
  level3FontStyle: globalTokens.type_normal,
627
- level3FontWeight: globalTokens.type_regular,
624
+ level3FontWeight: globalTokens.type_semibold,
628
625
  level3LineHeight: globalTokens.type_leading_compact_01,
629
626
  level3LetterSpacing: globalTokens.type_spacing_wide_01,
630
627
  level4FontColor: globalTokens.inherit,
631
628
  level4FontFamily: globalTokens.type_sans,
632
- level4FontSize: globalTokens.type_scale_05,
629
+ level4FontSize: globalTokens.type_scale_03,
633
630
  level4FontStyle: globalTokens.type_normal,
634
- level4FontWeight: globalTokens.type_regular,
631
+ level4FontWeight: globalTokens.type_semibold,
635
632
  level4LineHeight: globalTokens.type_leading_normal,
636
633
  level4LetterSpacing: globalTokens.type_spacing_normal,
637
634
  level5FontColor: globalTokens.inherit,
638
635
  level5FontFamily: globalTokens.type_sans,
639
- level5FontSize: globalTokens.type_scale_04,
636
+ level5FontSize: globalTokens.type_scale_02,
640
637
  level5FontStyle: globalTokens.type_normal,
641
- level5FontWeight: globalTokens.type_regular,
638
+ level5FontWeight: globalTokens.type_semibold,
642
639
  level5LineHeight: globalTokens.type_leading_normal,
643
640
  level5LetterSpacing: globalTokens.type_spacing_wide_01
644
641
  },
@@ -880,6 +877,44 @@ var componentTokens = {
880
877
  fontStyle: globalTokens.type_normal,
881
878
  fontWeight: globalTokens.type_regular
882
879
  },
880
+ radioGroup: {
881
+ fontFamily: globalTokens.type_sans,
882
+ radioInputColor: globalTokens.hal_blue_l_45,
883
+ hoverRadioInputColor: globalTokens.hal_blue_s_35,
884
+ focusBorderColor: globalTokens.hal_blue_l_50,
885
+ activeRadioInputColor: globalTokens.hal_blue_d_20,
886
+ errorRadioInputColor: globalTokens.hal_red_s_41,
887
+ hoverErrorRadioInputColor: globalTokens.hal_red_d_30,
888
+ activeErrorRadioInputColor: globalTokens.hal_red_d_20,
889
+ readonlyRadioInputColor: globalTokens.hal_grey_l_60,
890
+ hoverReadonlyRadioInputColor: globalTokens.color_grey_600,
891
+ activeReadonlyRadioInputColor: globalTokens.hal_grey_s_40,
892
+ disabledRadioInputColor: globalTokens.hal_grey_l_60,
893
+ disabledLabelFontColor: globalTokens.hal_grey_l_60,
894
+ disabledHelperTextFontColor: globalTokens.hal_grey_l_60,
895
+ disabledRadioInputLabelFontColor: globalTokens.hal_grey_l_60,
896
+ errorMessageColor: globalTokens.hal_red_s_41,
897
+ labelFontColor: globalTokens.hal_black,
898
+ labelFontSize: globalTokens.type_scale_02,
899
+ labelFontStyle: globalTokens.type_normal,
900
+ labelFontWeight: globalTokens.type_semibold,
901
+ labelLineHeight: globalTokens.type_leading_loose_01,
902
+ optionalLabelFontWeight: globalTokens.type_regular,
903
+ helperTextFontColor: globalTokens.hal_black,
904
+ helperTextFontSize: globalTokens.type_scale_01,
905
+ helperTextFontStyle: globalTokens.type_normal,
906
+ helperTextFontWeight: globalTokens.type_regular,
907
+ helperTextLineHeight: globalTokens.type_leading_normal,
908
+ radioInputLabelFontColor: globalTokens.hal_black,
909
+ radioInputLabelFontSize: globalTokens.type_scale_02,
910
+ radioInputLabelFontStyle: globalTokens.type_normal,
911
+ radioInputLabelFontWeight: globalTokens.type_regular,
912
+ radioInputLabelLineHeight: globalTokens.type_leading_loose_01,
913
+ groupLabelMargin: globalTokens.spacing_03,
914
+ radioInputLabelMargin: globalTokens.spacing_03,
915
+ groupVerticalGutter: globalTokens.spacing_02,
916
+ groupHorizontalGutter: globalTokens.spacing_07
917
+ },
883
918
  select: {
884
919
  fontFamily: globalTokens.type_sans,
885
920
  disabledColor: globalTokens.hal_grey_l_60,
package/date/Date.js CHANGED
@@ -39,7 +39,7 @@ var _InputText = _interopRequireDefault(require("../input-text/InputText"));
39
39
 
40
40
  var _variables = require("../common/variables.js");
41
41
 
42
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
42
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
43
43
 
44
44
  var _templateObject, _DxcDate$propTypes;
45
45
 
@@ -29,7 +29,7 @@ var _dateFns = _interopRequireDefault(require("@date-io/date-fns"));
29
29
 
30
30
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
31
31
 
32
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
32
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
33
33
 
34
34
  var _TextInput = _interopRequireDefault(require("../text-input/TextInput"));
35
35
 
@@ -40,15 +40,13 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
40
40
  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
41
 
42
42
  var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
43
- var _ref$label = _ref.label,
44
- label = _ref$label === void 0 ? "" : _ref$label,
43
+ var label = _ref.label,
45
44
  _ref$name = _ref.name,
46
45
  name = _ref$name === void 0 ? "" : _ref$name,
47
46
  value = _ref.value,
48
47
  _ref$format = _ref.format,
49
48
  format = _ref$format === void 0 ? "dd-MM-yyyy" : _ref$format,
50
- _ref$helperText = _ref.helperText,
51
- helperText = _ref$helperText === void 0 ? "" : _ref$helperText,
49
+ helperText = _ref.helperText,
52
50
  _ref$placeholder = _ref.placeholder,
53
51
  placeholder = _ref$placeholder === void 0 ? false : _ref$placeholder,
54
52
  _ref$clearable = _ref.clearable,
@@ -59,8 +57,7 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
59
57
  optional = _ref$optional === void 0 ? false : _ref$optional,
60
58
  onChange = _ref.onChange,
61
59
  onBlur = _ref.onBlur,
62
- _ref$error = _ref.error,
63
- error = _ref$error === void 0 ? "" : _ref$error,
60
+ error = _ref.error,
64
61
  _ref$autocomplete = _ref.autocomplete,
65
62
  autocomplete = _ref$autocomplete === void 0 ? "off" : _ref$autocomplete,
66
63
  margin = _ref.margin,
@@ -85,6 +82,7 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
85
82
  setAnchorEl = _useState6[1];
86
83
 
87
84
  var colorsTheme = (0, _useTheme["default"])();
85
+ var refDate = ref || (0, _react.useRef)(null);
88
86
 
89
87
  var handleCalendarOnKeyDown = function handleCalendarOnKeyDown(event) {
90
88
  switch (event.keyCode) {
@@ -135,11 +133,10 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
135
133
  return (0, _moment["default"])(value !== null && value !== void 0 ? value : innerValue, format.toUpperCase(), true).format();
136
134
  };
137
135
 
138
- var openCalendar = function openCalendar(event) {
139
- if (event) {
140
- setIsOpen(!isOpen);
141
- setAnchorEl(event.currentTarget);
142
- }
136
+ var openCalendar = function openCalendar() {
137
+ var dateBtn = refDate.current.getElementsByTagName("button")[0];
138
+ setIsOpen(!isOpen);
139
+ setAnchorEl(dateBtn);
143
140
  };
144
141
 
145
142
  var closeCalendar = function closeCalendar() {
@@ -321,7 +318,7 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
321
318
  margin: margin,
322
319
  size: size,
323
320
  tabIndex: tabIndex,
324
- ref: ref
321
+ ref: refDate
325
322
  }), /*#__PURE__*/_react["default"].createElement(_Popover["default"], {
326
323
  onKeyDown: handleCalendarOnKeyDown,
327
324
  open: isOpen,
package/dialog/Dialog.js CHANGED
@@ -23,9 +23,9 @@ var _Dialog = _interopRequireDefault(require("@material-ui/core/Dialog"));
23
23
 
24
24
  var _variables = require("../common/variables.js");
25
25
 
26
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
26
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
27
27
 
28
- var _BackgroundColorContext = require("../BackgroundColorContext.js");
28
+ var _BackgroundColorContext = require("../BackgroundColorContext");
29
29
 
30
30
  var _templateObject, _templateObject2, _templateObject3, _templateObject4;
31
31
 
@@ -41,7 +41,8 @@ var DxcDialog = function DxcDialog(_ref) {
41
41
  _ref$overlay = _ref.overlay,
42
42
  overlay = _ref$overlay === void 0 ? true : _ref$overlay,
43
43
  onBackgroundClick = _ref.onBackgroundClick,
44
- padding = _ref.padding,
44
+ _ref$padding = _ref.padding,
45
+ padding = _ref$padding === void 0 ? "small" : _ref$padding,
45
46
  _ref$tabIndex = _ref.tabIndex,
46
47
  tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
47
48
 
@@ -35,7 +35,7 @@ var _variables = require("../common/variables.js");
35
35
 
36
36
  var _utils = require("../common/utils.js");
37
37
 
38
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
38
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
39
39
 
40
40
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
41
41
 
@@ -0,0 +1,247 @@
1
+ import React from "react";
2
+ import { userEvent, within } from "@storybook/testing-library";
3
+ import DxcDropdown from "./Dropdown";
4
+ import Title from "../../.storybook/components/Title";
5
+ import ExampleContainer from "../../.storybook/components/ExampleContainer";
6
+
7
+ export default {
8
+ title: "Dropdown",
9
+ component: DxcDropdown,
10
+ };
11
+
12
+ const iconSVG = () => {
13
+ return (
14
+ <svg viewBox="0 0 24 24" fill="currentColor">
15
+ <path d="M0 0h24v24H0z" fill="none" />
16
+ <path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z" />
17
+ </svg>
18
+ );
19
+ };
20
+
21
+ const iconSVGLarge = () => {
22
+ return (
23
+ <svg enable-background="new 0 0 24 24" height="48px" viewBox="0 0 24 24" width="48px" fill="currentColor">
24
+ <g>
25
+ <path d="M0,0h24v24H0V0z" fill="none" />
26
+ <path d="M0,0h24v24H0V0z" fill="none" />
27
+ </g>
28
+ <g>
29
+ <path d="M12,17.27L18.18,21l-1.64-7.03L22,9.24l-7.19-0.61L12,2L9.19,8.63L2,9.24l5.46,4.73L5.82,21L12,17.27z" />
30
+ </g>
31
+ </svg>
32
+ );
33
+ };
34
+
35
+ const options: any = [
36
+ {
37
+ value: "1",
38
+ label: "Amazon with a very long text",
39
+ },
40
+ {
41
+ value: "2",
42
+ label: "Ebay",
43
+ },
44
+ {
45
+ value: "3",
46
+ label: "Apple",
47
+ },
48
+ ];
49
+
50
+ const option: any = [
51
+ {
52
+ value: "1",
53
+ label: "Ebay",
54
+ },
55
+ ];
56
+
57
+ const optionsIcon: any = options.map((op, i) => ({ ...op, icon: i === 1 ? iconSVGLarge : iconSVG }));
58
+
59
+ export const Chromatic = () => (
60
+ <>
61
+ <ExampleContainer>
62
+ <Title title="Default" theme="light" level={4} />
63
+ <DxcDropdown label="Default" options={options} onSelectOption={(value) => {}} />
64
+ </ExampleContainer>
65
+ <ExampleContainer pseudoState="pseudo-hover">
66
+ <Title title="Hovered" theme="light" level={4} />
67
+ <DxcDropdown label="Hovered" options={options} onSelectOption={(value) => {}} />
68
+ </ExampleContainer>
69
+ <ExampleContainer pseudoState="pseudo-focus-visible">
70
+ <Title title="Focused" theme="light" level={4} />
71
+ <DxcDropdown label="Focused" options={options} onSelectOption={(value) => {}} />
72
+ </ExampleContainer>
73
+ <ExampleContainer pseudoState="pseudo-active">
74
+ <Title title="Actived" theme="light" level={4} />
75
+ <DxcDropdown label="Actived" options={options} onSelectOption={(value) => {}} />
76
+ </ExampleContainer>
77
+ <ExampleContainer>
78
+ <Title title="Disabled" theme="light" level={4} />
79
+ <DxcDropdown label="Disabled" options={options} onSelectOption={(value) => {}} disabled />
80
+ </ExampleContainer>
81
+ <ExampleContainer>
82
+ <Title title="Caret hidden" theme="light" level={4} />
83
+ <DxcDropdown label="Caret hidden" options={options} onSelectOption={(value) => {}} caretHidden />
84
+ </ExampleContainer>
85
+ <ExampleContainer>
86
+ <Title title="With icon before" theme="light" level={4} />
87
+ <DxcDropdown label="Icon before" options={options} onSelectOption={(value) => {}} icon={iconSVG} />
88
+ </ExampleContainer>
89
+ <ExampleContainer>
90
+ <Title title="With icon after" theme="light" level={4} />
91
+ <DxcDropdown
92
+ label="Icon after"
93
+ options={options}
94
+ onSelectOption={(value) => {}}
95
+ icon={iconSVG}
96
+ iconPosition="after"
97
+ />
98
+ </ExampleContainer>
99
+ <ExampleContainer>
100
+ <Title title="Only icon" theme="light" level={4} />
101
+ <DxcDropdown options={options} onSelectOption={(value) => {}} icon={iconSVG} />
102
+ </ExampleContainer>
103
+ <ExampleContainer>
104
+ <Title title="Large icon" theme="light" level={4} />
105
+ <DxcDropdown label="Large icon" options={options} onSelectOption={(value) => {}} icon={iconSVGLarge} />
106
+ </ExampleContainer>
107
+ <ExampleContainer>
108
+ <Title title="Disabled with icon" theme="light" level={4} />
109
+ <DxcDropdown
110
+ label="Disabled with icon"
111
+ options={options}
112
+ onSelectOption={(value) => {}}
113
+ icon={iconSVG}
114
+ disabled
115
+ />
116
+ </ExampleContainer>
117
+ <ExampleContainer>
118
+ <Title title="Ellipsis" theme="light" level={4} />
119
+ <DxcDropdown
120
+ label="Very long text in dropdown button"
121
+ options={options}
122
+ onSelectOption={(value) => {}}
123
+ icon={iconSVG}
124
+ size="medium"
125
+ />
126
+ </ExampleContainer>
127
+ <Title title="Margins" theme="light" level={2} />
128
+ <ExampleContainer>
129
+ <Title title="Xxsmall" theme="light" level={4} />
130
+ <DxcDropdown label="Xxsmall" options={options} onSelectOption={(value) => {}} icon={iconSVG} margin="xxsmall" />
131
+ </ExampleContainer>
132
+ <ExampleContainer>
133
+ <Title title="Xsmall" theme="light" level={4} />
134
+ <DxcDropdown label="Xsmall" options={options} onSelectOption={(value) => {}} icon={iconSVG} margin="xsmall" />
135
+ </ExampleContainer>
136
+ <ExampleContainer>
137
+ <Title title="Small" theme="light" level={4} />
138
+ <DxcDropdown label="Small" options={options} onSelectOption={(value) => {}} icon={iconSVG} margin="small" />
139
+ </ExampleContainer>
140
+ <ExampleContainer>
141
+ <Title title="Medium" theme="light" level={4} />
142
+ <DxcDropdown label="Medium" options={options} onSelectOption={(value) => {}} icon={iconSVG} margin="medium" />
143
+ </ExampleContainer>
144
+ <ExampleContainer>
145
+ <Title title="Large" theme="light" level={4} />
146
+ <DxcDropdown label="Large" options={options} onSelectOption={(value) => {}} icon={iconSVG} margin="large" />
147
+ </ExampleContainer>
148
+ <ExampleContainer>
149
+ <Title title="Xlarge" theme="light" level={4} />
150
+ <DxcDropdown label="Xlarge" options={options} onSelectOption={(value) => {}} icon={iconSVG} margin="xlarge" />
151
+ </ExampleContainer>
152
+ <ExampleContainer>
153
+ <Title title="Xxlarge" theme="light" level={4} />
154
+ <DxcDropdown label="Xxlarge" options={options} onSelectOption={(value) => {}} icon={iconSVG} margin="xxlarge" />
155
+ </ExampleContainer>
156
+ <Title title="Sizes" theme="light" level={2} />
157
+ <ExampleContainer>
158
+ <Title title="Small" theme="light" level={4} />
159
+ <DxcDropdown label="Small" options={options} onSelectOption={(value) => {}} icon={iconSVG} size="small" />
160
+ </ExampleContainer>
161
+ <ExampleContainer>
162
+ <Title title="Medium" theme="light" level={4} />
163
+ <DxcDropdown label="Medium" options={options} onSelectOption={(value) => {}} icon={iconSVG} size="medium" />
164
+ </ExampleContainer>
165
+ <ExampleContainer>
166
+ <Title title="Large" theme="light" level={4} />
167
+ <DxcDropdown label="Large" options={options} onSelectOption={(value) => {}} icon={iconSVG} size="large" />
168
+ </ExampleContainer>
169
+ <ExampleContainer>
170
+ <Title title="FitContent" theme="light" level={4} />
171
+ <DxcDropdown
172
+ label="FitContent"
173
+ options={options}
174
+ onSelectOption={(value) => {}}
175
+ icon={iconSVG}
176
+ size="fitContent"
177
+ />
178
+ </ExampleContainer>
179
+ <ExampleContainer>
180
+ <Title title="FillParent" theme="light" level={4} />
181
+ <DxcDropdown
182
+ label="FillParent"
183
+ options={options}
184
+ onSelectOption={(value) => {}}
185
+ icon={iconSVG}
186
+ size="fillParent"
187
+ />
188
+ </ExampleContainer>
189
+ </>
190
+ );
191
+
192
+ const DropdownWithOptions = () => (
193
+ <ExampleContainer expanded>
194
+ <Title title="Options" theme="light" level={4} />
195
+ <DxcDropdown label="Options with icon" options={optionsIcon} onSelectOption={(value) => {}} />
196
+ </ExampleContainer>
197
+ );
198
+
199
+ const DropdownHoverOption = () => (
200
+ <ExampleContainer pseudoState="pseudo-hover" expanded>
201
+ <Title title="Hovered option" theme="light" level={4} />
202
+ <DxcDropdown label="Hovered options" options={option} onSelectOption={(value) => {}} />
203
+ </ExampleContainer>
204
+ );
205
+
206
+ const DropdownActiveOption = () => (
207
+ <ExampleContainer pseudoState="pseudo-active" expanded>
208
+ <Title title="Actived option" theme="light" level={4} />
209
+ <DxcDropdown label="Actived options" options={option} onSelectOption={(value) => {}} />
210
+ </ExampleContainer>
211
+ );
212
+
213
+ const DropdownWithOptionsIconAfter = () => (
214
+ <ExampleContainer expanded>
215
+ <Title title="Icon after options" theme="light" level={4} />
216
+ <DxcDropdown
217
+ label="Icon after options"
218
+ options={optionsIcon}
219
+ onSelectOption={(value) => {}}
220
+ optionsIconPosition="after"
221
+ />
222
+ </ExampleContainer>
223
+ );
224
+
225
+ export const DropdownOptions = DropdownWithOptions.bind({});
226
+ DropdownOptions.play = async ({ canvasElement }) => {
227
+ const canvas = within(canvasElement);
228
+ await userEvent.click(canvas.getByRole("button"));
229
+ };
230
+
231
+ export const DropdownHoveredOption = DropdownHoverOption.bind({});
232
+ DropdownHoveredOption.play = async ({ canvasElement }) => {
233
+ const canvas = within(canvasElement);
234
+ await userEvent.click(canvas.getByRole("button"));
235
+ };
236
+
237
+ export const DropdownActivedOption = DropdownActiveOption.bind({});
238
+ DropdownActivedOption.play = async ({ canvasElement }) => {
239
+ const canvas = within(canvasElement);
240
+ await userEvent.click(canvas.getByRole("button"));
241
+ };
242
+
243
+ export const DropdownOptionsIconAfter = DropdownWithOptionsIconAfter.bind({});
244
+ DropdownOptionsIconAfter.play = async ({ canvasElement }) => {
245
+ const canvas = within(canvasElement);
246
+ await userEvent.click(canvas.getByRole("button"));
247
+ };
@@ -30,7 +30,7 @@ declare type Props = {
30
30
  /**
31
31
  * An array of objects representing the options.
32
32
  */
33
- options: [Option, ...Option[]];
33
+ options: Option[];
34
34
  /**
35
35
  * In case options include icons, whether the icon should appear
36
36
  * after or before the label.
@@ -1,4 +1,4 @@
1
1
  /// <reference types="react" />
2
2
  import FileInputPropsType from "./types";
3
- declare const DxcFileInput: ({ name, mode, label, helperText, accept, minSize, maxSize, showPreview, multiple, disabled, callbackFile, value, margin, tabIndex, }: FileInputPropsType) => JSX.Element;
3
+ declare const DxcFileInput: ({ name, mode, label, buttonLabel, dropAreaLabel, helperText, accept, minSize, maxSize, showPreview, multiple, disabled, callbackFile, value, margin, tabIndex, }: FileInputPropsType) => JSX.Element;
4
4
  export default DxcFileInput;