@dxc-technology/halstack-react 0.0.0-63ee6f9 → 0.0.0-64ec938

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 (163) hide show
  1. package/HalstackContext.d.ts +12 -0
  2. package/HalstackContext.js +295 -0
  3. package/accordion/Accordion.d.ts +1 -1
  4. package/accordion/Accordion.js +7 -28
  5. package/accordion/Accordion.stories.tsx +12 -12
  6. package/accordion/Accordion.test.js +19 -4
  7. package/accordion/types.d.ts +4 -0
  8. package/accordion-group/AccordionGroup.d.ts +1 -1
  9. package/accordion-group/AccordionGroup.js +14 -15
  10. package/accordion-group/AccordionGroup.stories.tsx +1 -1
  11. package/accordion-group/AccordionGroup.test.js +24 -6
  12. package/accordion-group/types.d.ts +4 -0
  13. package/alert/Alert.js +4 -1
  14. package/badge/Badge.d.ts +1 -1
  15. package/badge/Badge.js +5 -3
  16. package/badge/types.d.ts +1 -0
  17. package/bleed/Bleed.js +1 -34
  18. package/bleed/Bleed.stories.tsx +94 -95
  19. package/bleed/types.d.ts +1 -1
  20. package/box/Box.js +22 -32
  21. package/bulleted-list/BulletedList.d.ts +7 -0
  22. package/bulleted-list/BulletedList.js +123 -0
  23. package/bulleted-list/BulletedList.stories.tsx +200 -0
  24. package/bulleted-list/types.d.ts +11 -0
  25. package/{list → bulleted-list}/types.js +0 -0
  26. package/button/Button.js +14 -11
  27. package/card/Card.js +24 -27
  28. package/checkbox/Checkbox.d.ts +1 -1
  29. package/checkbox/Checkbox.js +38 -28
  30. package/checkbox/Checkbox.stories.tsx +124 -128
  31. package/checkbox/types.d.ts +3 -3
  32. package/common/variables.js +197 -84
  33. package/date-input/DateInput.js +38 -20
  34. package/date-input/DateInput.test.js +9 -22
  35. package/date-input/types.d.ts +12 -9
  36. package/dialog/Dialog.js +4 -32
  37. package/dropdown/Dropdown.js +13 -17
  38. package/dropdown/Dropdown.stories.tsx +1 -1
  39. package/file-input/FileInput.js +9 -6
  40. package/file-input/FileItem.js +7 -5
  41. package/flex/Flex.d.ts +3 -0
  42. package/flex/Flex.js +74 -0
  43. package/flex/Flex.stories.tsx +103 -0
  44. package/flex/types.d.ts +21 -0
  45. package/{radio → flex}/types.js +0 -0
  46. package/footer/Footer.js +15 -88
  47. package/footer/Icons.js +1 -1
  48. package/header/Header.js +27 -48
  49. package/header/Header.stories.tsx +46 -36
  50. package/header/Header.test.js +18 -2
  51. package/inset/Inset.js +1 -34
  52. package/inset/Inset.stories.tsx +36 -36
  53. package/inset/types.d.ts +25 -1
  54. package/layout/ApplicationLayout.d.ts +4 -3
  55. package/layout/ApplicationLayout.js +68 -113
  56. package/layout/ApplicationLayout.stories.tsx +14 -59
  57. package/layout/Icons.d.ts +5 -0
  58. package/layout/Icons.js +13 -2
  59. package/layout/SidenavContext.d.ts +5 -0
  60. package/layout/SidenavContext.js +19 -0
  61. package/layout/types.d.ts +5 -10
  62. package/link/Link.d.ts +3 -2
  63. package/link/Link.js +57 -74
  64. package/link/Link.stories.tsx +88 -53
  65. package/link/Link.test.js +7 -15
  66. package/link/types.d.ts +7 -23
  67. package/main.d.ts +8 -5
  68. package/main.js +51 -21
  69. package/number-input/NumberInput.test.js +2 -4
  70. package/number-input/types.d.ts +13 -10
  71. package/package.json +7 -5
  72. package/paginator/Paginator.js +17 -38
  73. package/paginator/Paginator.test.js +42 -0
  74. package/paragraph/Paragraph.d.ts +6 -0
  75. package/paragraph/Paragraph.js +38 -0
  76. package/paragraph/Paragraph.stories.tsx +44 -0
  77. package/password-input/PasswordInput.js +7 -4
  78. package/password-input/PasswordInput.test.js +3 -6
  79. package/password-input/types.d.ts +14 -11
  80. package/progress-bar/ProgressBar.js +1 -1
  81. package/progress-bar/ProgressBar.stories.jsx +11 -11
  82. package/quick-nav/QuickNav.d.ts +4 -0
  83. package/quick-nav/QuickNav.js +118 -0
  84. package/quick-nav/QuickNav.stories.tsx +264 -0
  85. package/quick-nav/types.d.ts +21 -0
  86. package/quick-nav/types.js +5 -0
  87. package/radio-group/Radio.js +1 -1
  88. package/radio-group/RadioGroup.js +10 -7
  89. package/resultsetTable/ResultsetTable.test.js +42 -0
  90. package/select/Listbox.d.ts +4 -0
  91. package/select/Listbox.js +175 -0
  92. package/select/Option.js +1 -1
  93. package/select/Select.js +106 -186
  94. package/select/Select.stories.tsx +144 -100
  95. package/select/Select.test.js +377 -231
  96. package/select/types.d.ts +32 -11
  97. package/sidenav/Sidenav.d.ts +1 -1
  98. package/sidenav/Sidenav.js +20 -9
  99. package/slider/Slider.d.ts +1 -1
  100. package/slider/Slider.js +2 -1
  101. package/slider/Slider.stories.tsx +8 -8
  102. package/slider/Slider.test.js +31 -10
  103. package/slider/types.d.ts +4 -0
  104. package/spinner/Spinner.js +1 -1
  105. package/stack/Stack.d.ts +2 -1
  106. package/stack/Stack.js +29 -70
  107. package/stack/Stack.stories.tsx +189 -90
  108. package/stack/types.d.ts +15 -7
  109. package/switch/Switch.d.ts +1 -1
  110. package/switch/Switch.js +35 -19
  111. package/switch/Switch.stories.tsx +14 -14
  112. package/switch/Switch.test.js +25 -0
  113. package/switch/types.d.ts +6 -2
  114. package/tabs/Tabs.d.ts +1 -1
  115. package/tabs/Tabs.js +9 -11
  116. package/tabs/Tabs.stories.tsx +0 -8
  117. package/tabs/Tabs.test.js +26 -9
  118. package/tabs/types.d.ts +4 -0
  119. package/tabs-nav/NavTabs.d.ts +8 -0
  120. package/tabs-nav/NavTabs.js +125 -0
  121. package/tabs-nav/NavTabs.stories.tsx +170 -0
  122. package/tabs-nav/NavTabs.test.js +82 -0
  123. package/tabs-nav/Tab.d.ts +4 -0
  124. package/tabs-nav/Tab.js +132 -0
  125. package/tabs-nav/types.d.ts +53 -0
  126. package/tabs-nav/types.js +5 -0
  127. package/tag/Tag.js +5 -8
  128. package/text-input/Suggestion.d.ts +4 -0
  129. package/text-input/Suggestion.js +55 -0
  130. package/text-input/TextInput.js +48 -76
  131. package/text-input/TextInput.test.js +22 -35
  132. package/text-input/types.d.ts +27 -12
  133. package/textarea/Textarea.js +12 -23
  134. package/textarea/Textarea.test.js +10 -20
  135. package/textarea/types.d.ts +14 -11
  136. package/toggle-group/ToggleGroup.d.ts +1 -1
  137. package/toggle-group/ToggleGroup.js +5 -4
  138. package/toggle-group/ToggleGroup.stories.tsx +4 -4
  139. package/toggle-group/ToggleGroup.test.js +35 -4
  140. package/toggle-group/types.d.ts +8 -0
  141. package/typography/Typography.d.ts +4 -0
  142. package/typography/Typography.js +131 -0
  143. package/typography/Typography.stories.tsx +198 -0
  144. package/typography/types.d.ts +18 -0
  145. package/typography/types.js +5 -0
  146. package/useTheme.js +2 -2
  147. package/useTranslatedLabels.d.ts +2 -0
  148. package/useTranslatedLabels.js +20 -0
  149. package/wizard/Wizard.js +35 -29
  150. package/ThemeContext.d.ts +0 -10
  151. package/ThemeContext.js +0 -243
  152. package/list/List.d.ts +0 -4
  153. package/list/List.js +0 -47
  154. package/list/List.stories.tsx +0 -95
  155. package/list/types.d.ts +0 -7
  156. package/radio/Radio.d.ts +0 -4
  157. package/radio/Radio.js +0 -174
  158. package/radio/Radio.stories.tsx +0 -192
  159. package/radio/Radio.test.js +0 -71
  160. package/radio/types.d.ts +0 -54
  161. package/text/Text.d.ts +0 -7
  162. package/text/Text.js +0 -30
  163. package/text/Text.stories.tsx +0 -19
package/link/Link.test.js CHANGED
@@ -10,49 +10,43 @@ var _Link = _interopRequireDefault(require("./Link"));
10
10
 
11
11
  describe("Link component tests", function () {
12
12
  test("Link renders with correct text", function () {
13
- var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Link["default"], {
14
- text: "Link"
15
- })),
13
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Link["default"], null, "Link")),
16
14
  getByText = _render.getByText;
17
15
 
18
16
  expect(getByText("Link")).toBeTruthy();
19
17
  });
20
18
  test("Link renders with correct href", function () {
21
19
  var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Link["default"], {
22
- text: "Link",
23
20
  href: "/testPage"
24
- })),
21
+ }, "Link")),
25
22
  getByRole = _render2.getByRole;
26
23
 
27
24
  expect(getByRole("link").getAttribute("href")).toEqual("/testPage");
28
25
  });
29
26
  test("Link renders with correct disabled state", function () {
30
27
  var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Link["default"], {
31
- text: "Link",
32
28
  href: "/testPage",
33
29
  disabled: true
34
- })),
30
+ }, "Link")),
35
31
  getByText = _render3.getByText;
36
32
 
37
33
  expect(getByText("Link").hasAttribute("href")).toBeFalsy();
38
34
 
39
35
  var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Link["default"], {
40
- text: "LinkButton",
41
36
  onClick: function onClick() {
42
37
  return console.log("Andorra");
43
38
  },
44
39
  disabled: true
45
- })),
40
+ }, "LinkButton")),
46
41
  getByTextLinkButton = _render4.getByText;
47
42
 
48
43
  expect(getByTextLinkButton("LinkButton").hasAttribute("onclick")).toBeFalsy();
49
44
  });
50
45
  test("Link open new tab", function () {
51
46
  var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Link["default"], {
52
- text: "Link",
53
47
  href: "/testPage",
54
48
  newWindow: true
55
- })),
49
+ }, "Link")),
56
50
  getByRole = _render5.getByRole;
57
51
 
58
52
  expect(getByRole("link").getAttribute("target")).toEqual("_blank");
@@ -61,9 +55,8 @@ describe("Link component tests", function () {
61
55
  var onClick = jest.fn();
62
56
 
63
57
  var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Link["default"], {
64
- text: "Link",
65
58
  onClick: onClick
66
- })),
59
+ }, "Link")),
67
60
  getByText = _render6.getByText;
68
61
 
69
62
  var link = getByText("Link");
@@ -76,10 +69,9 @@ describe("Link component tests", function () {
76
69
  var onClick = jest.fn();
77
70
 
78
71
  var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Link["default"], {
79
- text: "Link",
80
72
  onClick: onClick,
81
73
  disabled: true
82
- })),
74
+ }, "Link")),
83
75
  getByText = _render7.getByText;
84
76
 
85
77
  var link = getByText("Link");
package/link/types.d.ts CHANGED
@@ -1,12 +1,13 @@
1
1
  /// <reference types="react" />
2
- declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
- declare type Margin = {
2
+ export declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
+ export declare type Margin = {
4
4
  top?: Space;
5
5
  bottom?: Space;
6
6
  left?: Space;
7
7
  right?: Space;
8
8
  };
9
- declare type LinkCommonProps = {
9
+ declare type SVG = React.SVGProps<SVGSVGElement>;
10
+ export declare type LinkProps = {
10
11
  /**
11
12
  * If true, the color is inherited from parent.
12
13
  */
@@ -41,30 +42,13 @@ declare type LinkCommonProps = {
41
42
  * Value of the tabindex.
42
43
  */
43
44
  tabIndex?: number;
44
- };
45
- export declare type LinkTextProps = LinkCommonProps & {
46
45
  /**
47
- * Link text.
46
+ * Content of the link.
48
47
  */
49
- text: string;
48
+ children: string;
50
49
  /**
51
50
  * Element or path used as the icon that will be placed next to the link text.
52
51
  */
53
52
  icon?: string | SVG;
54
53
  };
55
- export declare type LinkIconProps = LinkCommonProps & {
56
- /**
57
- * Link text.
58
- */
59
- text?: string;
60
- /**
61
- * Element or path used as the icon that will be placed next to the link text.
62
- */
63
- icon: string | SVG;
64
- };
65
- declare type Overload = {
66
- (props: LinkTextProps): JSX.Element;
67
- (props: LinkIconProps): JSX.Element;
68
- };
69
- declare type SVG = React.SVGProps<SVGSVGElement>;
70
- export default Overload;
54
+ export {};
package/main.d.ts CHANGED
@@ -7,7 +7,6 @@ import DxcDialog from "./dialog/Dialog";
7
7
  import DxcDropdown from "./dropdown/Dropdown";
8
8
  import DxcFooter from "./footer/Footer";
9
9
  import DxcHeader from "./header/Header";
10
- import DxcRadio from "./radio/Radio";
11
10
  import DxcSlider from "./slider/Slider";
12
11
  import DxcSwitch from "./switch/Switch";
13
12
  import DxcTabs from "./tabs/Tabs";
@@ -36,11 +35,15 @@ import DxcSelect from "./select/Select";
36
35
  import DxcFileInput from "./file-input/FileInput";
37
36
  import DxcStack from "./stack/Stack";
38
37
  import DxcRow from "./row/Row";
39
- import DxcText from "./text/Text";
40
- import DxcList from "./list/List";
41
38
  import DxcRadioGroup from "./radio-group/RadioGroup";
42
39
  import DxcBleed from "./bleed/Bleed";
43
40
  import DxcInset from "./inset/Inset";
44
- import ThemeContext, { ThemeProvider } from "./ThemeContext";
41
+ import DxcQuickNav from "./quick-nav/QuickNav";
42
+ import DxcNavTabs from "./tabs-nav/NavTabs";
43
+ import DxcFlex from "./flex/Flex";
44
+ import DxcTypography from "./typography/Typography";
45
+ import DxcParagraph from "./paragraph/Paragraph";
46
+ import DxcBulletedList from "./bulleted-list/BulletedList";
47
+ import HalstackContext, { HalstackProvider, HalstackLanguageContext } from "./HalstackContext";
45
48
  import { BackgroundColorProvider } from "./BackgroundColorContext";
46
- export { DxcAlert, DxcButton, DxcFooter, DxcCheckbox, DxcTextInput, DxcDropdown, DxcSwitch, DxcSlider, DxcRadio, DxcHeader, DxcTable, DxcTabs, DxcToggleGroup, DxcDialog, DxcCard, DxcProgressBar, DxcAccordion, DxcSpinner, DxcBox, DxcTag, DxcPaginator, DxcSidenav, DxcWizard, DxcLink, DxcHeading, DxcResultsetTable, DxcChip, DxcApplicationLayout, ThemeContext, ThemeProvider, BackgroundColorProvider, DxcAccordionGroup, DxcBadge, DxcPasswordInput, DxcDateInput, DxcNumberInput, DxcTextarea, DxcSelect, DxcFileInput, DxcStack, DxcRow, DxcText, DxcList, DxcRadioGroup, DxcBleed, DxcInset };
49
+ export { DxcAlert, DxcButton, DxcFooter, DxcCheckbox, DxcTextInput, DxcDropdown, DxcSwitch, DxcSlider, DxcHeader, DxcTable, DxcTabs, DxcToggleGroup, DxcDialog, DxcCard, DxcProgressBar, DxcAccordion, DxcSpinner, DxcBox, DxcTag, DxcPaginator, DxcSidenav, DxcWizard, DxcLink, DxcHeading, DxcResultsetTable, DxcChip, DxcApplicationLayout, HalstackContext, HalstackLanguageContext, HalstackProvider, BackgroundColorProvider, DxcAccordionGroup, DxcBadge, DxcPasswordInput, DxcDateInput, DxcNumberInput, DxcTextarea, DxcSelect, DxcFileInput, DxcStack, DxcRow, DxcRadioGroup, DxcBleed, DxcInset, DxcQuickNav, DxcNavTabs, DxcFlex, DxcTypography, DxcParagraph, DxcBulletedList, };
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() {
@@ -103,6 +109,12 @@ Object.defineProperty(exports, "DxcFileInput", {
103
109
  return _FileInput["default"];
104
110
  }
105
111
  });
112
+ Object.defineProperty(exports, "DxcFlex", {
113
+ enumerable: true,
114
+ get: function get() {
115
+ return _Flex["default"];
116
+ }
117
+ });
106
118
  Object.defineProperty(exports, "DxcFooter", {
107
119
  enumerable: true,
108
120
  get: function get() {
@@ -133,10 +145,10 @@ Object.defineProperty(exports, "DxcLink", {
133
145
  return _Link["default"];
134
146
  }
135
147
  });
136
- Object.defineProperty(exports, "DxcList", {
148
+ Object.defineProperty(exports, "DxcNavTabs", {
137
149
  enumerable: true,
138
150
  get: function get() {
139
- return _List["default"];
151
+ return _NavTabs["default"];
140
152
  }
141
153
  });
142
154
  Object.defineProperty(exports, "DxcNumberInput", {
@@ -151,6 +163,12 @@ Object.defineProperty(exports, "DxcPaginator", {
151
163
  return _Paginator["default"];
152
164
  }
153
165
  });
166
+ Object.defineProperty(exports, "DxcParagraph", {
167
+ enumerable: true,
168
+ get: function get() {
169
+ return _Paragraph["default"];
170
+ }
171
+ });
154
172
  Object.defineProperty(exports, "DxcPasswordInput", {
155
173
  enumerable: true,
156
174
  get: function get() {
@@ -163,10 +181,10 @@ Object.defineProperty(exports, "DxcProgressBar", {
163
181
  return _ProgressBar["default"];
164
182
  }
165
183
  });
166
- Object.defineProperty(exports, "DxcRadio", {
184
+ Object.defineProperty(exports, "DxcQuickNav", {
167
185
  enumerable: true,
168
186
  get: function get() {
169
- return _Radio["default"];
187
+ return _QuickNav["default"];
170
188
  }
171
189
  });
172
190
  Object.defineProperty(exports, "DxcRadioGroup", {
@@ -241,12 +259,6 @@ Object.defineProperty(exports, "DxcTag", {
241
259
  return _Tag["default"];
242
260
  }
243
261
  });
244
- Object.defineProperty(exports, "DxcText", {
245
- enumerable: true,
246
- get: function get() {
247
- return _Text["default"];
248
- }
249
- });
250
262
  Object.defineProperty(exports, "DxcTextInput", {
251
263
  enumerable: true,
252
264
  get: function get() {
@@ -265,22 +277,34 @@ Object.defineProperty(exports, "DxcToggleGroup", {
265
277
  return _ToggleGroup["default"];
266
278
  }
267
279
  });
280
+ Object.defineProperty(exports, "DxcTypography", {
281
+ enumerable: true,
282
+ get: function get() {
283
+ return _Typography["default"];
284
+ }
285
+ });
268
286
  Object.defineProperty(exports, "DxcWizard", {
269
287
  enumerable: true,
270
288
  get: function get() {
271
289
  return _Wizard["default"];
272
290
  }
273
291
  });
274
- Object.defineProperty(exports, "ThemeContext", {
292
+ Object.defineProperty(exports, "HalstackContext", {
293
+ enumerable: true,
294
+ get: function get() {
295
+ return _HalstackContext["default"];
296
+ }
297
+ });
298
+ Object.defineProperty(exports, "HalstackLanguageContext", {
275
299
  enumerable: true,
276
300
  get: function get() {
277
- return _ThemeContext["default"];
301
+ return _HalstackContext.HalstackLanguageContext;
278
302
  }
279
303
  });
280
- Object.defineProperty(exports, "ThemeProvider", {
304
+ Object.defineProperty(exports, "HalstackProvider", {
281
305
  enumerable: true,
282
306
  get: function get() {
283
- return _ThemeContext.ThemeProvider;
307
+ return _HalstackContext.HalstackProvider;
284
308
  }
285
309
  });
286
310
 
@@ -302,8 +326,6 @@ var _Footer = _interopRequireDefault(require("./footer/Footer"));
302
326
 
303
327
  var _Header = _interopRequireDefault(require("./header/Header"));
304
328
 
305
- var _Radio = _interopRequireDefault(require("./radio/Radio"));
306
-
307
329
  var _Slider = _interopRequireDefault(require("./slider/Slider"));
308
330
 
309
331
  var _Switch = _interopRequireDefault(require("./switch/Switch"));
@@ -360,17 +382,25 @@ var _Stack = _interopRequireDefault(require("./stack/Stack"));
360
382
 
361
383
  var _Row = _interopRequireDefault(require("./row/Row"));
362
384
 
363
- var _Text = _interopRequireDefault(require("./text/Text"));
364
-
365
- var _List = _interopRequireDefault(require("./list/List"));
366
-
367
385
  var _RadioGroup = _interopRequireDefault(require("./radio-group/RadioGroup"));
368
386
 
369
387
  var _Bleed = _interopRequireDefault(require("./bleed/Bleed"));
370
388
 
371
389
  var _Inset = _interopRequireDefault(require("./inset/Inset"));
372
390
 
373
- var _ThemeContext = _interopRequireWildcard(require("./ThemeContext"));
391
+ var _QuickNav = _interopRequireDefault(require("./quick-nav/QuickNav"));
392
+
393
+ var _NavTabs = _interopRequireDefault(require("./tabs-nav/NavTabs"));
394
+
395
+ var _Flex = _interopRequireDefault(require("./flex/Flex"));
396
+
397
+ var _Typography = _interopRequireDefault(require("./typography/Typography"));
398
+
399
+ var _Paragraph = _interopRequireDefault(require("./paragraph/Paragraph"));
400
+
401
+ var _BulletedList = _interopRequireDefault(require("./bulleted-list/BulletedList"));
402
+
403
+ var _HalstackContext = _interopRequireWildcard(require("./HalstackContext"));
374
404
 
375
405
  var _BackgroundColorContext = require("./BackgroundColorContext");
376
406
 
@@ -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-63ee6f9",
3
+ "version": "0.0.0-64ec938",
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,26 +18,27 @@
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",
25
25
  "@material-ui/pickers": "3.2.2",
26
26
  "@material-ui/styles": "4.0.2",
27
+ "@radix-ui/react-popover": "^0.1.6",
27
28
  "@types/styled-components": "^5.1.24",
28
29
  "@types/uuid": "^8.3.4",
29
30
  "color": "^3.1.3",
30
- "date-fns": "^2.0.0-beta.4",
31
- "moment": "2.24.0",
31
+ "dayjs": "^1.11.1",
32
32
  "prop-types": "^15.7.2",
33
33
  "rgb-hex": "^3.0.0",
34
+ "slugify": "^1.6.5",
34
35
  "uuid": "^8.3.2"
35
36
  },
36
37
  "scripts": {
37
38
  "test": "jest",
38
39
  "test:watch": "npm test -- --watch --coverage",
39
40
  "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",
41
+ "build:watch": "babel src --watch --extensions .js,.jsx,.ts,.tsx --out-dir ../dist --copy-files --verbose",
41
42
  "storybook": "start-storybook -p 6006",
42
43
  "build-storybook": "build-storybook"
43
44
  },
@@ -57,6 +58,7 @@
57
58
  "@storybook/testing-library": "0.0.7",
58
59
  "@testing-library/react": "^11.2.5",
59
60
  "@testing-library/user-event": "^12.6.3",
61
+ "@types/react": "16.9.5",
60
62
  "babel-jest": "^24.8.0",
61
63
  "babel-loader": "^8.0.6",
62
64
  "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
 
@@ -2,6 +2,10 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
6
+
7
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
8
+
5
9
  var _react = _interopRequireDefault(require("react"));
6
10
 
7
11
  var _react2 = require("@testing-library/react");
@@ -10,6 +14,44 @@ var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
10
14
 
11
15
  var _Paginator = _interopRequireDefault(require("./Paginator"));
12
16
 
17
+ // Mocking DOMRect for Radix Primitive Popover
18
+ global.globalThis = global;
19
+
20
+ global.ResizeObserver = /*#__PURE__*/function () {
21
+ function ResizeObserver(cb) {
22
+ (0, _classCallCheck2["default"])(this, ResizeObserver);
23
+ this.cb = cb;
24
+ }
25
+
26
+ (0, _createClass2["default"])(ResizeObserver, [{
27
+ key: "observe",
28
+ value: function observe() {
29
+ this.cb([{
30
+ borderBoxSize: {
31
+ inlineSize: 0,
32
+ blockSize: 0
33
+ }
34
+ }]);
35
+ }
36
+ }, {
37
+ key: "unobserve",
38
+ value: function unobserve() {}
39
+ }]);
40
+ return ResizeObserver;
41
+ }();
42
+
43
+ global.DOMRect = {
44
+ fromRect: function fromRect() {
45
+ return {
46
+ top: 0,
47
+ left: 0,
48
+ bottom: 0,
49
+ right: 0,
50
+ width: 0,
51
+ height: 0
52
+ };
53
+ }
54
+ };
13
55
  describe("Paginator component tests", function () {
14
56
  test("Paginator renders with default values", function () {
15
57
  var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Paginator["default"], null)),
@@ -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;