@dxc-technology/halstack-react 0.0.0-fdc49d2 → 0.0.0-ff5083e

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 (145) hide show
  1. package/HalstackContext.d.ts +12 -0
  2. package/HalstackContext.js +295 -0
  3. package/accordion/Accordion.js +5 -27
  4. package/accordion/Accordion.stories.tsx +3 -3
  5. package/accordion-group/AccordionGroup.d.ts +1 -1
  6. package/accordion-group/AccordionGroup.js +13 -15
  7. package/accordion-group/AccordionGroup.stories.tsx +1 -1
  8. package/accordion-group/AccordionGroup.test.js +24 -6
  9. package/accordion-group/types.d.ts +4 -0
  10. package/alert/Alert.js +4 -1
  11. package/badge/Badge.d.ts +1 -1
  12. package/badge/Badge.js +5 -3
  13. package/badge/types.d.ts +1 -0
  14. package/bleed/Bleed.js +1 -34
  15. package/bleed/Bleed.stories.tsx +31 -32
  16. package/bleed/types.d.ts +1 -1
  17. package/box/Box.js +22 -32
  18. package/bulleted-list/BulletedList.d.ts +7 -0
  19. package/bulleted-list/BulletedList.js +120 -0
  20. package/bulleted-list/BulletedList.stories.tsx +203 -0
  21. package/bulleted-list/types.d.ts +11 -0
  22. package/{list → bulleted-list}/types.js +0 -0
  23. package/button/Button.js +14 -11
  24. package/card/Card.js +24 -27
  25. package/checkbox/Checkbox.d.ts +1 -1
  26. package/checkbox/Checkbox.js +38 -28
  27. package/checkbox/Checkbox.stories.tsx +124 -128
  28. package/checkbox/types.d.ts +3 -3
  29. package/common/variables.js +197 -84
  30. package/date-input/DateInput.js +38 -20
  31. package/date-input/DateInput.test.js +9 -22
  32. package/date-input/types.d.ts +12 -9
  33. package/dialog/Dialog.js +4 -32
  34. package/dropdown/Dropdown.js +13 -17
  35. package/file-input/FileInput.js +9 -6
  36. package/file-input/FileItem.js +7 -5
  37. package/footer/Footer.js +15 -88
  38. package/header/Header.js +27 -48
  39. package/header/Header.stories.tsx +46 -36
  40. package/header/Header.test.js +18 -2
  41. package/inset/Inset.js +1 -34
  42. package/inset/Inset.stories.tsx +32 -32
  43. package/inset/types.d.ts +25 -1
  44. package/layout/ApplicationLayout.d.ts +4 -3
  45. package/layout/ApplicationLayout.js +82 -114
  46. package/layout/ApplicationLayout.stories.tsx +14 -59
  47. package/layout/Icons.d.ts +5 -0
  48. package/layout/Icons.js +13 -2
  49. package/layout/SidenavContext.d.ts +5 -0
  50. package/layout/SidenavContext.js +19 -0
  51. package/layout/types.d.ts +5 -10
  52. package/link/Link.d.ts +3 -2
  53. package/link/Link.js +57 -74
  54. package/link/Link.stories.tsx +87 -52
  55. package/link/Link.test.js +7 -15
  56. package/link/types.d.ts +7 -23
  57. package/main.d.ts +6 -5
  58. package/main.js +37 -23
  59. package/number-input/NumberInput.test.js +2 -4
  60. package/number-input/types.d.ts +13 -10
  61. package/package.json +6 -5
  62. package/paginator/Paginator.js +17 -38
  63. package/paragraph/Paragraph.d.ts +6 -0
  64. package/paragraph/Paragraph.js +38 -0
  65. package/paragraph/Paragraph.stories.tsx +44 -0
  66. package/password-input/PasswordInput.js +7 -4
  67. package/password-input/PasswordInput.test.js +3 -6
  68. package/password-input/types.d.ts +14 -11
  69. package/progress-bar/ProgressBar.js +1 -1
  70. package/progress-bar/ProgressBar.stories.jsx +11 -11
  71. package/quick-nav/QuickNav.js +75 -23
  72. package/quick-nav/QuickNav.stories.tsx +13 -13
  73. package/quick-nav/types.d.ts +4 -8
  74. package/radio-group/Radio.js +1 -1
  75. package/radio-group/RadioGroup.js +8 -6
  76. package/select/Listbox.d.ts +4 -0
  77. package/select/Listbox.js +152 -0
  78. package/select/Option.js +1 -1
  79. package/select/Select.js +66 -161
  80. package/select/Select.stories.tsx +14 -2
  81. package/select/Select.test.js +335 -231
  82. package/select/types.d.ts +33 -11
  83. package/sidenav/Sidenav.d.ts +1 -1
  84. package/sidenav/Sidenav.js +20 -9
  85. package/slider/Slider.d.ts +1 -1
  86. package/slider/Slider.js +2 -1
  87. package/slider/Slider.stories.tsx +8 -8
  88. package/slider/Slider.test.js +31 -10
  89. package/slider/types.d.ts +4 -0
  90. package/spinner/Spinner.js +1 -1
  91. package/switch/Switch.d.ts +1 -1
  92. package/switch/Switch.js +19 -16
  93. package/switch/Switch.stories.tsx +8 -8
  94. package/switch/types.d.ts +2 -2
  95. package/tabs/Tabs.d.ts +1 -1
  96. package/tabs/Tabs.js +9 -11
  97. package/tabs/Tabs.stories.tsx +0 -8
  98. package/tabs/Tabs.test.js +26 -9
  99. package/tabs/types.d.ts +4 -0
  100. package/tabs-nav/NavTabs.d.ts +8 -0
  101. package/tabs-nav/NavTabs.js +125 -0
  102. package/tabs-nav/NavTabs.stories.tsx +170 -0
  103. package/tabs-nav/NavTabs.test.js +82 -0
  104. package/tabs-nav/Tab.d.ts +4 -0
  105. package/tabs-nav/Tab.js +132 -0
  106. package/tabs-nav/types.d.ts +53 -0
  107. package/{radio → tabs-nav}/types.js +0 -0
  108. package/tag/Tag.js +5 -8
  109. package/text-input/Suggestion.d.ts +4 -0
  110. package/text-input/Suggestion.js +55 -0
  111. package/text-input/TextInput.js +48 -76
  112. package/text-input/TextInput.test.js +22 -35
  113. package/text-input/types.d.ts +27 -12
  114. package/textarea/Textarea.js +10 -19
  115. package/textarea/types.d.ts +10 -7
  116. package/toggle-group/ToggleGroup.d.ts +1 -1
  117. package/toggle-group/ToggleGroup.js +5 -4
  118. package/toggle-group/ToggleGroup.stories.tsx +4 -4
  119. package/toggle-group/ToggleGroup.test.js +35 -4
  120. package/toggle-group/types.d.ts +8 -0
  121. package/typography/Typography.d.ts +4 -0
  122. package/typography/Typography.js +131 -0
  123. package/typography/Typography.stories.tsx +175 -0
  124. package/typography/types.d.ts +18 -0
  125. package/typography/types.js +5 -0
  126. package/typography/typographyContextTypes.d.ts +16 -0
  127. package/typography/typographyContextTypes.js +5 -0
  128. package/useTheme.js +2 -2
  129. package/useTranslatedLabels.d.ts +2 -0
  130. package/useTranslatedLabels.js +20 -0
  131. package/wizard/Wizard.js +35 -29
  132. package/ThemeContext.d.ts +0 -10
  133. package/ThemeContext.js +0 -243
  134. package/list/List.d.ts +0 -4
  135. package/list/List.js +0 -47
  136. package/list/List.stories.tsx +0 -95
  137. package/list/types.d.ts +0 -7
  138. package/radio/Radio.d.ts +0 -4
  139. package/radio/Radio.js +0 -174
  140. package/radio/Radio.stories.tsx +0 -192
  141. package/radio/Radio.test.js +0 -71
  142. package/radio/types.d.ts +0 -54
  143. package/text/Text.d.ts +0 -7
  144. package/text/Text.js +0 -30
  145. package/text/Text.stories.tsx +0 -19
package/main.js CHANGED
@@ -55,6 +55,12 @@ Object.defineProperty(exports, "DxcBox", {
55
55
  return _Box["default"];
56
56
  }
57
57
  });
58
+ Object.defineProperty(exports, "DxcBulletedList", {
59
+ enumerable: true,
60
+ get: function get() {
61
+ return _BulletedList["default"];
62
+ }
63
+ });
58
64
  Object.defineProperty(exports, "DxcButton", {
59
65
  enumerable: true,
60
66
  get: function get() {
@@ -133,10 +139,10 @@ Object.defineProperty(exports, "DxcLink", {
133
139
  return _Link["default"];
134
140
  }
135
141
  });
136
- Object.defineProperty(exports, "DxcList", {
142
+ Object.defineProperty(exports, "DxcNavTabs", {
137
143
  enumerable: true,
138
144
  get: function get() {
139
- return _List["default"];
145
+ return _NavTabs["default"];
140
146
  }
141
147
  });
142
148
  Object.defineProperty(exports, "DxcNumberInput", {
@@ -151,6 +157,12 @@ Object.defineProperty(exports, "DxcPaginator", {
151
157
  return _Paginator["default"];
152
158
  }
153
159
  });
160
+ Object.defineProperty(exports, "DxcParagraph", {
161
+ enumerable: true,
162
+ get: function get() {
163
+ return _Paragraph["default"];
164
+ }
165
+ });
154
166
  Object.defineProperty(exports, "DxcPasswordInput", {
155
167
  enumerable: true,
156
168
  get: function get() {
@@ -169,12 +181,6 @@ Object.defineProperty(exports, "DxcQuickNav", {
169
181
  return _QuickNav["default"];
170
182
  }
171
183
  });
172
- Object.defineProperty(exports, "DxcRadio", {
173
- enumerable: true,
174
- get: function get() {
175
- return _Radio["default"];
176
- }
177
- });
178
184
  Object.defineProperty(exports, "DxcRadioGroup", {
179
185
  enumerable: true,
180
186
  get: function get() {
@@ -247,12 +253,6 @@ Object.defineProperty(exports, "DxcTag", {
247
253
  return _Tag["default"];
248
254
  }
249
255
  });
250
- Object.defineProperty(exports, "DxcText", {
251
- enumerable: true,
252
- get: function get() {
253
- return _Text["default"];
254
- }
255
- });
256
256
  Object.defineProperty(exports, "DxcTextInput", {
257
257
  enumerable: true,
258
258
  get: function get() {
@@ -271,22 +271,34 @@ Object.defineProperty(exports, "DxcToggleGroup", {
271
271
  return _ToggleGroup["default"];
272
272
  }
273
273
  });
274
+ Object.defineProperty(exports, "DxcTypography", {
275
+ enumerable: true,
276
+ get: function get() {
277
+ return _Typography["default"];
278
+ }
279
+ });
274
280
  Object.defineProperty(exports, "DxcWizard", {
275
281
  enumerable: true,
276
282
  get: function get() {
277
283
  return _Wizard["default"];
278
284
  }
279
285
  });
280
- Object.defineProperty(exports, "ThemeContext", {
286
+ Object.defineProperty(exports, "HalstackContext", {
281
287
  enumerable: true,
282
288
  get: function get() {
283
- return _ThemeContext["default"];
289
+ return _HalstackContext["default"];
284
290
  }
285
291
  });
286
- Object.defineProperty(exports, "ThemeProvider", {
292
+ Object.defineProperty(exports, "HalstackLanguageContext", {
287
293
  enumerable: true,
288
294
  get: function get() {
289
- return _ThemeContext.ThemeProvider;
295
+ return _HalstackContext.HalstackLanguageContext;
296
+ }
297
+ });
298
+ Object.defineProperty(exports, "HalstackProvider", {
299
+ enumerable: true,
300
+ get: function get() {
301
+ return _HalstackContext.HalstackProvider;
290
302
  }
291
303
  });
292
304
 
@@ -308,8 +320,6 @@ var _Footer = _interopRequireDefault(require("./footer/Footer"));
308
320
 
309
321
  var _Header = _interopRequireDefault(require("./header/Header"));
310
322
 
311
- var _Radio = _interopRequireDefault(require("./radio/Radio"));
312
-
313
323
  var _Slider = _interopRequireDefault(require("./slider/Slider"));
314
324
 
315
325
  var _Switch = _interopRequireDefault(require("./switch/Switch"));
@@ -366,9 +376,9 @@ var _Stack = _interopRequireDefault(require("./stack/Stack"));
366
376
 
367
377
  var _Row = _interopRequireDefault(require("./row/Row"));
368
378
 
369
- var _Text = _interopRequireDefault(require("./text/Text"));
379
+ var _Typography = _interopRequireDefault(require("./typography/Typography"));
370
380
 
371
- var _List = _interopRequireDefault(require("./list/List"));
381
+ var _BulletedList = _interopRequireDefault(require("./bulleted-list/BulletedList"));
372
382
 
373
383
  var _RadioGroup = _interopRequireDefault(require("./radio-group/RadioGroup"));
374
384
 
@@ -378,7 +388,11 @@ var _Inset = _interopRequireDefault(require("./inset/Inset"));
378
388
 
379
389
  var _QuickNav = _interopRequireDefault(require("./quick-nav/QuickNav"));
380
390
 
381
- var _ThemeContext = _interopRequireWildcard(require("./ThemeContext"));
391
+ var _NavTabs = _interopRequireDefault(require("./tabs-nav/NavTabs"));
392
+
393
+ var _Paragraph = _interopRequireDefault(require("./paragraph/Paragraph"));
394
+
395
+ var _HalstackContext = _interopRequireWildcard(require("./HalstackContext"));
382
396
 
383
397
  var _BackgroundColorContext = require("./BackgroundColorContext");
384
398
 
@@ -135,16 +135,14 @@ describe("Number input component tests", function () {
135
135
  _userEvent["default"].type(number, "t");
136
136
 
137
137
  expect(onChange).not.toHaveBeenCalledWith({
138
- value: "t",
139
- error: null
138
+ value: "t"
140
139
  });
141
140
  expect(number.value).toBe("");
142
141
 
143
142
  _userEvent["default"].type(number, "1");
144
143
 
145
144
  expect(onChange).toHaveBeenCalledWith({
146
- value: "1",
147
- error: null
145
+ value: "1"
148
146
  });
149
147
  expect(number.value).toBe("1");
150
148
  });
@@ -54,7 +54,7 @@ declare type Props = {
54
54
  * lower than min, the onBlur and onChange functions will be called with
55
55
  * the current value and an internal error informing that the current
56
56
  * value is not correct. If a valid state is reached, the error parameter
57
- * will be null in both events.
57
+ * will not be defined in both events.
58
58
  */
59
59
  min?: number;
60
60
  /**
@@ -62,7 +62,7 @@ declare type Props = {
62
62
  * surpasses max, the onBlur and onChange functions will be called with
63
63
  * the current value and an internal error informing that the current
64
64
  * value is not correct. If a valid state is reached, the error parameter
65
- * will be null in both events.
65
+ * will not be defined in both events.
66
66
  */
67
67
  max?: number;
68
68
  /**
@@ -73,26 +73,29 @@ declare type Props = {
73
73
  * This function will be called when the user types within the input
74
74
  * element of the component. An object including the current value and
75
75
  * the error (if the value entered is not valid) will be passed to this
76
- * function. If there is no error, error will be null.
76
+ * function. If there is no error, error will not be defined.
77
77
  */
78
78
  onChange?: (val: {
79
79
  value: string;
80
- error: string | null;
80
+ error?: string;
81
81
  }) => void;
82
82
  /**
83
83
  * This function will be called when the input element loses the focus.
84
84
  * An object including the input value and the error (if the value
85
85
  * entered is not valid) will be passed to this function. If there is no error,
86
- * error will be null.
86
+ * error will not be defined.
87
87
  */
88
88
  onBlur?: (val: {
89
89
  value: string;
90
- error: string | null;
90
+ error?: string;
91
91
  }) => void;
92
92
  /**
93
- * If it is defined, the component will change its appearance, showing
94
- * the error below the input component. If it is not defined, the error
95
- * messages will be managed internally, but never displayed on its own.
93
+ * If it is a defined value and also a truthy string, the component will
94
+ * change its appearance, showing the error below the input component. If
95
+ * the defined value is an empty string, it will reserve a space below
96
+ * the component for a future error, but it would not change its look. In
97
+ * case of being undefined or null, both the appearance and the space for
98
+ * the error message would not be modified.
96
99
  */
97
100
  error?: string;
98
101
  /**
@@ -106,7 +109,7 @@ declare type Props = {
106
109
  */
107
110
  margin?: Space | Margin;
108
111
  /**
109
- * Size of the component ('small' | 'medium' | 'large' | 'fillParent').
112
+ * Size of the component.
110
113
  */
111
114
  size?: "small" | "medium" | "large" | "fillParent";
112
115
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxc-technology/halstack-react",
3
- "version": "0.0.0-fdc49d2",
3
+ "version": "0.0.0-ff5083e",
4
4
  "description": "DXC Halstack React components library",
5
5
  "repository": "dxc-technology/halstack-react",
6
6
  "homepage": "http://developer.dxc.com/tools/react",
@@ -18,7 +18,7 @@
18
18
  "styled-components": "^5.0.1"
19
19
  },
20
20
  "dependencies": {
21
- "@date-io/date-fns": "^1.3.9",
21
+ "@date-io/dayjs": "^1.3.9",
22
22
  "@material-ui/core": "4.11.1",
23
23
  "@material-ui/icons": "4.4.3",
24
24
  "@material-ui/lab": "4.0.0-alpha.17",
@@ -27,17 +27,17 @@
27
27
  "@types/styled-components": "^5.1.24",
28
28
  "@types/uuid": "^8.3.4",
29
29
  "color": "^3.1.3",
30
- "date-fns": "^2.0.0-beta.4",
31
- "moment": "2.24.0",
30
+ "dayjs": "^1.11.1",
32
31
  "prop-types": "^15.7.2",
33
32
  "rgb-hex": "^3.0.0",
33
+ "slugify": "^1.6.5",
34
34
  "uuid": "^8.3.2"
35
35
  },
36
36
  "scripts": {
37
37
  "test": "jest",
38
38
  "test:watch": "npm test -- --watch --coverage",
39
39
  "build": "babel src --extensions .js,.jsx,.ts,.tsx --out-dir ../dist --copy-files --verbose && node ../scripts/build/copy-package.js && tsc ",
40
- "build:watch": "babel src --watch --out-dir ../dist --copy-files --verbose",
40
+ "build:watch": "babel src --watch --extensions .js,.jsx,.ts,.tsx --out-dir ../dist --copy-files --verbose",
41
41
  "storybook": "start-storybook -p 6006",
42
42
  "build-storybook": "build-storybook"
43
43
  },
@@ -57,6 +57,7 @@
57
57
  "@storybook/testing-library": "0.0.7",
58
58
  "@testing-library/react": "^11.2.5",
59
59
  "@testing-library/user-event": "^12.6.3",
60
+ "@types/react": "16.9.5",
60
61
  "babel-jest": "^24.8.0",
61
62
  "babel-loader": "^8.0.6",
62
63
  "chromatic": "^6.3.3",
@@ -17,6 +17,8 @@ var _styledComponents = _interopRequireWildcard(require("styled-components"));
17
17
 
18
18
  var _useTheme = _interopRequireDefault(require("../useTheme"));
19
19
 
20
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
21
+
20
22
  var _Button = _interopRequireDefault(require("../button/Button"));
21
23
 
22
24
  var _Select = _interopRequireDefault(require("../select/Select"));
@@ -49,13 +51,14 @@ var DxcPaginator = function DxcPaginator(_ref) {
49
51
  var minItemsPerPage = currentPageInternal === 1 || currentPageInternal === 0 ? currentPageInternal : (currentPageInternal - 1) * itemsPerPage + 1;
50
52
  var maxItemsPerPage = minItemsPerPage - 1 + itemsPerPage > totalItems ? totalItems : minItemsPerPage - 1 + itemsPerPage;
51
53
  var colorsTheme = (0, _useTheme["default"])();
54
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
52
55
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
53
56
  theme: colorsTheme.paginator
54
57
  }, /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
55
58
  color: colorsTheme.paginator.backgroundColor
56
59
  }, /*#__PURE__*/_react["default"].createElement(DxcPaginatorContainer, {
57
60
  disabled: currentPageInternal === 1
58
- }, /*#__PURE__*/_react["default"].createElement(LabelsContainer, null, itemsPerPageOptions && /*#__PURE__*/_react["default"].createElement(ItemsPageContainer, null, /*#__PURE__*/_react["default"].createElement(ItemsLabel, null, "Items per page "), /*#__PURE__*/_react["default"].createElement(SelectContainer, null, /*#__PURE__*/_react["default"].createElement(_Select["default"], {
61
+ }, /*#__PURE__*/_react["default"].createElement(LabelsContainer, null, itemsPerPageOptions && /*#__PURE__*/_react["default"].createElement(ItemsPageContainer, null, /*#__PURE__*/_react["default"].createElement(ItemsLabel, null, translatedLabels.paginator.itemsPerPageText), /*#__PURE__*/_react["default"].createElement(SelectContainer, null, /*#__PURE__*/_react["default"].createElement(_Select["default"], {
59
62
  options: itemsPerPageOptions.map(function (num) {
60
63
  return {
61
64
  label: num.toString(),
@@ -68,14 +71,10 @@ var DxcPaginator = function DxcPaginator(_ref) {
68
71
  value: itemsPerPage.toString(),
69
72
  size: "fillParent",
70
73
  tabIndex: tabIndex
71
- }))), /*#__PURE__*/_react["default"].createElement(TotalItemsContainer, null, minItemsPerPage, " to ", maxItemsPerPage, " of ", totalItems), onPageChange && /*#__PURE__*/_react["default"].createElement(_Button["default"], {
74
+ }))), /*#__PURE__*/_react["default"].createElement(TotalItemsContainer, null, translatedLabels.paginator.minToMaxOfText(minItemsPerPage, maxItemsPerPage, totalItems)), onPageChange && /*#__PURE__*/_react["default"].createElement(_Button["default"], {
72
75
  size: "small",
73
76
  mode: "secondary",
74
77
  disabled: currentPageInternal === 1 || currentPageInternal === 0,
75
- margin: {
76
- left: "xxsmall",
77
- right: "xxsmall"
78
- },
79
78
  icon: _Icons.firstIcon,
80
79
  tabIndex: tabIndex,
81
80
  onClick: function onClick() {
@@ -85,16 +84,12 @@ var DxcPaginator = function DxcPaginator(_ref) {
85
84
  size: "small",
86
85
  mode: "secondary",
87
86
  disabled: currentPageInternal === 1 || currentPageInternal === 0,
88
- margin: {
89
- left: "xxsmall",
90
- right: "xxsmall"
91
- },
92
87
  icon: _Icons.previousIcon,
93
88
  tabIndex: tabIndex,
94
89
  onClick: function onClick() {
95
90
  onPageChange(currentPage - 1);
96
91
  }
97
- }), showGoToPage && /*#__PURE__*/_react["default"].createElement(PageToSelectContainer, null, /*#__PURE__*/_react["default"].createElement(GoToLabel, null, "Go to page: "), /*#__PURE__*/_react["default"].createElement(SelectContainer, null, /*#__PURE__*/_react["default"].createElement(_Select["default"], {
92
+ }), showGoToPage && /*#__PURE__*/_react["default"].createElement(PageToSelectContainer, null, /*#__PURE__*/_react["default"].createElement(GoToLabel, null, translatedLabels.paginator.goToPageText, " "), /*#__PURE__*/_react["default"].createElement(SelectContainer, null, /*#__PURE__*/_react["default"].createElement(_Select["default"], {
98
93
  options: Array.from(Array(totalPages), function (e, num) {
99
94
  return {
100
95
  label: (num + 1).toString(),
@@ -107,14 +102,10 @@ var DxcPaginator = function DxcPaginator(_ref) {
107
102
  value: currentPage.toString(),
108
103
  size: "fillParent",
109
104
  tabIndex: tabIndex
110
- }))) || /*#__PURE__*/_react["default"].createElement(TextContainer, null, "Page: ", currentPageInternal, " of ", totalPages), onPageChange && /*#__PURE__*/_react["default"].createElement(_Button["default"], {
105
+ }))) || /*#__PURE__*/_react["default"].createElement(TextContainer, null, translatedLabels.paginator.pageOfText(currentPageInternal, totalPages)), onPageChange && /*#__PURE__*/_react["default"].createElement(_Button["default"], {
111
106
  size: "small",
112
107
  mode: "secondary",
113
108
  disabled: currentPageInternal === totalPages,
114
- margin: {
115
- left: "xxsmall",
116
- right: "xxsmall"
117
- },
118
109
  icon: _Icons.nextIcon,
119
110
  tabIndex: tabIndex,
120
111
  onClick: function onClick() {
@@ -124,10 +115,6 @@ var DxcPaginator = function DxcPaginator(_ref) {
124
115
  size: "small",
125
116
  mode: "secondary",
126
117
  disabled: currentPageInternal === totalPages,
127
- margin: {
128
- left: "xxsmall",
129
- right: "xxsmall"
130
- },
131
118
  icon: _Icons.lastIcon,
132
119
  tabIndex: tabIndex,
133
120
  onClick: function onClick() {
@@ -136,11 +123,7 @@ var DxcPaginator = function DxcPaginator(_ref) {
136
123
  })))));
137
124
  };
138
125
 
139
- var DxcPaginatorContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n height: ", ";\n width: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n font-style: ", ";\n text-transform: ", ";\n background-color: ", ";\n color: ", ";\n\n button {\n &:disabled {\n background-color: transparent !important;\n opacity: 0.3 !important;\n }\n }\n"])), function (props) {
140
- return props.theme.height;
141
- }, function (props) {
142
- return props.theme.width;
143
- }, function (props) {
126
+ var DxcPaginatorContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n font-style: ", ";\n text-transform: ", ";\n background-color: ", ";\n color: ", ";\n padding: ", " ", ";\n\n button {\n &:disabled {\n background-color: transparent !important;\n opacity: 0.3 !important;\n }\n }\n"])), function (props) {
144
127
  return props.theme.fontFamily;
145
128
  }, function (props) {
146
129
  return props.theme.fontSize;
@@ -154,9 +137,13 @@ var DxcPaginatorContainer = _styledComponents["default"].div(_templateObject ||
154
137
  return props.theme.backgroundColor;
155
138
  }, function (props) {
156
139
  return props.theme.fontColor;
140
+ }, function (props) {
141
+ return props.theme.verticalPadding;
142
+ }, function (props) {
143
+ return props.theme.horizontalPadding;
157
144
  });
158
145
 
159
- var SelectContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n max-width: 100px;\n"])));
146
+ var SelectContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n min-width: 5.25rem;\n"])));
160
147
 
161
148
  var ItemsPageContainer = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n margin-right: ", ";\n margin-left: ", ";\n\n label {\n height: 0px;\n }\n label + .MuiInput-formControl {\n margin-top: 0px;\n }\n"])), function (props) {
162
149
  return props.theme.itemsPerPageSelectorMarginRight;
@@ -164,9 +151,9 @@ var ItemsPageContainer = _styledComponents["default"].span(_templateObject3 || (
164
151
  return props.theme.itemsPerPageSelectorMarginLeft;
165
152
  });
166
153
 
167
- var ItemsLabel = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n margin-right: 15px;\n"])));
154
+ var ItemsLabel = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n margin-right: 0.5rem;\n"])));
168
155
 
169
- var GoToLabel = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n margin-right: 10px;\n margin-left: 10px;\n"])));
156
+ var GoToLabel = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n margin-right: 0.5rem;\n margin-left: 1rem;\n"])));
170
157
 
171
158
  var TotalItemsContainer = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n margin-right: ", ";\n margin-left: ", ";\n"])), function (props) {
172
159
  return props.theme.totalItemsContainerMarginRight;
@@ -174,17 +161,9 @@ var TotalItemsContainer = _styledComponents["default"].span(_templateObject6 ||
174
161
  return props.theme.totalItemsContainerMarginLeft;
175
162
  });
176
163
 
177
- var LabelsContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n width: 100%;\n justify-content: flex-end;\n align-items: center;\n margin: 0 ", " 0 ", ";\n"])), function (props) {
178
- return props.theme.marginRight;
179
- }, function (props) {
180
- return props.theme.marginLeft;
181
- });
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"])));
182
165
 
183
- var PageToSelectContainer = _styledComponents["default"].span(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n margin-right: ", ";\n margin-left: ", ";\n\n label {\n height: 0px;\n }\n label + .MuiInput-formControl {\n margin-top: 0px;\n }\n"])), function (props) {
184
- return props.theme.pageSelectorMarginRight;
185
- }, function (props) {
186
- return props.theme.pageSelectorMarginLeft;
187
- });
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"])));
188
167
 
189
168
  var TextContainer = _styledComponents["default"].span(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])([""])));
190
169
 
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ declare type ParagraphPropsType = {
3
+ children: React.ReactNode;
4
+ };
5
+ declare function 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
+ 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" theme="light" 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
+ );
@@ -19,6 +19,8 @@ var _styledComponents = _interopRequireDefault(require("styled-components"));
19
19
 
20
20
  var _TextInput = _interopRequireDefault(require("../text-input/TextInput"));
21
21
 
22
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
23
+
22
24
  var _templateObject;
23
25
 
24
26
  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); }
@@ -53,6 +55,7 @@ var DxcPasswordInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref,
53
55
  setIsPasswordVisible = _useState2[1];
54
56
 
55
57
  var inputRef = (0, _react.useRef)(null);
58
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
56
59
 
57
60
  var setInputType = function setInputType(type) {
58
61
  var _inputRef$current, _inputRef$current$chi;
@@ -82,18 +85,18 @@ var DxcPasswordInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref,
82
85
  };
83
86
 
84
87
  var getIconTitle = function getIconTitle() {
85
- return isPasswordVisible ? "Hide password" : "Show password";
88
+ return isPasswordVisible ? translatedLabels.passwordInput.inputHidePasswordTitle : translatedLabels.passwordInput.inputShowPasswordTitle;
86
89
  };
87
90
 
88
91
  (0, _react.useEffect)(function () {
89
- setAriaAttributes(false, "Show password");
92
+ setAriaAttributes(false, translatedLabels.passwordInput.inputShowPasswordTitle);
90
93
 
91
94
  if (isPasswordVisible) {
92
95
  setInputType("text");
93
- setAriaAttributes(true, "Hide password");
96
+ setAriaAttributes(true, translatedLabels.passwordInput.inputHidePasswordTitle);
94
97
  } else {
95
98
  setInputType("password");
96
- setAriaAttributes(false, "Show password");
99
+ setAriaAttributes(false, translatedLabels.passwordInput.inputShowPasswordTitle);
97
100
  }
98
101
  }, [isPasswordVisible]);
99
102
 
@@ -53,8 +53,7 @@ describe("Password input component tests", function () {
53
53
  _userEvent["default"].type(passwordInput, "Pa$$w0rd");
54
54
 
55
55
  expect(onChange).toHaveBeenCalledWith({
56
- value: "P",
57
- error: null
56
+ value: "P"
58
57
  });
59
58
  expect(passwordInput.value).toBe("Pa$$w0rd");
60
59
  });
@@ -74,8 +73,7 @@ describe("Password input component tests", function () {
74
73
  _react2.fireEvent.blur(passwordInput);
75
74
 
76
75
  expect(onBlur).toHaveBeenCalledWith({
77
- value: "Pa$$w0rd",
78
- error: null
76
+ value: "Pa$$w0rd"
79
77
  });
80
78
  expect(passwordInput.value).toBe("Pa$$w0rd");
81
79
  });
@@ -171,13 +169,12 @@ describe("Password input component tests", function () {
171
169
  var passwordInput = getByRole("textbox");
172
170
  expect(passwordInput.getAttribute("aria-autocomplete")).toBeNull();
173
171
  expect(passwordInput.getAttribute("aria-controls")).toBeNull();
172
+ expect(passwordInput.getAttribute("aria-expanded")).toBeNull();
174
173
  var showButton = getByRole("button");
175
- expect(showButton.getAttribute("aria-expanded")).toBe("false");
176
174
  expect(showButton.getAttribute("aria-label")).toBe("Show password");
177
175
 
178
176
  _userEvent["default"].click(showButton);
179
177
 
180
- expect(showButton.getAttribute("aria-expanded")).toBe("true");
181
178
  expect(showButton.getAttribute("aria-label")).toBe("Hide password");
182
179
  });
183
180
  });
@@ -30,25 +30,28 @@ declare type Props = {
30
30
  * This function will be called when the user types within the input
31
31
  * element of the component. An object including the current value and
32
32
  * the error (if the value entered is not valid) will be passed to this
33
- * function. If there is no error, error will be null.
33
+ * function. If there is no error, error will not be defined.
34
34
  * */
35
35
  onChange?: (val: {
36
36
  value: string;
37
- error: string | null;
37
+ error?: string;
38
38
  }) => void;
39
39
  /**
40
40
  * This function will be called when the input element loses the focus.
41
41
  * An object including the input value and the error (if the value entered is
42
- * not valid) will be passed to this function. If there is no error, error will be null.
42
+ * not valid) will be passed to this function. If there is no error, error will not be defined.
43
43
  */
44
44
  onBlur?: (val: {
45
45
  value: string;
46
- error: string | null;
46
+ error?: string;
47
47
  }) => void;
48
48
  /**
49
- * If it is defined, the component will change its appearance, showing
50
- * the error below the password input component. If it is not defined, the
51
- * error messages will be managed internally, but never displayed on its own.
49
+ * If it is a defined value and also a truthy string, the component will
50
+ * change its appearance, showing the error below the password input
51
+ * component. If the defined value is an empty string, it will reserve a
52
+ * space below the component for a future error, but it would not change
53
+ * its look. In case of being undefined or null, both the appearance and
54
+ * the space for the error message would not be modified.
52
55
  */
53
56
  error?: string;
54
57
  /**
@@ -58,7 +61,7 @@ declare type Props = {
58
61
  * the pattern, the onBlur and onChange functions will be called with the
59
62
  * current value and an internal error informing that this value does not
60
63
  * match the pattern. If the pattern is met, the error parameter of both
61
- * events will be null.
64
+ * events will not be defined.
62
65
  */
63
66
  pattern?: string;
64
67
  /**
@@ -68,7 +71,7 @@ declare type Props = {
68
71
  * comply the minimum length, the onBlur and onChange functions will be called
69
72
  * with the current value and an internal error informing that the value
70
73
  * length does not comply the specified range. If a valid length is
71
- * reached, the error parameter of both events will be null.
74
+ * reached, the error parameter of both events will not be defined.
72
75
  */
73
76
  minLength?: number;
74
77
  /**
@@ -78,7 +81,7 @@ declare type Props = {
78
81
  * comply the maximum length, the onBlur and onChange functions will be called
79
82
  * with the current value and an internal error informing that the value
80
83
  * length does not comply the specified range. If a valid length is
81
- * reached, the error parameter of both events will be null.
84
+ * reached, the error parameter of both events will not be defined.
82
85
  */
83
86
  maxLength?: number;
84
87
  /**
@@ -92,7 +95,7 @@ declare type Props = {
92
95
  */
93
96
  margin?: Space | Margin;
94
97
  /**
95
- * Size of the component ('small' | 'medium' | 'large' | 'fillParent').
98
+ * Size of the component.
96
99
  */
97
100
  size?: "small" | "medium" | "large" | "fillParent";
98
101
  /**