@dxc-technology/halstack-react 8.0.0 → 9.0.0

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 (88) hide show
  1. package/HalstackContext.js +94 -45
  2. package/accordion/Accordion.js +7 -13
  3. package/accordion/Accordion.stories.tsx +102 -13
  4. package/alert/Alert.stories.tsx +28 -0
  5. package/box/Box.js +1 -3
  6. package/box/Box.stories.tsx +15 -0
  7. package/button/Button.js +11 -13
  8. package/button/Button.stories.tsx +150 -8
  9. package/checkbox/Checkbox.stories.tsx +52 -0
  10. package/chip/Chip.js +16 -22
  11. package/chip/Chip.stories.tsx +96 -9
  12. package/common/variables.js +280 -288
  13. package/date-input/Calendar.d.ts +1 -1
  14. package/date-input/Calendar.js +43 -43
  15. package/date-input/DateInput.js +74 -32
  16. package/date-input/DateInput.stories.tsx +183 -30
  17. package/date-input/DateInput.test.js +120 -37
  18. package/date-input/DatePicker.js +38 -52
  19. package/date-input/Icons.d.ts +6 -0
  20. package/date-input/Icons.js +75 -0
  21. package/date-input/YearPicker.d.ts +1 -1
  22. package/date-input/YearPicker.js +23 -12
  23. package/date-input/types.d.ts +6 -8
  24. package/dialog/Dialog.js +60 -73
  25. package/dialog/Dialog.stories.tsx +211 -159
  26. package/dialog/Dialog.test.js +301 -2
  27. package/dropdown/Dropdown.js +3 -6
  28. package/dropdown/Dropdown.stories.tsx +210 -84
  29. package/dropdown/DropdownMenu.js +8 -18
  30. package/dropdown/DropdownMenuItem.js +4 -15
  31. package/file-input/FileInput.js +3 -6
  32. package/file-input/FileInput.stories.tsx +85 -2
  33. package/file-input/FileInput.test.js +0 -41
  34. package/file-input/FileItem.js +1 -0
  35. package/footer/Footer.stories.tsx +91 -0
  36. package/header/Header.js +18 -20
  37. package/header/Header.stories.tsx +149 -6
  38. package/link/Link.stories.tsx +60 -0
  39. package/main.d.ts +1 -1
  40. package/main.js +1 -1
  41. package/{tabs-nav → nav-tabs}/NavTabs.js +1 -1
  42. package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +96 -6
  43. package/{tabs-nav → nav-tabs}/Tab.js +35 -15
  44. package/package.json +1 -1
  45. package/paginator/Icons.d.ts +5 -0
  46. package/paginator/Icons.js +16 -28
  47. package/paginator/Paginator.js +5 -11
  48. package/paginator/Paginator.stories.tsx +24 -0
  49. package/paginator/Paginator.test.js +17 -10
  50. package/progress-bar/ProgressBar.js +4 -4
  51. package/progress-bar/ProgressBar.stories.jsx +35 -2
  52. package/quick-nav/QuickNav.stories.tsx +14 -0
  53. package/radio-group/RadioGroup.stories.tsx +131 -18
  54. package/resultsetTable/ResultsetTable.test.js +17 -22
  55. package/select/Listbox.d.ts +1 -1
  56. package/select/Listbox.js +5 -34
  57. package/select/Option.js +11 -24
  58. package/select/Select.js +43 -24
  59. package/select/Select.stories.tsx +492 -145
  60. package/select/Select.test.js +17 -22
  61. package/select/types.d.ts +2 -2
  62. package/sidenav/Sidenav.js +8 -10
  63. package/sidenav/Sidenav.stories.tsx +148 -46
  64. package/slider/Slider.js +4 -4
  65. package/slider/Slider.stories.tsx +57 -0
  66. package/spinner/Spinner.js +2 -2
  67. package/spinner/Spinner.stories.jsx +27 -1
  68. package/switch/Switch.js +1 -1
  69. package/switch/Switch.stories.tsx +33 -0
  70. package/table/Table.stories.jsx +80 -1
  71. package/tabs/Tab.js +3 -5
  72. package/tabs/Tabs.js +3 -3
  73. package/tabs/Tabs.stories.tsx +45 -5
  74. package/tag/Tag.stories.tsx +14 -1
  75. package/text-input/Suggestion.js +32 -5
  76. package/text-input/TextInput.js +7 -11
  77. package/text-input/TextInput.stories.tsx +92 -4
  78. package/text-input/TextInput.test.js +125 -25
  79. package/textarea/Textarea.stories.jsx +60 -1
  80. package/toggle-group/ToggleGroup.stories.tsx +42 -0
  81. package/utils/FocusLock.d.ts +13 -0
  82. package/utils/FocusLock.js +139 -0
  83. package/wizard/Wizard.stories.tsx +20 -0
  84. /package/{tabs-nav → nav-tabs}/NavTabs.d.ts +0 -0
  85. /package/{tabs-nav → nav-tabs}/NavTabs.test.js +0 -0
  86. /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
  87. /package/{tabs-nav → nav-tabs}/types.d.ts +0 -0
  88. /package/{tabs-nav → nav-tabs}/types.js +0 -0
@@ -108,7 +108,7 @@ describe("DateInput component tests", function () {
108
108
 
109
109
  _userEvent["default"].click(calendarAction);
110
110
 
111
- expect(getByText("21").getAttribute("aria-selected")).toBeTruthy();
111
+ expect(getByText("21").getAttribute("aria-selected")).toBe("true");
112
112
  expect(getByText("October 2015")).toBeTruthy();
113
113
  });
114
114
  test("Renders with correct format: user typed date but it's invalid, onBlur error", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
@@ -223,7 +223,7 @@ describe("DateInput component tests", function () {
223
223
 
224
224
  _userEvent["default"].click(calendarAction);
225
225
 
226
- expect(getAllByText(d.get("date"))[0].getAttribute("aria-selected")).toBeTruthy();
226
+ expect(document.activeElement === getAllByText(d.get("date")).length === 2 && +d.get("date") > 20 ? getAllByText(d.get("date"))[1] : getAllByText(d.get("date"))[0]).toBeTruthy();
227
227
  expect(getByText(d.format("MMMM YYYY"))).toBeTruthy();
228
228
  });
229
229
  test("Calendar renders with correct date: value prop", function () {
@@ -239,7 +239,7 @@ describe("DateInput component tests", function () {
239
239
 
240
240
  _userEvent["default"].click(calendarAction);
241
241
 
242
- expect(getAllByText(d.get("date"))[0].getAttribute("aria-selected")).toBeTruthy();
242
+ expect(getAllByText(d.get("date"))[0].getAttribute("aria-selected")).toBe("true");
243
243
  expect(getByText(d.format("MMMM YYYY"))).toBeTruthy();
244
244
  });
245
245
  test("Calendar renders with correct date: user typed value", function () {
@@ -256,7 +256,7 @@ describe("DateInput component tests", function () {
256
256
 
257
257
  _userEvent["default"].click(calendarAction);
258
258
 
259
- expect(getAllByText(d.get("date"))[0].getAttribute("aria-selected")).toBeTruthy();
259
+ expect(getAllByText(d.get("date"))[0].getAttribute("aria-selected")).toBe("true");
260
260
  expect(getByText(d.format("MMMM YYYY"))).toBeTruthy();
261
261
  });
262
262
  test("Calendar renders with correct date: invalid date, renders with today's date", function () {
@@ -285,7 +285,7 @@ describe("DateInput component tests", function () {
285
285
 
286
286
  _userEvent["default"].click(calendarAction);
287
287
 
288
- expect(getAllByText(d.get("date"))[0].getAttribute("aria-selected")).toBeTruthy();
288
+ expect(document.activeElement === getAllByText(d.get("date")).length === 2 && +d.get("date") > 20 ? getAllByText(d.get("date"))[1] : getAllByText(d.get("date"))[0]).toBeTruthy();
289
289
  expect(getByText(d.format("MMMM YYYY"))).toBeTruthy();
290
290
  });
291
291
  test("Selecting a date from the calendar with an specific format", function () {
@@ -308,7 +308,7 @@ describe("DateInput component tests", function () {
308
308
 
309
309
  var d = (0, _dayjs["default"])();
310
310
  d = d.set("date", 10);
311
- expect(getAllByText(d.get("date"))[0].getAttribute("aria-selected")).toBeTruthy();
311
+ expect(getAllByText(d.get("date"))[0].getAttribute("aria-selected")).toBe("true");
312
312
  expect(getByText(d.format("MMMM YYYY"))).toBeTruthy();
313
313
 
314
314
  _react2.fireEvent.keyDown(document, {
@@ -320,14 +320,42 @@ describe("DateInput component tests", function () {
320
320
 
321
321
  expect(input.value).toBe(d.format("M-DD-YYYY"));
322
322
  });
323
- test("Selecting a date from the calendar from another month", function () {
323
+ test("Changing months using the arrows", function () {
324
324
  var _render11 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
325
+ label: "label",
325
326
  format: "dd-mm-yyyy",
326
- defaultValue: "10-08-2021"
327
+ defaultValue: "10-10-2000"
327
328
  })),
328
- getAllByText = _render11.getAllByText,
329
329
  getByText = _render11.getByText,
330
- getByRole = _render11.getByRole;
330
+ getByRole = _render11.getByRole,
331
+ getByTitle = _render11.getByTitle;
332
+
333
+ var calendarAction = getByRole("combobox");
334
+
335
+ _userEvent["default"].click(calendarAction);
336
+
337
+ var d = (0, _dayjs["default"])("10-10-2000", "DD-MM-YYYY", true);
338
+ d = d.set("date", 10);
339
+ expect(getByText(d.format("MMMM YYYY"))).toBeTruthy();
340
+ var previousMonth = getByTitle("Previous month");
341
+
342
+ _userEvent["default"].click(previousMonth);
343
+
344
+ expect(getByText(d.set("month", d.get("month") - 1).format("MMMM YYYY"))).toBeTruthy();
345
+ var nextMonth = getByTitle("Next month");
346
+
347
+ _userEvent["default"].click(nextMonth);
348
+
349
+ expect(getByText(d.format("MMMM YYYY"))).toBeTruthy();
350
+ });
351
+ test("Selecting a date from the calendar from another month", function () {
352
+ var _render12 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
353
+ format: "dd-mm-yyyy",
354
+ defaultValue: "10-08-2021"
355
+ })),
356
+ getAllByText = _render12.getAllByText,
357
+ getByText = _render12.getByText,
358
+ getByRole = _render12.getByRole;
331
359
 
332
360
  var input = getByRole("textbox");
333
361
  var calendarAction = getByRole("combobox");
@@ -340,7 +368,7 @@ describe("DateInput component tests", function () {
340
368
 
341
369
  var d = (0, _dayjs["default"])("10-08-2021", "DD-MM-YYYY", true);
342
370
  d = d.set("date", 31).set("month", 6);
343
- expect(getAllByText(d.get("date"))[0].getAttribute("aria-selected")).toBeTruthy();
371
+ expect(getAllByText(d.get("date"))[0].getAttribute("aria-selected")).toBe("true");
344
372
  expect(getByText(d.format("MMMM YYYY"))).toBeTruthy();
345
373
 
346
374
  _react2.fireEvent.keyDown(document, {
@@ -353,12 +381,12 @@ describe("DateInput component tests", function () {
353
381
  expect(input.value).toBe(d.format("DD-MM-YYYY"));
354
382
  });
355
383
  test("Selecting a year from the calendar year picker", function () {
356
- var _render12 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
384
+ var _render13 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
357
385
  format: "dd-mm-yyyy",
358
386
  defaultValue: "10-08-2021"
359
387
  })),
360
- getByText = _render12.getByText,
361
- getByRole = _render12.getByRole;
388
+ getByText = _render13.getByText,
389
+ getByRole = _render13.getByRole;
362
390
 
363
391
  var input = getByRole("textbox");
364
392
  var calendarAction = getByRole("combobox");
@@ -385,10 +413,10 @@ describe("DateInput component tests", function () {
385
413
  expect(input.value).toBe(d.format("DD-MM-YYYY"));
386
414
  });
387
415
  test("Selecting a date from the calendar (using keyboard presses)", function () {
388
- var _render13 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], null)),
389
- getByRole = _render13.getByRole,
390
- getAllByText = _render13.getAllByText,
391
- getByText = _render13.getByText;
416
+ var _render14 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], null)),
417
+ getByRole = _render14.getByRole,
418
+ getAllByText = _render14.getAllByText,
419
+ getByText = _render14.getByText;
392
420
 
393
421
  var calendarAction = getByRole("combobox");
394
422
  var input = getByRole("textbox");
@@ -458,7 +486,7 @@ describe("DateInput component tests", function () {
458
486
  charCode: 32
459
487
  });
460
488
 
461
- expect(getAllByText("2")[0].closest("button").getAttribute("aria-selected")).toBeTruthy();
489
+ expect(getAllByText("2")[0].closest("button").getAttribute("aria-selected")).toBe("true");
462
490
 
463
491
  _react2.fireEvent.keyDown(document, {
464
492
  key: "Escape",
@@ -470,9 +498,9 @@ describe("DateInput component tests", function () {
470
498
  expect(input.value).toBe("02-01-2010");
471
499
  });
472
500
  test("Selecting a date from the calendar (using keyboard presses) part II", function () {
473
- var _render14 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], null)),
474
- getByRole = _render14.getByRole,
475
- getAllByText = _render14.getAllByText;
501
+ var _render15 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], null)),
502
+ getByRole = _render15.getByRole,
503
+ getAllByText = _render15.getAllByText;
476
504
 
477
505
  var calendarAction = getByRole("combobox");
478
506
  var input = getByRole("textbox");
@@ -541,11 +569,11 @@ describe("DateInput component tests", function () {
541
569
  var onBlur = jest.fn();
542
570
  var onChange = jest.fn();
543
571
 
544
- var _render15 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
572
+ var _render16 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
545
573
  onChange: onChange,
546
574
  onBlur: onBlur
547
575
  })),
548
- getByRole = _render15.getByRole;
576
+ getByRole = _render16.getByRole;
549
577
 
550
578
  var input = getByRole("textbox");
551
579
  var d = new Date(2011, 9, 10);
@@ -571,11 +599,11 @@ describe("DateInput component tests", function () {
571
599
  var onBlur = jest.fn();
572
600
  var onChange = jest.fn();
573
601
 
574
- var _render16 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
602
+ var _render17 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
575
603
  onChange: onChange,
576
604
  onBlur: onBlur
577
605
  })),
578
- getByRole = _render16.getByRole;
606
+ getByRole = _render17.getByRole;
579
607
 
580
608
  var input = getByRole("textbox");
581
609
 
@@ -599,10 +627,10 @@ describe("DateInput component tests", function () {
599
627
  test("onBlur function removes the error when it is fixed", function () {
600
628
  var onBlur = jest.fn();
601
629
 
602
- var _render17 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
630
+ var _render18 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
603
631
  onBlur: onBlur
604
632
  })),
605
- getByRole = _render17.getByRole;
633
+ getByRole = _render18.getByRole;
606
634
 
607
635
  var input = getByRole("textbox");
608
636
  var d = new Date(2002, 1, 20);
@@ -636,11 +664,11 @@ describe("DateInput component tests", function () {
636
664
  test("onBlur function removes the error when the input is empty", function () {
637
665
  var onBlur = jest.fn();
638
666
 
639
- var _render18 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
667
+ var _render19 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
640
668
  onBlur: onBlur,
641
669
  optional: true
642
670
  })),
643
- getByRole = _render18.getByRole;
671
+ getByRole = _render19.getByRole;
644
672
 
645
673
  var input = getByRole("textbox");
646
674
 
@@ -669,11 +697,11 @@ describe("DateInput component tests", function () {
669
697
  var onBlur = jest.fn();
670
698
  var onChange = jest.fn();
671
699
 
672
- var _render19 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
700
+ var _render20 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
673
701
  onBlur: onBlur,
674
702
  onChange: onChange
675
703
  })),
676
- getByRole = _render19.getByRole;
704
+ getByRole = _render20.getByRole;
677
705
 
678
706
  var date = getByRole("textbox");
679
707
 
@@ -697,11 +725,11 @@ describe("DateInput component tests", function () {
697
725
  });
698
726
  });
699
727
  test("Disabled date input (calendar action must be shown but not clickable)", function () {
700
- var _render20 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
728
+ var _render21 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
701
729
  disabled: true
702
730
  })),
703
- getByRole = _render20.getByRole,
704
- queryByText = _render20.queryByText;
731
+ getByRole = _render21.getByRole,
732
+ queryByText = _render21.queryByText;
705
733
 
706
734
  var calendarAction = getByRole("button");
707
735
  var d = new Date();
@@ -717,10 +745,10 @@ describe("DateInput component tests", function () {
717
745
  expect(queryByText(d.toLocaleString("en-US", options))).toBeFalsy();
718
746
  });
719
747
  test("Input has correct accesibility attributes", function () {
720
- var _render21 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
748
+ var _render22 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
721
749
  label: "Date input label"
722
750
  })),
723
- getByRole = _render21.getByRole;
751
+ getByRole = _render22.getByRole;
724
752
 
725
753
  var input = getByRole("textbox");
726
754
  expect(input.getAttribute("aria-autocomplete")).toBeNull();
@@ -749,4 +777,59 @@ describe("DateInput component tests", function () {
749
777
 
750
778
  expect(calendarAction.getAttribute("aria-expanded")).toBe("false");
751
779
  });
780
+ test("Chooses the correct year when two digit format", function () {
781
+ var _render23 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
782
+ label: "Default label",
783
+ placeholder: "Placeholder",
784
+ format: "dd-mm-yy",
785
+ defaultValue: "21-10-80"
786
+ })),
787
+ getByText = _render23.getByText,
788
+ getByRole = _render23.getByRole,
789
+ getAllByText = _render23.getAllByText;
790
+
791
+ var input = getByRole("textbox");
792
+ var calendarAction = getByRole("combobox");
793
+ expect(input.value).toBe("21-10-80");
794
+
795
+ _userEvent["default"].click(calendarAction);
796
+
797
+ expect(getByText("21").getAttribute("aria-selected")).toBe("true");
798
+ expect(getByText("October 1980")).toBeTruthy();
799
+
800
+ _react2.fireEvent.keyDown(document, {
801
+ key: "Escape",
802
+ code: "Escape",
803
+ keyCode: 27,
804
+ charCode: 27
805
+ });
806
+
807
+ _react2.fireEvent.change(input, {
808
+ target: {
809
+ value: "21-10-10"
810
+ }
811
+ });
812
+
813
+ _userEvent["default"].click(calendarAction);
814
+
815
+ expect(getByText("October 1910")).toBeTruthy();
816
+
817
+ _userEvent["default"].click(getByText("October 1910"));
818
+
819
+ _userEvent["default"].click(getByText("2010"));
820
+
821
+ _userEvent["default"].click(getAllByText("1")[0]);
822
+
823
+ expect(input.value).toBe("01-10-10");
824
+
825
+ _react2.fireEvent.change(input, {
826
+ target: {
827
+ value: "21-10-80"
828
+ }
829
+ });
830
+
831
+ _userEvent["default"].click(calendarAction);
832
+
833
+ expect(getByText("October 2080")).toBeTruthy();
834
+ });
752
835
  });
@@ -25,52 +25,22 @@ var _YearPicker = _interopRequireDefault(require("./YearPicker"));
25
25
 
26
26
  var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
27
27
 
28
+ var _Icons = require("./Icons");
29
+
28
30
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
29
31
 
30
32
  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
33
 
32
34
  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; }
33
35
 
34
- var leftCaret = /*#__PURE__*/_react["default"].createElement("svg", {
35
- fill: "currentColor",
36
- focusable: "false",
37
- viewBox: "0 0 24 24",
38
- "aria-hidden": "true"
39
- }, /*#__PURE__*/_react["default"].createElement("path", {
40
- d: "M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z"
41
- }), /*#__PURE__*/_react["default"].createElement("path", {
42
- fill: "none",
43
- d: "M0 0h24v24H0V0z"
44
- }));
45
-
46
- var rightCaret = /*#__PURE__*/_react["default"].createElement("svg", {
47
- fill: "currentColor",
48
- focusable: "false",
49
- viewBox: "0 0 24 24",
50
- "aria-hidden": "true"
51
- }, /*#__PURE__*/_react["default"].createElement("path", {
52
- d: "M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z"
53
- }), /*#__PURE__*/_react["default"].createElement("path", {
54
- fill: "none",
55
- d: "M0 0h24v24H0V0z"
56
- }));
57
-
58
- var downCaret = /*#__PURE__*/_react["default"].createElement("svg", {
59
- xmlns: "http://www.w3.org/2000/svg",
60
- width: "24",
61
- height: "24",
62
- viewBox: "0 0 24 24"
63
- }, /*#__PURE__*/_react["default"].createElement("path", {
64
- d: "M7.5 10L12.5 15L17.5 10H7.5Z",
65
- fill: "currentColor"
66
- }));
36
+ var today = (0, _dayjs["default"])();
67
37
 
68
38
  var DxcDatePicker = function DxcDatePicker(_ref) {
69
39
  var date = _ref.date,
70
40
  onDateSelect = _ref.onDateSelect,
71
41
  id = _ref.id;
72
42
 
73
- var _useState = (0, _react.useState)(date.isValid() ? date : (0, _dayjs["default"])()),
43
+ var _useState = (0, _react.useState)(date !== null && date !== void 0 && date.isValid() ? date : (0, _dayjs["default"])()),
74
44
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
75
45
  innerDate = _useState2[0],
76
46
  setInnerDate = _useState2[1];
@@ -80,7 +50,7 @@ var DxcDatePicker = function DxcDatePicker(_ref) {
80
50
  content = _useState4[0],
81
51
  setContent = _useState4[1];
82
52
 
83
- var selectedDate = date.isValid() ? date : null;
53
+ var selectedDate = date !== null && date !== void 0 && date.isValid() ? date : null;
84
54
  var translatedLabels = (0, _useTranslatedLabels["default"])();
85
55
 
86
56
  var handleDateSelect = function handleDateSelect(date) {
@@ -105,54 +75,70 @@ var DxcDatePicker = function DxcDatePicker(_ref) {
105
75
  onClick: function onClick() {
106
76
  return handleMonthChange(innerDate.set("month", innerDate.get("month") - 1));
107
77
  }
108
- }, leftCaret), /*#__PURE__*/_react["default"].createElement(HeaderYearTrigger, {
78
+ }, _Icons.leftCaret), /*#__PURE__*/_react["default"].createElement(HeaderYearTrigger, {
109
79
  "aria-live": "polite",
110
80
  onClick: function onClick() {
111
81
  return setContent(function (content) {
112
82
  return content === "yearPicker" ? "calendar" : "yearPicker";
113
83
  });
114
84
  }
115
- }, /*#__PURE__*/_react["default"].createElement(HeaderYearTriggerLabel, null, translatedLabels.calendar.months[innerDate.get("month")], " ", innerDate.format("YYYY")), downCaret), /*#__PURE__*/_react["default"].createElement(HeaderButton, {
85
+ }, /*#__PURE__*/_react["default"].createElement(HeaderYearTriggerLabel, null, translatedLabels.calendar.months[innerDate.get("month")], " ", innerDate.format("YYYY")), content === "yearPicker" ? _Icons.upCaret : _Icons.downCaret), /*#__PURE__*/_react["default"].createElement(HeaderButton, {
116
86
  "aria-label": translatedLabels.calendar.nextMonthTitle,
117
87
  title: translatedLabels.calendar.nextMonthTitle,
118
88
  onClick: function onClick() {
119
89
  return handleMonthChange(innerDate.set("month", innerDate.get("month") + 1));
120
90
  }
121
- }, rightCaret)), content === "calendar" && /*#__PURE__*/_react["default"].createElement(_Calendar["default"], {
91
+ }, _Icons.rightCaret)), content === "calendar" && /*#__PURE__*/_react["default"].createElement(_Calendar["default"], {
122
92
  innerDate: innerDate,
123
93
  selectedDate: selectedDate,
124
94
  onInnerDateChange: setInnerDate,
125
- onDaySelect: handleDateSelect
95
+ onDaySelect: handleDateSelect,
96
+ today: today
126
97
  }), content === "yearPicker" && /*#__PURE__*/_react["default"].createElement(_YearPicker["default"], {
127
98
  selectedDate: selectedDate,
128
- onYearSelect: handleOnYearSelect
99
+ onYearSelect: handleOnYearSelect,
100
+ today: today
129
101
  }));
130
102
  };
131
103
 
132
- var DatePicker = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n padding-top: 16px;\n background-color: ", ";\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n border: 1px solid #bfbfbf;\n border-radius: 4px;\n"])), function (props) {
104
+ var DatePicker = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n padding-top: 16px;\n background-color: ", ";\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n border: ", ";\n border-radius: 4px;\n width: fit-content;\n font-family: ", ";\n font-size: ", ";\n color: ", ";\n font-weight: ", ";\n"])), function (props) {
133
105
  return props.theme.dateInput.pickerBackgroundColor;
106
+ }, function (props) {
107
+ return "".concat(props.theme.dateInput.pickerBorderWidth, " ").concat(props.theme.dateInput.pickerBorderStyle, "\n ").concat(props.theme.dateInput.pickerBorderColor);
108
+ }, function (props) {
109
+ return props.theme.dateInput.pickerFontFamily;
110
+ }, function (props) {
111
+ return props.theme.dateInput.pickerFontSize;
112
+ }, function (props) {
113
+ return props.theme.dateInput.pickerFontColor;
114
+ }, function (props) {
115
+ return props.theme.dateInput.pickerFontWeight;
134
116
  });
135
117
 
136
118
  var PickerHeader = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n gap: 8px;\n align-items: center;\n justify-content: space-between;\n padding: 0px 16px;\n"])));
137
119
 
138
- var HeaderButton = _styledComponents["default"].button(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n padding: 0px;\n background-color: ", ";\n font-size: 1.5rem;\n border-radius: 4px;\n border: none;\n cursor: pointer;\n\n &:focus {\n outline: ", " solid 2px;\n }\n &:hover {\n background-color: ", ";\n }\n &:active {\n background-color: #4b1c7d;\n color: #ffffff;\n }\n svg {\n display: inline-block;\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n font-size: 1.5rem;\n user-select: none;\n }\n"])), function (props) {
139
- return props.theme.dateInput.pickerMonthArrowsBackgroundColor;
120
+ var HeaderButton = _styledComponents["default"].button(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n padding: 0px;\n color: ", ";\n background-color: ", ";\n border-radius: 4px;\n border: none;\n cursor: pointer;\n\n &:hover {\n color: ", ";\n background-color: ", ";\n }\n &:focus {\n outline: ", ";\n }\n &:active {\n color: ", ";\n background-color: ", ";\n }\n svg {\n width: 24px;\n height: 24px;\n }\n"])), function (props) {
121
+ return props.theme.dateInput.pickerHeaderFontColor;
140
122
  }, function (props) {
141
- return props.theme.dateInput.pickerFocusColor;
123
+ return props.theme.dateInput.pickerHeaderBackgroundColor;
142
124
  }, function (props) {
143
- return props.theme.dateInput.pickerHoverDateBackgroundColor;
144
- });
145
-
146
- var HeaderYearTrigger = _styledComponents["default"].button(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n gap: 8px;\n align-items: center;\n justify-content: center;\n height: 40px;\n width: 172px;\n color: ", ";\n background-color: transparent;\n border-radius: 4px;\n border: none;\n cursor: pointer;\n\n &:hover {\n background-color: ", ";\n }\n &:focus {\n outline: ", " solid 2px;\n }\n &:active {\n color: #ffffff;\n background-color: #4b1c7d;\n }\n"])), function (props) {
147
- return props.theme.dateInput.pickerMonthFontColor;
125
+ return props.theme.dateInput.pickerHeaderHoverFontColor;
126
+ }, function (props) {
127
+ return props.theme.dateInput.pickerHeaderHoverBackgroundColor;
148
128
  }, function (props) {
149
- return props.theme.dateInput.pickerHoverDateBackgroundColor;
129
+ return "".concat(props.theme.dateInput.pickerFocusColor, " solid\n ").concat(props.theme.dateInput.pickerFocusWidth);
150
130
  }, function (props) {
151
- return props.theme.dateInput.pickerFocusColor;
131
+ return props.theme.dateInput.pickerHeaderActiveFontColor;
132
+ }, function (props) {
133
+ return props.theme.dateInput.pickerHeaderActiveBackgroundColor;
152
134
  });
153
135
 
154
- var HeaderYearTriggerLabel = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n font-family: ", ";\n font-size: 0.875rem;\n font-weight: 400;\n line-height: 19px;\n"])), function (props) {
136
+ var HeaderYearTrigger = (0, _styledComponents["default"])(HeaderButton)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n gap: 8px;\n height: 40px;\n width: 172px;\n"])));
137
+
138
+ var HeaderYearTriggerLabel = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n font-family: ", ";\n font-size: ", ";\n"])), function (props) {
155
139
  return props.theme.dateInput.pickerFontFamily;
140
+ }, function (props) {
141
+ return props.theme.dateInput.pickerHeaderFontSize;
156
142
  });
157
143
 
158
144
  var _default = /*#__PURE__*/_react["default"].memo(DxcDatePicker);
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ export declare const calendarIcon: JSX.Element;
3
+ export declare const leftCaret: JSX.Element;
4
+ export declare const rightCaret: JSX.Element;
5
+ export declare const downCaret: JSX.Element;
6
+ export declare const upCaret: JSX.Element;
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.upCaret = exports.rightCaret = exports.leftCaret = exports.downCaret = exports.calendarIcon = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var calendarIcon = /*#__PURE__*/_react["default"].createElement("svg", {
13
+ xmlns: "http://www.w3.org/2000/svg",
14
+ height: "24",
15
+ viewBox: "0 0 24 24",
16
+ width: "24",
17
+ fill: "currentColor"
18
+ }, /*#__PURE__*/_react["default"].createElement("path", {
19
+ d: "M0 0h24v24H0z",
20
+ fill: "none"
21
+ }), /*#__PURE__*/_react["default"].createElement("path", {
22
+ d: "M20 3h-1V1h-2v2H7V1H5v2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 18H4V8h16v13z"
23
+ }));
24
+
25
+ exports.calendarIcon = calendarIcon;
26
+
27
+ var leftCaret = /*#__PURE__*/_react["default"].createElement("svg", {
28
+ fill: "currentColor",
29
+ focusable: "false",
30
+ viewBox: "0 0 24 24"
31
+ }, /*#__PURE__*/_react["default"].createElement("path", {
32
+ d: "M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z"
33
+ }), /*#__PURE__*/_react["default"].createElement("path", {
34
+ fill: "none",
35
+ d: "M0 0h24v24H0V0z"
36
+ }));
37
+
38
+ exports.leftCaret = leftCaret;
39
+
40
+ var rightCaret = /*#__PURE__*/_react["default"].createElement("svg", {
41
+ fill: "currentColor",
42
+ focusable: "false",
43
+ viewBox: "0 0 24 24"
44
+ }, /*#__PURE__*/_react["default"].createElement("path", {
45
+ d: "M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z"
46
+ }), /*#__PURE__*/_react["default"].createElement("path", {
47
+ fill: "none",
48
+ d: "M0 0h24v24H0V0z"
49
+ }));
50
+
51
+ exports.rightCaret = rightCaret;
52
+
53
+ var downCaret = /*#__PURE__*/_react["default"].createElement("svg", {
54
+ xmlns: "http://www.w3.org/2000/svg",
55
+ width: "24",
56
+ height: "24",
57
+ viewBox: "0 0 24 24"
58
+ }, /*#__PURE__*/_react["default"].createElement("path", {
59
+ d: "M7.5 10L12.5 15L17.5 10H7.5Z",
60
+ fill: "currentColor"
61
+ }));
62
+
63
+ exports.downCaret = downCaret;
64
+
65
+ var upCaret = /*#__PURE__*/_react["default"].createElement("svg", {
66
+ xmlns: "http://www.w3.org/2000/svg",
67
+ height: "24",
68
+ width: "24",
69
+ viewBox: "0 0 24 24"
70
+ }, /*#__PURE__*/_react["default"].createElement("path", {
71
+ d: "m7 14 5-5 5 5Z",
72
+ fill: "currentColor"
73
+ }));
74
+
75
+ exports.upCaret = upCaret;
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
2
  import { YearPickerPropsType } from "./types";
3
- declare const _default: React.MemoExoticComponent<({ onYearSelect, selectedDate }: YearPickerPropsType) => JSX.Element>;
3
+ declare const _default: React.MemoExoticComponent<({ onYearSelect, selectedDate, today }: YearPickerPropsType) => JSX.Element>;
4
4
  export default _default;
@@ -39,7 +39,8 @@ var yearList = getYearsArray();
39
39
 
40
40
  var YearPicker = function YearPicker(_ref) {
41
41
  var onYearSelect = _ref.onYearSelect,
42
- selectedDate = _ref.selectedDate;
42
+ selectedDate = _ref.selectedDate,
43
+ today = _ref.today;
43
44
 
44
45
  var _useState = (0, _react.useState)(selectedDate ? selectedDate.get("year") : (0, _dayjs["default"])().get("year")),
45
46
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
@@ -80,7 +81,7 @@ var YearPicker = function YearPicker(_ref) {
80
81
  selected: (selectedDate === null || selectedDate === void 0 ? void 0 : selectedDate.get("year")) === year,
81
82
  "aria-selected": (selectedDate === null || selectedDate === void 0 ? void 0 : selectedDate.get("year")) === year,
82
83
  tabIndex: yearToFocus === year ? 0 : -1,
83
- isCurrentYear: (0, _dayjs["default"])().get("year") === year,
84
+ isCurrentYear: today.get("year") === year,
84
85
  onKeyDown: function onKeyDown(event) {
85
86
  return handleDayKeyboardEvent(event);
86
87
  },
@@ -92,22 +93,32 @@ var YearPicker = function YearPicker(_ref) {
92
93
  }));
93
94
  };
94
95
 
95
- var YearPickerContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n gap: 4px;\n align-items: center;\n overflow-y: scroll;\n width: ", ";\n height: 312px;\n padding: 0px 8px 8px 8px;\n"])), function (props) {
96
- return props.theme.dateInput.pickerWidth;
97
- });
96
+ var YearPickerContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n gap: 4px;\n align-items: center;\n overflow-y: scroll;\n width: 292px;\n height: 312px;\n padding: 2px 8px 8px 8px;\n"])));
98
97
 
99
- var YearPickerButton = _styledComponents["default"].button(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n width: 80px;\n min-height: 40px;\n font-size: 0.875rem;\n font-weight: 400;\n line-height: 1.75;\n color: ", ";\n background-color: transparent;\n border: none;\n border-radius: 50px;\n cursor: pointer;\n\n ", "\n\n &:hover {\n font-weight: 400;\n font-size: 1.5rem;\n line-height: 33px;\n color: ", ";\n background-color: ", ";\n }\n &:focus {\n font-weight: 400;\n font-size: 1.5rem;\n line-height: 33px;\n color: ", ";\n outline: ", " solid 2px;\n }\n &:active {\n font-weight: 400;\n font-size: 1.5rem;\n line-height: 33px;\n color: #ffffff;\n background-color: #4b1c7d !important;\n }\n"])), function (props) {
100
- return props.theme.dateInput.pickerYearFontColor;
98
+ var YearPickerButton = _styledComponents["default"].button(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n width: 80px;\n min-height: 40px;\n line-height: 21px;\n background-color: transparent;\n border: none;\n border-radius: 50px;\n cursor: pointer;\n font-family: ", ";\n font-size: ", ";\n color: ", ";\n font-weight: ", ";\n\n ", "\n\n &:hover, &:focus, &:active {\n font-size: ", ";\n line-height: 36px;\n }\n &:hover {\n color: ", ";\n background-color: ", ";\n }\n &:focus {\n color: ", ";\n outline: ", ";\n }\n &:active {\n color: ", ";\n background-color: ", " !important;\n }\n"])), function (props) {
99
+ return props.theme.dateInput.pickerFontFamily;
100
+ }, function (props) {
101
+ return props.theme.dateInput.pickerFontSize;
102
+ }, function (props) {
103
+ return props.theme.dateInput.pickerFontColor;
104
+ }, function (props) {
105
+ return props.theme.dateInput.pickerFontWeight;
106
+ }, function (props) {
107
+ return props.selected ? "font-size: ".concat(props.theme.dateInput.pickerInteractedYearFontSize, ";\n line-height: 36px;\n color: ").concat(props.theme.dateInput.pickerSelectedFontColor, " !important;\n background-color: ").concat(props.theme.dateInput.pickerSelectedBackgroundColor, " !important;") : props.isCurrentYear ? "border: 1px solid ".concat(props.theme.dateInput.pickerCurrentDateBorderColor, "; \n color: ").concat(props.theme.dateInput.pickerCurrentYearFontColor, ";") : "";
108
+ }, function (props) {
109
+ return props.theme.dateInput.pickerInteractedYearFontSize;
110
+ }, function (props) {
111
+ return props.theme.dateInput.pickerHoverFontColor;
101
112
  }, function (props) {
102
- return props.selected ? "font-weight: 400;\n font-size: 1.5rem;\n line-height: 33px;\n color: ".concat(props.theme.dateInput.pickerSelectedDateColor, " !important;\n background-color: ").concat(props.theme.dateInput.pickerSelectedDateBackgroundColor, " !important;") : props.isCurrentYear ? "border: 1px solid #cbacec; \n color: #5f249f;" : "";
113
+ return props.theme.dateInput.pickerHoverBackgroundColor;
103
114
  }, function (props) {
104
- return props.theme.dateInput.pickerHoverDateFontColor;
115
+ return props.theme.dateInput.pickerHoverFontColor;
105
116
  }, function (props) {
106
- return props.theme.dateInput.pickerHoverDateBackgroundColor;
117
+ return "".concat(props.theme.dateInput.pickerFocusColor, " solid\n ").concat(props.theme.dateInput.pickerFocusWidth);
107
118
  }, function (props) {
108
- return props.theme.dateInput.pickerHoverDateFontColor;
119
+ return props.theme.dateInput.pickerActiveFontColor;
109
120
  }, function (props) {
110
- return props.theme.dateInput.pickerFocusColor;
121
+ return props.theme.dateInput.pickerActiveBackgroundColor;
111
122
  });
112
123
 
113
124
  var _default = /*#__PURE__*/_react["default"].memo(YearPicker);