@dxc-technology/halstack-react 0.0.0-1c45756 → 0.0.0-1c4cbc0

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 (240) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +1 -4
  3. package/HalstackContext.d.ts +12 -0
  4. package/HalstackContext.js +294 -0
  5. package/accordion/Accordion.d.ts +1 -1
  6. package/accordion/Accordion.js +15 -47
  7. package/accordion/Accordion.stories.tsx +307 -0
  8. package/accordion/Accordion.test.js +72 -0
  9. package/accordion/types.d.ts +8 -8
  10. package/accordion-group/AccordionGroup.d.ts +1 -1
  11. package/accordion-group/AccordionGroup.js +15 -17
  12. package/accordion-group/AccordionGroup.stories.tsx +225 -0
  13. package/accordion-group/AccordionGroup.test.js +151 -0
  14. package/accordion-group/types.d.ts +8 -8
  15. package/alert/Alert.js +6 -3
  16. package/alert/Alert.test.js +92 -0
  17. package/badge/Badge.d.ts +4 -0
  18. package/badge/Badge.js +1 -1
  19. package/badge/types.d.ts +4 -0
  20. package/badge/types.js +5 -0
  21. package/bleed/Bleed.d.ts +3 -0
  22. package/bleed/Bleed.js +84 -0
  23. package/bleed/Bleed.stories.tsx +342 -0
  24. package/bleed/types.d.ts +37 -0
  25. package/bleed/types.js +5 -0
  26. package/box/Box.js +2 -2
  27. package/box/Box.test.js +18 -0
  28. package/button/Button.d.ts +1 -1
  29. package/button/Button.js +21 -26
  30. package/button/Button.stories.tsx +6 -8
  31. package/button/Button.test.js +35 -0
  32. package/button/types.d.ts +3 -7
  33. package/card/Card.js +28 -29
  34. package/card/Card.stories.tsx +1 -1
  35. package/card/Card.test.js +50 -0
  36. package/checkbox/Checkbox.d.ts +1 -1
  37. package/checkbox/Checkbox.js +45 -41
  38. package/checkbox/Checkbox.stories.tsx +124 -128
  39. package/checkbox/Checkbox.test.js +78 -0
  40. package/checkbox/types.d.ts +8 -4
  41. package/chip/Chip.d.ts +4 -0
  42. package/chip/Chip.js +16 -76
  43. package/chip/Chip.stories.tsx +6 -8
  44. package/chip/Chip.test.js +56 -0
  45. package/chip/types.d.ts +45 -0
  46. package/chip/types.js +5 -0
  47. package/common/variables.js +214 -327
  48. package/date-input/DateInput.js +63 -52
  49. package/date-input/DateInput.stories.tsx +7 -7
  50. package/date-input/DateInput.test.js +479 -0
  51. package/date-input/types.d.ts +16 -9
  52. package/dialog/Dialog.js +8 -35
  53. package/dialog/Dialog.test.js +40 -0
  54. package/dropdown/Dropdown.d.ts +1 -1
  55. package/dropdown/Dropdown.js +22 -48
  56. package/dropdown/Dropdown.stories.tsx +249 -0
  57. package/dropdown/Dropdown.test.js +189 -0
  58. package/dropdown/types.d.ts +6 -15
  59. package/file-input/FileInput.d.ts +1 -1
  60. package/file-input/FileInput.js +153 -71
  61. package/file-input/FileInput.stories.tsx +507 -0
  62. package/file-input/FileInput.test.js +457 -0
  63. package/file-input/FileItem.js +10 -8
  64. package/file-input/types.d.ts +32 -7
  65. package/footer/Footer.d.ts +1 -1
  66. package/footer/Footer.js +32 -113
  67. package/footer/{Footer.stories.jsx → Footer.stories.tsx} +1 -22
  68. package/footer/Footer.test.js +109 -0
  69. package/footer/Icons.d.ts +2 -0
  70. package/footer/Icons.js +3 -3
  71. package/footer/types.d.ts +21 -17
  72. package/header/Header.js +29 -50
  73. package/header/Header.stories.tsx +46 -36
  74. package/header/Header.test.js +79 -0
  75. package/header/Icons.d.ts +2 -0
  76. package/heading/Heading.js +1 -1
  77. package/heading/Heading.stories.tsx +3 -2
  78. package/heading/Heading.test.js +186 -0
  79. package/inset/Inset.d.ts +3 -0
  80. package/inset/Inset.js +84 -0
  81. package/inset/Inset.stories.tsx +229 -0
  82. package/inset/types.d.ts +37 -0
  83. package/inset/types.js +5 -0
  84. package/layout/ApplicationLayout.d.ts +10 -0
  85. package/layout/ApplicationLayout.js +14 -31
  86. package/layout/ApplicationLayout.stories.tsx +171 -0
  87. package/layout/types.d.ts +57 -0
  88. package/layout/types.js +5 -0
  89. package/link/Link.d.ts +3 -2
  90. package/link/Link.js +71 -70
  91. package/link/Link.stories.tsx +91 -51
  92. package/link/Link.test.js +83 -0
  93. package/link/types.d.ts +10 -29
  94. package/list/List.d.ts +4 -0
  95. package/list/List.js +47 -0
  96. package/list/List.stories.tsx +95 -0
  97. package/list/types.d.ts +7 -0
  98. package/list/types.js +5 -0
  99. package/main.d.ts +11 -8
  100. package/main.js +68 -38
  101. package/number-input/NumberInput.js +14 -24
  102. package/number-input/NumberInput.stories.tsx +5 -5
  103. package/number-input/NumberInput.test.js +506 -0
  104. package/number-input/types.d.ts +17 -10
  105. package/package.json +9 -6
  106. package/paginator/Paginator.js +19 -46
  107. package/paginator/Paginator.test.js +266 -0
  108. package/password-input/PasswordInput.js +19 -17
  109. package/password-input/PasswordInput.stories.tsx +3 -3
  110. package/password-input/PasswordInput.test.js +180 -0
  111. package/password-input/types.d.ts +14 -11
  112. package/progress-bar/ProgressBar.js +4 -4
  113. package/progress-bar/ProgressBar.test.js +65 -0
  114. package/quick-nav/QuickNav.d.ts +4 -0
  115. package/quick-nav/QuickNav.js +69 -0
  116. package/quick-nav/QuickNav.stories.tsx +237 -0
  117. package/quick-nav/types.d.ts +21 -0
  118. package/quick-nav/types.js +5 -0
  119. package/radio/Radio.js +12 -13
  120. package/radio/Radio.test.js +71 -0
  121. package/radio-group/Radio.d.ts +4 -0
  122. package/radio-group/Radio.js +141 -0
  123. package/radio-group/RadioGroup.d.ts +4 -0
  124. package/radio-group/RadioGroup.js +282 -0
  125. package/radio-group/RadioGroup.stories.tsx +100 -0
  126. package/radio-group/RadioGroup.test.js +695 -0
  127. package/radio-group/types.d.ts +114 -0
  128. package/radio-group/types.js +5 -0
  129. package/resultsetTable/ResultsetTable.js +6 -3
  130. package/resultsetTable/ResultsetTable.stories.tsx +275 -0
  131. package/resultsetTable/ResultsetTable.test.js +306 -0
  132. package/resultsetTable/types.d.ts +2 -2
  133. package/row/Row.d.ts +3 -0
  134. package/row/Row.js +127 -0
  135. package/row/Row.stories.tsx +237 -0
  136. package/row/types.d.ts +28 -0
  137. package/row/types.js +5 -0
  138. package/select/Icons.d.ts +10 -0
  139. package/select/Icons.js +93 -0
  140. package/select/Listbox.d.ts +4 -0
  141. package/select/Listbox.js +152 -0
  142. package/select/Option.d.ts +4 -0
  143. package/select/Option.js +110 -0
  144. package/select/Select.d.ts +4 -0
  145. package/select/Select.js +110 -321
  146. package/select/Select.stories.tsx +103 -81
  147. package/select/Select.test.js +2057 -0
  148. package/select/types.d.ts +213 -0
  149. package/select/types.js +5 -0
  150. package/sidenav/Sidenav.js +2 -2
  151. package/sidenav/Sidenav.stories.tsx +18 -1
  152. package/sidenav/Sidenav.test.js +56 -0
  153. package/slider/Slider.d.ts +1 -1
  154. package/slider/Slider.js +4 -3
  155. package/slider/Slider.stories.tsx +8 -8
  156. package/slider/Slider.test.js +150 -0
  157. package/slider/types.d.ts +4 -0
  158. package/spinner/Spinner.js +3 -3
  159. package/spinner/Spinner.stories.jsx +1 -0
  160. package/spinner/Spinner.test.js +64 -0
  161. package/stack/Stack.d.ts +3 -0
  162. package/stack/Stack.js +97 -0
  163. package/stack/Stack.stories.tsx +164 -0
  164. package/stack/types.d.ts +24 -0
  165. package/stack/types.js +5 -0
  166. package/switch/Switch.d.ts +1 -1
  167. package/switch/Switch.js +37 -21
  168. package/switch/Switch.stories.tsx +15 -15
  169. package/switch/Switch.test.js +98 -0
  170. package/switch/types.d.ts +6 -2
  171. package/table/Table.js +2 -2
  172. package/table/Table.stories.jsx +2 -1
  173. package/table/Table.test.js +26 -0
  174. package/tabs/Tabs.d.ts +1 -1
  175. package/tabs/Tabs.js +17 -19
  176. package/tabs/Tabs.stories.tsx +7 -16
  177. package/tabs/Tabs.test.js +140 -0
  178. package/tabs/types.d.ts +27 -15
  179. package/tag/Tag.d.ts +1 -1
  180. package/tag/Tag.js +18 -28
  181. package/tag/Tag.stories.tsx +26 -29
  182. package/tag/Tag.test.js +60 -0
  183. package/tag/types.d.ts +23 -14
  184. package/text/Text.d.ts +7 -0
  185. package/text/Text.js +30 -0
  186. package/text/Text.stories.tsx +19 -0
  187. package/text-input/Suggestion.d.ts +4 -0
  188. package/text-input/Suggestion.js +55 -0
  189. package/text-input/TextInput.js +83 -99
  190. package/text-input/TextInput.stories.tsx +474 -0
  191. package/text-input/TextInput.test.js +1712 -0
  192. package/text-input/types.d.ts +32 -13
  193. package/textarea/Textarea.d.ts +4 -0
  194. package/textarea/Textarea.js +34 -73
  195. package/textarea/Textarea.stories.jsx +37 -15
  196. package/textarea/Textarea.test.js +437 -0
  197. package/textarea/types.d.ts +137 -0
  198. package/textarea/types.js +5 -0
  199. package/toggle-group/ToggleGroup.d.ts +1 -1
  200. package/toggle-group/ToggleGroup.js +15 -17
  201. package/toggle-group/ToggleGroup.stories.tsx +27 -32
  202. package/toggle-group/ToggleGroup.test.js +156 -0
  203. package/toggle-group/types.d.ts +47 -26
  204. package/useTheme.d.ts +2 -0
  205. package/useTheme.js +2 -2
  206. package/useTranslatedLabels.d.ts +2 -0
  207. package/useTranslatedLabels.js +20 -0
  208. package/wizard/Wizard.d.ts +1 -1
  209. package/wizard/Wizard.js +107 -46
  210. package/wizard/{Wizard.stories.jsx → Wizard.stories.tsx} +13 -23
  211. package/wizard/Wizard.test.js +141 -0
  212. package/wizard/types.d.ts +9 -9
  213. package/ThemeContext.js +0 -246
  214. package/V3Select/V3Select.js +0 -455
  215. package/V3Select/index.d.ts +0 -27
  216. package/V3Textarea/V3Textarea.js +0 -260
  217. package/V3Textarea/index.d.ts +0 -27
  218. package/chip/index.d.ts +0 -22
  219. package/date/Date.js +0 -373
  220. package/date/index.d.ts +0 -27
  221. package/input-text/Icons.js +0 -22
  222. package/input-text/InputText.js +0 -611
  223. package/input-text/index.d.ts +0 -36
  224. package/select/index.d.ts +0 -131
  225. package/textarea/index.d.ts +0 -127
  226. package/toggle/Toggle.js +0 -186
  227. package/toggle/index.d.ts +0 -21
  228. package/upload/Upload.js +0 -201
  229. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  230. package/upload/buttons-upload/Icons.js +0 -40
  231. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  232. package/upload/dragAndDropArea/Icons.js +0 -39
  233. package/upload/file-upload/FileToUpload.js +0 -115
  234. package/upload/file-upload/Icons.js +0 -66
  235. package/upload/files-upload/FilesToUpload.js +0 -109
  236. package/upload/index.d.ts +0 -15
  237. package/upload/transaction/Icons.js +0 -160
  238. package/upload/transaction/Transaction.js +0 -104
  239. package/upload/transactions/Transactions.js +0 -94
  240. package/wizard/Icons.js +0 -65
@@ -0,0 +1,60 @@
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 _Tag = _interopRequireDefault(require("./Tag"));
10
+
11
+ describe("Tag component tests", function () {
12
+ test("Tag renders with correct label", function () {
13
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tag["default"], {
14
+ label: "tag-test"
15
+ })),
16
+ getByText = _render.getByText;
17
+
18
+ expect(getByText("tag-test")).toBeTruthy();
19
+ });
20
+ test("Tag renders with correct label before", function () {
21
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tag["default"], {
22
+ label: "tag-test",
23
+ labelPosition: "before"
24
+ })),
25
+ getByText = _render2.getByText;
26
+
27
+ expect(getByText("tag-test")).toBeTruthy();
28
+ });
29
+ test("Tag renders with correct icon", function () {
30
+ var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tag["default"], {
31
+ label: "tag-test",
32
+ icon: "/test-icon.jpg"
33
+ })),
34
+ getByRole = _render3.getByRole;
35
+
36
+ expect(getByRole("img").getAttribute("src")).toBe("/test-icon.jpg");
37
+ });
38
+ test("Tag renders with link href", function () {
39
+ var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tag["default"], {
40
+ label: "tag-test",
41
+ linkHref: "/test/page"
42
+ })),
43
+ getByRole = _render4.getByRole;
44
+
45
+ expect(getByRole("link").getAttribute("href")).toBe("/test/page");
46
+ });
47
+ test("Call correct function on click", function () {
48
+ var onClick = jest.fn();
49
+
50
+ var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tag["default"], {
51
+ label: "tag-test",
52
+ onClick: onClick
53
+ })),
54
+ getByText = _render5.getByText;
55
+
56
+ _react2.fireEvent.click(getByText("tag-test"));
57
+
58
+ expect(onClick).toHaveBeenCalled();
59
+ });
60
+ });
package/tag/types.d.ts CHANGED
@@ -6,20 +6,8 @@ declare type Margin = {
6
6
  left?: Space;
7
7
  right?: Space;
8
8
  };
9
- declare type SVG = React.SVGProps<SVGSVGElement> | React.FunctionComponent<React.SVGProps<SVGSVGElement>>;
10
- declare type Props = {
11
- /**
12
- * Element used as the icon that will be placed next to the label.
13
- */
14
- icon?: SVG;
15
- /**
16
- * @deprecated URL of the icon.
17
- */
18
- iconSrc?: string;
19
- /**
20
- * Text to be placed next inside the tag.
21
- */
22
- label?: string;
9
+ declare type SVG = React.SVGProps<SVGSVGElement>;
10
+ declare type TagCommonProps = {
23
11
  /**
24
12
  * If defined, the tag will be displayed as an anchor, using this prop as "href".
25
13
  * Component will show some visual feedback on hover.
@@ -57,4 +45,25 @@ declare type Props = {
57
45
  */
58
46
  tabIndex?: number;
59
47
  };
48
+ declare type TagLabelProps = TagCommonProps & {
49
+ /**
50
+ * Element or path used as the icon that will be placed next to the label.
51
+ */
52
+ icon?: string | SVG;
53
+ /**
54
+ * Text to be placed next inside the tag.
55
+ */
56
+ label: string;
57
+ };
58
+ declare type TagIconProps = TagCommonProps & {
59
+ /**
60
+ * Element or path used as the icon that will be placed next to the label.
61
+ */
62
+ icon: string | SVG;
63
+ /**
64
+ * Text to be placed next inside the tag.
65
+ */
66
+ label?: string;
67
+ };
68
+ declare type Props = TagLabelProps | TagIconProps;
60
69
  export default Props;
package/text/Text.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ declare type TextProps = {
3
+ as?: "p" | "span";
4
+ children: React.ReactNode;
5
+ };
6
+ declare function Text({ as, children }: TextProps): JSX.Element;
7
+ export default Text;
package/text/Text.js ADDED
@@ -0,0 +1,30 @@
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;
17
+
18
+ function Text(_ref) {
19
+ var _ref$as = _ref.as,
20
+ as = _ref$as === void 0 ? "span" : _ref$as,
21
+ children = _ref.children;
22
+ return /*#__PURE__*/_react["default"].createElement(StyledText, {
23
+ as: as
24
+ }, children);
25
+ }
26
+
27
+ var StyledText = _styledComponents["default"].span(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n margin: 0px;\n font-family: Open Sans, sans-serif;\n line-height: 1.5em;\n"])));
28
+
29
+ var _default = Text;
30
+ exports["default"] = _default;
@@ -0,0 +1,19 @@
1
+ import React from "react";
2
+ import Title from "../../.storybook/components/Title";
3
+ import DxcText from "./Text";
4
+
5
+ export default {
6
+ title: "Text",
7
+ component: DxcText,
8
+ };
9
+
10
+ export const Chromatic = () => (
11
+ <>
12
+ <Title title="Two texts as span" theme="light" level={4} />
13
+ <DxcText>Text 1.</DxcText>
14
+ <DxcText>Text 2.</DxcText>
15
+ <Title title="Two texts as p" theme="light" level={4} />
16
+ <DxcText as="p">Text 1.</DxcText>
17
+ <DxcText as="p">Text 2.</DxcText>
18
+ </>
19
+ );
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { SuggestionProps } from "./types";
3
+ declare const _default: React.MemoExoticComponent<({ id, value, onClick, suggestion, isLast, visuallyFocused, highlighted, }: SuggestionProps) => JSX.Element>;
4
+ export default _default;
@@ -0,0 +1,55 @@
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;
17
+
18
+ var Suggestion = function Suggestion(_ref) {
19
+ var id = _ref.id,
20
+ value = _ref.value,
21
+ onClick = _ref.onClick,
22
+ suggestion = _ref.suggestion,
23
+ isLast = _ref.isLast,
24
+ visuallyFocused = _ref.visuallyFocused,
25
+ highlighted = _ref.highlighted;
26
+ var regEx = new RegExp(value, "i");
27
+ var matchedWords = suggestion.match(regEx);
28
+ var noMatchedWords = suggestion.replace(regEx, "");
29
+ return /*#__PURE__*/_react["default"].createElement(SuggestionContainer, {
30
+ id: id,
31
+ onClick: onClick,
32
+ visuallyFocused: visuallyFocused,
33
+ role: "option",
34
+ "aria-selected": visuallyFocused ? "true" : undefined
35
+ }, /*#__PURE__*/_react["default"].createElement(StyledSuggestion, {
36
+ last: isLast,
37
+ visuallyFocused: visuallyFocused
38
+ }, highlighted ? suggestion : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("strong", null, matchedWords), noMatchedWords)));
39
+ };
40
+
41
+ var SuggestionContainer = _styledComponents["default"].li(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 0 0.5rem;\n line-height: 1.715em;\n cursor: pointer;\n\n box-shadow: inset 0 0 0 2px\n ", ";\n &:hover {\n background-color: ", ";\n }\n &:active {\n background-color: ", ";\n }\n"])), function (props) {
42
+ return props.visuallyFocused ? props.theme.focusListOptionBorderColor : "transparent";
43
+ }, function (props) {
44
+ return props.theme.hoverListOptionBackgroundColor;
45
+ }, function (props) {
46
+ return props.theme.activeListOptionBackgroundColor;
47
+ });
48
+
49
+ var StyledSuggestion = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n padding: 0.25rem 0.5rem 0.188rem 0.5rem;\n ", ";\n"])), function (props) {
50
+ return props.last || props.visuallyFocused ? "border-bottom: 1px solid transparent" : "border-bottom: 1px solid ".concat(props.theme.listOptionDividerColor);
51
+ });
52
+
53
+ var _default = /*#__PURE__*/_react["default"].memo(Suggestion);
54
+
55
+ exports["default"] = _default;