@dxc-technology/halstack-react 0.0.0-39dd536 → 0.0.0-3a698b0

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 (205) hide show
  1. package/BackgroundColorContext.d.ts +2 -2
  2. package/BackgroundColorContext.js +1 -1
  3. package/HalstackContext.d.ts +1332 -5
  4. package/HalstackContext.js +117 -77
  5. package/accordion/Accordion.js +118 -110
  6. package/accordion/Accordion.stories.tsx +103 -15
  7. package/accordion/Accordion.test.js +10 -11
  8. package/accordion/types.d.ts +1 -0
  9. package/accordion-group/AccordionGroup.js +3 -23
  10. package/accordion-group/AccordionGroup.stories.tsx +27 -1
  11. package/accordion-group/AccordionGroup.test.js +21 -46
  12. package/accordion-group/types.d.ts +7 -0
  13. package/alert/Alert.js +4 -6
  14. package/alert/Alert.stories.tsx +28 -0
  15. package/alert/Alert.test.js +1 -1
  16. package/bleed/Bleed.stories.tsx +1 -0
  17. package/box/Box.js +4 -6
  18. package/box/Box.stories.tsx +15 -0
  19. package/box/Box.test.js +1 -1
  20. package/box/types.d.ts +1 -0
  21. package/button/Button.js +13 -16
  22. package/button/Button.stories.tsx +150 -8
  23. package/button/Button.test.js +1 -1
  24. package/button/types.d.ts +3 -3
  25. package/card/Card.js +12 -13
  26. package/card/Card.stories.tsx +12 -13
  27. package/card/Card.test.js +1 -1
  28. package/card/types.d.ts +1 -0
  29. package/checkbox/Checkbox.d.ts +2 -2
  30. package/checkbox/Checkbox.js +94 -101
  31. package/checkbox/Checkbox.stories.tsx +131 -59
  32. package/checkbox/Checkbox.test.js +94 -17
  33. package/checkbox/types.d.ts +4 -0
  34. package/chip/Chip.js +18 -26
  35. package/chip/Chip.stories.tsx +96 -9
  36. package/chip/Chip.test.js +3 -5
  37. package/common/utils.d.ts +1 -0
  38. package/common/utils.js +4 -4
  39. package/common/variables.d.ts +1625 -0
  40. package/common/variables.js +306 -302
  41. package/date-input/Calendar.d.ts +4 -0
  42. package/date-input/Calendar.js +258 -0
  43. package/date-input/DateInput.js +134 -237
  44. package/date-input/DateInput.stories.tsx +199 -33
  45. package/date-input/DateInput.test.js +494 -138
  46. package/date-input/DatePicker.d.ts +4 -0
  47. package/date-input/DatePicker.js +146 -0
  48. package/date-input/Icons.d.ts +6 -0
  49. package/date-input/Icons.js +75 -0
  50. package/date-input/YearPicker.d.ts +4 -0
  51. package/date-input/YearPicker.js +126 -0
  52. package/date-input/types.d.ts +51 -0
  53. package/dialog/Dialog.js +60 -73
  54. package/dialog/Dialog.stories.tsx +229 -121
  55. package/dialog/Dialog.test.js +302 -3
  56. package/dialog/types.d.ts +3 -2
  57. package/dropdown/Dropdown.d.ts +1 -1
  58. package/dropdown/Dropdown.js +246 -249
  59. package/dropdown/Dropdown.stories.tsx +245 -56
  60. package/dropdown/Dropdown.test.js +507 -110
  61. package/dropdown/DropdownMenu.d.ts +4 -0
  62. package/dropdown/DropdownMenu.js +70 -0
  63. package/dropdown/DropdownMenuItem.d.ts +4 -0
  64. package/dropdown/DropdownMenuItem.js +79 -0
  65. package/dropdown/types.d.ts +22 -2
  66. package/file-input/FileInput.d.ts +2 -2
  67. package/file-input/FileInput.js +174 -220
  68. package/file-input/FileInput.stories.tsx +122 -11
  69. package/file-input/FileInput.test.js +14 -14
  70. package/file-input/FileItem.d.ts +4 -14
  71. package/file-input/FileItem.js +39 -63
  72. package/file-input/types.d.ts +17 -0
  73. package/flex/Flex.d.ts +1 -1
  74. package/flex/Flex.js +31 -19
  75. package/flex/Flex.stories.tsx +19 -24
  76. package/flex/types.d.ts +14 -3
  77. package/footer/Footer.js +6 -8
  78. package/footer/Footer.stories.tsx +99 -1
  79. package/footer/Footer.test.js +14 -26
  80. package/footer/types.d.ts +1 -0
  81. package/grid/Grid.d.ts +7 -0
  82. package/grid/Grid.js +91 -0
  83. package/grid/Grid.stories.tsx +219 -0
  84. package/grid/types.d.ts +115 -0
  85. package/header/Header.d.ts +3 -2
  86. package/header/Header.js +89 -89
  87. package/header/Header.stories.tsx +152 -9
  88. package/header/Header.test.js +2 -2
  89. package/header/Icons.js +2 -2
  90. package/header/types.d.ts +1 -0
  91. package/heading/Heading.js +1 -1
  92. package/heading/Heading.test.js +1 -1
  93. package/inset/Inset.stories.tsx +1 -0
  94. package/layout/ApplicationLayout.d.ts +1 -1
  95. package/layout/ApplicationLayout.js +1 -1
  96. package/layout/ApplicationLayout.stories.tsx +1 -0
  97. package/link/Link.js +3 -3
  98. package/link/Link.stories.tsx +60 -0
  99. package/link/Link.test.js +2 -4
  100. package/link/types.d.ts +2 -2
  101. package/main.d.ts +3 -2
  102. package/main.js +9 -1
  103. package/{tabs-nav → nav-tabs}/NavTabs.js +1 -1
  104. package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +96 -6
  105. package/{tabs-nav → nav-tabs}/NavTabs.test.js +1 -1
  106. package/{tabs-nav → nav-tabs}/Tab.js +38 -18
  107. package/nav-tabs/types.js +5 -0
  108. package/number-input/NumberInput.test.js +44 -8
  109. package/package.json +15 -20
  110. package/paginator/Icons.d.ts +5 -0
  111. package/paginator/Icons.js +16 -28
  112. package/paginator/Paginator.js +7 -15
  113. package/paginator/Paginator.stories.tsx +24 -0
  114. package/paginator/Paginator.test.js +45 -48
  115. package/paragraph/Paragraph.d.ts +3 -4
  116. package/paragraph/Paragraph.js +5 -5
  117. package/password-input/PasswordInput.test.js +14 -13
  118. package/progress-bar/ProgressBar.d.ts +2 -2
  119. package/progress-bar/ProgressBar.js +5 -5
  120. package/progress-bar/ProgressBar.stories.jsx +35 -2
  121. package/progress-bar/ProgressBar.test.js +1 -1
  122. package/progress-bar/types.d.ts +4 -3
  123. package/quick-nav/QuickNav.js +11 -12
  124. package/quick-nav/QuickNav.stories.tsx +111 -19
  125. package/radio-group/Radio.d.ts +1 -1
  126. package/radio-group/Radio.js +43 -28
  127. package/radio-group/RadioGroup.js +15 -13
  128. package/radio-group/RadioGroup.stories.tsx +132 -18
  129. package/radio-group/RadioGroup.test.js +124 -97
  130. package/radio-group/types.d.ts +2 -2
  131. package/resultsetTable/Icons.d.ts +7 -0
  132. package/resultsetTable/Icons.js +51 -0
  133. package/resultsetTable/ResultsetTable.js +49 -108
  134. package/resultsetTable/ResultsetTable.stories.tsx +50 -25
  135. package/resultsetTable/ResultsetTable.test.js +41 -64
  136. package/resultsetTable/types.d.ts +1 -1
  137. package/select/Listbox.d.ts +1 -1
  138. package/select/Listbox.js +5 -35
  139. package/select/Option.js +11 -24
  140. package/select/Select.js +59 -36
  141. package/select/Select.stories.tsx +494 -150
  142. package/select/Select.test.js +341 -288
  143. package/select/types.d.ts +2 -2
  144. package/sidenav/Sidenav.js +9 -11
  145. package/sidenav/Sidenav.stories.tsx +148 -46
  146. package/slider/Slider.d.ts +2 -2
  147. package/slider/Slider.js +121 -97
  148. package/slider/Slider.stories.tsx +64 -1
  149. package/slider/Slider.test.js +122 -22
  150. package/slider/types.d.ts +4 -0
  151. package/spinner/Spinner.js +17 -23
  152. package/spinner/Spinner.stories.jsx +53 -27
  153. package/spinner/Spinner.test.js +1 -1
  154. package/switch/Switch.d.ts +2 -2
  155. package/switch/Switch.js +137 -70
  156. package/switch/Switch.stories.tsx +41 -30
  157. package/switch/Switch.test.js +145 -18
  158. package/switch/types.d.ts +4 -0
  159. package/table/Table.js +3 -3
  160. package/table/Table.stories.jsx +80 -1
  161. package/table/Table.test.js +2 -2
  162. package/tabs/Tab.d.ts +4 -0
  163. package/tabs/Tab.js +132 -0
  164. package/tabs/Tabs.js +358 -108
  165. package/tabs/Tabs.stories.tsx +119 -5
  166. package/tabs/Tabs.test.js +220 -10
  167. package/tabs/types.d.ts +12 -2
  168. package/tag/Tag.js +8 -10
  169. package/tag/Tag.stories.tsx +14 -1
  170. package/tag/Tag.test.js +1 -1
  171. package/text-input/Icons.d.ts +8 -0
  172. package/text-input/Icons.js +60 -0
  173. package/text-input/Suggestion.js +40 -11
  174. package/text-input/Suggestions.d.ts +4 -0
  175. package/text-input/Suggestions.js +134 -0
  176. package/text-input/TextInput.js +188 -276
  177. package/text-input/TextInput.stories.tsx +280 -184
  178. package/text-input/TextInput.test.js +736 -725
  179. package/text-input/types.d.ts +21 -2
  180. package/textarea/Textarea.js +3 -4
  181. package/textarea/Textarea.stories.jsx +60 -1
  182. package/textarea/Textarea.test.js +2 -4
  183. package/toggle-group/ToggleGroup.js +7 -4
  184. package/toggle-group/ToggleGroup.stories.tsx +42 -0
  185. package/toggle-group/ToggleGroup.test.js +1 -1
  186. package/toggle-group/types.d.ts +1 -1
  187. package/typography/Typography.d.ts +2 -2
  188. package/typography/Typography.js +14 -113
  189. package/typography/Typography.stories.tsx +1 -1
  190. package/useTheme.d.ts +1234 -1
  191. package/useTheme.js +1 -1
  192. package/useTranslatedLabels.d.ts +84 -1
  193. package/utils/BaseTypography.d.ts +21 -0
  194. package/utils/BaseTypography.js +108 -0
  195. package/utils/FocusLock.d.ts +13 -0
  196. package/utils/FocusLock.js +139 -0
  197. package/wizard/Wizard.js +2 -2
  198. package/wizard/Wizard.stories.tsx +20 -0
  199. package/wizard/Wizard.test.js +1 -1
  200. package/wizard/types.d.ts +5 -6
  201. package/common/RequiredComponent.js +0 -32
  202. /package/{tabs-nav → grid}/types.js +0 -0
  203. /package/{tabs-nav → nav-tabs}/NavTabs.d.ts +0 -0
  204. /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
  205. /package/{tabs-nav → nav-tabs}/types.d.ts +0 -0
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { DropdownMenuProps } from "./types";
3
+ declare const _default: React.MemoExoticComponent<React.ForwardRefExoticComponent<DropdownMenuProps & React.RefAttributes<HTMLUListElement>>>;
4
+ export default _default;
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
+
12
+ var _react = _interopRequireDefault(require("react"));
13
+
14
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
15
+
16
+ var _DropdownMenuItem = _interopRequireDefault(require("./DropdownMenuItem"));
17
+
18
+ var _templateObject;
19
+
20
+ var DropdownMenu = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
21
+ var id = _ref.id,
22
+ dropdownTriggerId = _ref.dropdownTriggerId,
23
+ iconsPosition = _ref.iconsPosition,
24
+ visualFocusIndex = _ref.visualFocusIndex,
25
+ menuItemOnClick = _ref.menuItemOnClick,
26
+ onKeyDown = _ref.onKeyDown,
27
+ options = _ref.options,
28
+ styles = _ref.styles;
29
+ return /*#__PURE__*/_react["default"].createElement(DropdownMenuContainer, {
30
+ onMouseDown: function onMouseDown(event) {
31
+ // Prevent the onBlur event from closing menu when clicking on the menu since
32
+ // it is implemented with a Portal and the menu is not a direct child of the container
33
+ event.preventDefault();
34
+ },
35
+ onKeyDown: onKeyDown,
36
+ id: id,
37
+ role: "menu",
38
+ "aria-labelledby": dropdownTriggerId,
39
+ "aria-orientation": "vertical",
40
+ "aria-activedescendant": "option-".concat(visualFocusIndex),
41
+ tabIndex: -1,
42
+ ref: ref,
43
+ style: styles
44
+ }, options.map(function (option, index) {
45
+ return /*#__PURE__*/_react["default"].createElement(_DropdownMenuItem["default"], {
46
+ id: "option-".concat(index),
47
+ key: "option-".concat(index),
48
+ visuallyFocused: index === visualFocusIndex,
49
+ iconPosition: iconsPosition,
50
+ onClick: menuItemOnClick,
51
+ option: option
52
+ });
53
+ }));
54
+ });
55
+
56
+ var DropdownMenuContainer = _styledComponents["default"].ul(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n max-height: 230px;\n min-width: min-content;\n overflow-y: auto;\n padding: 0;\n margin: 0;\n background-color: ", ";\n border-width: ", ";\n border-style: ", ";\n border-color: ", ";\n border-radius: ", ";\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n outline: none;\n"])), function (props) {
57
+ return props.theme.optionBackgroundColor;
58
+ }, function (props) {
59
+ return props.theme.borderThickness;
60
+ }, function (props) {
61
+ return props.theme.borderStyle;
62
+ }, function (props) {
63
+ return props.theme.borderColor;
64
+ }, function (props) {
65
+ return props.theme.borderRadius;
66
+ });
67
+
68
+ var _default = /*#__PURE__*/_react["default"].memo(DropdownMenu);
69
+
70
+ exports["default"] = _default;
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { DropdownMenuItemProps } from "./types";
3
+ declare const _default: React.MemoExoticComponent<({ id, visuallyFocused, iconPosition, onClick, option, }: DropdownMenuItemProps) => JSX.Element>;
4
+ export default _default;
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
+
12
+ var _react = _interopRequireDefault(require("react"));
13
+
14
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
15
+
16
+ var _templateObject, _templateObject2, _templateObject3;
17
+
18
+ var DropdownMenuItem = function DropdownMenuItem(_ref) {
19
+ var id = _ref.id,
20
+ visuallyFocused = _ref.visuallyFocused,
21
+ iconPosition = _ref.iconPosition,
22
+ _onClick = _ref.onClick,
23
+ option = _ref.option;
24
+ return /*#__PURE__*/_react["default"].createElement(DropdownMenuItemContainer, {
25
+ visuallyFocused: visuallyFocused,
26
+ onClick: function onClick() {
27
+ _onClick(option.value);
28
+ },
29
+ id: id,
30
+ role: "menuitem",
31
+ tabIndex: -1
32
+ }, iconPosition === "after" && /*#__PURE__*/_react["default"].createElement(DropdownMenuItemLabel, null, option.label), option.icon && /*#__PURE__*/_react["default"].createElement(DropdownMenuItemIcon, {
33
+ role: typeof option.icon === "string" ? undefined : "img"
34
+ }, typeof option.icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
35
+ src: option.icon
36
+ }) : option.icon), iconPosition === "before" && /*#__PURE__*/_react["default"].createElement(DropdownMenuItemLabel, null, option.label));
37
+ };
38
+
39
+ var DropdownMenuItemContainer = _styledComponents["default"].li(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: ", ";\n min-height: 36px;\n padding-top: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n cursor: pointer;\n\n ", "\n &:hover {\n background-color: ", ";\n }\n &:active {\n background-color: ", ";\n }\n"])), function (props) {
40
+ return props.theme.optionIconSpacing;
41
+ }, function (props) {
42
+ return props.theme.optionPaddingTop;
43
+ }, function (props) {
44
+ return props.theme.optionPaddingBottom;
45
+ }, function (props) {
46
+ return props.theme.optionPaddingLeft;
47
+ }, function (props) {
48
+ return props.theme.optionPaddingRight;
49
+ }, function (props) {
50
+ return props.visuallyFocused && "outline: ".concat(props.theme.focusColor, " solid 2px; outline-offset: -2px;");
51
+ }, function (props) {
52
+ return props.theme.hoverOptionBackgroundColor;
53
+ }, function (props) {
54
+ return props.theme.activeOptionBackgroundColor;
55
+ });
56
+
57
+ var DropdownMenuItemLabel = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: 1.5rem;\n color: ", ";\n white-space: nowrap;\n"])), function (props) {
58
+ return props.theme.optionFontFamily;
59
+ }, function (props) {
60
+ return props.theme.optionFontSize;
61
+ }, function (props) {
62
+ return props.theme.optionFontStyle;
63
+ }, function (props) {
64
+ return props.theme.optionFontWeight;
65
+ }, function (props) {
66
+ return props.theme.optionFontColor;
67
+ });
68
+
69
+ var DropdownMenuItemIcon = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n color: ", ";\n\n img,\n svg {\n width: ", ";\n height: ", ";\n }\n"])), function (props) {
70
+ return props.theme.optionIconColor;
71
+ }, function (props) {
72
+ return props.theme.optionIconSize;
73
+ }, function (props) {
74
+ return props.theme.optionIconSize;
75
+ });
76
+
77
+ var _default = /*#__PURE__*/_react["default"].memo(DropdownMenuItem);
78
+
79
+ exports["default"] = _default;
@@ -6,8 +6,9 @@ declare type Margin = {
6
6
  left?: Space;
7
7
  right?: Space;
8
8
  };
9
+ declare type Size = "small" | "medium" | "large" | "fillParent" | "fitContent";
9
10
  declare type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
10
- declare type Option = {
11
+ export declare type Option = {
11
12
  /**
12
13
  * Option display value.
13
14
  */
@@ -67,7 +68,7 @@ declare type Props = {
67
68
  /**
68
69
  * Size of the component.
69
70
  */
70
- size?: "small" | "medium" | "large" | "fillParent" | "fitContent";
71
+ size?: Size;
71
72
  /**
72
73
  * Value of the tabindex.
73
74
  */
@@ -77,4 +78,23 @@ declare type Props = {
77
78
  */
78
79
  disabled?: boolean;
79
80
  };
81
+ export declare type DropdownMenuProps = {
82
+ id: string;
83
+ dropdownTriggerId: string;
84
+ iconsPosition: "before" | "after";
85
+ visualFocusIndex: number;
86
+ menuItemOnClick: (value: string) => void;
87
+ onKeyDown: (event: React.KeyboardEvent<HTMLUListElement>) => void;
88
+ options: Option[];
89
+ styles: {
90
+ width: number;
91
+ };
92
+ };
93
+ export declare type DropdownMenuItemProps = {
94
+ id: string;
95
+ visuallyFocused: boolean;
96
+ iconPosition: "before" | "after";
97
+ onClick: (value: string) => void;
98
+ option: Option;
99
+ };
80
100
  export default Props;
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import React from "react";
2
2
  import FileInputPropsType from "./types";
3
- declare const DxcFileInput: ({ name, mode, label, buttonLabel, dropAreaLabel, helperText, accept, minSize, maxSize, showPreview, multiple, disabled, callbackFile, value, margin, tabIndex, }: FileInputPropsType) => JSX.Element;
3
+ declare const DxcFileInput: React.ForwardRefExoticComponent<FileInputPropsType & React.RefAttributes<HTMLDivElement>>;
4
4
  export default DxcFileInput;