@dxc-technology/halstack-react 0.0.0-ebf4fe2 → 0.0.0-ec06b53

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 (179) hide show
  1. package/HalstackContext.js +7 -8
  2. package/accordion/Accordion.js +122 -103
  3. package/accordion/Accordion.stories.tsx +2 -3
  4. package/accordion/Accordion.test.js +9 -10
  5. package/accordion/types.d.ts +5 -4
  6. package/accordion-group/AccordionGroup.js +1 -21
  7. package/accordion-group/AccordionGroup.stories.tsx +27 -1
  8. package/accordion-group/AccordionGroup.test.js +20 -45
  9. package/accordion-group/types.d.ts +10 -3
  10. package/alert/Alert.js +1 -1
  11. package/bleed/Bleed.stories.tsx +63 -63
  12. package/box/Box.js +1 -1
  13. package/box/types.d.ts +1 -0
  14. package/bulleted-list/BulletedList.d.ts +7 -0
  15. package/bulleted-list/BulletedList.js +123 -0
  16. package/bulleted-list/BulletedList.stories.tsx +200 -0
  17. package/bulleted-list/types.d.ts +11 -0
  18. package/{inline → bulleted-list}/types.js +0 -0
  19. package/button/Button.js +43 -61
  20. package/button/Button.stories.tsx +9 -0
  21. package/button/types.d.ts +7 -7
  22. package/card/types.d.ts +1 -0
  23. package/checkbox/Checkbox.d.ts +2 -2
  24. package/checkbox/Checkbox.js +92 -99
  25. package/checkbox/Checkbox.stories.tsx +79 -59
  26. package/checkbox/Checkbox.test.js +93 -16
  27. package/checkbox/types.d.ts +6 -2
  28. package/chip/types.d.ts +1 -1
  29. package/common/variables.js +75 -33
  30. package/date-input/Calendar.d.ts +4 -0
  31. package/date-input/Calendar.js +258 -0
  32. package/date-input/DateInput.js +77 -222
  33. package/date-input/DateInput.stories.tsx +30 -17
  34. package/date-input/DateInput.test.js +411 -138
  35. package/date-input/DatePicker.d.ts +4 -0
  36. package/date-input/DatePicker.js +160 -0
  37. package/date-input/YearPicker.d.ts +4 -0
  38. package/date-input/YearPicker.js +115 -0
  39. package/date-input/types.d.ts +53 -0
  40. package/dialog/Dialog.js +52 -28
  41. package/dialog/Dialog.stories.tsx +57 -2
  42. package/dialog/Dialog.test.js +34 -4
  43. package/dialog/types.d.ts +3 -2
  44. package/dropdown/Dropdown.d.ts +1 -1
  45. package/dropdown/Dropdown.js +247 -247
  46. package/dropdown/Dropdown.stories.tsx +126 -63
  47. package/dropdown/Dropdown.test.js +504 -108
  48. package/dropdown/DropdownMenu.d.ts +4 -0
  49. package/dropdown/DropdownMenu.js +80 -0
  50. package/dropdown/DropdownMenuItem.d.ts +4 -0
  51. package/dropdown/DropdownMenuItem.js +92 -0
  52. package/dropdown/types.d.ts +25 -5
  53. package/file-input/FileInput.d.ts +2 -2
  54. package/file-input/FileInput.js +177 -219
  55. package/file-input/FileInput.stories.tsx +38 -10
  56. package/file-input/FileInput.test.js +53 -12
  57. package/file-input/FileItem.d.ts +4 -14
  58. package/file-input/FileItem.js +38 -63
  59. package/file-input/types.d.ts +17 -0
  60. package/flex/Flex.d.ts +4 -0
  61. package/flex/Flex.js +69 -0
  62. package/flex/Flex.stories.tsx +103 -0
  63. package/flex/types.d.ts +32 -0
  64. package/{list → flex}/types.js +0 -0
  65. package/footer/Footer.stories.tsx +8 -1
  66. package/footer/types.d.ts +2 -1
  67. package/header/Header.js +74 -72
  68. package/header/Header.stories.tsx +4 -4
  69. package/header/Icons.js +2 -2
  70. package/header/types.d.ts +3 -2
  71. package/inset/Inset.stories.tsx +4 -4
  72. package/layout/ApplicationLayout.d.ts +15 -6
  73. package/layout/ApplicationLayout.js +36 -64
  74. package/layout/ApplicationLayout.stories.tsx +80 -44
  75. package/layout/types.d.ts +17 -27
  76. package/link/Link.js +2 -2
  77. package/link/Link.stories.tsx +13 -6
  78. package/link/types.d.ts +1 -1
  79. package/main.d.ts +5 -9
  80. package/main.js +27 -59
  81. package/number-input/NumberInput.test.js +43 -7
  82. package/package.json +16 -20
  83. package/paginator/Paginator.js +2 -2
  84. package/paginator/Paginator.test.js +1 -1
  85. package/paragraph/Paragraph.d.ts +6 -0
  86. package/paragraph/Paragraph.js +38 -0
  87. package/paragraph/Paragraph.stories.tsx +44 -0
  88. package/password-input/PasswordInput.test.js +13 -12
  89. package/progress-bar/ProgressBar.d.ts +2 -2
  90. package/progress-bar/ProgressBar.js +56 -50
  91. package/progress-bar/ProgressBar.stories.jsx +3 -1
  92. package/progress-bar/ProgressBar.test.js +67 -22
  93. package/progress-bar/types.d.ts +3 -4
  94. package/quick-nav/QuickNav.js +18 -17
  95. package/quick-nav/QuickNav.stories.tsx +131 -26
  96. package/radio-group/Radio.d.ts +1 -1
  97. package/radio-group/Radio.js +43 -28
  98. package/radio-group/RadioGroup.js +23 -22
  99. package/radio-group/RadioGroup.stories.tsx +1 -0
  100. package/radio-group/RadioGroup.test.js +123 -96
  101. package/radio-group/types.d.ts +2 -2
  102. package/resultsetTable/Icons.d.ts +7 -0
  103. package/resultsetTable/Icons.js +51 -0
  104. package/resultsetTable/ResultsetTable.js +48 -107
  105. package/resultsetTable/ResultsetTable.stories.tsx +50 -25
  106. package/resultsetTable/ResultsetTable.test.js +23 -41
  107. package/resultsetTable/types.d.ts +2 -2
  108. package/select/Listbox.d.ts +1 -1
  109. package/select/Listbox.js +25 -2
  110. package/select/Select.js +17 -32
  111. package/select/Select.stories.tsx +6 -5
  112. package/select/Select.test.js +321 -250
  113. package/select/types.d.ts +2 -4
  114. package/sidenav/Sidenav.d.ts +6 -5
  115. package/sidenav/Sidenav.js +176 -55
  116. package/sidenav/Sidenav.stories.tsx +154 -156
  117. package/sidenav/Sidenav.test.js +25 -37
  118. package/sidenav/types.d.ts +50 -27
  119. package/slider/Slider.d.ts +2 -2
  120. package/slider/Slider.js +120 -95
  121. package/slider/Slider.stories.tsx +7 -1
  122. package/slider/Slider.test.js +121 -21
  123. package/slider/types.d.ts +6 -2
  124. package/switch/Switch.d.ts +2 -2
  125. package/switch/Switch.js +135 -68
  126. package/switch/Switch.stories.tsx +8 -30
  127. package/switch/Switch.test.js +144 -17
  128. package/switch/types.d.ts +6 -2
  129. package/table/Table.js +1 -1
  130. package/table/Table.test.js +1 -1
  131. package/tabs/Tab.d.ts +4 -0
  132. package/tabs/Tab.js +135 -0
  133. package/tabs/Tabs.js +360 -104
  134. package/tabs/Tabs.stories.tsx +74 -0
  135. package/tabs/Tabs.test.js +217 -6
  136. package/tabs/types.d.ts +15 -5
  137. package/tabs-nav/NavTabs.js +5 -5
  138. package/tabs-nav/Tab.js +3 -5
  139. package/tabs-nav/types.d.ts +1 -1
  140. package/tag/Tag.js +1 -1
  141. package/tag/types.d.ts +1 -1
  142. package/text-input/Icons.d.ts +8 -0
  143. package/text-input/Icons.js +60 -0
  144. package/text-input/Suggestion.js +7 -5
  145. package/text-input/Suggestions.d.ts +4 -0
  146. package/text-input/Suggestions.js +134 -0
  147. package/text-input/TextInput.js +189 -282
  148. package/text-input/TextInput.stories.tsx +189 -182
  149. package/text-input/TextInput.test.js +639 -727
  150. package/text-input/types.d.ts +22 -3
  151. package/toggle-group/types.d.ts +1 -1
  152. package/typography/Typography.d.ts +4 -0
  153. package/typography/Typography.js +131 -0
  154. package/typography/Typography.stories.tsx +198 -0
  155. package/typography/types.d.ts +18 -0
  156. package/{row → typography}/types.js +0 -0
  157. package/wizard/Wizard.js +9 -16
  158. package/wizard/Wizard.stories.tsx +20 -1
  159. package/wizard/types.d.ts +5 -4
  160. package/inline/Inline.d.ts +0 -4
  161. package/inline/Inline.js +0 -60
  162. package/inline/Inline.stories.tsx +0 -305
  163. package/inline/types.d.ts +0 -36
  164. package/list/List.d.ts +0 -4
  165. package/list/List.js +0 -47
  166. package/list/List.stories.tsx +0 -89
  167. package/list/types.d.ts +0 -7
  168. package/row/Row.d.ts +0 -3
  169. package/row/Row.js +0 -127
  170. package/row/Row.stories.tsx +0 -237
  171. package/row/types.d.ts +0 -28
  172. package/stack/Stack.d.ts +0 -4
  173. package/stack/Stack.js +0 -52
  174. package/stack/Stack.stories.tsx +0 -225
  175. package/stack/types.d.ts +0 -28
  176. package/stack/types.js +0 -5
  177. package/text/Text.d.ts +0 -7
  178. package/text/Text.js +0 -30
  179. package/text/Text.stories.tsx +0 -19
package/package.json CHANGED
@@ -1,30 +1,24 @@
1
1
  {
2
2
  "name": "@dxc-technology/halstack-react",
3
- "version": "0.0.0-ebf4fe2",
3
+ "version": "0.0.0-ec06b53",
4
4
  "description": "DXC Halstack React components library",
5
5
  "repository": "dxc-technology/halstack-react",
6
- "homepage": "http://developer.dxc.com/tools/react",
6
+ "homepage": "https://developer.dxc.com/halstack",
7
7
  "license": "Apache-2.0",
8
8
  "author": {
9
9
  "name": "DXC Technology",
10
10
  "email": "DigitalInsurance@dxc.com",
11
- "url": "https://dxc.com"
11
+ "url": "https://developer.dxc.com"
12
12
  },
13
13
  "main": "./main.js",
14
14
  "types": "./main.d.ts",
15
15
  "peerDependencies": {
16
- "react": "^17.0.1",
17
- "react-dom": "^17.0.1",
16
+ "react": "^18.x",
17
+ "react-dom": "^18.x",
18
18
  "styled-components": "^5.0.1"
19
19
  },
20
20
  "dependencies": {
21
- "@date-io/dayjs": "^1.3.9",
22
- "@material-ui/core": "4.11.1",
23
- "@material-ui/icons": "4.4.3",
24
- "@material-ui/lab": "4.0.0-alpha.17",
25
- "@material-ui/pickers": "3.2.2",
26
- "@material-ui/styles": "4.0.2",
27
- "@radix-ui/react-popover": "^0.1.6",
21
+ "@radix-ui/react-popover": "0.1.6",
28
22
  "@types/styled-components": "^5.1.24",
29
23
  "@types/uuid": "^8.3.4",
30
24
  "color": "^3.1.3",
@@ -35,7 +29,7 @@
35
29
  "uuid": "^8.3.2"
36
30
  },
37
31
  "scripts": {
38
- "test": "jest",
32
+ "test": "jest --env=jsdom",
39
33
  "test:watch": "npm test -- --watch --coverage",
40
34
  "build": "babel src --extensions .js,.jsx,.ts,.tsx --out-dir ../dist --copy-files --verbose && node ../scripts/build/copy-package.js && tsc ",
41
35
  "build:watch": "babel src --watch --extensions .js,.jsx,.ts,.tsx --out-dir ../dist --copy-files --verbose",
@@ -56,9 +50,9 @@
56
50
  "@storybook/addon-links": "^6.4.9",
57
51
  "@storybook/react": "^6.4.9",
58
52
  "@storybook/testing-library": "0.0.7",
59
- "@testing-library/react": "^11.2.5",
60
- "@testing-library/user-event": "^12.6.3",
61
- "@types/react": "16.9.5",
53
+ "@testing-library/react": "^13.0.0",
54
+ "@testing-library/user-event": "^13.0.0",
55
+ "@types/react": "^18.0.18",
62
56
  "babel-jest": "^24.8.0",
63
57
  "babel-loader": "^8.0.6",
64
58
  "chromatic": "^6.3.3",
@@ -72,9 +66,10 @@
72
66
  "eslint-plugin-react-hooks": "^4.2.0",
73
67
  "eslint-plugin-storybook": "^0.5.5",
74
68
  "identity-obj-proxy": "^3.0.0",
75
- "jest": "^25.5.4",
76
- "react": "^17.0.1",
77
- "react-dom": "^17.0.1",
69
+ "jest": "^29.2.2",
70
+ "jest-environment-jsdom": "^29.3.1",
71
+ "react": "^18.x",
72
+ "react-dom": "^18.x",
78
73
  "react-test-renderer": "^16.8.6",
79
74
  "storybook-addon-pseudo-states": "^1.0.0",
80
75
  "styled-components": "^5.0.1",
@@ -84,7 +79,8 @@
84
79
  "moduleNameMapper": {
85
80
  "\\.(css|less|scss|sass)$": "identity-obj-proxy",
86
81
  "\\.(svg)$": "<rootDir>/test/mocks/svgMock.js",
87
- "\\.(png)$": "<rootDir>/test/mocks/pngMock.js"
82
+ "\\.(png)$": "<rootDir>/test/mocks/pngMock.js",
83
+ "^uuid$": "uuid"
88
84
  }
89
85
  }
90
86
  }
@@ -153,7 +153,7 @@ var ItemsPageContainer = _styledComponents["default"].span(_templateObject3 || (
153
153
 
154
154
  var ItemsLabel = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n margin-right: 0.5rem;\n"])));
155
155
 
156
- var GoToLabel = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n margin-right: 0.5rem;\n margin-left: 1rem;\n"])));
156
+ var GoToLabel = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n margin-right: 0.5rem;\n margin-left: 0.5rem;\n"])));
157
157
 
158
158
  var TotalItemsContainer = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n margin-right: ", ";\n margin-left: ", ";\n"])), function (props) {
159
159
  return props.theme.totalItemsContainerMarginRight;
@@ -163,7 +163,7 @@ var TotalItemsContainer = _styledComponents["default"].span(_templateObject6 ||
163
163
 
164
164
  var LabelsContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n gap: 0.5rem;\n width: 100%;\n justify-content: flex-end;\n align-items: center;\n"])));
165
165
 
166
- var PageToSelectContainer = _styledComponents["default"].span(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n\n label {\n height: 0px;\n }\n label + .MuiInput-formControl {\n margin-top: 0px;\n }\n"])));
166
+ var PageToSelectContainer = _styledComponents["default"].span(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n margin-right: 0.5rem;\n\n label {\n height: 0px;\n }\n label + .MuiInput-formControl {\n margin-top: 0px;\n }\n"])));
167
167
 
168
168
  var TextContainer = _styledComponents["default"].span(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])([""])));
169
169
 
@@ -77,7 +77,7 @@ describe("Paginator component tests", function () {
77
77
  })),
78
78
  getByText = _render3.getByText;
79
79
 
80
- expect(getByText("Items per page")).toBeTruthy();
80
+ expect(getByText("Items per page:")).toBeTruthy();
81
81
  });
82
82
  test("Paginator renders with itemsPerPageOptions", function () {
83
83
  var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Paginator["default"], {
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ declare type ParagraphPropsType = {
3
+ children: React.ReactNode;
4
+ };
5
+ declare const Paragraph: ({ children }: ParagraphPropsType) => JSX.Element;
6
+ export default Paragraph;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports["default"] = void 0;
11
+
12
+ var _react = _interopRequireWildcard(require("react"));
13
+
14
+ var _Typography = _interopRequireDefault(require("../typography/Typography"));
15
+
16
+ var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
17
+
18
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
19
+
20
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
+
22
+ 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; }
23
+
24
+ var Paragraph = function Paragraph(_ref) {
25
+ var children = _ref.children;
26
+ var colorsTheme = (0, _useTheme["default"])();
27
+ var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
28
+ return /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
29
+ as: "p",
30
+ display: colorsTheme.paragraph.display,
31
+ fontSize: colorsTheme.paragraph.fontSize,
32
+ fontWeight: colorsTheme.paragraph.fontWeight,
33
+ color: backgroundType && backgroundType === "dark" ? colorsTheme.paragraph.fontColorOnDark : colorsTheme.paragraph.fontColor
34
+ }, children);
35
+ };
36
+
37
+ var _default = Paragraph;
38
+ exports["default"] = _default;
@@ -0,0 +1,44 @@
1
+ import React from "react";
2
+ import Title from "../../.storybook/components/Title";
3
+ import DxcParagraph from "./Paragraph";
4
+ import { BackgroundColorProvider } from "../BackgroundColorContext";
5
+ import ExampleContainer from "../../.storybook/components/ExampleContainer";
6
+ import DarkContainer from "../../.storybook/components/DarkSection";
7
+
8
+ export default {
9
+ title: "Paragraph",
10
+ component: DxcParagraph,
11
+ };
12
+
13
+ export const Chromatic = () => (
14
+ <>
15
+ <ExampleContainer>
16
+ <Title title="Default Paragraph" level={4} />
17
+ <DxcParagraph>
18
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla id tortor sit amet velit auctor cursus id eget
19
+ nisl. Vivamus luctus egestas eros, at mattis libero eleifend ac. Integer vel urna rutrum, pretium arcu
20
+ dignissim, fringilla turpis. Nullam luctus odio quis magna finibus, a pharetra magna euismod. Nullam efficitur
21
+ semper pellentesque. Nulla eget arcu ac diam fringilla vehicula. In imperdiet nisl hendrerit, elementum metus
22
+ eu, ornare risus. Aenean neque nibh, vestibulum vitae elit vel, imperdiet suscipit leo. Curabitur blandit
23
+ iaculis pretium. Fusce id imperdiet dui, ut laoreet justo. Sed maximus sollicitudin ipsum, et varius massa
24
+ condimentum eget. Vivamus id mauris et nisl mattis consequat et id lectus. Quisque mollis lacinia nisl.
25
+ Suspendisse sed quam tincidunt, commodo dolor vel, tincidunt nisl.
26
+ </DxcParagraph>
27
+ </ExampleContainer>
28
+ <BackgroundColorProvider color="#333333">
29
+ <DarkContainer>
30
+ <Title title="Default Paragraph" theme="dark" level={4} />
31
+ <DxcParagraph>
32
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla id tortor sit amet velit auctor cursus id eget
33
+ nisl. Vivamus luctus egestas eros, at mattis libero eleifend ac. Integer vel urna rutrum, pretium arcu
34
+ dignissim, fringilla turpis. Nullam luctus odio quis magna finibus, a pharetra magna euismod. Nullam efficitur
35
+ semper pellentesque. Nulla eget arcu ac diam fringilla vehicula. In imperdiet nisl hendrerit, elementum metus
36
+ eu, ornare risus. Aenean neque nibh, vestibulum vitae elit vel, imperdiet suscipit leo. Curabitur blandit
37
+ iaculis pretium. Fusce id imperdiet dui, ut laoreet justo. Sed maximus sollicitudin ipsum, et varius massa
38
+ condimentum eget. Vivamus id mauris et nisl mattis consequat et id lectus. Quisque mollis lacinia nisl.
39
+ Suspendisse sed quam tincidunt, commodo dolor vel, tincidunt nisl.
40
+ </DxcParagraph>
41
+ </DarkContainer>
42
+ </BackgroundColorProvider>
43
+ </>
44
+ );
@@ -46,9 +46,9 @@ describe("Password input component tests", function () {
46
46
  label: "Password input",
47
47
  onChange: onChange
48
48
  })),
49
- getByRole = _render4.getByRole;
49
+ getByLabelText = _render4.getByLabelText;
50
50
 
51
- var passwordInput = getByRole("textbox");
51
+ var passwordInput = getByLabelText("Password input");
52
52
 
53
53
  _userEvent["default"].type(passwordInput, "Pa$$w0rd");
54
54
 
@@ -64,9 +64,9 @@ describe("Password input component tests", function () {
64
64
  label: "Password input",
65
65
  onBlur: onBlur
66
66
  })),
67
- getByRole = _render5.getByRole;
67
+ getByLabelText = _render5.getByLabelText;
68
68
 
69
- var passwordInput = getByRole("textbox");
69
+ var passwordInput = getByLabelText("Password input");
70
70
 
71
71
  _userEvent["default"].type(passwordInput, "Pa$$w0rd");
72
72
 
@@ -83,9 +83,9 @@ describe("Password input component tests", function () {
83
83
  clearable: true
84
84
  })),
85
85
  getAllByRole = _render6.getAllByRole,
86
- getByRole = _render6.getByRole;
86
+ getByLabelText = _render6.getByLabelText;
87
87
 
88
- var passwordInput = getByRole("textbox");
88
+ var passwordInput = getByLabelText("Password input");
89
89
 
90
90
  _userEvent["default"].type(passwordInput, "Pa$$w0rd");
91
91
 
@@ -101,9 +101,9 @@ describe("Password input component tests", function () {
101
101
  label: "Password input"
102
102
  })),
103
103
  getAllByRole = _render7.getAllByRole,
104
- getByRole = _render7.getByRole;
104
+ getByLabelText = _render7.getByLabelText;
105
105
 
106
- var passwordInput = getByRole("textbox");
106
+ var passwordInput = getByLabelText("Password input");
107
107
 
108
108
  _userEvent["default"].type(passwordInput, "Pa$$w0rd");
109
109
 
@@ -117,9 +117,9 @@ describe("Password input component tests", function () {
117
117
  clearable: true
118
118
  })),
119
119
  getAllByRole = _render8.getAllByRole,
120
- getByRole = _render8.getByRole;
120
+ getByLabelText = _render8.getByLabelText;
121
121
 
122
- var passwordInput = getByRole("textbox");
122
+ var passwordInput = getByLabelText("Password input");
123
123
 
124
124
  _userEvent["default"].type(passwordInput, "Pa$$w0rd");
125
125
 
@@ -164,9 +164,10 @@ describe("Password input component tests", function () {
164
164
  var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_PasswordInput["default"], {
165
165
  label: "Password input"
166
166
  })),
167
- getByRole = _render10.getByRole;
167
+ getByRole = _render10.getByRole,
168
+ getByLabelText = _render10.getByLabelText;
168
169
 
169
- var passwordInput = getByRole("textbox");
170
+ var passwordInput = getByLabelText("Password input");
170
171
  expect(passwordInput.getAttribute("aria-autocomplete")).toBeNull();
171
172
  expect(passwordInput.getAttribute("aria-controls")).toBeNull();
172
173
  expect(passwordInput.getAttribute("aria-expanded")).toBeNull();
@@ -1,4 +1,4 @@
1
1
  /// <reference types="react" />
2
- import ProgressBarPropsType from "./types";
3
- declare const DxcProgressBar: ({ label, helperText, overlay, value, showValue, margin, }: ProgressBarPropsType) => JSX.Element;
2
+ import { Props } from "./types";
3
+ declare const DxcProgressBar: ({ label, helperText, overlay, value, showValue, margin, }: Props) => JSX.Element;
4
4
  export default DxcProgressBar;
@@ -13,19 +13,19 @@ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
13
 
14
14
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
15
 
16
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
+
16
18
  var _react = _interopRequireWildcard(require("react"));
17
19
 
18
20
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
19
21
 
20
- var _LinearProgress = _interopRequireDefault(require("@material-ui/core/LinearProgress"));
21
-
22
22
  var _variables = require("../common/variables.js");
23
23
 
24
24
  var _useTheme = _interopRequireDefault(require("../useTheme"));
25
25
 
26
26
  var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
27
27
 
28
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
28
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8;
29
29
 
30
30
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
31
31
 
@@ -44,72 +44,56 @@ var DxcProgressBar = function DxcProgressBar(_ref) {
44
44
  margin = _ref.margin;
45
45
  var colorsTheme = (0, _useTheme["default"])();
46
46
  var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
47
+
48
+ var _useState = (0, _react.useState)(0),
49
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
50
+ valueProgressBar = _useState2[0],
51
+ setValueProgressBar = _useState2[1];
52
+
53
+ (0, _react.useEffect)(function () {
54
+ setValueProgressBar(value === null || value === undefined || value < 0 ? 0 : value >= 0 && value <= 100 ? value : 100);
55
+ }, [value]);
47
56
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
48
57
  theme: colorsTheme.progressBar
49
58
  }, /*#__PURE__*/_react["default"].createElement(BackgroundProgressBar, {
50
59
  overlay: overlay
51
- }, /*#__PURE__*/_react["default"].createElement(DXCProgressBar, {
60
+ }, /*#__PURE__*/_react["default"].createElement(ProgressBarContainer, {
52
61
  overlay: overlay,
53
- margin: margin,
54
- backgroundType: backgroundType
62
+ margin: margin
55
63
  }, /*#__PURE__*/_react["default"].createElement(InfoProgressBar, null, /*#__PURE__*/_react["default"].createElement(ProgressBarLabel, {
56
64
  overlay: overlay,
57
- backgroundType: backgroundType
65
+ backgroundType: backgroundType,
66
+ "aria-label": label || undefined
58
67
  }, label), /*#__PURE__*/_react["default"].createElement(ProgressBarProgress, {
59
68
  overlay: overlay,
60
69
  showValue: showValue,
61
- backgroundType: backgroundType
62
- }, value === null || value === undefined ? 0 : value >= 0 && value <= 100 ? value : value < 0 ? 0 : 100, " %")), /*#__PURE__*/_react["default"].createElement(_LinearProgress["default"], {
63
- variant: showValue ? "determinate" : "indeterminate",
64
- value: value === null || value === undefined ? 0 : value >= 0 && value <= 100 ? value : value < 0 ? 0 : 100
65
- }), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
70
+ backgroundType: backgroundType,
71
+ value: valueProgressBar
72
+ }, valueProgressBar, " %")), /*#__PURE__*/_react["default"].createElement(LinearProgress, {
73
+ role: "progressbar",
74
+ helperText: helperText,
75
+ "aria-valuenow": showValue ? valueProgressBar : undefined
76
+ }, /*#__PURE__*/_react["default"].createElement(LinearProgressBar, {
77
+ backgroundType: backgroundType,
78
+ variant: value === null || value === undefined ? "indeterminate" : "determinate",
79
+ container: "first",
80
+ value: valueProgressBar
81
+ })), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
66
82
  overlay: overlay,
67
83
  backgroundType: backgroundType
68
84
  }, helperText))));
69
85
  };
70
86
 
71
- var BackgroundProgressBar = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n background-color: ", ";\n opacity: ", ";\n width: ", ";\n display: flex;\n flex-wrap: wrap;\n justify-content: ", ";\n height: ", ";\n align-items: ", ";\n min-width: 100px;\n max-width: ", ";\n position: ", ";\n top: ", ";\n bottom: ", ";\n left: ", ";\n right: ", ";\n z-index: ", ";\n width: 100%;\n"])), function (props) {
72
- return props.overlay === true ? "".concat(props.theme.overlayColor) : "transparent";
73
- }, function (props) {
74
- return props.overlay === true && "0.8";
75
- }, function (props) {
76
- return props.overlay === true ? "100%" : "";
77
- }, function (props) {
78
- return props.overlay === true ? "center" : "";
79
- }, function (props) {
80
- return props.overlay === true ? "100vh" : "";
81
- }, function (props) {
82
- return props.overlay === true ? "center" : "";
83
- }, function (props) {
84
- return props.overlay === true ? "100%" : "";
85
- }, function (props) {
86
- return props.overlay === true ? "fixed" : "";
87
- }, function (props) {
88
- return props.overlay === true ? "0" : "";
89
- }, function (props) {
90
- return props.overlay === true ? "0" : "";
91
- }, function (props) {
92
- return props.overlay === true ? "0" : "";
93
- }, function (props) {
94
- return props.overlay === true ? "0" : "";
95
- }, function (props) {
96
- return props.overlay ? 1300 : "";
87
+ var BackgroundProgressBar = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n ", "\n display: flex;\n flex-wrap: wrap;\n min-width: 100px;\n width: 100%;\n"])), function (_ref2) {
88
+ var overlay = _ref2.overlay,
89
+ theme = _ref2.theme;
90
+ return overlay ? "background-color: ".concat(theme.overlayColor, ";\n opacity: 0.8;\n width: 100%;\n justify-content: center;\n height: 100vh;\n align-items: center;\n max-width: 100%;\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 1300;") : "background-color: \"transparent\";";
97
91
  });
98
92
 
99
- var DXCProgressBar = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n z-index: ", ";\n width: ", ";\n .MuiLinearProgress-root {\n height: ", ";\n background-color: ", ";\n border-radius: ", ";\n margin-bottom: ", ";\n }\n .MuiLinearProgress-bar {\n background-color: ", ";\n }\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
93
+ var ProgressBarContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n z-index: ", ";\n width: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
100
94
  return props.overlay === true && "100" || "0";
101
95
  }, function (props) {
102
96
  return props.overlay === true ? "80%" : "100%";
103
- }, function (props) {
104
- return props.theme.thickness;
105
- }, function (props) {
106
- return props.theme.totalLineColor;
107
- }, function (props) {
108
- return props.theme.borderRadius;
109
- }, function (props) {
110
- return props.helperText !== "" && "8px";
111
- }, function (props) {
112
- return props.backgroundType === "dark" ? props.theme.trackLineColorOnDark : props.theme.trackLineColor;
113
97
  }, function (props) {
114
98
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
115
99
  }, function (props) {
@@ -151,7 +135,7 @@ var ProgressBarProgress = _styledComponents["default"].div(_templateObject5 || (
151
135
  }, function (props) {
152
136
  return props.backgroundType === "dark" ? props.theme.valueFontColorOnDark : props.overlay === true ? "#FFFFFF" : props.theme.valueFontColor;
153
137
  }, function (props) {
154
- return props.value !== "" && props.showValue === true && "block" || "none";
138
+ return props.value !== undefined && props.value !== null && props.showValue === true && "block" || "none";
155
139
  });
156
140
 
157
141
  var HelperText = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: 1.5em;\n"])), function (props) {
@@ -166,5 +150,27 @@ var HelperText = _styledComponents["default"].span(_templateObject6 || (_templat
166
150
  return props.theme.helperTextFontWeight;
167
151
  });
168
152
 
153
+ var LinearProgress = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n height: ", ";\n background-color: ", ";\n border-radius: ", ";\n margin-bottom: ", ";\n overflow: hidden;\n position: relative;\n"])), function (props) {
154
+ return props.theme.thickness;
155
+ }, function (props) {
156
+ return props.theme.totalLineColor;
157
+ }, function (props) {
158
+ return props.theme.borderRadius;
159
+ }, function (props) {
160
+ return props.helperText !== "" && "8px";
161
+ });
162
+
163
+ var LinearProgressBar = _styledComponents["default"].span(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n background-color: ", ";\n transform: ", ";\n top: 0;\n left: 0;\n width: 100%;\n bottom: 0;\n position: absolute;\n transition: ", ";\n transform-origin: left;\n ", ";\n ", ";\n\n @keyframes keyframes-indeterminate-first {\n 0% {\n left: -35%;\n right: 100%;\n }\n 60% {\n left: 100%;\n right: -90%;\n }\n 100% {\n left: 100%;\n right: -90%;\n }\n }\n\n @keyframes keyframes-indeterminate-second {\n 0% {\n left: -200%;\n right: 100%;\n }\n 60% {\n left: 107%;\n right: -8%;\n }\n 100% {\n left: 107%;\n right: -8%;\n }\n }\n"])), function (props) {
164
+ return props.backgroundType === "dark" ? props.theme.trackLineColorOnDark : props.theme.trackLineColor;
165
+ }, function (props) {
166
+ return "translateX(-".concat(props.variant === "determinate" ? 100 - props.value : 0, "%)");
167
+ }, function (props) {
168
+ return props.variant === "determinate" ? "transform .4s linear" : "transform 0.2s linear";
169
+ }, function (props) {
170
+ return props.variant === "indeterminate" && "width: auto;";
171
+ }, function (props) {
172
+ return props.variant === "indeterminate" ? props.container === "first" ? "animation: keyframes-indeterminate-first 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;" : "animation: keyframes-indeterminate-second 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite;" : "";
173
+ });
174
+
169
175
  var _default = DxcProgressBar;
170
176
  exports["default"] = _default;
@@ -14,9 +14,11 @@ export const Chromatic = () => (
14
14
  <Title title="Without labels" theme="light" level={4} />
15
15
  <DxcProgressBar value={50} showValue />
16
16
  <Title title="With helperText" theme="light" level={4} />
17
- <DxcProgressBar helperText="Helper text" value={50} showValue />
17
+ <DxcProgressBar helperText="Helper text" value={24} showValue />
18
18
  <Title title="Without default value" theme="light" level={4} />
19
19
  <DxcProgressBar label="Loading..." showValue />
20
+ <Title title="With full value" theme="light" level={4} />
21
+ <DxcProgressBar label="Loading..." value={100} showValue />
20
22
  </ExampleContainer>
21
23
  <Title title="Margins" theme="light" level={2} />
22
24
  <ExampleContainer>
@@ -9,57 +9,102 @@ var _react2 = require("@testing-library/react");
9
9
  var _ProgressBar = _interopRequireDefault(require("./ProgressBar"));
10
10
 
11
11
  describe("ProgressBar component tests", function () {
12
- test("ProgressBar renders with label", function () {
12
+ test("ProgressBar renders with label and helperText", function () {
13
13
  var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ProgressBar["default"], {
14
- label: "test-label"
14
+ label: "test-label",
15
+ helperText: "helper-text"
15
16
  })),
16
17
  getByText = _render.getByText;
17
18
 
18
19
  expect(getByText("test-label")).toBeTruthy();
20
+ expect(getByText("helper-text")).toBeTruthy();
19
21
  });
20
- test("Overlay progressBar renders with label", function () {
22
+ test("ProgressBar renders with default value", function () {
23
+ var value = 0;
24
+
21
25
  var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ProgressBar["default"], {
22
- label: "test-label",
23
- overlay: true
26
+ showValue: true
24
27
  })),
25
- getByText = _render2.getByText;
28
+ getByText = _render2.getByText,
29
+ getByRole = _render2.getByRole;
26
30
 
27
- expect(getByText("test-label")).toBeTruthy();
31
+ var progressBar = getByRole("progressbar");
32
+ expect(getByText("0 %")).toBeTruthy();
33
+ expect(progressBar.getAttribute("aria-valuenow")).toEqual(value.toString());
28
34
  });
29
- test("ProgressBar renders with default value", function () {
35
+ test("ProgressBar renders with value", function () {
36
+ var value = 25;
37
+
30
38
  var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ProgressBar["default"], {
31
- showValue: true
39
+ showValue: true,
40
+ value: value
32
41
  })),
33
- getByText = _render3.getByText;
42
+ getByText = _render3.getByText,
43
+ getByRole = _render3.getByRole;
34
44
 
35
- expect(getByText("0 %")).toBeTruthy();
45
+ var progressBar = getByRole("progressbar");
46
+ expect(getByText("25 %")).toBeTruthy();
47
+ expect(progressBar.getAttribute("aria-valuenow")).toEqual(value.toString());
36
48
  });
37
- test("Overlay progressBar renders with default value", function () {
49
+ test("ProgressBar renders with negative value", function () {
50
+ var value = 0;
51
+
38
52
  var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ProgressBar["default"], {
39
53
  showValue: true,
40
- overlay: true
54
+ value: -20
41
55
  })),
42
- getByText = _render4.getByText;
56
+ getByText = _render4.getByText,
57
+ getByRole = _render4.getByRole;
43
58
 
59
+ var progressBar = getByRole("progressbar");
44
60
  expect(getByText("0 %")).toBeTruthy();
61
+ expect(progressBar.getAttribute("aria-valuenow")).toEqual(value.toString());
45
62
  });
46
- test("ProgressBar renders with value", function () {
47
- var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ProgressBar["default"], {
63
+ test("ProgressBar renders as indeterminate", function () {
64
+ var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ProgressBar["default"], null)),
65
+ getByRole = _render5.getByRole;
66
+
67
+ var progressBar = getByRole("progressbar");
68
+ expect(progressBar.getAttribute("aria-valuenow")).toBe(null);
69
+ });
70
+ test("Overlay progressBar renders with label and helperText", function () {
71
+ var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ProgressBar["default"], {
72
+ label: "test-label",
73
+ helperText: "helper-text",
74
+ overlay: true
75
+ })),
76
+ getByText = _render6.getByText;
77
+
78
+ expect(getByText("test-label")).toBeTruthy();
79
+ expect(getByText("helper-text")).toBeTruthy();
80
+ });
81
+ test("Overlay progressBar renders with default value", function () {
82
+ var value = 0;
83
+
84
+ var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ProgressBar["default"], {
48
85
  showValue: true,
49
- value: 25
86
+ overlay: true
50
87
  })),
51
- getByText = _render5.getByText;
88
+ getByText = _render7.getByText,
89
+ getByRole = _render7.getByRole;
52
90
 
53
- expect(getByText("25 %")).toBeTruthy();
91
+ var progressBar = getByRole("progressbar");
92
+ expect(getByText("0 %")).toBeTruthy();
93
+ expect(progressBar.getAttribute("aria-valuenow")).toEqual(value.toString());
54
94
  });
55
95
  test("Overlay progressBar renders with value", function () {
56
- var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ProgressBar["default"], {
96
+ var value = 25;
97
+
98
+ var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ProgressBar["default"], {
57
99
  showValue: true,
58
- value: 25,
100
+ value: value,
59
101
  overlay: true
60
102
  })),
61
- getByText = _render6.getByText;
103
+ getByText = _render8.getByText,
104
+ getByRole = _render8.getByRole;
62
105
 
106
+ var progressBar = getByRole("progressbar");
63
107
  expect(getByText("25 %")).toBeTruthy();
108
+ expect(progressBar.getAttribute("aria-valuenow")).toEqual(value.toString());
64
109
  });
65
110
  });
@@ -1,11 +1,11 @@
1
- declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
2
- declare type Size = {
1
+ export declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
2
+ export declare type Size = {
3
3
  top?: Space;
4
4
  bottom?: Space;
5
5
  left?: Space;
6
6
  right?: Space;
7
7
  };
8
- declare type Props = {
8
+ export declare type Props = {
9
9
  /**
10
10
  * Text to be placed above the progress bar.
11
11
  */
@@ -34,4 +34,3 @@ declare type Props = {
34
34
  */
35
35
  margin?: Space | Size;
36
36
  };
37
- export default Props;